diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index ecdf9f5f53060c..d14af5d7d98ae4 100644 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -70,7 +70,7 @@ services: hard: -1 libretranslate: - image: libretranslate/libretranslate:v1.5.5 + image: libretranslate/libretranslate:v1.5.6 restart: unless-stopped volumes: - lt-data:/home/libretranslate/.local diff --git a/.haml-lint_todo.yml b/.haml-lint_todo.yml index 040045566b65d7..69c4b88db4348a 100644 --- a/.haml-lint_todo.yml +++ b/.haml-lint_todo.yml @@ -20,8 +20,10 @@ linters: ViewLength: exclude: + - 'app/views/admin/accounts/index.html.haml' - 'app/views/admin/instances/show.html.haml' - 'app/views/admin/ng_rules/_ng_rule_fields.html.haml' + - 'app/views/admin/settings/discovery/show.html.haml' - 'app/views/settings/preferences/appearance/show.html.haml' - 'app/views/settings/preferences/other/show.html.haml' diff --git a/Dockerfile b/Dockerfile index facd9b8aa0c77d..8778133e0d17cb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,7 +20,7 @@ FROM docker.io/ruby:${RUBY_VERSION}-slim-${DEBIAN_VERSION} as ruby # Resulting version string is vX.X.X-MASTODON_VERSION_PRERELEASE+MASTODON_VERSION_METADATA # Example: v4.2.0-nightly.2023.11.09+something -# Overwrite existance of 'alpha.0' in version.rb [--build-arg MASTODON_VERSION_PRERELEASE="nightly.2023.11.09"] +# Overwrite existence of 'alpha.0' in version.rb [--build-arg MASTODON_VERSION_PRERELEASE="nightly.2023.11.09"] ARG MASTODON_VERSION_PRERELEASE="" # Append build metadata or fork information to version.rb [--build-arg MASTODON_VERSION_METADATA="something"] ARG MASTODON_VERSION_METADATA="" diff --git a/Gemfile b/Gemfile index eb40bb2c57c275..34f247ba20c027 100644 --- a/Gemfile +++ b/Gemfile @@ -112,7 +112,7 @@ group :test do # RSpec helpers for email specs gem 'email_spec' - # Extra RSpec extenion methods and helpers for sidekiq + # Extra RSpec extension methods and helpers for sidekiq gem 'rspec-sidekiq', '~> 4.0' # Browser integration testing diff --git a/Gemfile.lock b/Gemfile.lock index be706c377db844..0395a066651e93 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -351,7 +351,7 @@ GEM terminal-table (>= 1.5.1) idn-ruby (0.1.5) io-console (0.7.2) - irb (1.11.2) + irb (1.12.0) rdoc reline (>= 0.4.2) jmespath (1.6.2) @@ -372,7 +372,7 @@ GEM json-ld-preloaded (3.3.0) json-ld (~> 3.3) rdf (~> 3.3) - json-schema (4.1.1) + json-schema (4.2.0) addressable (>= 2.8) jsonapi-renderer (0.2.2) jwt (2.7.1) @@ -455,7 +455,7 @@ GEM net-smtp (0.4.0.1) net-protocol nio4r (2.5.9) - nokogiri (1.16.2) + nokogiri (1.16.3) mini_portile2 (~> 2.8.2) racc (~> 1.4) nsa (0.3.0) @@ -607,7 +607,7 @@ GEM redlock (1.3.2) redis (>= 3.0.0, < 6.0) regexp_parser (2.9.0) - reline (0.4.2) + reline (0.4.3) io-console (~> 0.5) request_store (1.5.1) rack (>= 1.4) @@ -622,16 +622,16 @@ GEM chunky_png (~> 1.0) rqrcode_core (~> 1.0) rqrcode_core (1.2.0) - rspec-core (3.12.2) - rspec-support (~> 3.12.0) - rspec-expectations (3.12.3) + rspec-core (3.13.0) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.0) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.12.0) + rspec-support (~> 3.13.0) rspec-github (2.4.0) rspec-core (~> 3.0) - rspec-mocks (3.12.6) + rspec-mocks (3.13.0) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.12.0) + rspec-support (~> 3.13.0) rspec-rails (6.1.1) actionpack (>= 6.1) activesupport (>= 6.1) @@ -647,7 +647,7 @@ GEM rspec-expectations (~> 3.0) rspec-mocks (~> 3.0) sidekiq (>= 5, < 8) - rspec-support (3.12.1) + rspec-support (3.13.1) rubocop (1.60.2) json (~> 2.3) language_server-protocol (>= 3.17.0) diff --git a/app/controllers/activitypub/base_controller.rb b/app/controllers/activitypub/base_controller.rb index 388d4b9e1dcdae..c2563c492ef1ee 100644 --- a/app/controllers/activitypub/base_controller.rb +++ b/app/controllers/activitypub/base_controller.rb @@ -1,6 +1,9 @@ # frozen_string_literal: true class ActivityPub::BaseController < Api::BaseController + include SignatureVerification + include AccountOwnedConcern + skip_before_action :require_authenticated_user! skip_before_action :require_not_suspended! skip_around_action :set_locale diff --git a/app/controllers/activitypub/claims_controller.rb b/app/controllers/activitypub/claims_controller.rb index 339333e462ccc3..480baaf2bcce0f 100644 --- a/app/controllers/activitypub/claims_controller.rb +++ b/app/controllers/activitypub/claims_controller.rb @@ -1,9 +1,6 @@ # frozen_string_literal: true class ActivityPub::ClaimsController < ActivityPub::BaseController - include SignatureVerification - include AccountOwnedConcern - skip_before_action :authenticate_user! before_action :require_account_signature! diff --git a/app/controllers/activitypub/collections_controller.rb b/app/controllers/activitypub/collections_controller.rb index 2188eb72a3e82b..d5632902fe974b 100644 --- a/app/controllers/activitypub/collections_controller.rb +++ b/app/controllers/activitypub/collections_controller.rb @@ -1,9 +1,6 @@ # frozen_string_literal: true class ActivityPub::CollectionsController < ActivityPub::BaseController - include SignatureVerification - include AccountOwnedConcern - vary_by -> { 'Signature' if authorized_fetch_mode? } before_action :require_account_signature!, if: :authorized_fetch_mode? diff --git a/app/controllers/activitypub/followers_synchronizations_controller.rb b/app/controllers/activitypub/followers_synchronizations_controller.rb index d2942104e5056f..392dd36bcd6c75 100644 --- a/app/controllers/activitypub/followers_synchronizations_controller.rb +++ b/app/controllers/activitypub/followers_synchronizations_controller.rb @@ -1,9 +1,6 @@ # frozen_string_literal: true class ActivityPub::FollowersSynchronizationsController < ActivityPub::BaseController - include SignatureVerification - include AccountOwnedConcern - vary_by -> { 'Signature' if authorized_fetch_mode? } before_action :require_account_signature! diff --git a/app/controllers/activitypub/inboxes_controller.rb b/app/controllers/activitypub/inboxes_controller.rb index e8b0f47cdecbf5..49cfc8ad1cbd8c 100644 --- a/app/controllers/activitypub/inboxes_controller.rb +++ b/app/controllers/activitypub/inboxes_controller.rb @@ -1,9 +1,7 @@ # frozen_string_literal: true class ActivityPub::InboxesController < ActivityPub::BaseController - include SignatureVerification include JsonLdHelper - include AccountOwnedConcern before_action :skip_unknown_actor_activity before_action :require_actor_signature! diff --git a/app/controllers/activitypub/outboxes_controller.rb b/app/controllers/activitypub/outboxes_controller.rb index cce10cfccc20bf..0e7826f89a8dd4 100644 --- a/app/controllers/activitypub/outboxes_controller.rb +++ b/app/controllers/activitypub/outboxes_controller.rb @@ -3,9 +3,6 @@ class ActivityPub::OutboxesController < ActivityPub::BaseController LIMIT = 20 - include SignatureVerification - include AccountOwnedConcern - vary_by -> { 'Signature' if authorized_fetch_mode? || page_requested? } before_action :require_account_signature!, if: :authorized_fetch_mode? diff --git a/app/controllers/activitypub/replies_controller.rb b/app/controllers/activitypub/replies_controller.rb index f7afc9ba31fa7c..98a42d841c8ac7 100644 --- a/app/controllers/activitypub/replies_controller.rb +++ b/app/controllers/activitypub/replies_controller.rb @@ -1,9 +1,7 @@ # frozen_string_literal: true class ActivityPub::RepliesController < ActivityPub::BaseController - include SignatureVerification include Authorization - include AccountOwnedConcern DESCENDANTS_LIMIT = 60 diff --git a/app/controllers/api/base_controller.rb b/app/controllers/api/base_controller.rb index 20e1c8223b1413..71b0aa5e69be7f 100644 --- a/app/controllers/api/base_controller.rb +++ b/app/controllers/api/base_controller.rb @@ -8,6 +8,7 @@ class Api::BaseController < ApplicationController include Api::AccessTokenTrackingConcern include Api::CachingConcern include Api::ContentSecurityPolicy + include Api::ErrorHandling skip_before_action :require_functional!, unless: :limited_federation_mode? @@ -18,51 +19,6 @@ class Api::BaseController < ApplicationController protect_from_forgery with: :null_session - rescue_from ActiveRecord::RecordInvalid, Mastodon::ValidationError do |e| - render json: { error: e.to_s }, status: 422 - end - - rescue_from ActiveRecord::RecordNotUnique do - render json: { error: 'Duplicate record' }, status: 422 - end - - rescue_from Date::Error do - render json: { error: 'Invalid date supplied' }, status: 422 - end - - rescue_from ActiveRecord::RecordNotFound do - render json: { error: 'Record not found' }, status: 404 - end - - rescue_from HTTP::Error, Mastodon::UnexpectedResponseError do - render json: { error: 'Remote data could not be fetched' }, status: 503 - end - - rescue_from OpenSSL::SSL::SSLError do - render json: { error: 'Remote SSL certificate could not be verified' }, status: 503 - end - - rescue_from Mastodon::NotPermittedError do - render json: { error: 'This action is not allowed' }, status: 403 - end - - rescue_from Seahorse::Client::NetworkingError do |e| - Rails.logger.warn "Storage server error: #{e}" - render json: { error: 'There was a temporary problem serving your request, please try again' }, status: 503 - end - - rescue_from Mastodon::RaceConditionError, Stoplight::Error::RedLight do - render json: { error: 'There was a temporary problem serving your request, please try again' }, status: 503 - end - - rescue_from Mastodon::RateLimitExceededError do - render json: { error: I18n.t('errors.429') }, status: 429 - end - - rescue_from ActionController::ParameterMissing, Mastodon::InvalidParameterError do |e| - render json: { error: e.to_s }, status: 400 - end - def doorkeeper_unauthorized_render_options(error: nil) { json: { error: error.try(:description) || 'Not authorized' } } end @@ -73,6 +29,14 @@ def doorkeeper_forbidden_render_options(*) protected + def pagination_max_id + pagination_collection.last.id + end + + def pagination_since_id + pagination_collection.first.id + end + def set_pagination_headers(next_path = nil, prev_path = nil) links = [] links << [next_path, [%w(rel next)]] if next_path @@ -140,6 +104,10 @@ def disallow_unauthenticated_api_access? private + def insert_pagination_headers + set_pagination_headers(next_path, prev_path) + end + def pagination_options_invalid? params.slice(:limit, :offset).values.map(&:to_i).any?(&:negative?) end diff --git a/app/controllers/api/v1/accounts/follower_accounts_controller.rb b/app/controllers/api/v1/accounts/follower_accounts_controller.rb index f60181f1eb6481..449866fa556972 100644 --- a/app/controllers/api/v1/accounts/follower_accounts_controller.rb +++ b/app/controllers/api/v1/accounts/follower_accounts_controller.rb @@ -41,10 +41,6 @@ def paginated_follows ) end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def next_path api_v1_account_followers_url pagination_params(max_id: pagination_max_id) if records_continue? end diff --git a/app/controllers/api/v1/accounts/following_accounts_controller.rb b/app/controllers/api/v1/accounts/following_accounts_controller.rb index 3ab8c1efd6971a..c4f4313f8fce9d 100644 --- a/app/controllers/api/v1/accounts/following_accounts_controller.rb +++ b/app/controllers/api/v1/accounts/following_accounts_controller.rb @@ -41,10 +41,6 @@ def paginated_follows ) end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def next_path api_v1_account_following_index_url pagination_params(max_id: pagination_max_id) if records_continue? end diff --git a/app/controllers/api/v1/accounts/statuses_controller.rb b/app/controllers/api/v1/accounts/statuses_controller.rb index bc87a53df9fab7..66c64438bfe45a 100644 --- a/app/controllers/api/v1/accounts/statuses_controller.rb +++ b/app/controllers/api/v1/accounts/statuses_controller.rb @@ -37,10 +37,6 @@ def pagination_params(core_params) params.slice(:limit, *AccountStatusesFilter::KEYS).permit(:limit, *AccountStatusesFilter::KEYS).merge(core_params) end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def next_path api_v1_account_statuses_url pagination_params(max_id: pagination_max_id) if records_continue? end @@ -53,11 +49,7 @@ def records_continue? @statuses.size == limit_param(DEFAULT_STATUSES_LIMIT) end - def pagination_max_id - @statuses.last.id - end - - def pagination_since_id - @statuses.first.id + def pagination_collection + @statuses end end diff --git a/app/controllers/api/v1/admin/accounts_controller.rb b/app/controllers/api/v1/admin/accounts_controller.rb index ff9cae63989d6e..ff6f41e01daa4f 100644 --- a/app/controllers/api/v1/admin/accounts_controller.rb +++ b/app/controllers/api/v1/admin/accounts_controller.rb @@ -125,10 +125,6 @@ def translated_filter_params translated_params end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def next_path api_v1_admin_accounts_url(pagination_params(max_id: pagination_max_id)) if records_continue? end @@ -137,12 +133,8 @@ def prev_path api_v1_admin_accounts_url(pagination_params(min_id: pagination_since_id)) unless @accounts.empty? end - def pagination_max_id - @accounts.last.id - end - - def pagination_since_id - @accounts.first.id + def pagination_collection + @accounts end def records_continue? diff --git a/app/controllers/api/v1/admin/canonical_email_blocks_controller.rb b/app/controllers/api/v1/admin/canonical_email_blocks_controller.rb index 7b192b979fd493..701f668de620f2 100644 --- a/app/controllers/api/v1/admin/canonical_email_blocks_controller.rb +++ b/app/controllers/api/v1/admin/canonical_email_blocks_controller.rb @@ -65,10 +65,6 @@ def set_canonical_email_block @canonical_email_block = CanonicalEmailBlock.find(params[:id]) end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def next_path api_v1_admin_canonical_email_blocks_url(pagination_params(max_id: pagination_max_id)) if records_continue? end @@ -77,12 +73,8 @@ def prev_path api_v1_admin_canonical_email_blocks_url(pagination_params(min_id: pagination_since_id)) unless @canonical_email_blocks.empty? end - def pagination_max_id - @canonical_email_blocks.last.id - end - - def pagination_since_id - @canonical_email_blocks.first.id + def pagination_collection + @canonical_email_blocks end def records_continue? diff --git a/app/controllers/api/v1/admin/domain_allows_controller.rb b/app/controllers/api/v1/admin/domain_allows_controller.rb index dd54d6710660dc..a7ae84e30691b8 100644 --- a/app/controllers/api/v1/admin/domain_allows_controller.rb +++ b/app/controllers/api/v1/admin/domain_allows_controller.rb @@ -61,10 +61,6 @@ def filtered_domain_allows DomainAllow.all end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def next_path api_v1_admin_domain_allows_url(pagination_params(max_id: pagination_max_id)) if records_continue? end @@ -73,12 +69,8 @@ def prev_path api_v1_admin_domain_allows_url(pagination_params(min_id: pagination_since_id)) unless @domain_allows.empty? end - def pagination_max_id - @domain_allows.last.id - end - - def pagination_since_id - @domain_allows.first.id + def pagination_collection + @domain_allows end def records_continue? diff --git a/app/controllers/api/v1/admin/domain_blocks_controller.rb b/app/controllers/api/v1/admin/domain_blocks_controller.rb index fd7967d6498921..b30ede84978399 100644 --- a/app/controllers/api/v1/admin/domain_blocks_controller.rb +++ b/app/controllers/api/v1/admin/domain_blocks_controller.rb @@ -73,10 +73,6 @@ def domain_block_params :reject_new_follow, :reject_friend, :block_trends, :detect_invalid_subscription, :private_comment, :public_comment, :obfuscate, :hidden) end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def next_path api_v1_admin_domain_blocks_url(pagination_params(max_id: pagination_max_id)) if records_continue? end @@ -85,12 +81,8 @@ def prev_path api_v1_admin_domain_blocks_url(pagination_params(min_id: pagination_since_id)) unless @domain_blocks.empty? end - def pagination_max_id - @domain_blocks.last.id - end - - def pagination_since_id - @domain_blocks.first.id + def pagination_collection + @domain_blocks end def records_continue? diff --git a/app/controllers/api/v1/admin/email_domain_blocks_controller.rb b/app/controllers/api/v1/admin/email_domain_blocks_controller.rb index df54b9f0a404d1..bdedb9d0405f7f 100644 --- a/app/controllers/api/v1/admin/email_domain_blocks_controller.rb +++ b/app/controllers/api/v1/admin/email_domain_blocks_controller.rb @@ -58,10 +58,6 @@ def resource_params params.permit(:domain, :allow_with_approval) end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def next_path api_v1_admin_email_domain_blocks_url(pagination_params(max_id: pagination_max_id)) if records_continue? end @@ -70,12 +66,8 @@ def prev_path api_v1_admin_email_domain_blocks_url(pagination_params(min_id: pagination_since_id)) unless @email_domain_blocks.empty? end - def pagination_max_id - @email_domain_blocks.last.id - end - - def pagination_since_id - @email_domain_blocks.first.id + def pagination_collection + @email_domain_blocks end def records_continue? diff --git a/app/controllers/api/v1/admin/ip_blocks_controller.rb b/app/controllers/api/v1/admin/ip_blocks_controller.rb index 61c1912344f9a9..36257811490f5c 100644 --- a/app/controllers/api/v1/admin/ip_blocks_controller.rb +++ b/app/controllers/api/v1/admin/ip_blocks_controller.rb @@ -63,10 +63,6 @@ def resource_params params.permit(:ip, :severity, :comment, :expires_in) end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def next_path api_v1_admin_ip_blocks_url(pagination_params(max_id: pagination_max_id)) if records_continue? end @@ -75,12 +71,8 @@ def prev_path api_v1_admin_ip_blocks_url(pagination_params(min_id: pagination_since_id)) unless @ip_blocks.empty? end - def pagination_max_id - @ip_blocks.last.id - end - - def pagination_since_id - @ip_blocks.first.id + def pagination_collection + @ip_blocks end def records_continue? diff --git a/app/controllers/api/v1/admin/reports_controller.rb b/app/controllers/api/v1/admin/reports_controller.rb index 7129a5f6ca30fc..9b5beeab67ee79 100644 --- a/app/controllers/api/v1/admin/reports_controller.rb +++ b/app/controllers/api/v1/admin/reports_controller.rb @@ -89,10 +89,6 @@ def filter_params params.permit(*FILTER_PARAMS) end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def next_path api_v1_admin_reports_url(pagination_params(max_id: pagination_max_id)) if records_continue? end @@ -101,12 +97,8 @@ def prev_path api_v1_admin_reports_url(pagination_params(min_id: pagination_since_id)) unless @reports.empty? end - def pagination_max_id - @reports.last.id - end - - def pagination_since_id - @reports.first.id + def pagination_collection + @reports end def records_continue? diff --git a/app/controllers/api/v1/admin/tags_controller.rb b/app/controllers/api/v1/admin/tags_controller.rb index 6a7c9f5bf3e297..c75498072051e7 100644 --- a/app/controllers/api/v1/admin/tags_controller.rb +++ b/app/controllers/api/v1/admin/tags_controller.rb @@ -44,10 +44,6 @@ def tag_params params.permit(:display_name, :trendable, :usable, :listable) end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def next_path api_v1_admin_tags_url(pagination_params(max_id: pagination_max_id)) if records_continue? end @@ -56,12 +52,8 @@ def prev_path api_v1_admin_tags_url(pagination_params(min_id: pagination_since_id)) unless @tags.empty? end - def pagination_max_id - @tags.last.id - end - - def pagination_since_id - @tags.first.id + def pagination_collection + @tags end def records_continue? diff --git a/app/controllers/api/v1/admin/trends/links/preview_card_providers_controller.rb b/app/controllers/api/v1/admin/trends/links/preview_card_providers_controller.rb index 5d9fcc82c0ff99..8bb5e22716be7c 100644 --- a/app/controllers/api/v1/admin/trends/links/preview_card_providers_controller.rb +++ b/app/controllers/api/v1/admin/trends/links/preview_card_providers_controller.rb @@ -42,10 +42,6 @@ def set_providers @providers = PreviewCardProvider.all.to_a_paginated_by_id(limit_param(LIMIT), params_slice(:max_id, :since_id, :min_id)) end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def next_path api_v1_admin_trends_links_preview_card_providers_url(pagination_params(max_id: pagination_max_id)) if records_continue? end @@ -54,12 +50,8 @@ def prev_path api_v1_admin_trends_links_preview_card_providers_url(pagination_params(min_id: pagination_since_id)) unless @providers.empty? end - def pagination_max_id - @providers.last.id - end - - def pagination_since_id - @providers.first.id + def pagination_collection + @providers end def records_continue? diff --git a/app/controllers/api/v1/blocks_controller.rb b/app/controllers/api/v1/blocks_controller.rb index 0934622f88446a..234ab2e82cfff0 100644 --- a/app/controllers/api/v1/blocks_controller.rb +++ b/app/controllers/api/v1/blocks_controller.rb @@ -28,10 +28,6 @@ def paginated_blocks ) end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def next_path api_v1_blocks_url pagination_params(max_id: pagination_max_id) if records_continue? end @@ -40,12 +36,8 @@ def prev_path api_v1_blocks_url pagination_params(since_id: pagination_since_id) unless paginated_blocks.empty? end - def pagination_max_id - paginated_blocks.last.id - end - - def pagination_since_id - paginated_blocks.first.id + def pagination_collection + paginated_blocks end def records_continue? diff --git a/app/controllers/api/v1/bookmarks_controller.rb b/app/controllers/api/v1/bookmarks_controller.rb index 09853669644e7c..c44681ff0e08a6 100644 --- a/app/controllers/api/v1/bookmarks_controller.rb +++ b/app/controllers/api/v1/bookmarks_controller.rb @@ -33,10 +33,6 @@ def account_bookmarks current_account.bookmarks end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def next_path api_v1_bookmarks_url pagination_params(max_id: pagination_max_id) if records_continue? end @@ -45,12 +41,8 @@ def prev_path api_v1_bookmarks_url pagination_params(min_id: pagination_since_id) unless results.empty? end - def pagination_max_id - results.last.id - end - - def pagination_since_id - results.first.id + def pagination_collection + results end def records_continue? diff --git a/app/controllers/api/v1/conversations_controller.rb b/app/controllers/api/v1/conversations_controller.rb index 6a3567e624b8ad..a95c816e1c72af 100644 --- a/app/controllers/api/v1/conversations_controller.rb +++ b/app/controllers/api/v1/conversations_controller.rb @@ -53,10 +53,6 @@ def paginated_conversations .to_a_paginated_by_id(limit_param(LIMIT), params_slice(:max_id, :since_id, :min_id)) end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def next_path api_v1_conversations_url pagination_params(max_id: pagination_max_id) if records_continue? end diff --git a/app/controllers/api/v1/crypto/encrypted_messages_controller.rb b/app/controllers/api/v1/crypto/encrypted_messages_controller.rb index 68cf4384f79bd0..d3de220393f023 100644 --- a/app/controllers/api/v1/crypto/encrypted_messages_controller.rb +++ b/app/controllers/api/v1/crypto/encrypted_messages_controller.rb @@ -29,10 +29,6 @@ def set_encrypted_messages @encrypted_messages = @current_device.encrypted_messages.to_a_paginated_by_id(limit_param(LIMIT), params_slice(:max_id, :since_id, :min_id)) end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def next_path api_v1_crypto_encrypted_messages_url pagination_params(max_id: pagination_max_id) if records_continue? end @@ -41,12 +37,8 @@ def prev_path api_v1_crypto_encrypted_messages_url pagination_params(min_id: pagination_since_id) unless @encrypted_messages.empty? end - def pagination_max_id - @encrypted_messages.last.id - end - - def pagination_since_id - @encrypted_messages.first.id + def pagination_collection + @encrypted_messages end def records_continue? diff --git a/app/controllers/api/v1/domain_blocks_controller.rb b/app/controllers/api/v1/domain_blocks_controller.rb index 34def3c44a80d2..3dee2d176cccda 100644 --- a/app/controllers/api/v1/domain_blocks_controller.rb +++ b/app/controllers/api/v1/domain_blocks_controller.rb @@ -38,10 +38,6 @@ def account_domain_blocks current_account.domain_blocks end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def next_path api_v1_domain_blocks_url pagination_params(max_id: pagination_max_id) if records_continue? end @@ -50,12 +46,8 @@ def prev_path api_v1_domain_blocks_url pagination_params(since_id: pagination_since_id) unless @blocks.empty? end - def pagination_max_id - @blocks.last.id - end - - def pagination_since_id - @blocks.first.id + def pagination_collection + @blocks end def records_continue? diff --git a/app/controllers/api/v1/endorsements_controller.rb b/app/controllers/api/v1/endorsements_controller.rb index 2216a9860d9efb..9a723d89e4f233 100644 --- a/app/controllers/api/v1/endorsements_controller.rb +++ b/app/controllers/api/v1/endorsements_controller.rb @@ -28,10 +28,6 @@ def endorsed_accounts current_account.endorsed_accounts.includes(:account_stat, :user).without_suspended end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def next_path return if unlimited? @@ -44,12 +40,8 @@ def prev_path api_v1_endorsements_url pagination_params(since_id: pagination_since_id) unless @accounts.empty? end - def pagination_max_id - @accounts.last.id - end - - def pagination_since_id - @accounts.first.id + def pagination_collection + @accounts end def records_continue? diff --git a/app/controllers/api/v1/favourites_controller.rb b/app/controllers/api/v1/favourites_controller.rb index 984f3d3051a936..52ffd2db7ed2e0 100644 --- a/app/controllers/api/v1/favourites_controller.rb +++ b/app/controllers/api/v1/favourites_controller.rb @@ -33,10 +33,6 @@ def account_favourites current_account.favourites end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def next_path api_v1_favourites_url pagination_params(max_id: pagination_max_id) if records_continue? end @@ -45,12 +41,8 @@ def prev_path api_v1_favourites_url pagination_params(min_id: pagination_since_id) unless results.empty? end - def pagination_max_id - results.last.id - end - - def pagination_since_id - results.first.id + def pagination_collection + results end def records_continue? diff --git a/app/controllers/api/v1/follow_requests_controller.rb b/app/controllers/api/v1/follow_requests_controller.rb index 87f6df5f9466b2..7ffd7614bbda06 100644 --- a/app/controllers/api/v1/follow_requests_controller.rb +++ b/app/controllers/api/v1/follow_requests_controller.rb @@ -48,10 +48,6 @@ def paginated_follow_requests ) end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def next_path api_v1_follow_requests_url pagination_params(max_id: pagination_max_id) if records_continue? end diff --git a/app/controllers/api/v1/followed_tags_controller.rb b/app/controllers/api/v1/followed_tags_controller.rb index eae2bdc0101091..8888612b16284d 100644 --- a/app/controllers/api/v1/followed_tags_controller.rb +++ b/app/controllers/api/v1/followed_tags_controller.rb @@ -22,10 +22,6 @@ def set_results ) end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def next_path api_v1_followed_tags_url pagination_params(max_id: pagination_max_id) if records_continue? end @@ -34,12 +30,8 @@ def prev_path api_v1_followed_tags_url pagination_params(since_id: pagination_since_id) unless @results.empty? end - def pagination_max_id - @results.last.id - end - - def pagination_since_id - @results.first.id + def pagination_collection + @results end def records_continue? diff --git a/app/controllers/api/v1/lists/accounts_controller.rb b/app/controllers/api/v1/lists/accounts_controller.rb index 0604ad60fc4635..aecf3910493d7d 100644 --- a/app/controllers/api/v1/lists/accounts_controller.rb +++ b/app/controllers/api/v1/lists/accounts_controller.rb @@ -55,10 +55,6 @@ def resource_params params.permit(account_ids: []) end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def next_path return if unlimited? @@ -71,12 +67,8 @@ def prev_path api_v1_list_accounts_url pagination_params(since_id: pagination_since_id) unless @accounts.empty? end - def pagination_max_id - @accounts.last.id - end - - def pagination_since_id - @accounts.first.id + def pagination_collection + @accounts end def records_continue? diff --git a/app/controllers/api/v1/mutes_controller.rb b/app/controllers/api/v1/mutes_controller.rb index 2fb685ac397a8d..dbfd7e103a2f58 100644 --- a/app/controllers/api/v1/mutes_controller.rb +++ b/app/controllers/api/v1/mutes_controller.rb @@ -28,10 +28,6 @@ def paginated_mutes ) end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def next_path api_v1_mutes_url pagination_params(max_id: pagination_max_id) if records_continue? end @@ -40,12 +36,8 @@ def prev_path api_v1_mutes_url pagination_params(since_id: pagination_since_id) unless paginated_mutes.empty? end - def pagination_max_id - paginated_mutes.last.id - end - - def pagination_since_id - paginated_mutes.first.id + def pagination_collection + paginated_mutes end def records_continue? diff --git a/app/controllers/api/v1/notifications/requests_controller.rb b/app/controllers/api/v1/notifications/requests_controller.rb index 35f5d58a814752..6a26cc0e8abf07 100644 --- a/app/controllers/api/v1/notifications/requests_controller.rb +++ b/app/controllers/api/v1/notifications/requests_controller.rb @@ -53,10 +53,6 @@ def set_request @request = NotificationRequest.where(account: current_account).find(params[:id]) end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def next_path api_v1_notifications_requests_url pagination_params(max_id: pagination_max_id) unless @requests.empty? end diff --git a/app/controllers/api/v1/notifications_controller.rb b/app/controllers/api/v1/notifications_controller.rb index 52280ef6072536..c41a0bb05d11f8 100644 --- a/app/controllers/api/v1/notifications_controller.rb +++ b/app/controllers/api/v1/notifications_controller.rb @@ -58,10 +58,6 @@ def target_statuses_from_notifications @notifications.reject { |notification| notification.target_status.nil? }.map(&:target_status) end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def next_path api_v1_notifications_url pagination_params(max_id: pagination_max_id) unless @notifications.empty? end @@ -70,12 +66,8 @@ def prev_path api_v1_notifications_url pagination_params(min_id: pagination_since_id) unless @notifications.empty? end - def pagination_max_id - @notifications.last.id - end - - def pagination_since_id - @notifications.first.id + def pagination_collection + @notifications end def browserable_params diff --git a/app/controllers/api/v1/scheduled_statuses_controller.rb b/app/controllers/api/v1/scheduled_statuses_controller.rb index 2220b6d22e44d8..1217ed014e981f 100644 --- a/app/controllers/api/v1/scheduled_statuses_controller.rb +++ b/app/controllers/api/v1/scheduled_statuses_controller.rb @@ -47,10 +47,6 @@ def pagination_params(core_params) params.slice(:limit).permit(:limit).merge(core_params) end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def next_path api_v1_scheduled_statuses_url pagination_params(max_id: pagination_max_id) if records_continue? end @@ -63,11 +59,7 @@ def records_continue? @statuses.size == limit_param(DEFAULT_STATUSES_LIMIT) end - def pagination_max_id - @statuses.last.id - end - - def pagination_since_id - @statuses.first.id + def pagination_collection + @statuses end end diff --git a/app/controllers/api/v1/statuses/favourited_by_accounts_controller.rb b/app/controllers/api/v1/statuses/favourited_by_accounts_controller.rb index 069ad37cb2092c..bbc8082e0cf374 100644 --- a/app/controllers/api/v1/statuses/favourited_by_accounts_controller.rb +++ b/app/controllers/api/v1/statuses/favourited_by_accounts_controller.rb @@ -34,10 +34,6 @@ def paginated_favourites ) end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def next_path api_v1_status_favourited_by_index_url pagination_params(max_id: pagination_max_id) if records_continue? end diff --git a/app/controllers/api/v1/statuses/reblogged_by_accounts_controller.rb b/app/controllers/api/v1/statuses/reblogged_by_accounts_controller.rb index 21b83c683c0e0c..c6277773b19fd3 100644 --- a/app/controllers/api/v1/statuses/reblogged_by_accounts_controller.rb +++ b/app/controllers/api/v1/statuses/reblogged_by_accounts_controller.rb @@ -30,10 +30,6 @@ def paginated_statuses ) end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def next_path api_v1_status_reblogged_by_index_url pagination_params(max_id: pagination_max_id) if records_continue? end diff --git a/app/controllers/api/v1/timelines/base_controller.rb b/app/controllers/api/v1/timelines/base_controller.rb index 173e173cc9e0b5..e79eba79ee575d 100644 --- a/app/controllers/api/v1/timelines/base_controller.rb +++ b/app/controllers/api/v1/timelines/base_controller.rb @@ -5,16 +5,8 @@ class Api::V1::Timelines::BaseController < Api::BaseController private - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - - def pagination_max_id - @statuses.last.id - end - - def pagination_since_id - @statuses.first.id + def pagination_collection + @statuses end def next_path_params diff --git a/app/controllers/api/v1/trends/links_controller.rb b/app/controllers/api/v1/trends/links_controller.rb index 57cfa0b7e43b30..8edf5bbcef77eb 100644 --- a/app/controllers/api/v1/trends/links_controller.rb +++ b/app/controllers/api/v1/trends/links_controller.rb @@ -34,10 +34,6 @@ def links_from_trends scope end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def pagination_params(core_params) params.slice(:limit).permit(:limit).merge(core_params) end diff --git a/app/controllers/api/v1/trends/statuses_controller.rb b/app/controllers/api/v1/trends/statuses_controller.rb index c186864c3b1e21..48bfe119918b20 100644 --- a/app/controllers/api/v1/trends/statuses_controller.rb +++ b/app/controllers/api/v1/trends/statuses_controller.rb @@ -32,10 +32,6 @@ def statuses_from_trends scope end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def pagination_params(core_params) params.slice(:limit).permit(:limit).merge(core_params) end diff --git a/app/controllers/api/v1/trends/tags_controller.rb b/app/controllers/api/v1/trends/tags_controller.rb index aca3dd7089c1bc..6d3855a90a8a6d 100644 --- a/app/controllers/api/v1/trends/tags_controller.rb +++ b/app/controllers/api/v1/trends/tags_controller.rb @@ -30,10 +30,6 @@ def tags_from_trends Trends.tags.query.allowed end - def insert_pagination_headers - set_pagination_headers(next_path, prev_path) - end - def pagination_params(core_params) params.slice(:limit).permit(:limit).merge(core_params) end diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index a046ea19c97d43..8ba10d64c006f4 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -129,7 +129,7 @@ def too_many_requests end def single_user_mode? - @single_user_mode ||= Rails.configuration.x.single_user_mode && Account.where('id > 0').exists? + @single_user_mode ||= Rails.configuration.x.single_user_mode && Account.without_internal.exists? end def use_seamless_external_login? diff --git a/app/controllers/concerns/api/error_handling.rb b/app/controllers/concerns/api/error_handling.rb new file mode 100644 index 00000000000000..ad559fe2d713e1 --- /dev/null +++ b/app/controllers/concerns/api/error_handling.rb @@ -0,0 +1,52 @@ +# frozen_string_literal: true + +module Api::ErrorHandling + extend ActiveSupport::Concern + + included do + rescue_from ActiveRecord::RecordInvalid, Mastodon::ValidationError do |e| + render json: { error: e.to_s }, status: 422 + end + + rescue_from ActiveRecord::RecordNotUnique do + render json: { error: 'Duplicate record' }, status: 422 + end + + rescue_from Date::Error do + render json: { error: 'Invalid date supplied' }, status: 422 + end + + rescue_from ActiveRecord::RecordNotFound do + render json: { error: 'Record not found' }, status: 404 + end + + rescue_from HTTP::Error, Mastodon::UnexpectedResponseError do + render json: { error: 'Remote data could not be fetched' }, status: 503 + end + + rescue_from OpenSSL::SSL::SSLError do + render json: { error: 'Remote SSL certificate could not be verified' }, status: 503 + end + + rescue_from Mastodon::NotPermittedError do + render json: { error: 'This action is not allowed' }, status: 403 + end + + rescue_from Seahorse::Client::NetworkingError do |e| + Rails.logger.warn "Storage server error: #{e}" + render json: { error: 'There was a temporary problem serving your request, please try again' }, status: 503 + end + + rescue_from Mastodon::RaceConditionError, Stoplight::Error::RedLight do + render json: { error: 'There was a temporary problem serving your request, please try again' }, status: 503 + end + + rescue_from Mastodon::RateLimitExceededError do + render json: { error: I18n.t('errors.429') }, status: 429 + end + + rescue_from ActionController::ParameterMissing, Mastodon::InvalidParameterError do |e| + render json: { error: e.to_s }, status: 400 + end + end +end diff --git a/app/controllers/instance_actors_controller.rb b/app/controllers/instance_actors_controller.rb index 8422d74bc33025..f2b1eaa3e703db 100644 --- a/app/controllers/instance_actors_controller.rb +++ b/app/controllers/instance_actors_controller.rb @@ -6,6 +6,8 @@ class InstanceActorsController < ActivityPub::BaseController serialization_scope nil before_action :set_account + + skip_before_action :authenticate_user! # From `AccountOwnedConcern` skip_before_action :require_functional! skip_before_action :update_user_sign_in @@ -16,6 +18,11 @@ def show private + # Skips various `before_action` from `AccountOwnedConcern` + def account_required? + false + end + def set_account @account = Account.representative end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index a9212a7fb6f649..42828b628dcc16 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -30,14 +30,6 @@ def friendly_number_to_human(number, **options) number_to_human(number, **options) end - def active_nav_class(*paths) - paths.any? { |path| current_page?(path) } ? 'active' : '' - end - - def show_landing_strip? - !user_signed_in? && !single_user_mode? - end - def open_registrations? Setting.registrations_mode == 'open' && registrations_in_time? end @@ -223,7 +215,7 @@ def render_initial_state state_params[:moved_to_account] = current_account.moved_to_account end - state_params[:owner] = Account.local.without_suspended.where('id > 0').first if single_user_mode? + state_params[:owner] = Account.local.without_suspended.without_internal.first if single_user_mode? json = ActiveModelSerializers::SerializableResource.new(InitialStatePresenter.new(state_params), serializer: InitialStateSerializer).to_json # rubocop:disable Rails/OutputSafety diff --git a/app/helpers/statuses_helper.rb b/app/helpers/statuses_helper.rb index 01102645de0774..8ded11e03d0a96 100644 --- a/app/helpers/statuses_helper.rb +++ b/app/helpers/statuses_helper.rb @@ -4,14 +4,6 @@ module StatusesHelper EMBEDDED_CONTROLLER = 'statuses' EMBEDDED_ACTION = 'embed' - def link_to_newer(url) - link_to t('statuses.show_newer'), url, class: 'load-more load-gap' - end - - def link_to_older(url) - link_to t('statuses.show_older'), url, class: 'load-more load-gap' - end - def nothing_here(extra_classes = '') content_tag(:div, class: "nothing-here #{extra_classes}") do t('accounts.nothing_here') diff --git a/app/javascript/mastodon/actions/blocks.js b/app/javascript/mastodon/actions/blocks.js index e293657ad36ef9..54296d0905c9a9 100644 --- a/app/javascript/mastodon/actions/blocks.js +++ b/app/javascript/mastodon/actions/blocks.js @@ -12,8 +12,6 @@ export const BLOCKS_EXPAND_REQUEST = 'BLOCKS_EXPAND_REQUEST'; export const BLOCKS_EXPAND_SUCCESS = 'BLOCKS_EXPAND_SUCCESS'; export const BLOCKS_EXPAND_FAIL = 'BLOCKS_EXPAND_FAIL'; -export const BLOCKS_INIT_MODAL = 'BLOCKS_INIT_MODAL'; - export function fetchBlocks() { return (dispatch, getState) => { dispatch(fetchBlocksRequest()); @@ -90,11 +88,12 @@ export function expandBlocksFail(error) { export function initBlockModal(account) { return dispatch => { - dispatch({ - type: BLOCKS_INIT_MODAL, - account, - }); - - dispatch(openModal({ modalType: 'BLOCK' })); + dispatch(openModal({ + modalType: 'BLOCK', + modalProps: { + accountId: account.get('id'), + acct: account.get('acct'), + }, + })); }; } diff --git a/app/javascript/mastodon/actions/domain_blocks.js b/app/javascript/mastodon/actions/domain_blocks.js index 718002613f4053..55c0a6ce9d0ab7 100644 --- a/app/javascript/mastodon/actions/domain_blocks.js +++ b/app/javascript/mastodon/actions/domain_blocks.js @@ -1,6 +1,8 @@ import api, { getLinks } from '../api'; import { blockDomainSuccess, unblockDomainSuccess } from "./domain_blocks_typed"; +import { openModal } from './modal'; + export * from "./domain_blocks_typed"; @@ -150,3 +152,12 @@ export function expandDomainBlocksFail(error) { error, }; } + +export const initDomainBlockModal = account => dispatch => dispatch(openModal({ + modalType: 'DOMAIN_BLOCK', + modalProps: { + domain: account.get('acct').split('@')[1], + acct: account.get('acct'), + accountId: account.get('id'), + }, +})); diff --git a/app/javascript/mastodon/actions/mutes.js b/app/javascript/mastodon/actions/mutes.js index fb041078b84488..99c113f4147302 100644 --- a/app/javascript/mastodon/actions/mutes.js +++ b/app/javascript/mastodon/actions/mutes.js @@ -12,10 +12,6 @@ export const MUTES_EXPAND_REQUEST = 'MUTES_EXPAND_REQUEST'; export const MUTES_EXPAND_SUCCESS = 'MUTES_EXPAND_SUCCESS'; export const MUTES_EXPAND_FAIL = 'MUTES_EXPAND_FAIL'; -export const MUTES_INIT_MODAL = 'MUTES_INIT_MODAL'; -export const MUTES_TOGGLE_HIDE_NOTIFICATIONS = 'MUTES_TOGGLE_HIDE_NOTIFICATIONS'; -export const MUTES_CHANGE_DURATION = 'MUTES_CHANGE_DURATION'; - export function fetchMutes() { return (dispatch, getState) => { dispatch(fetchMutesRequest()); @@ -92,26 +88,12 @@ export function expandMutesFail(error) { export function initMuteModal(account) { return dispatch => { - dispatch({ - type: MUTES_INIT_MODAL, - account, - }); - - dispatch(openModal({ modalType: 'MUTE' })); - }; -} - -export function toggleHideNotifications() { - return dispatch => { - dispatch({ type: MUTES_TOGGLE_HIDE_NOTIFICATIONS }); - }; -} - -export function changeMuteDuration(duration) { - return dispatch => { - dispatch({ - type: MUTES_CHANGE_DURATION, - duration, - }); + dispatch(openModal({ + modalType: 'MUTE', + modalProps: { + accountId: account.get('id'), + acct: account.get('acct'), + }, + })); }; } diff --git a/app/javascript/mastodon/actions/notifications.js b/app/javascript/mastodon/actions/notifications.js index be77bbf415ce52..715b20700f8067 100644 --- a/app/javascript/mastodon/actions/notifications.js +++ b/app/javascript/mastodon/actions/notifications.js @@ -570,7 +570,10 @@ export const fetchNotificationsForRequest = accountId => (dispatch, getState) => api(getState).get('/api/v1/notifications', { params }).then(response => { const next = getLinks(response).refs.find(link => link.rel === 'next'); + dispatch(importFetchedAccounts(response.data.map(item => item.account))); dispatch(importFetchedStatuses(response.data.map(item => item.status).filter(status => !!status))); + dispatch(importFetchedAccounts(response.data.filter(item => item.report).map(item => item.report.target_account))); + dispatch(fetchNotificationsForRequestSuccess(response.data, next?.uri)); }).catch(err => { dispatch(fetchNotificationsForRequestFail(err)); @@ -603,7 +606,10 @@ export const expandNotificationsForRequest = () => (dispatch, getState) => { api(getState).get(url).then(response => { const next = getLinks(response).refs.find(link => link.rel === 'next'); + dispatch(importFetchedAccounts(response.data.map(item => item.account))); dispatch(importFetchedStatuses(response.data.map(item => item.status).filter(status => !!status))); + dispatch(importFetchedAccounts(response.data.filter(item => item.report).map(item => item.report.target_account))); + dispatch(expandNotificationsForRequestSuccess(response.data, next?.uri)); }).catch(err => { dispatch(expandNotificationsForRequestFail(err)); diff --git a/app/javascript/mastodon/components/check_box.tsx b/app/javascript/mastodon/components/check_box.tsx new file mode 100644 index 00000000000000..7da8ef0ac5602d --- /dev/null +++ b/app/javascript/mastodon/components/check_box.tsx @@ -0,0 +1,39 @@ +import classNames from 'classnames'; + +import DoneIcon from '@/material-icons/400-24px/done.svg?react'; + +import { Icon } from './icon'; + +interface Props { + value: string; + checked: boolean; + name: string; + onChange: (event: React.ChangeEvent) => void; + label: React.ReactNode; +} + +export const CheckBox: React.FC = ({ + name, + value, + checked, + onChange, + label, +}) => { + return ( + + ); +}; diff --git a/app/javascript/mastodon/components/column_header.jsx b/app/javascript/mastodon/components/column_header.jsx index 8b7dcebc6713c9..7fd646690d2aaa 100644 --- a/app/javascript/mastodon/components/column_header.jsx +++ b/app/javascript/mastodon/components/column_header.jsx @@ -199,7 +199,7 @@ class ColumnHeader extends PureComponent {

{hasTitle && ( <> - {backButton} + {showBackButton && backButton} ); diff --git a/app/javascript/mastodon/components/relative_timestamp.tsx b/app/javascript/mastodon/components/relative_timestamp.tsx index 12530c2b17bceb..b9e1e4f8fd1ff7 100644 --- a/app/javascript/mastodon/components/relative_timestamp.tsx +++ b/app/javascript/mastodon/components/relative_timestamp.tsx @@ -102,7 +102,7 @@ const getUnitDelay = (units: string) => { }; export const timeAgoString = ( - intl: IntlShape, + intl: Pick, date: Date, now: number, year: number, diff --git a/app/javascript/mastodon/components/status.jsx b/app/javascript/mastodon/components/status.jsx index 92f8643b0ebc3d..8b604b6fc4c8cc 100644 --- a/app/javascript/mastodon/components/status.jsx +++ b/app/javascript/mastodon/components/status.jsx @@ -28,6 +28,7 @@ import Card from '../features/status/components/card'; // to use the progress bar to show download progress import Bundle from '../features/ui/components/bundle'; import { MediaGallery, Video, Audio } from '../features/ui/util/async-components'; +import { SensitiveMediaContext } from '../features/ui/util/sensitive_media_context'; import { displayMedia, enableEmojiReaction, isShowItem, isHideItem } from '../initial_state'; import { Avatar } from './avatar'; @@ -82,6 +83,8 @@ const messages = defineMessages({ class Status extends ImmutablePureComponent { + static contextType = SensitiveMediaContext; + static propTypes = { status: ImmutablePropTypes.map, account: ImmutablePropTypes.record, @@ -142,19 +145,21 @@ class Status extends ImmutablePureComponent { ]; state = { - showMedia: defaultMediaVisibility(this.props.status), - statusId: undefined, + showMedia: defaultMediaVisibility(this.props.status) && !(this.context?.hideMediaByDefault), forceFilter: undefined, }; - static getDerivedStateFromProps(nextProps, prevState) { - if (nextProps.status && nextProps.status.get('id') !== prevState.statusId) { - return { - showMedia: defaultMediaVisibility(nextProps.status), - statusId: nextProps.status.get('id'), - }; - } else { - return null; + componentDidUpdate (prevProps) { + // This will potentially cause a wasteful redraw, but in most cases `Status` components are used + // with a `key` directly depending on their `id`, preventing re-use of the component across + // different IDs. + // But just in case this does change, reset the state on status change. + + if (this.props.status?.get('id') !== prevProps.status?.get('id')) { + this.setState({ + showMedia: defaultMediaVisibility(this.props.status) && !(this.context?.hideMediaByDefault), + forceFilter: undefined, + }); } } diff --git a/app/javascript/mastodon/components/status_action_bar.jsx b/app/javascript/mastodon/components/status_action_bar.jsx index 193743069df6b4..3d88dbbd8fa7ad 100644 --- a/app/javascript/mastodon/components/status_action_bar.jsx +++ b/app/javascript/mastodon/components/status_action_bar.jsx @@ -252,7 +252,7 @@ class StatusActionBar extends ImmutablePureComponent { const { status, onBlockDomain } = this.props; const account = status.get('account'); - onBlockDomain(account.get('acct').split('@')[1]); + onBlockDomain(account); }; handleUnblockDomain = () => { diff --git a/app/javascript/mastodon/containers/status_container.jsx b/app/javascript/mastodon/containers/status_container.jsx index 4b79fc271ca155..ae3e22f908641c 100644 --- a/app/javascript/mastodon/containers/status_container.jsx +++ b/app/javascript/mastodon/containers/status_container.jsx @@ -1,4 +1,4 @@ -import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; +import { defineMessages, injectIntl } from 'react-intl'; import { connect } from 'react-redux'; @@ -16,7 +16,7 @@ import { insertReferenceCompose, } from '../actions/compose'; import { - blockDomain, + initDomainBlockModal, unblockDomain, } from '../actions/domain_blocks'; import { @@ -287,15 +287,8 @@ const mapDispatchToProps = (dispatch, { intl, contextType }) => ({ dispatch(toggleStatusCollapse(status.get('id'), isCollapsed)); }, - onBlockDomain (domain) { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: {domain} }} />, - confirm: intl.formatMessage(messages.blockDomainConfirm), - onConfirm: () => dispatch(blockDomain(domain)), - }, - })); + onBlockDomain (account) { + dispatch(initDomainBlockModal(account)); }, onUnblockDomain (domain) { diff --git a/app/javascript/mastodon/features/about/index.jsx b/app/javascript/mastodon/features/about/index.jsx index bcee8ffaddd396..802153ddc83466 100644 --- a/app/javascript/mastodon/features/about/index.jsx +++ b/app/javascript/mastodon/features/about/index.jsx @@ -262,18 +262,20 @@ class About extends PureComponent { <>

-
- {domainBlocks.get('items').map(block => ( -
-
-
{block.get('domain')}
- {intl.formatMessage(severityMessages[block.get('severity_ex') || block.get('severity')].title)} + {domainBlocks.get('items').size > 0 && ( +
+ {domainBlocks.get('items').map(block => ( +
+
+
{block.get('domain')}
+ {intl.formatMessage(severityMessages[block.get('severity_ex') || block.get('severity')].title)} +
+ +

{(block.get('comment') || '').length > 0 ? block.get('comment') : }

- -

{(block.get('comment') || '').length > 0 ? block.get('comment') : }

-
- ))} -
+ ))} +
+ )} ) : (

diff --git a/app/javascript/mastodon/features/account/components/domain_pill.jsx b/app/javascript/mastodon/features/account/components/domain_pill.jsx new file mode 100644 index 00000000000000..0dadb947f9cd38 --- /dev/null +++ b/app/javascript/mastodon/features/account/components/domain_pill.jsx @@ -0,0 +1,86 @@ +import PropTypes from 'prop-types'; +import { useState, useRef, useCallback } from 'react'; + +import { FormattedMessage } from 'react-intl'; + +import classNames from 'classnames'; + +import Overlay from 'react-overlays/Overlay'; + + + +import AlternateEmailIcon from '@/material-icons/400-24px/alternate_email.svg?react'; +import BadgeIcon from '@/material-icons/400-24px/badge.svg?react'; +import GlobeIcon from '@/material-icons/400-24px/globe.svg?react'; +import { Icon } from 'mastodon/components/icon'; + +export const DomainPill = ({ domain, username, isSelf }) => { + const [open, setOpen] = useState(false); + const [expanded, setExpanded] = useState(false); + const triggerRef = useRef(null); + + const handleClick = useCallback(() => { + setOpen(!open); + }, [open, setOpen]); + + const handleExpandClick = useCallback(() => { + setExpanded(!expanded); + }, [expanded, setExpanded]); + + return ( + <> + + + + {({ props }) => ( +
+
+
+

+
+ +
+
{isSelf ? : }
+
@{username}@{domain}
+
+ +
+
+
+ +
+
+

{isSelf ? : }

+
+
+ +
+
+ +
+
+

{isSelf ? : }

+
+
+
+ +

{isSelf ? }} /> : }} />}

+ + {expanded && ( + <> +

+

+ + )} +
+ )} +
+ + ); +}; + +DomainPill.propTypes = { + username: PropTypes.string.isRequired, + domain: PropTypes.string.isRequired, + isSelf: PropTypes.bool, +}; diff --git a/app/javascript/mastodon/features/account/components/header.jsx b/app/javascript/mastodon/features/account/components/header.jsx index 2b8c4a57fed513..0bf32a6c0bce1b 100644 --- a/app/javascript/mastodon/features/account/components/header.jsx +++ b/app/javascript/mastodon/features/account/components/header.jsx @@ -25,13 +25,15 @@ import { IconButton } from 'mastodon/components/icon_button'; import { LoadingIndicator } from 'mastodon/components/loading_indicator'; import { ShortNumber } from 'mastodon/components/short_number'; import DropdownMenuContainer from 'mastodon/containers/dropdown_menu_container'; -import { autoPlayGif, me, domain, isShowItem } from 'mastodon/initial_state'; +import { autoPlayGif, me, domain as localDomain, isShowItem } from 'mastodon/initial_state'; import { PERMISSION_MANAGE_USERS, PERMISSION_MANAGE_FEDERATION } from 'mastodon/permissions'; import { WithRouterPropTypes } from 'mastodon/utils/react_router'; import AccountNoteContainer from '../containers/account_note_container'; import FollowRequestNoteContainer from '../containers/follow_request_note_container'; +import { DomainPill } from './domain_pill'; + const messages = defineMessages({ unfollow: { id: 'account.unfollow', defaultMessage: 'Unfollow' }, follow: { id: 'account.follow', defaultMessage: 'Follow' }, @@ -81,7 +83,7 @@ const messages = defineMessages({ const titleFromAccount = account => { const displayName = account.get('display_name'); - const acct = account.get('acct') === account.get('username') ? `${account.get('username')}@${domain}` : account.get('acct'); + const acct = account.get('acct') === account.get('username') ? `${account.get('username')}@${localDomain}` : account.get('acct'); const prefix = displayName.trim().length === 0 ? account.get('username') : displayName; return `${prefix} (@${acct})`; @@ -258,7 +260,7 @@ class Header extends ImmutablePureComponent { } render () { - const { account, hidden, intl, domain } = this.props; + const { account, hidden, intl } = this.props; const { signedIn, permissions } = this.context.identity; if (!account) { @@ -404,7 +406,8 @@ class Header extends ImmutablePureComponent { const displayNameHtml = { __html: account.get('display_name_html') }; const fields = account.get('fields'); const isLocal = account.get('acct').indexOf('@') === -1; - const acct = isLocal && domain ? `${account.get('acct')}@${domain}` : account.get('acct'); + const username = account.get('acct').split('@')[0]; + const domain = isLocal ? localDomain : account.get('acct').split('@')[1]; const isIndexable = !account.get('noindex'); const badges = []; @@ -449,7 +452,9 @@ class Header extends ImmutablePureComponent {

- @{acct} {lockedIcon} + @{username}@{domain} + + {lockedIcon}

diff --git a/app/javascript/mastodon/features/account_timeline/components/header.jsx b/app/javascript/mastodon/features/account_timeline/components/header.jsx index 66d4b1354fd7d8..ee46b876f62507 100644 --- a/app/javascript/mastodon/features/account_timeline/components/header.jsx +++ b/app/javascript/mastodon/features/account_timeline/components/header.jsx @@ -75,11 +75,7 @@ class Header extends ImmutablePureComponent { }; handleBlockDomain = () => { - const domain = this.props.account.get('acct').split('@')[1]; - - if (!domain) return; - - this.props.onBlockDomain(domain); + this.props.onBlockDomain(this.props.account); }; handleUnblockDomain = () => { diff --git a/app/javascript/mastodon/features/account_timeline/containers/header_container.jsx b/app/javascript/mastodon/features/account_timeline/containers/header_container.jsx index ecc2e6e7918c5d..6f0f0598a55eaf 100644 --- a/app/javascript/mastodon/features/account_timeline/containers/header_container.jsx +++ b/app/javascript/mastodon/features/account_timeline/containers/header_container.jsx @@ -17,7 +17,7 @@ import { mentionCompose, directCompose, } from '../../../actions/compose'; -import { blockDomain, unblockDomain } from '../../../actions/domain_blocks'; +import { initDomainBlockModal, unblockDomain } from '../../../actions/domain_blocks'; import { openModal } from '../../../actions/modal'; import { initMuteModal } from '../../../actions/mutes'; import { initReport } from '../../../actions/reports'; @@ -140,15 +140,8 @@ const mapDispatchToProps = (dispatch, { intl }) => ({ } }, - onBlockDomain (domain) { - dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: {domain} }} />, - confirm: intl.formatMessage(messages.blockDomainConfirm), - onConfirm: () => dispatch(blockDomain(domain)), - }, - })); + onBlockDomain (account) { + dispatch(initDomainBlockModal(account)); }, onUnblockDomain (domain) { diff --git a/app/javascript/mastodon/features/compose/components/search_results.jsx b/app/javascript/mastodon/features/compose/components/search_results.jsx index 694deea04efb96..667662781e0345 100644 --- a/app/javascript/mastodon/features/compose/components/search_results.jsx +++ b/app/javascript/mastodon/features/compose/components/search_results.jsx @@ -7,7 +7,6 @@ import ImmutablePureComponent from 'react-immutable-pure-component'; import FindInPageIcon from '@/material-icons/400-24px/find_in_page.svg?react'; import PeopleIcon from '@/material-icons/400-24px/group.svg?react'; -import SearchIcon from '@/material-icons/400-24px/search.svg?react'; import TagIcon from '@/material-icons/400-24px/tag.svg?react'; import { Icon } from 'mastodon/components/icon'; import { LoadMore } from 'mastodon/components/load_more'; @@ -76,11 +75,6 @@ class SearchResults extends ImmutablePureComponent { return (
-
- - -
- {accounts} {hashtags} {statuses} diff --git a/app/javascript/mastodon/features/getting_started/index.jsx b/app/javascript/mastodon/features/getting_started/index.jsx index 355fa038e54ac6..eaea90ca042379 100644 --- a/app/javascript/mastodon/features/getting_started/index.jsx +++ b/app/javascript/mastodon/features/getting_started/index.jsx @@ -12,6 +12,7 @@ import { connect } from 'react-redux'; import CirclesIcon from '@/material-icons/400-24px/account_circle-fill.svg?react'; import AlternateEmailIcon from '@/material-icons/400-24px/alternate_email.svg?react'; import BookmarksIcon from '@/material-icons/400-24px/bookmarks-fill.svg?react'; +import ExploreIcon from '@/material-icons/400-24px/explore.svg?react'; import PeopleIcon from '@/material-icons/400-24px/group.svg?react'; import HomeIcon from '@/material-icons/400-24px/home-fill.svg?react'; import ListAltIcon from '@/material-icons/400-24px/list_alt.svg?react'; @@ -20,7 +21,6 @@ import PersonAddIcon from '@/material-icons/400-24px/person_add.svg?react'; import PublicIcon from '@/material-icons/400-24px/public.svg?react'; import SettingsIcon from '@/material-icons/400-24px/settings-fill.svg?react'; import StarIcon from '@/material-icons/400-24px/star.svg?react'; -import TagIcon from '@/material-icons/400-24px/tag.svg?react'; import AntennaIcon from '@/material-icons/400-24px/wifi.svg?react'; import { fetchFollowRequests } from 'mastodon/actions/accounts'; import Column from 'mastodon/components/column'; @@ -117,7 +117,7 @@ class GettingStarted extends ImmutablePureComponent { if (showTrends) { navItems.push( - , + , ); } diff --git a/app/javascript/mastodon/features/notifications/components/filtered_notifications_banner.jsx b/app/javascript/mastodon/features/notifications/components/filtered_notifications_banner.jsx index dddb9d64120851..bf9467bd634c8a 100644 --- a/app/javascript/mastodon/features/notifications/components/filtered_notifications_banner.jsx +++ b/app/javascript/mastodon/features/notifications/components/filtered_notifications_banner.jsx @@ -38,7 +38,7 @@ export const FilteredNotificationsBanner = () => {
- +
diff --git a/app/javascript/mastodon/features/notifications/request.jsx b/app/javascript/mastodon/features/notifications/request.jsx index 5977a6ce96ab56..d1f449844067cd 100644 --- a/app/javascript/mastodon/features/notifications/request.jsx +++ b/app/javascript/mastodon/features/notifications/request.jsx @@ -15,6 +15,7 @@ import Column from 'mastodon/components/column'; import ColumnHeader from 'mastodon/components/column_header'; import { IconButton } from 'mastodon/components/icon_button'; import ScrollableList from 'mastodon/components/scrollable_list'; +import { SensitiveMediaContextProvider } from 'mastodon/features/ui/util/sensitive_media_context'; import NotificationContainer from './containers/notification_container'; @@ -87,7 +88,7 @@ export const NotificationRequest = ({ multiColumn, params: { id } }) => { } }, [dispatch, accountId]); - const columnTitle = intl.formatMessage(messages.title, { name: account?.get('display_name') }); + const columnTitle = intl.formatMessage(messages.title, { name: account?.get('display_name') || account?.get('username') }); return ( @@ -106,25 +107,27 @@ export const NotificationRequest = ({ multiColumn, params: { id } }) => { )} /> - - {notifications.map(item => ( - item && - ))} - + + + {notifications.map(item => ( + item && + ))} + + {columnTitle} diff --git a/app/javascript/mastodon/features/status/components/action_bar.jsx b/app/javascript/mastodon/features/status/components/action_bar.jsx index 02a7c8ce4a87c1..32ce0d606ec4b6 100644 --- a/app/javascript/mastodon/features/status/components/action_bar.jsx +++ b/app/javascript/mastodon/features/status/components/action_bar.jsx @@ -189,7 +189,7 @@ class ActionBar extends PureComponent { const { status, onBlockDomain } = this.props; const account = status.get('account'); - onBlockDomain(account.get('acct').split('@')[1]); + onBlockDomain(account); }; handleUnblockDomain = () => { diff --git a/app/javascript/mastodon/features/status/components/detailed_status.jsx b/app/javascript/mastodon/features/status/components/detailed_status.jsx index 77eb80ea7fa31b..e11db926a1a800 100644 --- a/app/javascript/mastodon/features/status/components/detailed_status.jsx +++ b/app/javascript/mastodon/features/status/components/detailed_status.jsx @@ -9,10 +9,6 @@ import ImmutablePropTypes from 'react-immutable-proptypes'; import ImmutablePureComponent from 'react-immutable-pure-component'; import AlternateEmailIcon from '@/material-icons/400-24px/alternate_email.svg?react'; -import ReferenceIcon from '@/material-icons/400-24px/link.svg?react'; -import EmojiReactionIcon from '@/material-icons/400-24px/mood.svg?react'; -import RepeatIcon from '@/material-icons/400-24px/repeat.svg?react'; -import StarIcon from '@/material-icons/400-24px/star-fill.svg?react'; import { AnimatedNumber } from 'mastodon/components/animated_number'; import EditedTimestamp from 'mastodon/components/edited_timestamp'; import { getHashtagBarForStatus } from 'mastodon/components/hashtag_bar'; @@ -151,12 +147,9 @@ class DetailedStatus extends ImmutablePureComponent { let isCardMediaWithSensitive = false; let applicationLink = ''; let reblogLink = ''; - const reblogIcon = 'retweet'; - const reblogIconComponent = RepeatIcon; let favouriteLink = ''; let emojiReactionsLink = ''; let statusReferencesLink = ''; - let edited = ''; if (this.props.measureHeight) { outerStyle.height = `${this.state.height}px`; @@ -238,56 +231,50 @@ class DetailedStatus extends ImmutablePureComponent { } if (status.get('application')) { - applicationLink = <> · {status.getIn(['application', 'name'])}; + applicationLink = <>·{status.getIn(['application', 'name'])}; } - const visibilityLink = <> · ; - const searchabilityLink = <> · ; + const visibilityLink = <>·; + const searchabilityLink = <>·; if (['private', 'direct'].includes(status.get('visibility_ex'))) { reblogLink = ''; } else if (this.props.history) { reblogLink = ( - <> - {' · '} - - - - - - - + + + + + + ); } else { reblogLink = ( - <> - {' · '} - - - - - - - + + + + + + ); } if (this.props.history) { favouriteLink = ( - + ); } else { favouriteLink = ( - + ); } @@ -295,19 +282,19 @@ class DetailedStatus extends ImmutablePureComponent { if (this.props.history) { emojiReactionsLink = ( - + ); } else { emojiReactionsLink = ( - + ); } @@ -315,32 +302,23 @@ class DetailedStatus extends ImmutablePureComponent { if (this.props.history) { statusReferencesLink = ( - + ); } else { statusReferencesLink = ( - + ); } - if (status.get('edited_at')) { - edited = ( - <> - {' · '} - - - ); - } - const {statusContentProps, hashtagBar} = getHashtagBarForStatus(status); const expanded = !status.get('hidden') || status.get('spoiler_text').length === 0; @@ -373,9 +351,28 @@ class DetailedStatus extends ImmutablePureComponent { {emojiReactionsBar}
- - - {edited}{visibilityLink}{searchabilityLink}{applicationLink}{reblogLink} · {favouriteLink} · {emojiReactionsLink} · {statusReferencesLink} +
+ + + + + {visibilityLink} + {searchabilityLink} + + {applicationLink} +
+ + {status.get('edited_at') &&
} + +
+ {reblogLink} + {reblogLink && <>·} + {favouriteLink} + · + {emojiReactionsLink} + · + {statusReferencesLink} +
diff --git a/app/javascript/mastodon/features/status/index.jsx b/app/javascript/mastodon/features/status/index.jsx index 2f7f418c9fbecb..7b75ebb03f407f 100644 --- a/app/javascript/mastodon/features/status/index.jsx +++ b/app/javascript/mastodon/features/status/index.jsx @@ -1,6 +1,6 @@ import PropTypes from 'prop-types'; -import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; +import { defineMessages, injectIntl } from 'react-intl'; import classNames from 'classnames'; import { Helmet } from 'react-helmet'; @@ -35,7 +35,7 @@ import { insertReferenceCompose, } from '../../actions/compose'; import { - blockDomain, + initDomainBlockModal, unblockDomain, } from '../../actions/domain_blocks'; import { @@ -525,15 +525,8 @@ class Status extends ImmutablePureComponent { this.props.dispatch(unblockAccount(account.get('id'))); }; - handleBlockDomainClick = domain => { - this.props.dispatch(openModal({ - modalType: 'CONFIRM', - modalProps: { - message: {domain} }} />, - confirm: this.props.intl.formatMessage(messages.blockDomainConfirm), - onConfirm: () => this.props.dispatch(blockDomain(domain)), - }, - })); + handleBlockDomainClick = account => { + this.props.dispatch(initDomainBlockModal(account)); }; handleUnblockDomainClick = domain => { diff --git a/app/javascript/mastodon/features/ui/components/block_modal.jsx b/app/javascript/mastodon/features/ui/components/block_modal.jsx index cfac692324aa23..fc9233a9cc6367 100644 --- a/app/javascript/mastodon/features/ui/components/block_modal.jsx +++ b/app/javascript/mastodon/features/ui/components/block_modal.jsx @@ -1,100 +1,116 @@ import PropTypes from 'prop-types'; -import { PureComponent } from 'react'; - -import { injectIntl, FormattedMessage } from 'react-intl'; - -import { connect } from 'react-redux'; - -import { blockAccount } from '../../../actions/accounts'; -import { closeModal } from '../../../actions/modal'; -import { initReport } from '../../../actions/reports'; -import { Button } from '../../../components/button'; -import { makeGetAccount } from '../../../selectors'; - -const makeMapStateToProps = () => { - const getAccount = makeGetAccount(); - - const mapStateToProps = state => ({ - account: getAccount(state, state.getIn(['blocks', 'new', 'account_id'])), - }); - - return mapStateToProps; -}; - -const mapDispatchToProps = dispatch => { - return { - onConfirm(account) { - dispatch(blockAccount(account.get('id'))); - }, - - onBlockAndReport(account) { - dispatch(blockAccount(account.get('id'))); - dispatch(initReport(account)); - }, - - onClose() { - dispatch(closeModal({ - modalType: undefined, - ignoreFocus: false, - })); - }, - }; -}; +import { useCallback, useState } from 'react'; + +import { FormattedMessage } from 'react-intl'; + +import classNames from 'classnames'; + +import { useDispatch } from 'react-redux'; + +import AlternateEmailIcon from '@/material-icons/400-24px/alternate_email.svg?react'; +import BlockIcon from '@/material-icons/400-24px/block.svg?react'; +import CampaignIcon from '@/material-icons/400-24px/campaign.svg?react'; +import ReplyIcon from '@/material-icons/400-24px/reply.svg?react'; +import VisibilityOffIcon from '@/material-icons/400-24px/visibility_off.svg?react'; +import { blockAccount } from 'mastodon/actions/accounts'; +import { closeModal } from 'mastodon/actions/modal'; +import { Button } from 'mastodon/components/button'; +import { Icon } from 'mastodon/components/icon'; + +export const BlockModal = ({ accountId, acct }) => { + const dispatch = useDispatch(); + const [expanded, setExpanded] = useState(false); + + const domain = acct.split('@')[1]; + + const handleClick = useCallback(() => { + dispatch(closeModal({ modalType: undefined, ignoreFocus: false })); + dispatch(blockAccount(accountId)); + }, [dispatch, accountId]); + + const handleCancel = useCallback(() => { + dispatch(closeModal({ modalType: undefined, ignoreFocus: false })); + }, [dispatch]); + + const handleToggleLearnMore = useCallback(() => { + setExpanded(!expanded); + }, [expanded, setExpanded]); + + return ( +
+
+
+
+ +
+ +
+

+
@{acct}
+
+
-class BlockModal extends PureComponent { - - static propTypes = { - account: PropTypes.object.isRequired, - onClose: PropTypes.func.isRequired, - onBlockAndReport: PropTypes.func.isRequired, - onConfirm: PropTypes.func.isRequired, - intl: PropTypes.object.isRequired, - }; - - handleClick = () => { - this.props.onClose(); - this.props.onConfirm(this.props.account); - }; - - handleSecondary = () => { - this.props.onClose(); - this.props.onBlockAndReport(this.props.account); - }; - - handleCancel = () => { - this.props.onClose(); - }; - - render () { - const { account } = this.props; - - return ( -
-
-

- @{account.get('acct')} }} - /> -

+
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+
-
- + )} + +
+ + - - + +
- ); - } +
+ ); +}; -} +BlockModal.propTypes = { + accountId: PropTypes.string.isRequired, + acct: PropTypes.string.isRequired, +}; -export default connect(makeMapStateToProps, mapDispatchToProps)(injectIntl(BlockModal)); +export default BlockModal; diff --git a/app/javascript/mastodon/features/ui/components/domain_block_modal.jsx b/app/javascript/mastodon/features/ui/components/domain_block_modal.jsx new file mode 100644 index 00000000000000..e69db6348959a1 --- /dev/null +++ b/app/javascript/mastodon/features/ui/components/domain_block_modal.jsx @@ -0,0 +1,106 @@ +import PropTypes from 'prop-types'; +import { useCallback } from 'react'; + +import { FormattedMessage } from 'react-intl'; + +import { useDispatch } from 'react-redux'; + +import CampaignIcon from '@/material-icons/400-24px/campaign.svg?react'; +import DomainDisabledIcon from '@/material-icons/400-24px/domain_disabled.svg?react'; +import HistoryIcon from '@/material-icons/400-24px/history.svg?react'; +import PersonRemoveIcon from '@/material-icons/400-24px/person_remove.svg?react'; +import ReplyIcon from '@/material-icons/400-24px/reply.svg?react'; +import VisibilityOffIcon from '@/material-icons/400-24px/visibility_off.svg?react'; +import { blockAccount } from 'mastodon/actions/accounts'; +import { blockDomain } from 'mastodon/actions/domain_blocks'; +import { closeModal } from 'mastodon/actions/modal'; +import { Button } from 'mastodon/components/button'; +import { Icon } from 'mastodon/components/icon'; + +export const DomainBlockModal = ({ domain, accountId, acct }) => { + const dispatch = useDispatch(); + + const handleClick = useCallback(() => { + dispatch(closeModal({ modalType: undefined, ignoreFocus: false })); + dispatch(blockDomain(domain)); + }, [dispatch, domain]); + + const handleSecondaryClick = useCallback(() => { + dispatch(closeModal({ modalType: undefined, ignoreFocus: false })); + dispatch(blockAccount(accountId)); + }, [dispatch, accountId]); + + const handleCancel = useCallback(() => { + dispatch(closeModal({ modalType: undefined, ignoreFocus: false })); + }, [dispatch]); + + return ( +
+
+
+
+ +
+ +
+

+
{domain}
+
+
+ +
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+
+
+ +
+
+ + +
+ + + + +
+
+
+ ); +}; + +DomainBlockModal.propTypes = { + domain: PropTypes.string.isRequired, + accountId: PropTypes.string.isRequired, + acct: PropTypes.string.isRequired, +}; + +export default DomainBlockModal; diff --git a/app/javascript/mastodon/features/ui/components/modal_root.jsx b/app/javascript/mastodon/features/ui/components/modal_root.jsx index d81a7d381f494d..d127bfb9f0912e 100644 --- a/app/javascript/mastodon/features/ui/components/modal_root.jsx +++ b/app/javascript/mastodon/features/ui/components/modal_root.jsx @@ -7,6 +7,7 @@ import Base from 'mastodon/components/modal_root'; import { MuteModal, BlockModal, + DomainBlockModal, ReportModal, EmbedModal, ListEditor, @@ -46,6 +47,7 @@ export const MODAL_COMPONENTS = { 'CONFIRM': () => Promise.resolve({ default: ConfirmationModal }), 'MUTE': MuteModal, 'BLOCK': BlockModal, + 'DOMAIN_BLOCK': DomainBlockModal, 'REPORT': ReportModal, 'ACTIONS': () => Promise.resolve({ default: ActionsModal }), 'EMBED': EmbedModal, diff --git a/app/javascript/mastodon/features/ui/components/mute_modal.jsx b/app/javascript/mastodon/features/ui/components/mute_modal.jsx index fa81ea81a31d53..e9dc1a7c2ec38c 100644 --- a/app/javascript/mastodon/features/ui/components/mute_modal.jsx +++ b/app/javascript/mastodon/features/ui/components/mute_modal.jsx @@ -1,138 +1,154 @@ import PropTypes from 'prop-types'; -import { PureComponent } from 'react'; +import { useCallback, useState } from 'react'; -import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; +import { defineMessages, useIntl, FormattedMessage } from 'react-intl'; -import { connect } from 'react-redux'; +import classNames from 'classnames'; -import Toggle from 'react-toggle'; +import { useDispatch } from 'react-redux'; -import { muteAccount } from '../../../actions/accounts'; -import { closeModal } from '../../../actions/modal'; -import { toggleHideNotifications, changeMuteDuration } from '../../../actions/mutes'; -import { Button } from '../../../components/button'; + +import AlternateEmailIcon from '@/material-icons/400-24px/alternate_email.svg?react'; +import CampaignIcon from '@/material-icons/400-24px/campaign.svg?react'; +import ReplyIcon from '@/material-icons/400-24px/reply.svg?react'; +import VisibilityOffIcon from '@/material-icons/400-24px/visibility_off.svg?react'; +import VolumeOffIcon from '@/material-icons/400-24px/volume_off.svg?react'; +import { muteAccount } from 'mastodon/actions/accounts'; +import { closeModal } from 'mastodon/actions/modal'; +import { Button } from 'mastodon/components/button'; +import { CheckBox } from 'mastodon/components/check_box'; +import { Icon } from 'mastodon/components/icon'; +import { RadioButton } from 'mastodon/components/radio_button'; const messages = defineMessages({ minutes: { id: 'intervals.full.minutes', defaultMessage: '{number, plural, one {# minute} other {# minutes}}' }, hours: { id: 'intervals.full.hours', defaultMessage: '{number, plural, one {# hour} other {# hours}}' }, days: { id: 'intervals.full.days', defaultMessage: '{number, plural, one {# day} other {# days}}' }, - indefinite: { id: 'mute_modal.indefinite', defaultMessage: 'Indefinite' }, + indefinite: { id: 'mute_modal.indefinite', defaultMessage: 'Until I unmute them' }, + hideFromNotifications: { id: 'mute_modal.hide_from_notifications', defaultMessage: 'Hide from notifications' }, }); -const mapStateToProps = state => { - return { - account: state.getIn(['mutes', 'new', 'account']), - notifications: state.getIn(['mutes', 'new', 'notifications']), - muteDuration: state.getIn(['mutes', 'new', 'duration']), - }; +const RadioButtonLabel = ({ name, value, currentValue, onChange, label }) => ( + +); + +RadioButtonLabel.propTypes = { + name: PropTypes.string, + value: PropTypes.oneOf([PropTypes.string, PropTypes.number, PropTypes.bool]), + currentValue: PropTypes.oneOf([PropTypes.string, PropTypes.number, PropTypes.bool]), + checked: PropTypes.bool, + onChange: PropTypes.func, + label: PropTypes.node, }; -const mapDispatchToProps = dispatch => { - return { - onConfirm(account, notifications, muteDuration) { - dispatch(muteAccount(account.get('id'), notifications, muteDuration)); - }, - - onClose() { - dispatch(closeModal({ - modalType: undefined, - ignoreFocus: false, - })); - }, - - onToggleNotifications() { - dispatch(toggleHideNotifications()); - }, - - onChangeMuteDuration(e) { - dispatch(changeMuteDuration(e.target.value)); - }, - }; -}; +export const MuteModal = ({ accountId, acct }) => { + const intl = useIntl(); + const dispatch = useDispatch(); + const [notifications, setNotifications] = useState(true); + const [muteDuration, setMuteDuration] = useState('0'); + const [expanded, setExpanded] = useState(false); + + const handleClick = useCallback(() => { + dispatch(closeModal({ modalType: undefined, ignoreFocus: false })); + dispatch(muteAccount(accountId, notifications, muteDuration)); + }, [dispatch, accountId, notifications, muteDuration]); + + const handleCancel = useCallback(() => { + dispatch(closeModal({ modalType: undefined, ignoreFocus: false })); + }, [dispatch]); + + const handleToggleNotifications = useCallback(({ target }) => { + setNotifications(target.checked); + }, [setNotifications]); + + const handleChangeMuteDuration = useCallback(({ target }) => { + setMuteDuration(target.value); + }, [setMuteDuration]); + + const handleToggleSettings = useCallback(() => { + setExpanded(!expanded); + }, [expanded, setExpanded]); + + return ( +
+
+
+
+ +
+ +
+

+
@{acct}
+
+
-class MuteModal extends PureComponent { - - static propTypes = { - account: PropTypes.object.isRequired, - notifications: PropTypes.bool.isRequired, - onClose: PropTypes.func.isRequired, - onConfirm: PropTypes.func.isRequired, - onToggleNotifications: PropTypes.func.isRequired, - intl: PropTypes.object.isRequired, - muteDuration: PropTypes.number.isRequired, - onChangeMuteDuration: PropTypes.func.isRequired, - }; - - handleClick = () => { - this.props.onClose(); - this.props.onConfirm(this.props.account, this.props.notifications, this.props.muteDuration); - }; - - handleCancel = () => { - this.props.onClose(); - }; - - toggleNotifications = () => { - this.props.onToggleNotifications(); - }; - - changeMuteDuration = (e) => { - this.props.onChangeMuteDuration(e); - }; - - render () { - const { account, notifications, muteDuration, intl } = this.props; - - return ( -
-
-

- @{account.get('acct')} }} - /> -

-

- -

-
- - +
+
+
+
+
- : - - +
+
+
+ +
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+ + + + +
+ +
+
-
- + +
+ + - + +
- ); - } +
+ ); +}; -} +MuteModal.propTypes = { + accountId: PropTypes.string.isRequired, + acct: PropTypes.string.isRequired, +}; -export default connect(mapStateToProps, mapDispatchToProps)(injectIntl(MuteModal)); +export default MuteModal; diff --git a/app/javascript/mastodon/features/ui/components/navigation_panel.jsx b/app/javascript/mastodon/features/ui/components/navigation_panel.jsx index e4178b81685e22..3d8812bbd26029 100644 --- a/app/javascript/mastodon/features/ui/components/navigation_panel.jsx +++ b/app/javascript/mastodon/features/ui/components/navigation_panel.jsx @@ -70,8 +70,8 @@ const NotificationsLink = () => { } - activeIcon={} + icon={} + activeIcon={} text={intl.formatMessage(messages.notifications)} /> ); @@ -94,8 +94,8 @@ const FollowRequestsLink = () => { } - activeIcon={} + icon={} + activeIcon={} text={intl.formatMessage(messages.followRequests)} /> ); diff --git a/app/javascript/mastodon/features/ui/util/async-components.js b/app/javascript/mastodon/features/ui/util/async-components.js index cbb04aa2a5874b..11c3afb315e4dc 100644 --- a/app/javascript/mastodon/features/ui/util/async-components.js +++ b/app/javascript/mastodon/features/ui/util/async-components.js @@ -162,6 +162,10 @@ export function BlockModal () { return import(/* webpackChunkName: "modals/block_modal" */'../components/block_modal'); } +export function DomainBlockModal () { + return import(/* webpackChunkName: "modals/domain_block_modal" */'../components/domain_block_modal'); +} + export function ReportModal () { return import(/* webpackChunkName: "modals/report_modal" */'../components/report_modal'); } diff --git a/app/javascript/mastodon/features/ui/util/sensitive_media_context.tsx b/app/javascript/mastodon/features/ui/util/sensitive_media_context.tsx new file mode 100644 index 00000000000000..408154c31bf122 --- /dev/null +++ b/app/javascript/mastodon/features/ui/util/sensitive_media_context.tsx @@ -0,0 +1,28 @@ +import { createContext, useContext, useMemo } from 'react'; + +export const SensitiveMediaContext = createContext<{ + hideMediaByDefault: boolean; +}>({ + hideMediaByDefault: false, +}); + +export function useSensitiveMediaContext() { + return useContext(SensitiveMediaContext); +} + +type ContextValue = React.ContextType; + +export const SensitiveMediaContextProvider: React.FC< + React.PropsWithChildren<{ hideMediaByDefault: boolean }> +> = ({ hideMediaByDefault, children }) => { + const contextValue = useMemo( + () => ({ hideMediaByDefault }), + [hideMediaByDefault], + ); + + return ( + + {children} + + ); +}; diff --git a/app/javascript/mastodon/locales/af.json b/app/javascript/mastodon/locales/af.json index baa7e7bf709460..e4f7f12b0edcfb 100644 --- a/app/javascript/mastodon/locales/af.json +++ b/app/javascript/mastodon/locales/af.json @@ -119,9 +119,7 @@ "compose_form.spoiler.marked": "Verwyder inhoudswaarskuwing", "compose_form.spoiler.unmarked": "Voeg inhoudswaarskuwing by", "confirmation_modal.cancel": "Kanselleer", - "confirmations.block.block_and_report": "Blokkeer en rapporteer", "confirmations.block.confirm": "Blokkeer", - "confirmations.block.message": "Is jy seker jy wil {name} blokkeer?", "confirmations.cancel_follow_request.confirm": "Herroep versoek", "confirmations.cancel_follow_request.message": "Is jy seker jy wil jou versoek om {name} te volg, terugtrek?", "confirmations.delete.confirm": "Wis uit", @@ -129,7 +127,6 @@ "confirmations.delete_list.confirm": "Wis uit", "confirmations.delete_list.message": "Is jy seker jy wil hierdie lys permanent verwyder?", "confirmations.discard_edit_media.confirm": "Gooi weg", - "confirmations.domain_block.confirm": "Blokkeer die hele domein", "confirmations.logout.confirm": "Teken Uit", "confirmations.logout.message": "Is jy seker jy wil uitteken?", "confirmations.reply.confirm": "Antwoord", diff --git a/app/javascript/mastodon/locales/an.json b/app/javascript/mastodon/locales/an.json index e9d609a1ce30ae..3f1fd376ff46ec 100644 --- a/app/javascript/mastodon/locales/an.json +++ b/app/javascript/mastodon/locales/an.json @@ -132,9 +132,7 @@ "compose_form.spoiler.marked": "Texto amagau dimpués de l'alvertencia", "compose_form.spoiler.unmarked": "Texto no amagau", "confirmation_modal.cancel": "Cancelar", - "confirmations.block.block_and_report": "Blocar y Denunciar", "confirmations.block.confirm": "Blocar", - "confirmations.block.message": "Yes seguro que quiers blocar a {name}?", "confirmations.cancel_follow_request.confirm": "Retirar solicitut", "confirmations.cancel_follow_request.message": "Yes seguro que deseyas retirar la tuya solicitut pa seguir a {name}?", "confirmations.delete.confirm": "Eliminar", @@ -143,13 +141,10 @@ "confirmations.delete_list.message": "Seguro que quiers borrar esta lista permanentment?", "confirmations.discard_edit_media.confirm": "Descartar", "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.logout.confirm": "Zarrar sesión", "confirmations.logout.message": "Yes seguro de querer zarrar la sesión?", "confirmations.mute.confirm": "Silenciar", - "confirmations.mute.explanation": "Esto amagará las publicacions d'ells y en as qualas los has mencionau, pero les permitirá veyer los tuyos mensaches y seguir-te.", - "confirmations.mute.message": "Yes seguro que quiers silenciar a {name}?", "confirmations.redraft.confirm": "Borrar y tornar ta borrador", "confirmations.reply.confirm": "Responder", "confirmations.reply.message": "Responder sobrescribirá lo mensache que yes escribindo. Yes seguro que deseyas continar?", @@ -253,7 +248,6 @@ "hashtag.column_settings.tag_toggle": "Include additional tags in this column", "hashtag.follow": "Seguir etiqueta", "hashtag.unfollow": "Deixar de seguir etiqueta", - "home.column_settings.basic": "Basico", "home.column_settings.show_reblogs": "Amostrar retutz", "home.column_settings.show_replies": "Amostrar respuestas", "home.hide_announcements": "Amagar anuncios", @@ -324,9 +318,6 @@ "load_pending": "{count, plural, one {# nuevo elemento} other {# nuevos elementos}}", "media_gallery.toggle_visible": "{number, plural, one {Amaga la imachen} other {Amaga las imáchens}}", "moved_to_account_banner.text": "La tuya cuenta {disabledAccount} ye actualment deshabilitada perque t'has mudau a {movedToAccount}.", - "mute_modal.duration": "Duración", - "mute_modal.hide_notifications": "Amagar notificacions d'este usuario?", - "mute_modal.indefinite": "Indefinida", "navigation_bar.about": "Sobre", "navigation_bar.blocks": "Usuarios blocaus", "navigation_bar.bookmarks": "Marcadors", @@ -363,9 +354,6 @@ "notifications.column_settings.admin.report": "Nuevos informes:", "notifications.column_settings.admin.sign_up": "Nuevos rechistros:", "notifications.column_settings.alert": "Notificacions d'escritorio", - "notifications.column_settings.filter_bar.advanced": "Amostrar totas las categorías", - "notifications.column_settings.filter_bar.category": "Barra de filtrau rapido", - "notifications.column_settings.filter_bar.show_bar": "Amostrar barra de filtros", "notifications.column_settings.follow": "Nuevos seguidores:", "notifications.column_settings.follow_request": "Nuevas solicitutz de seguimiento:", "notifications.column_settings.mention": "Mencions:", @@ -504,7 +492,6 @@ "status.delete": "Borrar", "status.detailed_status": "Vista de conversación detallada", "status.edit": "Editar", - "status.edited": "Editau {date}", "status.edited_x_times": "Editau {count, plural, one {{count} vez} other {{count} veces}}", "status.embed": "Incrustado", "status.filter": "Filtrar esta publicación", diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index 914c15ad9536f4..747c47960fca68 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -160,9 +160,7 @@ "compose_form.spoiler.unmarked": "إضافة تحذير للمحتوى", "compose_form.spoiler_placeholder": "تحذير المحتوى (اختياري)", "confirmation_modal.cancel": "إلغاء", - "confirmations.block.block_and_report": "حظره والإبلاغ عنه", "confirmations.block.confirm": "حظر", - "confirmations.block.message": "هل أنتَ مُتأكدٌ أنكَ تُريدُ حَظرَ {name}؟", "confirmations.cancel_follow_request.confirm": "إلغاء الطلب", "confirmations.cancel_follow_request.message": "متأكد من أنك تريد إلغاء طلب متابعتك لـ {name}؟", "confirmations.delete.confirm": "حذف", @@ -171,15 +169,12 @@ "confirmations.delete_list.message": "هل أنتَ مُتأكدٌ أنكَ تُريدُ حَذفَ هذِهِ القائمة بشكلٍ دائم؟", "confirmations.discard_edit_media.confirm": "تجاهل", "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": "أكتم", - "confirmations.mute.explanation": "هذا سيخفي المنشورات عنهم وتلك المشار فيها إليهم، لكنه سيسمح لهم برؤية منشوراتك ومتابعتك.", - "confirmations.mute.message": "هل أنت متأكد أنك تريد كتم {name} ؟", "confirmations.redraft.confirm": "إزالة وإعادة الصياغة", "confirmations.redraft.message": "هل أنت متأكد من أنك تريد حذف هذا المنشور و إعادة صياغته؟ سوف تفقد جميع الإعجابات و الترقيات أما الردود المتصلة به فستُصبِح يتيمة.", "confirmations.reply.confirm": "رد", @@ -314,7 +309,6 @@ "hashtag.follow": "اتبع الوسم", "hashtag.unfollow": "ألغِ متابعة الوسم", "hashtags.and_other": "…و {count, plural, zero {} one {# واحد آخر} two {# اثنان آخران} few {# آخرون} many {# آخَرًا}other {# آخرون}}", - "home.column_settings.basic": "الأساسية", "home.column_settings.show_reblogs": "اعرض المعاد نشرها", "home.column_settings.show_replies": "اعرض الردود", "home.hide_announcements": "إخفاء الإعلانات", @@ -400,9 +394,6 @@ "loading_indicator.label": "جاري التحميل…", "media_gallery.toggle_visible": "{number, plural, zero {} one {اخف الصورة} two {اخف الصورتين} few {اخف الصور} many {اخف الصور} other {اخف الصور}}", "moved_to_account_banner.text": "حسابك {disabledAccount} معطل حاليًا لأنك انتقلت إلى {movedToAccount}.", - "mute_modal.duration": "المدة", - "mute_modal.hide_notifications": "هل تود إخفاء الإخطارات القادمة من هذا المستخدم ؟", - "mute_modal.indefinite": "إلى أجل غير مسمى", "navigation_bar.about": "عن", "navigation_bar.advanced_interface": "افتحه في واجهة الويب المتقدمة", "navigation_bar.blocks": "الحسابات المحجوبة", @@ -446,9 +437,6 @@ "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": "الإشارات:", @@ -650,7 +638,6 @@ "status.direct": "إشارة خاصة لـ @{name}", "status.direct_indicator": "إشارة خاصة", "status.edit": "تعديل", - "status.edited": "عُدّل في {date}", "status.edited_x_times": "عُدّل {count, plural, zero {} one {مرةً واحدة} two {مرّتان} few {{count} مرات} many {{count} مرة} other {{count} مرة}}", "status.embed": "إدماج", "status.favourite": "فضّل", diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json index 8e69d434b478dd..b5015c75d893c1 100644 --- a/app/javascript/mastodon/locales/ast.json +++ b/app/javascript/mastodon/locales/ast.json @@ -112,16 +112,13 @@ "compose_form.poll.type": "Estilu", "compose_form.publish_form": "Artículu nuevu", "confirmation_modal.cancel": "Encaboxar", - "confirmations.block.block_and_report": "Bloquiar ya informar", "confirmations.block.confirm": "Bloquiar", - "confirmations.block.message": "¿De xuru que quies bloquiar a {name}?", "confirmations.cancel_follow_request.confirm": "Retirala", "confirmations.cancel_follow_request.message": "¿De xuru que quies retirar la solicitú pa siguir a {name}?", "confirmations.delete.confirm": "Desaniciar", "confirmations.delete.message": "¿De xuru que quies desaniciar esti artículu?", "confirmations.delete_list.confirm": "Desaniciar", "confirmations.discard_edit_media.confirm": "Escartar", - "confirmations.domain_block.confirm": "Bloquiar tol dominiu", "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?", @@ -221,7 +218,6 @@ "hashtag.counter_by_accounts": "{count, plural, one {{counter} participante} other {{counter} participantes}}", "hashtag.follow": "Siguir a la etiqueta", "hashtag.unfollow": "Dexar de siguir a la etiqueta", - "home.column_settings.basic": "Configuración básica", "home.column_settings.show_reblogs": "Amosar los artículos compartíos", "home.column_settings.show_replies": "Amosar les rempuestes", "home.pending_critical_update.body": "¡Anueva'l sirvidor de Mastodon namás que puedas!", @@ -278,8 +274,6 @@ "lists.subheading": "Les tos llistes", "load_pending": "{count, plural, one {# elementu nuevu} other {# elementos nuevos}}", "media_gallery.toggle_visible": "{number, plural, one {Anubrir la imaxe} other {Anubrir les imáxenes}}", - "mute_modal.duration": "Duración", - "mute_modal.hide_notifications": "¿Quies anubrir los avisos d'esti perfil?", "navigation_bar.about": "Tocante a", "navigation_bar.blocks": "Perfiles bloquiaos", "navigation_bar.bookmarks": "Marcadores", @@ -311,9 +305,6 @@ "notifications.clear": "Borrar los avisos", "notifications.column_settings.admin.report": "Informes nuevos:", "notifications.column_settings.admin.sign_up": "Rexistros nuevos:", - "notifications.column_settings.filter_bar.advanced": "Amosar toles categoríes", - "notifications.column_settings.filter_bar.category": "Barra de peñera rápida", - "notifications.column_settings.filter_bar.show_bar": "Amosar la barra de peñera", "notifications.column_settings.follow": "Siguidores nuevos:", "notifications.column_settings.follow_request": "Solicitúes de siguimientu nueves:", "notifications.column_settings.mention": "Menciones:", @@ -433,7 +424,6 @@ "status.delete": "Desaniciar", "status.direct": "Mentar a @{name} per privao", "status.direct_indicator": "Mención privada", - "status.edited": "Editóse'l {date}", "status.edited_x_times": "Editóse {count, plural, one {{count} vegada} other {{count} vegaes}}", "status.embed": "Empotrar", "status.filter": "Peñerar esti artículu", diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index c0b744fbaf7160..1ff94eca6c7096 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -89,6 +89,14 @@ "announcement.announcement": "Аб'ява", "attachments_list.unprocessed": "(неапрацаваны)", "audio.hide": "Схаваць аўдыя", + "block_modal.remote_users_caveat": "Мы папросім сервер {domain} паважаць ваш выбар. Аднак гэта не гарантуецца, паколькі некаторыя серверы могуць апрацоўваць блакіроўкі іншым чынам. Публічныя паведамленні могуць заставацца бачнымі для ананімных карыстальнікаў.", + "block_modal.show_less": "Паказаць меньш", + "block_modal.show_more": "Паказаць больш", + "block_modal.they_cant_mention": "Карыстальнік не зможа згадваць або сачыць за вамі.", + "block_modal.they_cant_see_posts": "Карыстальнік не будзе бачыць вашых допісаў, а вы — карыстальніка.", + "block_modal.they_will_know": "Карыстальнік убачыць, што адбылася блакіроўка.", + "block_modal.title": "Заблакіраваць карыстальніка?", + "block_modal.you_wont_see_mentions": "Вы не ўбачыце паведамленняў са згадваннем карыстальніка.", "boost_modal.combo": "Націсніце {combo}, каб прапусціць наступным разам", "bundle_column_error.copy_stacktrace": "Скапіраваць справаздачу пра памылку", "bundle_column_error.error.body": "Запытаная старонка не можа быць адлюстраваная. Гэта магло стацца праз хібу ў нашым кодзе, або праз памылку сумяшчальнасці з браўзерам.", @@ -160,9 +168,7 @@ "compose_form.spoiler.unmarked": "Дадаць папярэджанне аб змесціве", "compose_form.spoiler_placeholder": "Папярэджанне аб змесціве (неабавязкова)", "confirmation_modal.cancel": "Скасаваць", - "confirmations.block.block_and_report": "Заблакіраваць і паскардзіцца", "confirmations.block.confirm": "Заблакіраваць", - "confirmations.block.message": "Вы ўпэўненыя што хочаце заблакіраваць {name}?", "confirmations.cancel_follow_request.confirm": "Скасаваць запыт", "confirmations.cancel_follow_request.message": "Сапраўды хочаце скасаваць свой запыт на падпіску на {name}?", "confirmations.delete.confirm": "Выдаліць", @@ -171,15 +177,13 @@ "confirmations.delete_list.message": "Вы ўпэўненыя, што хочаце беззваротна выдаліць гэты чарнавік?", "confirmations.discard_edit_media.confirm": "Адмяніць", "confirmations.discard_edit_media.message": "У вас ёсць незахаваныя змены ў апісанні або прэв'ю, усе роўна скасаваць іх?", - "confirmations.domain_block.confirm": "Заблакіраваць дамен цалкам", + "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.message": "Вы ўпэўненыя, што хочаце ігнараваць {name}?", "confirmations.redraft.confirm": "Выдаліць і перапісаць", "confirmations.redraft.message": "Вы ўпэўнены, што хочаце выдаліць допіс і перапісаць яго? Упадабанні і пашырэнні згубяцца, а адказы да арыгінальнага допісу асірацеюць.", "confirmations.reply.confirm": "Адказаць", @@ -205,6 +209,27 @@ "dismissable_banner.explore_statuses": "Допісы з гэтага і іншых сервераў дэцэнтралізаванай сеткі, якія набіраюць папулярнасць прама зараз.", "dismissable_banner.explore_tags": "Гэтыя хэштэгі зараз набіраюць папулярнасць сярод людзей на гэтым і іншых серверах дэцэнтралізаванай сеткі", "dismissable_banner.public_timeline": "Гэта апошнія публічныя допісы людзей з усей сеткі, за якімі сочаць карыстальнікі {domain}.", + "domain_block_modal.block": "Заблакіраваць сервер", + "domain_block_modal.block_account_instead": "Заблакіраваць @{name} замест гэтага", + "domain_block_modal.they_can_interact_with_old_posts": "Людзі з гэтага сервера змогуць узаемадзейнічаць з вашымі старымі допісамі.", + "domain_block_modal.they_cant_follow": "Ніхто з гэтага сервера не зможа падпісацца на вас.", + "domain_block_modal.they_wont_know": "Карыстальнік не будзе ведаць пра блакіроўку.", + "domain_block_modal.title": "Заблакіраваць дамен?", + "domain_block_modal.you_will_lose_followers": "Усе падпісчыкі з гэтага сервера будуць выдаленыя.", + "domain_block_modal.you_wont_see_posts": "Вы не ўбачыце допісаў і апавяшчэнняў ад карыстальнікаў з гэтага сервера.", + "domain_pill.activitypub_lets_connect": "Ён дазваляе вам узаемадзейнічаць не толькі з карыстальнікамі Mastodon, але і розных іншых сацыяльных платформ.", + "domain_pill.activitypub_like_language": "ActivityPub — гэта мова, на якой Mastodon размаўляе з іншымі сацыяльнымі сеткамі.", + "domain_pill.server": "Сервер", + "domain_pill.their_handle": "Ідэнтыфікатар карыстальніка:", + "domain_pill.their_server": "Лічбавы дом, дзе захоўваюцца ўсе допісы.", + "domain_pill.their_username": "Унікальны ідэнтыфікатар карыстальніка на серверы. Можна знайсці карыстальнікаў з аднолькавым іменем карыстальніка на розных серверах.", + "domain_pill.username": "Імя карыстальніка", + "domain_pill.whats_in_a_handle": "Што такое ідэнтыфікатар карыстальніка?", + "domain_pill.who_they_are": "Паколькі ідэнтыфікатары кажуць аб тым, хто гэты чалавек і якім серверам ён карыстаецца, вы можаце ўзаемадзейнічаць з карыстальнікамі .", + "domain_pill.who_you_are": "Паколькі ваш ідэнтыфікатар кажа аб тым, хто вы і дзе знаходзіцеся, людзі могуць узаемадзейнічаць з вамі ў сацыяльнай сетцы .", + "domain_pill.your_handle": "Ваш ідэнтыфікатар:", + "domain_pill.your_server": "Ваш лічбавы дом, дзе захоўваюцца ўсе вашыя допісы. Не падабаецца гэты сервер? Змяніце сервер у любы час з захаваннем сваіх падпісчыкаў.", + "domain_pill.your_username": "Ваш унікальны ідэнтыфікатар на гэтым серверы. Можна знайсці карыстальнікаў з аднолькавым іменем карыстальніка на розных серверах.", "embed.instructions": "Убудуйце гэты пост на свой сайт, скапіраваўшы прыведзены ніжэй код", "embed.preview": "Вось як гэта будзе выглядаць:", "emoji_button.activity": "Актыўнасць", @@ -241,6 +266,7 @@ "empty_column.list": "У гэтым спісе пакуль што нічога няма. Калі члены лісту апублікуюць новыя запісы, яны з'явяцца тут.", "empty_column.lists": "Як толькі вы створыце новы спіс ён будзе захоўвацца тут, але пакуль што тут пуста.", "empty_column.mutes": "Вы яшчэ нікога не ігнаруеце.", + "empty_column.notification_requests": "Чысціня! Тут нічога няма. Калі вы будзеце атрымліваць новыя апавяшчэння, яны будуць з'яўляцца тут у адпаведнасці з вашымі наладамі.", "empty_column.notifications": "У вас няма ніякіх апавяшчэнняў. Калі іншыя людзі ўзаемадзейнічаюць з вамі, вы ўбачыце гэта тут.", "empty_column.public": "Тут нічога няма! Апублікуйце што-небудзь, або падпішыцеся на карыстальнікаў з другіх сервераў", "error.unexpected_crash.explanation": "Гэта старонка не можа быць адлюстравана карэктна з-за памылкі ў нашым кодзе, або праблемы з сумяшчальнасцю браўзера.", @@ -271,6 +297,8 @@ "filter_modal.select_filter.subtitle": "Скарыстайцеся існуючай катэгорыяй або стварыце новую", "filter_modal.select_filter.title": "Фільтраваць гэты допіс", "filter_modal.title.status": "Фільтраваць допіс", + "filtered_notifications_banner.pending_requests": "Апавяшчэнні ад {count, plural, =0 {# людзей якіх} one {# чалавека якіх} few {# чалавек якіх} many {# людзей якіх} other {# чалавека якіх}} вы магчыма ведаеце", + "filtered_notifications_banner.title": "Адфільтраваныя апавяшчэнні", "firehose.all": "Усе", "firehose.local": "Гэты сервер", "firehose.remote": "Іншыя серверы", @@ -314,7 +342,6 @@ "hashtag.follow": "Падпісацца на хэштэг", "hashtag.unfollow": "Адпісацца ад хэштэга", "hashtags.and_other": "…і яшчэ {count, plural, other {#}}", - "home.column_settings.basic": "Асноўныя", "home.column_settings.show_reblogs": "Паказаць пашырэнні", "home.column_settings.show_replies": "Паказваць адказы", "home.hide_announcements": "Схаваць аб'явы", @@ -400,9 +427,15 @@ "loading_indicator.label": "Загрузка…", "media_gallery.toggle_visible": "{number, plural, one {Схаваць відарыс} other {Схаваць відарысы}}", "moved_to_account_banner.text": "Ваш уліковы запіс {disabledAccount} зараз адключаны таму што вы перанесены на {movedToAccount}.", - "mute_modal.duration": "Працягласць", - "mute_modal.hide_notifications": "Схаваць апавяшчэнні ад гэтага карыстальніка?", - "mute_modal.indefinite": "Бестэрмінова", + "mute_modal.hide_from_notifications": "Схаваць з апавяшчэнняў", + "mute_modal.hide_options": "Схаваць опцыі", + "mute_modal.indefinite": "Пакуль я не прыбяру ігнараванне", + "mute_modal.show_options": "Паказаць опцыі", + "mute_modal.they_can_mention_and_follow": "Карыстальнік зможа згадваць вас і падпісацца на вас, але вы гэтага не ўбачыце.", + "mute_modal.they_wont_know": "Карыстальнік не будзе ведаць пра ігнараванне.", + "mute_modal.title": "Ігнараваць карыстальніка?", + "mute_modal.you_wont_see_mentions": "Вы не ўбачыце паведамленняў са згадваннем карыстальніка.", + "mute_modal.you_wont_see_posts": "Карыстальнік па-ранейшаму будзе бачыць вашыя паведамленні, але вы не будзеце паведамленні карыстальніка.", "navigation_bar.about": "Пра нас", "navigation_bar.advanced_interface": "Адкрыць у пашыраным вэб-інтэрфейсе", "navigation_bar.blocks": "Заблакаваныя карыстальнікі", @@ -440,15 +473,16 @@ "notification.reblog": "{name} пашырыў ваш допіс", "notification.status": "Новы допіс ад {name}", "notification.update": "Допіс {name} адрэдагаваны", + "notification_requests.accept": "Прыняць", + "notification_requests.dismiss": "Адхіліць", + "notification_requests.notifications_from": "Апавяшчэнні ад {name}", + "notification_requests.title": "Адфільтраваныя апавяшчэнні", "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": "Згадванні:", @@ -474,6 +508,15 @@ "notifications.permission_denied": "Апавяшчэнні на працоўным стале недаступныя з-за папярэдне адхіленага запыта праў браўзера", "notifications.permission_denied_alert": "Апавяшчэнні на працоўным стале не могуць быць уключаныя, з-за таго што запыт браўзера быў адхілены", "notifications.permission_required": "Апавяшчэнні на працоўным стале недаступныя, з-за таго што неабходны дазвол не быў дадзены.", + "notifications.policy.filter_new_accounts.hint": "Створаныя на працягу {days, plural, one {апошняга # дня} few {апошніх # дзён} many {апошніх # дзён} other {апошняй # дня}}", + "notifications.policy.filter_new_accounts_title": "Новыя ўліковыя запісы", + "notifications.policy.filter_not_followers_hint": "Уключаючы людзей, якія падпісаны на вас менш, чым {days, plural, one {# дзень} few {# дні} many {# дзён} other {# дня}}", + "notifications.policy.filter_not_followers_title": "Людзі, якія не падпісаны на вас", + "notifications.policy.filter_not_following_hint": "Пакуль вы не пацвердзіце іх уручную", + "notifications.policy.filter_not_following_title": "Людзі, на якіх вы не падпісаны", + "notifications.policy.filter_private_mentions_hint": "Фільтруецца за выключэннем адказу на вашае згадванне ці калі вы падпісаны на адпраўніка", + "notifications.policy.filter_private_mentions_title": "Непажаданыя асаблівыя згадванні", + "notifications.policy.title": "Адфільтроўваць апавяшчэнні ад…", "notifications_permission_banner.enable": "Уключыць апавяшчэнні на працоўным стале", "notifications_permission_banner.how_to_control": "Каб атрымліваць апавяшчэнні, калі Mastodon не адкрыты, уключыце апавяшчэнні працоўнага стала. Вы зможаце дакладна кантраляваць, якія падзеі будуць ствараць апавяшчэнні з дапамогай {icon} кнопкі, як толькі яны будуць уключаны.", "notifications_permission_banner.title": "Не прапусціце нічога", @@ -650,10 +693,11 @@ "status.direct": "Згадаць асабіста @{name}", "status.direct_indicator": "Асабістае згадванне", "status.edit": "Рэдагаваць", - "status.edited": "Адрэдагавана {date}", + "status.edited": "Апошняе рэдагаванне {date}", "status.edited_x_times": "Рэдагавана {count, plural, one {{count} раз} few {{count} разы} many {{count} разоў} other {{count} разу}}", "status.embed": "Убудаваць", "status.favourite": "Упадабанае", + "status.favourites": "{count, plural, one {# упадабанае} few {# упадабаныя} many {# упадабаных} other {# упадабанага}}", "status.filter": "Фільтраваць гэты допіс", "status.filtered": "Адфільтравана", "status.hide": "Схаваць допіс", @@ -674,6 +718,7 @@ "status.reblog": "Пашырыць", "status.reblog_private": "Пашырыць з першапачатковай бачнасцю", "status.reblogged_by": "{name} пашырыў(-ла)", + "status.reblogs": "{count, plural, one {# пашырэнне} few {# пашырэнні} many {# пашырэнняў} other {# пашырэння}}", "status.reblogs.empty": "Гэты допіс яшчэ ніхто не пашырыў. Калі гэта адбудзецца, гэтых людзей будзе бачна тут.", "status.redraft": "Выдаліць і паправіць", "status.remove_bookmark": "Выдаліць закладку", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index 93823496b755e5..adc974bee8ff68 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -89,6 +89,14 @@ "announcement.announcement": "Оповестяване", "attachments_list.unprocessed": "(необработено)", "audio.hide": "Скриване на звука", + "block_modal.remote_users_caveat": "Ще поискаме сървърът {domain} да почита решението ви. Съгласието обаче не се гарантира откак някои сървъри могат да боравят с блоковете по различен начин. Обществените публикации още може да се виждат от невлезли в системата потребители.", + "block_modal.show_less": "Повече на показ", + "block_modal.show_more": "По-малко на показ", + "block_modal.they_cant_mention": "Те не могат да ви споменават или последват.", + "block_modal.they_cant_see_posts": "Те не могат да виждат публикациите ви, а и вие не можете да виждате техните.", + "block_modal.they_will_know": "Те могат да видят, че са блокирани.", + "block_modal.title": "Блокирате ли потребителя?", + "block_modal.you_wont_see_mentions": "Няма да виждате публикациите, които ги споменават.", "boost_modal.combo": "Можете да натиснете {combo}, за да пропуснете това следващия път", "bundle_column_error.copy_stacktrace": "Копиране на доклада за грешката", "bundle_column_error.error.body": "Заявената страница не може да се изобрази. Това може да е заради грешка в кода ни или проблем със съвместимостта на браузъра.", @@ -160,9 +168,7 @@ "compose_form.spoiler.unmarked": "Добавяне на предупреждение за съдържание", "compose_form.spoiler_placeholder": "Предупреждение за съдържание (по избор)", "confirmation_modal.cancel": "Отказ", - "confirmations.block.block_and_report": "Блокиране и докладване", "confirmations.block.confirm": "Блокиране", - "confirmations.block.message": "Наистина ли искате да блокирате {name}?", "confirmations.cancel_follow_request.confirm": "Оттегляне на заявката", "confirmations.cancel_follow_request.message": "Наистина ли искате да оттеглите заявката си за последване на {name}?", "confirmations.delete.confirm": "Изтриване", @@ -171,15 +177,13 @@ "confirmations.delete_list.message": "Наистина ли искате да изтриете завинаги списъка?", "confirmations.discard_edit_media.confirm": "Отхвърляне", "confirmations.discard_edit_media.message": "Не сте запазили промени на описанието или огледа на мултимедията, отхвърляте ли ги?", - "confirmations.domain_block.confirm": "Блокиране на целия домейн", + "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.message": "Наистина ли искате да заглушите {name}?", "confirmations.redraft.confirm": "Изтриване и преработване", "confirmations.redraft.message": "Наистина ли искате да изтриете тази публикация и да я направите чернова? Означаванията като любими и подсилванията ще се изгубят, а и отговорите към първоначалната публикация ще осиротеят.", "confirmations.reply.confirm": "Отговор", @@ -205,6 +209,27 @@ "dismissable_banner.explore_statuses": "Има публикации през социалната мрежа, които днес набират популярност. По-новите публикации с повече подсилвания и любими са класирани по-високо.", "dismissable_banner.explore_tags": "Тези хаштагове сега набират популярност сред хората в този и други сървъри на децентрализирата мрежа.", "dismissable_banner.public_timeline": "Ето най-новите обществени публикации от хора в социална мрежа, която хората в {domain} следват.", + "domain_block_modal.block": "Блокиране на сървър", + "domain_block_modal.block_account_instead": "Вместо това блокиране на @{name}", + "domain_block_modal.they_can_interact_with_old_posts": "Хората от този сървър могат да взаимодействат с ваши стари публикации.", + "domain_block_modal.they_cant_follow": "Никого от този сървър не може да ви последва.", + "domain_block_modal.they_wont_know": "Няма да узнаят, че са били блокирани.", + "domain_block_modal.title": "Блокирате ли домейн?", + "domain_block_modal.you_will_lose_followers": "Всичките ви последователи от този сървър ще се премахнат.", + "domain_block_modal.you_wont_see_posts": "Няма да виждате публикации или известия от потребителите на този сървър.", + "domain_pill.activitypub_lets_connect": "Позволява ви да се свързвате и взаимодействате с хора не само в Mastodon, но и през различни социални приложения.", + "domain_pill.activitypub_like_language": "ActivityPub е като език на Mastodon, говорещ с други социални мрежи.", + "domain_pill.server": "Сървър", + "domain_pill.their_handle": "Тяхната ръчка:", + "domain_pill.their_server": "Цифровият им дом, където живеят всичките им публикации.", + "domain_pill.their_username": "Неповторимият им идентификатор на сървъра им. Възможно е да се намерят потребители със същото потребителско име на други сървъри.", + "domain_pill.username": "Потребителско име", + "domain_pill.whats_in_a_handle": "Какво е в ръчката?", + "domain_pill.who_they_are": "Откак ръчките казват кой кой е и къде е, то може да взаимодействате с хора през социаното уебпространство на .", + "domain_pill.who_you_are": "Тъй като вашата ръчка казва кои сте и къде сте, то може да взаимодействате с хора през социаното уебпространство на .", + "domain_pill.your_handle": "Вашата ръчка:", + "domain_pill.your_server": "Цифровият ви дом, където живеят всичките ви публикации. Не харесвате ли този? Прехвърляте се на сървъри по всяко време и докарвате последователите си също.", + "domain_pill.your_username": "Неповторимият ви идентификатор на този сървър. Възможно е да се намерят потребители със същото потребителско име на други сървъри.", "embed.instructions": "Вградете публикацията в уебсайта си, копирайки кода долу.", "embed.preview": "Ето как ще изглежда:", "emoji_button.activity": "Дейност", @@ -241,6 +266,7 @@ "empty_column.list": "Все още списъкът е празен. Членуващите на списъка, публикуващи нови публикации, ще се появят тук.", "empty_column.lists": "Все още нямате списъци. Когато създадете такъв, той ще се покаже тук.", "empty_column.mutes": "Още не сте заглушавали потребители.", + "empty_column.notification_requests": "Всичко е чисто! Тук няма нищо. Получавайки нови известия, те ще се появят тук според настройките ви.", "empty_column.notifications": "Все още нямате известия. Взаимодействайте с другите, за да започнете разговора.", "empty_column.public": "Тук няма нищо! Публикувайте нещо или последвайте потребители от други сървъри, за да го напълните", "error.unexpected_crash.explanation": "Поради грешка в нашия код или проблем със съвместимостта на браузъра, тази страница не може да се покаже правилно.", @@ -271,6 +297,8 @@ "filter_modal.select_filter.subtitle": "Изберете съществуваща категория или създайте нова", "filter_modal.select_filter.title": "Филтриране на публ.", "filter_modal.title.status": "Филтриране на публ.", + "filtered_notifications_banner.pending_requests": "Известията от {count, plural, =0 {никого, когото може да познавате} one {едно лице, което може да познавате} other {# души, които може да познавате}}", + "filtered_notifications_banner.title": "Филтрирани известия", "firehose.all": "Всичко", "firehose.local": "Този сървър", "firehose.remote": "Други сървъри", @@ -314,7 +342,6 @@ "hashtag.follow": "Следване на хаштаг", "hashtag.unfollow": "Спиране на следване на хаштаг", "hashtags.and_other": "…и {count, plural, other {# още}}", - "home.column_settings.basic": "Основно", "home.column_settings.show_reblogs": "Показване на подсилванията", "home.column_settings.show_replies": "Показване на отговорите", "home.hide_announcements": "Скриване на оповестяванията", @@ -400,9 +427,15 @@ "loading_indicator.label": "Зареждане…", "media_gallery.toggle_visible": "Скриване на {number, plural, one {изображение} other {изображения}}", "moved_to_account_banner.text": "Вашият акаунт {disabledAccount} сега е изключен, защото се преместихте в {movedToAccount}.", - "mute_modal.duration": "Времетраене", - "mute_modal.hide_notifications": "Скриване на известия от този потребител?", - "mute_modal.indefinite": "Неопределено", + "mute_modal.hide_from_notifications": "Скриване от известията", + "mute_modal.hide_options": "Скриване на възможностите", + "mute_modal.indefinite": "Докато премахна заглушаването им", + "mute_modal.show_options": "Показване на възможностите", + "mute_modal.they_can_mention_and_follow": "Могат да ви споменават и последват, но няма да ги виждате.", + "mute_modal.they_wont_know": "Няма да узнаят, че са били заглушени.", + "mute_modal.title": "Заглушавате ли потребител?", + "mute_modal.you_wont_see_mentions": "Няма да виждате споменаващи ги публикации.", + "mute_modal.you_wont_see_posts": "Още могат да виждат публикациите ви, но вие техните не.", "navigation_bar.about": "Относно", "navigation_bar.advanced_interface": "Отваряне в разширен уебинтерфейс", "navigation_bar.blocks": "Блокирани потребители", @@ -440,15 +473,16 @@ "notification.reblog": "{name} подсили ваша публикация", "notification.status": "{name} току-що публикува", "notification.update": "{name} промени публикация", + "notification_requests.accept": "Приемам", + "notification_requests.dismiss": "Отхвърлям", + "notification_requests.notifications_from": "Известия от {name}", + "notification_requests.title": "Филтрирани известия", "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": "Споменавания:", @@ -474,6 +508,14 @@ "notifications.permission_denied": "Известията на работния плот не са налични поради предварително отказана заявка за разрешение в браузъра", "notifications.permission_denied_alert": "Известията на работния плот не могат да се включат, тъй като разрешението на браузъра е отказвано преди", "notifications.permission_required": "Известията на работния плот ги няма, щото няма дадено нужното позволение.", + "notifications.policy.filter_new_accounts.hint": "Сътворено през {days, plural, one {последния ден} other {последните # дена}}", + "notifications.policy.filter_new_accounts_title": "Нови акаунти", + "notifications.policy.filter_not_followers_hint": "Включително хора, които са ви последвали по-малко от {days, plural, one {ден} other {# дни}}", + "notifications.policy.filter_not_followers_title": "Хора, които не ви следват", + "notifications.policy.filter_not_following_hint": "Докато не ги одобрите ръчно", + "notifications.policy.filter_not_following_title": "Хора, които не следвате", + "notifications.policy.filter_private_mentions_title": "Непоискани частни споменавания", + "notifications.policy.title": "Да се филтрират известия от…", "notifications_permission_banner.enable": "Включване на известията на работния плот", "notifications_permission_banner.how_to_control": "За да получавате известия, когато Mastodon не е отворен, включете известията на работния плот. Може да управлявате точно кои видове взаимодействия пораждат известия на работния плот чрез бутона {icon} по-горе, след като бъдат включени.", "notifications_permission_banner.title": "Никога не пропускайте нищо", @@ -611,7 +653,7 @@ "search.quick_action.go_to_hashtag": "Към хаштаг {x}", "search.quick_action.open_url": "Отваряне на URL адреса в Mastodon", "search.quick_action.status_search": "Съвпадение на публикации {x}", - "search.search_or_paste": "Търсене или поставяне на URL адрес", + "search.search_or_paste": "Търсене/поставяне на URL", "search_popout.full_text_search_disabled_message": "Не е достъпно на {domain}.", "search_popout.full_text_search_logged_out_message": "Достъпно само при влизане в системата.", "search_popout.language_code": "Код на езика по ISO", @@ -650,10 +692,11 @@ "status.direct": "Частно споменаване на @{name}", "status.direct_indicator": "Частно споменаване", "status.edit": "Редактиране", - "status.edited": "Редактирано на {date}", + "status.edited": "Последно редактирано на {date}", "status.edited_x_times": "Редактирано {count, plural,one {{count} път} other {{count} пъти}}", "status.embed": "Вграждане", "status.favourite": "Любимо", + "status.favourites": "{count, plural, one {любимо} other {любими}}", "status.filter": "Филтриране на публ.", "status.filtered": "Филтрирано", "status.hide": "Скриване на публ.", @@ -674,6 +717,7 @@ "status.reblog": "Подсилване", "status.reblog_private": "Подсилване с оригиналната видимост", "status.reblogged_by": "{name} подсили", + "status.reblogs": "{count, plural, one {подсилване} other {подсилвания}}", "status.reblogs.empty": "Още никого не е подсилвал публикацията. Подсилващият ще се покаже тук.", "status.redraft": "Изтриване и преначертаване", "status.remove_bookmark": "Премахване на отметката", diff --git a/app/javascript/mastodon/locales/bn.json b/app/javascript/mastodon/locales/bn.json index 508caa2f42708d..797b93e24359f7 100644 --- a/app/javascript/mastodon/locales/bn.json +++ b/app/javascript/mastodon/locales/bn.json @@ -148,9 +148,7 @@ "compose_form.spoiler.marked": "সতর্কতার পিছনে লেখানটি লুকানো আছে", "compose_form.spoiler.unmarked": "লেখাটি লুকানো নেই", "confirmation_modal.cancel": "বাতিল করুন", - "confirmations.block.block_and_report": "ব্লক করুন এবং রিপোর্ট করুন", "confirmations.block.confirm": "ব্লক করুন", - "confirmations.block.message": "আপনি কি নিশ্চিত {name} কে ব্লক করতে চান?", "confirmations.cancel_follow_request.confirm": "অনুরোধ বাতিল করুন", "confirmations.cancel_follow_request.message": "আপনি কি নিশ্চিত যে আপনি {name} কে অনুসরণ করার অনুরোধ প্রত্যাহার করতে চান?", "confirmations.delete.confirm": "মুছে ফেলুন", @@ -159,15 +157,12 @@ "confirmations.delete_list.message": "আপনি কি নিশ্চিত যে আপনি এই তালিকাটি স্থায়িভাবে মুছে ফেলতে চান ?", "confirmations.discard_edit_media.confirm": "বাতিল করো", "confirmations.discard_edit_media.message": "মিডিয়া Description বা Preview তে আপনার আপনার অসংরক্ষিত পরিবর্তন আছে, সেগুলো বাতিল করবেন?", - "confirmations.domain_block.confirm": "এই ডোমেন থেকে সব লুকান", "confirmations.domain_block.message": "আপনি কি সত্যিই সত্যই নিশ্চিত যে আপনি পুরো {domain}'টি ব্লক করতে চান? বেশিরভাগ ক্ষেত্রে কয়েকটি লক্ষ্যযুক্ত ব্লক বা নীরবতা যথেষ্ট এবং পছন্দসই। আপনি কোনও পাবলিক টাইমলাইন বা আপনার বিজ্ঞপ্তিগুলিতে সেই ডোমেন থেকে সামগ্রী দেখতে পাবেন না। সেই ডোমেন থেকে আপনার অনুসরণকারীদের সরানো হবে।", "confirmations.edit.confirm": "সম্পাদন", "confirmations.edit.message": "এখন সম্পাদনা করলে আপনি যে মেসেজ লিখছেন তা overwrite করবে, চালিয়ে যেতে চান?", "confirmations.logout.confirm": "প্রস্থান", "confirmations.logout.message": "আপনি লগ আউট করতে চান?", "confirmations.mute.confirm": "সরিয়ে ফেলুন", - "confirmations.mute.explanation": "এটি তাদের কাছ থেকে পোস্ট এবং তাদেরকে মেনশন করা পোস্টগুলি হাইড করবে, তবুও তাদেরকে এটি আপনার পোস্ট গুলো দেখতে দিবে ও তারা আপনাকে অনুসরন করতে পারবে।.", - "confirmations.mute.message": "আপনি কি নিশ্চিত {name} সরিয়ে ফেলতে চান ?", "confirmations.redraft.confirm": "মুছে ফেলুন এবং আবার সম্পাদন করুন", "confirmations.reply.confirm": "মতামত", "confirmations.reply.message": "এখন মতামত লিখতে গেলে আপনার এখন যেটা লিখছেন সেটা মুছে যাবে। আপনি নি নিশ্চিত এটা করতে চান ?", @@ -248,7 +243,6 @@ "hashtag.column_settings.tag_mode.any": "এর ভেতরে যেকোনোটা", "hashtag.column_settings.tag_mode.none": "এগুলোর একটাও না", "hashtag.column_settings.tag_toggle": "আরো ট্যাগ এই কলামে যুক্ত করতে", - "home.column_settings.basic": "সাধারণ", "home.column_settings.show_reblogs": "সমর্থনগুলো দেখান", "home.column_settings.show_replies": "মতামত দেখান", "home.hide_announcements": "ঘোষণা লুকান", @@ -303,9 +297,6 @@ "lists.subheading": "আপনার তালিকা", "load_pending": "{count, plural, one {# নতুন জিনিস} other {# নতুন জিনিস}}", "media_gallery.toggle_visible": "দৃশ্যতার অবস্থা বদলান", - "mute_modal.duration": "সময়কাল", - "mute_modal.hide_notifications": "এই ব্যবহারকারীর প্রজ্ঞাপন বন্ধ করবেন ?", - "mute_modal.indefinite": "অনির্দিষ্ট", "navigation_bar.about": "পরিচিতি", "navigation_bar.blocks": "বন্ধ করা ব্যবহারকারী", "navigation_bar.bookmarks": "বুকমার্ক", @@ -338,8 +329,6 @@ "notifications.clear_confirmation": "আপনি কি নির্চিত প্রজ্ঞাপনগুলো মুছে ফেলতে চান ?", "notifications.column_settings.alert": "কম্পিউটারে প্রজ্ঞাপনগুলি", "notifications.column_settings.favourite": "পছন্দসমূহ:", - "notifications.column_settings.filter_bar.advanced": "সব শ্রেণীগুলো দেখানো", - "notifications.column_settings.filter_bar.category": "সংক্ষিপ্ত ছাঁকনি অংশ", "notifications.column_settings.follow": "নতুন অনুসরণকারীরা:", "notifications.column_settings.follow_request": "অনুসরণের অনুরোধগুলি:", "notifications.column_settings.mention": "প্রজ্ঞাপনগুলো:", diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json index 3b376ac47033e7..609e7f7158083d 100644 --- a/app/javascript/mastodon/locales/br.json +++ b/app/javascript/mastodon/locales/br.json @@ -87,6 +87,8 @@ "announcement.announcement": "Kemennad", "attachments_list.unprocessed": "(ket meret)", "audio.hide": "Kuzhat ar c'hleved", + "block_modal.show_less": "Diskouez nebeutoc'h", + "block_modal.show_more": "Diskouez muioc'h", "boost_modal.combo": "Ar wezh kentañ e c'halliot gwaskañ war {combo} evit tremen hebiou", "bundle_column_error.copy_stacktrace": "Eilañ an danevell fazi", "bundle_column_error.error.body": "N'haller ket skrammañ ar bajenn goulennet. Gallout a ra bezañ abalamour d'ur beug er c'hod pe d'ur gudenn keverlec'hded gant ar merdeer.", @@ -157,9 +159,7 @@ "compose_form.spoiler.marked": "Kuzhet eo an destenn a-dreñv ur c'hemenn", "compose_form.spoiler.unmarked": "N'eo ket kuzhet an destenn", "confirmation_modal.cancel": "Nullañ", - "confirmations.block.block_and_report": "Berzañ ha Disklêriañ", "confirmations.block.confirm": "Stankañ", - "confirmations.block.message": "Ha sur oc'h e fell deoc'h stankañ {name} ?", "confirmations.cancel_follow_request.confirm": "Nullañ ar reked", "confirmations.cancel_follow_request.message": "Ha sur oc'h e fell deoc'h nullañ ho reked evit heuliañ {name} ?", "confirmations.delete.confirm": "Dilemel", @@ -168,14 +168,11 @@ "confirmations.delete_list.message": "Ha sur eo hoc'h eus c'hoant da zilemel ar roll-mañ da vat ?", "confirmations.discard_edit_media.confirm": "Nac'hañ", "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": "Kemmañ", "confirmations.logout.confirm": "Digevreañ", "confirmations.logout.message": "Ha sur oc'h e fell deoc'h digevreañ ?", "confirmations.mute.confirm": "Kuzhat", - "confirmations.mute.explanation": "Kement-se a guzho an toudoù skrivet gantañ·i hag ar re a veneg anezhañ·i, met ne viro ket outañ·i a welet ho toudoù nag a heuliañ ac'hanoc'h.", - "confirmations.mute.message": "Ha sur oc'h e fell deoc'h kuzhaat {name} ?", "confirmations.redraft.confirm": "Diverkañ ha skrivañ en-dro", "confirmations.reply.confirm": "Respont", "confirmations.reply.message": "Respont bremañ a zilamo ar gemennadenn emaoc'h o skrivañ. Sur e oc'h e fell deoc'h kenderc'hel ganti?", @@ -198,6 +195,8 @@ "dismissable_banner.dismiss": "Diverkañ", "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_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "domain_pill.server": "Dafariad", + "domain_pill.username": "Anv-implijer", "embed.instructions": "Enframmit an toud-mañ en ho lec'hienn en ur eilañ ar c'hod amañ-dindan.", "embed.preview": "Setu penaos e teuio war wel :", "emoji_button.activity": "Obererezh", @@ -289,7 +288,6 @@ "hashtag.follow": "Heuliañ ar ger-klik", "hashtag.unfollow": "Paouez heuliañ an hashtag", "hashtags.and_other": "…{count, plural, one {hag # all} other {ha # all}}", - "home.column_settings.basic": "Diazez", "home.column_settings.show_reblogs": "Diskouez ar skignadennoù", "home.column_settings.show_replies": "Diskouez ar respontoù", "home.hide_announcements": "Kuzhat ar c'hemennoù", @@ -367,9 +365,6 @@ "load_pending": "{count, plural, one {# dra nevez} other {# dra nevez}}", "loading_indicator.label": "O kargañ…", "media_gallery.toggle_visible": "{number, plural, one {Kuzhat ar skeudenn} other {Kuzhat ar skeudenn}}", - "mute_modal.duration": "Padelezh", - "mute_modal.hide_notifications": "Kuzhat kemenadennoù eus an implijer-se ?", - "mute_modal.indefinite": "Amstrizh", "navigation_bar.about": "Diwar-benn", "navigation_bar.blocks": "Implijer·ezed·ien berzet", "navigation_bar.bookmarks": "Sinedoù", @@ -410,9 +405,6 @@ "notifications.column_settings.admin.sign_up": "Enskrivadurioù nevez :", "notifications.column_settings.alert": "Kemennoù war ar burev", "notifications.column_settings.favourite": "Muiañ-karet:", - "notifications.column_settings.filter_bar.advanced": "Skrammañ an-holl rummadoù", - "notifications.column_settings.filter_bar.category": "Barrenn siloù prim", - "notifications.column_settings.filter_bar.show_bar": "Diskouezh barrenn siloù", "notifications.column_settings.follow": "Heulierien nevez:", "notifications.column_settings.follow_request": "Pedadoù heuliañ nevez :", "notifications.column_settings.mention": "Menegoù:", @@ -438,6 +430,7 @@ "notifications.permission_denied": "Kemennoù war ar burev n'int ket hegerz rak pedadenn aotren ar merdeer a zo bet nullet araok", "notifications.permission_denied_alert": "Kemennoù wa ar burev na c'hellont ket bezañ lezelet, rak aotre ar merdeer a zo bet nac'het a-raok", "notifications.permission_required": "Kemennoù war ar burev n'int ket hegerz abalamour d'an aotre rekis n'eo ket bet roet.", + "notifications.policy.filter_new_accounts_title": "Kontoù nevez", "notifications_permission_banner.enable": "Lezel kemennoù war ar burev", "notifications_permission_banner.how_to_control": "Evit reseviñ kemennoù pa ne vez ket digoret Mastodon, lezelit kemennoù war ar burev. Gallout a rit kontrollañ peseurt eskemmoù a c'henel kemennoù war ar burev gant ar {icon} nozelenn a-us kentre ma'z int lezelet.", "notifications_permission_banner.title": "Na vankit netra morse", @@ -587,7 +580,7 @@ "status.direct": "Menegiñ @{name} ent-prevez", "status.direct_indicator": "Meneg prevez", "status.edit": "Kemmañ", - "status.edited": "Aozet {date}", + "status.edited": "Kemmet da ziwezhañ d'an {date}", "status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}", "status.embed": "Enframmañ", "status.favourite": "Muiañ-karet", diff --git a/app/javascript/mastodon/locales/bs.json b/app/javascript/mastodon/locales/bs.json index c978a8b01fcfb4..d06054ee586b07 100644 --- a/app/javascript/mastodon/locales/bs.json +++ b/app/javascript/mastodon/locales/bs.json @@ -11,7 +11,6 @@ "compose_form.spoiler.marked": "Text is hidden behind warning", "compose_form.spoiler.unmarked": "Text is not hidden", "confirmations.delete.message": "Are you sure you want to delete this status?", - "confirmations.domain_block.confirm": "Hide entire domain", "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_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", "embed.instructions": "Embed this status on your website by copying the code below.", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 23454247286f1b..e0d62c78bb076e 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -89,6 +89,14 @@ "announcement.announcement": "Anunci", "attachments_list.unprocessed": "(sense processar)", "audio.hide": "Amaga l'àudio", + "block_modal.remote_users_caveat": "Li demanarem al servidor {domain} que respecti la vostra decisió, tot i que no podem garantir-ho, ja que alguns servidors gestionen de forma diferent els blocatges. És possible que els usuaris no autenticats puguin veure les publicacions públiques.", + "block_modal.show_less": "Mostra'n menys", + "block_modal.show_more": "Mostra'n més", + "block_modal.they_cant_mention": "No us poden esmentar, ni seguir.", + "block_modal.they_cant_see_posts": "No poden veure les vostres publicacions, ni vosaltres les seves.", + "block_modal.they_will_know": "Poden veure que els heu blocat.", + "block_modal.title": "Bloquem l'usuari?", + "block_modal.you_wont_see_mentions": "No veureu publicacions que l'esmentin.", "boost_modal.combo": "Pots prémer {combo} per a evitar-ho el pròxim cop", "bundle_column_error.copy_stacktrace": "Copia l'informe d'error", "bundle_column_error.error.body": "No s'ha pogut renderitzar la pàgina sol·licitada. Podria ser per un error en el nostre codi o per un problema de compatibilitat del navegador.", @@ -160,9 +168,7 @@ "compose_form.spoiler.unmarked": "Afegeix avís de contingut", "compose_form.spoiler_placeholder": "Avís de contingut (opcional)", "confirmation_modal.cancel": "Cancel·la", - "confirmations.block.block_and_report": "Bloca i denuncia", "confirmations.block.confirm": "Bloca", - "confirmations.block.message": "Segur que vols blocar a {name}?", "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", @@ -171,15 +177,13 @@ "confirmations.delete_list.message": "Segur que vols suprimir permanentment aquesta llista?", "confirmations.discard_edit_media.confirm": "Descarta", "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.confirm": "Bloca el servidor", "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", - "confirmations.mute.explanation": "Això amagarà els tuts d'ells i els d'els que els mencionin, però encara els permetrà veure els teus tuts i seguir-te.", - "confirmations.mute.message": "Segur que vols silenciar {name}?", "confirmations.redraft.confirm": "Esborra i reescriu", "confirmations.redraft.message": "Segur que vols eliminar aquest tut i tornar a escriure'l? Es perdran tots els impulsos i els favorits, i les respostes al tut original quedaran aïllades.", "confirmations.reply.confirm": "Respon", @@ -205,6 +209,27 @@ "dismissable_banner.explore_statuses": "Aquests son els tuts de la xarxa descentralitzada que guanyen atenció ara mateix. Els tuts més nous amb més impulsos i favorits tenen millor rànquing.", "dismissable_banner.explore_tags": "Aquestes etiquetes estan guanyant ara mateix l'atenció dels usuaris d'aquest i altres servidors de la xarxa descentralitzada.", "dismissable_banner.public_timeline": "Aquests son els tuts públics més recents de les persones a la web social que les persones de {domain} segueixen.", + "domain_block_modal.block": "Bloca el servidor", + "domain_block_modal.block_account_instead": "En lloc d'això, bloca @{name}", + "domain_block_modal.they_can_interact_with_old_posts": "Els usuaris d'aquest servidor poden interactuar amb les vostres publicacions antigues.", + "domain_block_modal.they_cant_follow": "Ningú d'aquest servidor us pot seguir.", + "domain_block_modal.they_wont_know": "No sabran que són blocats.", + "domain_block_modal.title": "Bloquem el domini?", + "domain_block_modal.you_will_lose_followers": "S'eliminaran tots els vostres seguidors d'aquest servidor.", + "domain_block_modal.you_wont_see_posts": "No veureu ni les publicacions ni les notificacions dels usuaris d'aquest servidor.", + "domain_pill.activitypub_lets_connect": "Us permet connectar i interactuar amb persones a Mastodon i també a d'altres apps socials.", + "domain_pill.activitypub_like_language": "ActivityPub és el llenguatge que Mastodon parla amb altres xarxes socials.", + "domain_pill.server": "Servidor", + "domain_pill.their_handle": "El seu identificador:", + "domain_pill.their_server": "La seva llar digital, on són totes les seves publicacions.", + "domain_pill.their_username": "El seu identificador únic al servidor. És possible que hi hagi usuaris amb el mateix nom d'usuari a diferents servidors.", + "domain_pill.username": "Nom d'usuari", + "domain_pill.whats_in_a_handle": "Què constitueix un identificador?", + "domain_pill.who_they_are": "Com que un identificador expressa qui i on s'és, podeu interactuar amb persones d'arreu de les .", + "domain_pill.who_you_are": "Com que un identificador expressa qui i on sou, les persones d'arreu de les poden interactuar amb vosaltres.", + "domain_pill.your_handle": "El vostre identificador:", + "domain_pill.your_server": "La vostra llar digital, on són totes les vostres publicacions. No us agrada aquesta? Canvieu de servidor quan vulgueu i emporteu-vos els vostres seguidors.", + "domain_pill.your_username": "El vostre identificador únic en aquest servidor. Hi pot haver usuaris amb el mateix nom a diferents servidors.", "embed.instructions": "Incrusta aquest tut a la teva pàgina web copiant el codi següent.", "embed.preview": "Aquest aspecte tindrà:", "emoji_button.activity": "Activitat", @@ -241,6 +266,7 @@ "empty_column.list": "Encara no hi ha res en aquesta llista. Quan els membres facin nous tuts, apareixeran aquí.", "empty_column.lists": "Encara no tens cap llista. Quan en facis una, apareixerà aquí.", "empty_column.mutes": "Encara no has silenciat cap usuari.", + "empty_column.notification_requests": "Tot net, ja no hi ha res aquí! Quan rebeu notificacions noves, segons la vostra configuració, apareixeran aquí.", "empty_column.notifications": "Encara no tens notificacions. Quan altre gent interactuï amb tu, les veuràs aquí.", "empty_column.public": "Aquí no hi ha res! Escriu públicament alguna cosa o segueix manualment usuaris d'altres servidors per omplir-ho", "error.unexpected_crash.explanation": "A causa d'un error en el nostre codi o d'un problema de compatibilitat amb el navegador, aquesta pàgina no s'ha pogut mostrar correctament.", @@ -271,6 +297,8 @@ "filter_modal.select_filter.subtitle": "Usa una categoria existent o crea'n una de nova", "filter_modal.select_filter.title": "Filtra aquest tut", "filter_modal.title.status": "Filtra un tut", + "filtered_notifications_banner.pending_requests": "Notificacions {count, plural, =0 {de ningú} one {d'una persona} other {de # persones}} que potser coneixes", + "filtered_notifications_banner.title": "Notificacions filtrades", "firehose.all": "Tots", "firehose.local": "Aquest servidor", "firehose.remote": "Altres servidors", @@ -314,7 +342,6 @@ "hashtag.follow": "Segueix l'etiqueta", "hashtag.unfollow": "Deixa de seguir l'etiqueta", "hashtags.and_other": "…i {count, plural, other {# més}}", - "home.column_settings.basic": "Bàsic", "home.column_settings.show_reblogs": "Mostra els impulsos", "home.column_settings.show_replies": "Mostra les respostes", "home.hide_announcements": "Amaga els anuncis", @@ -400,9 +427,15 @@ "loading_indicator.label": "Es carrega…", "media_gallery.toggle_visible": "{number, plural, one {Amaga la imatge} other {Amaga les imatges}}", "moved_to_account_banner.text": "El teu compte {disabledAccount} està desactivat perquè l'has mogut a {movedToAccount}.", - "mute_modal.duration": "Durada", - "mute_modal.hide_notifications": "Amagar les notificacions d'aquest usuari?", - "mute_modal.indefinite": "Indefinit", + "mute_modal.hide_from_notifications": "Amaga de les notificacions", + "mute_modal.hide_options": "Amaga les opcions", + "mute_modal.indefinite": "Fins que els deixi de silenciar", + "mute_modal.show_options": "Mostra les opcions", + "mute_modal.they_can_mention_and_follow": "Us poden esmentar i seguir, però no els veureu.", + "mute_modal.they_wont_know": "No sabran que són silenciats.", + "mute_modal.title": "Silenciem l'usuari?", + "mute_modal.you_wont_see_mentions": "No veureu publicacions que els esmentin.", + "mute_modal.you_wont_see_posts": "Encara poden veure les vostres publicacions, però no veureu les seves.", "navigation_bar.about": "Quant a", "navigation_bar.advanced_interface": "Obre en la interfície web avançada", "navigation_bar.blocks": "Usuaris blocats", @@ -440,15 +473,16 @@ "notification.reblog": "{name} t'ha impulsat", "notification.status": "{name} acaba de publicar", "notification.update": "{name} ha editat un tut", + "notification_requests.accept": "Accepta", + "notification_requests.dismiss": "Ignora", + "notification_requests.notifications_from": "Notificacions de {name}", + "notification_requests.title": "Notificacions filtrades", "notifications.clear": "Esborra les notificacions", "notifications.clear_confirmation": "Segur que vols esborrar permanentment totes les teves notificacions?", "notifications.column_settings.admin.report": "Nous informes:", "notifications.column_settings.admin.sign_up": "Registres nous:", "notifications.column_settings.alert": "Notificacions d'escriptori", "notifications.column_settings.favourite": "Favorits:", - "notifications.column_settings.filter_bar.advanced": "Mostra totes les categories", - "notifications.column_settings.filter_bar.category": "Barra ràpida de filtres", - "notifications.column_settings.filter_bar.show_bar": "Mostra la barra de filtres", "notifications.column_settings.follow": "Nous seguidors:", "notifications.column_settings.follow_request": "Noves sol·licituds de seguiment:", "notifications.column_settings.mention": "Mencions:", @@ -474,6 +508,15 @@ "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è 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.policy.filter_new_accounts.hint": "Creat {days, plural, one {ahir} other {durant els # dies passats}}", + "notifications.policy.filter_new_accounts_title": "Comptes nous", + "notifications.policy.filter_not_followers_hint": "Incloent les persones que us segueixen fa menys {days, plural, one {d'un dia} other {de # dies}}", + "notifications.policy.filter_not_followers_title": "Persones que no us segueixen", + "notifications.policy.filter_not_following_hint": "Fins que no ho aproveu de forma manual", + "notifications.policy.filter_not_following_title": "Persones que no seguiu", + "notifications.policy.filter_private_mentions_hint": "Filtrat si no és que és en resposta a una menció vostra o si seguiu el remitent", + "notifications.policy.filter_private_mentions_title": "Mencions privades no sol·licitades", + "notifications.policy.title": "Filtra les notificacions de…", "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.", "notifications_permission_banner.title": "No et perdis mai res", @@ -650,10 +693,11 @@ "status.direct": "Menciona privadament @{name}", "status.direct_indicator": "Menció privada", "status.edit": "Edita", - "status.edited": "Editat {date}", + "status.edited": "Darrera edició {date}", "status.edited_x_times": "Editat {count, plural, one {{count} vegada} other {{count} vegades}}", "status.embed": "Incrusta", "status.favourite": "Favorit", + "status.favourites": "{count, plural, one {# favorit} other {# favorits}}", "status.filter": "Filtra aquest tut", "status.filtered": "Filtrada", "status.hide": "Amaga el tut", @@ -674,6 +718,7 @@ "status.reblog": "Impulsa", "status.reblog_private": "Impulsa amb la visibilitat original", "status.reblogged_by": "impulsat per {name}", + "status.reblogs": "{count, plural, one {# impuls} other {# impulsos}}", "status.reblogs.empty": "Encara no ha impulsat ningú aquest tut. Quan algú ho faci, apareixerà aquí.", "status.redraft": "Esborra i reescriu", "status.remove_bookmark": "Elimina el marcador", diff --git a/app/javascript/mastodon/locales/ckb.json b/app/javascript/mastodon/locales/ckb.json index 62195b72dc1a36..c3c365b3a11c6f 100644 --- a/app/javascript/mastodon/locales/ckb.json +++ b/app/javascript/mastodon/locales/ckb.json @@ -160,9 +160,7 @@ "compose_form.spoiler.unmarked": "دەق شاراوە نییە", "compose_form.spoiler_placeholder": "ئاگادارکردنەوەی ناوەڕۆک (ئیختیاری)", "confirmation_modal.cancel": "هەڵوەشاندنەوه", - "confirmations.block.block_and_report": "بلۆک & گوزارشت", "confirmations.block.confirm": "بلۆک", - "confirmations.block.message": "ئایا دڵنیایت لەوەی دەتەوێت {name} بلۆک بکەیت?", "confirmations.cancel_follow_request.confirm": "داواکاری کشانەوە", "confirmations.cancel_follow_request.message": "ئایا دڵنیای کە دەتەوێت داواکارییەکەت بۆ شوێنکەوتنی {ناو} بکشێنیتەوە؟", "confirmations.delete.confirm": "سڕینەوە", @@ -171,15 +169,12 @@ "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.message": "ئایا دڵنیایت لەوەی دەتەوێت بیلێیت {name}?", "confirmations.redraft.confirm": "سڕینەوە & دووبارە ڕەشکردنەوە", "confirmations.redraft.message": "دڵنیای دەتەوێت ئەم پۆستە بسڕیتەوە و دووبارە دایبڕێژیتەوە؟ فەڤۆریت و بووستەکان لەدەست دەچن، وەڵامەکانی پۆستە ئەسڵیەکەش هەتیو دەبن.", "confirmations.reply.confirm": "وەڵام", @@ -300,7 +295,6 @@ "hashtag.counter_by_accounts": "{count, plural, one {{counter} participant} other {{counter} participants}}", "hashtag.follow": "شوێنکەوتنی هاشتاگ", "hashtag.unfollow": "شوێن نەکەوتنی هاشتاگ", - "home.column_settings.basic": "بنەڕەتی", "home.column_settings.show_reblogs": "پیشاندانی بەهێزکردن", "home.column_settings.show_replies": "وەڵامدانەوەکان پیشان بدە", "home.hide_announcements": "شاردنەوەی راگەیەنراوەکان", @@ -371,9 +365,6 @@ "load_pending": "{count, plural, one {# بەڕگەی نوێ} other {# بەڕگەی نوێ}}", "media_gallery.toggle_visible": "شاردنەوەی {number, plural, one {image} other {images}}", "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": "نیشانکراوەکان", @@ -412,9 +403,6 @@ "notifications.column_settings.admin.report": "ڕاپۆرتە نوێیەکان:", "notifications.column_settings.admin.sign_up": "چوونەژوورەوەی نوێ:", "notifications.column_settings.alert": "ئاگانامەکانی پیشانگەرر ڕومێزی", - "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": "ئاماژەکان:", @@ -563,7 +551,6 @@ "status.direct": "بە شێوەیەکی تایبەت باسی @{name} بکە", "status.direct_indicator": "ئاماژەی تایبەت", "status.edit": "دەستکاری", - "status.edited": "بەشداری {date}", "status.edited_x_times": "دەستکاریکراوە {count, plural, one {{count} کات} other {{count} کات}}", "status.embed": "نیشتەجێ بکە", "status.filter": "ئەم پۆستە فلتەر بکە", diff --git a/app/javascript/mastodon/locales/co.json b/app/javascript/mastodon/locales/co.json index 9d0b0306c8e5c4..be4cce2692aaa6 100644 --- a/app/javascript/mastodon/locales/co.json +++ b/app/javascript/mastodon/locales/co.json @@ -86,21 +86,16 @@ "compose_form.spoiler.marked": "Testu piattatu daret'à un'avertimentu", "compose_form.spoiler.unmarked": "Testu micca piattatu", "confirmation_modal.cancel": "Annullà", - "confirmations.block.block_and_report": "Bluccà è signalà", "confirmations.block.confirm": "Bluccà", - "confirmations.block.message": "Site sicuru·a che vulete bluccà @{name}?", "confirmations.delete.confirm": "Toglie", "confirmations.delete.message": "Site sicuru·a che vulete sguassà stu statutu?", "confirmations.delete_list.confirm": "Toglie", "confirmations.delete_list.message": "Site sicuru·a che vulete toglie sta lista?", "confirmations.discard_edit_media.confirm": "Scartà", - "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.logout.confirm": "Scunnettassi", "confirmations.logout.message": "Site sicuru·a che vulete scunnettà vi?", "confirmations.mute.confirm": "Piattà", - "confirmations.mute.explanation": "Quessu hà da piattà i statuti da sta persona è i posti chì a mintuvanu, ma ellu·a puderà sempre vede i vostri statuti è siguità vi.", - "confirmations.mute.message": "Site sicuru·a che vulete piattà @{name}?", "confirmations.redraft.confirm": "Sguassà è riscrive", "confirmations.reply.confirm": "Risponde", "confirmations.reply.message": "Risponde avà sguasserà u missaghju chì scrivite. Site sicuru·a chì vulete cuntinuà?", @@ -167,7 +162,6 @@ "hashtag.column_settings.tag_mode.any": "Unu di quessi", "hashtag.column_settings.tag_mode.none": "Nisunu di quessi", "hashtag.column_settings.tag_toggle": "Inchjude tag addiziunali per sta colonna", - "home.column_settings.basic": "Bàsichi", "home.column_settings.show_reblogs": "Vede e spartere", "home.column_settings.show_replies": "Vede e risposte", "home.hide_announcements": "Piattà annunzii", @@ -227,9 +221,6 @@ "lists.subheading": "E vo liste", "load_pending": "{count, plural, one {# entrata nova} other {# entrate nove}}", "media_gallery.toggle_visible": "Piattà {number, plural, one {ritrattu} other {ritratti}}", - "mute_modal.duration": "Durata", - "mute_modal.hide_notifications": "Piattà nutificazione da st'utilizatore?", - "mute_modal.indefinite": "Indifinita", "navigation_bar.blocks": "Utilizatori bluccati", "navigation_bar.bookmarks": "Segnalibri", "navigation_bar.community_timeline": "Linea pubblica lucale", @@ -258,8 +249,6 @@ "notifications.clear": "Purgà e nutificazione", "notifications.clear_confirmation": "Site sicuru·a che vulete toglie tutte ste nutificazione?", "notifications.column_settings.alert": "Nutificazione nant'à l'urdinatore", - "notifications.column_settings.filter_bar.advanced": "Affissà tutte e categurie", - "notifications.column_settings.filter_bar.category": "Barra di ricerca pronta", "notifications.column_settings.follow": "Abbunati novi:", "notifications.column_settings.follow_request": "Nove dumande d'abbunamentu:", "notifications.column_settings.mention": "Minzione:", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index 00b27e05216d93..273e8bf499d14d 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -160,9 +160,7 @@ "compose_form.spoiler.unmarked": "Přidat varování o obsahu", "compose_form.spoiler_placeholder": "Upozornění na obsah (nepovinné)", "confirmation_modal.cancel": "Zrušit", - "confirmations.block.block_and_report": "Blokovat a nahlásit", "confirmations.block.confirm": "Blokovat", - "confirmations.block.message": "Opravdu chcete blokovat {name}?", "confirmations.cancel_follow_request.confirm": "Zrušit žádost", "confirmations.cancel_follow_request.message": "Opravdu chcete zrušit svou žádost o sledování {name}?", "confirmations.delete.confirm": "Smazat", @@ -171,15 +169,12 @@ "confirmations.delete_list.message": "Opravdu chcete tento seznam navždy smazat?", "confirmations.discard_edit_media.confirm": "Zahodit", "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": "Editovat teď znamená přepsání zprávy, kterou právě tvoříte. Opravdu chcete pokračovat?", "confirmations.logout.confirm": "Odhlásit se", "confirmations.logout.message": "Opravdu se chcete odhlásit?", "confirmations.mute.confirm": "Skrýt", - "confirmations.mute.explanation": "Tohle skryje uživatelovy příspěvky a příspěvky, které ho zmiňují, ale uživatel stále uvidí vaše příspěvky a může vás sledovat.", - "confirmations.mute.message": "Opravdu chcete skrýt uživatele {name}?", "confirmations.redraft.confirm": "Smazat a přepsat", "confirmations.redraft.message": "Jste si jistí, že chcete odstranit tento příspěvek a vytvořit z něj koncept? Oblíbené a boosty budou ztraceny a odpovědi na původní příspěvek ztratí kontext.", "confirmations.reply.confirm": "Odpovědět", @@ -314,7 +309,6 @@ "hashtag.follow": "Sledovat hashtag", "hashtag.unfollow": "Přestat sledovat hashtag", "hashtags.and_other": "…a {count, plural, one {# další} few {# další} other {# dalších}}", - "home.column_settings.basic": "Základní", "home.column_settings.show_reblogs": "Zobrazit boosty", "home.column_settings.show_replies": "Zobrazit odpovědi", "home.hide_announcements": "Skrýt oznámení", @@ -400,9 +394,6 @@ "loading_indicator.label": "Načítání…", "media_gallery.toggle_visible": "{number, plural, one {Skrýt obrázek} few {Skrýt obrázky} many {Skrýt obrázky} other {Skrýt obrázky}}", "moved_to_account_banner.text": "Váš účet {disabledAccount} je momentálně deaktivován, protože jste se přesunul/a na {movedToAccount}.", - "mute_modal.duration": "Trvání", - "mute_modal.hide_notifications": "Skrýt oznámení od tohoto uživatele?", - "mute_modal.indefinite": "Neomezeně", "navigation_bar.about": "O aplikaci", "navigation_bar.advanced_interface": "Otevřít pokročilé webové rozhraní", "navigation_bar.blocks": "Blokovaní uživatelé", @@ -446,9 +437,6 @@ "notifications.column_settings.admin.sign_up": "Nové registrace:", "notifications.column_settings.alert": "Oznámení na počítači", "notifications.column_settings.favourite": "Oblíbené:", - "notifications.column_settings.filter_bar.advanced": "Zobrazit všechny kategorie", - "notifications.column_settings.filter_bar.category": "Panel rychlého filtrování", - "notifications.column_settings.filter_bar.show_bar": "Zobrazit panel filtrů", "notifications.column_settings.follow": "Noví sledující:", "notifications.column_settings.follow_request": "Nové žádosti o sledování:", "notifications.column_settings.mention": "Zmínky:", @@ -650,7 +638,6 @@ "status.direct": "Soukromě zmínit @{name}", "status.direct_indicator": "Soukromá zmínka", "status.edit": "Upravit", - "status.edited": "Upraveno {date}", "status.edited_x_times": "Upraveno {count, plural, one {{count}krát} few {{count}krát} many {{count}krát} other {{count}krát}}", "status.embed": "Vložit na web", "status.favourite": "Oblíbit", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index 0c1472dcad91fe..d2731b6294e4d5 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -160,9 +160,7 @@ "compose_form.spoiler.unmarked": "Ychwanegu rhybudd cynnwys", "compose_form.spoiler_placeholder": "Rhybudd cynnwys (dewisol)", "confirmation_modal.cancel": "Diddymu", - "confirmations.block.block_and_report": "Rhwystro ac Adrodd", "confirmations.block.confirm": "Blocio", - "confirmations.block.message": "Ydych chi'n siŵr eich bod eisiau blocio {name}?", "confirmations.cancel_follow_request.confirm": "Tynnu'r cais yn ôl", "confirmations.cancel_follow_request.message": "Ydych chi'n siŵr eich bod am dynnu'ch cais i ddilyn {name} yn ôl?", "confirmations.delete.confirm": "Dileu", @@ -171,15 +169,12 @@ "confirmations.delete_list.message": "Ydych chi'n siŵr eich bod eisiau dileu'r rhestr hwn am byth?", "confirmations.discard_edit_media.confirm": "Dileu", "confirmations.discard_edit_media.message": "Mae gennych newidiadau heb eu cadw i'r disgrifiad cyfryngau neu'r rhagolwg - eu dileu 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", - "confirmations.mute.explanation": "Bydd hyn yn cuddio postiadau oddi wrthyn nhw a phostiadau sydd yn sôn amdanyn nhw, ond bydd hyn dal yn gadael iddyn nhw gweld eich postiadau a'ch dilyn.", - "confirmations.mute.message": "Ydych chi wir eisiau tewi {name}?", "confirmations.redraft.confirm": "Dileu ac ailddrafftio", "confirmations.redraft.message": "Ydych chi'n siŵr eich bod am ddileu'r postiad hwn a'i ailddrafftio? Bydd ffefrynnau a hybiau'n cael eu colli, a bydd atebion i'r post gwreiddiol yn mynd yn amddifad.", "confirmations.reply.confirm": "Ateb", @@ -241,6 +236,7 @@ "empty_column.list": "Does dim yn y rhestr yma eto. Pan fydd aelodau'r rhestr yn cyhoeddi postiad newydd, mi fydd yn ymddangos yma.", "empty_column.lists": "Nid oes gennych unrhyw restrau eto. Pan fyddwch yn creu un, mi fydd yn ymddangos yma.", "empty_column.mutes": "Nid ydych wedi tewi unrhyw ddefnyddwyr eto.", + "empty_column.notification_requests": "Dim i boeni amdano! Does dim byd yma. Pan fyddwch yn derbyn hysbysiadau newydd, byddan nhw'n ymddangos yma yn ôl eich gosodiadau.", "empty_column.notifications": "Nid oes gennych unrhyw hysbysiadau eto. Rhyngweithiwch ag eraill i ddechrau'r sgwrs.", "empty_column.public": "Does dim byd yma! Ysgrifennwch rywbeth cyhoeddus, neu dilynwch ddefnyddwyr o weinyddion eraill i'w lanw", "error.unexpected_crash.explanation": "Oherwydd gwall yn ein cod neu oherwydd problem cysondeb porwr, nid oedd y dudalen hon gallu cael ei dangos yn gywir.", @@ -271,6 +267,7 @@ "filter_modal.select_filter.subtitle": "Defnyddiwch gategori sy'n bodoli eisoes neu crëu un newydd", "filter_modal.select_filter.title": "Hidlo'r postiad hwn", "filter_modal.title.status": "Hidlo postiad", + "filtered_notifications_banner.title": "Hysbysiadau wedi'u hidlo", "firehose.all": "Popeth", "firehose.local": "Gweinydd hwn", "firehose.remote": "Gweinyddion eraill", @@ -314,7 +311,6 @@ "hashtag.follow": "Dilyn hashnod", "hashtag.unfollow": "Dad-ddilyn hashnod", "hashtags.and_other": "…a {count, plural, other {# more}}", - "home.column_settings.basic": "Syml", "home.column_settings.show_reblogs": "Dangos hybiau", "home.column_settings.show_replies": "Dangos atebion", "home.hide_announcements": "Cuddio cyhoeddiadau", @@ -400,9 +396,6 @@ "loading_indicator.label": "Yn llwytho…", "media_gallery.toggle_visible": "{number, plural, one {Cuddio delwedd} other {Cuddio delwedd}}", "moved_to_account_banner.text": "Ar hyn y bryd, mae eich cyfrif {disabledAccount} wedi ei analluogi am i chi symud i {movedToAccount}.", - "mute_modal.duration": "Hyd", - "mute_modal.hide_notifications": "Cuddio hysbysiadau gan y defnyddiwr hwn?", - "mute_modal.indefinite": "Parhaus", "navigation_bar.about": "Ynghylch", "navigation_bar.advanced_interface": "Agor mewn rhyngwyneb gwe uwch", "navigation_bar.blocks": "Defnyddwyr wedi eu blocio", @@ -440,15 +433,16 @@ "notification.reblog": "Hybodd {name} eich post", "notification.status": "{name} newydd ei bostio", "notification.update": "Golygodd {name} bostiad", + "notification_requests.accept": "Derbyn", + "notification_requests.dismiss": "Cau", + "notification_requests.notifications_from": "Hysbysiadau gan {name}", + "notification_requests.title": "Hysbysiadau wedi'u hidlo", "notifications.clear": "Clirio hysbysiadau", "notifications.clear_confirmation": "Ydych chi'n siŵr eich bod am glirio'ch holl hysbysiadau am byth?", "notifications.column_settings.admin.report": "Adroddiadau newydd:", "notifications.column_settings.admin.sign_up": "Cofrestriadau newydd:", "notifications.column_settings.alert": "Hysbysiadau bwrdd gwaith", "notifications.column_settings.favourite": "Ffefrynnau:", - "notifications.column_settings.filter_bar.advanced": "Dangos pob categori", - "notifications.column_settings.filter_bar.category": "Bar hidlo cyflym", - "notifications.column_settings.filter_bar.show_bar": "Dangos y bar hidlo", "notifications.column_settings.follow": "Dilynwyr newydd:", "notifications.column_settings.follow_request": "Ceisiadau dilyn newydd:", "notifications.column_settings.mention": "Crybwylliadau:", @@ -474,6 +468,15 @@ "notifications.permission_denied": "Nid oes hysbysiadau bwrdd gwaith ar gael oherwydd cais am ganiatâd porwr a wrthodwyd yn flaenorol", "notifications.permission_denied_alert": "Nid oes modd galluogi hysbysiadau bwrdd gwaith, gan fod caniatâd porwr wedi'i wrthod o'r blaen", "notifications.permission_required": "Nid oes hysbysiadau bwrdd gwaith ar gael oherwydd na roddwyd y caniatâd gofynnol.", + "notifications.policy.filter_new_accounts.hint": "Crëwyd o fewn {days, lluosog, un {yr un diwrnod} arall {y # diwrnod}} diwethaf", + "notifications.policy.filter_new_accounts_title": "Cyfrifon newydd", + "notifications.policy.filter_not_followers_hint": "Gan gynnwys pobl sydd wedi bod yn eich dilyn am llai {days, plural, un {nag un diwrnod} arall {na # diwrnod}}", + "notifications.policy.filter_not_followers_title": "Pobl sydd ddim yn eich dilyn", + "notifications.policy.filter_not_following_hint": "Hyd nes i chi eu cymeradwyo â llaw", + "notifications.policy.filter_not_following_title": "Pobl nad ydych yn eu dilyn", + "notifications.policy.filter_private_mentions_hint": "Wedi'i hidlo oni bai ei fod mewn ymateb i'ch crybwylliad eich hun neu os ydych yn dilyn yr anfonwr", + "notifications.policy.filter_private_mentions_title": "Crybwylliadau preifat digymell", + "notifications.policy.title": "Hidlo hysbysiadau gan…", "notifications_permission_banner.enable": "Galluogi hysbysiadau bwrdd gwaith", "notifications_permission_banner.how_to_control": "I dderbyn hysbysiadau pan nad yw Mastodon ar agor, galluogwch hysbysiadau bwrdd gwaith. Gallwch reoli'n union pa fathau o ryngweithiadau sy'n cynhyrchu hysbysiadau bwrdd gwaith trwy'r botwm {icon} uchod unwaith y byddan nhw wedi'u galluogi.", "notifications_permission_banner.title": "Peidiwch â cholli dim", @@ -650,7 +653,6 @@ "status.direct": "Crybwyll yn breifat @{name}", "status.direct_indicator": "Crybwyll preifat", "status.edit": "Golygu", - "status.edited": "Golygwyd {date}", "status.edited_x_times": "Golygwyd {count, plural, one {count} two {count} other {{count} gwaith}}", "status.embed": "Mewnblannu", "status.favourite": "Hoffi", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index b9ef82bf0c68ea..bff044e7d6d8f9 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -89,6 +89,14 @@ "announcement.announcement": "Bekendtgørelse", "attachments_list.unprocessed": "(ubehandlet)", "audio.hide": "Skjul lyd", + "block_modal.remote_users_caveat": "Serveren {domain} vil blive bedt om at respektere din beslutning. Overholdelse er dog ikke garanteret, da nogle servere kan håndtere blokke forskelligt. Offentlige indlæg kan stadig være synlige for ikke-indloggede brugere.", + "block_modal.show_less": "Vis mindre", + "block_modal.show_more": "Vis flere", + "block_modal.they_cant_mention": "Vedkommende kan ikke nævne eller følge dig.", + "block_modal.they_cant_see_posts": "Vedkommende kan ikke se dine indlæg, og du vil ikke se vedkommendes.", + "block_modal.they_will_know": "Vedkommende kan se den aktive blokering.", + "block_modal.title": "Blokér bruger?", + "block_modal.you_wont_see_mentions": "Du vil ikke se indlæg, som nævner vedkommende.", "boost_modal.combo": "Du kan trykke {combo} for at springe dette over næste gang", "bundle_column_error.copy_stacktrace": "Kopiér fejlrapport", "bundle_column_error.error.body": "Den anmodede side kunne ikke gengives. Dette kan skyldes flere typer fejl.", @@ -160,9 +168,7 @@ "compose_form.spoiler.unmarked": "Tilføj indholdsadvarsel", "compose_form.spoiler_placeholder": "Indholdsadvarsel (valgfri)", "confirmation_modal.cancel": "Afbryd", - "confirmations.block.block_and_report": "Blokér og Anmeld", "confirmations.block.confirm": "Blokér", - "confirmations.block.message": "Er du sikker på, at du vil blokere {name}?", "confirmations.cancel_follow_request.confirm": "Annullér anmodning", "confirmations.cancel_follow_request.message": "Er du sikker på, at anmodningen om at følge {name} skal annulleres?", "confirmations.delete.confirm": "Slet", @@ -171,15 +177,13 @@ "confirmations.delete_list.message": "Er du sikker på, at du vil slette denne liste permanent?", "confirmations.discard_edit_media.confirm": "Kassér", "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.confirm": "Blokér server", "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)", - "confirmations.mute.explanation": "Dette skjuler indlæg fra (og om) dem, men lader dem fortsat se dine indlæg og følge dig.", - "confirmations.mute.message": "Er du sikker på, at du vil skjule {name}?", "confirmations.redraft.confirm": "Slet og omformulér", "confirmations.redraft.message": "Sikker på, at dette indlæg skal slettes og omskrives? Favoritter og boosts går tabt, og svar til det oprindelige indlæg mister tilknytningen.", "confirmations.reply.confirm": "Svar", @@ -205,6 +209,25 @@ "dismissable_banner.explore_statuses": "Disse indlæg fra diverse sociale netværk vinder fodfæste i dag. Nyere indlæg med flere boosts og favoritter rangeres højere.", "dismissable_banner.explore_tags": "Disse hashtages vinder lige nu fodfæste blandt folk på denne og andre servere i det decentraliserede netværk.", "dismissable_banner.public_timeline": "Dette er de seneste offentlige indlæg fra folk på det sociale netværk, som folk på {domain} følger.", + "domain_block_modal.block": "Blokér server", + "domain_block_modal.block_account_instead": "Blokér i stedet @{name}", + "domain_block_modal.they_can_interact_with_old_posts": "Folk fra denne server kan interagere med de gamle indlæg.", + "domain_block_modal.they_cant_follow": "Ingen fra denne server kan følge dig.", + "domain_block_modal.they_wont_know": "Vedkommende ser ikke den aktive blokering.", + "domain_block_modal.title": "Blokér domæne?", + "domain_block_modal.you_will_lose_followers": "Alle følgerne fra denne server fjernes.", + "domain_block_modal.you_wont_see_posts": "Indlæg eller notifikationer fra brugere på denne server vises ikke.", + "domain_pill.activitypub_lets_connect": "Det muliggør at komme i forbindelse og interagere med folk ikke kun på Mastodon, men også på tværs af forskellige sociale apps.", + "domain_pill.activitypub_like_language": "ActivityPub er \"sproget\", Mastodon taler med andre sociale netværk.", + "domain_pill.server": "Server", + "domain_pill.their_handle": "Deres handle:", + "domain_pill.username": "Brugernavn", + "domain_pill.whats_in_a_handle": "Hvad er der i et handle (@brugernavn)?", + "domain_pill.who_they_are": "Da et handle fortæller, hvem nogen er, og hvor de er, kan man interagere med folk på tværs af det sociale net af .", + "domain_pill.who_you_are": "Da et handle fortæller, hvem man er, og hvor man er, kan man interagere med folk på tværs af det sociale net af .", + "domain_pill.your_handle": "Dit handle:", + "domain_pill.your_server": "Dit digitale hjem, hvor alle dine indlæg lever. Synes ikke om denne? Overfør til enhver tid servere samt tilhængere også.", + "domain_pill.your_username": "Din entydige identifikator på denne server. Det er muligt at finde brugere med samme brugernavn på forskellige servere.", "embed.instructions": "Indlejr dette indlæg på dit websted ved at kopiere nedenstående kode.", "embed.preview": "Sådan kommer det til at se ud:", "emoji_button.activity": "Aktivitet", @@ -241,6 +264,7 @@ "empty_column.list": "Der er ikke noget på denne liste endnu. Når medlemmer af listen udgiver nye indlæg vil de fremgå hér.", "empty_column.lists": "Du har endnu ingen lister. Når du opretter én, vil den fremgå hér.", "empty_column.mutes": "Du har endnu ikke skjult (muted) nogle brugere.", + "empty_column.notification_requests": "Alt er klar! Der er intet her. Når der modtages nye notifikationer, fremgår de her jf. dine indstillinger.", "empty_column.notifications": "Du har endnu ingen notifikationer. Når andre interagerer med dig, vil det fremgå hér.", "empty_column.public": "Der er intet hér! Skriv noget offentligt eller følg manuelt brugere fra andre servere for at se indhold", "error.unexpected_crash.explanation": "Grundet en fejl i vores kode, eller en browser-kompatibilitetsfejl, kunne siden ikke vises korrekt.", @@ -271,6 +295,8 @@ "filter_modal.select_filter.subtitle": "Vælg en eksisterende kategori eller opret en ny", "filter_modal.select_filter.title": "Filtrér dette indlæg", "filter_modal.title.status": "Filtrér et indlæg", + "filtered_notifications_banner.pending_requests": "Notifikationer fra {count, plural, =0 {ingen} one {én person} other {# personer}} du måske kender", + "filtered_notifications_banner.title": "Filtrerede notifikationer", "firehose.all": "Alle", "firehose.local": "Denne server", "firehose.remote": "Andre servere", @@ -314,7 +340,6 @@ "hashtag.follow": "Følg hashtag", "hashtag.unfollow": "Stop med at følge hashtag", "hashtags.and_other": "…og {count, plural, one {}other {# flere}}", - "home.column_settings.basic": "Grundlæggende", "home.column_settings.show_reblogs": "Vis boosts", "home.column_settings.show_replies": "Vis svar", "home.hide_announcements": "Skjul bekendtgørelser", @@ -400,9 +425,15 @@ "loading_indicator.label": "Indlæser…", "media_gallery.toggle_visible": "{number, plural, one {Skjul billede} other {Skjul billeder}}", "moved_to_account_banner.text": "Din konto {disabledAccount} er pt. deaktiveret, da du flyttede til {movedToAccount}.", - "mute_modal.duration": "Varighed", - "mute_modal.hide_notifications": "Skjul notifikationer fra denne bruger?", - "mute_modal.indefinite": "Tidsubegrænset", + "mute_modal.hide_from_notifications": "Skjul fra notifikationer", + "mute_modal.hide_options": "Skjul valgmuligheder", + "mute_modal.indefinite": "Indtil jeg fjerner tavsgørelsen", + "mute_modal.show_options": "Vis valgmuligheder", + "mute_modal.they_can_mention_and_follow": "Vedkommende kan nævne og følge dig, men vil ikke blive vist.", + "mute_modal.they_wont_know": "Vedkommende ser ikke den aktive tavsgørelse.", + "mute_modal.title": "Tavsgør bruger?", + "mute_modal.you_wont_see_mentions": "Indlæg, som nævner vedkommende, vises ikke.", + "mute_modal.you_wont_see_posts": "Vedkommende kan stadig se dine indlæg, med vedkommendes vise ikke.", "navigation_bar.about": "Om", "navigation_bar.advanced_interface": "Åbn i avanceret webgrænseflade", "navigation_bar.blocks": "Blokerede brugere", @@ -440,15 +471,16 @@ "notification.reblog": "{name} boostede dit indlæg", "notification.status": "{name} har netop postet", "notification.update": "{name} redigerede et indlæg", + "notification_requests.accept": "Acceptér", + "notification_requests.dismiss": "Afvis", + "notification_requests.notifications_from": "Notifikationer fra {name}", + "notification_requests.title": "Filtrerede notifikationer", "notifications.clear": "Ryd notifikationer", "notifications.clear_confirmation": "Er du sikker på, at du vil rydde alle dine notifikationer permanent?", "notifications.column_settings.admin.report": "Nye anmeldelser:", "notifications.column_settings.admin.sign_up": "Nye tilmeldinger:", "notifications.column_settings.alert": "Computernotifikationer", "notifications.column_settings.favourite": "Favoritter:", - "notifications.column_settings.filter_bar.advanced": "Vis alle kategorier", - "notifications.column_settings.filter_bar.category": "Hurtigfilterbjælke", - "notifications.column_settings.filter_bar.show_bar": "Vis filterbjælke", "notifications.column_settings.follow": "Nye følgere:", "notifications.column_settings.follow_request": "Nye følgeanmodninger:", "notifications.column_settings.mention": "Omtaler:", @@ -474,6 +506,15 @@ "notifications.permission_denied": "Computernotifikationer er utilgængelige grundet tidligere afvist browsertilladelsesanmodning", "notifications.permission_denied_alert": "Computernotifikationer kan ikke aktiveres, da browsertilladelse tidligere blev nægtet", "notifications.permission_required": "Computernotifikationer er utilgængelige, da den krævede tilladelse ikke er tildelt.", + "notifications.policy.filter_new_accounts.hint": "Oprettet indenfor {days, plural, one {den seneste dag} other {de seneste # dage}}", + "notifications.policy.filter_new_accounts_title": "Ny konti", + "notifications.policy.filter_not_followers_hint": "Inklusiv personer, som har fulgt dig {days, plural, one {mindre end én dag} other {færre end # dage}}", + "notifications.policy.filter_not_followers_title": "Folk, som ikke følger dig", + "notifications.policy.filter_not_following_hint": "Indtil de manuelt godkendes", + "notifications.policy.filter_not_following_title": "Folk, du ikke følger", + "notifications.policy.filter_private_mentions_hint": "Filtreret, medmindre det er i svar på egen omtale, eller hvis afsenderen følges", + "notifications.policy.filter_private_mentions_title": "Uopfordrede private omtaler", + "notifications.policy.title": "Bortfiltrér notifikationer fra…", "notifications_permission_banner.enable": "Aktivér computernotifikationer", "notifications_permission_banner.how_to_control": "Aktivér computernotifikationer for at få besked, når Mastodon ikke er åben. Når de er aktiveret, kan man via knappen {icon} ovenfor præcist styre, hvilke typer af interaktioner, som genererer computernotifikationer.", "notifications_permission_banner.title": "Gå aldrig glip af noget", @@ -650,10 +691,11 @@ "status.direct": "Privat omtale @{name}", "status.direct_indicator": "Privat omtale", "status.edit": "Redigér", - "status.edited": "Redigeret {date}", + "status.edited": "Senest redigeret {date}", "status.edited_x_times": "Redigeret {count, plural, one {{count} gang} other {{count} gange}}", "status.embed": "Indlejr", "status.favourite": "Favorit", + "status.favourites": "{count, plural, one {# favorit} other {# favoritter}}", "status.filter": "Filtrér dette indlæg", "status.filtered": "Filtreret", "status.hide": "Skjul indlæg", @@ -674,6 +716,7 @@ "status.reblog": "Fremhæv", "status.reblog_private": "Boost med oprindelig synlighed", "status.reblogged_by": "{name} fremhævede", + "status.reblogs": "{count, plural, one {# boost} other {# boosts}}", "status.reblogs.empty": "Ingen har endnu fremhævet dette indlæg. Når nogen gør, vil det fremgå hér.", "status.redraft": "Slet og omformulér", "status.remove_bookmark": "Fjern bogmærke", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 3700b5d91d2581..412ef31b07cb81 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -89,6 +89,14 @@ "announcement.announcement": "Ankündigung", "attachments_list.unprocessed": "(ausstehend)", "audio.hide": "Audio ausblenden", + "block_modal.remote_users_caveat": "Wir werden den Server {domain} bitten, deine Entscheidung zu respektieren. Allerdings kann nicht garantiert werden, dass sie eingehalten wird, weil einige Server Blockierungen unterschiedlich handhaben können. Öffentliche Beiträge können für nicht angemeldete Nutzer*innen weiterhin sichtbar sein.", + "block_modal.show_less": "Weniger anzeigen", + "block_modal.show_more": "Mehr anzeigen", + "block_modal.they_cant_mention": "Das Profil wird dich nicht erwähnen oder dir folgen können.", + "block_modal.they_cant_see_posts": "Deine Beiträge können nicht mehr angesehen werden und du wirst deren Beiträge nicht mehr sehen.", + "block_modal.they_will_know": "Es wird erkennbar sein, dass dieses Profil blockiert wurde.", + "block_modal.title": "Profil blockieren?", + "block_modal.you_wont_see_mentions": "Du wirst keine Beiträge sehen, die dieses Profil erwähnen.", "boost_modal.combo": "Mit {combo} wird dieses Fenster beim nächsten Mal nicht mehr angezeigt", "bundle_column_error.copy_stacktrace": "Fehlerbericht kopieren", "bundle_column_error.error.body": "Die angeforderte Seite konnte nicht dargestellt werden. Dies könnte auf einen Fehler in unserem Code oder auf ein Browser-Kompatibilitätsproblem zurückzuführen sein.", @@ -160,9 +168,7 @@ "compose_form.spoiler.unmarked": "Inhaltswarnung hinzufügen", "compose_form.spoiler_placeholder": "Inhaltswarnung (optional)", "confirmation_modal.cancel": "Abbrechen", - "confirmations.block.block_and_report": "Blockieren und melden", "confirmations.block.confirm": "Blockieren", - "confirmations.block.message": "Möchtest du {name} wirklich blockieren?", "confirmations.cancel_follow_request.confirm": "Anfrage zurückziehen", "confirmations.cancel_follow_request.message": "Möchtest du deine Anfrage, {name} zu folgen, wirklich zurückziehen?", "confirmations.delete.confirm": "Löschen", @@ -171,15 +177,13 @@ "confirmations.delete_list.message": "Möchtest du diese Liste für immer löschen?", "confirmations.discard_edit_media.confirm": "Verwerfen", "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 blockieren", + "confirmations.domain_block.confirm": "Server blockieren", "confirmations.domain_block.message": "Möchtest du die gesamte Domain {domain} wirklich blockieren? In den meisten Fällen reichen ein paar gezielte Blockierungen 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. Möchtest du wirklich fortfahren?", "confirmations.logout.confirm": "Abmelden", "confirmations.logout.message": "Möchtest du dich wirklich abmelden?", "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": "Möchtest du {name} wirklich stummschalten?", "confirmations.redraft.confirm": "Löschen und neu erstellen", "confirmations.redraft.message": "Möchtest du diesen Beitrag wirklich löschen und neu verfassen? Favoriten und geteilte Beiträge gehen verloren, und Antworten auf den ursprünglichen Beitrag verlieren den Zusammenhang.", "confirmations.reply.confirm": "Antworten", @@ -205,6 +209,27 @@ "dismissable_banner.explore_statuses": "Diese Beiträge stammen aus dem gesamten sozialen Netzwerk und gewinnen derzeit an Reichweite. Neuere Beiträge, die häufiger geteilt und favorisiert wurden, werden höher eingestuft.", "dismissable_banner.explore_tags": "Das sind Hashtags, die derzeit an Reichweite gewinnen. Hashtags, die von vielen verschiedenen Profilen verwendet werden, werden höher eingestuft.", "dismissable_banner.public_timeline": "Das sind die neuesten öffentlichen Beiträge von Profilen im sozialen Netzwerk, denen Leute auf {domain} folgen.", + "domain_block_modal.block": "Server blockieren", + "domain_block_modal.block_account_instead": "Stattdessen @{name} blockieren", + "domain_block_modal.they_can_interact_with_old_posts": "Profile von diesem Server werden mit deinen älteren Beiträgen interagieren können.", + "domain_block_modal.they_cant_follow": "Niemand von diesem Server wird dir folgen können.", + "domain_block_modal.they_wont_know": "Es wird nicht erkennbar sein, dass diese Domain blockiert wurde.", + "domain_block_modal.title": "Domain blockieren?", + "domain_block_modal.you_will_lose_followers": "Alle Follower von diesem Server werden entfernt.", + "domain_block_modal.you_wont_see_posts": "Du wirst keine Beiträge oder Benachrichtigungen von Profilen auf diesem Server sehen.", + "domain_pill.activitypub_lets_connect": "Somit kannst du dich nicht nur auf Mastodon mit Leuten verbinden und mit ihnen interagieren, sondern über alle sozialen Apps hinweg.", + "domain_pill.activitypub_like_language": "ActivityPub ist sozusagen die Sprache, die Mastodon mit anderen sozialen Netzwerken spricht.", + "domain_pill.server": "Server", + "domain_pill.their_handle": "Deren Adresse:", + "domain_pill.their_server": "Deren digitales Zuhause. Hier „leben“ alle Beiträge von diesem Profil.", + "domain_pill.their_username": "Deren eindeutigen Identität auf dem betreffenden Server. Es ist möglich, Profile mit dem gleichen Profilnamen auf verschiedenen Servern zu finden.", + "domain_pill.username": "Profilname", + "domain_pill.whats_in_a_handle": "Was ist Teil der Adresse?", + "domain_pill.who_they_are": "Adressen teilen mit, wer jemand ist und wo sich jemand aufhält. Daher kannst du mit Leuten im gesamten Social Web interagieren, wenn es eine durch ist.", + "domain_pill.who_you_are": "Deine Adresse teilt mit, wer du bist und wo du dich aufhältst. Daher können andere Leute im gesamten Social Web mit dir interagieren, wenn es eine durch ist.", + "domain_pill.your_handle": "Deine Adresse:", + "domain_pill.your_server": "Dein digitales Zuhause. Hier „leben“ alle Beiträge von dir. Dir gefällt es hier nicht? Du kannst jederzeit den Server wechseln und ebenso deine Follower übertragen.", + "domain_pill.your_username": "Deine eindeutige Identität auf diesem Server. Es ist möglich, Profile mit dem gleichen Profilnamen auf verschiedenen Servern zu finden.", "embed.instructions": "Du kannst diesen Beitrag außerhalb des Fediverse (z. B. auf deiner Website) einbetten, indem du diesen iFrame-Code einfügst.", "embed.preview": "Vorschau:", "emoji_button.activity": "Aktivitäten", @@ -241,6 +266,7 @@ "empty_column.list": "Diese Liste ist derzeit leer. Wenn Konten auf dieser Liste neue Beiträge veröffentlichen, werden sie hier erscheinen.", "empty_column.lists": "Du hast noch keine Listen. Sobald du eine anlegst, wird sie hier erscheinen.", "empty_column.mutes": "Du hast keine Profile stummgeschaltet.", + "empty_column.notification_requests": "Alles klar! Hier gibt es nichts. Wenn Sie neue Mitteilungen erhalten, werden diese entsprechend Ihren Einstellungen hier angezeigt.", "empty_column.notifications": "Du hast noch keine Benachrichtigungen. Sobald andere Personen mit dir interagieren, wirst du hier darüber informiert.", "empty_column.public": "Hier ist nichts zu sehen! Schreibe etwas öffentlich oder folge Profilen von anderen Servern, um die Timeline aufzufüllen", "error.unexpected_crash.explanation": "Wegen eines Fehlers in unserem Code oder aufgrund einer Browser-Inkompatibilität kann diese Seite nicht korrekt angezeigt werden.", @@ -271,6 +297,8 @@ "filter_modal.select_filter.subtitle": "Einem vorhandenen Filter hinzufügen oder einen neuen erstellen", "filter_modal.select_filter.title": "Diesen Beitrag filtern", "filter_modal.title.status": "Beitrag per Filter ausblenden", + "filtered_notifications_banner.pending_requests": "Benachrichtigungen von {count, plural, =0 {keinem Profil, das du möglicherweise kennst} one {einem Profil, das du möglicherweise kennst} other {# Profilen, die du möglicherweise kennst}}", + "filtered_notifications_banner.title": "Gefilterte Benachrichtigungen", "firehose.all": "Alles", "firehose.local": "Dieser Server", "firehose.remote": "Andere Server", @@ -281,7 +309,7 @@ "follow_suggestions.dismiss": "Nicht mehr anzeigen", "follow_suggestions.hints.featured": "Dieses Profil wurde vom {domain}-Team ausgewählt.", "follow_suggestions.hints.friends_of_friends": "Dieses Profil ist bei deinen Followern beliebt.", - "follow_suggestions.hints.most_followed": "Dieses Profil wird von den meisten auf {domain} gefolgt.", + "follow_suggestions.hints.most_followed": "Dieses Profil ist eines der am meisten gefolgten auf {domain}.", "follow_suggestions.hints.most_interactions": "Dieses Profil erhielt auf {domain} in letzter Zeit viel Aufmerksamkeit.", "follow_suggestions.hints.similar_to_recently_followed": "Dieses Profil ähnelt den Profilen, denen du in letzter Zeit gefolgt hast.", "follow_suggestions.personalized_suggestion": "Persönliche Empfehlung", @@ -314,7 +342,6 @@ "hashtag.follow": "Hashtag folgen", "hashtag.unfollow": "Hashtag entfolgen", "hashtags.and_other": "… und {count, plural, one{# weiterer} other {# weitere}}", - "home.column_settings.basic": "Allgemein", "home.column_settings.show_reblogs": "Geteilte Beiträge anzeigen", "home.column_settings.show_replies": "Antworten anzeigen", "home.hide_announcements": "Ankündigungen ausblenden", @@ -400,9 +427,15 @@ "loading_indicator.label": "Wird geladen …", "media_gallery.toggle_visible": "{number, plural, one {Medium ausblenden} other {Medien ausblenden}}", "moved_to_account_banner.text": "Dein Konto {disabledAccount} ist derzeit deaktiviert, weil du zu {movedToAccount} umgezogen bist.", - "mute_modal.duration": "Dauer", - "mute_modal.hide_notifications": "Benachrichtigungen dieses Profils ausblenden?", - "mute_modal.indefinite": "Unbegrenzt", + "mute_modal.hide_from_notifications": "Benachrichtigungen ausblenden", + "mute_modal.hide_options": "Einstellungen ausblenden", + "mute_modal.indefinite": "Bis ich die Stummschaltung aufhebe", + "mute_modal.show_options": "Einstellungen anzeigen", + "mute_modal.they_can_mention_and_follow": "Das Profil wird dich weiterhin erwähnen und dir folgen können, aber du wirst davon nichts sehen.", + "mute_modal.they_wont_know": "Es wird nicht erkennbar sein, dass dieses Profil stummgeschaltet wurde.", + "mute_modal.title": "Profil stummschalten?", + "mute_modal.you_wont_see_mentions": "Du wirst keine Beiträge sehen, die dieses Profil erwähnen.", + "mute_modal.you_wont_see_posts": "Deine Beiträge können weiterhin angesehen werden, aber du wirst deren Beiträge nicht mehr sehen.", "navigation_bar.about": "Über", "navigation_bar.advanced_interface": "Im erweiterten Webinterface öffnen", "navigation_bar.blocks": "Blockierte Profile", @@ -440,15 +473,16 @@ "notification.reblog": "{name} teilte deinen Beitrag", "notification.status": "{name} hat gerade etwas gepostet", "notification.update": "{name} bearbeitete einen Beitrag", + "notification_requests.accept": "Akzeptieren", + "notification_requests.dismiss": "Ablehnen", + "notification_requests.notifications_from": "Benachrichtigungen von {name}", + "notification_requests.title": "Gefilterte Benachrichtigungen", "notifications.clear": "Benachrichtigungen löschen", "notifications.clear_confirmation": "Möchtest du wirklich alle Benachrichtigungen für immer löschen?", "notifications.column_settings.admin.report": "Neue Meldungen:", "notifications.column_settings.admin.sign_up": "Neue Registrierungen:", "notifications.column_settings.alert": "Desktop-Benachrichtigungen", "notifications.column_settings.favourite": "Favoriten:", - "notifications.column_settings.filter_bar.advanced": "Alle Filterkategorien anzeigen", - "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.mention": "Erwähnungen:", @@ -474,6 +508,15 @@ "notifications.permission_denied": "Desktop-Benachrichtigungen können aufgrund einer zuvor verweigerten Berechtigung nicht aktiviert werden", "notifications.permission_denied_alert": "Desktop-Benachrichtigungen können nicht aktiviert werden, da die Browser-Berechtigung zuvor verweigert wurde", "notifications.permission_required": "Desktop-Benachrichtigungen sind nicht verfügbar, da die erforderliche Berechtigung nicht erteilt wurde.", + "notifications.policy.filter_new_accounts.hint": "Innerhalb {days, plural, one {des letzten Tages} other {der letzten # Tagen}} erstellt", + "notifications.policy.filter_new_accounts_title": "Neuen Konten", + "notifications.policy.filter_not_followers_hint": "Einschließlich Profilen, die dir seit weniger als {days, plural, one {einem Tag} other {# Tagen}} folgen", + "notifications.policy.filter_not_followers_title": "Profilen, die mir nicht folgen", + "notifications.policy.filter_not_following_hint": "Solange du sie nicht manuell akzeptierst", + "notifications.policy.filter_not_following_title": "Profilen, denen ich nicht folge", + "notifications.policy.filter_private_mentions_hint": "Solange sie keine Antwort auf deine Erwähnung ist oder du dem Profil nicht folgst", + "notifications.policy.filter_private_mentions_title": "Unerwünschten privaten Erwähnungen", + "notifications.policy.title": "Benachrichtigungen herausfiltern von …", "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": "Nichts verpassen", @@ -650,10 +693,11 @@ "status.direct": "@{name} privat erwähnen", "status.direct_indicator": "Private Erwähnung", "status.edit": "Beitrag bearbeiten", - "status.edited": "Bearbeitet {date}", + "status.edited": "Zuletzt am {date} bearbeitet", "status.edited_x_times": "{count, plural, one {{count}-mal} other {{count}-mal}} bearbeitet", "status.embed": "Beitrag per iFrame einbetten", "status.favourite": "Favorisieren", + "status.favourites": "{count, plural, one {Favorit} other {Favoriten}}", "status.filter": "Beitrag filtern", "status.filtered": "Gefiltert", "status.hide": "Beitrag ausblenden", @@ -674,6 +718,7 @@ "status.reblog": "Teilen", "status.reblog_private": "Mit der ursprünglichen Zielgruppe teilen", "status.reblogged_by": "{name} teilte", + "status.reblogs": "{count, plural, one {geteilt} other {geteilt}}", "status.reblogs.empty": "Diesen Beitrag hat bisher noch niemand geteilt. Sobald es jemand tut, wird das Profil hier erscheinen.", "status.redraft": "Löschen und neu erstellen", "status.remove_bookmark": "Lesezeichen entfernen", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index a5ed320831c7e7..937bb5d027c3e5 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -154,9 +154,7 @@ "compose_form.spoiler.unmarked": "Προσθήκη προειδοποίησης περιεχομένου", "compose_form.spoiler_placeholder": "Προειδοποίηση περιεχομένου (προαιρετική)", "confirmation_modal.cancel": "Άκυρο", - "confirmations.block.block_and_report": "Αποκλεισμός & Αναφορά", "confirmations.block.confirm": "Αποκλεισμός", - "confirmations.block.message": "Σίγουρα θες να αποκλείσεις {name};", "confirmations.cancel_follow_request.confirm": "Απόσυρση αιτήματος", "confirmations.cancel_follow_request.message": "Είσαι σίγουρος/η ότι θέλεις να αποσύρεις το αίτημά σου να ακολουθείς τον/την {name};", "confirmations.delete.confirm": "Διαγραφή", @@ -165,15 +163,12 @@ "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.message": "Σίγουρα θες να αποσιωπήσεις {name};", "confirmations.redraft.confirm": "Διαγραφή & ξαναγράψιμο", "confirmations.redraft.message": "Σίγουρα θέλεις να σβήσεις αυτή την ανάρτηση και να την ξαναγράψεις; Οι προτιμήσεις και προωθήσεις θα χαθούν και οι απαντήσεις στην αρχική ανάρτηση θα μείνουν ορφανές.", "confirmations.reply.confirm": "Απάντησε", @@ -289,7 +284,6 @@ "hashtag.column_settings.tag_toggle": "Προσθήκη επιπλέον ταμπελών για την κολώνα", "hashtag.follow": "Παρακολούθηση ετικέτας", "hashtag.unfollow": "Διακοπή παρακολούθησης ετικέτας", - "home.column_settings.basic": "Βασικές ρυθμίσεις", "home.column_settings.show_reblogs": "Εμφάνιση προωθήσεων", "home.column_settings.show_replies": "Εμφάνιση απαντήσεων", "home.hide_announcements": "Απόκρυψη ανακοινώσεων", @@ -367,9 +361,6 @@ "loading_indicator.label": "Φόρτωση…", "media_gallery.toggle_visible": "{number, plural, one {Απόκρυψη εικόνας} other {Απόκρυψη εικόνων}}", "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": "Σελιδοδείκτες", @@ -411,9 +402,6 @@ "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": "Επισημάνσεις:", @@ -590,7 +578,6 @@ "status.direct": "Ιδιωτική επισήμανση @{name}", "status.direct_indicator": "Ιδιωτική επισήμανση", "status.edit": "Επεξεργασία", - "status.edited": "Επεξεργάστηκε στις {date}", "status.edited_x_times": "Επεξεργάστηκε {count, plural, one {{count} φορά} other {{count} φορές}}", "status.embed": "Ενσωμάτωσε", "status.favourite": "Αγαπημένα", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index 6232207af2f865..228a16def241e9 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -160,9 +160,7 @@ "compose_form.spoiler.unmarked": "Add content warning", "compose_form.spoiler_placeholder": "Content warning (optional)", "confirmation_modal.cancel": "Cancel", - "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "Block", - "confirmations.block.message": "Are you sure you want to block {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": "Delete", @@ -171,15 +169,12 @@ "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?", "confirmations.discard_edit_media.confirm": "Discard", "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", - "confirmations.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", - "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.", - "confirmations.mute.message": "Are you sure you want to mute {name}?", "confirmations.redraft.confirm": "Delete & redraft", "confirmations.redraft.message": "Are you sure you want to delete this post and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.", "confirmations.reply.confirm": "Reply", @@ -308,7 +303,6 @@ "hashtag.follow": "Follow hashtag", "hashtag.unfollow": "Unfollow hashtag", "hashtags.and_other": "…and {count, plural, one {one more} other {# more}}", - "home.column_settings.basic": "Basic", "home.column_settings.show_reblogs": "Show boosts", "home.column_settings.show_replies": "Show replies", "home.hide_announcements": "Hide announcements", @@ -394,9 +388,6 @@ "loading_indicator.label": "Loading…", "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", "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.advanced_interface": "Open in advanced web interface", "navigation_bar.blocks": "Blocked users", @@ -440,9 +431,6 @@ "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:", @@ -644,7 +632,6 @@ "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "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", diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index ee1cc49b9af7d3..549651eaba93f9 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -145,6 +145,14 @@ "antennas.warnings.range_radio": "Simultaneous account and domain designation is not recommended.", "attachments_list.unprocessed": "(unprocessed)", "audio.hide": "Hide audio", + "block_modal.remote_users_caveat": "We will ask the server {domain} to respect your decision. However, compliance is not guaranteed since some servers may handle blocks differently. Public posts may still be visible to non-logged-in users.", + "block_modal.show_less": "Show less", + "block_modal.show_more": "Show more", + "block_modal.they_cant_mention": "They can't mention or follow you.", + "block_modal.they_cant_see_posts": "They can't see your posts and you won't see theirs.", + "block_modal.they_will_know": "They can see that they're blocked.", + "block_modal.title": "Block user?", + "block_modal.you_wont_see_mentions": "You won't see posts that mention them.", "bookmark_categories.all_bookmarks": "All bookmarks", "bookmark_categories.delete": "Delete category", "bookmark_categories.edit": "Edit category", @@ -247,9 +255,7 @@ "compose_form.spoiler.unmarked": "Add content warning", "compose_form.spoiler_placeholder": "Content warning (optional)", "confirmation_modal.cancel": "Cancel", - "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "Block", - "confirmations.block.message": "Are you sure you want to block {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": "Delete", @@ -264,15 +270,13 @@ "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?", "confirmations.discard_edit_media.confirm": "Discard", "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", - "confirmations.domain_block.confirm": "Block entire domain", + "confirmations.domain_block.confirm": "Block server", "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", - "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.", - "confirmations.mute.message": "Are you sure you want to mute {name}?", "confirmations.redraft.confirm": "Delete & redraft", "confirmations.redraft.message": "Are you sure you want to delete this post and re-draft it? Favorites and boosts will be lost, and replies to the original post will be orphaned.", "confirmations.reply.confirm": "Reply", @@ -298,6 +302,27 @@ "dismissable_banner.explore_statuses": "These are posts from across the social web that are gaining traction today. Newer posts with more boosts and favorites are ranked higher.", "dismissable_banner.explore_tags": "These are hashtags that are gaining traction on the social web today. Hashtags that are used by more different people are ranked higher.", "dismissable_banner.public_timeline": "These are the most recent public posts from people on the social web that people on {domain} follow.", + "domain_block_modal.block": "Block server", + "domain_block_modal.block_account_instead": "Block @{name} instead", + "domain_block_modal.they_can_interact_with_old_posts": "People from this server can interact with your old posts.", + "domain_block_modal.they_cant_follow": "Nobody from this server can follow you.", + "domain_block_modal.they_wont_know": "They won't know they've been blocked.", + "domain_block_modal.title": "Block domain?", + "domain_block_modal.you_will_lose_followers": "All your followers from this server will be removed.", + "domain_block_modal.you_wont_see_posts": "You won't see posts or notifications from users on this server.", + "domain_pill.activitypub_lets_connect": "It lets you connect and interact with people not just on Mastodon, but across different social apps too.", + "domain_pill.activitypub_like_language": "ActivityPub is like the language Mastodon speaks with other social networks.", + "domain_pill.server": "Server", + "domain_pill.their_handle": "Their handle:", + "domain_pill.their_server": "Their digital home, where all of their posts live.", + "domain_pill.their_username": "Their unique identifier on their server. It’s possible to find users with the same username on different servers.", + "domain_pill.username": "Username", + "domain_pill.whats_in_a_handle": "What's in a handle?", + "domain_pill.who_they_are": "Since handles say who someone is and where they are, you can interact with people across the social web of .", + "domain_pill.who_you_are": "Because your handle says who you are and where you are, people can interact with you across the social web of .", + "domain_pill.your_handle": "Your handle:", + "domain_pill.your_server": "Your digital home, where all of your posts live. Don’t like this one? Transfer servers at any time and bring your followers, too.", + "domain_pill.your_username": "Your unique identifier on this server. It’s possible to find users with the same username on different servers.", "embed.instructions": "Embed this post on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", @@ -374,7 +399,7 @@ "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", "filter_modal.select_filter.title": "Filter this post", "filter_modal.title.status": "Filter a post", - "filtered_notifications_banner.pending_requests": "Notifications from {count, plural, =0 {no} one {one person} other {# people}} you may know", + "filtered_notifications_banner.pending_requests": "Notifications from {count, plural, =0 {no one} one {one person} other {# people}} you may know", "filtered_notifications_banner.title": "Filtered notifications", "firehose.all": "All", "firehose.local": "This server", @@ -510,9 +535,15 @@ "loading_indicator.label": "Loading…", "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", "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", + "mute_modal.hide_from_notifications": "Hide from notifications", + "mute_modal.hide_options": "Hide options", + "mute_modal.indefinite": "Until I unmute them", + "mute_modal.show_options": "Show options", + "mute_modal.they_can_mention_and_follow": "They can mention and follow you, but you won't see them.", + "mute_modal.they_wont_know": "They won't know they've been muted.", + "mute_modal.title": "Mute user?", + "mute_modal.you_wont_see_mentions": "You won't see posts that mention them.", + "mute_modal.you_wont_see_posts": "They can still see your posts, but you won't see theirs.", "navigation_bar.about": "About", "navigation_bar.advanced_interface": "Open in advanced web interface", "navigation_bar.antennas": "Antenna", @@ -814,7 +845,7 @@ "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Edit", - "status.edited": "Edited {date}", + "status.edited": "Last edited {date}", "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Embed", "status.emoji_reaction": "Emoji reaction", @@ -827,7 +858,9 @@ "status.expiration.5_minutes": "Remove 5 minutes later", "status.expiration.7_days": "Remove 7 days later", "status.expiration.add": "Set status expired time", + "status.emoji_reactions": "{count, plural, one {reaction} other {reactions}}", "status.favourite": "Favorite", + "status.favourites": "{count, plural, one {favorite} other {favorites}}", "status.filter": "Filter this post", "status.filtered": "Filtered", "status.hide": "Hide post", @@ -851,6 +884,7 @@ "status.reblog": "Boost", "status.reblog_private": "Boost with original visibility", "status.reblogged_by": "{name} boosted", + "status.reblogs": "{count, plural, one {boost} other {boosts}}", "status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.reference": "Reference", @@ -867,6 +901,7 @@ "status.show_more": "Show more", "status.show_more_all": "Show more for all", "status.show_original": "Show original", + "status.status_references": "{count, plural, one {ref} other {refs}}", "status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {{attachmentCount} attachments}}", "status.translate": "Translate", "status.translated_from_with": "Translated from {lang} using {provider}", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index 911502d85ff891..6e7885f485bc90 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -152,9 +152,7 @@ "compose_form.spoiler.marked": "Forigi la averton de enhavo", "compose_form.spoiler.unmarked": "Aldoni averton de enhavo", "confirmation_modal.cancel": "Nuligi", - "confirmations.block.block_and_report": "Bloki kaj raporti", "confirmations.block.confirm": "Bloki", - "confirmations.block.message": "Ĉu vi certas, ke vi volas bloki {name}?", "confirmations.cancel_follow_request.confirm": "Eksigi peton", "confirmations.cancel_follow_request.message": "Ĉu vi certas ke vi volas eksigi vian peton por sekvi {name}?", "confirmations.delete.confirm": "Forigi", @@ -163,15 +161,12 @@ "confirmations.delete_list.message": "Ĉu vi certas, ke vi volas porĉiame forigi ĉi tiun liston?", "confirmations.discard_edit_media.confirm": "Forĵeti", "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", - "confirmations.mute.explanation": "Tio kaŝos la mesaĝojn de la uzanto kaj la mesaĝojn kiuj mencias rin, sed ri ankoraŭ rajtos vidi viajn mesaĝojn kaj sekvi vin.", - "confirmations.mute.message": "Ĉu vi certas, ke vi volas silentigi {name}?", "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", @@ -295,7 +290,6 @@ "hashtag.follow": "Sekvi la kradvorton", "hashtag.unfollow": "Ne plu sekvi la kradvorton", "hashtags.and_other": "…kaj {count, plural,other {# pli}}", - "home.column_settings.basic": "Bazaj agordoj", "home.column_settings.show_reblogs": "Montri diskonigojn", "home.column_settings.show_replies": "Montri respondojn", "home.hide_announcements": "Kaŝi la anoncojn", @@ -381,9 +375,6 @@ "loading_indicator.label": "Ŝargado…", "media_gallery.toggle_visible": "{number, plural, one {Kaŝi la bildon} other {Kaŝi la bildojn}}", "moved_to_account_banner.text": "Via konto {disabledAccount} estas malvalidigita ĉar vi movis ĝin al {movedToAccount}.", - "mute_modal.duration": "Daŭro", - "mute_modal.hide_notifications": "Ĉu vi volas kaŝi la sciigojn de ĉi tiu uzanto?", - "mute_modal.indefinite": "Nedifinita", "navigation_bar.about": "Pri", "navigation_bar.advanced_interface": "Malfermi altnivelan retpaĝan interfacon", "navigation_bar.blocks": "Blokitaj uzantoj", @@ -427,9 +418,6 @@ "notifications.column_settings.admin.sign_up": "Novaj registriĝoj:", "notifications.column_settings.alert": "Sciigoj de la retumilo", "notifications.column_settings.favourite": "Stelumoj:", - "notifications.column_settings.filter_bar.advanced": "Montri ĉiujn kategoriojn", - "notifications.column_settings.filter_bar.category": "Rapida filtra breto", - "notifications.column_settings.filter_bar.show_bar": "Montri la breton de filtrilo", "notifications.column_settings.follow": "Novaj sekvantoj:", "notifications.column_settings.follow_request": "Novaj petoj de sekvado:", "notifications.column_settings.mention": "Mencioj:", @@ -621,7 +609,6 @@ "status.direct": "Private mencii @{name}", "status.direct_indicator": "Privata mencio", "status.edit": "Redakti", - "status.edited": "Redaktita {date}", "status.edited_x_times": "Redactita {count, plural, one {{count} fojon} other {{count} fojojn}}", "status.embed": "Enkorpigi", "status.favourite": "Ŝatata", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index ead3355589f76c..53144cfcbf9879 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -89,6 +89,14 @@ "announcement.announcement": "Anuncio", "attachments_list.unprocessed": "[sin procesar]", "audio.hide": "Ocultar audio", + "block_modal.remote_users_caveat": "Le pediremos al servidor {domain} que respete tu decisión. Sin embargo, el cumplimiento no está garantizado, ya que algunos servidores pueden manejar los bloqueos de forma diferente. Los mensajes públicos todavía podrían estar visibles para los usuarios no conectados.", + "block_modal.show_less": "Mostrar menos", + "block_modal.show_more": "Mostrar más", + "block_modal.they_cant_mention": "No pueden mencionarte ni seguirte.", + "block_modal.they_cant_see_posts": "No pueden ver tus mensajes y vos no verás los suyos.", + "block_modal.they_will_know": "Pueden ver que están bloqueados.", + "block_modal.title": "¿Bloquear usuario?", + "block_modal.you_wont_see_mentions": "No verás mensajes que los mencionen.", "boost_modal.combo": "Podés hacer clic en {combo} para saltar esto la próxima vez", "bundle_column_error.copy_stacktrace": "Copiar informe de error", "bundle_column_error.error.body": "La página solicitada no pudo ser cargada. Podría deberse a un error de programación en nuestro código o a un problema de compatibilidad con el navegador web.", @@ -160,9 +168,7 @@ "compose_form.spoiler.unmarked": "Agregar advertencia de contenido", "compose_form.spoiler_placeholder": "Advertencia de contenido (opcional)", "confirmation_modal.cancel": "Cancelar", - "confirmations.block.block_and_report": "Bloquear y denunciar", "confirmations.block.confirm": "Bloquear", - "confirmations.block.message": "¿Estás seguro que querés bloquear a {name}?", "confirmations.cancel_follow_request.confirm": "Retirar solicitud", "confirmations.cancel_follow_request.message": "¿Estás seguro que querés retirar tu solicitud para seguir a {name}?", "confirmations.delete.confirm": "Eliminar", @@ -171,15 +177,13 @@ "confirmations.delete_list.message": "¿Estás seguro que querés eliminar permanentemente esta lista?", "confirmations.discard_edit_media.confirm": "Descartar", "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.confirm": "Bloquear servidor", "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", - "confirmations.mute.explanation": "Se ocultarán los mensajes de esta cuenta y los mensajes de otras cuentas que mencionen a ésta, pero todavía esta cuenta podrá ver tus mensajes o seguirte.", - "confirmations.mute.message": "¿Estás seguro que querés silenciar a {name}?", "confirmations.redraft.confirm": "Eliminar mensaje original y editarlo", "confirmations.redraft.message": "¿Estás seguro que querés eliminar este mensaje y volver a editarlo? Se perderán las veces marcadas como favorito y sus adhesiones, y las respuestas al mensaje original quedarán huérfanas.", "confirmations.reply.confirm": "Responder", @@ -205,6 +209,27 @@ "dismissable_banner.explore_statuses": "Estos son los mensajes que están ganando popularidad en la web social, hoy mismo. Los mensajes más recientes con más adhesiones y marcados como favoritos obtienen más exposición.", "dismissable_banner.explore_tags": "Estas son etiquetas que están ganando popularidad en la web social, hoy mismo. Las etiquetas que son usadas por diferentes cuentas obtienen más exposición.", "dismissable_banner.public_timeline": "Estos son los mensajes públicos más recientes de cuentas en la web social que las personas en {domain} siguen.", + "domain_block_modal.block": "Bloquear servidor", + "domain_block_modal.block_account_instead": "Bloquear @{name} en su lugar", + "domain_block_modal.they_can_interact_with_old_posts": "Las cuentas de este servidor pueden interactuar con tus mensajes antiguos.", + "domain_block_modal.they_cant_follow": "Nadie de este servidor puede seguirte.", + "domain_block_modal.they_wont_know": "No sabrán que fueron bloqueados.", + "domain_block_modal.title": "¿Bloquear dominio?", + "domain_block_modal.you_will_lose_followers": "Se eliminarán todos tus seguidores de este servidor.", + "domain_block_modal.you_wont_see_posts": "No verás mensajes ni notificaciones de usuarios en este servidor.", + "domain_pill.activitypub_lets_connect": "Te permite conectar e interactuar con cuentas no solo en Mastodon, sino también a través de diferentes aplicaciones sociales.", + "domain_pill.activitypub_like_language": "ActivityPub es como el idioma que Mastodon habla con otras redes sociales.", + "domain_pill.server": "Servidor", + "domain_pill.their_handle": "Su alias:", + "domain_pill.their_server": "Su hogar digital, donde residen todoas sus mensajes.", + "domain_pill.their_username": "Su identificador único en su servidor. Es posible encontrar cuentas con el mismo nombre de usuario en diferentes servidores.", + "domain_pill.username": "Nombre de usuario", + "domain_pill.whats_in_a_handle": "¿En qué consiste el alias?", + "domain_pill.who_they_are": "Los alias indican quiénes son y dónde se encuentran, y gracias a ellos podés interactuar con otras cuentas a través de las redes sociales compatibles con .", + "domain_pill.who_you_are": "Los alias dicen quién sos y dónde estás, y gracias a ellos podés interactuar con otras cuentas a través de las redes sociales compatibles con .", + "domain_pill.your_handle": "Tu alias:", + "domain_pill.your_server": "Tu hogar digital, donde residen todos tus mensajes. ¿No te gusta este sitio? Mudate a otro servidor en cualquier momento y llevate a tus seguidores.", + "domain_pill.your_username": "Tu identificador único en este servidor. Es posible encontrar cuentas con el mismo nombre de usuario en diferentes servidores.", "embed.instructions": "Insertá este mensaje a tu sitio web copiando el código de abajo.", "embed.preview": "Así es cómo se verá:", "emoji_button.activity": "Actividad", @@ -241,6 +266,7 @@ "empty_column.list": "Todavía no hay nada en esta lista. Cuando miembros de esta lista envíen nuevos mensaje, se mostrarán acá.", "empty_column.lists": "Todavía no tenés ninguna lista. Cuando creés una, se mostrará acá.", "empty_column.mutes": "Todavía no silenciaste a ningún usuario.", + "empty_column.notification_requests": "¡Todo limpio! No hay nada acá. Cuando recibás nuevas notificaciones, aparecerán acá, acorde a tu configuración.", "empty_column.notifications": "Todavía no tenés ninguna notificación. Cuando otras cuentas interactúen con vos, vas a ver la notificación acá.", "empty_column.public": "¡Naranja! Escribí algo públicamente, o seguí usuarios manualmente de otros servidores para ir llenando esta línea temporal", "error.unexpected_crash.explanation": "Debido a un error en nuestro código o a un problema de compatibilidad con el navegador web, esta página no se pudo mostrar correctamente.", @@ -271,6 +297,8 @@ "filter_modal.select_filter.subtitle": "Usar una categoría existente o crear una nueva", "filter_modal.select_filter.title": "Filtrar este mensaje", "filter_modal.title.status": "Filtrar un mensaje", + "filtered_notifications_banner.pending_requests": "Notificaciones de {count, plural, =0 {nadie} one {una persona} other {# personas}} que podrías conocer", + "filtered_notifications_banner.title": "Notificaciones filtradas", "firehose.all": "Todos", "firehose.local": "Este servidor", "firehose.remote": "Otros servidores", @@ -314,7 +342,6 @@ "hashtag.follow": "Seguir etiqueta", "hashtag.unfollow": "Dejar de seguir etiqueta", "hashtags.and_other": "…y {count, plural, other {# más}}", - "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Mostrar adhesiones", "home.column_settings.show_replies": "Mostrar respuestas", "home.hide_announcements": "Ocultar anuncios", @@ -400,9 +427,15 @@ "loading_indicator.label": "Cargando…", "media_gallery.toggle_visible": "Ocultar {number, plural, one {imagen} other {imágenes}}", "moved_to_account_banner.text": "Tu cuenta {disabledAccount} está actualmente deshabilitada porque te mudaste a {movedToAccount}.", - "mute_modal.duration": "Duración", - "mute_modal.hide_notifications": "¿Querés ocultar las notificaciones de este usuario?", - "mute_modal.indefinite": "Indefinida", + "mute_modal.hide_from_notifications": "Ocultar de las notificaciones", + "mute_modal.hide_options": "Ocultar opciones", + "mute_modal.indefinite": "Hasta que deje de silenciarlos", + "mute_modal.show_options": "Mostrar opciones", + "mute_modal.they_can_mention_and_follow": "Pueden mencionarte y seguirte, pero no verás nada de ellos.", + "mute_modal.they_wont_know": "No sabrán que fueron silenciados.", + "mute_modal.title": "¿Silenciar usuario?", + "mute_modal.you_wont_see_mentions": "No verás mensajes que los mencionen.", + "mute_modal.you_wont_see_posts": "Todavía pueden ver tus mensajes, pero vos no verás los suyos.", "navigation_bar.about": "Información", "navigation_bar.advanced_interface": "Abrir en interface web avanzada", "navigation_bar.blocks": "Usuarios bloqueados", @@ -440,15 +473,16 @@ "notification.reblog": "{name} adhirió a tu mensaje", "notification.status": "{name} acaba de enviar un mensaje", "notification.update": "{name} editó un mensaje", + "notification_requests.accept": "Aceptar", + "notification_requests.dismiss": "Descartar", + "notification_requests.notifications_from": "Notificaciones de {name}", + "notification_requests.title": "Notificaciones filtradas", "notifications.clear": "Limpiar notificaciones", "notifications.clear_confirmation": "¿Estás seguro que querés limpiar todas tus notificaciones permanentemente?", "notifications.column_settings.admin.report": "Nuevas denuncias:", "notifications.column_settings.admin.sign_up": "Nuevos registros:", "notifications.column_settings.alert": "Notificaciones de escritorio", "notifications.column_settings.favourite": "Favoritos:", - "notifications.column_settings.filter_bar.advanced": "Mostrar todas las categorías", - "notifications.column_settings.filter_bar.category": "Barra de filtrado rápido", - "notifications.column_settings.filter_bar.show_bar": "Mostrar barra de filtros", "notifications.column_settings.follow": "Nuevos seguidores:", "notifications.column_settings.follow_request": "Nuevas solicitudes de seguimiento:", "notifications.column_settings.mention": "Menciones:", @@ -474,6 +508,15 @@ "notifications.permission_denied": "Las notificaciones de escritorio no están disponibles, debido a una solicitud de permiso del navegador web previamente denegada", "notifications.permission_denied_alert": "No se pueden habilitar las notificaciones de escritorio, ya que el permiso del navegador fue denegado antes", "notifications.permission_required": "Las notificaciones de escritorio no están disponibles porque no se concedió el permiso requerido.", + "notifications.policy.filter_new_accounts.hint": "Creada hace {days, plural, one {un día} other {# días}}", + "notifications.policy.filter_new_accounts_title": "Nuevas cuentas", + "notifications.policy.filter_not_followers_hint": "Incluyendo cuentas que te han estado siguiendo menos de {days, plural, one {un día} other {# días}}", + "notifications.policy.filter_not_followers_title": "Cuentas que no te siguen", + "notifications.policy.filter_not_following_hint": "Hasta que las aprobés manualmente", + "notifications.policy.filter_not_following_title": "Cuentas que no seguís", + "notifications.policy.filter_private_mentions_hint": "Filtradas, a menos que sea en respuesta a tu propia mención o si seguís al remitente", + "notifications.policy.filter_private_mentions_title": "Menciones privadas no solicitadas", + "notifications.policy.title": "Filtrar notificaciones de…", "notifications_permission_banner.enable": "Habilitar notificaciones de escritorio", "notifications_permission_banner.how_to_control": "Para recibir notificaciones cuando Mastodon no está abierto, habilitá las notificaciones de escritorio. Podés controlar con precisión qué tipos de interacciones generan notificaciones de escritorio a través del botón {icon} de arriba, una vez que estén habilitadas.", "notifications_permission_banner.title": "No te pierdas nada", @@ -650,10 +693,11 @@ "status.direct": "Mención privada a @{name}", "status.direct_indicator": "Mención privada", "status.edit": "Editar", - "status.edited": "Editado {date}", + "status.edited": "Última edición: {date}", "status.edited_x_times": "Editado {count, plural, one {{count} vez} other {{count} veces}}", "status.embed": "Insertar", "status.favourite": "Marcar como favorito", + "status.favourites": "{count, plural, one {# voto} other {# votos}}", "status.filter": "Filtrar este mensaje", "status.filtered": "Filtrado", "status.hide": "Ocultar mensaje", @@ -674,6 +718,7 @@ "status.reblog": "Adherir", "status.reblog_private": "Adherir a la audiencia original", "status.reblogged_by": "{name} adhirió", + "status.reblogs": "{count, plural, one {adhesión} other {adhesiones}}", "status.reblogs.empty": "Todavía nadie adhirió a este mensaje. Cuando alguien lo haga, se mostrará acá.", "status.redraft": "Eliminar mensaje original y editarlo", "status.remove_bookmark": "Quitar marcador", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index ba54843236c4a2..00dcb81461ab13 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -89,6 +89,14 @@ "announcement.announcement": "Anuncio", "attachments_list.unprocessed": "(sin procesar)", "audio.hide": "Ocultar audio", + "block_modal.remote_users_caveat": "Le pediremos al servidor {domain} que respete tu decisión. Sin embargo, el cumplimiento no está garantizado ya que algunos servidores pueden manejar bloques de forma diferente. Las publicaciones públicas pueden ser todavía visibles para los usuarios no conectados.", + "block_modal.show_less": "Mostrar menos", + "block_modal.show_more": "Mostrar más", + "block_modal.they_cant_mention": "No pueden mencionarte ni seguirte.", + "block_modal.they_cant_see_posts": "No pueden ver tus publicaciones y tú no verás las de ellos.", + "block_modal.they_will_know": "Pueden ver que están bloqueados.", + "block_modal.title": "¿Bloquear usuario?", + "block_modal.you_wont_see_mentions": "No verás publicaciones que los mencionen.", "boost_modal.combo": "Puedes hacer clic en {combo} para saltar este aviso la próxima vez", "bundle_column_error.copy_stacktrace": "Copiar informe de error", "bundle_column_error.error.body": "La página solicitada no pudo ser renderizada. Podría deberse a un error en nuestro código o a un problema de compatibilidad con el navegador.", @@ -160,9 +168,7 @@ "compose_form.spoiler.unmarked": "Texto no oculto", "compose_form.spoiler_placeholder": "Advertencia de contenido (opcional)", "confirmation_modal.cancel": "Cancelar", - "confirmations.block.block_and_report": "Bloquear y Denunciar", "confirmations.block.confirm": "Bloquear", - "confirmations.block.message": "¿Estás seguro de querer bloquear a {name}?", "confirmations.cancel_follow_request.confirm": "Retirar solicitud", "confirmations.cancel_follow_request.message": "¿Estás seguro de que deseas retirar tu solicitud para seguir a {name}?", "confirmations.delete.confirm": "Eliminar", @@ -171,15 +177,13 @@ "confirmations.delete_list.message": "¿Seguro que quieres borrar esta lista permanentemente?", "confirmations.discard_edit_media.confirm": "Descartar", "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.confirm": "Bloquear servidor", "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", - "confirmations.mute.explanation": "Esto esconderá las publicaciones de ellos y en las que los has mencionado, pero les permitirá ver tus mensajes y seguirte.", - "confirmations.mute.message": "¿Estás seguro de que quieres silenciar a {name}?", "confirmations.redraft.confirm": "Borrar y volver a borrador", "confirmations.redraft.message": "¿Estás seguro que quieres borrar esta publicación y editarla? Los favoritos e impulsos se perderán, y las respuestas a la publicación original quedarán separadas.", "confirmations.reply.confirm": "Responder", @@ -205,6 +209,27 @@ "dismissable_banner.explore_statuses": "Estas son las publicaciones que están en tendencia en la red ahora. Las publicaciones recientes con más impulsos y favoritos se muestran más arriba.", "dismissable_banner.explore_tags": "Se trata de hashtags que están ganando adeptos en las redes sociales hoy en día. Los hashtags que son utilizados por más personas diferentes se clasifican mejor.", "dismissable_banner.public_timeline": "Estos son los toots públicos más recientes de personas en la web social a las que sigue la gente en {domain}.", + "domain_block_modal.block": "Bloquear servidor", + "domain_block_modal.block_account_instead": "Bloquear @{name} en su lugar", + "domain_block_modal.they_can_interact_with_old_posts": "Las personas de este servidor pueden interactuar con tus publicaciones antiguas.", + "domain_block_modal.they_cant_follow": "Nadie de este servidor puede seguirte.", + "domain_block_modal.they_wont_know": "No sabrán que han sido bloqueados.", + "domain_block_modal.title": "¿Bloquear dominio?", + "domain_block_modal.you_will_lose_followers": "Todos tus seguidores de este servidor serán eliminados.", + "domain_block_modal.you_wont_see_posts": "No verás publicaciones ni notificaciones de usuarios en este servidor.", + "domain_pill.activitypub_lets_connect": "Te permite conectar e interactuar con personas no sólo en Mastodon, sino también a través de diferentes aplicaciones sociales.", + "domain_pill.activitypub_like_language": "ActivityPub es como el idioma que Mastodon habla con otras redes sociales.", + "domain_pill.server": "Servidor", + "domain_pill.their_handle": "Su alias:", + "domain_pill.their_server": "Su hogar digital, donde residen todas sus publicaciones.", + "domain_pill.their_username": "Su identificador único en su servidor. Es posible encontrar usuarios con el mismo nombre de usuario en diferentes servidores.", + "domain_pill.username": "Nombre de usuario", + "domain_pill.whats_in_a_handle": "¿En qué consiste el alias?", + "domain_pill.who_they_are": "Los alias indican quiénes son y dónde se encuentran, puedes interactuar con personas a través de las redes sociales de .", + "domain_pill.who_you_are": "Los alias indican quién eres y dónde te encuentras, las personas pueden interactuar contigo a través de las redes sociales de .", + "domain_pill.your_handle": "Tu alias:", + "domain_pill.your_server": "Tu hogar digital, donde residen todas tus publicaciones. ¿No te gusta este sitio? Muévete a otro servidor en cualquier momento y llévate a tus seguidores.", + "domain_pill.your_username": "Tu identificador único en este servidor. Es posible encontrar usuarios con el mismo nombre de usuario en diferentes servidores.", "embed.instructions": "Añade este toot a tu sitio web con el siguiente código.", "embed.preview": "Así es como se verá:", "emoji_button.activity": "Actividad", @@ -241,6 +266,7 @@ "empty_column.list": "No hay nada en esta lista aún. Cuando miembros de esta lista publiquen nuevos estatus, estos aparecerán qui.", "empty_column.lists": "No tienes ninguna lista. cuando crees una, se mostrará aquí.", "empty_column.mutes": "Aún no has silenciado a ningún usuario.", + "empty_column.notification_requests": "¡Todo limpio! No hay nada aquí. Cuando recibas nuevas notificaciones, aparecerán aquí conforme a tu configuración.", "empty_column.notifications": "No tienes ninguna notificación aún. Interactúa con otros para empezar una conversación.", "empty_column.public": "¡No hay nada aquí! Escribe algo públicamente, o sigue usuarios de otras instancias manualmente para llenarlo", "error.unexpected_crash.explanation": "Debido a un error en nuestro código o a un problema de compatibilidad con el navegador, esta página no se ha podido mostrar correctamente.", @@ -271,6 +297,8 @@ "filter_modal.select_filter.subtitle": "Usar una categoría existente o crear una nueva", "filter_modal.select_filter.title": "Filtrar esta publicación", "filter_modal.title.status": "Filtrar una publicación", + "filtered_notifications_banner.pending_requests": "Notificaciones de {count, plural, =0 {nadie} one {una persona} other {# personas}} que podrías conocer", + "filtered_notifications_banner.title": "Notificaciones filtradas", "firehose.all": "Todas", "firehose.local": "Este servidor", "firehose.remote": "Otros servidores", @@ -314,7 +342,6 @@ "hashtag.follow": "Seguir etiqueta", "hashtag.unfollow": "Dejar de seguir etiqueta", "hashtags.and_other": "…y {count, plural, other {# más}}", - "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Mostrar retoots", "home.column_settings.show_replies": "Mostrar respuestas", "home.hide_announcements": "Ocultar anuncios", @@ -400,9 +427,15 @@ "loading_indicator.label": "Cargando…", "media_gallery.toggle_visible": "Cambiar visibilidad", "moved_to_account_banner.text": "Tu cuenta {disabledAccount} está actualmente deshabilitada porque te has mudado a {movedToAccount}.", - "mute_modal.duration": "Duración", - "mute_modal.hide_notifications": "Ocultar notificaciones de este usuario?", - "mute_modal.indefinite": "Indefinida", + "mute_modal.hide_from_notifications": "Ocultar de las notificaciones", + "mute_modal.hide_options": "Ocultar opciones", + "mute_modal.indefinite": "Hasta que deje de silenciarlos", + "mute_modal.show_options": "Mostrar opciones", + "mute_modal.they_can_mention_and_follow": "Pueden mencionarte y seguirte, pero no verás nada de ellos.", + "mute_modal.they_wont_know": "No sabrán que han sido silenciados.", + "mute_modal.title": "¿Silenciar usuario?", + "mute_modal.you_wont_see_mentions": "No verás publicaciones que los mencionen.", + "mute_modal.you_wont_see_posts": "Todavía pueden ver tus publicaciones, pero tú no verás las de ellos.", "navigation_bar.about": "Acerca de", "navigation_bar.advanced_interface": "Abrir en interfaz web avanzada", "navigation_bar.blocks": "Usuarios bloqueados", @@ -440,15 +473,16 @@ "notification.reblog": "{name} ha retooteado tu estado", "notification.status": "{name} acaba de publicar", "notification.update": "{name} editó una publicación", + "notification_requests.accept": "Aceptar", + "notification_requests.dismiss": "Descartar", + "notification_requests.notifications_from": "Notificaciones de {name}", + "notification_requests.title": "Notificaciones filtradas", "notifications.clear": "Limpiar notificaciones", "notifications.clear_confirmation": "¿Seguro de querer borrar permanentemente todas tus notificaciones?", "notifications.column_settings.admin.report": "Nuevas denuncias:", "notifications.column_settings.admin.sign_up": "Registros nuevos:", "notifications.column_settings.alert": "Notificaciones de escritorio", "notifications.column_settings.favourite": "Favoritos:", - "notifications.column_settings.filter_bar.advanced": "Mostrar todas las categorías", - "notifications.column_settings.filter_bar.category": "Barra de filtrado rápido", - "notifications.column_settings.filter_bar.show_bar": "Mostrar barra de filtros", "notifications.column_settings.follow": "Nuevos seguidores:", "notifications.column_settings.follow_request": "Nuevas solicitudes de seguimiento:", "notifications.column_settings.mention": "Menciones:", @@ -474,6 +508,15 @@ "notifications.permission_denied": "No se pueden habilitar las notificaciones de escritorio ya que se denegó el permiso.", "notifications.permission_denied_alert": "No se pueden habilitar las notificaciones de escritorio, ya que el permiso del navegador fue denegado anteriormente", "notifications.permission_required": "Las notificaciones de escritorio no están disponibles porque no se ha concedido el permiso requerido.", + "notifications.policy.filter_new_accounts.hint": "Creadas durante {days, plural, one {el último día} other {los últimos # días}}", + "notifications.policy.filter_new_accounts_title": "Cuentas nuevas", + "notifications.policy.filter_not_followers_hint": "Incluyendo personas que te han estado siguiendo desde hace menos de {days, plural, one {un día} other {# días}}", + "notifications.policy.filter_not_followers_title": "Personas que no te siguen", + "notifications.policy.filter_not_following_hint": "Hasta que las apruebes manualmente", + "notifications.policy.filter_not_following_title": "Personas que no sigues", + "notifications.policy.filter_private_mentions_hint": "Filtrada, a menos que sea en respuesta a tu propia mención, o si sigues al remitente", + "notifications.policy.filter_private_mentions_title": "Menciones privadas no solicitadas", + "notifications.policy.title": "Filtrar notificaciones de…", "notifications_permission_banner.enable": "Habilitar notificaciones de escritorio", "notifications_permission_banner.how_to_control": "Para recibir notificaciones cuando Mastodon no esté abierto, habilite las notificaciones de escritorio. Puedes controlar con precisión qué tipos de interacciones generan notificaciones de escritorio a través del botón {icon} de arriba una vez que estén habilitadas.", "notifications_permission_banner.title": "Nunca te pierdas nada", @@ -650,10 +693,11 @@ "status.direct": "Mención privada @{name}", "status.direct_indicator": "Mención privada", "status.edit": "Editar", - "status.edited": "Editado {date}", + "status.edited": "Última edición {date}", "status.edited_x_times": "Editado {count, plural, one {{count} time} other {{count} veces}}", "status.embed": "Incrustado", "status.favourite": "Favorito", + "status.favourites": "{count, plural, one {favorito} other {favoritos}}", "status.filter": "Filtrar esta publicación", "status.filtered": "Filtrado", "status.hide": "Ocultar toot", @@ -674,6 +718,7 @@ "status.reblog": "Retootear", "status.reblog_private": "Implusar a la audiencia original", "status.reblogged_by": "Retooteado por {name}", + "status.reblogs": "{count, plural, one {impulso} other {impulsos}}", "status.reblogs.empty": "Nadie retooteó este toot todavía. Cuando alguien lo haga, aparecerá aquí.", "status.redraft": "Borrar y volver a borrador", "status.remove_bookmark": "Eliminar marcador", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index b4cc241814716c..728f4d05fc11f2 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -89,6 +89,14 @@ "announcement.announcement": "Anuncio", "attachments_list.unprocessed": "(sin procesar)", "audio.hide": "Ocultar audio", + "block_modal.remote_users_caveat": "Le pediremos al servidor {domain} que respete tu decisión. Sin embargo, el cumplimiento no está garantizado, ya que algunos servidores pueden manejar bloqueos de forma distinta. Los mensajes públicos pueden ser todavía visibles para los usuarios que no hayan iniciado sesión.", + "block_modal.show_less": "Mostrar menos", + "block_modal.show_more": "Mostrar más", + "block_modal.they_cant_mention": "No pueden mencionarte ni seguirte.", + "block_modal.they_cant_see_posts": "No pueden ver tus publicaciones y tú no verás las suyas.", + "block_modal.they_will_know": "Pueden ver que están bloqueados.", + "block_modal.title": "¿Bloquear usuario?", + "block_modal.you_wont_see_mentions": "No verás mensajes que los mencionen.", "boost_modal.combo": "Puedes hacer clic en {combo} para saltar este aviso la próxima vez", "bundle_column_error.copy_stacktrace": "Copiar informe de error", "bundle_column_error.error.body": "La página solicitada no pudo ser renderizada. Podría deberse a un error en nuestro código o a un problema de compatibilidad con el navegador.", @@ -160,9 +168,7 @@ "compose_form.spoiler.unmarked": "Añadir advertencia de contenido", "compose_form.spoiler_placeholder": "Advertencia de contenido (opcional)", "confirmation_modal.cancel": "Cancelar", - "confirmations.block.block_and_report": "Bloquear y Reportar", "confirmations.block.confirm": "Bloquear", - "confirmations.block.message": "¿Estás seguro de que quieres bloquear a {name}?", "confirmations.cancel_follow_request.confirm": "Retirar solicitud", "confirmations.cancel_follow_request.message": "¿Estás seguro de que deseas retirar tu solicitud para seguir a {name}?", "confirmations.delete.confirm": "Eliminar", @@ -171,15 +177,13 @@ "confirmations.delete_list.message": "¿Seguro que quieres borrar esta lista permanentemente?", "confirmations.discard_edit_media.confirm": "Descartar", "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": "Bloquear todo el dominio", + "confirmations.domain_block.confirm": "Bloquear servidor", "confirmations.domain_block.message": "¿Seguro que quieres bloquear todo el dominio {domain}? En general, unos cuantos bloqueos y silenciados concretos es suficiente y preferible. No verás contenido del dominio en ninguna cronología pública ni en tus notificaciones. Se eliminarán tus seguidores procedentes de ese dominio.", "confirmations.edit.confirm": "Editar", "confirmations.edit.message": "Editar ahora reemplazará el mensaje que estás escribiendo. ¿Seguro que quieres proceder?", "confirmations.logout.confirm": "Cerrar sesión", "confirmations.logout.message": "¿Seguro que quieres cerrar la sesión?", "confirmations.mute.confirm": "Silenciar", - "confirmations.mute.explanation": "Esto esconderá sus publicaciones y las publicaciones que los mencionen, pero podrán seguir viendo tus mensajes y seguirte.", - "confirmations.mute.message": "¿Seguro que quieres silenciar a {name}?", "confirmations.redraft.confirm": "Borrar y volver a borrador", "confirmations.redraft.message": "¿Estás seguro de querer borrar esta publicación y reescribirla? Los favoritos e impulsos se perderán, y las respuestas a la publicación original quedarán sin contexto.", "confirmations.reply.confirm": "Responder", @@ -205,6 +209,27 @@ "dismissable_banner.explore_statuses": "Estas son las publicaciones que están ganando popularidad en la web social hoy. Las publicaciones recientes con más impulsos y favoritos obtienen más exposición.", "dismissable_banner.explore_tags": "Estas son las etiquetas que están ganando popularidad hoy en la red. Etiquetas que se usan por personas diferentes se puntúan más alto.", "dismissable_banner.public_timeline": "Estas son las publicaciones más recientes de personas en el Fediverso que siguen las personas de {domain}.", + "domain_block_modal.block": "Bloquear servidor", + "domain_block_modal.block_account_instead": "Bloquear @{name} en su lugar", + "domain_block_modal.they_can_interact_with_old_posts": "Las personas de este servidor pueden interactuar con tus publicaciones antiguas.", + "domain_block_modal.they_cant_follow": "Nadie de este servidor puede seguirte.", + "domain_block_modal.they_wont_know": "No sabrán que han sido bloqueados.", + "domain_block_modal.title": "¿Bloquear dominio?", + "domain_block_modal.you_will_lose_followers": "Se eliminarán todos tus seguidores de este servidor.", + "domain_block_modal.you_wont_see_posts": "No verás mensajes ni notificaciones de usuarios en este servidor.", + "domain_pill.activitypub_lets_connect": "Te permite conectar e interactuar con personas no sólo en Mastodon, sino también a través de diferentes aplicaciones sociales.", + "domain_pill.activitypub_like_language": "ActivityPub es como el idioma que Mastodon habla con otras redes sociales.", + "domain_pill.server": "Servidor", + "domain_pill.their_handle": "Su alias:", + "domain_pill.their_server": "Su hogar digital, donde residen todas sus publicaciones.", + "domain_pill.their_username": "Su identificador único en su servidor. Es posible encontrar usuarios con el mismo nombre de usuario en diferentes servidores.", + "domain_pill.username": "Nombre de usuario", + "domain_pill.whats_in_a_handle": "¿En qué consiste el alias?", + "domain_pill.who_they_are": "Los alias indican quiénes son y dónde se encuentran, y gracias a ellos puedes interactuar con personas a través de las redes sociales compatibles con .", + "domain_pill.who_you_are": "Los alias indican quién eres y dónde te encuentras, y gracias a ellos puedes interactuar con personas a través de las redes sociales compatibles con .", + "domain_pill.your_handle": "Tu alias:", + "domain_pill.your_server": "Tu hogar digital, donde residen todas tus publicaciones. ¿No te gusta este sitio? Muévete a otro servidor en cualquier momento y llévate a tus seguidores.", + "domain_pill.your_username": "Tu identificador único en este servidor. Es posible encontrar usuarios con el mismo nombre de usuario en diferentes servidores.", "embed.instructions": "Añade esta publicación a tu sitio web con el siguiente código.", "embed.preview": "Así es como se verá:", "emoji_button.activity": "Actividad", @@ -238,10 +263,11 @@ "empty_column.followed_tags": "No has seguido ninguna etiqueta todavía. Cuando lo hagas, se mostrarán aquí.", "empty_column.hashtag": "No hay nada en este hashtag aún.", "empty_column.home": "¡Tu línea temporal está vacía! Sigue a más personas para rellenarla.", - "empty_column.list": "No hay nada en esta lista aún. Cuando miembros de esta lista publiquen nuevos estatus, estos aparecerán qui.", - "empty_column.lists": "No tienes ninguna lista. cuando crees una, se mostrará aquí.", + "empty_column.list": "Aún no hay nada en esta lista. Cuando los miembros de esta lista publiquen nuevos estados, estos aparecerán aquí.", + "empty_column.lists": "No tienes ninguna lista. Cuando crees una, se mostrará aquí.", "empty_column.mutes": "Aún no has silenciado a ningún usuario.", - "empty_column.notifications": "No tienes ninguna notificación aún. Interactúa con otros para empezar una conversación.", + "empty_column.notification_requests": "¡Todo limpio! No hay nada aquí. Cuando recibas nuevas notificaciones, aparecerán aquí conforme a tu configuración.", + "empty_column.notifications": "Aún no tienes ninguna notificación. Cuando otras personas interactúen contigo, aparecerán aquí.", "empty_column.public": "¡No hay nada aquí! Escribe algo públicamente, o sigue usuarios de otras instancias manualmente para llenarlo", "error.unexpected_crash.explanation": "Debido a un error en nuestro código o a un problema de compatibilidad con el navegador, esta página no se ha podido mostrar correctamente.", "error.unexpected_crash.explanation_addons": "No se pudo mostrar correctamente esta página. Este error probablemente fue causado por un complemento del navegador web o por herramientas de traducción automática.", @@ -257,7 +283,7 @@ "explore.trending_tags": "Etiquetas", "filter_modal.added.context_mismatch_explanation": "Esta categoría de filtro no se aplica al contexto en el que ha accedido a esta publlicación. Si quieres que la publicación sea filtrada también en este contexto, tendrás que editar el filtro.", "filter_modal.added.context_mismatch_title": "¡El contexto no coincide!", - "filter_modal.added.expired_explanation": "Esta categoría de filtro ha caducado, necesitará cambiar la fecha de caducidad para que se aplique.", + "filter_modal.added.expired_explanation": "Esta categoría de filtro ha caducado, tendrás que cambiar la fecha de caducidad para que se aplique.", "filter_modal.added.expired_title": "¡Filtro caducado!", "filter_modal.added.review_and_configure": "Para revisar y configurar esta categoría de filtros, vaya a {settings_link}.", "filter_modal.added.review_and_configure_title": "Ajustes de filtro", @@ -271,6 +297,8 @@ "filter_modal.select_filter.subtitle": "Usar una categoría existente o crear una nueva", "filter_modal.select_filter.title": "Filtrar esta publicación", "filter_modal.title.status": "Filtrar una publicación", + "filtered_notifications_banner.pending_requests": "Notificaciones de {count, plural, =0 {nadie} one {una persona} other {# personas}} que podrías conocer", + "filtered_notifications_banner.title": "Notificaciones filtradas", "firehose.all": "Todas", "firehose.local": "Este servidor", "firehose.remote": "Otros servidores", @@ -314,7 +342,6 @@ "hashtag.follow": "Seguir etiqueta", "hashtag.unfollow": "Dejar de seguir etiqueta", "hashtags.and_other": "…y {count, plural, other {# más}}", - "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Mostrar impulsos", "home.column_settings.show_replies": "Mostrar respuestas", "home.hide_announcements": "Ocultar anuncios", @@ -400,9 +427,15 @@ "loading_indicator.label": "Cargando…", "media_gallery.toggle_visible": "Cambiar visibilidad", "moved_to_account_banner.text": "Tu cuenta {disabledAccount} está actualmente deshabilitada porque te has mudado a {movedToAccount}.", - "mute_modal.duration": "Duración", - "mute_modal.hide_notifications": "¿Ocultar notificaciones de este usuario?", - "mute_modal.indefinite": "Indefinida", + "mute_modal.hide_from_notifications": "Ocultar de las notificaciones", + "mute_modal.hide_options": "Ocultar opciones", + "mute_modal.indefinite": "Hasta que deje de silenciarlos", + "mute_modal.show_options": "Mostrar opciones", + "mute_modal.they_can_mention_and_follow": "Pueden mencionarte y seguirte, pero no verás nada de ellos.", + "mute_modal.they_wont_know": "No sabrán que han sido silenciados.", + "mute_modal.title": "¿Silenciar usuario?", + "mute_modal.you_wont_see_mentions": "No verás mensajes que los mencionen.", + "mute_modal.you_wont_see_posts": "Todavía pueden ver tus publicaciones, pero tú no verás las suyas.", "navigation_bar.about": "Acerca de", "navigation_bar.advanced_interface": "Abrir en la interfaz web avanzada", "navigation_bar.blocks": "Usuarios bloqueados", @@ -440,15 +473,16 @@ "notification.reblog": "{name} ha impulsado tu publicación", "notification.status": "{name} acaba de publicar", "notification.update": "{name} editó una publicación", + "notification_requests.accept": "Aceptar", + "notification_requests.dismiss": "Descartar", + "notification_requests.notifications_from": "Notificaciones de {name}", + "notification_requests.title": "Notificaciones filtradas", "notifications.clear": "Limpiar notificaciones", "notifications.clear_confirmation": "¿Seguro que quieres limpiar permanentemente todas tus notificaciones?", "notifications.column_settings.admin.report": "Nuevos informes:", "notifications.column_settings.admin.sign_up": "Nuevos registros:", "notifications.column_settings.alert": "Notificaciones de escritorio", "notifications.column_settings.favourite": "Favoritos:", - "notifications.column_settings.filter_bar.advanced": "Mostrar todas las categorías", - "notifications.column_settings.filter_bar.category": "Barra de filtrado rápido", - "notifications.column_settings.filter_bar.show_bar": "Mostrar barra de filtros", "notifications.column_settings.follow": "Nuevos seguidores:", "notifications.column_settings.follow_request": "Nuevas solicitudes de seguimiento:", "notifications.column_settings.mention": "Menciones:", @@ -474,6 +508,15 @@ "notifications.permission_denied": "No se pueden habilitar las notificaciones de escritorio ya que se denegó el permiso.", "notifications.permission_denied_alert": "No se pueden habilitar las notificaciones de escritorio, ya que el permiso del navegador fue denegado anteriormente", "notifications.permission_required": "Las notificaciones de escritorio no están disponibles porque no se ha concedido el permiso requerido.", + "notifications.policy.filter_new_accounts.hint": "Creadas durante {days, plural, one {el último día} other {los últimos # días}}", + "notifications.policy.filter_new_accounts_title": "Cuentas nuevas", + "notifications.policy.filter_not_followers_hint": "Incluyendo personas que te han estado siguiendo desde hace menos de {days, plural, one {un día} other {# días}}", + "notifications.policy.filter_not_followers_title": "Personas que no te siguen", + "notifications.policy.filter_not_following_hint": "Hasta que las apruebes manualmente", + "notifications.policy.filter_not_following_title": "Personas que no sigues", + "notifications.policy.filter_private_mentions_hint": "Filtradas a menos que sea en respuesta a tu propia mención, o si sigues al remitente", + "notifications.policy.filter_private_mentions_title": "Menciones privadas no solicitadas", + "notifications.policy.title": "Filtrar notificaciones de…", "notifications_permission_banner.enable": "Habilitar notificaciones de escritorio", "notifications_permission_banner.how_to_control": "Para recibir notificaciones cuando Mastodon no esté abierto, habilite las notificaciones de escritorio. Puedes controlar con precisión qué tipos de interacciones generan notificaciones de escritorio a través del botón {icon} de arriba una vez que estén habilitadas.", "notifications_permission_banner.title": "Nunca te pierdas nada", @@ -650,10 +693,11 @@ "status.direct": "Mención privada @{name}", "status.direct_indicator": "Mención privada", "status.edit": "Editar", - "status.edited": "Editado {date}", + "status.edited": "Última edición {date}", "status.edited_x_times": "Editado {count, plural, one {{count} vez} other {{count} veces}}", "status.embed": "Incrustado", "status.favourite": "Favorito", + "status.favourites": "{count, plural, one {favorito} other {favoritos}}", "status.filter": "Filtrar esta publicación", "status.filtered": "Filtrado", "status.hide": "Ocultar publicación", @@ -674,6 +718,7 @@ "status.reblog": "Impulsar", "status.reblog_private": "Impulsar a la audiencia original", "status.reblogged_by": "Impulsado por {name}", + "status.reblogs": "{count, plural, one {impulso} other {impulsos}}", "status.reblogs.empty": "Nadie ha impulsado esta publicación todavía. Cuando alguien lo haga, aparecerá aquí.", "status.redraft": "Borrar y volver a borrador", "status.remove_bookmark": "Eliminar marcador", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index be0c262c32c542..f617ced6ea8386 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -89,6 +89,10 @@ "announcement.announcement": "Teadaanne", "attachments_list.unprocessed": "(töötlemata)", "audio.hide": "Peida audio", + "block_modal.remote_users_caveat": "Serverile {domain} edastatakse palve otsust järgida. Ometi pole see tagatud, kuna mõned serverid võivad blokeeringuid käsitleda omal moel. Avalikud postitused võivad tuvastamata kasutajatele endiselt näha olla.", + "block_modal.show_less": "Kuva vähem", + "block_modal.show_more": "Kuva rohkem", + "block_modal.title": "Blokeeri kasutaja?", "boost_modal.combo": "Vajutades {combo}, saab selle edaspidi vahele jätta", "bundle_column_error.copy_stacktrace": "Kopeeri veateade", "bundle_column_error.error.body": "Soovitud lehte ei õnnestunud esitada. See võib olla meie koodiviga või probleem brauseri ühilduvusega.", @@ -160,9 +164,7 @@ "compose_form.spoiler.unmarked": "Märgi sisu tundlikuks", "compose_form.spoiler_placeholder": "Sisuhoiatus (valikuline)", "confirmation_modal.cancel": "Katkesta", - "confirmations.block.block_and_report": "Blokeeri ja teata", "confirmations.block.confirm": "Blokeeri", - "confirmations.block.message": "Oled kindel, et soovid blokeerida {name}?", "confirmations.cancel_follow_request.confirm": "Tühista taotlus", "confirmations.cancel_follow_request.message": "Oled kindel, et soovid kasutaja {name} jälgimistaotluse tagasi võtta?", "confirmations.delete.confirm": "Kustuta", @@ -171,15 +173,13 @@ "confirmations.delete_list.message": "Oled kindel, et soovid selle loetelu pöördumatult kustutada?", "confirmations.discard_edit_media.confirm": "Hülga", "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.confirm": "Blokeeri server", "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", - "confirmations.mute.explanation": "See peidab tema postitused ning postitused, milles teda mainitakse, kuid lubab tal ikkagi sinu postitusi näha ning sind jälgida.", - "confirmations.mute.message": "Oled kindel, et soovid {name} vaigistada?", "confirmations.redraft.confirm": "Kustuta & taasalusta", "confirmations.redraft.message": "Kindel, et soovid postituse kustutada ja võtta uue aluseks? Lemmikuks märkimised ja jagamised lähevad kaotsi ning vastused jäävad ilma algse postituseta.", "confirmations.reply.confirm": "Vasta", @@ -205,6 +205,9 @@ "dismissable_banner.explore_statuses": "Need postitused üle sotsiaalse võrgu koguvad praegu tähelepanu. Uued postitused, millel on rohkem jagamisi ja lemmikuks märkimisi, on kõrgemal kohal.", "dismissable_banner.explore_tags": "Need sildid siit ja teistes serveritest detsentraliseeritud võrgus koguvad tähelepanu just praegu selles serveris.", "dismissable_banner.public_timeline": "Need on kõige uuemad avalikud postitused inimestelt sotsiaalvõrgustikus, mida {domain} inimesed jälgivad.", + "domain_block_modal.block": "Blokeeri server", + "domain_pill.server": "Server", + "domain_pill.username": "Kasutajanimi", "embed.instructions": "Lisa see postitus oma veebilehele, kopeerides alloleva koodi.", "embed.preview": "Nii näeb see välja:", "emoji_button.activity": "Tegevus", @@ -271,6 +274,7 @@ "filter_modal.select_filter.subtitle": "Kasuta olemasolevat kategooriat või loo uus", "filter_modal.select_filter.title": "Filtreeri seda postitust", "filter_modal.title.status": "Postituse filtreerimine", + "filtered_notifications_banner.pending_requests": "Teateid {count, plural, =0 {mitte üheltki} one {ühelt} other {#}} inimeselt, keda võid teada", "firehose.all": "Kõik", "firehose.local": "See server", "firehose.remote": "Teised serverid", @@ -314,7 +318,6 @@ "hashtag.follow": "Jälgi silti", "hashtag.unfollow": "Lõpeta sildi jälgimine", "hashtags.and_other": "…ja {count, plural, one {}other {# veel}}", - "home.column_settings.basic": "Peamine", "home.column_settings.show_reblogs": "Näita jagamisi", "home.column_settings.show_replies": "Näita vastuseid", "home.hide_announcements": "Peida teadaanded", @@ -400,9 +403,8 @@ "loading_indicator.label": "Laadimine…", "media_gallery.toggle_visible": "{number, plural, one {Varja pilt} other {Varja pildid}}", "moved_to_account_banner.text": "Kontot {disabledAccount} ei ole praegu võimalik kasutada, sest kolisid kontole {movedToAccount}.", - "mute_modal.duration": "Kestus", - "mute_modal.hide_notifications": "Kas peita teated sellelt kasutajalt?", - "mute_modal.indefinite": "Lõpmatu", + "mute_modal.hide_options": "Peida valikud", + "mute_modal.show_options": "Kuva valikud", "navigation_bar.about": "Teave", "navigation_bar.advanced_interface": "Ava kohandatud veebiliides", "navigation_bar.blocks": "Blokeeritud kasutajad", @@ -440,15 +442,14 @@ "notification.reblog": "{name} jagas edasi postitust", "notification.status": "{name} just postitas", "notification.update": "{name} muutis postitust", + "notification_requests.accept": "Nõus", + "notification_requests.dismiss": "Hülga", "notifications.clear": "Puhasta teated", "notifications.clear_confirmation": "Oled kindel, et soovid püsivalt kõik oma teated eemaldada?", "notifications.column_settings.admin.report": "Uued teavitused:", "notifications.column_settings.admin.sign_up": "Uued kasutajad:", "notifications.column_settings.alert": "Töölauateated", "notifications.column_settings.favourite": "Lemmikud:", - "notifications.column_settings.filter_bar.advanced": "Kuva kõik kategooriad", - "notifications.column_settings.filter_bar.category": "Kiirfiltri riba", - "notifications.column_settings.filter_bar.show_bar": "Näita filtririba", "notifications.column_settings.follow": "Uued jälgijad:", "notifications.column_settings.follow_request": "Uued jälgimistaotlused:", "notifications.column_settings.mention": "Mainimised:", @@ -474,6 +475,7 @@ "notifications.permission_denied": "Töölauamärguanded pole saadaval, kuna eelnevalt keelduti lehitsejale teavituste luba andmast", "notifications.permission_denied_alert": "Töölaua märguandeid ei saa lubada, kuna brauseri luba on varem keeldutud", "notifications.permission_required": "Töölaua märguanded ei ole saadaval, kuna vajalik luba pole antud.", + "notifications.policy.filter_new_accounts_title": "Uued kontod", "notifications_permission_banner.enable": "Luba töölaua märguanded", "notifications_permission_banner.how_to_control": "Et saada teateid, ajal mil Mastodon pole avatud, luba töölauamärguanded. Saad täpselt määrata, mis tüüpi tegevused tekitavad märguandeid, kasutates peale teadaannete sisse lülitamist üleval olevat nuppu {icon}.", "notifications_permission_banner.title": "Ära jää millestki ilma", @@ -650,7 +652,6 @@ "status.direct": "Maini privaatselt @{name}", "status.direct_indicator": "Privaatne mainimine", "status.edit": "Muuda", - "status.edited": "{date} muudetud", "status.edited_x_times": "Muudetud {count, plural, one{{count} kord} other {{count} korda}}", "status.embed": "Manustamine", "status.favourite": "Lemmik", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index c21fa1d204d998..aae678a7d6188e 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -89,6 +89,14 @@ "announcement.announcement": "Iragarpena", "attachments_list.unprocessed": "(prozesatu gabe)", "audio.hide": "Ezkutatu audioa", + "block_modal.remote_users_caveat": "{domain} zerbitzariari zure erabakia errespeta dezan eskatuko diogu. Halere, araua beteko den ezin da bermatu, zerbitzari batzuk modu desberdinean kudeatzen baitituzte blokeoak. Baliteke argitalpen publikoak saioa hasi ez duten erabiltzaileentzat ikusgai egotea.", + "block_modal.show_less": "Erakutsi gutxiago", + "block_modal.show_more": "Erakutsi gehiago", + "block_modal.they_cant_mention": "Ezin zaitu aipatu ezta jarraitu ere.", + "block_modal.they_cant_see_posts": "Ezin ditu zure bidalketak ikusi eta zuk ez dituzu bereak ikusiko.", + "block_modal.they_will_know": "Ezin du ikusi blokeatuta duzunik.", + "block_modal.title": "Erabiltzailea blokeatu nahi duzu?", + "block_modal.you_wont_see_mentions": "Ez duzu ikusiko bera aipatzen duen argitalpenik.", "boost_modal.combo": "{combo} sakatu dezakezu hurrengoan hau saltatzeko", "bundle_column_error.copy_stacktrace": "Kopiatu errore-txostena", "bundle_column_error.error.body": "Eskatutako orria ezin izan da bistaratu. Kodeko errore bategatik izan daiteke edo nabigatzailearen bateragarritasun arazo bategatik.", @@ -160,9 +168,7 @@ "compose_form.spoiler.unmarked": "Testua ez dago ezkutatuta", "compose_form.spoiler_placeholder": "Edukiaren abisua (aukerakoa)", "confirmation_modal.cancel": "Utzi", - "confirmations.block.block_and_report": "Blokeatu eta salatu", "confirmations.block.confirm": "Blokeatu", - "confirmations.block.message": "Ziur {name} blokeatu nahi duzula?", "confirmations.cancel_follow_request.confirm": "Baztertu eskaera", "confirmations.cancel_follow_request.message": "Ziur {name} jarraitzeko eskaera bertan behera utzi nahi duzula?", "confirmations.delete.confirm": "Ezabatu", @@ -171,15 +177,13 @@ "confirmations.delete_list.message": "Ziur behin betiko ezabatu nahi duzula zerrenda hau?", "confirmations.discard_edit_media.confirm": "Baztertu", "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.confirm": "Blokeatu zerbitzaria", "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, une honetan idazten ari zaren mezua gainidatziko da. Ziur jarraitu nahi duzula?", "confirmations.logout.confirm": "Amaitu saioa", "confirmations.logout.message": "Ziur saioa amaitu nahi duzula?", "confirmations.mute.confirm": "Mututu", - "confirmations.mute.explanation": "Honek horko bidalketak eta aipamena egiten dietenak ezkutatuko ditu, baina beraiek zure bidalketak ikusi ahal izango dituzte eta zuri jarraitu.", - "confirmations.mute.message": "Ziur {name} mututu nahi duzula?", "confirmations.redraft.confirm": "Ezabatu eta berridatzi", "confirmations.redraft.message": "Ziur argitalpen hau ezabatu eta zirriborroa berriro egitea nahi duzula? Gogokoak eta bultzadak galduko dira, eta jatorrizko argitalpenaren erantzunak zurtz geratuko dira.", "confirmations.reply.confirm": "Erantzun", @@ -205,6 +209,27 @@ "dismissable_banner.explore_statuses": "Hauek dira gaur egun lekua hartzen ari diren sare sozial osoaren argitalpenak. Bultzada eta gogoko gehien dituzten argitalpen berrienek sailkapen altuagoa dute.", "dismissable_banner.explore_tags": "Traola hauek daude bogan orain zerbitzari honetan eta sare deszentralizatuko besteetan.", "dismissable_banner.public_timeline": "Hauek dira {domain}-(e)ko jendeak web sozialean jarraitzen dituen jendearen azkeneko argitalpen publikoak.", + "domain_block_modal.block": "Blokeatu zerbitzaria", + "domain_block_modal.block_account_instead": "Blokeatu @{name} bestela", + "domain_block_modal.they_can_interact_with_old_posts": "Zerbitzari honetako jendea zure argitalpen zaharrekin elkarreragin dezake.", + "domain_block_modal.they_cant_follow": "Zerbitzari honetako inork ezin zaitu jarraitu.", + "domain_block_modal.they_wont_know": "Ez dute jakingo blokeatuak izan direnik.", + "domain_block_modal.title": "Domeinua blokeatu nahi duzu?", + "domain_block_modal.you_will_lose_followers": "Zerbitzari honetako jarraitzaile guztiak kenduko dira.", + "domain_block_modal.you_wont_see_posts": "Ez dituzu zerbitzari honetako erabiltzaileen argitalpenik edota jakinarazpenik ikusiko.", + "domain_pill.activitypub_lets_connect": "Mastodon-en ez ezik, beste sare sozialen aplikazioetako jendearekin konektatzea eta harremanetan jartzea uzten dizu.", + "domain_pill.activitypub_like_language": "ActivityPub, Mastodon-ek beste sare sozialekin hitz egiteko erabiltzen duen hizkuntza bezalakoxea da.", + "domain_pill.server": "Zerbitzaria", + "domain_pill.their_handle": "Bere helbidea:", + "domain_pill.their_server": "Bere etxe digitala, non bere argitalpenak dauden.", + "domain_pill.their_username": "Zerbitzarian duen identifikatzaile bakarra. Baliteke erabiltzaile-izen bera duten erabiltzaileak zerbitzari desberdinetan aurkitzea.", + "domain_pill.username": "Erabiltzaile-izena", + "domain_pill.whats_in_a_handle": "Zer dago helbide batean?", + "domain_pill.who_they_are": "Helbideek norbait nor den eta non dagoen adierazten dute, sare sozialeko jendearekin jar zaitezke harremanetan.", + "domain_pill.who_you_are": "Zure helbideak nor zaren eta non zauden adierazten duenez, jendea sare sozialen bitartez jar daiteke zurekin harremanetan.", + "domain_pill.your_handle": "Zure helbidea:", + "domain_pill.your_server": "Zure etxe digitala, non zure bidalketak dauden. Ez al zaizu gustatzen? Transferitu zerbitzariak edonoiz eta ekarri zure jarraitzaileak ere.", + "domain_pill.your_username": "Zerbitzarian duzun identifikatzaile bakarra. Baliteke erabiltzaile-izen bera duten erabiltzaileak zerbitzari desberdinetan aurkitzea.", "embed.instructions": "Txertatu bidalketa hau zure webgunean beheko kodea kopiatuz.", "embed.preview": "Hau da izango duen itxura:", "emoji_button.activity": "Jarduera", @@ -241,6 +266,7 @@ "empty_column.list": "Ez dago ezer zerrenda honetan. Zerrenda honetako kideek bidalketa berriak argitaratzean, hemen agertuko dira.", "empty_column.lists": "Ez duzu zerrendarik oraindik. Baten bat sortzen duzunean hemen agertuko da.", "empty_column.mutes": "Ez duzu erabiltzailerik mututu oraindik.", + "empty_column.notification_requests": "Garbi-garbi! Ezertxo ere ez hemen. Jakinarazpenak jasotzen dituzunean, hemen agertuko dira zure ezarpenen arabera.", "empty_column.notifications": "Ez duzu jakinarazpenik oraindik. Jarri besteekin harremanetan elkarrizketa abiatzeko.", "empty_column.public": "Ez dago ezer hemen! Idatzi zerbait publikoki edo jarraitu eskuz beste zerbitzari batzuetako erabiltzaileei hau betetzen joateko", "error.unexpected_crash.explanation": "Gure kodean arazoren bat dela eta, edo nabigatzailearekin bateragarritasun arazoren bat dela eta, orri hau ezin izan da ongi bistaratu.", @@ -271,6 +297,8 @@ "filter_modal.select_filter.subtitle": "Hautatu lehendik dagoen kategoria bat edo sortu berria", "filter_modal.select_filter.title": "Iragazi bidalketa hau", "filter_modal.title.status": "Iragazi bidalketa bat", + "filtered_notifications_banner.pending_requests": "Ezagutu {count, plural, =0 {dezakezun inoren} one {dezakezun pertsona baten} other {ditzakezun # pertsonen}} jakinarazpenak", + "filtered_notifications_banner.title": "Iragazitako jakinarazpenak", "firehose.all": "Guztiak", "firehose.local": "Zerbitzari hau", "firehose.remote": "Beste zerbitzariak", @@ -314,7 +342,6 @@ "hashtag.follow": "Jarraitu traolari", "hashtag.unfollow": "Utzi traola jarraitzeari", "hashtags.and_other": "…eta {count, plural, one {}other {# gehiago}}", - "home.column_settings.basic": "Oinarrizkoa", "home.column_settings.show_reblogs": "Erakutsi bultzadak", "home.column_settings.show_replies": "Erakutsi erantzunak", "home.hide_announcements": "Ezkutatu iragarpenak", @@ -400,9 +427,15 @@ "loading_indicator.label": "Kargatzen…", "media_gallery.toggle_visible": "Txandakatu ikusgaitasuna", "moved_to_account_banner.text": "Zure {disabledAccount} kontua desgaituta dago une honetan, {movedToAccount} kontura aldatu zinelako.", - "mute_modal.duration": "Iraupena", - "mute_modal.hide_notifications": "Ezkutatu erabiltzaile honen jakinarazpenak?", - "mute_modal.indefinite": "Zehaztu gabe", + "mute_modal.hide_from_notifications": "Ezkutatu jakinarazpenetatik", + "mute_modal.hide_options": "Ezkutatu aukerak", + "mute_modal.indefinite": "Desmututua izan arte", + "mute_modal.show_options": "Erakutsi aukerak", + "mute_modal.they_can_mention_and_follow": "Aipa eta jarrai zaitzakete, baina ez dituzu ikusiko.", + "mute_modal.they_wont_know": "Ez dute jakingo mututuak izan direnik.", + "mute_modal.title": "Erabiltzailea mututu nahi duzu?", + "mute_modal.you_wont_see_mentions": "Ez duzu ikusiko bera aipatzen duen argitalpenik.", + "mute_modal.you_wont_see_posts": "Zure argitalpenak ikus ditzake, baina ez dituzu bereak ikusiko.", "navigation_bar.about": "Honi buruz", "navigation_bar.advanced_interface": "Ireki web interfaze aurreratuan", "navigation_bar.blocks": "Blokeatutako erabiltzaileak", @@ -440,15 +473,16 @@ "notification.reblog": "{name}(e)k bultzada eman dio zure bidalketari", "notification.status": "{name} erabiltzaileak bidalketa egin berri du", "notification.update": "{name} erabiltzaileak bidalketa bat editatu du", + "notification_requests.accept": "Onartu", + "notification_requests.dismiss": "Baztertu", + "notification_requests.notifications_from": "{name} erabiltzailearen jakinarazpenak", + "notification_requests.title": "Iragazitako jakinarazpenak", "notifications.clear": "Garbitu jakinarazpenak", "notifications.clear_confirmation": "Ziur zure jakinarazpen guztiak behin betirako garbitu nahi dituzula?", "notifications.column_settings.admin.report": "Txosten berriak:", "notifications.column_settings.admin.sign_up": "Izen-emate berriak:", "notifications.column_settings.alert": "Mahaigaineko jakinarazpenak", "notifications.column_settings.favourite": "Gogokoak:", - "notifications.column_settings.filter_bar.advanced": "Erakutsi kategoria guztiak", - "notifications.column_settings.filter_bar.category": "Iragazki azkarraren barra", - "notifications.column_settings.filter_bar.show_bar": "Erakutsi iragazki-barra", "notifications.column_settings.follow": "Jarraitzaile berriak:", "notifications.column_settings.follow_request": "Jarraitzeko eskaera berriak:", "notifications.column_settings.mention": "Aipamenak:", @@ -474,6 +508,15 @@ "notifications.permission_denied": "Mahaigaineko jakinarazpenak ez daude erabilgarri, nabigatzaileari baimen eskaera ukatu zitzaiolako", "notifications.permission_denied_alert": "Mahaigaineko jakinarazpenak ezin dira gaitu, nabigatzaileari baimena ukatu zitzaiolako", "notifications.permission_required": "Mahaigaineko jakinarazpenak ez daude erabilgarri, horretarako behar den baimena ez delako eman.", + "notifications.policy.filter_new_accounts.hint": "Azken {days, plural, one {egunean} other {# egunetan}} sortua", + "notifications.policy.filter_new_accounts_title": "Kontu berriak", + "notifications.policy.filter_not_followers_hint": "{days, plural, one {Egun batez} other {# egunez}} baino gutxiago jarraitu zaituen jendea barne", + "notifications.policy.filter_not_followers_title": "Jarraitzen ez zaituen jendea", + "notifications.policy.filter_not_following_hint": "Eskuz onartzen dituzun arte", + "notifications.policy.filter_not_following_title": "Jarraitzen ez duzun jendea", + "notifications.policy.filter_private_mentions_hint": "Iragazita, baldin eta zure aipamenaren erantzuna bada edo bidaltzailea jarraitzen baduzu", + "notifications.policy.filter_private_mentions_title": "Eskatu gabeko aipamen pribatuak", + "notifications.policy.title": "Ez iragazi hemengo jakinarazpenak…", "notifications_permission_banner.enable": "Gaitu mahaigaineko jakinarazpenak", "notifications_permission_banner.how_to_control": "Mastodon irekita ez dagoenean jakinarazpenak jasotzeko, gaitu mahaigaineko jakinarazpenak. Mahaigaineko jakinarazpenak ze elkarrekintzak eragingo dituzten zehazki kontrolatu dezakezu goiko {icon} botoia erabiliz, gaituta daudenean.", "notifications_permission_banner.title": "Ez galdu ezer inoiz", @@ -650,10 +693,11 @@ "status.direct": "Aipatu pribatuki @{name}", "status.direct_indicator": "Aipamen pribatua", "status.edit": "Editatu", - "status.edited": "Editatua {date}", + "status.edited": "Azken edizioa: {date}", "status.edited_x_times": "{count, plural, one {behin} other {{count} aldiz}} editatua", "status.embed": "Txertatu", "status.favourite": "Gogokoa", + "status.favourites": "{count, plural, one {gogoko} other {gogoko}}", "status.filter": "Iragazi bidalketa hau", "status.filtered": "Iragazita", "status.hide": "Tuta ezkutatu", @@ -674,6 +718,7 @@ "status.reblog": "Bultzada", "status.reblog_private": "Bultzada jatorrizko hartzaileei", "status.reblogged_by": "{name}(r)en bultzada", + "status.reblogs": "{count, plural, one {bultzada} other {bultzada}}", "status.reblogs.empty": "Inork ez dio bultzada eman bidalketa honi oraindik. Inork egiten badu, hemen agertuko da.", "status.redraft": "Ezabatu eta berridatzi", "status.remove_bookmark": "Kendu laster-marka", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index 9029ba3cb5c3cf..b784a1d5c0593a 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -160,9 +160,7 @@ "compose_form.spoiler.unmarked": "افزودن هشدار محتوا", "compose_form.spoiler_placeholder": "هشدار محتوا (اختیاری)", "confirmation_modal.cancel": "لغو", - "confirmations.block.block_and_report": "انسداد و گزارش", "confirmations.block.confirm": "انسداد", - "confirmations.block.message": "مطمئنید که می‌خواهید {name} را مسدود کنید؟", "confirmations.cancel_follow_request.confirm": "رد کردن درخواست", "confirmations.cancel_follow_request.message": "مطمئنید که می خواهید درخواست پی‌گیری {name} را لغو کنید؟", "confirmations.delete.confirm": "حذف", @@ -171,15 +169,12 @@ "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.message": "مطمئنید می‌خواهید {name} را بخموشانید؟", "confirmations.redraft.confirm": "حذف و بازنویسی", "confirmations.redraft.message": "مطمئنید که می‌خواهید این فرسته را حذف کنید و از نو بنویسید؟ با این کار تقویت‌ها و پسندهایش از دست رفته و پاسخ‌ها به آن بی‌مرجع می‌شود.", "confirmations.reply.confirm": "پاسخ", @@ -314,7 +309,6 @@ "hashtag.follow": "پی‌گرفتن برچسب", "hashtag.unfollow": "پی‌نگرفتن برچسب", "hashtags.and_other": "…و {count, plural, other {# بیش‌تر}}", - "home.column_settings.basic": "پایه‌ای", "home.column_settings.show_reblogs": "نمایش تقویت‌ها", "home.column_settings.show_replies": "نمایش پاسخ‌ها", "home.hide_announcements": "نهفتن اعلامیه‌ها", @@ -326,8 +320,8 @@ "interaction_modal.description.follow": "با حسابی روی ماستودون می‌توانید {name} را برای دریافت فرسته‌هایش در خوراک خانگیتان دنبال کنید.", "interaction_modal.description.reblog": "با حسابی روی ماستودون می‌توانید این فرسته را با پی‌گیران خودتان هم‌رسانی کنید.", "interaction_modal.description.reply": "با حسابی روی ماستودون می‌توانید به این فرسته پاسخ دهید.", - "interaction_modal.login.action": "من رو ببر خونه", - "interaction_modal.login.prompt": "دامنه سرور شخصی شما، به عنوان مثال. mastodon.social", + "interaction_modal.login.action": "رفتن به خانه", + "interaction_modal.login.prompt": "دامنهٔ کارساز شخصیتان چون mastodon.social", "interaction_modal.no_account_yet": "در ماستودون نیست؟", "interaction_modal.on_another_server": "روی کارسازی دیگر", "interaction_modal.on_this_server": "روی این کارساز", @@ -400,9 +394,6 @@ "loading_indicator.label": "در حال بارگذاری…", "media_gallery.toggle_visible": "{number, plural, one {نهفتن تصویر} other {نهفتن تصاویر}}", "moved_to_account_banner.text": "حسابتان {disabledAccount} اکنون از کار افتاده؛ چرا که به {movedToAccount} منتقل شدید.", - "mute_modal.duration": "مدت زمان", - "mute_modal.hide_notifications": "نهفتن آگاهی‌ها از این کاربر؟", - "mute_modal.indefinite": "نامعلوم", "navigation_bar.about": "درباره", "navigation_bar.advanced_interface": "بازکردن در رابط کاربری وب پیشرفته", "navigation_bar.blocks": "کاربران مسدود شده", @@ -446,9 +437,6 @@ "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": "اشاره‌ها:", @@ -650,7 +638,6 @@ "status.direct": "اشارهٔ خصوصی به ‪@{name}‬", "status.direct_indicator": "اشارهٔ خصوصی", "status.edit": "ویرایش", - "status.edited": "ویرایش شده در {date}", "status.edited_x_times": "{count, plural, one {{count} مرتبه} other {{count} مرتبه}} ویرایش شد", "status.embed": "جاسازی", "status.favourite": "برگزیده‌", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 7588b084fd670b..bb5370b6d7de4c 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -89,6 +89,14 @@ "announcement.announcement": "Tiedote", "attachments_list.unprocessed": "(käsittelemätön)", "audio.hide": "Piilota ääni", + "block_modal.remote_users_caveat": "Pyydämme palvelinta {domain} kunnioittamaan päätöstäsi. Myötämielisyyttä ei kuitenkaan taata, koska jotkin palvelimet voivat käsitellä estoja eri tavalla. Julkiset julkaisut voivat silti näkyä kirjautumattomille käyttäjille.", + "block_modal.show_less": "Näytä vähemmän", + "block_modal.show_more": "Näytä enemmän", + "block_modal.they_cant_mention": "Hän ei voi enää mainita eikä seurata sinua.", + "block_modal.they_cant_see_posts": "Hän ei voi enää nähdä julkaisujasi, etkä sinä voi nähdä hänen.", + "block_modal.they_will_know": "Hän voi nähdä, että hänet on estetty.", + "block_modal.title": "Estetäänkö käyttäjä?", + "block_modal.you_wont_see_mentions": "Et enää näe hänen julkaisujaan etkä voi seurata häntä.", "boost_modal.combo": "Ensi kerralla voit ohittaa tämän painamalla {combo}", "bundle_column_error.copy_stacktrace": "Kopioi virheraportti", "bundle_column_error.error.body": "Pyydettyä sivua ei voitu hahmontaa. Se voi johtua virheestä koodissamme tai selaimen yhteensopivuudessa.", @@ -160,9 +168,7 @@ "compose_form.spoiler.unmarked": "Lisää sisältövaroitus", "compose_form.spoiler_placeholder": "Sisältövaroitus (valinnainen)", "confirmation_modal.cancel": "Peruuta", - "confirmations.block.block_and_report": "Estä ja raportoi", "confirmations.block.confirm": "Estä", - "confirmations.block.message": "Haluatko varmasti estää käyttäjän {name}?", "confirmations.cancel_follow_request.confirm": "Peruuta pyyntö", "confirmations.cancel_follow_request.message": "Haluatko varmasti perua pyyntösi seurata käyttäjätiliä {name}?", "confirmations.delete.confirm": "Poista", @@ -171,15 +177,13 @@ "confirmations.delete_list.message": "Haluatko varmasti poistaa tämän listan pysyvästi?", "confirmations.discard_edit_media.confirm": "Hylkää", "confirmations.discard_edit_media.message": "Sinulla on tallentamattomia muutoksia median kuvaukseen tai esikatseluun. Hylätäänkö ne silti?", - "confirmations.domain_block.confirm": "Estä koko verkkotunnus", + "confirmations.domain_block.confirm": "Estä palvelin", "confirmations.domain_block.message": "Haluatko aivan varmasti estää koko verkkotunnuksen {domain}? Useimmiten muutama kohdistettu esto tai mykistys on riittävä ja suositeltava toimi. Et näe sisältöä tästä verkkotunnuksesta millään julkisilla aikajanoilla tai ilmoituksissa. Tähän verkkotunnukseen kuuluvat seuraajasi poistetaan.", "confirmations.edit.confirm": "Muokkaa", "confirmations.edit.message": "Jos muokkaat viestiä nyt, se korvaa parhaillaan työstämäsi viestin. Haluatko varmasti jatkaa?", "confirmations.logout.confirm": "Kirjaudu ulos", "confirmations.logout.message": "Haluatko varmasti kirjautua ulos?", "confirmations.mute.confirm": "Mykistä", - "confirmations.mute.explanation": "Tämä toiminto piilottaa heidän julkaisunsa sinulta – mukaan lukien ne, joissa heidät mainitaan – sallien heidän yhä nähdä julkaisusi ja seurata sinua.", - "confirmations.mute.message": "Haluatko varmasti mykistää käyttäjän {name}?", "confirmations.redraft.confirm": "Poista ja palauta muokattavaksi", "confirmations.redraft.message": "Haluatko varmasti poistaa julkaisun ja tehdä siitä luonnoksen? Suosikit ja tehostukset menetetään, ja alkuperäisen julkaisun vastaukset jäävät orvoiksi.", "confirmations.reply.confirm": "Vastaa", @@ -205,6 +209,27 @@ "dismissable_banner.explore_statuses": "Nämä sosiaalisen verkon julkaisut keräävät tänään eniten huomiota. Uusimmat, tehostetuimmat ja suosikeiksi lisätyimmät julkaisut nousevat listauksessa korkeammalle.", "dismissable_banner.explore_tags": "Nämä sosiaalisen verkon aihetunnisteet keräävät tänään eniten huomiota. Useimman käyttäjän käyttämät aihetunnisteet nousevat listauksessa korkeammalle.", "dismissable_banner.public_timeline": "Nämä ovat viimeisimpiä julkaisuja sosiaalisen verkon käyttäjiltä, joita seurataan palvelimella {domain}.", + "domain_block_modal.block": "Estä palvelin", + "domain_block_modal.block_account_instead": "Estä sen sijaan @{name}", + "domain_block_modal.they_can_interact_with_old_posts": "Ihmiset tältä palvelimelta eivät voi olla vuorovaikutuksessa vanhojen julkaisujesi kanssa.", + "domain_block_modal.they_cant_follow": "Kukaan tältä palvelimelta ei voi seurata sinua.", + "domain_block_modal.they_wont_know": "Hän ei saa tietää, että hänet on estetty.", + "domain_block_modal.title": "Estetäänkö verkkotunnus?", + "domain_block_modal.you_will_lose_followers": "Kaikki seuraajasi tältä palvelimelta poistetaan.", + "domain_block_modal.you_wont_see_posts": "Et enää näe julkaisuja etkä ilmoituksia tämän palvelimen käyttäjiltä.", + "domain_pill.activitypub_lets_connect": "Sen avulla voit muodostaa yhteyden ja olla vuorovaikutuksessa ihmisten kanssa, ei vain Mastodonissa vaan myös muissa sosiaalisissa sovelluksissa.", + "domain_pill.activitypub_like_language": "ActivityPub on kuin kieli, jota Mastodon puhuu muiden sosiaalisten verkostojen kanssa.", + "domain_pill.server": "Palvelin", + "domain_pill.their_handle": "Hänen käyttäjänimensä:", + "domain_pill.their_server": "Hänen digitaalinen kotinsa, jossa kaikki hänen julkaisunsa sijaitsevat.", + "domain_pill.their_username": "Hänen yksilöllinen tunnisteensa omalla palvelimellaan. Eri palvelimilta on mahdollista löytää käyttäjiä, joilla on sama käyttäjänimi.", + "domain_pill.username": "Käyttäjänimi", + "domain_pill.whats_in_a_handle": "Mitä käyttäjänimessä on?", + "domain_pill.who_they_are": "Koska käyttäjätunnukset kertovat, kuka ja missä joku on, voit olla vuorovaikutuksessa ihmisten kanssa läpi sosiaalisen verkon, joka koostuu .", + "domain_pill.who_you_are": "Koska käyttäjätunnuksesi kertoo, kuka ja missä olet, ihmiset voivat olla vaikutuksessa kanssasi läpi sosiaalisen verkon, joka koostuu .", + "domain_pill.your_handle": "Käyttäjänimesi:", + "domain_pill.your_server": "Digitaalinen kotisi, jossa kaikki julkaisusi sijaitsevat. Etkö pidä tästä? Siirry palvelimelta toiselle milloin tahansa ja tuo myös seuraajasi mukanasi.", + "domain_pill.your_username": "Yksilöllinen tunnisteesi tällä palvelimella. Eri palvelimilta on mahdollista löytää käyttäjiä, joilla on sama käyttäjänimi.", "embed.instructions": "Upota julkaisu verkkosivullesi kopioimalla alla oleva koodi.", "embed.preview": "Tältä se näyttää:", "emoji_button.activity": "Aktiviteetit", @@ -241,6 +266,7 @@ "empty_column.list": "Tällä listalla ei ole vielä mitään. Kun tämän listan jäsenet lähettävät uusia julkaisuja, ne näkyvät tässä.", "empty_column.lists": "Sinulla ei ole vielä yhtään listaa. Kun luot sellaisen, näkyy se tässä.", "empty_column.mutes": "Et ole mykistänyt vielä yhtään käyttäjää.", + "empty_column.notification_requests": "Kaikki kunnossa! Täällä ei ole mitään. Kun saat uusia ilmoituksia, ne näkyvät täällä asetustesi mukaisesti.", "empty_column.notifications": "Sinulla ei ole vielä ilmoituksia. Kun keskustelet muille, näet sen täällä.", "empty_column.public": "Täällä ei ole mitään! Kirjoita jotain julkisesti. Voit myös seurata muiden palvelimien käyttäjiä", "error.unexpected_crash.explanation": "Sivua ei voida näyttää oikein ohjelmointivirheen tai selaimen yhteensopivuusvajeen vuoksi.", @@ -271,6 +297,8 @@ "filter_modal.select_filter.subtitle": "Käytä olemassa olevaa luokkaa tai luo uusi", "filter_modal.select_filter.title": "Suodata tämä julkaisu", "filter_modal.title.status": "Suodata julkaisu", + "filtered_notifications_banner.pending_requests": "Ilmoitukset {count, plural, =0 {ei keltään} one {yhdeltä henkilöltä} other {# henkilöltä}}, jonka saatat tuntea", + "filtered_notifications_banner.title": "Suodatetut ilmoitukset", "firehose.all": "Kaikki", "firehose.local": "Tämä palvelin", "firehose.remote": "Muut palvelimet", @@ -314,7 +342,6 @@ "hashtag.follow": "Seuraa aihetunnistetta", "hashtag.unfollow": "Lopeta aihetunnisteen seuraaminen", "hashtags.and_other": "…ja {count, plural, other {# lisää}}", - "home.column_settings.basic": "Perusasetukset", "home.column_settings.show_reblogs": "Näytä tehostukset", "home.column_settings.show_replies": "Näytä vastaukset", "home.hide_announcements": "Piilota tiedotteet", @@ -400,9 +427,15 @@ "loading_indicator.label": "Ladataan…", "media_gallery.toggle_visible": "{number, plural, one {Piilota kuva} other {Piilota kuvat}}", "moved_to_account_banner.text": "Tilisi {disabledAccount} on tällä hetkellä poissa käytöstä, koska teit siirron tiliin {movedToAccount}.", - "mute_modal.duration": "Kesto", - "mute_modal.hide_notifications": "Piilotetaanko tältä käyttäjältä tulevat ilmoitukset?", - "mute_modal.indefinite": "Ikuisesti", + "mute_modal.hide_from_notifications": "Piilota ilmoituksista", + "mute_modal.hide_options": "Piilota valinnat", + "mute_modal.indefinite": "Kunnes poistan mykistyksen häneltä", + "mute_modal.show_options": "Näytä valinnat", + "mute_modal.they_can_mention_and_follow": "Hän voi mainita sinut ja seurata sinua, mutta sinä et näe häntä.", + "mute_modal.they_wont_know": "Hän ei saa tietää, että hänet on mykistetty.", + "mute_modal.title": "Mykistetäänkö käyttäjä?", + "mute_modal.you_wont_see_mentions": "Et enää näe julkaisuja, joissa hänet mainitaan.", + "mute_modal.you_wont_see_posts": "Hän voi yhä nähdä julkaisusi, mutta sinä et näe hänen.", "navigation_bar.about": "Tietoja", "navigation_bar.advanced_interface": "Avaa edistyneessä selainkäyttöliittymässä", "navigation_bar.blocks": "Estetyt käyttäjät", @@ -440,15 +473,16 @@ "notification.reblog": "{name} tehosti julkaisuasi", "notification.status": "{name} julkaisi juuri", "notification.update": "{name} muokkasi julkaisua", + "notification_requests.accept": "Hyväksy", + "notification_requests.dismiss": "Hylkää", + "notification_requests.notifications_from": "Ilmoitukset käyttäjältä {name}", + "notification_requests.title": "Suodatetut ilmoitukset", "notifications.clear": "Tyhjennä ilmoitukset", "notifications.clear_confirmation": "Haluatko varmasti poistaa kaikki ilmoitukset pysyvästi?", "notifications.column_settings.admin.report": "Uudet ilmoitukset:", "notifications.column_settings.admin.sign_up": "Uudet rekisteröitymiset:", "notifications.column_settings.alert": "Työpöytäilmoitukset", "notifications.column_settings.favourite": "Suosikit:", - "notifications.column_settings.filter_bar.advanced": "Näytä kaikki luokat", - "notifications.column_settings.filter_bar.category": "Pikasuodatuspalkki", - "notifications.column_settings.filter_bar.show_bar": "Näytä suodatinpalkki", "notifications.column_settings.follow": "Uudet seuraajat:", "notifications.column_settings.follow_request": "Uudet seuraamispyynnöt:", "notifications.column_settings.mention": "Maininnat:", @@ -474,6 +508,15 @@ "notifications.permission_denied": "Työpöytäilmoitukset eivät ole käytettävissä, koska selaimen käyttöoikeuspyyntö on aiemmin evätty", "notifications.permission_denied_alert": "Työpöytäilmoituksia ei voi ottaa käyttöön, koska selaimen käyttöoikeus on aiemmin estetty", "notifications.permission_required": "Työpöytäilmoitukset eivät ole käytettävissä, koska siihen tarvittavaa lupaa ei ole myönnetty.", + "notifications.policy.filter_new_accounts.hint": "Luotu {days, plural, one {viime päivänä} other {viimeisenä # päivänä}}", + "notifications.policy.filter_new_accounts_title": "Uudet tilit", + "notifications.policy.filter_not_followers_hint": "Mukaan lukien ne, jotka ovat seuranneet sinua vähemmän kuin {days, plural, one {päivän} other {# päivää}}", + "notifications.policy.filter_not_followers_title": "Henkilöt, jotka eivät seuraa sinua", + "notifications.policy.filter_not_following_hint": "Kunnes hyväksyt ne manuaalisesti", + "notifications.policy.filter_not_following_title": "Henkilöt, joita et seuraa", + "notifications.policy.filter_private_mentions_hint": "Suodatetaan, ellei se vastaa omaan mainintaasi tai ellet seuraa lähettäjää", + "notifications.policy.filter_private_mentions_title": "Ei-toivotut yksityismaininnat", + "notifications.policy.title": "Suodata ilmoitukset pois kohteesta…", "notifications_permission_banner.enable": "Ota työpöytäilmoitukset käyttöön", "notifications_permission_banner.how_to_control": "Saadaksesi ilmoituksia, kun Mastodon ei ole auki, ota työpöytäilmoitukset käyttöön. Voit hallita tarkasti, mistä saat työpöytäilmoituksia kun ilmoitukset on otettu käyttöön yllä olevan {icon}-painikkeen kautta.", "notifications_permission_banner.title": "Älä anna minkään mennä ohi", @@ -650,10 +693,11 @@ "status.direct": "Mainitse @{name} yksityisesti", "status.direct_indicator": "Yksityinen maininta", "status.edit": "Muokkaa", - "status.edited": "Muokattu {date}", + "status.edited": "Viimeksi muokattu {date}", "status.edited_x_times": "Muokattu {count, plural, one {{count} kerran} other {{count} kertaa}}", "status.embed": "Upota", "status.favourite": "Suosikki", + "status.favourites": "{count, plural, one {suosikki} other {suosikkia}}", "status.filter": "Suodata tämä julkaisu", "status.filtered": "Suodatettu", "status.hide": "Piilota julkaisu", @@ -674,6 +718,7 @@ "status.reblog": "Tehosta", "status.reblog_private": "Tehosta alkuperäiselle yleisölle", "status.reblogged_by": "{name} tehosti", + "status.reblogs": "{count, plural, one {tehostus} other {tehostusta}}", "status.reblogs.empty": "Kukaan ei ole vielä tehostanut tätä julkaisua. Kun joku tekee niin, tulee hän tähän näkyviin.", "status.redraft": "Poista ja palauta muokattavaksi", "status.remove_bookmark": "Poista kirjanmerkki", diff --git a/app/javascript/mastodon/locales/fil.json b/app/javascript/mastodon/locales/fil.json index 04208c5544fb64..afa0e5fbc2c5fd 100644 --- a/app/javascript/mastodon/locales/fil.json +++ b/app/javascript/mastodon/locales/fil.json @@ -106,16 +106,13 @@ "compose_form.reply": "Tumugon", "compose_form.spoiler.unmarked": "Idagdag ang babala sa nilalaman", "confirmation_modal.cancel": "Pagpaliban", - "confirmations.block.block_and_report": "Harangan at i-ulat", "confirmations.block.confirm": "Harangan", - "confirmations.block.message": "Sigurado ka bang gusto mong harangan si {name}?", "confirmations.cancel_follow_request.confirm": "Bawiin ang kahilingan", "confirmations.cancel_follow_request.message": "Sigurdo ka bang gusto mong bawiin ang kahilingang sundan si/ang {name}?", "confirmations.delete.message": "Sigurado ka bang gusto mong burahin ang post na ito?", "confirmations.delete_list.confirm": "Tanggalin", "confirmations.delete_list.message": "Sigurado ka bang gusto mong burahin ang listahang ito?", "confirmations.discard_edit_media.confirm": "Ipagpaliban", - "confirmations.domain_block.confirm": "Harangan ang buong domain", "confirmations.edit.confirm": "Baguhin", "confirmations.reply.confirm": "Tumugon", "copy_icon_button.copied": "Sinipi sa clipboard", @@ -169,6 +166,7 @@ "empty_column.list": "Wala pang laman ang listahang ito. Kapag naglathala ng mga bagong post ang mga miyembro ng listahang ito, makikita iyon dito.", "empty_column.lists": "Wala ka pang mga listahan. Kapag gumawa ka ng isa, makikita yun dito.", "explore.search_results": "Mga resulta ng paghahanap", + "filter_modal.select_filter.search": "Hanapin o gumawa", "firehose.all": "Lahat", "firehose.local": "Itong serbiro", "firehose.remote": "Ibang mga serbiro", @@ -272,7 +270,6 @@ "status.direct": "Palihim na banggitin si/ang @{name}", "status.direct_indicator": "Palihim na banggit", "status.edit": "Baguhin", - "status.edited": "Binago noong {date}", "status.edited_x_times": "Binago {count, plural, one {{count} beses} other {{count} na beses}}", "status.history.created": "Nilikha ni/ng {name} {date}", "status.history.edited": "Binago ni/ng {name} {date}", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index 13e49eb314a4dc..c3e3f8cc1af64a 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -89,6 +89,14 @@ "announcement.announcement": "Kunngerð", "attachments_list.unprocessed": "(óviðgjørt)", "audio.hide": "Fjal ljóð", + "block_modal.remote_users_caveat": "Vit biðja ambætaran {domain} virða tína avgerð. Kortini er eingin vissa um samsvar, av tí at fleiri ambætarar handfara blokkar ymiskt. Almennir postar kunnu framvegis vera sjónligir fyri brúkarar, sum ikki eru innritaðir.", + "block_modal.show_less": "Vís minni", + "block_modal.show_more": "Vís meiri", + "block_modal.they_cant_mention": "Tey kunnu hvørki nevna teg ella fylgja tær.", + "block_modal.they_cant_see_posts": "Tey síggja ikki tínar postar og tú sært ikki teirra.", + "block_modal.they_will_know": "Tey síggja, at tey eru bannað.", + "block_modal.title": "Banna brúkara?", + "block_modal.you_wont_see_mentions": "Tú sært ikki postar, sum nevna tey.", "boost_modal.combo": "Tú kanst trýsta á {combo} fyri at loypa uppum hetta næstu ferð", "bundle_column_error.copy_stacktrace": "Avrita feilfráboðan", "bundle_column_error.error.body": "Umbidna síðan kann ikki vísast. Tað kann vera orsakað av einum feili í koduni hjá okkum ella tað kann vera orsakað av kaganum, sum tú brúkar.", @@ -160,9 +168,7 @@ "compose_form.spoiler.unmarked": "Skriva ávaring um innihald", "compose_form.spoiler_placeholder": "Innihaldsávaring (valfrí)", "confirmation_modal.cancel": "Strika", - "confirmations.block.block_and_report": "Banna og melda", "confirmations.block.confirm": "Banna", - "confirmations.block.message": "Ert tú vís/ur í, at tú vilt banna {name}?", "confirmations.cancel_follow_request.confirm": "Tak umbønina aftur", "confirmations.cancel_follow_request.message": "Er tað tilætlað, at tú tekur umbønina at fylgja {name} aftur?", "confirmations.delete.confirm": "Strika", @@ -171,15 +177,13 @@ "confirmations.delete_list.message": "Ert tú vís/ur í, at tú vilt strika hetta uppslagið?", "confirmations.discard_edit_media.confirm": "Vraka", "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.confirm": "Banna ambætara", "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", - "confirmations.mute.explanation": "Henda atgerð fjalir teirra postar og postar, ið nevna tey; men tey kunnu framvegis síggja tínar postar og fylgja tær.", - "confirmations.mute.message": "Ert tú vís/ur í, at tú vilt doyva {name}?", "confirmations.redraft.confirm": "Sletta og skriva umaftur", "confirmations.redraft.message": "Vilt tú veruliga strika hendan postin og í staðin gera hann til eina nýggja kladdu? Yndisfrámerki og framhevjanir blíva burtur, og svar til upprunapostin missa tilknýtið.", "confirmations.reply.confirm": "Svara", @@ -205,6 +209,27 @@ "dismissable_banner.explore_statuses": "Hesi uppsløg, frá hesum og øðrum ambætarum á miðspjadda netverkinum, hava framgongd á hesum ambætara júst nú. Nýggjari postar, sum fleiri hava framhevja og dáma, verða raðfestir hægri.", "dismissable_banner.explore_tags": "Hesi frámerki vinna í løtuni fótafesti millum fólk á hesum og øðrum ambætarum í desentrala netverkinum beint nú.", "dismissable_banner.public_timeline": "Hetta eru teir nýggjast postarnir frá fólki á sosialu vevinum, sum fólk á {domain} fylgja.", + "domain_block_modal.block": "Banna ambætara", + "domain_block_modal.block_account_instead": "Banna @{name} ístaðin", + "domain_block_modal.they_can_interact_with_old_posts": "Fólk frá hesum ambætara kunnu svara tínum gomlu postum.", + "domain_block_modal.they_cant_follow": "Eingin frá hesum ambætara kann fylgja tær.", + "domain_block_modal.they_wont_know": "Tey vita ikki, at tey eru bannað.", + "domain_block_modal.title": "Banna økisnavni?", + "domain_block_modal.you_will_lose_followers": "Allir tínir fylgjarar á hesum ambætara hvørva.", + "domain_block_modal.you_wont_see_posts": "Tú sært ongar postar ella boð frá brúkarum á hesum ambætara.", + "domain_pill.activitypub_lets_connect": "Tað letur teg fáa samband og samvirka við fólki ikki bara á Mastodon, men á øðrum sosialum appum eisini.", + "domain_pill.activitypub_like_language": "ActivityPub er málið, sum Mastodon tosar við onnur sosial netverk.", + "domain_pill.server": "Ambætari", + "domain_pill.their_handle": "Teirra hald:", + "domain_pill.their_server": "Teirra talgilda heim, har allir teirra postar liva.", + "domain_pill.their_username": "Teirra eyðmerki á teirra ambætara. Tað er møguligt at finna brúkarar við tí sama brúkaranavninum á ymiskum ambætarum.", + "domain_pill.username": "Brúkaranavn", + "domain_pill.whats_in_a_handle": "Hvat er í einum haldi?", + "domain_pill.who_they_are": "Eftirsum at hald siga, hvør onkur er og hvar tey eru, so kanst tú samvirka við fólk á øllum .", + "domain_pill.who_you_are": "Av tí at tíni hald siga, hvør tú er og hvar tú eru, so kunnu onnur samvirka við teg á øllum .", + "domain_pill.your_handle": "Títt hald:", + "domain_pill.your_server": "Títt talgilda heim, har allir tínir postar liva. Dámar tað ikki hendan? Flyt til ein annan ambætara tá tú hevur hug til tess og tak fylgjarar tínar við eisini.", + "domain_pill.your_username": "Títt eyðmerki á hesum ambætaranum. Tað er møguligt at finna brúkarar við tí sama brúkaranavninum á ymiskum ambætarum.", "embed.instructions": "Fell hendan postin inní á tínum vevstaði við at taka avrit av koduni niðanfyri.", "embed.preview": "Soleiðis fer tað at síggja út:", "emoji_button.activity": "Virksemi", @@ -241,6 +266,7 @@ "empty_column.list": "Einki er í hesum listanum enn. Tá limir í hesum listanum posta nýggjar postar, so síggjast teir her.", "empty_column.lists": "Tú hevur ongar goymdar listar enn. Tá tú gert ein lista, so sært tú hann her.", "empty_column.mutes": "Tú hevur enn ikki doyvt nakran brúkara.", + "empty_column.notification_requests": "Alt er klárt! Her er einki. Tá tú fært nýggjar fráboðanir, síggjast tær her sambært tínum stillingum.", "empty_column.notifications": "Tú hevur ongar fráboðanir enn. Tá onnur samskifta við teg, so sær tú fráboðaninar her.", "empty_column.public": "Einki er her! Skriva okkurt alment ella fylg brúkarum frá øðrum ambætarum fyri at fylla tilfar í", "error.unexpected_crash.explanation": "Orsakað av einum feili í okkara kotu ella orsakað av at kagin hjá tær ikki er sambæriligur við skipanina, so bar ikki til at vísa hesa síðuna rætt.", @@ -271,6 +297,8 @@ "filter_modal.select_filter.subtitle": "Brúka ein verandi bólk ella skapa ein nýggjan", "filter_modal.select_filter.title": "Filtrera hendan postin", "filter_modal.title.status": "Filtrera ein post", + "filtered_notifications_banner.pending_requests": "Fráboðanir frá {count, plural, =0 {ongum} one {einum persóni} other {# persónum}}, sum tú kanska kennir", + "filtered_notifications_banner.title": "Sáldaðar fráboðanir", "firehose.all": "Allar", "firehose.local": "Hesin ambætarin", "firehose.remote": "Aðrir ambætarar", @@ -314,7 +342,6 @@ "hashtag.follow": "Fylg frámerki", "hashtag.unfollow": "Gevst at fylgja frámerki", "hashtags.and_other": "…og {count, plural, other {# afturat}}", - "home.column_settings.basic": "Grundleggjandi", "home.column_settings.show_reblogs": "Vís lyft", "home.column_settings.show_replies": "Vís svar", "home.hide_announcements": "Fjal kunngerðir", @@ -400,9 +427,15 @@ "loading_indicator.label": "Innlesur…", "media_gallery.toggle_visible": "{number, plural, one {Fjal mynd} other {Fjal myndir}}", "moved_to_account_banner.text": "Konta tín {disabledAccount} er í løtuni óvirkin, tí tú flutti til {movedToAccount}.", - "mute_modal.duration": "Tíðarbil", - "mute_modal.hide_notifications": "Fjal fráboðanir frá hesum brúkaranum?", - "mute_modal.indefinite": "Óásett tíðarskeið", + "mute_modal.hide_from_notifications": "Fjal boð", + "mute_modal.hide_options": "Fjal valmøguleikar", + "mute_modal.indefinite": "Inntil eg tendri tey aftur", + "mute_modal.show_options": "Vís valmøguleikar", + "mute_modal.they_can_mention_and_follow": "Tey kunnu bæði nevna og fylgja tær, men tú sært ikki tey.", + "mute_modal.they_wont_know": "Tey vita ikki, at tey eru sløkt.", + "mute_modal.title": "Sløkk brúkara?", + "mute_modal.you_wont_see_mentions": "Tú sært ikki postar, sum nevna tey.", + "mute_modal.you_wont_see_posts": "Tey síggja framvegis tínar postar, men tú sært ikki teirra.", "navigation_bar.about": "Um", "navigation_bar.advanced_interface": "Lat upp í framkomnum vevmarkamóti", "navigation_bar.blocks": "Bannaðir brúkarar", @@ -440,15 +473,16 @@ "notification.reblog": "{name} lyfti tín post", "notification.status": "{name} hevur júst postað", "notification.update": "{name} rættaði ein post", + "notification_requests.accept": "Góðtak", + "notification_requests.dismiss": "Avvís", + "notification_requests.notifications_from": "Fráboðanir frá {name}", + "notification_requests.title": "Sáldaðar fráboðanir", "notifications.clear": "Rudda fráboðanir", "notifications.clear_confirmation": "Ert tú vís/ur í, at tú vilt strika allar tínar fráboðanir?", "notifications.column_settings.admin.report": "Nýggjar fráboðanir:", "notifications.column_settings.admin.sign_up": "Nýggjar tilmeldingar:", "notifications.column_settings.alert": "Skriviborðsfráboðanir", "notifications.column_settings.favourite": "Dámdir postar:", - "notifications.column_settings.filter_bar.advanced": "Vís allar bólkar", - "notifications.column_settings.filter_bar.category": "Skjótfilturbjálki", - "notifications.column_settings.filter_bar.show_bar": "Vís filturbjálka", "notifications.column_settings.follow": "Nýggir fylgjarar:", "notifications.column_settings.follow_request": "Nýggjar umbønir um at fylgja:", "notifications.column_settings.mention": "Umrøður:", @@ -474,6 +508,15 @@ "notifications.permission_denied": "Skriviborðsfráboðanir eru ikki tøkar tí at ein kaga-umbøn áður bleiv noktað", "notifications.permission_denied_alert": "Tað ber ikki til at sláa skriviborðsfráboðanir til, tí at kagarættindi áður eru noktaði", "notifications.permission_required": "Skriviborðsfráboðanir eru ikki tøkar, tí at neyðugu rættindini eru ikki latin.", + "notifications.policy.filter_new_accounts.hint": "Stovnaðar {days, plural, one {seinasta dagin} other {seinastu # dagarnar}}", + "notifications.policy.filter_new_accounts_title": "Nýggjar kontur", + "notifications.policy.filter_not_followers_hint": "Íroknað fólk, sum hava fylgt tær styttri enn {days, plural, one {ein dag} other {# dagar}}", + "notifications.policy.filter_not_followers_title": "Fólk, sum ikki fylgja tær", + "notifications.policy.filter_not_following_hint": "Til tú góðkennir tey manuelt", + "notifications.policy.filter_not_following_title": "Fólk, sum tú ikki fylgir", + "notifications.policy.filter_private_mentions_hint": "Sáldaði, uttan so at tað er í svari til tínar egnu nevningar ella um tú fylgir sendaranum", + "notifications.policy.filter_private_mentions_title": "Óbidnar privatar umrøður", + "notifications.policy.title": "Sálda burtur fráboðanir frá…", "notifications_permission_banner.enable": "Ger skriviborðsfráboðanir virknar", "notifications_permission_banner.how_to_control": "Ger skriviborðsfráboðanir virknar fyri at móttaka fráboðanir, tá Mastodon ikki er opið. Tá tær eru gjørdar virknar, kanst tú stýra, hvørji sløg av samvirkni geva skriviborðsfráboðanir. Hetta umvegis {icon} knøttin omanfyri.", "notifications_permission_banner.title": "Miss einki", @@ -650,10 +693,11 @@ "status.direct": "Umrøð @{name} privat", "status.direct_indicator": "Privat umrøða", "status.edit": "Rætta", - "status.edited": "Rættað {date}", + "status.edited": "Seinast broytt {date}", "status.edited_x_times": "Rættað {count, plural, one {{count} ferð} other {{count} ferð}}", "status.embed": "Legg inní", "status.favourite": "Dámdur postur", + "status.favourites": "{count, plural, one {yndispostur} other {yndispostar}}", "status.filter": "Filtrera hendan postin", "status.filtered": "Filtrerað", "status.hide": "Fjal post", @@ -674,6 +718,7 @@ "status.reblog": "Stimbra", "status.reblog_private": "Stimbra við upprunasýni", "status.reblogged_by": "{name} stimbrað", + "status.reblogs": "{count, plural, one {stimbran} other {stimbranir}}", "status.reblogs.empty": "Eingin hevur stimbrað hendan postin enn. Tá onkur stimbrar postin, verður hann sjónligur her.", "status.redraft": "Strika & ger nýggja kladdu", "status.remove_bookmark": "Gloym", diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json index fc969b02f436f8..9549686d7cb961 100644 --- a/app/javascript/mastodon/locales/fr-CA.json +++ b/app/javascript/mastodon/locales/fr-CA.json @@ -160,9 +160,7 @@ "compose_form.spoiler.unmarked": "Ajouter un avertissement de contenu", "compose_form.spoiler_placeholder": "Avertissement de contenu (optionnel)", "confirmation_modal.cancel": "Annuler", - "confirmations.block.block_and_report": "Bloquer et signaler", "confirmations.block.confirm": "Bloquer", - "confirmations.block.message": "Voulez-vous vraiment bloquer {name}?", "confirmations.cancel_follow_request.confirm": "Retirer cette demande", "confirmations.cancel_follow_request.message": "Êtes-vous sûr de vouloir retirer votre demande pour suivre {name}?", "confirmations.delete.confirm": "Supprimer", @@ -171,15 +169,12 @@ "confirmations.delete_list.message": "Voulez-vous vraiment supprimer définitivement cette liste?", "confirmations.discard_edit_media.confirm": "Rejeter", "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": "É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", - "confirmations.mute.explanation": "Cela masquera ses publications et celle le/la mentionnant, mais cela lui permettra toujours de voir vos messages et de vous suivre.", - "confirmations.mute.message": "Voulez-vous vraiment masquer {name}?", "confirmations.redraft.confirm": "Supprimer et réécrire", "confirmations.redraft.message": "Êtes-vous sûr·e de vouloir effacer cette publication pour la réécrire? Ses ses mises en favori et boosts seront perdus et ses réponses seront orphelines.", "confirmations.reply.confirm": "Répondre", @@ -271,6 +266,8 @@ "filter_modal.select_filter.subtitle": "Utilisez une catégorie existante ou en créer une nouvelle", "filter_modal.select_filter.title": "Filtrer cette publication", "filter_modal.title.status": "Filtrer une publication", + "filtered_notifications_banner.pending_requests": "Notifications {count, plural, =0 {de personne} one {d’une personne} other {de # personnes}} que vous pouvez connaitre", + "filtered_notifications_banner.title": "Notifications filtrées", "firehose.all": "Tout", "firehose.local": "Ce serveur", "firehose.remote": "Autres serveurs", @@ -314,7 +311,6 @@ "hashtag.follow": "Suivre ce hashtag", "hashtag.unfollow": "Ne plus suivre ce hashtag", "hashtags.and_other": "…et {count, plural, other {# de plus}}", - "home.column_settings.basic": "Basique", "home.column_settings.show_reblogs": "Afficher boosts", "home.column_settings.show_replies": "Afficher réponses", "home.hide_announcements": "Masquer les annonces", @@ -400,9 +396,6 @@ "loading_indicator.label": "Chargement…", "media_gallery.toggle_visible": "{number, plural, one {Cacher l’image} other {Cacher les images}}", "moved_to_account_banner.text": "Votre compte {disabledAccount} est actuellement désactivé parce que vous avez déménagé sur {movedToAccount}.", - "mute_modal.duration": "Durée", - "mute_modal.hide_notifications": "Masquer les notifications de ce compte?", - "mute_modal.indefinite": "Indéfinie", "navigation_bar.about": "À propos", "navigation_bar.advanced_interface": "Ouvrir dans l’interface avancée", "navigation_bar.blocks": "Comptes bloqués", @@ -446,9 +439,6 @@ "notifications.column_settings.admin.sign_up": "Nouvelles inscriptions:", "notifications.column_settings.alert": "Notifications navigateur", "notifications.column_settings.favourite": "Favoris:", - "notifications.column_settings.filter_bar.advanced": "Afficher toutes les catégories", - "notifications.column_settings.filter_bar.category": "Barre de filtrage rapide", - "notifications.column_settings.filter_bar.show_bar": "Afficher la barre de filtre", "notifications.column_settings.follow": "Nouveaux⋅elles abonné⋅e⋅s:", "notifications.column_settings.follow_request": "Nouvelles demandes d’abonnement:", "notifications.column_settings.mention": "Mentions:", @@ -650,7 +640,6 @@ "status.direct": "Mention privée @{name}", "status.direct_indicator": "Mention privée", "status.edit": "Modifier", - "status.edited": "Modifiée le {date}", "status.edited_x_times": "Modifiée {count, plural, one {{count} fois} other {{count} fois}}", "status.embed": "Intégrer", "status.favourite": "Ajouter aux favoris", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 8396679d06265d..29b4d56a4f7f8a 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -160,9 +160,7 @@ "compose_form.spoiler.unmarked": "Ajouter un avertissement de contenu", "compose_form.spoiler_placeholder": "Avertissement de contenu (optionnel)", "confirmation_modal.cancel": "Annuler", - "confirmations.block.block_and_report": "Bloquer et signaler", "confirmations.block.confirm": "Bloquer", - "confirmations.block.message": "Voulez-vous vraiment bloquer {name} ?", "confirmations.cancel_follow_request.confirm": "Retirer la demande", "confirmations.cancel_follow_request.message": "Êtes-vous sûr de vouloir retirer votre demande pour suivre {name} ?", "confirmations.delete.confirm": "Supprimer", @@ -171,15 +169,12 @@ "confirmations.delete_list.message": "Voulez-vous vraiment supprimer définitivement cette liste ?", "confirmations.discard_edit_media.confirm": "Rejeter", "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": "Modifier", "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", - "confirmations.mute.explanation": "Cela masquera ses messages et les messages le ou la mentionnant, mais cela lui permettra quand même de voir vos messages et de vous suivre.", - "confirmations.mute.message": "Voulez-vous vraiment masquer {name} ?", "confirmations.redraft.confirm": "Supprimer et ré-écrire", "confirmations.redraft.message": "Êtes-vous sûr·e de vouloir effacer cette publication pour la réécrire ? Ses partages ainsi que ses mises en favori seront perdus et ses réponses seront orphelines.", "confirmations.reply.confirm": "Répondre", @@ -271,6 +266,8 @@ "filter_modal.select_filter.subtitle": "Utilisez une catégorie existante ou en créer une nouvelle", "filter_modal.select_filter.title": "Filtrer ce message", "filter_modal.title.status": "Filtrer un message", + "filtered_notifications_banner.pending_requests": "Notifications {count, plural, =0 {de personne} one {d’une personne} other {de # personnes}} que vous pouvez connaitre", + "filtered_notifications_banner.title": "Notifications filtrées", "firehose.all": "Tout", "firehose.local": "Ce serveur", "firehose.remote": "Autres serveurs", @@ -314,7 +311,6 @@ "hashtag.follow": "Suivre le hashtag", "hashtag.unfollow": "Ne plus suivre le hashtag", "hashtags.and_other": "…et {count, plural, other {# de plus}}", - "home.column_settings.basic": "Basique", "home.column_settings.show_reblogs": "Afficher les partages", "home.column_settings.show_replies": "Afficher les réponses", "home.hide_announcements": "Masquer les annonces", @@ -400,9 +396,6 @@ "loading_indicator.label": "Chargement…", "media_gallery.toggle_visible": "{number, plural, one {Cacher l’image} other {Cacher les images}}", "moved_to_account_banner.text": "Votre compte {disabledAccount} est actuellement désactivé parce que vous l'avez déplacé à {movedToAccount}.", - "mute_modal.duration": "Durée", - "mute_modal.hide_notifications": "Masquer les notifications de cette personne ?", - "mute_modal.indefinite": "Indéfinie", "navigation_bar.about": "À propos", "navigation_bar.advanced_interface": "Ouvrir dans l’interface avancée", "navigation_bar.blocks": "Comptes bloqués", @@ -446,9 +439,6 @@ "notifications.column_settings.admin.sign_up": "Nouvelles inscriptions :", "notifications.column_settings.alert": "Notifications du navigateur", "notifications.column_settings.favourite": "Favoris :", - "notifications.column_settings.filter_bar.advanced": "Afficher toutes les catégories", - "notifications.column_settings.filter_bar.category": "Barre de filtrage rapide", - "notifications.column_settings.filter_bar.show_bar": "Afficher la barre de filtre", "notifications.column_settings.follow": "Nouveaux·elles abonné·e·s :", "notifications.column_settings.follow_request": "Nouvelles demandes d’abonnement :", "notifications.column_settings.mention": "Mentions :", @@ -650,7 +640,6 @@ "status.direct": "Mention privée @{name}", "status.direct_indicator": "Mention privée", "status.edit": "Modifier", - "status.edited": "Modifié le {date}", "status.edited_x_times": "Modifié {count, plural, one {{count} fois} other {{count} fois}}", "status.embed": "Intégrer", "status.favourite": "Ajouter aux favoris", diff --git a/app/javascript/mastodon/locales/fy.json b/app/javascript/mastodon/locales/fy.json index bc4fecb93d476c..97119e30c0b8fb 100644 --- a/app/javascript/mastodon/locales/fy.json +++ b/app/javascript/mastodon/locales/fy.json @@ -160,9 +160,7 @@ "compose_form.spoiler.unmarked": "Ynhâldswarskôging tafoegje", "compose_form.spoiler_placeholder": "Ynhâldswarskôging (opsjoneel)", "confirmation_modal.cancel": "Annulearje", - "confirmations.block.block_and_report": "Blokkearje en rapportearje", "confirmations.block.confirm": "Blokkearje", - "confirmations.block.message": "Binne jo wis dat jo {name} blokkearje wolle?", "confirmations.cancel_follow_request.confirm": "Fersyk annulearje", "confirmations.cancel_follow_request.message": "Binne jo wis dat jo jo fersyk om {name} te folgjen annulearje wolle?", "confirmations.delete.confirm": "Fuortsmite", @@ -171,15 +169,12 @@ "confirmations.delete_list.message": "Binne jo wis dat jo dizze list foar permanint fuortsmite wolle?", "confirmations.discard_edit_media.confirm": "Fuortsmite", "confirmations.discard_edit_media.message": "Jo hawwe net-bewarre wizigingen yn de mediabeskriuwing of foarfertoaning, wolle jo dizze dochs fuortsmite?", - "confirmations.domain_block.confirm": "Alles fan dit domein blokkearje", "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": "Binne jo wis dat jo ôfmelde wolle?", "confirmations.mute.confirm": "Negearje", - "confirmations.mute.explanation": "Dit sil berjochten fan harren en berjochten dêr’t se yn fermeld wurde ûnsichtber meitsje, mar se sille jo berjochten noch hieltyd sjen kinne en jo folgje kinne.", - "confirmations.mute.message": "Binne jo wis dat jo {name} negearje wolle?", "confirmations.redraft.confirm": "Fuortsmite en opnij opstelle", "confirmations.redraft.message": "Binne jo wis dat jo dit berjocht fuortsmite en opnij opstelle wolle? Favoriten en boosts geane dan ferlern en reaksjes op it oarspronklike berjocht reitsje jo kwyt.", "confirmations.reply.confirm": "Reagearje", @@ -314,7 +309,6 @@ "hashtag.follow": "Hashtag folgje", "hashtag.unfollow": "Hashtag ûntfolgje", "hashtags.and_other": "…en {count, plural, one {}other {# mear}}", - "home.column_settings.basic": "Algemien", "home.column_settings.show_reblogs": "Boosts toane", "home.column_settings.show_replies": "Reaksjes toane", "home.hide_announcements": "Meidielingen ferstopje", @@ -400,9 +394,6 @@ "loading_indicator.label": "Lade…", "media_gallery.toggle_visible": "{number, plural, one {ôfbylding ferstopje} other {ôfbyldingen ferstopje}}", "moved_to_account_banner.text": "Omdat jo nei {movedToAccount} ferhuze binne is jo account {disabledAccount} op dit stuit útskeakele.", - "mute_modal.duration": "Doer", - "mute_modal.hide_notifications": "Meldingen fan dizze brûker ferstopje?", - "mute_modal.indefinite": "Foar ûnbepaalde tiid", "navigation_bar.about": "Oer", "navigation_bar.advanced_interface": "Yn avansearre webomjouwing iepenje", "navigation_bar.blocks": "Blokkearre brûkers", @@ -446,9 +437,6 @@ "notifications.column_settings.admin.sign_up": "Nije registraasjes:", "notifications.column_settings.alert": "Desktopmeldingen", "notifications.column_settings.favourite": "Favoriten:", - "notifications.column_settings.filter_bar.advanced": "Alle kategoryen toane", - "notifications.column_settings.filter_bar.category": "Flugge filterbalke", - "notifications.column_settings.filter_bar.show_bar": "Filterbalke toane", "notifications.column_settings.follow": "Nije folgers:", "notifications.column_settings.follow_request": "Nij folchfersyk:", "notifications.column_settings.mention": "Fermeldingen:", @@ -650,7 +638,6 @@ "status.direct": "Privee fermelde @{name}", "status.direct_indicator": "Priveefermelding", "status.edit": "Bewurkje", - "status.edited": "Bewurke op {date}", "status.edited_x_times": "{count, plural, one {{count} kear} other {{count} kearen}} bewurke", "status.embed": "Ynslute", "status.favourite": "Favoryt", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index a708088fbb3608..c71effe06df49d 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -133,9 +133,7 @@ "compose_form.spoiler.marked": "Bain rabhadh ábhair", "compose_form.spoiler.unmarked": "Cuir rabhadh ábhair", "confirmation_modal.cancel": "Cealaigh", - "confirmations.block.block_and_report": "Bac ⁊ Tuairiscigh", "confirmations.block.confirm": "Bac", - "confirmations.block.message": "An bhfuil tú cinnte gur mhaith leat {name} a bhac?", "confirmations.cancel_follow_request.confirm": "Éirigh as iarratas", "confirmations.cancel_follow_request.message": "An bhfuil tú cinnte gur mhaith leat éirigh as an iarratas leanta {name}?", "confirmations.delete.confirm": "Scrios", @@ -144,13 +142,10 @@ "confirmations.delete_list.message": "An bhfuil tú cinnte gur mhaith leat an liosta seo a scriosadh go buan?", "confirmations.discard_edit_media.confirm": "Faigh réidh de", "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.logout.confirm": "Logáil amach", "confirmations.logout.message": "An bhfuil tú cinnte gur mhaith leat logáil amach?", "confirmations.mute.confirm": "Balbhaigh", - "confirmations.mute.explanation": "Cuiridh seo teachtaireachtaí uathu agus fúthu i bhfolach, ach beidh siad in ann fós do theachtaireachtaí a fheiceáil agus tú a leanúint.", - "confirmations.mute.message": "An bhfuil tú cinnte gur mhaith leat {name} a bhalbhú?", "confirmations.redraft.confirm": "Scrios ⁊ athdhréachtaigh", "confirmations.reply.confirm": "Freagair", "confirmations.reply.message": "Scriosfaidh freagra láithreach an teachtaireacht atá a chumadh anois agat. An bhfuil tú cinnte gur mhaith leat leanúint leat?", @@ -249,7 +244,6 @@ "hashtag.column_settings.tag_toggle": "Include additional tags in this column", "hashtag.follow": "Lean haischlib", "hashtag.unfollow": "Ná lean haischlib", - "home.column_settings.basic": "Bunúsach", "home.column_settings.show_reblogs": "Taispeáin moltaí", "home.column_settings.show_replies": "Taispeán freagraí", "home.hide_announcements": "Cuir fógraí i bhfolach", @@ -312,9 +306,6 @@ "lists.replies_policy.title": "Taispeáin freagraí:", "lists.search": "Cuardaigh i measc daoine atá á leanúint agat", "lists.subheading": "Do liostaí", - "mute_modal.duration": "Tréimhse", - "mute_modal.hide_notifications": "Cuir póstalacha ón t-úsáideoir seo i bhfolach?", - "mute_modal.indefinite": "Gan téarma", "navigation_bar.about": "Maidir le", "navigation_bar.blocks": "Cuntais bhactha", "navigation_bar.bookmarks": "Leabharmharcanna", @@ -349,9 +340,6 @@ "notifications.clear": "Glan fógraí", "notifications.column_settings.admin.report": "Tuairiscí nua:", "notifications.column_settings.alert": "Fógraí deisce", - "notifications.column_settings.filter_bar.advanced": "Taispeáin na catagóirí go léir", - "notifications.column_settings.filter_bar.category": "Barra scagaire tapa", - "notifications.column_settings.filter_bar.show_bar": "Taispeáin barra scagaire", "notifications.column_settings.follow": "Leantóirí nua:", "notifications.column_settings.follow_request": "Iarratais leanúnaí nua:", "notifications.column_settings.mention": "Tráchtanna:", @@ -462,7 +450,6 @@ "status.copy": "Copy link to status", "status.delete": "Scrios", "status.edit": "Cuir in eagar", - "status.edited": "Curtha in eagar in {date}", "status.edited_x_times": "Curtha in eagar {count, plural, one {{count} uair amháin} two {{count} uair} few {{count} uair} many {{count} uair} other {{count} uair}}", "status.embed": "Leabaigh", "status.filter": "Déan scagadh ar an bpostáil seo", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index f4d12d6337c034..ad9a58d83ddf27 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -89,6 +89,14 @@ "announcement.announcement": "Brath-fios", "attachments_list.unprocessed": "(gun phròiseasadh)", "audio.hide": "Falaich an fhuaim", + "block_modal.remote_users_caveat": "Iarraidh sinn air an fhrithealaiche {domain} gun gèill iad ri do cho-dhùnadh. Gidheadh, chan eil barantas gun gèill iad on a làimhsicheas cuid a fhrithealaichean bacaidhean air dòigh eadar-dhealaichte. Dh’fhaoidte gum faic daoine gun chlàradh a-steach na postaichean poblach agad fhathast.", + "block_modal.show_less": "Seall nas lugha dheth", + "block_modal.show_more": "Seall barrachd dheth", + "block_modal.they_cant_mention": "Chan urrainn dhaibh iomradh a thoirt ort no do leantainn.", + "block_modal.they_cant_see_posts": "Chan fhaic iad na postaichean agad ’s chan fhaic thu na postaichean aca-san.", + "block_modal.they_will_know": "Chì iad gun deach am bacadh.", + "block_modal.title": "A bheil thu airson an cleachdaiche a bhacadh?", + "block_modal.you_wont_see_mentions": "Chan fhaic thu na postaichean a bheir iomradh orra.", "boost_modal.combo": "Brùth air {combo} nam b’ fheàrr leat leum a ghearradh thar seo an ath-thuras", "bundle_column_error.copy_stacktrace": "Dèan lethbhreac de aithris na mearachd", "bundle_column_error.error.body": "Cha b’ urrainn dhuinn an duilleag a dh’iarr thu a reandaradh. Dh’fhaoidte gu bheil buga sa chòd againn no duilgheadas co-chòrdalachd leis a’ bhrabhsair.", @@ -160,9 +168,7 @@ "compose_form.spoiler.unmarked": "Cuir rabhadh susbainte ris", "compose_form.spoiler_placeholder": "Rabhadh susbainte (roghainneil)", "confirmation_modal.cancel": "Sguir dheth", - "confirmations.block.block_and_report": "Bac ⁊ dèan gearan", "confirmations.block.confirm": "Bac", - "confirmations.block.message": "A bheil thu cinnteach gu bheil thu airson {name} a bhacadh?", "confirmations.cancel_follow_request.confirm": "Cuir d’ iarrtas dhan dàrna taobh", "confirmations.cancel_follow_request.message": "A bheil thu cinnteach gu bheil thu airson d’ iarrtas airson {name} a leantainn a chur dhan dàrna taobh?", "confirmations.delete.confirm": "Sguab às", @@ -171,15 +177,13 @@ "confirmations.delete_list.message": "A bheil thu cinnteach gu bheil thu airson an liosta seo a sguabadh às gu buan?", "confirmations.discard_edit_media.confirm": "Tilg air falbh", "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.confirm": "Bac am frithealaiche", "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": "Deasaich", "confirmations.edit.message": "Ma nì thu deasachadh an-dràsta, thèid seo a sgrìobhadh thairis air an teachdaireachd a tha thu a’ sgrìobhadh an-dràsta. A bheil thu cinnteach gu bheil thu airson leantainn air adhart?", "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", - "confirmations.mute.explanation": "Cuiridh seo na postaichean uapa ’s na postaichean a bheir iomradh orra am falach ach chì iad-san na postaichean agad fhathast is faodaidh iad ’gad leantainn.", - "confirmations.mute.message": "A bheil thu cinnteach gu bheil thu airson {name} a mhùchadh?", "confirmations.redraft.confirm": "Sguab às ⁊ dèan dreachd ùr", "confirmations.redraft.message": "A bheil thu cinnteach gu bheil thu airson am post seo a sguabadh às agus dreachd ùr a thòiseachadh? Caillidh tu gach annsachd is brosnachadh air agus thèid freagairtean dhan phost thùsail ’nan dìlleachdanan.", "confirmations.reply.confirm": "Freagair", @@ -205,6 +209,27 @@ "dismissable_banner.explore_statuses": "Tha fèill air na postaichean seo a’ fàs thar an lìona shòisealta an-diugh. Gheibh postaichean nas ùire le barrachd brosnaichean is annsachdan rangachadh nas àirde.", "dismissable_banner.explore_tags": "Tha fèill air na tagaichean hais seo a’ fàs air an fhrithealaiche seo is frithealaichean eile dhen lìonra sgaoilte an-diugh. Gheibh tagaichean hais a tha ’gan cleachdadh le daoine eadar-dhealaichte rangachadh nas àirde.", "dismissable_banner.public_timeline": "Seo na postaichean poblach as ùire o dhaoine air an lìonra sòisealta tha ’gan leantainn le daoine air {domain}.", + "domain_block_modal.block": "Bac am frithealaiche", + "domain_block_modal.block_account_instead": "Bac @{name} ’na àite", + "domain_block_modal.they_can_interact_with_old_posts": "’S urrainn do dhaoine a th’ air an fhrithealaiche seo eadar-ghabhail leis na seann-phostaichean agad.", + "domain_block_modal.they_cant_follow": "Chan urrainn do neach sam bith a th’ air an fhrithealaiche seo do leantainn.", + "domain_block_modal.they_wont_know": "Cha bhi fios aca gun deach am bacadh.", + "domain_block_modal.title": "A bheil thu airson an àrainn a bhacadh?", + "domain_block_modal.you_will_lose_followers": "Thèid a h-uile neach-leantainn agad a th’ air an fhrithealaiche seo a thoirt air falbh.", + "domain_block_modal.you_wont_see_posts": "Chan fhaic thu postaichean no brathan o chleachdaichean a th’ air an fhrithealaiche seo.", + "domain_pill.activitypub_lets_connect": "Leigidh e leat ceangal a dhèanamh ri daoine chan ann air Mastodon a-mhàin ach air feadh aplacaidean sòisealta eile cuideachd agus conaltradh leotha.", + "domain_pill.activitypub_like_language": "Tha ActivityPub coltach ri cànan a bhruidhneas Mastodon ri lìonraidhean sòisealta eile.", + "domain_pill.server": "Frithealaiche", + "domain_pill.their_handle": "An t-aithnichear aca:", + "domain_pill.their_server": "An dachaigh dhigiteach far a bheil na postaichean uile aca a’ fuireach.", + "domain_pill.their_username": "Seo an t-aithnichear àraidh aca air an fhrithealaiche aca. Dh’fhaoidte gu bheil luchd-cleachdaidh air a bheil an t-aon ainm air frithealaichean eile.", + "domain_pill.username": "Ainm-cleachdaiche", + "domain_pill.whats_in_a_handle": "Dè th’ ann an aithnichear?", + "domain_pill.who_they_are": "On a dh’innseas aithnichearan cò cuideigin agus càit a bheil iad, ’s urrainn dhut conaltradh le daoine thar an lìonraidh shòisealta de .", + "domain_pill.who_you_are": "On a dh’innseas d’ aithnichear cò thusa agus càit a bheil thu, ’s urrainn do dhaoine conaltradh leat thar an lìonraidh shòisealta de .", + "domain_pill.your_handle": "An t-aithnichear agad:", + "domain_pill.your_server": "Do dhachaigh dhigiteach far a bheil na postaichean uile agad a’ fuireach. Nach toigh leat an tè seo? Dèan imrich gu frithealaiche eile uair sam bith is thoir an luchd-leantainn agad leat cuideachd.", + "domain_pill.your_username": "Seo an t-aithnichear àraidh agad air an fhrithealaiche seo. Dh’fhaoidte gu bheil luchd-cleachdaidh air a bheil an t-aon ainm air frithealaichean eile.", "embed.instructions": "Leabaich am post seo san làrach-lìn agad is tu a’ dèanamh lethbhreac dhen chòd gu h-ìosal.", "embed.preview": "Seo an coltas a bhios air:", "emoji_button.activity": "Gnìomhachd", @@ -241,6 +266,7 @@ "empty_column.list": "Chan eil dad air an liosta seo fhathast. Nuair a phostaicheas buill a tha air an liosta seo postaichean ùra, nochdaidh iad an-seo.", "empty_column.lists": "Chan eil liosta agad fhathast. Nuair chruthaicheas tu tè, nochdaidh i an-seo.", "empty_column.mutes": "Cha do mhùch thu cleachdaiche sam bith fhathast.", + "empty_column.notification_requests": "Glan! Chan eil dad an-seo. Nuair a gheibh thu brathan ùra, nochdaidh iad an-seo a-rèir nan roghainnean agad.", "empty_column.notifications": "Cha d’ fhuair thu brath sam bith fhathast. Nuair a nì càch conaltradh leat, chì thu an-seo e.", "empty_column.public": "Chan eil dad an-seo! Sgrìobh rudeigin gu poblach no lean càch o fhrithealaichean eile a làimh airson seo a lìonadh", "error.unexpected_crash.explanation": "Air sàilleibh buga sa chòd againn no duilgheadas co-chòrdalachd leis a’ bhrabhsair, chan urrainn dhuinn an duilleag seo a shealltainn mar bu chòir.", @@ -271,6 +297,8 @@ "filter_modal.select_filter.subtitle": "Cleachd roinn-seòrsa a tha ann no cruthaich tè ùr", "filter_modal.select_filter.title": "Criathraich am post seo", "filter_modal.title.status": "Criathraich post", + "filtered_notifications_banner.pending_requests": "{count, plural, =0 {Chan eil brath ann o dhaoine} one {Tha brathan ann o # neach} two {Tha brathan ann o # neach} few {Tha brathan ann o # daoine} other {Tha brathan ann o # duine}} air a bheil thu eòlach ’s dòcha", + "filtered_notifications_banner.title": "Brathan criathraichte", "firehose.all": "Na h-uile", "firehose.local": "Am frithealaiche seo", "firehose.remote": "Frithealaichean eile", @@ -287,7 +315,7 @@ "follow_suggestions.personalized_suggestion": "Moladh pearsanaichte", "follow_suggestions.popular_suggestion": "Moladh air a bheil fèill mhòr", "follow_suggestions.view_all": "Seall na h-uile", - "follow_suggestions.who_to_follow": "Cò a leanas tu", + "follow_suggestions.who_to_follow": "Molaidhean leantainn", "followed_tags": "Tagaichean hais ’gan leantainn", "footer.about": "Mu dhèidhinn", "footer.directory": "Eòlaire nam pròifil", @@ -314,7 +342,6 @@ "hashtag.follow": "Lean an taga hais", "hashtag.unfollow": "Na lean an taga hais tuilleadh", "hashtags.and_other": "…agus {count, plural, one {# eile} two {# eile} few {# eile} other {# eile}}", - "home.column_settings.basic": "Bunasach", "home.column_settings.show_reblogs": "Seall na brosnachaidhean", "home.column_settings.show_replies": "Seall na freagairtean", "home.hide_announcements": "Falaich na brathan-fios", @@ -400,9 +427,15 @@ "loading_indicator.label": "’Ga luchdadh…", "media_gallery.toggle_visible": "{number, plural, 1 {Falaich an dealbh} one {Falaich na dealbhan} two {Falaich na dealbhan} few {Falaich na dealbhan} other {Falaich na dealbhan}}", "moved_to_account_banner.text": "Tha an cunntas {disabledAccount} agad à comas on a rinn thu imrich gu {movedToAccount}.", - "mute_modal.duration": "Faide", - "mute_modal.hide_notifications": "A bheil thu airson na brathan fhalach on chleachdaiche seo?", - "mute_modal.indefinite": "Gun chrìoch", + "mute_modal.hide_from_notifications": "Falaich o na brathan", + "mute_modal.hide_options": "Roghainnean falaich", + "mute_modal.indefinite": "Gus an dì-mhùch mi iad", + "mute_modal.show_options": "Seall na roghainnean", + "mute_modal.they_can_mention_and_follow": "’S urrainn dhaibh iomradh a thoirt ort agus do leantainn ach chan fhaic thu iad-san.", + "mute_modal.they_wont_know": "Cha bhi fios aca gun deach am mùchadh.", + "mute_modal.title": "A bheil thu airson an cleachdaiche a mhùchadh?", + "mute_modal.you_wont_see_mentions": "Chan fhaic thu na postaichean a bheir iomradh orra.", + "mute_modal.you_wont_see_posts": "Chì iad na postaichean agad fhathast ach chan fhaic thu na postaichean aca-san.", "navigation_bar.about": "Mu dhèidhinn", "navigation_bar.advanced_interface": "Fosgail san eadar-aghaidh-lìn adhartach", "navigation_bar.blocks": "Cleachdaichean bacte", @@ -440,15 +473,16 @@ "notification.reblog": "Bhrosnaich {name} am post agad", "notification.status": "Phostaich {name} rud", "notification.update": "Dheasaich {name} post", + "notification_requests.accept": "Gabh ris", + "notification_requests.dismiss": "Leig seachad", + "notification_requests.notifications_from": "Brathan o {name}", + "notification_requests.title": "Brathan criathraichte", "notifications.clear": "Falamhaich na brathan", "notifications.clear_confirmation": "A bheil thu cinnteach gu bheil thu airson na brathan uile agad fhalamhachadh gu buan?", "notifications.column_settings.admin.report": "Gearanan ùra:", "notifications.column_settings.admin.sign_up": "Clàraidhean ùra:", "notifications.column_settings.alert": "Brathan deasga", "notifications.column_settings.favourite": "Annsachdan:", - "notifications.column_settings.filter_bar.advanced": "Seall a h-uile roinn-seòrsa", - "notifications.column_settings.filter_bar.category": "Bàr-criathraidh luath", - "notifications.column_settings.filter_bar.show_bar": "Seall am bàr-criathraidh", "notifications.column_settings.follow": "Luchd-leantainn ùr:", "notifications.column_settings.follow_request": "Iarrtasan leantainn ùra:", "notifications.column_settings.mention": "Iomraidhean:", @@ -474,6 +508,15 @@ "notifications.permission_denied": "Chan eil brathan deasga ri fhaighinn on a chaidh iarrtas ceadan a’ bhrabhsair a dhiùltadh cheana", "notifications.permission_denied_alert": "Cha ghabh brathan deasga a chur an comas on a chaidh iarrtas ceadan a’ bhrabhsair a dhiùltadh cheana", "notifications.permission_required": "Chan eil brathan deasga ri fhaighinn on nach deach an cead riatanach a thoirt seachad.", + "notifications.policy.filter_new_accounts.hint": "Chaidh a chruthachadh o chionn {count, plural, one {# latha} two {# latha} few {# làithean} other {# latha}}", + "notifications.policy.filter_new_accounts_title": "Cunntasan ùra", + "notifications.policy.filter_not_followers_hint": "A’ gabhail a-staigh an fheadhainn a lean ort nas lugha na {count, plural, one {# latha} two {# latha} few {# làithean} other {# latha}} seo chaidh", + "notifications.policy.filter_not_followers_title": "Daoine nach eil gad leantainn", + "notifications.policy.filter_not_following_hint": "Gus an aontaich thu riutha a làimh", + "notifications.policy.filter_not_following_title": "Daoine nach eil thu a’ leantainn", + "notifications.policy.filter_private_mentions_hint": "Criathraichte ach ma tha e a’ freagairt do dh’iomradh agad fhèin no ma tha thu a’ leantainn an seòladair", + "notifications.policy.filter_private_mentions_title": "Iomraidhean prìobhaideach o choigrich", + "notifications.policy.title": "Falamhaich na brathan o…", "notifications_permission_banner.enable": "Cuir brathan deasga an comas", "notifications_permission_banner.how_to_control": "Airson brathan fhaighinn nuair nach eil Mastodon fosgailte, cuir na brathan deasga an comas. Tha an smachd agad fhèin air dè na seòrsaichean de chonaltradh a ghineas brathan deasga leis a’ phutan {icon} gu h-àrd nuair a bhios iad air an cur an comas.", "notifications_permission_banner.title": "Na caill dad gu bràth tuilleadh", @@ -650,10 +693,11 @@ "status.direct": "Thoir iomradh air @{name} gu prìobhaideach", "status.direct_indicator": "Iomradh prìobhaideach", "status.edit": "Deasaich", - "status.edited": "Air a dheasachadh {date}", + "status.edited": "An deasachadh mu dheireadh {date}", "status.edited_x_times": "Chaidh a dheasachadh {count, plural, one {{counter} turas} two {{counter} thuras} few {{counter} tursan} other {{counter} turas}}", "status.embed": "Leabaich", "status.favourite": "Cuir ris na h-annsachdan", + "status.favourites": "{count, plural, one {annsachd} two {annsachd} few {annsachdan} other {annsachd}", "status.filter": "Criathraich am post seo", "status.filtered": "Criathraichte", "status.hide": "Falaich am post", @@ -674,6 +718,7 @@ "status.reblog": "Brosnaich", "status.reblog_private": "Brosnaich leis an t-so-fhaicsinneachd tùsail", "status.reblogged_by": "’Ga bhrosnachadh le {name}", + "status.reblogs": "{count, plural, one {bhrosnachadh} two {bhrosnachadh} few {brosnachaidhean} other {brosnachadh}", "status.reblogs.empty": "Chan deach am post seo a bhrosnachadh le duine sam bith fhathast. Nuair a bhrosnaicheas cuideigin e, nochdaidh iad an-seo.", "status.redraft": "Sguab às ⁊ dèan dreachd ùr", "status.remove_bookmark": "Thoir an comharra-lìn air falbh", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 91b6870be7f13b..d5726062a3ddb1 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -160,9 +160,7 @@ "compose_form.spoiler.unmarked": "Engadir aviso sobre o contido", "compose_form.spoiler_placeholder": "Aviso sobre o contido (optativo)", "confirmation_modal.cancel": "Cancelar", - "confirmations.block.block_and_report": "Bloquear e denunciar", "confirmations.block.confirm": "Bloquear", - "confirmations.block.message": "Tes a certeza de querer bloquear a {name}?", "confirmations.cancel_follow_request.confirm": "Retirar solicitude", "confirmations.cancel_follow_request.message": "Tes a certeza de querer retirar a solicitude para seguir a {name}?", "confirmations.delete.confirm": "Eliminar", @@ -171,15 +169,12 @@ "confirmations.delete_list.message": "Tes a certeza de querer eliminar de xeito permanente esta listaxe?", "confirmations.discard_edit_media.confirm": "Descartar", "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", - "confirmations.mute.explanation": "Isto agochará as súas publicacións ou as que a mencionen, mais poderá ler as túas publicacións e ser seguidora túa.", - "confirmations.mute.message": "Tes a certeza de querer acalar a {name}?", "confirmations.redraft.confirm": "Eliminar e reescribir", "confirmations.redraft.message": "Tes a certeza de querer eliminar esta publicación e reescribila? Perderás as promocións e favorecementos, e as respostas á publicación orixinal ficarán orfas.", "confirmations.reply.confirm": "Responder", @@ -241,6 +236,7 @@ "empty_column.list": "Aínda non hai nada nesta listaxe. Cando as usuarias incluídas na listaxe publiquen mensaxes, amosaranse aquí.", "empty_column.lists": "Aínda non tes listaxes. Cando crees unha, amosarase aquí.", "empty_column.mutes": "Aínda non silenciaches a ningúnha usuaria.", + "empty_column.notification_requests": "Todo ben! Nada por aquí. Cando recibas novas notificación aparecerán aquí seguindo o criterio dos teus axustes.", "empty_column.notifications": "Aínda non tes notificacións. Aparecerán cando outras persoas interactúen contigo.", "empty_column.public": "Nada por aquí! Escribe algo de xeito público, ou segue de xeito manual usuarias doutros servidores para ir enchéndoo", "error.unexpected_crash.explanation": "Debido a un erro no noso código ou a unha compatilidade co teu navegador, esta páxina non pode ser amosada correctamente.", @@ -271,6 +267,8 @@ "filter_modal.select_filter.subtitle": "Usar unha categoría existente ou crear unha nova", "filter_modal.select_filter.title": "Filtrar esta publicación", "filter_modal.title.status": "Filtrar unha publicación", + "filtered_notifications_banner.pending_requests": "Notificacións de {count, plural, =0 {ninguén} one {unha persoa} other {# persoas}} que poderías coñecer", + "filtered_notifications_banner.title": "Notificacións filtradas", "firehose.all": "Todo", "firehose.local": "Este servidor", "firehose.remote": "Outros servidores", @@ -314,7 +312,6 @@ "hashtag.follow": "Seguir cancelo", "hashtag.unfollow": "Deixar de seguir cancelo", "hashtags.and_other": "…e {count, plural, one {}other {# máis}}", - "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Amosar compartidos", "home.column_settings.show_replies": "Amosar respostas", "home.hide_announcements": "Agochar anuncios", @@ -400,9 +397,6 @@ "loading_indicator.label": "Estase a cargar…", "media_gallery.toggle_visible": "Agochar {number, plural, one {imaxe} other {imaxes}}", "moved_to_account_banner.text": "A túa conta {disabledAccount} está actualmente desactivada porque movéchela a {movedToAccount}.", - "mute_modal.duration": "Duración", - "mute_modal.hide_notifications": "Agochar notificacións desta persoa?", - "mute_modal.indefinite": "Indefinida", "navigation_bar.about": "Acerca de", "navigation_bar.advanced_interface": "Abrir coa interface web avanzada", "navigation_bar.blocks": "Usuarias bloqueadas", @@ -440,15 +434,16 @@ "notification.reblog": "{name} compartiu a túa publicación", "notification.status": "{name} publicou", "notification.update": "{name} editou unha publicación", + "notification_requests.accept": "Aceptar", + "notification_requests.dismiss": "Desbotar", + "notification_requests.notifications_from": "Notificacións de {name}", + "notification_requests.title": "Notificacións filtradas", "notifications.clear": "Limpar notificacións", "notifications.clear_confirmation": "Tes a certeza de querer limpar de xeito permanente todas as túas notificacións?", "notifications.column_settings.admin.report": "Novas denuncias:", "notifications.column_settings.admin.sign_up": "Novas usuarias:", "notifications.column_settings.alert": "Notificacións de escritorio", "notifications.column_settings.favourite": "Favoritas:", - "notifications.column_settings.filter_bar.advanced": "Amosar todas as categorías", - "notifications.column_settings.filter_bar.category": "Barra de filtrado rápido", - "notifications.column_settings.filter_bar.show_bar": "Amosar barra de filtros", "notifications.column_settings.follow": "Novas seguidoras:", "notifications.column_settings.follow_request": "Novas peticións de seguimento:", "notifications.column_settings.mention": "Mencións:", @@ -474,6 +469,15 @@ "notifications.permission_denied": "Non se activaron as notificacións de escritorio porque se denegou o permiso", "notifications.permission_denied_alert": "Non se poden activar as notificacións de escritorio, xa que o permiso para o navegador foi denegado previamente", "notifications.permission_required": "As notificacións de escritorio non están dispoñibles porque non se concedeu o permiso necesario.", + "notifications.policy.filter_new_accounts.hint": "Creadas desde {days, plural, one {onte} other {fai # días}}", + "notifications.policy.filter_new_accounts_title": "Novas contas", + "notifications.policy.filter_not_followers_hint": "Inclúe a persoas que te seguen desde fai menos de {days, plural, one {1 día} other {# días}}", + "notifications.policy.filter_not_followers_title": "Persoas que non te seguen", + "notifications.policy.filter_not_following_hint": "Ata que as autorices", + "notifications.policy.filter_not_following_title": "Persoas que ti non segues", + "notifications.policy.filter_private_mentions_hint": "Filtradas a non ser que sexa unha resposta á túa propia mención ou se ti segues á remitente", + "notifications.policy.filter_private_mentions_title": "Mencións privadas non solicitadas", + "notifications.policy.title": "Desbotar notificacións de…", "notifications_permission_banner.enable": "Activar notificacións de escritorio", "notifications_permission_banner.how_to_control": "Activa as notificacións de escritorio para recibir notificacións mentras Mastodon non está aberto. Podes controlar de xeito preciso o tipo de interaccións que crean as notificacións de escritorio a través da {icon} superior unha vez están activadas.", "notifications_permission_banner.title": "Non perder nada", @@ -650,10 +654,11 @@ "status.direct": "Mencionar de xeito privado a @{name}", "status.direct_indicator": "Mención privada", "status.edit": "Editar", - "status.edited": "Editado {date}", + "status.edited": "Última edición {date}", "status.edited_x_times": "Editado {count, plural, one {{count} vez} other {{count} veces}}", "status.embed": "Incrustar", "status.favourite": "Favorecer", + "status.favourites": "{count, plural, one {favorecemento} other {favorecementos}}", "status.filter": "Filtrar esta publicación", "status.filtered": "Filtrado", "status.hide": "Agochar publicación", @@ -674,6 +679,7 @@ "status.reblog": "Promover", "status.reblog_private": "Compartir coa audiencia orixinal", "status.reblogged_by": "{name} promoveu", + "status.reblogs": "{count, plural, one {promoción} other {promocións}}", "status.reblogs.empty": "Aínda ninguén promoveu esta publicación. Cando alguén o faga, amosarase aquí.", "status.redraft": "Eliminar e reescribir", "status.remove_bookmark": "Eliminar marcador", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index 2eef70f0feff56..48f028f3b50e4d 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -89,6 +89,14 @@ "announcement.announcement": "הכרזה", "attachments_list.unprocessed": "(לא מעובד)", "audio.hide": "השתק", + "block_modal.remote_users_caveat": "אנו נבקש מהשרת {domain} לכבד את החלטתך. עם זאת, ציות למוסכמות איננו מובטח כיוון ששרתים מסויימים עשויים לטפל בחסימות בצורה אחרת. הודעות פומביות עדיין יהיו גלויות לעיני משתמשים שאינם מחוברים.", + "block_modal.show_less": "הצג פחות", + "block_modal.show_more": "הצג עוד", + "block_modal.they_cant_mention": "הם אינם יכולים לאזכר אותך או לעקוב אחריך.", + "block_modal.they_cant_see_posts": "הם לא יכולים לראות את הודעותיך ואתם לא תוכלו לראות את שלהם.", + "block_modal.they_will_know": "הם יכולים לראות שהם חסומים.", + "block_modal.title": "לחסום משתמש?", + "block_modal.you_wont_see_mentions": "לא תראה הודעות שמאזכרות אותם.", "boost_modal.combo": "ניתן להקיש {combo} כדי לדלג בפעם הבאה", "bundle_column_error.copy_stacktrace": "העתקת הודעת שגיאה", "bundle_column_error.error.body": "הדף המבוקש אינו זמין. זה עשוי להיות באג בקוד או בעייה בתאימות הדפדפן.", @@ -160,9 +168,7 @@ "compose_form.spoiler.unmarked": "הוסף אזהרת תוכן", "compose_form.spoiler_placeholder": "אזהרת תוכן (לא חובה)", "confirmation_modal.cancel": "ביטול", - "confirmations.block.block_and_report": "לחסום ולדווח", "confirmations.block.confirm": "לחסום", - "confirmations.block.message": "האם את/ה בטוח/ה שברצונך למחוק את \"{name}\"?", "confirmations.cancel_follow_request.confirm": "ויתור על בקשה", "confirmations.cancel_follow_request.message": "לבטל את בקשת המעקב אחרי {name}?", "confirmations.delete.confirm": "למחוק", @@ -171,15 +177,13 @@ "confirmations.delete_list.message": "האם אתם בטוחים שאתם רוצים למחוק את הרשימה לצמיתות?", "confirmations.discard_edit_media.confirm": "השלך", "confirmations.discard_edit_media.message": "יש לך שינויים לא שמורים לתיאור המדיה. להשליך אותם בכל זאת?", - "confirmations.domain_block.confirm": "חסמו לגמרי את שם המתחם (דומיין)", + "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.message": "בטוח/ה שברצונך להשתיק את {name}?", "confirmations.redraft.confirm": "מחיקה ועריכה מחדש", "confirmations.redraft.message": "למחוק ולהתחיל טיוטה חדשה? חיבובים והדהודים יאבדו, ותגובות להודעה המקורית ישארו יתומות.", "confirmations.reply.confirm": "תגובה", @@ -205,6 +209,27 @@ "dismissable_banner.explore_statuses": "אלו הודעות משרת זה ואחרים ברשת המבוזרת שצוברות חשיפה היום. הודעות חדשות יותר עם יותר הדהודים וחיבובים מדורגות גבוה יותר.", "dismissable_banner.explore_tags": "התגיות האלו, משרת זה ואחרים ברשת המבוזרת, צוברות חשיפה כעת.", "dismissable_banner.public_timeline": "אלו ההודעות האחרונות שהתקבלו מהמשתמשים שנעקבים על ידי משתמשים מ־{domain}.", + "domain_block_modal.block": "חסימת שרת", + "domain_block_modal.block_account_instead": "לחסום את @{name} במקום שרת שלם", + "domain_block_modal.they_can_interact_with_old_posts": "משתמשים משרת זה יכולים להתייחס להודעותיך הישנות.", + "domain_block_modal.they_cant_follow": "משתמש משרת זה לא יכול לעקוב אחריך.", + "domain_block_modal.they_wont_know": "הם לא ידעו כי נחסמו.", + "domain_block_modal.title": "לחסום שרת?", + "domain_block_modal.you_will_lose_followers": "כל עוקביך משרת זה יוסרו.", + "domain_block_modal.you_wont_see_posts": "לא תוכלו לראות הודעות ממשתמשים על שרת זה.", + "domain_pill.activitypub_lets_connect": "מאפשר לך להתחבר ולהתרועע עם אחרים לא רק במסטודון, אלא גם ביישומים חברתיים שונים אחרים.", + "domain_pill.activitypub_like_language": "אקטיביטיפאב היא למעשה השפה בה מסטודון מדבר עם רשתות חברתיות אחרות.", + "domain_pill.server": "שרת", + "domain_pill.their_handle": "הכינוי שלהם:", + "domain_pill.their_server": "הבית המקוון שלהם, היכן שהודעותיהם שוכנות.", + "domain_pill.their_username": "המזהה הייחודי של השרת שלהם. ניתן למצוא משתמשים עם שם משתמש זהה על שרתים שונים.", + "domain_pill.username": "שם משתמש/ת", + "domain_pill.whats_in_a_handle": "מה כולל כינוי?", + "domain_pill.who_they_are": "מאחר וכינויים מספרים על מישהו ומה מיקומו, ניתן להיות בקשר עם אנשים לרוחבה של הרשת החברתית של .", + "domain_pill.who_you_are": "מאחר והכינוי שלך מספר על מי את.ה ומה מקומך בעולם, משתמשים מכל העולם יוכלו להיות בקשר עמך לרוחבה של הרשת החברתית של .", + "domain_pill.your_handle": "הכינוי שלך:", + "domain_pill.your_server": "הבית המקוון שלך, היכן ששוכנות כל הודעותיך. לא מוצא חן בעיניך? ניתן לעבור שרתים בכל עת וגם לשמור על העוקבים.", + "domain_pill.your_username": "המזהה הייחודי שלך על שרת זה. ניתן למצוא משתמשים עם שם משתמש זהה על שרתים שונים.", "embed.instructions": "ניתן להטמיע את ההודעה הזו באתרך ע\"י העתקת הקוד שלהלן.", "embed.preview": "דוגמא כיצד זה יראה:", "emoji_button.activity": "פעילות", @@ -241,6 +266,7 @@ "empty_column.list": "אין עדיין פריטים ברשימה. כאשר חברים ברשימה הזאת יפרסמו הודעות חדשות, הן יופיעו פה.", "empty_column.lists": "אין לך שום רשימות עדיין. לכשיהיו, הן תופענה כאן.", "empty_column.mutes": "עוד לא השתקת שום משתמש.", + "empty_column.notification_requests": "בום! אין פה כלום. כשיווצרו עוד התראות, הן יופיעו כאן על בסיס ההעדפות שלך.", "empty_column.notifications": "אין התראות עדיין. יאללה, הגיע הזמן להתחיל להתערבב.", "empty_column.public": "אין פה כלום! כדי למלא את הטור הזה אפשר לכתוב משהו, או להתחיל לעקוב אחרי אנשים מקהילות אחרות", "error.unexpected_crash.explanation": "עקב תקלה בקוד שלנו או בעיית תאימות דפדפן, לא ניתן להציג דף זה כראוי.", @@ -271,6 +297,8 @@ "filter_modal.select_filter.subtitle": "שימוש בקטגורייה קיימת או יצירת אחת חדשה", "filter_modal.select_filter.title": "סינון ההודעה הזו", "filter_modal.title.status": "סנן הודעה", + "filtered_notifications_banner.pending_requests": "{count, plural,=0 {אין התראות ממשתמשים ה}one {התראה אחת ממישהו/מישהי ה}two {יש התראותיים ממשתמשים }other {יש # התראות ממשתמשים }}מוכרים לך", + "filtered_notifications_banner.title": "התראות מסוננות", "firehose.all": "הכל", "firehose.local": "שרת זה", "firehose.remote": "שרתים אחרים", @@ -314,7 +342,6 @@ "hashtag.follow": "לעקוב אחרי תגית", "hashtag.unfollow": "להפסיק לעקוב אחרי תגית", "hashtags.and_other": "…{count, plural,other {ועוד #}}", - "home.column_settings.basic": "למתחילים", "home.column_settings.show_reblogs": "הצגת הדהודים", "home.column_settings.show_replies": "הצגת תגובות", "home.hide_announcements": "הסתר הכרזות", @@ -400,9 +427,15 @@ "loading_indicator.label": "בטעינה…", "media_gallery.toggle_visible": "{number, plural, one {להסתיר תמונה} two {להסתיר תמונותיים} many {להסתיר תמונות} other {להסתיר תמונות}}", "moved_to_account_banner.text": "חשבונך {disabledAccount} אינו פעיל כרגע עקב מעבר ל{movedToAccount}.", - "mute_modal.duration": "משך הזמן", - "mute_modal.hide_notifications": "להסתיר התראות מחשבון זה?", - "mute_modal.indefinite": "ללא תאריך סיום", + "mute_modal.hide_from_notifications": "להסתיר מהתראות", + "mute_modal.hide_options": "הסתרת אפשרויות", + "mute_modal.indefinite": "עד שאסיר השתקה", + "mute_modal.show_options": "הצגת אפשרויות", + "mute_modal.they_can_mention_and_follow": "הם יכולם לאזכר אתכם ולעקוב אחריכם, אבל לא תראו אותם.", + "mute_modal.they_wont_know": "הם לא ידעו כי הושתקו.", + "mute_modal.title": "להשתיק משתמש?", + "mute_modal.you_wont_see_mentions": "לא תראה הודעות שמאזכרות אותם.", + "mute_modal.you_wont_see_posts": "הם יכולים לראות את הודעותכם, אבל אתם לא תוכלו לראות את שלהם.", "navigation_bar.about": "אודות", "navigation_bar.advanced_interface": "פתח במנשק ווב מתקדם", "navigation_bar.blocks": "משתמשים חסומים", @@ -440,15 +473,16 @@ "notification.reblog": "הודעתך הודהדה על ידי {name}", "notification.status": "{name} הרגע פרסמו", "notification.update": "{name} ערכו הודעה", + "notification_requests.accept": "לקבל", + "notification_requests.dismiss": "לבטל", + "notification_requests.notifications_from": "התראות מ־ {name}", + "notification_requests.title": "התראות מסוננות", "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": "פניות:", @@ -474,6 +508,15 @@ "notifications.permission_denied": "לא ניתן להציג התראות מסך כיוון כיוון שהרשאות דפדפן נשללו בעבר", "notifications.permission_denied_alert": "לא ניתן לאפשר נוטיפיקציות מסך שכן הדפדפן סורב הרשאה בעבר", "notifications.permission_required": "לא ניתן לאפשר נוטיפיקציות מסך כיוון שהרשאה דרושה לא ניתנה.", + "notifications.policy.filter_new_accounts.hint": "נוצר {days, plural,one {ביום האחרון} two {ביומיים האחרונים} other {ב־# הימים האחרונים}}", + "notifications.policy.filter_new_accounts_title": "חשבונות חדשים", + "notifications.policy.filter_not_followers_hint": "כולל משתמשים שעקבו אחריך פחות מ{days, plural,one {יום} two {יומיים} other {־# ימים}}", + "notifications.policy.filter_not_followers_title": "משתמשים שלא עוקבות.ים אחריך", + "notifications.policy.filter_not_following_hint": "עד שיאושרו ידנית על ידיך", + "notifications.policy.filter_not_following_title": "משתמשים שאינך עוקב(ת) אחריהםן", + "notifications.policy.filter_private_mentions_hint": "מסונן אלא אם זו תשובה למינשון שלך או אם אתם עוקבים אחרי העונה", + "notifications.policy.filter_private_mentions_title": "מינשונים בפרטי שלא הוזמנו", + "notifications.policy.title": "להסתיר התראות מ…", "notifications_permission_banner.enable": "לאפשר נוטיפיקציות מסך", "notifications_permission_banner.how_to_control": "כדי לקבל התראות גם כאשר מסטודון סגור יש לאפשר התראות מסך. ניתן לשלוט בדיוק איזה סוג של אינטראקציות יביא להתראות מסך דרך כפתור ה- {icon} מרגע שהן מאופשרות.", "notifications_permission_banner.title": "לעולם אל תחמיץ דבר", @@ -650,10 +693,11 @@ "status.direct": "הודעה פרטית אל @{name}", "status.direct_indicator": "הודעה פרטית", "status.edit": "עריכה", - "status.edited": "נערך ב{date}", + "status.edited": "נערך לאחרונה {date}", "status.edited_x_times": "נערך {count, plural, one {פעם {count}} other {{count} פעמים}}", "status.embed": "הטמעה", "status.favourite": "חיבוב", + "status.favourites": "{count, plural, one {חיבוב אחד} two {זוג חיבובים} other {# חיבובים}}", "status.filter": "סנן הודעה זו", "status.filtered": "סונן", "status.hide": "הסתרת חיצרוץ", @@ -674,6 +718,7 @@ "status.reblog": "הדהוד", "status.reblog_private": "להדהד ברמת הנראות המקורית", "status.reblogged_by": "{name} הידהד/ה:", + "status.reblogs": "{count, plural, one {הדהוד אחד} two {שני הדהודים} other {# הדהודים}}", "status.reblogs.empty": "עוד לא הידהדו את ההודעה הזו. כאשר זה יקרה, ההדהודים יופיעו כאן.", "status.redraft": "מחיקה ועריכה מחדש", "status.remove_bookmark": "הסרת סימניה", diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json index f88fe195691374..372eb09fa78fd4 100644 --- a/app/javascript/mastodon/locales/hi.json +++ b/app/javascript/mastodon/locales/hi.json @@ -21,6 +21,7 @@ "account.blocked": "ब्लॉक", "account.browse_more_on_origin_server": "मूल प्रोफ़ाइल पर अधिक ब्राउज़ करें", "account.cancel_follow_request": "फॉलो रिक्वेस्ट वापस लें", + "account.copy": "प्रोफाइल पर लिंक कॉपी करें", "account.direct": "निजि तरीके से उल्लेख करे @{name}", "account.disable_notifications": "@{name} पोस्ट के लिए मुझे सूचित मत करो", "account.domain_blocked": "छिपा हुआ डोमेन", @@ -31,6 +32,7 @@ "account.featured_tags.last_status_never": "कोई पोस्ट नहीं है", "account.featured_tags.title": "{name} के चुनिंदा हैशटैग", "account.follow": "फॉलो करें", + "account.follow_back": "फॉलो करें", "account.followers": "फॉलोवर", "account.followers.empty": "कोई भी इस यूज़र् को फ़ॉलो नहीं करता है", "account.followers_counter": "{count, plural, one {{counter} अनुगामी} other {{counter} समर्थक}}", @@ -51,6 +53,7 @@ "account.mute_notifications_short": "सूचनाओ को शांत करे", "account.mute_short": "शांत करे", "account.muted": "म्यूट है", + "account.mutual": "आपसी", "account.no_bio": "कोई विवरण नहि दिया गया हे", "account.open_original_page": "ओरिजिनल पोस्ट खोलें", "account.posts": "टूट्स", @@ -75,6 +78,8 @@ "admin.dashboard.retention.average": "औसत", "admin.dashboard.retention.cohort": "साईन-अप महिना", "admin.dashboard.retention.cohort_size": "नये उपयोगकर्ता", + "admin.impact_report.instance_accounts": "ये अकाउंट प्रोफाइल मिटा देगा", + "admin.impact_report.instance_followers": "हमारे यूजर्स इन फॉलोअर्स को खो देंगे", "admin.impact_report.title": "प्रभावकां सारांश", "alert.rate_limited.message": "कृप्या {retry_time, time, medium} के बाद दुबारा कोशिश करें", "alert.rate_limited.title": "सीमित दर", @@ -83,6 +88,13 @@ "announcement.announcement": "घोषणा", "attachments_list.unprocessed": "(असंसाधित)", "audio.hide": "हाईड ऑडियो", + "block_modal.show_less": "कम दिखाएं", + "block_modal.show_more": "और दिखाएँ", + "block_modal.they_cant_mention": "वे आपको मेंशन या फॉलो नहीं कर सकते", + "block_modal.they_cant_see_posts": "वो आपके पोस्ट नहीं देख सकते और न आप उनके", + "block_modal.they_will_know": "वे नहीं देख सकते कि उन्हें ब्लॉक किया गया है", + "block_modal.title": "यूजर को ब्लॉक करें?", + "block_modal.you_wont_see_mentions": "वो पोस्ट आप नहीं देख सकते जिनमें उन्हें मेंशन किया गया है", "boost_modal.combo": "अगली बार स्किप करने के लिए आप {combo} दबा सकते है", "bundle_column_error.copy_stacktrace": "कॉपी एरर रिपोर्ट", "bundle_column_error.error.body": "अनुरोधित पेज प्रस्तुत नहीं किया जा सका। यह हमारे कोड में बग या ब्राउज़र संगतता समस्या के कारण हो सकता है।", @@ -130,7 +142,9 @@ "community.column_settings.remote_only": "केवल सुदूर", "compose.language.change": "भाषा बदलें", "compose.language.search": "भाषाएँ खोजें...", + "compose.published.body": "पोस्ट प्रकाशित हुआ।", "compose.published.open": "खोलें", + "compose.saved.body": "पोस्ट सुरक्षित किया गया।", "compose_form.direct_message_warning_learn_more": "और जानें", "compose_form.encryption_warning": "मास्टोडॉन पर पोस्ट एन्ड-टू-एन्ड एन्क्रिप्टेड नहीं है। कोई भी व्यक्तिगत जानकारी मास्टोडॉन पर मत भेजें।", "compose_form.hashtag_warning": "ये पोस्ट किसी भी हैशटैग में लिस्ट नहीं किया जाएगा क्योंकि ये पब्लिक नहीं है। सिर्फ पब्लिक पोस्ट ही हैशटैग से खोजे जा सकते हैं।", @@ -138,15 +152,21 @@ "compose_form.lock_disclaimer.lock": "लॉक्ड", "compose_form.placeholder": "What is on your mind?", "compose_form.poll.duration": "चुनाव की अवधि", + "compose_form.poll.multiple": "बहुविकल्पी", + "compose_form.poll.option_placeholder": "विकल्प {number}", + "compose_form.poll.single": "कोई एक चुनें", "compose_form.poll.switch_to_multiple": "कई विकल्पों की अनुमति देने के लिए पोल बदलें", "compose_form.poll.switch_to_single": "एक ही विकल्प के लिए अनुमति देने के लिए पोल बदलें", + "compose_form.poll.type": "स्टाइल", + "compose_form.publish": "पोस्ट करें", "compose_form.publish_form": "पब्लिश", + "compose_form.reply": "जवाब दें", + "compose_form.save_changes": "अपडेट करें", "compose_form.spoiler.marked": "चेतावनी के पीछे टेक्स्ट छिपा है", "compose_form.spoiler.unmarked": "टेक्स्ट छिपा नहीं है", + "compose_form.spoiler_placeholder": "सामग्री चेतावनी (वैकल्पिक)", "confirmation_modal.cancel": "रद्द करें", - "confirmations.block.block_and_report": "ब्लॉक एवं रिपोर्ट", "confirmations.block.confirm": "ब्लॉक", - "confirmations.block.message": "क्या आप वाकई {name} को ब्लॉक करना चाहते हैं?", "confirmations.cancel_follow_request.confirm": "रिक्वेस्ट वापस लें", "confirmations.cancel_follow_request.message": "क्या आप सुनिश्चित है की आप {name} का फॉलो रिक्वेस्ट वापिस लेना चाहते हैं?", "confirmations.delete.confirm": "मिटाए", @@ -155,15 +175,13 @@ "confirmations.delete_list.message": "क्या आप वाकई इस लिस्ट को हमेशा के लिये मिटाना चाहते हैं?", "confirmations.discard_edit_media.confirm": "डिस्कार्ड", "confirmations.discard_edit_media.message": "लिस्ट में जोड़ें", - "confirmations.domain_block.confirm": "संपूर्ण डोमेन छिपाएं", + "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.message": "क्या आप वाकई {name} को शांत करना चाहते हैं?", "confirmations.redraft.confirm": "मिटायें और पुनःप्रारूपण करें", "confirmations.redraft.message": "क्या आप वाकई इस स्टेटस को हटाना चाहते हैं और इसे फिर से ड्राफ्ट करना चाहते हैं? पसंदीदा और बूस्ट खो जाएंगे, और मूल पोस्ट के उत्तर अनाथ हो जाएंगे।", "confirmations.reply.confirm": "उत्तर दें", @@ -174,6 +192,7 @@ "conversation.mark_as_read": "पढ़ा गया के रूप में चिह्नित करें", "conversation.open": "वार्तालाप देखें", "conversation.with": "{names} के साथ", + "copy_icon_button.copied": "क्लिपबोर्ड पर कॉपी किया गया", "copypaste.copied": "कॉपी किआ जा चूका है", "copypaste.copy_to_clipboard": "क्लिपबोर्ड पर कॉपी करें", "directory.federated": "ज्ञात फेडीवर्स से", @@ -277,7 +296,6 @@ "hashtag.column_settings.tag_toggle": "Include additional tags in this column", "hashtag.follow": "हैशटैग को फॉलो करें", "hashtag.unfollow": "हैशटैग को उनफ़ोल्लोव करें", - "home.column_settings.basic": "बुनियादी", "home.column_settings.show_reblogs": "बूस्ट दिखाए", "home.column_settings.show_replies": "जवाबों को दिखाए", "home.hide_announcements": "घोषणाएँ छिपाएँ", @@ -346,9 +364,6 @@ "lists.replies_policy.none": "कोई नहीं", "lists.replies_policy.title": "इसके जवाब दिखाएं:", "lists.subheading": "आपकी सूचियाँ", - "mute_modal.duration": "अवधि", - "mute_modal.hide_notifications": "इस सभ्य की ओरसे आनेवाली सूचनाए शांत करे", - "mute_modal.indefinite": "अनिश्चितकालीन", "navigation_bar.about": "विवरण", "navigation_bar.blocks": "ब्लॉक्ड यूज़र्स", "navigation_bar.bookmarks": "पुस्तकचिह्न:", @@ -376,8 +391,6 @@ "notifications.clear": "सूचनाएं हटाए", "notifications.column_settings.admin.report": "नई रिपोर्ट:", "notifications.column_settings.favourite": "पसंदीदा:", - "notifications.column_settings.filter_bar.advanced": "सभी श्रेणियाँ दिखाएं", - "notifications.column_settings.filter_bar.category": "फ़िल्टर बार", "notifications.column_settings.follow": "नए फ़ॉलोअर्स", "notifications.column_settings.mention": "उल्लेख:", "notifications.column_settings.poll": "चुनाव परिणाम", @@ -483,6 +496,7 @@ "status.delete": "हटाएं", "status.detailed_status": "विस्तृत वार्ता दृश्य", "status.direct": "निजी संदेश @{name} से", + "status.edited": "पिछला संशोधन {date}", "status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}", "status.media.open": "खोलने के लिए क्लिक करें", "status.media.show": "दिखाने के लिए क्लिक करें", diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json index 9fe15f5a2d497d..ec8d62dbba5c2c 100644 --- a/app/javascript/mastodon/locales/hr.json +++ b/app/javascript/mastodon/locales/hr.json @@ -146,9 +146,7 @@ "compose_form.spoiler.marked": "Tekst je skriven iza upozorenja", "compose_form.spoiler.unmarked": "Tekst nije skriven", "confirmation_modal.cancel": "Otkaži", - "confirmations.block.block_and_report": "Blokiraj i prijavi", "confirmations.block.confirm": "Blokiraj", - "confirmations.block.message": "Sigurno želite blokirati {name}?", "confirmations.cancel_follow_request.confirm": "Povuci zahtjev", "confirmations.delete.confirm": "Obriši", "confirmations.delete.message": "Stvarno želite obrisati ovaj toot?", @@ -156,14 +154,11 @@ "confirmations.delete_list.message": "Jeste li sigurni da želite trajno obrisati ovu listu?", "confirmations.discard_edit_media.confirm": "Odbaciti", "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": "Uredi", "confirmations.logout.confirm": "Odjavi se", "confirmations.logout.message": "Jeste li sigurni da se želite odjaviti?", "confirmations.mute.confirm": "Utišaj", - "confirmations.mute.explanation": "Ovo će sakriti njihove objave i objave koje ih spominju, ali i dalje će im dopuštati da vide Vaše objave i da Vas prate.", - "confirmations.mute.message": "Jeste li sigurni da želite utišati {name}?", "confirmations.redraft.confirm": "Izbriši i ponovno uredi", "confirmations.reply.confirm": "Odgovori", "confirmations.reply.message": "Odgovaranje sada će prepisati poruku koju upravo pišete. Jeste li sigurni da želite nastaviti?", @@ -261,7 +256,6 @@ "hashtag.column_settings.tag_toggle": "Uključi dodatne oznake za ovaj stupac", "hashtag.follow": "Prati hashtag", "hashtag.unfollow": "Prestani pratiti hashtag", - "home.column_settings.basic": "Osnovno", "home.column_settings.show_reblogs": "Pokaži boostove", "home.column_settings.show_replies": "Pokaži odgovore", "home.hide_announcements": "Sakrij najave", @@ -324,8 +318,6 @@ "lists.search": "Traži među praćenim ljudima", "lists.subheading": "Vaše liste", "media_gallery.toggle_visible": "Sakrij {number, plural, one {sliku} other {slike}}", - "mute_modal.duration": "Trajanje", - "mute_modal.hide_notifications": "Sakrij obavijesti ovog korisnika?", "navigation_bar.about": "O aplikaciji", "navigation_bar.advanced_interface": "Otvori u naprednom web sučelju", "navigation_bar.blocks": "Blokirani korisnici", @@ -358,8 +350,6 @@ "notifications.clear": "Očisti obavijesti", "notifications.clear_confirmation": "Želite li zaista trajno očistiti sve Vaše obavijesti?", "notifications.column_settings.alert": "Obavijesti radne površine", - "notifications.column_settings.filter_bar.advanced": "Prikaži sve kategorije", - "notifications.column_settings.filter_bar.category": "Brza traka filtera", "notifications.column_settings.follow": "Novi pratitelji:", "notifications.column_settings.follow_request": "Novi zahtjevi za praćenje:", "notifications.column_settings.mention": "Spominjanja:", @@ -478,7 +468,6 @@ "status.copy": "Copy link to status", "status.delete": "Obriši", "status.edit": "Uredi", - "status.edited": "Uređeno {date}", "status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}", "status.embed": "Umetni", "status.filter": "Filtriraj ovu objavu", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index f499e08f6d2b94..c13c8dc220c3a1 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -16,7 +16,7 @@ "account.badges.bot": "Automatizált", "account.badges.group": "Csoport", "account.block": "@{name} letiltása", - "account.block_domain": "Domain blokkolása: {domain}", + "account.block_domain": "Domain letiltása: {domain}", "account.block_short": "Letiltás", "account.blocked": "Letiltva", "account.browse_more_on_origin_server": "További böngészés az eredeti profilon", @@ -89,6 +89,14 @@ "announcement.announcement": "Közlemény", "attachments_list.unprocessed": "(feldolgozatlan)", "audio.hide": "Hang elrejtése", + "block_modal.remote_users_caveat": "Arra kérjük a {domain} kiszolgálót, hogy tartsa tiszteletben a döntésedet. Ugyanakkor az együttműködés nem garantált, mivel néhány kiszolgáló másképp kezelheti a letiltásokat. A nyilvános bejegyzések a be nem jelentkezett felhasználók számára továbbra is látszódhatnak.", + "block_modal.show_less": "Kevesebb mutatása", + "block_modal.show_more": "Több mutatása", + "block_modal.they_cant_mention": "Nem említhetnek meg vagy követhetnek téged.", + "block_modal.they_cant_see_posts": "Nem láthatják a bejegyzéseidet, és te sem fogod látni az övékét.", + "block_modal.they_will_know": "Láthatják, hogy le vannak tiltva.", + "block_modal.title": "Letiltsuk a felhasználót?", + "block_modal.you_wont_see_mentions": "Nem látsz majd őket említő bejegyzéseket.", "boost_modal.combo": "Hogy átugord ezt következő alkalommal, használd {combo}", "bundle_column_error.copy_stacktrace": "Hibajelentés másolása", "bundle_column_error.error.body": "A kért lap nem jeleníthető meg. Ez lehet, hogy kódhiba, vagy böngészőkompatibitási hiba.", @@ -113,7 +121,7 @@ "column.community": "Helyi idővonal", "column.direct": "Személyes említések", "column.directory": "Profilok böngészése", - "column.domain_blocks": "Letiltott tartománynevek", + "column.domain_blocks": "Letiltott domainek", "column.favourites": "Kedvencek", "column.firehose": "Hírfolyamok", "column.follow_requests": "Követési kérelmek", @@ -160,9 +168,7 @@ "compose_form.spoiler.unmarked": "Tartalmi figyelmeztetés hozzáadása", "compose_form.spoiler_placeholder": "Tartalmi figyelmeztetés (opcionális)", "confirmation_modal.cancel": "Mégsem", - "confirmations.block.block_and_report": "Letiltás és jelentés", "confirmations.block.confirm": "Letiltás", - "confirmations.block.message": "Biztos, hogy letiltod: {name}?", "confirmations.cancel_follow_request.confirm": "Kérés visszavonása", "confirmations.cancel_follow_request.message": "Biztos, hogy visszavonod a(z) {name} felhasználóra vonatkozó követési kérésedet?", "confirmations.delete.confirm": "Törlés", @@ -171,15 +177,13 @@ "confirmations.delete_list.message": "Biztos, hogy véglegesen törölni szeretnéd ezt a listát?", "confirmations.discard_edit_media.confirm": "Elvetés", "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 tartomány tiltása", + "confirmations.domain_block.confirm": "Kiszolgáló letiltása", "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", - "confirmations.mute.explanation": "Ez elrejti a tőlük érkező bejegyzéseket, valamint az őket megemlítőket, de ők továbbra is láthatják a te bejegyzéseid, és követhetnek is téged.", - "confirmations.mute.message": "Biztos, hogy némítod: {name}?", "confirmations.redraft.confirm": "Törlés és újraírás", "confirmations.redraft.message": "Biztos, hogy ezt a bejegyzést szeretnéd törölni és újraírni? Minden megtolást és kedvencnek jelölést elvesztesz, az eredetire adott válaszok pedig elárvulnak.", "confirmations.reply.confirm": "Válasz", @@ -205,6 +209,27 @@ "dismissable_banner.explore_statuses": "Ezek jelenleg népszerűvé váló bejegyzések a háló különböző szegleteiből. Az újabb vagy több megtolással rendelkező bejegyzéseket, illetve a kedvencnek jelöléssel rendelkezőeket rangsoroljuk előrébb.", "dismissable_banner.explore_tags": "Jelenleg ezek a hashtagek hódítanak teret a közösségi weben. Azokat a hashtageket, amelyeket több különböző ember használ, magasabbra rangsorolják.", "dismissable_banner.public_timeline": "Ezek a legfrissebb nyilvános bejegyzések a közösségi weben, amelyeket {domain} domain felhasználói követnek.", + "domain_block_modal.block": "Kiszolgáló letiltása", + "domain_block_modal.block_account_instead": "Helyette @{name} letiltása", + "domain_block_modal.they_can_interact_with_old_posts": "Az ezen a kiszolgálón lévő emberek interaktálhatnak a régi bejegyzéseiddel.", + "domain_block_modal.they_cant_follow": "Erről a kiszolgálóról senki sem követhet.", + "domain_block_modal.they_wont_know": "Nem fogják tudni, hogy letiltották őket.", + "domain_block_modal.title": "Letiltsuk a domaint?", + "domain_block_modal.you_will_lose_followers": "Az ezen a kiszolgálón lévő összes követődet törölni fogjuk.", + "domain_block_modal.you_wont_see_posts": "Nem látsz majd bejegyzéseket vagy értesítéseket ennek a kiszolgálónak a felhasználóitól.", + "domain_pill.activitypub_lets_connect": "Lehetővé teszi, hogy kapcsolatba lépj nem csak a Mastodonon, hanem a más közösségi alkalmazásokon lévő emberekkel is.", + "domain_pill.activitypub_like_language": "Az ActivityPub olyan mint egy nyelv, amelyet a Mastodon a más közösségi hálózatokkal való kommunikációra használ.", + "domain_pill.server": "Kiszolgáló", + "domain_pill.their_handle": "A fiókneve:", + "domain_pill.their_server": "A digitális otthona, ahol a bejegyzései találhatók.", + "domain_pill.their_username": "Az egyedi azonosítója a kiszolgálóján. Lehet, hogy ugyanazon felhasználónév különböző kiszolgálókon is megtalálható.", + "domain_pill.username": "Felhasználónév", + "domain_pill.whats_in_a_handle": "Mi is egy fióknév?", + "domain_pill.who_they_are": "Mivel a fióknevek mondják meg, hogy valaki kicsoda és hol található, így ezek használatával léphetsz kapcsolatba az közösségi hálózatán lévő emberekkel.", + "domain_pill.who_you_are": "Mivel a fiókneved mondja meg, hogy ki vagy és hol, így ezek használatával léphetnek kapcsolatba veled az közösségi hálózatán lévő emberek.", + "domain_pill.your_handle": "Saját fióknév:", + "domain_pill.your_server": "A digitális otthonod, ahol a bejegyzéseid találhatók. Nem tetszik a mostani? Válts kiszolgálót bármikor, és vidd magaddal a követőidet is.", + "domain_pill.your_username": "Az egyedi azonosítód ezen a kiszolgálón. Lehet, hogy ugyanazon felhasználónév különböző kiszolgálókon is megtalálható.", "embed.instructions": "Ágyazd be ezt a bejegyzést a weboldaladba az alábbi kód kimásolásával.", "embed.preview": "Így fog kinézni:", "emoji_button.activity": "Tevékenység", @@ -230,7 +255,7 @@ "empty_column.bookmarked_statuses": "Még nincs egyetlen könyvjelzőzött bejegyzésed sem. Ha könyvjelzőzöl egyet, itt fog megjelenni.", "empty_column.community": "A helyi idővonal üres. Tégy közzé valamit nyilvánosan, hogy elindítsd az eseményeket!", "empty_column.direct": "Még nincs egy személyes említésed sem. Küldéskor vagy fogadáskor itt fognak megjelenni.", - "empty_column.domain_blocks": "Még nem lett letiltva egyetlen tartomány sem.", + "empty_column.domain_blocks": "Még nem lett letiltva egyetlen domain sem.", "empty_column.explore_statuses": "Jelenleg semmi sem felkapott. Nézz vissza később!", "empty_column.favourited_statuses": "Még nincs egyetlen kedvenc bejegyzésed sem. Ha kedvencnek jelölsz egyet, itt fog megjelenni.", "empty_column.favourites": "Még senki sem jelölte ezt a bejegyzést kedvencnek. Ha valaki mégis megteszi, itt fogjuk mutatni.", @@ -241,6 +266,7 @@ "empty_column.list": "A lista jelenleg üres. Ha a listatagok bejegyzést tesznek közzé, itt fog megjelenni.", "empty_column.lists": "Még nincs egyetlen listád sem. Ha létrehozol egyet, itt fog megjelenni.", "empty_column.mutes": "Még egy felhasználót sem némítottál le.", + "empty_column.notification_requests": "Minden tiszta! Itt nincs semmi. Ha új értesítéseket kapsz, azok itt jelennek meg a beállításoknak megfelelően.", "empty_column.notifications": "Jelenleg még nincsenek értesítéseid. Ha mások kapcsolatba lépnek veled, ezek itt lesznek láthatóak.", "empty_column.public": "Jelenleg itt nincs semmi! Írj valamit nyilvánosan vagy kövess más kiszolgálón levő felhasználókat, hogy megtöltsd.", "error.unexpected_crash.explanation": "Egy kód- vagy böngészőkompatibilitási hiba miatt ez az oldal nem jeleníthető meg helyesen.", @@ -271,6 +297,8 @@ "filter_modal.select_filter.subtitle": "Válassz egy meglévő kategóriát, vagy hozz létre egy újat", "filter_modal.select_filter.title": "E bejegyzés szűrése", "filter_modal.title.status": "Egy bejegyzés szűrése", + "filtered_notifications_banner.pending_requests": "Értesítések {count, plural, =0 {nincsenek} one {egy valósztínűleg ismerős személytől} other {# valószínűleg ismerős személytől}}", + "filtered_notifications_banner.title": "Szűrt értesítések", "firehose.all": "Összes", "firehose.local": "Ez a kiszolgáló", "firehose.remote": "Egyéb kiszolgálók", @@ -314,7 +342,6 @@ "hashtag.follow": "Hashtag követése", "hashtag.unfollow": "Hashtag követésének megszüntetése", "hashtags.and_other": "…és {count, plural, other {# további}}", - "home.column_settings.basic": "Általános", "home.column_settings.show_reblogs": "Megtolások megjelenítése", "home.column_settings.show_replies": "Válaszok megjelenítése", "home.hide_announcements": "Közlemények elrejtése", @@ -400,9 +427,15 @@ "loading_indicator.label": "Betöltés…", "media_gallery.toggle_visible": "{number, plural, one {Kép elrejtése} other {Képek elrejtése}}", "moved_to_account_banner.text": "A(z) {disabledAccount} fiókod jelenleg le van tiltva, mert átköltöztél ide: {movedToAccount}.", - "mute_modal.duration": "Időtartam", - "mute_modal.hide_notifications": "Rejtsük el a felhasználótól származó értesítéseket?", - "mute_modal.indefinite": "Határozatlan", + "mute_modal.hide_from_notifications": "Elrejtés az értesítések közül", + "mute_modal.hide_options": "Beállítások elrejtése", + "mute_modal.indefinite": "Amíg nem oldom fel a némítást", + "mute_modal.show_options": "Beállítások megjelenítése", + "mute_modal.they_can_mention_and_follow": "Megemlíthetnek vagy követhetnek téged, de nem fogod őket látni.", + "mute_modal.they_wont_know": "Nem fogják tudni, hogy lenémították őket.", + "mute_modal.title": "Elnémítsuk a felhasználót?", + "mute_modal.you_wont_see_mentions": "Nem látsz majd őket említő bejegyzéseket.", + "mute_modal.you_wont_see_posts": "Továbbra is látni fogják a bejegyzéseidet, de te nem fogod látni az övékét.", "navigation_bar.about": "Névjegy", "navigation_bar.advanced_interface": "Megnyitás a speciális webes felületben", "navigation_bar.blocks": "Letiltott felhasználók", @@ -411,7 +444,7 @@ "navigation_bar.compose": "Új bejegyzés írása", "navigation_bar.direct": "Személyes említések", "navigation_bar.discover": "Felfedezés", - "navigation_bar.domain_blocks": "Letiltott tartományok", + "navigation_bar.domain_blocks": "Letiltott domainek", "navigation_bar.explore": "Felfedezés", "navigation_bar.favourites": "Kedvencek", "navigation_bar.filters": "Némított szavak", @@ -440,15 +473,16 @@ "notification.reblog": "{name} megtolta a bejegyzésedet", "notification.status": "{name} bejegyzést tett közzé", "notification.update": "{name} szerkesztett egy bejegyzést", + "notification_requests.accept": "Elfogadás", + "notification_requests.dismiss": "Elvetés", + "notification_requests.notifications_from": "{name} értesítései", + "notification_requests.title": "Szűrt értesítések", "notifications.clear": "Értesítések törlése", "notifications.clear_confirmation": "Biztos, hogy véglegesen törölni akarod az összes értesítésed?", "notifications.column_settings.admin.report": "Új jelentések:", "notifications.column_settings.admin.sign_up": "Új regisztrálók:", "notifications.column_settings.alert": "Asztali értesítések", "notifications.column_settings.favourite": "Kedvencek:", - "notifications.column_settings.filter_bar.advanced": "Minden kategória megjelenítése", - "notifications.column_settings.filter_bar.category": "Gyorsszűrő sáv", - "notifications.column_settings.filter_bar.show_bar": "Szűrősáv megjelenítése", "notifications.column_settings.follow": "Új követők:", "notifications.column_settings.follow_request": "Új követési kérelmek:", "notifications.column_settings.mention": "Megemlítések:", @@ -474,6 +508,15 @@ "notifications.permission_denied": "Az asztali értesítések nem érhetők el a korábban elutasított böngészőengedély-kérelem miatt", "notifications.permission_denied_alert": "Az asztali értesítések nem engedélyezhetők a korábban elutasított böngésző engedély miatt", "notifications.permission_required": "Az asztali értesítések nem érhetőek el, mivel a szükséges engedély nem lett megadva.", + "notifications.policy.filter_new_accounts.hint": "Az elmúlt {days, plural, one {napban} other {# napban}} létrehozva", + "notifications.policy.filter_new_accounts_title": "Új fiókok", + "notifications.policy.filter_not_followers_hint": "Beleértve azokat, akik kevesebb mint {days, plural, one {egy napja} other {# napja}} követnek", + "notifications.policy.filter_not_followers_title": "Olyan emberek, akik nem követnek", + "notifications.policy.filter_not_following_hint": "Amíg kézileg jóvá nem hagyod őket", + "notifications.policy.filter_not_following_title": "Nem követett emberek", + "notifications.policy.filter_private_mentions_hint": "Kiszűrve, hacsak nem a saját említésedre válaszol, vagy ha nem követed a feladót", + "notifications.policy.filter_private_mentions_title": "Kéretlen személyes említések", + "notifications.policy.title": "Feladó értesítéseinek kiszűrése…", "notifications_permission_banner.enable": "Asztali értesítések engedélyezése", "notifications_permission_banner.how_to_control": "Ahhoz, hogy értesítéseket kapj akkor, amikor a Mastodon nincs megnyitva, engedélyezd az asztali értesítéseket. Pontosan be tudod állítani, hogy milyen interakciókról értesülj a fenti {icon} gombon keresztül, ha egyszer már engedélyezted őket.", "notifications_permission_banner.title": "Soha ne mulassz el semmit", @@ -650,10 +693,11 @@ "status.direct": "@{name} személyes említése", "status.direct_indicator": "Személyes említés", "status.edit": "Szerkesztés", - "status.edited": "Szerkesztve: {date}", + "status.edited": "Utoljára szerkesztve {date}", "status.edited_x_times": "{count, plural, one {{count} alkalommal} other {{count} alkalommal}} szerkesztve", "status.embed": "Beágyazás", "status.favourite": "Kedvenc", + "status.favourites": "{count, plural, one {kedvenc} other {kedvenc}}", "status.filter": "E bejegyzés szűrése", "status.filtered": "Megszűrt", "status.hide": "Bejegyzés elrejtése", @@ -674,6 +718,7 @@ "status.reblog": "Megtolás", "status.reblog_private": "Megtolás az eredeti közönségnek", "status.reblogged_by": "{name} megtolta", + "status.reblogs": "{count, plural, one {megtolás} other {megtolás}}", "status.reblogs.empty": "Senki sem tolta még meg ezt a bejegyzést. Ha valaki megteszi, itt fog megjelenni.", "status.redraft": "Törlés és újraírás", "status.remove_bookmark": "Könyvjelző eltávolítása", diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json index 6ddcfcdb2175da..7310104bf932f4 100644 --- a/app/javascript/mastodon/locales/hy.json +++ b/app/javascript/mastodon/locales/hy.json @@ -123,23 +123,18 @@ "compose_form.spoiler.marked": "Տեքստը թաքցուած է զգուշացման ետեւում", "compose_form.spoiler.unmarked": "Տեքստը թաքցուած չէ", "confirmation_modal.cancel": "Չեղարկել", - "confirmations.block.block_and_report": "Արգելափակել եւ բողոքել", "confirmations.block.confirm": "Արգելափակել", - "confirmations.block.message": "Վստա՞հ ես, որ ուզում ես արգելափակել {name}֊ին։", "confirmations.cancel_follow_request.confirm": "Կասեցնել հայցը", "confirmations.delete.confirm": "Ջնջել", "confirmations.delete.message": "Վստա՞հ ես, որ ուզում ես ջնջել այս գրառումը։", "confirmations.delete_list.confirm": "Ջնջել", "confirmations.delete_list.message": "Վստա՞հ ես, որ ուզում ես մշտապէս ջնջել այս ցանկը։", "confirmations.discard_edit_media.confirm": "Չեղարկել", - "confirmations.domain_block.confirm": "Թաքցնել ամբողջ տիրույթը", "confirmations.domain_block.message": "Հաստատ֊հաստա՞տ վստահ ես, որ ուզում ես արգելափակել ամբողջ {domain} տիրոյթը։ Սովորաբար մի երկու թիրախաւորուած արգելափակում կամ լռեցում բաւական է ու նախընտրելի։", "confirmations.edit.confirm": "Խմբագրել", "confirmations.logout.confirm": "Ելք", "confirmations.logout.message": "Համոզո՞ւած ես, որ ուզում ես դուրս գալ", "confirmations.mute.confirm": "Լռեցնել", - "confirmations.mute.explanation": "Սա թաքցնելու ա իրենց գրառումներն, ինչպէս նաեւ իրենց նշող գրառումներն, բայց իրենք միեւնոյն է կը կարողանան հետեւել ձեզ եւ տեսնել ձեր գրառումները։", - "confirmations.mute.message": "Վստա՞հ ես, որ ուզում ես {name}֊ին լռեցնել։", "confirmations.redraft.confirm": "Ջնջել եւ խմբագրել նորից", "confirmations.reply.confirm": "Պատասխանել", "confirmations.reply.message": "Այս պահին պատասխանելը կը չեղարկի ձեր՝ այս պահին անաւարտ հաղորդագրութիւնը։ Համոզուա՞ծ էք։", @@ -235,7 +230,6 @@ "hashtag.column_settings.tag_toggle": "Ներառել լրացուցիչ պիտակները այս սիւնակում ", "hashtag.follow": "Հետեւել պիտակին", "hashtag.unfollow": "Չհետեւել պիտակին", - "home.column_settings.basic": "Հիմնական", "home.column_settings.show_reblogs": "Ցուցադրել տարածածները", "home.column_settings.show_replies": "Ցուցադրել պատասխանները", "home.hide_announcements": "Թաքցնել յայտարարութիւնները", @@ -303,9 +297,6 @@ "lists.subheading": "Քո ցանկերը", "load_pending": "{count, plural, one {# նոր նիւթ} other {# նոր նիւթ}}", "media_gallery.toggle_visible": "Ցուցադրել/թաքցնել", - "mute_modal.duration": "Տեւողութիւն", - "mute_modal.hide_notifications": "Թաքցնե՞լ ծանուցումներն այս օգտատիրոջից։", - "mute_modal.indefinite": "Անժամկէտ", "navigation_bar.about": "Մասին", "navigation_bar.blocks": "Արգելափակուած օգտատէրեր", "navigation_bar.bookmarks": "Էջանիշեր", @@ -345,9 +336,6 @@ "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": "Նշումներ՝", @@ -471,7 +459,6 @@ "status.direct": "Մասնաւոր յիշատակում @{name}", "status.direct_indicator": "Մասնաւոր յիշատակում", "status.edit": "Խմբագրել", - "status.edited": "Խմբագրուել է՝ {date}", "status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}", "status.embed": "Ներդնել", "status.favourite": "Հավանել", diff --git a/app/javascript/mastodon/locales/ia.json b/app/javascript/mastodon/locales/ia.json index 31c9ef7394c350..7418b213e7360a 100644 --- a/app/javascript/mastodon/locales/ia.json +++ b/app/javascript/mastodon/locales/ia.json @@ -123,21 +123,17 @@ "compose_form.spoiler.unmarked": "Adder advertimento de contento", "compose_form.spoiler_placeholder": "Advertimento de contento (optional)", "confirmation_modal.cancel": "Cancellar", - "confirmations.block.block_and_report": "Blocar e signalar", "confirmations.block.confirm": "Blocar", - "confirmations.block.message": "Es tu secur que tu vole blocar {name}?", "confirmations.cancel_follow_request.confirm": "Retirar requesta", "confirmations.cancel_follow_request.message": "Es tu secur que tu vole retirar tu requesta a sequer a {name}?", "confirmations.delete.confirm": "Deler", "confirmations.delete.message": "Es tu secur que tu vole deler iste message?", "confirmations.delete_list.confirm": "Deler", "confirmations.delete_list.message": "Es tu secur que tu vole deler permanentemente iste lista?", - "confirmations.domain_block.confirm": "Blocar le dominio complete", "confirmations.edit.confirm": "Modificar", "confirmations.logout.confirm": "Clauder le session", "confirmations.logout.message": "Es tu secur que tu vole clauder le session?", "confirmations.mute.confirm": "Silentiar", - "confirmations.mute.message": "Es tu secur que tu vole silentiar {name}?", "confirmations.reply.confirm": "Responder", "confirmations.unfollow.confirm": "Non plus sequer", "confirmations.unfollow.message": "Es tu secur que tu vole non plus sequer {name}?", @@ -155,6 +151,7 @@ "disabled_account_banner.account_settings": "Parametros de conto", "disabled_account_banner.text": "Tu conto {disabledAccount} es actualmente disactivate.", "dismissable_banner.dismiss": "Dimitter", + "domain_pill.username": "Nomine de usator", "embed.preview": "Hic es como il parera:", "emoji_button.activity": "Activitate", "emoji_button.clear": "Rader", @@ -269,8 +266,6 @@ "lists.subheading": "Tu listas", "loading_indicator.label": "Cargante…", "media_gallery.toggle_visible": "{number, plural, one {Celar imagine} other {Celar imagines}}", - "mute_modal.duration": "Duration", - "mute_modal.hide_notifications": "Celar notificationes de iste usator?", "navigation_bar.about": "A proposito de", "navigation_bar.advanced_interface": "Aperir in un interfacie web avantiate", "navigation_bar.blocks": "Usatores blocate", @@ -297,7 +292,6 @@ "notifications.clear": "Rader notificationes", "notifications.column_settings.alert": "Notificationes de scriptorio", "notifications.column_settings.favourite": "Favoritos:", - "notifications.column_settings.filter_bar.advanced": "Monstrar tote le categorias", "notifications.column_settings.follow": "Nove sequitores:", "notifications.column_settings.mention": "Mentiones:", "notifications.column_settings.poll": "Resultatos del inquesta:", @@ -367,7 +361,6 @@ "status.direct": "Mentionar privatemente a @{name}", "status.direct_indicator": "Mention private", "status.edit": "Modificar", - "status.edited": "Modificate le {date}", "status.edited_x_times": "Modificate {count, plural, one {{count} tempore} other {{count} tempores}}", "status.favourite": "Adder al favoritos", "status.filter": "Filtrar iste message", diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json index 88e99a7086a757..764c081119b54a 100644 --- a/app/javascript/mastodon/locales/id.json +++ b/app/javascript/mastodon/locales/id.json @@ -140,9 +140,7 @@ "compose_form.spoiler.marked": "Hapus peringatan tentang isi konten", "compose_form.spoiler.unmarked": "Tambahkan peringatan tentang isi konten", "confirmation_modal.cancel": "Batal", - "confirmations.block.block_and_report": "Blokir & Laporkan", "confirmations.block.confirm": "Blokir", - "confirmations.block.message": "Apa Anda yakin ingin memblokir {name}?", "confirmations.cancel_follow_request.confirm": "Batalkan permintaan", "confirmations.cancel_follow_request.message": "Apakah Anda yakin ingin membatalkan permintaan Anda untuk mengikuti {name}?", "confirmations.delete.confirm": "Hapus", @@ -151,14 +149,11 @@ "confirmations.delete_list.message": "Apakah Anda yakin untuk menghapus daftar ini secara permanen?", "confirmations.discard_edit_media.confirm": "Buang", "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": "Ubah", "confirmations.logout.confirm": "Keluar", "confirmations.logout.message": "Apakah Anda yakin ingin keluar?", "confirmations.mute.confirm": "Bisukan", - "confirmations.mute.explanation": "Ini akan menyembunyikan pos dari mereka dan pos yang menyebut mereka, tapi ini tetap mengizinkan mereka melihat posmu dan mengikutimu.", - "confirmations.mute.message": "Apa Anda yakin ingin membisukan {name}?", "confirmations.redraft.confirm": "Hapus dan susun ulang", "confirmations.reply.confirm": "Balas", "confirmations.reply.message": "Membalas sekarang akan menimpa pesan yang sedang Anda buat. Anda yakin ingin melanjutkan?", @@ -270,7 +265,6 @@ "hashtag.column_settings.tag_toggle": "Include additional tags in this column", "hashtag.follow": "Ikuti tagar", "hashtag.unfollow": "Batalkan pengikutan tagar", - "home.column_settings.basic": "Dasar", "home.column_settings.show_reblogs": "Tampilkan boost", "home.column_settings.show_replies": "Tampilkan balasan", "home.hide_announcements": "Sembunyikan pengumuman", @@ -341,9 +335,6 @@ "load_pending": "{count, plural, other {# item baru}}", "media_gallery.toggle_visible": "Tampil/Sembunyikan", "moved_to_account_banner.text": "Akun {disabledAccount} Anda kini dinonaktifkan karena Anda pindah ke {movedToAccount}.", - "mute_modal.duration": "Durasi", - "mute_modal.hide_notifications": "Sembunyikan notifikasi dari pengguna ini?", - "mute_modal.indefinite": "Tak terbatas", "navigation_bar.about": "Tentang", "navigation_bar.blocks": "Pengguna diblokir", "navigation_bar.bookmarks": "Markah", @@ -381,9 +372,6 @@ "notifications.column_settings.admin.report": "Laporan baru:", "notifications.column_settings.admin.sign_up": "Pendaftaran baru:", "notifications.column_settings.alert": "Notifikasi desktop", - "notifications.column_settings.filter_bar.advanced": "Tampilkan semua kategori", - "notifications.column_settings.filter_bar.category": "Bilah penyaring cepat", - "notifications.column_settings.filter_bar.show_bar": "Tampilkan bilah filter", "notifications.column_settings.follow": "Pengikut baru:", "notifications.column_settings.follow_request": "Permintaan mengikuti baru:", "notifications.column_settings.mention": "Balasan:", @@ -527,7 +515,6 @@ "status.delete": "Hapus", "status.detailed_status": "Tampilan detail percakapan", "status.edit": "Edit", - "status.edited": "Diedit {date}", "status.edited_x_times": "Diedit {count, plural, other {{count} kali}}", "status.embed": "Tanam", "status.filter": "Saring kiriman ini", diff --git a/app/javascript/mastodon/locales/ie.json b/app/javascript/mastodon/locales/ie.json index 7bd938c1bf447e..17f312418d40c3 100644 --- a/app/javascript/mastodon/locales/ie.json +++ b/app/javascript/mastodon/locales/ie.json @@ -89,6 +89,10 @@ "announcement.announcement": "Proclamation", "attachments_list.unprocessed": "(íntractat)", "audio.hide": "Celar audio", + "block_modal.show_less": "Monstrar minu", + "block_modal.show_more": "Monstrar plu", + "block_modal.title": "Bloccar usator?", + "block_modal.you_wont_see_mentions": "Tu ne va vider postas mentionant li usator.", "boost_modal.combo": "Li proxim vez tu posse pressar {combo} por passar to-ci", "bundle_column_error.copy_stacktrace": "Copiar erra-raporte", "bundle_column_error.error.body": "Li demandat págine ne posset esser rendit. Fórsan it es un problema in nor code, o un problema de compatibilitá con li navigator.", @@ -160,9 +164,7 @@ "compose_form.spoiler.unmarked": "Adjunter avise pri li contenete", "compose_form.spoiler_placeholder": "Advertiment de contenete (optional)", "confirmation_modal.cancel": "Anullar", - "confirmations.block.block_and_report": "Bloccar & Raportar", "confirmations.block.confirm": "Bloccar", - "confirmations.block.message": "Esque tu vermen vole bloccar {name}?", "confirmations.cancel_follow_request.confirm": "Retraer petition", "confirmations.cancel_follow_request.message": "Esque tu vermen vole retraer tui petition sequer {name}?", "confirmations.delete.confirm": "Deleter", @@ -171,15 +173,13 @@ "confirmations.delete_list.message": "Esque tu vermen vole permanentmen deleter ti-ci liste?", "confirmations.discard_edit_media.confirm": "Forjettar", "confirmations.discard_edit_media.message": "Tu have ínconservat changes al descrition de medie o al previse, forjettar les sin egarda?", - "confirmations.domain_block.confirm": "Bloccar li tot dominia", + "confirmations.domain_block.confirm": "Bloccar servitor", "confirmations.domain_block.message": "Esque tu es certissim que tu vole bloccar li tot {domain}? In mult casus, bloccar o silentiar quelc specific contos es suficent e preferibil. Tu ne va vider contenete de ti dominia in quelcunc public témpor-linea o in tui notificationes. Tui sequitores de ti dominia va esser removet.", "confirmations.edit.confirm": "Redacter", "confirmations.edit.message": "Redacter nu va remplazzar li missage quel tu actualmen composi. Esque tu vermen vole proceder?", "confirmations.logout.confirm": "Exear", "confirmations.logout.message": "Esque tu vermen vole exear?", "confirmations.mute.confirm": "Silentiar", - "confirmations.mute.explanation": "To-ci va celar postas de ilu e postas mentionant ilu, ma it ancor va permisser ilu vider tui postas e sequer te.", - "confirmations.mute.message": "Esque tu vermen vole silentiar {name}?", "confirmations.redraft.confirm": "Deleter & redacter", "confirmations.redraft.message": "Esque tu vermen vole deleter ti-ci posta e redacter it? Favorites e boosts va esser perdit, e responses al posta original va esser orfanat.", "confirmations.reply.confirm": "Responder", @@ -205,6 +205,7 @@ "dismissable_banner.explore_statuses": "Tis-ci es postas del social retage queles es popular hodie. Nov postas con plu mult boosts e favorites es monstrat plu alt.", "dismissable_banner.explore_tags": "Tis-ci es hashtags queles es popular che li social retage hodie. Hashtags usat de plu mult persones diferent es monstrat plu alt.", "dismissable_banner.public_timeline": "Tis-ci es li max recent public postas de persones che li social retage quem gente che {domain} seque.", + "domain_block_modal.block": "Bloccar servitor", "embed.instructions": "Inbedar ti-ci posta per copiar li code in infra.", "embed.preview": "Vi qualmen it va aspecter:", "emoji_button.activity": "Activitá", @@ -314,7 +315,6 @@ "hashtag.follow": "Sequer hashtag", "hashtag.unfollow": "Dessequer hashtag", "hashtags.and_other": "…e {count, plural, other {# in plu}}", - "home.column_settings.basic": "Basic", "home.column_settings.show_reblogs": "Monstrar boosts", "home.column_settings.show_replies": "Monstrar responses", "home.hide_announcements": "Celar proclamationes", @@ -400,9 +400,6 @@ "loading_indicator.label": "Cargant…", "media_gallery.toggle_visible": "{number, plural, one {Celar image} other {Celar images}}", "moved_to_account_banner.text": "Tui conto {disabledAccount} es actualmen desactivisat pro que tu movet te a {movedToAccount}.", - "mute_modal.duration": "Duration", - "mute_modal.hide_notifications": "Celar notificationes de ti-ci usator?", - "mute_modal.indefinite": "Índefinit", "navigation_bar.about": "Information", "navigation_bar.advanced_interface": "Aperter in li web-interfacie avansat", "navigation_bar.blocks": "Bloccat usatores", @@ -446,9 +443,6 @@ "notifications.column_settings.admin.sign_up": "Nov registrationes:", "notifications.column_settings.alert": "Notificationes sur li computator", "notifications.column_settings.favourite": "Favorites:", - "notifications.column_settings.filter_bar.advanced": "Monstrar omni categories", - "notifications.column_settings.filter_bar.category": "Rapid filtre-barre", - "notifications.column_settings.filter_bar.show_bar": "Monstrar filtre-barre", "notifications.column_settings.follow": "Nov sequitores:", "notifications.column_settings.follow_request": "Nov petitiones de sequer:", "notifications.column_settings.mention": "Mentiones:", @@ -650,7 +644,6 @@ "status.direct": "Privatmen mentionar @{name}", "status.direct_indicator": "Privat mention", "status.edit": "Modificar", - "status.edited": "Modificat ye {date}", "status.edited_x_times": "Modificat {count, plural, one {{count} vez} other {{count} vezes}}", "status.embed": "Inbedar", "status.favourite": "Favoritisar", diff --git a/app/javascript/mastodon/locales/ig.json b/app/javascript/mastodon/locales/ig.json index a4f72684222375..a9b300fa4f2a96 100644 --- a/app/javascript/mastodon/locales/ig.json +++ b/app/javascript/mastodon/locales/ig.json @@ -37,7 +37,6 @@ "confirmations.delete.confirm": "Hichapụ", "confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete_list.confirm": "Hichapụ", - "confirmations.domain_block.confirm": "Hide entire domain", "confirmations.edit.confirm": "Dezie", "confirmations.mute.confirm": "Mee ogbi", "confirmations.reply.confirm": "Zaa", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index c468f689ab776e..3382fa1aecca7b 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -149,9 +149,7 @@ "compose_form.spoiler.marked": "Text is hidden behind warning", "compose_form.spoiler.unmarked": "Text is not hidden", "confirmation_modal.cancel": "Anulez", - "confirmations.block.block_and_report": "Restriktez e Raportizez", "confirmations.block.confirm": "Restriktez", - "confirmations.block.message": "Ka vu certe volas restrikar {name}?", "confirmations.cancel_follow_request.confirm": "Desendez demando", "confirmations.cancel_follow_request.message": "Ka vu certe volas desendar vua demando di sequar {name}?", "confirmations.delete.confirm": "Efacez", @@ -160,15 +158,12 @@ "confirmations.delete_list.message": "Ka vu certe volas netempale efacar ca listo?", "confirmations.discard_edit_media.confirm": "Efacez", "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": "Modifikez", "confirmations.edit.message": "Modifikar nun remplasos la mesajo quon vu nune skribas. Ka vu certe volas procedar?", "confirmations.logout.confirm": "Ekirez", "confirmations.logout.message": "Ka tu certe volas ekirar?", "confirmations.mute.confirm": "Silencigez", - "confirmations.mute.explanation": "Co celigos posti de oli e posti quo mencionas oli, ma ol ankore permisas oli vidar vua posti e sequar vu.", - "confirmations.mute.message": "Ka vu certe volas silencigar {name}?", "confirmations.redraft.confirm": "Efacez e riskisez", "confirmations.redraft.message": "Ka vu certe volas efacar ca posto e riskisigar ol? Favoriziti e repeti esos perdita, e respondi al posto originala esos orfanigita.", "confirmations.reply.confirm": "Respondez", @@ -292,7 +287,6 @@ "hashtag.follow": "Sequez hashtago", "hashtag.unfollow": "Desequez hashtago", "hashtags.and_other": "…e {count, plural, one {# plusa}other {# plusa}}", - "home.column_settings.basic": "Simpla", "home.column_settings.show_reblogs": "Montrar repeti", "home.column_settings.show_replies": "Montrar respondi", "home.hide_announcements": "Celez anunci", @@ -378,9 +372,6 @@ "loading_indicator.label": "Kargante…", "media_gallery.toggle_visible": "Chanjar videbleso", "moved_to_account_banner.text": "Vua konto {disabledAccount} es nune desaktiva pro ke vu movis a {movedToAccount}.", - "mute_modal.duration": "Durado", - "mute_modal.hide_notifications": "Celez avizi de ca uzanto?", - "mute_modal.indefinite": "Nedefinitiva", "navigation_bar.about": "Pri co", "navigation_bar.advanced_interface": "Apertez per retintervizajo", "navigation_bar.blocks": "Blokusita uzeri", @@ -424,9 +415,6 @@ "notifications.column_settings.admin.sign_up": "Nova registranti:", "notifications.column_settings.alert": "Desktopavizi", "notifications.column_settings.favourite": "Favoriziti:", - "notifications.column_settings.filter_bar.advanced": "Montrez omna kategorii", - "notifications.column_settings.filter_bar.category": "Rapidfiltrobaro", - "notifications.column_settings.filter_bar.show_bar": "Montrez filtrobaro", "notifications.column_settings.follow": "Nova sequanti:", "notifications.column_settings.follow_request": "Nova sequodemandi:", "notifications.column_settings.mention": "Mencioni:", @@ -614,7 +602,6 @@ "status.direct": "Private mencionez @{name}", "status.direct_indicator": "Privata menciono", "status.edit": "Modifikez", - "status.edited": "Modifikesis ye {date}", "status.edited_x_times": "Modifikesis {count, plural, one {{count} foyo} other {{count} foyi}}", "status.embed": "Eninsertez", "status.favourite": "Favorizar", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index 1f42180159958c..d050aa03116b60 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -89,6 +89,14 @@ "announcement.announcement": "Auglýsing", "attachments_list.unprocessed": "(óunnið)", "audio.hide": "Fela hljóð", + "block_modal.remote_users_caveat": "Við munum biðja {domain} netþjóninn um að virða ákvörðun þína. Hitt er svo annað mál hvort hann fari eftir þessu, ekki er hægt að tryggja eftirfylgni því sumir netþjónar meðhöndla útilokanir á sinn hátt. Opinberar færslur gætu verið sýnilegar notendum sem ekki eru skráðir inn.", + "block_modal.show_less": "Sýna minna", + "block_modal.show_more": "Sýna meira", + "block_modal.they_cant_mention": "Viðkomandi geta ekki minnst á þig eða fylgst með þér.", + "block_modal.they_cant_see_posts": "Viðkomandi geta ekki séð færslurnar þínar og þú ekki þeirra.", + "block_modal.they_will_know": "Viðkomandi geta séð að þeir eru útilokaðir.", + "block_modal.title": "Útiloka notanda?", + "block_modal.you_wont_see_mentions": "Þú munt ekki sjá færslur sem minnast á viðkomandi aðila.", "boost_modal.combo": "Þú getur ýtt á {combo} til að sleppa þessu næst", "bundle_column_error.copy_stacktrace": "Afrita villuskýrslu", "bundle_column_error.error.body": "Umbeðna síðau var ekki hægt að myndgera. Það gæti verið vegna villu í kóðanum okkar eða vandamáls með samhæfni vafra.", @@ -160,9 +168,7 @@ "compose_form.spoiler.unmarked": "Bæta við aðvörun vegna efnis", "compose_form.spoiler_placeholder": "Aðvörun vegna efnis (valkvætt)", "confirmation_modal.cancel": "Hætta við", - "confirmations.block.block_and_report": "Útiloka og kæra", "confirmations.block.confirm": "Útiloka", - "confirmations.block.message": "Ertu viss um að þú viljir loka á {name}?", "confirmations.cancel_follow_request.confirm": "Taka beiðni til baka", "confirmations.cancel_follow_request.message": "Ertu viss um að þú viljir taka til baka beiðnina um að fylgjast með {name}?", "confirmations.delete.confirm": "Eyða", @@ -171,15 +177,13 @@ "confirmations.delete_list.message": "Ertu viss um að þú viljir eyða þessum lista endanlega?", "confirmations.discard_edit_media.confirm": "Henda", "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.confirm": "Útiloka netþjón", "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", - "confirmations.mute.explanation": "Þetta mun fela færslur frá þeim og þær færslur þar sem minnst er á þau, en það mun samt sem áður gera þeim kleift að sjá færslurnar þínar og að fylgjast með þér.", - "confirmations.mute.message": "Ertu viss um að þú viljir þagga niður í {name}?", "confirmations.redraft.confirm": "Eyða og endurvinna drög", "confirmations.redraft.message": "Ertu viss um að þú viljir eyða þessari færslu og enduvinna drögin? Eftirlæti og endurbirtingar munu glatast og svör við upprunalegu færslunni munu verða munaðarlaus.", "confirmations.reply.confirm": "Svara", @@ -205,6 +209,27 @@ "dismissable_banner.explore_statuses": "Þessar færslur frá þessum og öðrum netþjónum á dreifhýsta netkerfinu eru að fá aukna athygli í þessu töluðum orðum.", "dismissable_banner.explore_tags": "Þetta eru myllumerki sem í augnablikinu eru að fá aukna athygli hjá fólki á þessum og öðrum netþjónum á dreifhýsta netkerfinu.", "dismissable_banner.public_timeline": "Þetta eru nýjustu opinberu færslurnar frá fólki á samfélagsnetinu sem fólk á {domain} fylgjast með.", + "domain_block_modal.block": "Útiloka netþjón", + "domain_block_modal.block_account_instead": "Útiloka {name} í staðinn", + "domain_block_modal.they_can_interact_with_old_posts": "Fólk frá þessum netþjóni getur sýslað með eldri færslur þínar.", + "domain_block_modal.they_cant_follow": "Enginn frá þessum netþjóni getur fylgst með þér.", + "domain_block_modal.they_wont_know": "Viðkomandi mun ekki vita að hann hafi verið útilokaður.", + "domain_block_modal.title": "Útiloka lén?", + "domain_block_modal.you_will_lose_followers": "Allir fylgjendur þínir af þessum netþjóni verða fjarlægðir.", + "domain_block_modal.you_wont_see_posts": "Þú munt ekki sjá neinar færslur eða tilkynningar frá notendum á þessum netþjóni.", + "domain_pill.activitypub_lets_connect": "Það gerir þér kleift að tengjast og eiga í samskiptum við fólk, ekki bara á Mastodon, heldur einnig á mörgum öðrum mismunandi samfélagsmiðlum.", + "domain_pill.activitypub_like_language": "ActivityPub er eins og tungumál sem Mastodon notar til að tala við önnur samfélagsnet.", + "domain_pill.server": "Netþjónn", + "domain_pill.their_handle": "Kennislóðin þeirra:", + "domain_pill.their_server": "Stafrænt heimili viðkomandi, þar sem allar færslur hans eru hýstar.", + "domain_pill.their_username": "Sértækt auðkenni viðkomandi á netþjóni hans. Það er mögulegt að finna notendur með sama notandanafn á mismunandi netþjónum.", + "domain_pill.username": "Notandanafn", + "domain_pill.whats_in_a_handle": "Hvað er í kennislóð (handle)?", + "domain_pill.who_they_are": "Vegna þess að kennislóðir segja hver einhver sé og hvar hann sé að finna, getur þú átt í samskiptum við fólk í gegnum samfélagsvef sem knúinn er af .", + "domain_pill.who_you_are": "Vegna þess að kennislóðin þín segir hver þú sért og hvar þig sé að finna, getur fólk átt í samskiptum við þig í gegnum samfélagsvef sem knúinn er af .", + "domain_pill.your_handle": "Kennislóðin þín:", + "domain_pill.your_server": "Stafrænt heimili þitt, þar sem allar færslur þínar eru hýstar. Kanntu ekki við þennan netþjón? Þú getur flutt þig á milli netþjóna hvenær sem er og tekið með þér alla fylgjendurna þína.", + "domain_pill.your_username": "Sértækt auðkenni þitt á þessum netþjóni. Það er mögulegt að finna notendur með sama notandanafn á mismunandi netþjónum.", "embed.instructions": "Felldu þessa færslu inn í vefsvæðið þitt með því að afrita kóðann hér fyrir neðan.", "embed.preview": "Svona mun þetta líta út:", "emoji_button.activity": "Virkni", @@ -241,6 +266,7 @@ "empty_column.list": "Það er ennþá ekki neitt á þessum lista. Þegar meðlimir á listanum senda inn nýjar færslur, munu þær birtast hér.", "empty_column.lists": "Þú ert ennþá ekki með neina lista. Þegar þú býrð til einhvern lista, munu hann birtast hér.", "empty_column.mutes": "Þú hefur ekki þaggað niður í neinum notendum ennþá.", + "empty_column.notification_requests": "Allt hreint! Það er ekkert hér. Þegar þú færð nýjar tilkynningar, munu þær birtast hér í samræmi við stillingarnar þínar.", "empty_column.notifications": "Þú ert ekki ennþá með neinar tilkynningar. Vertu í samskiptum við aðra til að umræður fari af stað.", "empty_column.public": "Það er ekkert hér! Skrifaðu eitthvað opinberlega, eða fylgstu með notendum á öðrum netþjónum til að fylla upp í þetta", "error.unexpected_crash.explanation": "Vegna villu í kóðanum okkar eða samhæfnivandamála í vafra er ekki hægt að birta þessa síðu svo vel sé.", @@ -271,6 +297,8 @@ "filter_modal.select_filter.subtitle": "Notaðu fyrirliggjandi flokk eða útbúðu nýjan", "filter_modal.select_filter.title": "Sía þessa færslu", "filter_modal.title.status": "Sía færslu", + "filtered_notifications_banner.pending_requests": "Tilkynningar frá {count, plural, =0 {engum} one {einum aðila} other {# aðilum}} sem þú gætir þekkt", + "filtered_notifications_banner.title": "Síaðar tilkynningar", "firehose.all": "Allt", "firehose.local": "þessum netþjóni", "firehose.remote": "öðrum netþjónum", @@ -314,7 +342,6 @@ "hashtag.follow": "Fylgjast með myllumerki", "hashtag.unfollow": "Hætta að fylgjast með myllumerki", "hashtags.and_other": "…og {count, plural, other {# til viðbótar}}", - "home.column_settings.basic": "Einfalt", "home.column_settings.show_reblogs": "Sýna endurbirtingar", "home.column_settings.show_replies": "Birta svör", "home.hide_announcements": "Fela auglýsingar", @@ -400,9 +427,15 @@ "loading_indicator.label": "Hleð inn…", "media_gallery.toggle_visible": "Víxla sýnileika", "moved_to_account_banner.text": "Aðgangurinn þinn {disabledAccount} er óvirkur í augnablikinu vegna þess að þú fluttir þig yfir á {movedToAccount}.", - "mute_modal.duration": "Lengd", - "mute_modal.hide_notifications": "Fela tilkynningar frá þessum notanda?", - "mute_modal.indefinite": "Óendanlegt", + "mute_modal.hide_from_notifications": "Fela úr tilkynningum", + "mute_modal.hide_options": "Fela valkosti", + "mute_modal.indefinite": "Þar til ég hætti að þagga niður í viðkomandi", + "mute_modal.show_options": "Birta valkosti", + "mute_modal.they_can_mention_and_follow": "Viðkomandi geta minnst á þig og fylgst með þér, en þú munt ekki sjá þá.", + "mute_modal.they_wont_know": "Viðkomandi aðilar munu ekki vita að þaggað hefur verið niður í þeim.", + "mute_modal.title": "Þagga niður í notanda?", + "mute_modal.you_wont_see_mentions": "Þú munt ekki sjá færslur sem minnast á viðkomandi aðila.", + "mute_modal.you_wont_see_posts": "Viðkomandi geta áfram séð færslurnar þínar en þú munt ekki sjá færslurnar þeirra.", "navigation_bar.about": "Um hugbúnaðinn", "navigation_bar.advanced_interface": "Opna í ítarlegu vefviðmóti", "navigation_bar.blocks": "Útilokaðir notendur", @@ -440,15 +473,16 @@ "notification.reblog": "{name} endurbirti færsluna þína", "notification.status": "{name} sendi inn rétt í þessu", "notification.update": "{name} breytti færslu", + "notification_requests.accept": "Samþykkja", + "notification_requests.dismiss": "Afgreiða", + "notification_requests.notifications_from": "Tilkynningar frá {name}", + "notification_requests.title": "Síaðar tilkynningar", "notifications.clear": "Hreinsa tilkynningar", "notifications.clear_confirmation": "Ertu viss um að þú viljir endanlega eyða öllum tilkynningunum þínum?", "notifications.column_settings.admin.report": "Nýjar kærur:", "notifications.column_settings.admin.sign_up": "Nýjar skráningar:", "notifications.column_settings.alert": "Tilkynningar á skjáborði", "notifications.column_settings.favourite": "Eftirlæti:", - "notifications.column_settings.filter_bar.advanced": "Birta alla flokka", - "notifications.column_settings.filter_bar.category": "Skyndisíustika", - "notifications.column_settings.filter_bar.show_bar": "Birta síustikuna", "notifications.column_settings.follow": "Nýir fylgjendur:", "notifications.column_settings.follow_request": "Nýjar beiðnir um að fylgjast með:", "notifications.column_settings.mention": "Tilvísanir:", @@ -474,6 +508,15 @@ "notifications.permission_denied": "Tilkynningar á skjáborði eru ekki aðgengilegar megna áður hafnaðra beiðna fyrir vafra", "notifications.permission_denied_alert": "Ekki var hægt að virkja tilkynningar á skjáborði, þar sem heimildum fyrir vafra var áður hafnað", "notifications.permission_required": "Tilkynningar á skjáborði eru ekki aðgengilegar þar sem nauðsynlegar heimildir hafa ekki verið veittar.", + "notifications.policy.filter_new_accounts.hint": "Útbúið {days, plural, one {síðasta daginn} other {síðustu # daga}}", + "notifications.policy.filter_new_accounts_title": "Nýir notendur", + "notifications.policy.filter_not_followers_hint": "Þar með talið fólk sem hefur fylgst með þér í minna en {days, plural, one {einn dag} other {# daga}}", + "notifications.policy.filter_not_followers_title": "Fólk sem fylgist ekki með þér", + "notifications.policy.filter_not_following_hint": "Þar til þú samþykkir viðkomandi handvirkt", + "notifications.policy.filter_not_following_title": "Fólk sem þú fylgist ekki með", + "notifications.policy.filter_private_mentions_hint": "Síað nema það sé í svari við einhverju þar sem þú minntist á viðkomandi eða ef þú fylgist með sendandanum", + "notifications.policy.filter_private_mentions_title": "Óumbeðið einkaspjall", + "notifications.policy.title": "Sía út tilkynningar frá…", "notifications_permission_banner.enable": "Virkja tilkynningar á skjáborði", "notifications_permission_banner.how_to_control": "Til að taka á móti tilkynningum þegar Mastodon er ekki opið, skaltu virkja tilkynningar á skjáborði. Þegar þær eru orðnar virkar geturðu stýrt nákvæmlega hverskonar atvik framleiða tilkynningar með því að nota {icon}-hnappinn hér fyrir ofan.", "notifications_permission_banner.title": "Aldrei missa af neinu", @@ -650,10 +693,11 @@ "status.direct": "Einkaspjall við @{name}", "status.direct_indicator": "Einkaspjall", "status.edit": "Breyta", - "status.edited": "Breytt {date}", + "status.edited": "Síðast breytt {date}", "status.edited_x_times": "Breytt {count, plural, one {{count} sinni} other {{count} sinnum}}", "status.embed": "Ívefja", "status.favourite": "Eftirlæti", + "status.favourites": "{count, plural, one {eftirlæti} other {eftirlæti}}", "status.filter": "Sía þessa færslu", "status.filtered": "Síað", "status.hide": "Fela færslu", @@ -674,6 +718,7 @@ "status.reblog": "Endurbirting", "status.reblog_private": "Endurbirta til upphaflegra lesenda", "status.reblogged_by": "{name} endurbirti", + "status.reblogs": "{count, plural, one {endurbirting} other {endurbirtingar}}", "status.reblogs.empty": "Enginn hefur ennþá endurbirt þessa færslu. Þegar einhver gerir það, mun það birtast hér.", "status.redraft": "Eyða og endurvinna drög", "status.remove_bookmark": "Fjarlægja bókamerki", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index 9e68216a332dda..3b4ea15f9e1b61 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -160,9 +160,7 @@ "compose_form.spoiler.unmarked": "Aggiungi l'avviso del contenuto", "compose_form.spoiler_placeholder": "Contenuto sensibile (facoltativo)", "confirmation_modal.cancel": "Annulla", - "confirmations.block.block_and_report": "Blocca & Segnala", "confirmations.block.confirm": "Blocca", - "confirmations.block.message": "Sei sicuro di voler bloccare {name}?", "confirmations.cancel_follow_request.confirm": "Annulla la richiesta", "confirmations.cancel_follow_request.message": "Sei sicuro di voler annullare la tua richiesta per seguire {name}?", "confirmations.delete.confirm": "Elimina", @@ -171,15 +169,12 @@ "confirmations.delete_list.message": "Sei sicuro di voler eliminare permanentemente questa lista?", "confirmations.discard_edit_media.confirm": "Scarta", "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", - "confirmations.mute.explanation": "Questo nasconderà i post da loro e i post che li menzionano, ma consentirà comunque loro di visualizzare i tuoi post e di seguirti.", - "confirmations.mute.message": "Sei sicuro di voler silenziare {name}?", "confirmations.redraft.confirm": "Elimina e riscrivi", "confirmations.redraft.message": "Sei sicuro di voler eliminare questo post e riscriverlo? I preferiti e i boost andranno persi e le risposte al post originale non saranno più collegate.", "confirmations.reply.confirm": "Rispondi", @@ -241,6 +236,7 @@ "empty_column.list": "Non c'è ancora nulla in questa lista. Quando i membri di questa lista pubblicheranno dei nuovi post, appariranno qui.", "empty_column.lists": "Non hai ancora alcuna lista. Quando ne creerai una, apparirà qui.", "empty_column.mutes": "Non hai ancora silenziato alcun utente.", + "empty_column.notification_requests": "Tutto chiaro! Non c'è niente qui. Quando ricevi nuove notifiche, verranno visualizzate qui in base alle tue impostazioni.", "empty_column.notifications": "Non hai ancora nessuna notifica. Quando altre persone interagiranno con te, le vedrai qui.", "empty_column.public": "Non c'è nulla qui! Scrivi qualcosa pubblicamente o segui manualmente gli utenti dagli altri server per riempire questo spazio", "error.unexpected_crash.explanation": "A causa di un bug nel nostro codice o di un problema di compatibilità del browser, non è stato possibile visualizzare correttamente questa pagina.", @@ -271,6 +267,8 @@ "filter_modal.select_filter.subtitle": "Usa una categoria esistente o creane una nuova", "filter_modal.select_filter.title": "Filtra questo post", "filter_modal.title.status": "Filtra un post", + "filtered_notifications_banner.pending_requests": "Notifiche da {count, plural, =0 {nessuno} one {una persona} other {# persone}} che potresti conoscere", + "filtered_notifications_banner.title": "Notifiche filtrate", "firehose.all": "Tutto", "firehose.local": "Questo server", "firehose.remote": "Altri server", @@ -314,7 +312,6 @@ "hashtag.follow": "Segui l'hashtag", "hashtag.unfollow": "Smetti di seguire l'hashtag", "hashtags.and_other": "…e {count, plural, other {# in più}}", - "home.column_settings.basic": "Base", "home.column_settings.show_reblogs": "Mostra reblog", "home.column_settings.show_replies": "Mostra risposte", "home.hide_announcements": "Nascondi annunci", @@ -400,9 +397,6 @@ "loading_indicator.label": "Caricamento…", "media_gallery.toggle_visible": "{number, plural, one {Nascondi immagine} other {Nascondi immagini}}", "moved_to_account_banner.text": "Il tuo profilo {disabledAccount} è correntemente disabilitato perché ti sei spostato a {movedToAccount}.", - "mute_modal.duration": "Durata", - "mute_modal.hide_notifications": "Nascondere le notifiche da questo utente?", - "mute_modal.indefinite": "Per sempre", "navigation_bar.about": "Info", "navigation_bar.advanced_interface": "Apri nell'interfaccia web avanzata", "navigation_bar.blocks": "Utenti bloccati", @@ -440,15 +434,16 @@ "notification.reblog": "{name} ha rebloggato il tuo post", "notification.status": "{name} ha appena pubblicato un post", "notification.update": "{name} ha modificato un post", + "notification_requests.accept": "Accetta", + "notification_requests.dismiss": "Ignora", + "notification_requests.notifications_from": "Notifiche da {name}", + "notification_requests.title": "Notifiche filtrate", "notifications.clear": "Cancella le notifiche", "notifications.clear_confirmation": "Sei sicuro di voler cancellare permanentemente tutte le tue notifiche?", "notifications.column_settings.admin.report": "Nuove segnalazioni:", "notifications.column_settings.admin.sign_up": "Nuove iscrizioni:", "notifications.column_settings.alert": "Notifiche desktop", "notifications.column_settings.favourite": "Preferiti:", - "notifications.column_settings.filter_bar.advanced": "Mostra tutte le categorie", - "notifications.column_settings.filter_bar.category": "Barra rapida del filtro", - "notifications.column_settings.filter_bar.show_bar": "Mostra la barra del filtro", "notifications.column_settings.follow": "Nuovi seguaci:", "notifications.column_settings.follow_request": "Nuove richieste di seguirti:", "notifications.column_settings.mention": "Menzioni:", @@ -474,6 +469,15 @@ "notifications.permission_denied": "Notifiche desktop non disponibili a causa della precedentemente negata richiesta di autorizzazioni del browser", "notifications.permission_denied_alert": "Impossibile abilitare le notifiche desktop, poiché l'autorizzazione del browser è stata precedentemente negata", "notifications.permission_required": "Notifiche destkop non disponibili poiché l'autorizzazione richiesta non è stata concessa.", + "notifications.policy.filter_new_accounts.hint": "Creato {days, plural, one {un giorno} other {# giorni}} fa", + "notifications.policy.filter_new_accounts_title": "Nuovi account", + "notifications.policy.filter_not_followers_hint": "Incluse le persone che ti seguono da meno di {days, plural, one {un giorno} other {# giorni}}", + "notifications.policy.filter_not_followers_title": "Persone che non ti seguono", + "notifications.policy.filter_not_following_hint": "Fino a quando non le approvi manualmente", + "notifications.policy.filter_not_following_title": "Persone che non segui", + "notifications.policy.filter_private_mentions_hint": "Filtrate, a meno che non sia in risposta alla tua menzione o se segui il mittente", + "notifications.policy.filter_private_mentions_title": "Menzioni private indesiderate", + "notifications.policy.title": "Filtra le notifiche da…", "notifications_permission_banner.enable": "Abilita le notifiche desktop", "notifications_permission_banner.how_to_control": "Per ricevere le notifiche quando Mastodon non è aperto, abilita le notifiche desktop. Puoi controllare precisamente quali tipi di interazioni generano le notifiche destkop, tramite il pulsante {icon} sopra, una volta abilitate.", "notifications_permission_banner.title": "Non perderti mai nulla", @@ -650,10 +654,11 @@ "status.direct": "Menziona privatamente @{name}", "status.direct_indicator": "Menzione privata", "status.edit": "Modifica", - "status.edited": "Modificato il {date}", + "status.edited": "Ultima modifica {date}", "status.edited_x_times": "Modificato {count, plural, one {{count} volta} other {{count} volte}}", "status.embed": "Incorpora", "status.favourite": "Preferito", + "status.favourites": "{count, plural, one {preferito} other {preferiti}}", "status.filter": "Filtra questo post", "status.filtered": "Filtrato", "status.hide": "Nascondi il post", @@ -674,6 +679,7 @@ "status.reblog": "Reblog", "status.reblog_private": "Reblog con visibilità originale", "status.reblogged_by": "Rebloggato da {name}", + "status.reblogs": "{count, plural, one {boost} other {boost}}", "status.reblogs.empty": "Ancora nessuno ha rebloggato questo post. Quando qualcuno lo farà, apparirà qui.", "status.redraft": "Elimina e riscrivi", "status.remove_bookmark": "Rimuovi segnalibro", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 0c6153b99c3635..203a65736009d9 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -241,9 +241,7 @@ "compose_form.spoiler.unmarked": "本文は隠されていません", "compose_form.spoiler_placeholder": "閲覧注意 (オプション)", "confirmation_modal.cancel": "キャンセル", - "confirmations.block.block_and_report": "ブロックし通報", "confirmations.block.confirm": "ブロック", - "confirmations.block.message": "本当に{name}さんをブロックしますか?", "confirmations.cancel_follow_request.confirm": "フォローリクエストを取り消す", "confirmations.cancel_follow_request.message": "{name}に対するフォローリクエストを取り消しますか?", "confirmations.delete.confirm": "削除", @@ -258,15 +256,12 @@ "confirmations.delete_antenna.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.message": "本当に{name}さんをミュートしますか?", "confirmations.redraft.confirm": "削除して下書きに戻す", "confirmations.redraft.message": "投稿を削除して下書きに戻します。この投稿へのお気に入り登録やブーストは失われ、返信は孤立することになります。よろしいですか?", "confirmations.reply.confirm": "返信", @@ -334,6 +329,7 @@ "empty_column.list": "このリストにはまだなにもありません。このリストのメンバーが新しい投稿をするとここに表示されます。", "empty_column.lists": "まだリストがありません。リストを作るとここに表示されます。", "empty_column.mutes": "まだ誰もミュートしていません。", + "empty_column.notification_requests": "ここに表示するものはありません。新しい通知を受け取ったとき、フィルタリング設定で通知がブロックされたアカウントがある場合はここに表示されます。", "empty_column.notifications": "まだ通知がありません。他の人とふれ合って会話を始めましょう。", "empty_column.public": "ここにはまだ何もありません! 公開で何かを投稿したり、他のサーバーのユーザーをフォローしたりしていっぱいにしましょう", "empty_column.status_references": "まだ誰も参照していません。参照されるとここに表示されます。", @@ -365,6 +361,8 @@ "filter_modal.select_filter.subtitle": "既存のカテゴリーを使用するか新規作成します", "filter_modal.select_filter.title": "この投稿をフィルターする", "filter_modal.title.status": "投稿をフィルターする", + "filtered_notifications_banner.pending_requests": "{count, plural, =0 {アカウント} other {#アカウント}}からの通知がブロックされています", + "filtered_notifications_banner.title": "ブロック済みの通知", "firehose.all": "すべて", "firehose.local": "このサーバー", "firehose.remote": "ほかのサーバー", @@ -408,7 +406,6 @@ "hashtag.follow": "ハッシュタグをフォローする", "hashtag.unfollow": "ハッシュタグのフォローを解除", "hashtags.and_other": "ほか{count, plural, other {#個}}", - "home.column_settings.basic": "基本設定", "home.column_settings.show_reblogs": "ブースト表示", "home.column_settings.show_replies": "返信表示", "home.hide_announcements": "お知らせを隠す", @@ -497,9 +494,6 @@ "loading_indicator.label": "読み込み中…", "media_gallery.toggle_visible": "{number, plural, one {画像を閉じる} other {画像を閉じる}}", "moved_to_account_banner.text": "あなたのアカウント『{disabledAccount}』は『{movedToAccount}』に移動したため現在無効になっています。", - "mute_modal.duration": "ミュートする期間", - "mute_modal.hide_notifications": "このユーザーからの通知を隠しますか?", - "mute_modal.indefinite": "無期限", "navigation_bar.about": "概要", "navigation_bar.advanced_interface": "上級者向けUIに戻る", "navigation_bar.antennas": "アンテナ", @@ -547,6 +541,10 @@ "notification.status_reference": "{name}さんがあなたの投稿を参照しました", "notification.update": "{name}さんが投稿を編集しました", "notification.warning": "あなたは警告を出され、「{action}」が実行されました。詳細はメールをご確認ください", + "notification_requests.accept": "受け入れる", + "notification_requests.dismiss": "無視", + "notification_requests.notifications_from": "{name}からの通知", + "notification_requests.title": "ブロック済みの通知", "notifications.clear": "通知を消去", "notifications.clear_confirmation": "本当に通知を消去しますか?", "notifications.column_settings.admin.report": "新しい通報:", @@ -554,9 +552,6 @@ "notifications.column_settings.alert": "デスクトップ通知", "notifications.column_settings.emoji_reaction": "絵文字リアクション", "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": "返信:", @@ -585,6 +580,15 @@ "notifications.permission_denied": "ブラウザの通知が拒否されているためデスクトップ通知は利用できません", "notifications.permission_denied_alert": "ブラウザの通知が拒否されているためデスクトップ通知を有効にできません", "notifications.permission_required": "必要な権限が付与されていないため、デスクトップ通知は利用できません。", + "notifications.policy.filter_new_accounts.hint": "作成から{days, plural, other {#日}}以内のアカウントからの通知がブロックされます", + "notifications.policy.filter_new_accounts_title": "新しいアカウントからの通知をブロックする", + "notifications.policy.filter_not_followers_hint": "フォローされていても、フォローから{days, plural, other {#日}}経っていない場合はブロックされます", + "notifications.policy.filter_not_followers_title": "フォローされていないアカウントからの通知をブロックする", + "notifications.policy.filter_not_following_hint": "手動で通知を受け入れたアカウントはブロックされません", + "notifications.policy.filter_not_following_title": "フォローしていないアカウントからの通知をブロックする", + "notifications.policy.filter_private_mentions_hint": "あなたがメンションした相手からの返信、およびフォローしているアカウントからの返信以外がブロックされます", + "notifications.policy.filter_private_mentions_title": "外部からの非公開の返信をブロックする", + "notifications.policy.title": "通知のフィルタリング", "notifications_permission_banner.enable": "デスクトップ通知を有効にする", "notifications_permission_banner.how_to_control": "Mastodonを閉じている間でも通知を受信するにはデスクトップ通知を有効にしてください。有効にすると上の {icon} ボタンから通知の内容を細かくカスタマイズできます。", "notifications_permission_banner.title": "お見逃しなく", @@ -789,7 +793,6 @@ "status.direct": "@{name}さんに非公開で投稿", "status.direct_indicator": "非公開の返信", "status.edit": "編集", - "status.edited": "{date}に編集", "status.edited_x_times": "{count}回編集", "status.embed": "埋め込み", "status.emoji_reaction": "絵文字リアクション", diff --git a/app/javascript/mastodon/locales/ka.json b/app/javascript/mastodon/locales/ka.json index 8628cb38a227cd..7af4dccd86bb2f 100644 --- a/app/javascript/mastodon/locales/ka.json +++ b/app/javascript/mastodon/locales/ka.json @@ -71,15 +71,12 @@ "compose_form.spoiler.unmarked": "ტექსტი არაა დამალული", "confirmation_modal.cancel": "უარყოფა", "confirmations.block.confirm": "ბლოკი", - "confirmations.block.message": "დარწმუნებული ხართ, გსურთ დაბლოკოთ {name}?", "confirmations.delete.confirm": "გაუქმება", "confirmations.delete.message": "დარწმუნებული ხართ, გსურთ გააუქმოთ ეს სტატუსი?", "confirmations.delete_list.confirm": "გაუქმება", "confirmations.delete_list.message": "დარწმუნებული ხართ, გსურთ სამუდამოდ გააუქმოთ ეს სია?", - "confirmations.domain_block.confirm": "მთელი დომენის დამალვა", "confirmations.domain_block.message": "ნაღდად, ნაღდად, დარწმუნებული ხართ, გსურთ დაბლოკოთ მთელი {domain}? უმეტეს შემთხვევაში რამდენიმე გამიზნული ბლოკი ან გაჩუმება საკმარისი და უკეთესია. კონტენტს ამ დომენიდან ვერ იხილავთ ვერც ერთ ღია თაიმლაინზე ან თქვენს შეტყობინებებში. ამ დომენიდან არსებული მიმდევრები ამოიშლება.", "confirmations.mute.confirm": "გაჩუმება", - "confirmations.mute.message": "დარწმუნებული ხართ, გსურთ გააჩუმოთ {name}?", "confirmations.redraft.confirm": "გაუქმება და გადანაწილება", "confirmations.unfollow.confirm": "ნუღარ მიჰყვები", "confirmations.unfollow.message": "დარწმუნებული ხართ, აღარ გსურთ მიჰყვებოდეთ {name}-ს?", @@ -114,7 +111,6 @@ "follow_request.reject": "უარყოფა", "getting_started.heading": "დაწყება", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", - "home.column_settings.basic": "ძირითადი", "home.column_settings.show_reblogs": "ბუსტების ჩვენება", "home.column_settings.show_replies": "პასუხების ჩვენება", "keyboard_shortcuts.back": "უკან გადასასვლელად", @@ -161,7 +157,6 @@ "lists.search": "ძებნა ადამიანებს შორის რომელთაც მიჰყვებით", "lists.subheading": "თქვენი სიები", "media_gallery.toggle_visible": "ხილვადობის ჩართვა", - "mute_modal.hide_notifications": "დავმალოთ შეტყობინებები ამ მომხმარებლისგან?", "navigation_bar.blocks": "დაბლოკილი მომხმარებლები", "navigation_bar.community_timeline": "ლოკალური თაიმლაინი", "navigation_bar.compose": "Compose new toot", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index 94f620491fd39f..fbe60c3bddd95f 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -48,7 +48,7 @@ "account.posts_with_replies": "Tisuffaɣ d tririyin", "account.report": "Cetki ɣef @{name}", "account.requested": "Di laɛḍil ad yettwaqbel. Ssit i wakken ad yefsex usuter n uḍfar", - "account.requested_follow": "{name} yessuter ad k-yeḍfer", + "account.requested_follow": "{name} yessuter ad k·m-yeḍfer", "account.share": "Bḍu amaɣnu n @{name}", "account.show_reblogs": "Ssken-d inebḍa n @{name}", "account.statuses_counter": "{count, plural, one {{counter} n tsuffeɣt} other {{counter} n tsuffaɣ}}", @@ -67,6 +67,11 @@ "alert.unexpected.title": "Ayhuh!", "announcement.announcement": "Ulɣu", "audio.hide": "Ffer amesli", + "block_modal.show_less": "Ssken-d drus", + "block_modal.show_more": "Ssken-d ugar", + "block_modal.they_cant_mention": "Ur zmiren ad k·m-id-bedren, ur zmiren ad k·m-ḍefren.", + "block_modal.they_cant_see_posts": "Ur zmiren ad walin tisufaɣ-nwen, ur tettwalim tid-nsen.", + "block_modal.title": "Sewḥel aseqdac ?", "boost_modal.combo": "Tzemreḍ ad tsiteḍ ɣef {combo} akken ad tzegleḍ aya tikelt i d-iteddun", "bundle_column_error.copy_stacktrace": "Nɣel tuccḍa n uneqqis", "bundle_column_error.error.title": "Uh, ala !", @@ -129,22 +134,18 @@ "compose_form.spoiler.marked": "Kkes aḍris yettwaffren deffir n walɣu", "compose_form.spoiler.unmarked": "Rnu aḍris yettwaffren deffir n walɣu", "confirmation_modal.cancel": "Sefsex", - "confirmations.block.block_and_report": "Sewḥel & sewɛed", "confirmations.block.confirm": "Sewḥel", - "confirmations.block.message": "Tebɣiḍ s tidet ad tesḥebseḍ {name}?", "confirmations.delete.confirm": "Kkes", "confirmations.delete.message": "Tebɣiḍ s tidet ad tekkseḍ tasuffeɣt-agi?", "confirmations.delete_list.confirm": "Kkes", "confirmations.delete_list.message": "Tebɣiḍ s tidet ad tekkseḍ umuɣ-agi i lebda?", "confirmations.discard_edit_media.confirm": "Sefsex", - "confirmations.domain_block.confirm": "Ffer taɣult meṛṛa", + "confirmations.domain_block.confirm": "Sewḥel aqeddac", "confirmations.edit.confirm": "Ẓreg", "confirmations.edit.message": "Abeddel tura ad d-yaru izen-nni i d-tegreḍ akka tura. Tetḥeqqeḍ tebɣiḍ ad tkemmleḍ?", "confirmations.logout.confirm": "Ffeɣ", "confirmations.logout.message": "D tidet tebɣiḍ ad teffɣeḍ?", "confirmations.mute.confirm": "Sgugem", - "confirmations.mute.explanation": "Aya ad yeffer iznan-is d wid i deg d-yettwabder neɣ d-tettwabder, maca xas akka yezmer neɣ tezmer awali n yiznan-inek d uḍfaṛ-ik.", - "confirmations.mute.message": "Tetḥeqqeḍ belli tebɣiḍ ad ttegugmeḍ {name}?", "confirmations.redraft.confirm": "Sfeḍ & Ɛiwed tira", "confirmations.reply.confirm": "Err", "confirmations.reply.message": "Tiririt akka tura ad k-degger izen-agi i tettaruḍ. Tebɣiḍ ad tkemmleḍ?", @@ -166,6 +167,12 @@ "dismissable_banner.explore_links": "D tiqsiḍin n yisallen i yettwabḍan ass-a deg web inmetti. Tiqsiḍin n yisallen timaynutin i d-yettwassufɣen s wugar n medden yemgaraden, d tid i d-yufraren ugar.", "dismissable_banner.explore_statuses": "Ti d tisufaɣ seg uzeṭṭa anmetti i d-yettawin tamyigawt ass-a. Tisufaɣ timaynutin yesεan aṭas n lǧehd d tid iḥemmlen s waṭas, ttwaεlayit d timezwura.", "dismissable_banner.explore_tags": "D wiyi i d ihacṭagen i d-yettawin tamyigawt deg web anmetti ass-a. Ihacṭagen i sseqdacen ugar n medden, εlayit d imezwura.", + "domain_block_modal.block": "Sewḥel aqeddac", + "domain_block_modal.they_cant_follow": "Yiwen ur yezmir ad k·m-id-yeḍfer seg uqeddac-a.", + "domain_pill.activitypub_like_language": "ActivityPub am tutlayt yettmeslay Mastodon d izeḍwan inmettiyen nniḍen.", + "domain_pill.server": "Aqeddac", + "domain_pill.username": "Isem n useqdac", + "domain_pill.your_server": "D axxam-inek·inem umḍin, anda i zedɣent akk tsuffaɣ-ik·im. Ur k·m-yeεǧib ara wa? Ssenfel-d iqeddacen melmi i ak·m-yehwa, awi-d daɣen ineḍfaren-ik·im yid-k·m.", "embed.instructions": "Ẓẓu addad-agi deg usmel-inek s wenγal n tangalt yellan sdaw-agi.", "embed.preview": "Akka ara d-iban:", "emoji_button.activity": "Aqeddic", @@ -190,13 +197,13 @@ "empty_column.bookmarked_statuses": "Ulac kra n tsuffeɣt i terniḍ ɣer yismenyifen-ik·im ar tura. Ticki terniḍ yiwet, ad d-tettwasken da.", "empty_column.community": "Tasuddemt tazayezt tadigant n yisallen d tilemt. Aru ihi kra akken ad tt-teččareḍ!", "empty_column.domain_blocks": "Ulac kra n taɣult yettwaffren ar tura.", - "empty_column.follow_requests": "Ulac ɣur-k ula yiwen n usuter n teḍfeṛt. Ticki teṭṭfeḍ-d yiwen ad d-yettwasken da.", + "empty_column.follow_requests": "Ulac ɣur-k·m ula yiwen n usuter n teḍfeṛt. Ticki teṭṭfeḍ-d yiwen ad d-yettwasken da.", "empty_column.hashtag": "Ar tura ulac kra n ugbur yesɛan assaɣ ɣer uhacṭag-agi.", "empty_column.home": "Tasuddemt tagejdant n yisallen d tilemt! Ẓer {public} neɣ nadi ad tafeḍ imseqdacen-nniḍen ad ten-ḍefṛeḍ.", "empty_column.list": "Ar tura ur yelli kra deg umuɣ-a. Ad d-yettwasken da ticki iɛeggalen n wumuɣ-a suffɣen-d kra.", - "empty_column.lists": "Ulac ɣur-k kra n wumuɣ yakan. Ad d-tettwasken da ticki tesluleḍ-d yiwet.", - "empty_column.mutes": "Ulac ɣur-k imseqdacen i yettwasgugmen.", - "empty_column.notifications": "Ulac ɣur-k tilɣa. Sedmer akked yemdanen-nniḍen akken ad tebduḍ adiwenni.", + "empty_column.lists": "Ulac ɣur-k·m kra n wumuɣ yakan. Ad d-tettwasken da ticki tesluleḍ-d yiwet.", + "empty_column.mutes": "Ulac ɣur-k·m imseqdacen i yettwasgugmen.", + "empty_column.notifications": "Ulac ɣur-k·m tilɣa. Sedmer akked yemdanen-nniḍen akken ad tebduḍ adiwenni.", "empty_column.public": "Ulac kra da! Aru kra, neɣ ḍfeṛ imdanen i yellan deg yiqeddacen-nniḍen akken ad d-teččar tsuddemt tazayezt", "error.unexpected_crash.next_steps": "Smiren asebter-a, ma ur yekkis ara wugur, ẓer d akken tzemreḍ ad tesqedceḍ Maṣṭudun deg yiminig-nniḍen neɣ deg usnas anaṣli.", "errors.unexpected_crash.copy_stacktrace": "Nɣel stacktrace ɣef wafus", @@ -209,14 +216,18 @@ "explore.trending_tags": "Ihacṭagen", "filter_modal.added.review_and_configure_title": "Iɣewwaṛen n imzizdig", "filter_modal.added.settings_link": "asebter n yiɣewwaṛen", + "filter_modal.added.short_explanation": "Tasuffeɣt-a tettwarna ɣer taggayt-a n yimsizdegen: {title}.", + "filter_modal.select_filter.expired": "yemmut", "filter_modal.select_filter.prompt_new": "Taggayt tamaynutt : {name}", "filter_modal.select_filter.search": "Nadi neɣ snulfu-d", + "filter_modal.select_filter.title": "Sizdeg tassufeɣt-a", "firehose.all": "Akk", "firehose.local": "Deg uqeddac-ayi", "firehose.remote": "Iqeddacen nniḍen", "follow_request.authorize": "Ssireg", "follow_request.reject": "Agi", "follow_suggestions.dismiss": "Ur ttɛawad ara ad t-id-sekneṭ", + "follow_suggestions.view_all": "Wali-ten akk", "follow_suggestions.who_to_follow": "Menhu ara ḍefṛeḍ", "followed_tags": "Ihacṭagen yettwaḍfaren", "footer.about": "Ɣef", @@ -242,11 +253,11 @@ "hashtag.counter_by_uses_today": "{count, plural, one {{counter} n tsuffeɣt} other {{counter} n tsuffaɣ}} assa", "hashtag.follow": "Ḍfeṛ ahacṭag", "hashtags.and_other": "…d {count, plural, one {}other {# nniḍen}}", - "home.column_settings.basic": "Igejdanen", "home.column_settings.show_reblogs": "Ssken-d beṭṭu", "home.column_settings.show_replies": "Ssken-d tiririyin", "home.hide_announcements": "Ffer ulɣuyen", "home.pending_critical_update.body": "Ma ulac aɣilif, leqqem aqeddac-ik Mastodon akken kan tzemreḍ !", + "home.pending_critical_update.link": "Wali ileqman", "home.show_announcements": "Ssken-d ulɣuyen", "interaction_modal.description.favourite": "S umiḍan ɣef Mastodon, tzemreḍ ad tesmenyifeḍ tasuffeɣt-a akken ad teǧǧeḍ amaru ad iẓer belli tḥemmleḍ-tt u ad tt-id-tsellkeḍ i ticki.", "interaction_modal.description.follow": "S umiḍan deg Mastodon, tzemreḍ ad tḍefreḍ {name} akken ad d-teṭṭfeḍ iznan-is deg lxiḍ-ik·im agejdan.", @@ -260,6 +271,7 @@ "interaction_modal.sign_in": "Ur tekcimeḍ ara ɣer uqeddac-a. Anda yella umiḍan-ik·im ?", "interaction_modal.sign_in_hint": "Ihi : Wa d asmel ideg tjerdeḍ. Ma ur tecfiḍ ara, nadi imayl n ummager deg tenkult-ik·im. Tzemreḍ daɣen ad d-tefkeḍ isem-ik·im n useqdac ummid ! (amedya @Mastodon@mastodon.social)", "interaction_modal.title.follow": "Ḍfer {name}", + "interaction_modal.title.reply": "Tiririt i tsuffeɣt n {name}", "intervals.full.days": "{number, plural, one {# n wass} other {# n wussan}}", "intervals.full.hours": "{number, plural, one {# n usarag} other {# n yesragen}}", "intervals.full.minutes": "{number, plural, one {# n tesdat} other {# n tesdatin}}", @@ -272,6 +284,7 @@ "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "i kennu ɣer wadda n tebdart", "keyboard_shortcuts.enter": "i tildin n tsuffeɣt", + "keyboard_shortcuts.favourites": "Ldi tabdert n yismenyifen", "keyboard_shortcuts.federated": "i tildin n tsuddemt tamatut n yisallen", "keyboard_shortcuts.heading": "Inegzumen n unasiw", "keyboard_shortcuts.home": "i tildin n tsuddemt tagejdant n yisallen", @@ -300,6 +313,7 @@ "lightbox.expand": "Simeɣer tamnaḍt n uskan n tugna", "lightbox.next": "Ɣer zdat", "lightbox.previous": "Ɣer deffir", + "limited_account_hint.action": "Wali amaɣnu akken yebɣu yili", "link_preview.author": "S-ɣur {name}", "lists.account.add": "Rnu ɣer tebdart", "lists.account.remove": "Kkes seg tebdart", @@ -317,11 +331,11 @@ "load_pending": "{count, plural, one {# n uferdis amaynut} other {# n yiferdisen imaynuten}}", "loading_indicator.label": "Yessalay-d …", "media_gallery.toggle_visible": "{number, plural, one {Ffer tugna} other {Ffer tugniwin}}", - "mute_modal.duration": "Tanzagt", - "mute_modal.hide_notifications": "Tebɣiḍ ad teffreḍ talɣutin n umseqdac-a?", - "mute_modal.indefinite": "Ur yettwasbadu ara", + "mute_modal.hide_options": "Ffer tinefrunin", + "mute_modal.show_options": "Sken-d tinefrunin", + "mute_modal.title": "Sgugem aseqdac?", "navigation_bar.about": "Ɣef", - "navigation_bar.blocks": "Imseqdacen yettusḥebsen", + "navigation_bar.blocks": "Iseqdacen yettusḥebsen", "navigation_bar.bookmarks": "Ticraḍ", "navigation_bar.community_timeline": "Tasuddemt tadigant", "navigation_bar.compose": "Aru tajewwiqt tamaynut", @@ -345,18 +359,19 @@ "navigation_bar.security": "Taɣellist", "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.follow": "iṭṭafar-ik·em-id {name}", - "notification.follow_request": "{name} yessuter-d ad k-yeḍfeṛ", + "notification.follow_request": "{name} yessuter-d ad k·m-yeḍfeṛ", "notification.mention": "{name} yebder-ik-id", "notification.own_poll": "Tafrant-ik·im tfuk", "notification.poll": "Tfukk tefrant ideg tettekkaḍ", "notification.reblog": "{name} yebḍa tajewwiqt-ik i tikelt-nniḍen", "notification.status": "{name} akken i d-yessufeɣ", + "notification_requests.accept": "Qbel", + "notification_requests.dismiss": "Agi", + "notification_requests.notifications_from": "Ilɣa sɣur {name}", "notifications.clear": "Sfeḍ tilɣa", "notifications.clear_confirmation": "Tebɣiḍ s tidet ad tekkseḍ akk tilɣa-inek·em i lebda?", "notifications.column_settings.alert": "Tilɣa n tnarit", "notifications.column_settings.favourite": "Imenyafen:", - "notifications.column_settings.filter_bar.advanced": "Ssken-d meṛṛa tiggayin", - "notifications.column_settings.filter_bar.category": "Iri n usizdeg uzrib", "notifications.column_settings.follow": "Imeḍfaṛen imaynuten:", "notifications.column_settings.follow_request": "Isuturen imaynuten n teḍfeṛt:", "notifications.column_settings.mention": "Abdar:", @@ -366,6 +381,7 @@ "notifications.column_settings.show": "Ssken-d tilɣa deg ujgu", "notifications.column_settings.sound": "Rmed imesli", "notifications.column_settings.status": "Tisuffaɣ timaynutin :", + "notifications.column_settings.unread_notifications.category": "Ilɣa ur nettwaɣra", "notifications.filter.all": "Akk", "notifications.filter.boosts": "Seǧhed", "notifications.filter.favourites": "Imenyafen", @@ -377,6 +393,14 @@ "notifications.group": "{count} n tilɣa", "notifications.mark_as_read": "Creḍ meṛṛa iilɣa am wakken ttwaɣran", "notifications.permission_denied": "D awezɣi ad yili wermad n yilɣa n tnarit axateṛ turagt tettwagdel.", + "notifications.policy.filter_new_accounts.hint": "Imiḍanen imaynuten i d-yennulfan deg {days, plural, one {yiwen n wass} other {# n wussan}} yezrin", + "notifications.policy.filter_new_accounts_title": "Imiḍan imaynuten", + "notifications.policy.filter_not_followers_hint": "Ula d wid akked tid i k·m-id-iḍefren, ur wwiḍen ara {days, plural, one {yiwen n wass} other {# n wussan}}", + "notifications.policy.filter_not_followers_title": "Wid akked tid ur k·m-id-yeṭṭafaren ara", + "notifications.policy.filter_not_following_hint": "Alamma tqebleḍ-ten s ufus", + "notifications.policy.filter_not_following_title": "Wid akked tid ur tettḍafareḍ ara", + "notifications.policy.filter_private_mentions_title": "Abdar uslig ur yettwasferken ara", + "notifications.policy.title": "Sizdeg ilɣa sɣur …", "notifications_permission_banner.enable": "Rmed talɣutin n tnarit", "notifications_permission_banner.title": "Ur zeggel acemma", "onboarding.action.back": "Tuɣalin ɣer deffir", @@ -385,8 +409,9 @@ "onboarding.actions.go_to_home": "Go to your home feed", "onboarding.compose.template": "Azul a #Mastodon!", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", - "onboarding.follows.title": "Popular on Mastodon", + "onboarding.follows.title": "Ttwassnen deg Mastodon", "onboarding.profile.display_name": "Isem ara d-yettwaskanen", + "onboarding.profile.note": "Tameddurt", "onboarding.profile.note_hint": "Tzemreḍ ad d-@tbedreḍ imdanen niḍen neɣ #ihacṭagen …", "onboarding.profile.save_and_continue": "Sekles, tkemmleḍ", "onboarding.profile.title": "Asbadu n umaɣnu", @@ -400,7 +425,7 @@ "onboarding.start.title": "Tseggmeḍ-tt !", "onboarding.steps.follow_people.body": "Aḍfer n medden yelhan, d tikti n Mastodon.", "onboarding.steps.follow_people.title": "Follow {count, plural, one {one person} other {# people}}", - "onboarding.steps.publish_status.body": "Say hello to the world.", + "onboarding.steps.publish_status.body": "Ini-as azul i umaḍal s uḍris, s tiwlafin, s tividyutin neɣ s tefranin {emoji}", "onboarding.steps.publish_status.title": "Aru tasuffeɣt-inek·inem tamezwarutt", "onboarding.steps.setup_profile.body": "Others are more likely to interact with you with a filled out profile.", "onboarding.steps.setup_profile.title": "Customize your profile", @@ -417,15 +442,16 @@ "poll_button.add_poll": "Rnu asenqed", "poll_button.remove_poll": "Kkes asenqed", "privacy.change": "Seggem tabaḍnit n yizen", - "privacy.direct.long": "Wid akk i d-yettwabdaren deg tuffeɣt", - "privacy.direct.short": "Imdanen ulmisen", - "privacy.private.long": "Ala wid i k-yeṭṭafaṛen", + "privacy.direct.long": "Wid akk i d-yettwabdaren deg tsuffeɣt", + "privacy.direct.short": "Imdanen yettwafernen", + "privacy.private.long": "Ala wid i k·m-yeṭṭafaṛen", "privacy.private.short": "Imeḍfaren", "privacy.public.long": "Kra n win yellan deg Masṭudun neɣ berra-s", "privacy.public.short": "Azayez", "privacy.unlisted.long": "Kra kan n ilguritmen", "privacy_policy.last_updated": "Aleqqem aneggaru {date}", "privacy_policy.title": "Tasertit tabaḍnit", + "recommended": "Yettuwelleh", "refresh": "Smiren", "regeneration_indicator.label": "Yessalay-d…", "regeneration_indicator.sublabel": "Tasuddemt tagejdant ara d-tettwaheggay!", @@ -490,9 +516,9 @@ "status.copy": "Nɣel assaɣ ɣer tasuffeɣt", "status.delete": "Kkes", "status.edit": "Ẓreg", - "status.edited": "Tettwaẓreg deg {date}", "status.edited_x_times": "Tettwaẓreg {count, plural, one {{count} n tikkelt} other {{count} n tikkal}}", "status.embed": "Seddu", + "status.filter": "Sizdeg tassufeɣt-a", "status.filtered": "Yettwasizdeg", "status.hide": "Ffer tasuffeɣt", "status.load_more": "Sali ugar", @@ -510,6 +536,7 @@ "status.reblogs.empty": "Ula yiwen ur yebḍi tajewwiqt-agi ar tura. Ticki yebḍa-tt yiwen, ad d-iban da.", "status.redraft": "Kkes tɛiwdeḍ tira", "status.remove_bookmark": "Kkes tacreḍt", + "status.replied_to": "Y·terra-yas i {name}", "status.reply": "Err", "status.replyAll": "Err i lxiḍ", "status.report": "Cetki ɣef @{name}", diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json index 1f6cc78a57efd2..bd0a806cdb9abe 100644 --- a/app/javascript/mastodon/locales/kk.json +++ b/app/javascript/mastodon/locales/kk.json @@ -105,20 +105,15 @@ "compose_form.spoiler.marked": "Мәтін ескертумен жасырылған", "compose_form.spoiler.unmarked": "Мәтін жасырылмаған", "confirmation_modal.cancel": "Қайтып алу", - "confirmations.block.block_and_report": "Блок және Шағым", "confirmations.block.confirm": "Бұғаттау", - "confirmations.block.message": "{name} атты қолданушыны бұғаттайтыныңызға сенімдісіз бе?", "confirmations.delete.confirm": "Өшіру", "confirmations.delete.message": "Бұл жазбаны өшіресіз бе?", "confirmations.delete_list.confirm": "Өшіру", "confirmations.delete_list.message": "Бұл тізімді жоясыз ба шынымен?", - "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.redraft.confirm": "Өшіруді құптау", "confirmations.reply.confirm": "Жауап", "confirmations.reply.message": "Жауабыңыз жазып жатқан жазбаңыздың үстіне кетеді. Жалғастырамыз ба?", @@ -181,7 +176,6 @@ "hashtag.column_settings.tag_mode.any": "Осылардың біреуін", "hashtag.column_settings.tag_mode.none": "Бұлардың ешқайсысын", "hashtag.column_settings.tag_toggle": "Осы бағанға қосымша тегтерді қосыңыз", - "home.column_settings.basic": "Негізгі", "home.column_settings.show_reblogs": "Бөлісулерді көрсету", "home.column_settings.show_replies": "Жауаптарды көрсету", "home.hide_announcements": "Анонстарды жасыр", @@ -235,7 +229,6 @@ "lists.subheading": "Тізімдеріңіз", "load_pending": "{count, plural, one {# жаңа нәрсе} other {# жаңа нәрсе}}", "media_gallery.toggle_visible": "Көрінуді қосу", - "mute_modal.hide_notifications": "Бұл қолданушы ескертпелерін жасырамыз ба?", "navigation_bar.blocks": "Бұғатталғандар", "navigation_bar.bookmarks": "Бетбелгілер", "navigation_bar.community_timeline": "Жергілікті желі", @@ -263,8 +256,6 @@ "notifications.clear": "Ескертпелерді тазарт", "notifications.clear_confirmation": "Шынымен барлық ескертпелерді өшіресіз бе?", "notifications.column_settings.alert": "Үстел ескертпелері", - "notifications.column_settings.filter_bar.advanced": "Барлық категорияны көрсет", - "notifications.column_settings.filter_bar.category": "Жедел сүзгі", "notifications.column_settings.follow": "Жаңа оқырмандар:", "notifications.column_settings.follow_request": "Жазылуға жаңа сұранымдар:", "notifications.column_settings.mention": "Аталымдар:", diff --git a/app/javascript/mastodon/locales/kn.json b/app/javascript/mastodon/locales/kn.json index 396aebbdf223ee..ceb0f8b9b6139b 100644 --- a/app/javascript/mastodon/locales/kn.json +++ b/app/javascript/mastodon/locales/kn.json @@ -31,7 +31,6 @@ "compose_form.spoiler.marked": "Text is hidden behind warning", "compose_form.spoiler.unmarked": "Text is not hidden", "confirmations.delete.message": "Are you sure you want to delete this status?", - "confirmations.domain_block.confirm": "Hide entire domain", "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_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", "embed.instructions": "Embed this status on your website by copying the code below.", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index d9192e5c61b046..5fd28cfd8128a5 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -89,6 +89,14 @@ "announcement.announcement": "공지사항", "attachments_list.unprocessed": "(처리 안 됨)", "audio.hide": "소리 숨기기", + "block_modal.remote_users_caveat": "우리는 {domain} 서버가 당신의 결정을 존중해 주길 부탁할 것입니다. 하지만 몇몇 서버는 차단을 다르게 취급할 수 있기 때문에 규정이 준수되는 것을 보장할 수는 없습니다. 공개 게시물은 로그인 하지 않은 사용자들에게 여전히 보여질 수 있습니다.", + "block_modal.show_less": "간략히 보기", + "block_modal.show_more": "더 보기", + "block_modal.they_cant_mention": "나를 멘션하거나 팔로우 할 수 없습니다.", + "block_modal.they_cant_see_posts": "내가 작성한 게시물을 볼 수 없고 나도 그가 작성한 게시물을 보지 않게 됩니다.", + "block_modal.they_will_know": "자신이 차단 당했다는 사실을 확인할 수 있습니다.", + "block_modal.title": "사용자를 차단할까요?", + "block_modal.you_wont_see_mentions": "그를 멘션하는 게시물을 더는 보지 않습니다.", "boost_modal.combo": "다음엔 {combo}를 눌러서 이 과정을 건너뛸 수 있습니다", "bundle_column_error.copy_stacktrace": "에러 리포트 복사하기", "bundle_column_error.error.body": "요청한 페이지를 렌더링 할 수 없습니다. 저희의 코드에 버그가 있거나, 브라우저 호환성 문제일 수 있습니다.", @@ -160,9 +168,7 @@ "compose_form.spoiler.unmarked": "열람 주의 문구 추가", "compose_form.spoiler_placeholder": "내용 경고 (선택사항)", "confirmation_modal.cancel": "취소", - "confirmations.block.block_and_report": "차단하고 신고하기", "confirmations.block.confirm": "차단", - "confirmations.block.message": "정말로 {name}를 차단하시겠습니까?", "confirmations.cancel_follow_request.confirm": "요청 삭제", "confirmations.cancel_follow_request.message": "정말 {name}님에 대한 팔로우 요청을 취소하시겠습니까?", "confirmations.delete.confirm": "삭제", @@ -171,15 +177,13 @@ "confirmations.delete_list.message": "정말로 이 리스트를 영구적으로 삭제하시겠습니까?", "confirmations.discard_edit_media.confirm": "저장 안함", "confirmations.discard_edit_media.message": "미디어 설명이나 미리보기에 대한 저장하지 않은 변경사항이 있습니다. 버리시겠습니까?", - "confirmations.domain_block.confirm": "도메인 전체를 차단", + "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.message": "정말로 {name} 님을 뮤트하시겠습니까?", "confirmations.redraft.confirm": "삭제하고 다시 쓰기", "confirmations.redraft.message": "정말로 이 게시물을 삭제하고 다시 쓰시겠습니까? 해당 게시물에 대한 부스트와 좋아요를 잃게 되고 원본에 대한 답장은 연결 되지 않습니다.", "confirmations.reply.confirm": "답글", @@ -205,6 +209,22 @@ "dismissable_banner.explore_statuses": "이 게시물들은 오늘 소셜 웹에서 호응을 얻고 있는 게시물들입니다. 부스트와 관심을 받는 새로운 글들이 높은 순위가 됩니다.", "dismissable_banner.explore_tags": "이 해시태그들은 이 서버와 분산화된 네트워크의 다른 서버에서 사람들의 인기를 끌고 있는 것들입니다.", "dismissable_banner.public_timeline": "이것들은 {domain}에 있는 사람들이 팔로우한 사람들의 최신 공개 게시물들입니다.", + "domain_block_modal.block": "서버 차단", + "domain_block_modal.block_account_instead": "대신 @{name}를 차단", + "domain_block_modal.they_can_interact_with_old_posts": "이 서버에 있는 사람들이 내 예전 게시물에 상호작용할 수는 있습니다.", + "domain_block_modal.they_cant_follow": "이 서버의 누구도 나를 팔로우 할 수 없습니다.", + "domain_block_modal.they_wont_know": "내가 차단했다는 사실을 모를 것입니다.", + "domain_block_modal.title": "도메인을 차단할까요?", + "domain_block_modal.you_will_lose_followers": "이 서버에 있는 팔로워들이 모두 제거될 것입니다.", + "domain_block_modal.you_wont_see_posts": "이 서버 사용자의 게시물이나 알림을 보지 않게 됩니다.", + "domain_pill.activitypub_lets_connect": "이것은 마스토돈 뿐만이 아니라 다른 소셜 앱들을 넘나들며 사람들을 연결하고 상호작용 할 수 있게 합니다.", + "domain_pill.activitypub_like_language": "액티비티펍은 마스토돈이 다른 소셜 네트워크와 대화할 때 쓰는 언어 같은 것입니다.", + "domain_pill.server": "서버", + "domain_pill.their_handle": "그의 핸들:", + "domain_pill.username": "사용자명", + "domain_pill.whats_in_a_handle": "핸들엔 무엇이 담겨 있나요?", + "domain_pill.who_you_are": "내 핸들은 내가 어디에 있는 누군지 나타내기 때문에 사람들은 을 통해 소셜 웹을 넘나들며 나와 상호작용 할 수 있습니다.", + "domain_pill.your_handle": "내 핸들:", "embed.instructions": "아래의 코드를 복사하여 대화를 원하는 곳으로 공유하세요.", "embed.preview": "이렇게 표시됩니다:", "emoji_button.activity": "활동", @@ -241,6 +261,7 @@ "empty_column.list": "리스트에 아직 아무것도 없습니다. 리스트의 누군가가 게시물을 올리면 여기에 나타납니다.", "empty_column.lists": "아직 리스트가 없습니다. 리스트를 만들면 여기에 나타납니다.", "empty_column.mutes": "아직 아무도 뮤트하지 않았습니다.", + "empty_column.notification_requests": "깔끔합니다! 여기엔 아무 것도 없습니다. 알림을 받게 되면 설정에 따라 여기에 나타나게 됩니다.", "empty_column.notifications": "아직 알림이 없습니다. 다른 사람들이 당신에게 반응했을 때, 여기에서 볼 수 있습니다.", "empty_column.public": "여기엔 아직 아무 것도 없습니다! 공개적으로 무언가 포스팅하거나, 다른 서버의 사용자를 팔로우 해서 채워보세요", "error.unexpected_crash.explanation": "버그 혹은 브라우저 호환성 문제로 이 페이지를 올바르게 표시할 수 없습니다.", @@ -271,10 +292,12 @@ "filter_modal.select_filter.subtitle": "기존의 카테고리를 사용하거나 새로 하나를 만듧니다", "filter_modal.select_filter.title": "이 게시물을 필터", "filter_modal.title.status": "게시물 필터", + "filtered_notifications_banner.pending_requests": "알 수도 있는 {count, plural, =0 {0 명} one {한 명} other {# 명}}의 사람들로부터의 알림", + "filtered_notifications_banner.title": "걸러진 알림", "firehose.all": "모두", "firehose.local": "이 서버", "firehose.remote": "다른 서버", - "follow_request.authorize": "허가", + "follow_request.authorize": "승인", "follow_request.reject": "거부", "follow_requests.unlocked_explanation": "귀하의 계정이 잠긴 계정이 아닐지라도, {domain} 스태프는 이 계정들의 팔로우 요청을 수동으로 처리해 주시면 좋겠다고 생각했습니다.", "follow_suggestions.curated_suggestion": "스태프의 추천", @@ -314,7 +337,6 @@ "hashtag.follow": "팔로우", "hashtag.unfollow": "팔로우 해제", "hashtags.and_other": "…그리고 {count, plural,other {#개 더}}", - "home.column_settings.basic": "기본", "home.column_settings.show_reblogs": "부스트 표시", "home.column_settings.show_replies": "답글 표시", "home.hide_announcements": "공지사항 숨기기", @@ -400,9 +422,15 @@ "loading_indicator.label": "불러오는 중...", "media_gallery.toggle_visible": "이미지 숨기기", "moved_to_account_banner.text": "당신의 계정 {disabledAccount}는 {movedToAccount}로 이동하였기 때문에 현재 비활성화 상태입니다.", - "mute_modal.duration": "기간", - "mute_modal.hide_notifications": "이 사용자로부터의 알림을 숨기시겠습니까?", - "mute_modal.indefinite": "무기한", + "mute_modal.hide_from_notifications": "알림에서 숨기기", + "mute_modal.hide_options": "옵션 숨기기", + "mute_modal.indefinite": "내가 뮤트를 해제하기 전까지", + "mute_modal.show_options": "옵션 표시", + "mute_modal.they_can_mention_and_follow": "나를 멘션하거나 팔로우 할 수 있습니다, 다만 나에게 안 보일 것입니다.", + "mute_modal.they_wont_know": "내가 차단했다는 사실을 모를 것입니다.", + "mute_modal.title": "사용자를 뮤트할까요?", + "mute_modal.you_wont_see_mentions": "그를 멘션하는 게시물을 더는 보지 않게 됩니다.", + "mute_modal.you_wont_see_posts": "내가 작성한 게시물을 볼 수는 있지만, 나는 그가 작성한 것을 보지 않게 됩니다.", "navigation_bar.about": "정보", "navigation_bar.advanced_interface": "고급 웹 인터페이스에서 열기", "navigation_bar.blocks": "차단한 사용자", @@ -440,15 +468,16 @@ "notification.reblog": "{name} 님이 부스트했습니다", "notification.status": "{name} 님이 방금 게시물을 올렸습니다", "notification.update": "{name} 님이 게시물을 수정했습니다", + "notification_requests.accept": "수락", + "notification_requests.dismiss": "지우기", + "notification_requests.notifications_from": "{name} 님으로부터의 알림", + "notification_requests.title": "걸러진 알림", "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": "멘션:", @@ -474,6 +503,15 @@ "notifications.permission_denied": "권한이 거부되었기 때문에 데스크탑 알림을 활성화할 수 없음", "notifications.permission_denied_alert": "이전에 브라우저 권한이 거부되었기 때문에, 데스크탑 알림이 활성화 될 수 없습니다.", "notifications.permission_required": "필요한 권한이 승인되지 않아 데스크탑 알림을 사용할 수 없습니다.", + "notifications.policy.filter_new_accounts.hint": "{days, plural, one {하루} other {#일}} 안에 만들어진", + "notifications.policy.filter_new_accounts_title": "새 계정", + "notifications.policy.filter_not_followers_hint": "나를 팔로우 한 지 {days, plural, other {# 일}}이 되지 않은 사람들을 포함", + "notifications.policy.filter_not_followers_title": "나를 팔로우하지 않는 사람들", + "notifications.policy.filter_not_following_hint": "내가 수동으로 승인하기 전까지", + "notifications.policy.filter_not_following_title": "내가 팔로우하지 않는 사람들", + "notifications.policy.filter_private_mentions_hint": "내가 한 멘션에 단 답글이거나 내가 발신자를 팔로우 한 것이 아닌 이상 걸러집니다", + "notifications.policy.filter_private_mentions_title": "청하지 않은 개인적인 멘션", + "notifications.policy.title": "알림을 거를 사람들…", "notifications_permission_banner.enable": "데스크탑 알림 활성화", "notifications_permission_banner.how_to_control": "마스토돈이 열려 있지 않을 때에도 알림을 받으려면, 데스크탑 알림을 활성화 하세요. 당신은 어떤 종류의 반응이 데스크탑 알림을 발생할 지를 {icon} 버튼을 통해 세세하게 설정할 수 있습니다.", "notifications_permission_banner.title": "아무것도 놓치지 마세요", @@ -650,10 +688,11 @@ "status.direct": "@{name} 님에게 개인적으로 멘션", "status.direct_indicator": "개인적인 멘션", "status.edit": "수정", - "status.edited": "{date}에 수정함", + "status.edited": "%{date}에 마지막으로 편집됨", "status.edited_x_times": "{count}번 수정됨", "status.embed": "임베드", "status.favourite": "좋아요", + "status.favourites": "{count, plural, other {좋아요}}", "status.filter": "이 게시물을 필터", "status.filtered": "필터로 걸러짐", "status.hide": "게시물 숨기기", @@ -674,6 +713,7 @@ "status.reblog": "부스트", "status.reblog_private": "원래의 수신자들에게 부스트", "status.reblogged_by": "{name} 님이 부스트했습니다", + "status.reblogs": "{count, plural, other {부스트}}", "status.reblogs.empty": "아직 아무도 이 게시물을 부스트하지 않았습니다. 부스트 한 사람들이 여기에 표시 됩니다.", "status.redraft": "지우고 다시 쓰기", "status.remove_bookmark": "북마크 삭제", diff --git a/app/javascript/mastodon/locales/ku.json b/app/javascript/mastodon/locales/ku.json index 4a0fd671db993c..c78861b60c9953 100644 --- a/app/javascript/mastodon/locales/ku.json +++ b/app/javascript/mastodon/locales/ku.json @@ -135,9 +135,7 @@ "compose_form.spoiler.marked": "Hişyariya naverokê rake", "compose_form.spoiler.unmarked": "Hişyariya naverokê tevlî bike", "confirmation_modal.cancel": "Dev jê berde", - "confirmations.block.block_and_report": "Asteng bike & ragihîne", "confirmations.block.confirm": "Asteng bike", - "confirmations.block.message": "Ma tu dixwazî ku {name} asteng bikî?", "confirmations.cancel_follow_request.confirm": "Daxwazê vekişîne", "confirmations.cancel_follow_request.message": "Tu dixwazî ​​daxwaza xwe ya şopandina {name} vekşînî?", "confirmations.delete.confirm": "Jê bibe", @@ -146,14 +144,11 @@ "confirmations.delete_list.message": "Tu ji dil dixwazî vê lîsteyê bi awayekî mayînde jê bibî?", "confirmations.discard_edit_media.confirm": "Biavêje", "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": "Serrast bike", "confirmations.logout.confirm": "Derkeve", "confirmations.logout.message": "Ma tu dixwazî ku derkevî?", "confirmations.mute.confirm": "Bêdeng bike", - "confirmations.mute.explanation": "Ev ê şandinên ji wan tê û şandinên ku behsa wan dike veşêre, lê hê jî maf dide ku ew şandinên te bibînin û te bişopînin.", - "confirmations.mute.message": "Bi rastî tu dixwazî {name} bêdeng bikî?", "confirmations.redraft.confirm": "Jê bibe & ji nû ve serrast bike", "confirmations.reply.confirm": "Bersivê bide", "confirmations.reply.message": "Bersiva niha li ser peyama ku tu niha berhev dikî dê binivsîne. Ma pê bawer î ku tu dixwazî bidomînî?", @@ -258,7 +253,6 @@ "hashtag.column_settings.tag_toggle": "Ji bo vê stûnê hin pêvekan tevlî bike", "hashtag.follow": "Hashtagê bişopîne", "hashtag.unfollow": "Hashtagê neşopîne", - "home.column_settings.basic": "Bingehîn", "home.column_settings.show_reblogs": "Bilindkirinan nîşan bike", "home.column_settings.show_replies": "Bersivan nîşan bide", "home.hide_announcements": "Reklaman veşêre", @@ -329,9 +323,6 @@ "load_pending": "{count, plural, one {# hêmaneke nû} other {#hêmaneke nû}}", "media_gallery.toggle_visible": "{number, plural, one {Wêneyê veşêre} other {Wêneyan veşêre}}", "moved_to_account_banner.text": "Ajimêrê te {disabledAccount} niha neçalak e ji ber ku te bar kir bo {movedToAccount}.", - "mute_modal.duration": "Dem", - "mute_modal.hide_notifications": "Agahdariyan ji ev bikarhêner veşêre?", - "mute_modal.indefinite": "Nediyar", "navigation_bar.about": "Derbar", "navigation_bar.blocks": "Bikarhênerên astengkirî", "navigation_bar.bookmarks": "Şûnpel", @@ -370,9 +361,6 @@ "notifications.column_settings.admin.report": "Ragihandinên nû:", "notifications.column_settings.admin.sign_up": "Tomarkirinên nû:", "notifications.column_settings.alert": "Agahdariyên sermaseyê", - "notifications.column_settings.filter_bar.advanced": "Hemû beşan nîşan bide", - "notifications.column_settings.filter_bar.category": "Şivika parzûna bilêz", - "notifications.column_settings.filter_bar.show_bar": "Darika parzûnê nîşan bide", "notifications.column_settings.follow": "Şopînerên nû:", "notifications.column_settings.follow_request": "Daxwazên şopandinê nû:", "notifications.column_settings.mention": "Qalkirin:", @@ -522,7 +510,6 @@ "status.direct": "Bi taybetî qale @{name} bike", "status.direct_indicator": "Qalkirinê taybet", "status.edit": "Serrast bike", - "status.edited": "Di {date} de hate serrastkirin", "status.edited_x_times": "{count, plural, one {{count} car} other {{count} car}} hate serrastkirin", "status.embed": "Bi cih bike", "status.filter": "Vê şandiyê parzûn bike", diff --git a/app/javascript/mastodon/locales/kw.json b/app/javascript/mastodon/locales/kw.json index e42f50aeffcb62..794cbd9ede362d 100644 --- a/app/javascript/mastodon/locales/kw.json +++ b/app/javascript/mastodon/locales/kw.json @@ -86,20 +86,15 @@ "compose_form.spoiler.marked": "Dilea gwarnyans dalgh", "compose_form.spoiler.unmarked": "Keworra gwarnyans dalgh", "confirmation_modal.cancel": "Hedhi", - "confirmations.block.block_and_report": "Lettya & Reportya", "confirmations.block.confirm": "Lettya", - "confirmations.block.message": "Owgh hwi sur a vynnes lettya {name}?", "confirmations.delete.confirm": "Dilea", "confirmations.delete.message": "Owgh hwi sur a vynnes dilea'n post ma?", "confirmations.delete_list.confirm": "Dilea", "confirmations.delete_list.message": "Owgh hwi sur a vynnes dilea'n rol ma yn fast?", - "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.logout.confirm": "Digelmi", "confirmations.logout.message": "Owgh hwi sur a vynnes digelmi?", "confirmations.mute.confirm": "Tawhe", - "confirmations.mute.explanation": "Hemm a wra kudha postow anedha ha postow orth aga meneges, mes hwath aga gasa dhe weles agas postow ha'gas holya.", - "confirmations.mute.message": "Owgh hwi sur a vynnes tawhe {name}?", "confirmations.redraft.confirm": "Dilea & daskynskrifa", "confirmations.reply.confirm": "Gorthebi", "confirmations.reply.message": "Gorthebi lemmyn a wra ughskrifa'n messach esowgh hwi orth y skrifa lemmyn. Owgh hwi sur a vynnes pesya?", @@ -166,7 +161,6 @@ "hashtag.column_settings.tag_mode.any": "Pynag a'n re ma", "hashtag.column_settings.tag_mode.none": "Travyth a'n re ma", "hashtag.column_settings.tag_toggle": "Yssynsi taggys ynwedhek rag an goloven ma", - "home.column_settings.basic": "Selyek", "home.column_settings.show_reblogs": "Diskwedhes kenerthow", "home.column_settings.show_replies": "Diskwedhes gorthebow", "home.hide_announcements": "Kudha deklaryansow", @@ -226,9 +220,6 @@ "lists.subheading": "Agas rolyow", "load_pending": "{count, plural, one {# daklennowydh} other {# a daklennow nowydh}}", "media_gallery.toggle_visible": "Hide {number, plural, one {aven} other {aven}}", - "mute_modal.duration": "Duryans", - "mute_modal.hide_notifications": "Kudha gwarnyansow a'n devnydhyer ma?", - "mute_modal.indefinite": "Andhevri", "navigation_bar.blocks": "Devnydhyoryon lettys", "navigation_bar.bookmarks": "Folennosow", "navigation_bar.community_timeline": "Amserlin leel", @@ -257,8 +248,6 @@ "notifications.clear": "Dilea gwarnyansow", "notifications.clear_confirmation": "Owgh hwi sur a vynnes dilea agas gwarnyansow oll yn fast?", "notifications.column_settings.alert": "Gwarnyansow pennskrin", - "notifications.column_settings.filter_bar.advanced": "Displetya rummow oll", - "notifications.column_settings.filter_bar.category": "Barr sidhla skav", "notifications.column_settings.follow": "Holyoryon nowydh:", "notifications.column_settings.follow_request": "Govynnow holya nowydh:", "notifications.column_settings.mention": "Menegow:", diff --git a/app/javascript/mastodon/locales/la.json b/app/javascript/mastodon/locales/la.json index 698b3da4c33cbf..48b23340088bdc 100644 --- a/app/javascript/mastodon/locales/la.json +++ b/app/javascript/mastodon/locales/la.json @@ -41,7 +41,6 @@ "confirmations.delete.confirm": "Oblitterare", "confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete_list.confirm": "Oblitterare", - "confirmations.domain_block.confirm": "Hide entire domain", "confirmations.mute.confirm": "Confutare", "confirmations.reply.confirm": "Respondere", "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", @@ -139,7 +138,6 @@ "status.copy": "Copy link to status", "status.delete": "Oblitterare", "status.edit": "Recolere", - "status.edited": "Recultum {date}", "status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}", "status.open": "Expand this status", "status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}", diff --git a/app/javascript/mastodon/locales/lad.json b/app/javascript/mastodon/locales/lad.json index 91540d58ca8070..2f4185f69e1d52 100644 --- a/app/javascript/mastodon/locales/lad.json +++ b/app/javascript/mastodon/locales/lad.json @@ -89,6 +89,9 @@ "announcement.announcement": "Pregon", "attachments_list.unprocessed": "(no prosesado)", "audio.hide": "Eskonde audio", + "block_modal.show_less": "Amostra manko", + "block_modal.show_more": "Amostra mas", + "block_modal.title": "Bloka utilizador?", "boost_modal.combo": "Puedes klikar {combo} para ometer esto la proksima vez", "bundle_column_error.copy_stacktrace": "Kopia el raporto de yerro", "bundle_column_error.error.body": "La pajina solisitada no pudo ser renderada. Podria ser por un yerro en muestro kodiche o un problem de kompatibilita kon el navigador.", @@ -160,9 +163,7 @@ "compose_form.spoiler.unmarked": "Adjusta avertensya de kontenido", "compose_form.spoiler_placeholder": "Avertensya de kontenido (opsyonal)", "confirmation_modal.cancel": "Anula", - "confirmations.block.block_and_report": "Bloka i raporta", "confirmations.block.confirm": "Bloka", - "confirmations.block.message": "Estas siguro ke keres blokar a {name}?", "confirmations.cancel_follow_request.confirm": "Anula solisitud", "confirmations.cancel_follow_request.message": "Estas siguro ke keres anular tu solisitud de segir a {name}?", "confirmations.delete.confirm": "Efasa", @@ -171,15 +172,13 @@ "confirmations.delete_list.message": "Estas siguro ke keres permanentemente efasar esta lista?", "confirmations.discard_edit_media.confirm": "Anula", "confirmations.discard_edit_media.message": "Tienes trokamientos no guadrados en la deskripsion o vista previa. Keres efasarlos entanto?", - "confirmations.domain_block.confirm": "Bloka domeno entero", + "confirmations.domain_block.confirm": "Bloka sirvidor", "confirmations.domain_block.message": "Estas totalmente siguro ke keres blokar todo el domeno {domain}? En djeneral unos kuantos blokos o silensiamientos son sufisientes i preferavles. No veras kontenido de akel domeno en dinguna linya de tiempo publika ni ent tus avizos. Tus suivantes de akel domeno seran kitados.", "confirmations.edit.confirm": "Edita", "confirmations.edit.message": "Si edites agora, kitaras el mesaj kualo estas eskriviendo aktualmente. Estas siguro ke keres fazerlo?", "confirmations.logout.confirm": "Sal", "confirmations.logout.message": "Estas siguro ke keres salir de tu kuento?", "confirmations.mute.confirm": "Silensia", - "confirmations.mute.explanation": "Esto eskondera las publikasyones de este kuento i publikasyones ke lo enmentan, pero ainda les permetera segirte.", - "confirmations.mute.message": "Estas siguro ke keres silensiar a {name}?", "confirmations.redraft.confirm": "Efasa i reeskrive", "confirmations.redraft.message": "Estas siguro ke keres efasar esta publikasyon i reeskrivirla? Pedreras todos los favoritos i repartajasyones asosiados kon esta publikasyon i repuestas a eya seran guerfanadas.", "confirmations.reply.confirm": "Arisponde", @@ -205,6 +204,10 @@ "dismissable_banner.explore_statuses": "Estas publikasyones de este sirvidor i otros de la red desentralizada estan agora popularas. Publikasyones mas muevas, kon mas repartajasiones i favoritadas por mas djente aparesen primero.", "dismissable_banner.explore_tags": "Estas etiketas estan agora popularas en la red sosyala. Etiketas uzadas por mas djente aparesen primero.", "dismissable_banner.public_timeline": "Estas son las publikasyones publikas mas resientes de personas en la red sosyala a las kualas la djente de {domain} sige.", + "domain_block_modal.block": "Bloka sirvidor", + "domain_block_modal.title": "Bloka el domeno?", + "domain_pill.server": "Sirvidor", + "domain_pill.username": "Nombre de utilizador", "embed.instructions": "Enkrusta esta publikasyon en tu sitio internetiko kopiando este kodiche.", "embed.preview": "Paresera ansina:", "emoji_button.activity": "Aktivita", @@ -271,6 +274,8 @@ "filter_modal.select_filter.subtitle": "Kulanea una kategoria egzistente o kriya mueva", "filter_modal.select_filter.title": "Filtra esta publikasyon", "filter_modal.title.status": "Filtra una publikasyon", + "filtered_notifications_banner.pending_requests": "Avizos de {count, plural, =0 {dingun} one {una persona} other {# personas}} ke puedes koneser", + "filtered_notifications_banner.title": "Avizos filtrados", "firehose.all": "Todo", "firehose.local": "Este sirvidor", "firehose.remote": "Otros sirvidores", @@ -314,7 +319,6 @@ "hashtag.follow": "Sige etiketa", "hashtag.unfollow": "Desige etiketa", "hashtags.and_other": "…i {count, plural, one {}other {# mas}}", - "home.column_settings.basic": "Opsyones bazikas", "home.column_settings.show_reblogs": "Amostra repartajasyones", "home.column_settings.show_replies": "Amostra repuestas", "home.hide_announcements": "Eskonde pregones", @@ -400,9 +404,6 @@ "loading_indicator.label": "Eskargando…", "media_gallery.toggle_visible": "{number, plural, one {Eskonde imaje} other {Eskonde imajes}}", "moved_to_account_banner.text": "Tu kuento {disabledAccount} esta aktualmente inkapasitado porke transferates a {movedToAccount}.", - "mute_modal.duration": "Durasyon", - "mute_modal.hide_notifications": "Eskonder avizos de este utilizador?", - "mute_modal.indefinite": "Indefinida", "navigation_bar.about": "Sovre mozotros", "navigation_bar.advanced_interface": "Avre en la enterfaz avanzada", "navigation_bar.blocks": "Utilizadores blokados", @@ -440,15 +441,16 @@ "notification.reblog": "{name} repartajo tu publikasyon", "notification.status": "{name} publiko algo", "notification.update": "{name} edito una publikasyon", + "notification_requests.accept": "Acheta", + "notification_requests.dismiss": "Kita", + "notification_requests.notifications_from": "Avizos de {name}", + "notification_requests.title": "Avizos filtrados", "notifications.clear": "Efasa avizos", "notifications.clear_confirmation": "Estas siguro ke keres permanentemente efasar todos tus avizos?", "notifications.column_settings.admin.report": "Muveos raportos:", "notifications.column_settings.admin.sign_up": "Muevas enrejistrasyones:", "notifications.column_settings.alert": "Avizos de ensimameza", "notifications.column_settings.favourite": "Te plazen:", - "notifications.column_settings.filter_bar.advanced": "Amostra todas las kategorias", - "notifications.column_settings.filter_bar.category": "Vara de filtrado rapido", - "notifications.column_settings.filter_bar.show_bar": "Amostra vara de filtros", "notifications.column_settings.follow": "Muevos suivantes:", "notifications.column_settings.follow_request": "Muevas solisitudes de segimiento:", "notifications.column_settings.mention": "Enmentaduras:", @@ -474,6 +476,13 @@ "notifications.permission_denied": "Avizos de ensimameza no estan desponivles porke ya se tiene refuzado el permiso", "notifications.permission_denied_alert": "\"No se pueden kapasitar los avizos de ensimameza, porke ya se tiene refuzado el permiso de navigador", "notifications.permission_required": "Avizos de ensimameza no estan desponivles porke los nesesarios permisos no tienen sido risividos.", + "notifications.policy.filter_new_accounts.hint": "Kriyadas durante {days, plural, one {el ultimo diya} other {los ultimos # diyas}}", + "notifications.policy.filter_new_accounts_title": "Muevos kuentos", + "notifications.policy.filter_not_followers_title": "Personas ke te no sigen", + "notifications.policy.filter_not_following_hint": "Asta ke las aproves manualmente", + "notifications.policy.filter_not_following_title": "Personas ke no siges", + "notifications.policy.filter_private_mentions_title": "Enmentaduras privadas no solisitadas", + "notifications.policy.title": "Filtra avizos de…", "notifications_permission_banner.enable": "Kapasita avizos de ensimameza", "notifications_permission_banner.how_to_control": "Para risivir avizos kuando Mastodon no esta avierto, kapasita avizos de ensimameza. Puedes kontrolar presizamente kualos tipos de enteraksiones djeneren avizos de ensimameza kon el boton {icon} arriva kuando esten kapasitadas.", "notifications_permission_banner.title": "Nunkua te piedres niente", @@ -650,7 +659,7 @@ "status.direct": "Enmenta a @{name} en privado", "status.direct_indicator": "Enmentadura privada", "status.edit": "Edita", - "status.edited": "Editado {date}", + "status.edited": "Ultima edisyon: {date}", "status.edited_x_times": "Editado {count, plural, one {{count} vez} other {{count} vezes}}", "status.embed": "Inkrusta", "status.favourite": "Te plaze", diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json index 8b757484cee3e6..f9ef7e242c00e4 100644 --- a/app/javascript/mastodon/locales/lt.json +++ b/app/javascript/mastodon/locales/lt.json @@ -160,9 +160,7 @@ "compose_form.spoiler.unmarked": "Pridėti turinio įspėjimą", "compose_form.spoiler_placeholder": "Turinio įspėjimas (pasirinktinis)", "confirmation_modal.cancel": "Atšaukti", - "confirmations.block.block_and_report": "Blokuoti ir pranešti", "confirmations.block.confirm": "Blokuoti", - "confirmations.block.message": "Ar tikrai nori užblokuoti {name}?", "confirmations.cancel_follow_request.confirm": "Atšaukti prašymą", "confirmations.cancel_follow_request.message": "Ar tikrai nori atšaukti savo prašymą sekti {name}?", "confirmations.delete.confirm": "Ištrinti", @@ -171,15 +169,12 @@ "confirmations.delete_list.message": "Ar tikrai nori visam laikui ištrinti šį sąrašą?", "confirmations.discard_edit_media.confirm": "Atmesti", "confirmations.discard_edit_media.message": "Turi neišsaugotų medijos aprašymo ar peržiūros pakeitimų, vis tiek juos atmesti?", - "confirmations.domain_block.confirm": "Blokuoti visą domeną", "confirmations.domain_block.message": "Ar tikrai, tikrai nori užblokuoti visą {domain}? Daugeliu atvejų užtenka kelių tikslinių blokavimų arba nutildymų. Šio domeno turinio nematysi jokiose viešose laiko skalėse ar pranešimuose. Tavo sekėjai iš to domeno bus pašalinti.", "confirmations.edit.confirm": "Redaguoti", "confirmations.edit.message": "Redaguojant dabar, bus perrašyta šiuo metu kuriama žinutė. Ar tikrai nori tęsti?", "confirmations.logout.confirm": "Atsijungti", "confirmations.logout.message": "Ar tikrai nori atsijungti?", "confirmations.mute.confirm": "Nutildyti", - "confirmations.mute.explanation": "Tai paslėps jų įrašus ir įrašus, kuriuose jie menėmi, bet jie vis tiek galės matyti tavo įrašus ir sekti.", - "confirmations.mute.message": "Ar tikrai nori nutildyti {name}?", "confirmations.redraft.confirm": "Ištrinti ir parengti iš naujo", "confirmations.redraft.message": "Ar tikrai nori ištrinti šį įrašą ir parengti jį iš naujo kaip juodraštį? Bus prarastos mėgstamiausios ir pakėlimai, o atsakymai į originalinį įrašą taps liekamojais.", "confirmations.reply.confirm": "Atsakyti", @@ -205,6 +200,19 @@ "dismissable_banner.explore_statuses": "Tai – įrašai iš viso socialinio žiniatinklio, kurie šiandien sulaukia daug dėmesio. Naujesni įrašai, turintys daugiau pakėlimų ir mėgstamų, vertinami aukščiau.", "dismissable_banner.explore_tags": "Tai – saitažodžiai, kurie šiandien sulaukia daug dėmesio socialiniame žiniatinklyje. Saitažodžiai, kuriuos naudoja daugiau skirtingų žmonių, vertinami aukščiau.", "dismissable_banner.public_timeline": "Tai – naujausi vieši įrašai, kuriuos socialiniame žiniatinklyje paskelbė žmonės, sekantys {domain}.", + "domain_pill.activitypub_lets_connect": "Tai leidžia tau bendrauti su žmonėmis ne tik Mastodon, bet ir įvairiose socialinėse programėlėse.", + "domain_pill.activitypub_like_language": "ActivityPub – tarsi kalba, kuria Mastodon kalba su kitais socialiniais tinklais.", + "domain_pill.server": "Serveris", + "domain_pill.their_handle": "Jų socialinis medijos vardas:", + "domain_pill.their_server": "Jų skaitmeniniai namai, kuriuose saugomi visi jų įrašai.", + "domain_pill.their_username": "Jų unikalus identifikatorius jų serveryje. Skirtinguose serveriuose galima rasti naudotojų, turinčių tą patį naudotojo vardą.", + "domain_pill.username": "Naudotojo vardas", + "domain_pill.whats_in_a_handle": "Kas yra socialiniame medijos varde?", + "domain_pill.who_they_are": "Kadangi socialines medijos vardai nurodo, kas ir kur jie yra, galima bendrauti su žmonėmis visame socialiniame tinkle, kuriame yra .", + "domain_pill.who_you_are": "Kadangi tavo socialinis medijos vardas nurodo, kas esi ir kur esi, žmonės gali bendrauti su tavimi visame socialiniame tinkle, kurį sudaro .", + "domain_pill.your_handle": "Tavo socialinis medijos vardas:", + "domain_pill.your_server": "Tavo skaitmeniniai namai, kuriuose saugomi visi tavo įrašai. Nepatinka šis? Bet kada perkelk serverius ir atsivesk ir savo sekėjus.", + "domain_pill.your_username": "Tavo unikalus identifikatorius šiame serveryje. Skirtinguose serveriuose galima rasti naudotojų, turinčių tą patį naudotojo vardą.", "embed.instructions": "Įterpk šį įrašą į savo svetainę nukopijavus (-usi) toliau pateiktą kodą.", "embed.preview": "Štai, kaip tai atrodys:", "emoji_button.activity": "Veikla", @@ -314,7 +322,6 @@ "hashtag.follow": "Sekti saitažodį", "hashtag.unfollow": "Nebesekti saitažodį", "hashtags.and_other": "…ir {count, plural, one {# daugiau} few {# daugiau} many {# daugiau}other {# daugiau}}", - "home.column_settings.basic": "Paprastas", "home.column_settings.show_reblogs": "Rodyti pakėlimus", "home.column_settings.show_replies": "Rodyti atsakymus", "home.hide_announcements": "Slėpti skelbimus", @@ -400,9 +407,6 @@ "loading_indicator.label": "Kraunama…", "media_gallery.toggle_visible": "{number, plural, one {Slėpti vaizdą} few {Slėpti vaizdus} many {Slėpti vaizdo} other {Slėpti vaizdų}}", "moved_to_account_banner.text": "Tavo paskyra {disabledAccount} šiuo metu išjungta, nes persikėlei į {movedToAccount}.", - "mute_modal.duration": "Trukmė", - "mute_modal.hide_notifications": "Slėpti šio naudotojo pranešimus?", - "mute_modal.indefinite": "Neribota", "navigation_bar.about": "Apie", "navigation_bar.advanced_interface": "Atidaryti išplėstinę žiniatinklio sąsają", "navigation_bar.blocks": "Užblokuoti naudotojai", @@ -440,15 +444,16 @@ "notification.reblog": "{name} pakėlė tavo įrašą", "notification.status": "{name} ką tik paskelbė", "notification.update": "{name} redagavo įrašą", + "notification_requests.accept": "Priimti", + "notification_requests.dismiss": "Atmesti", + "notification_requests.notifications_from": "Pranešimai iš {name}", + "notification_requests.title": "Filtruojami pranešimai", "notifications.clear": "Išvalyti pranešimus", "notifications.clear_confirmation": "Ar tikrai nori visam laikui išvalyti visus pranešimus?", "notifications.column_settings.admin.report": "Naujos ataskaitos:", "notifications.column_settings.admin.sign_up": "Naujos registracijos:", "notifications.column_settings.alert": "Darbalaukio pranešimai", "notifications.column_settings.favourite": "Mėgstami:", - "notifications.column_settings.filter_bar.advanced": "Rodyti visas kategorijas", - "notifications.column_settings.filter_bar.category": "Spartaus filtro juosta", - "notifications.column_settings.filter_bar.show_bar": "Rodyti filtro juostą", "notifications.column_settings.follow": "Nauji sekėjai:", "notifications.column_settings.follow_request": "Nauji sekimo prašymai:", "notifications.column_settings.mention": "Paminėjimai:", @@ -474,6 +479,12 @@ "notifications.permission_denied": "Darbalaukio pranešimai nepasiekiami dėl anksčiau atmestos naršyklės leidimų užklausos.", "notifications.permission_denied_alert": "Negalima įjungti darbalaukio pranešimų, nes prieš tai naršyklės leidimas buvo atmestas.", "notifications.permission_required": "Darbalaukio pranešimai nepasiekiami, nes nebuvo suteiktas reikiamas leidimas.", + "notifications.policy.filter_new_accounts.hint": "Sukurta per {days, plural, one {vieną dieną} few {# dienas} many {# dienos} other {# dienų}}", + "notifications.policy.filter_new_accounts_title": "Naujos paskyros", + "notifications.policy.filter_not_following_hint": "Kol jų nepatvirtinsi rankiniu būdu", + "notifications.policy.filter_not_following_title": "Žmonių, kuriuos neseki", + "notifications.policy.filter_private_mentions_title": "Nepageidaujami privatūs paminėjimai", + "notifications.policy.title": "Filtruoti pranešimus iš…", "notifications_permission_banner.enable": "Įjungti darbalaukio pranešimus", "notifications_permission_banner.how_to_control": "Jei nori gauti pranešimus, kai Mastodon nėra atidarytas, įjunk darbalaukio pranešimus. Įjungęs (-usi) darbalaukio pranešimus, gali tiksliai valdyti, kokių tipų sąveikos generuoja darbalaukio pranešimus, naudojant pirmiau esančiu mygtuku {icon}.", "notifications_permission_banner.title": "Niekada nieko nepraleisk", @@ -650,10 +661,11 @@ "status.direct": "Privačiai paminėti @{name}", "status.direct_indicator": "Privatus paminėjimas", "status.edit": "Redaguoti", - "status.edited": "Redaguota {date}", + "status.edited": "Paskutinį kartą redaguota {date}", "status.edited_x_times": "Redaguota {count, plural, one {{count} kartą} few {{count} kartus} many {{count} karto} other {{count} kartų}}", "status.embed": "Įterpti", "status.favourite": "Pamėgti", + "status.favourites": "{count, plural, one {mėgstamas} few {mėgstamai} many {mėgstamų} other {mėgstamų}}", "status.filter": "Filtruoti šį įrašą", "status.filtered": "Filtruota", "status.hide": "Slėpti įrašą", diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index 8044e789230878..51d06c82339ec5 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -159,9 +159,7 @@ "compose_form.spoiler.unmarked": "Pievienot satura brīdinājumu", "compose_form.spoiler_placeholder": "Satura brīdinājums (pēc izvēles)", "confirmation_modal.cancel": "Atcelt", - "confirmations.block.block_and_report": "Bloķēt un ziņot", "confirmations.block.confirm": "Bloķēt", - "confirmations.block.message": "Vai tiešām vēlies bloķēt {name}?", "confirmations.cancel_follow_request.confirm": "Atsaukt pieprasījumu", "confirmations.cancel_follow_request.message": "Vai tiešām vēlies atsaukt pieprasījumu sekot {name}?", "confirmations.delete.confirm": "Dzēst", @@ -170,15 +168,12 @@ "confirmations.delete_list.message": "Vai tiešām neatgriezeniski izdzēst šo sarakstu?", "confirmations.discard_edit_media.confirm": "Atmest", "confirmations.discard_edit_media.message": "Ir nesaglabātas izmaiņas informācijas nesēja aprakstā vai priekšskatījumā. Vēlies tās atmest tik un tā?", - "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": "Labot", "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", - "confirmations.mute.explanation": "Šādi tiks slēpti ieraksti no viņiem un ieraksti, kuros viņi tiek pieminēti, taču viņi joprojām varēs redzēt Tavus ierakstus un sekot Tev.", - "confirmations.mute.message": "Vai tiešām vēlies apklusināt {name}?", "confirmations.redraft.confirm": "Dzēst un pārrakstīt", "confirmations.redraft.message": "Vai tiešām vēlies dzēst šo ziņu un no jauna noformēt to? Izlase un pastiprinājumi tiks zaudēti, un atbildes uz sākotnējo ziņu tiks atstātas bez autoratlīdzības.", "confirmations.reply.confirm": "Atbildēt", @@ -306,7 +301,6 @@ "hashtag.follow": "Sekot tēmturim", "hashtag.unfollow": "Pārstāt sekot tēmturim", "hashtags.and_other": "..un {count, plural, other {# vairāk}}", - "home.column_settings.basic": "Pamata", "home.column_settings.show_reblogs": "Rādīt pastiprinātos ierakstus", "home.column_settings.show_replies": "Rādīt atbildes", "home.hide_announcements": "Slēpt paziņojumus", @@ -392,9 +386,6 @@ "loading_indicator.label": "Ielādē…", "media_gallery.toggle_visible": "{number, plural, one {Slēpt attēlu} other {Slēpt attēlus}}", "moved_to_account_banner.text": "Tavs konts {disabledAccount} pašlaik ir atspējots, jo Tu pārcēlies uz kontu {movedToAccount}.", - "mute_modal.duration": "Ilgums", - "mute_modal.hide_notifications": "Slēpt paziņojumus no šī lietotāja?", - "mute_modal.indefinite": "Beztermiņa", "navigation_bar.about": "Par", "navigation_bar.advanced_interface": "Atvērt paplašinātā tīmekļa saskarnē", "navigation_bar.blocks": "Bloķētie lietotāji", @@ -438,9 +429,6 @@ "notifications.column_settings.admin.sign_up": "Jaunas pierakstīšanās:", "notifications.column_settings.alert": "Darbvirsmas paziņojumi", "notifications.column_settings.favourite": "Izlase:", - "notifications.column_settings.filter_bar.advanced": "Rādīt visas kategorijas", - "notifications.column_settings.filter_bar.category": "Ātro filtru josla", - "notifications.column_settings.filter_bar.show_bar": "Rādīt filtru joslu", "notifications.column_settings.follow": "Jauni sekotāji:", "notifications.column_settings.follow_request": "Jauni sekošanas pieprasījumi:", "notifications.column_settings.mention": "Pieminēšanas:", @@ -627,18 +615,17 @@ "status.admin_status": "Atvērt šo ziņu moderācijas saskarnē", "status.block": "Bloķēt @{name}", "status.bookmark": "Grāmatzīme", - "status.cancel_reblog_private": "Neizcelt", + "status.cancel_reblog_private": "Nepastiprināt", "status.cannot_reblog": "Šo ziņu nevar izcelt", - "status.copy": "Kopēt saiti uz ziņu", + "status.copy": "Ievietot ieraksta saiti starpliktuvē", "status.delete": "Dzēst", "status.detailed_status": "Detalizēts sarunas skats", "status.direct": "Pieminēt @{name} privāti", "status.direct_indicator": "Pieminēts privāti", "status.edit": "Labot", - "status.edited": "Labots {date}", "status.edited_x_times": "Labots {count, plural, one {{count} reizi} other {{count} reizes}}", "status.embed": "Iestrādāt", - "status.favourite": "Iecienīts", + "status.favourite": "Izlasē", "status.filter": "Filtrē šo ziņu", "status.filtered": "Filtrēts", "status.hide": "Slēpt ierakstu", diff --git a/app/javascript/mastodon/locales/mk.json b/app/javascript/mastodon/locales/mk.json index f7080842b710df..d8a470ed47ead9 100644 --- a/app/javascript/mastodon/locales/mk.json +++ b/app/javascript/mastodon/locales/mk.json @@ -80,20 +80,15 @@ "compose_form.spoiler.marked": "Текстот е сокриен зад предупредување", "compose_form.spoiler.unmarked": "Текстот не е сокриен", "confirmation_modal.cancel": "Откажи", - "confirmations.block.block_and_report": "Блокирај и Пријави", "confirmations.block.confirm": "Блокирај", - "confirmations.block.message": "Сигурни сте дека дека го блокирате {name}?", "confirmations.delete.confirm": "Избриши", "confirmations.delete.message": "Сигурни сте дека го бришите статусот?", "confirmations.delete_list.confirm": "Избриши", "confirmations.delete_list.message": "Дали сте сигурни дека сакате да го избришете списоков?", - "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.reply.confirm": "Одговори", "confirmations.unfollow.confirm": "Одследи", "confirmations.unfollow.message": "Сигурни сте дека ќе го отследите {name}?", @@ -137,7 +132,6 @@ "hashtag.column_settings.tag_mode.any": "Било кои", "hashtag.column_settings.tag_mode.none": "Никои", "hashtag.column_settings.tag_toggle": "Стави додатни тагови за оваа колона", - "home.column_settings.basic": "Основно", "home.column_settings.show_reblogs": "Прикажи бустирања", "home.column_settings.show_replies": "Прикажи одговори", "intervals.full.days": "{number, plural, one {# ден} other {# дена}}", diff --git a/app/javascript/mastodon/locales/ml.json b/app/javascript/mastodon/locales/ml.json index 0059dd333bbdb8..8fb4e818db2ead 100644 --- a/app/javascript/mastodon/locales/ml.json +++ b/app/javascript/mastodon/locales/ml.json @@ -108,14 +108,11 @@ "compose_form.spoiler.marked": "എഴുത്ത് മുന്നറിയിപ്പിനാൽ മറച്ചിരിക്കുന്നു", "compose_form.spoiler.unmarked": "എഴുത്ത് മറയ്ക്കപ്പെട്ടിട്ടില്ല", "confirmation_modal.cancel": "റദ്ദാക്കുക", - "confirmations.block.block_and_report": "തടയുകയും റിപ്പോർട്ടും ചെയ്യുക", "confirmations.block.confirm": "തടയുക", - "confirmations.block.message": "{name} തടയാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടോ?", "confirmations.delete.confirm": "മായ്ക്കുക", "confirmations.delete.message": "ഈ ടൂട്ട് ഇല്ലാതാക്കണം എന്ന് നിങ്ങൾക്ക് ഉറപ്പാണോ?", "confirmations.delete_list.confirm": "മായ്ക്കുക", "confirmations.delete_list.message": "ഈ പട്ടിക എന്നെന്നേക്കുമായി നീക്കം ചെയ്യാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടോ?", - "confirmations.domain_block.confirm": "മുഴുവൻ ഡൊമെയ്‌നും തടയുക", "confirmations.logout.confirm": "പുറത്തുകടക്കുക", "confirmations.logout.message": "നിങ്ങൾക്ക് ലോഗ് ഔട്ട് ചെയ്യണമെന്ന് ഉറപ്പാണോ?", "confirmations.mute.confirm": "നിശ്ശബ്ദമാക്കുക", @@ -181,7 +178,6 @@ "hashtag.column_settings.tag_mode.any": "ഇവയിലേതെങ്കിലും", "hashtag.column_settings.tag_mode.none": "ഇതിലൊന്നുമല്ല", "hashtag.column_settings.tag_toggle": "ഈ എഴുത്തുപംക്തിക്ക് കൂടുതൽ ഉപനാമങ്ങൾ ചേർക്കുക", - "home.column_settings.basic": "അടിസ്ഥാനം", "home.column_settings.show_reblogs": "ബൂസ്റ്റുകൾ കാണിക്കുക", "home.column_settings.show_replies": "മറുപടികൾ കാണിക്കുക", "home.hide_announcements": "പ്രഖ്യാപനങ്ങൾ മറയ്‌ക്കുക", @@ -230,8 +226,6 @@ "lists.replies_policy.none": "ആരുമില്ല", "lists.replies_policy.title": "ഇതിനുള്ള മറുപടികൾ കാണിക്കുക:", "lists.subheading": "എന്റെ പട്ടികകൾ", - "mute_modal.duration": "കാലാവധി", - "mute_modal.indefinite": "അനിശ്ചിതകാല", "navigation_bar.blocks": "തടയപ്പെട്ട ഉപയോക്താക്കൾ", "navigation_bar.bookmarks": "ബുക്ക്മാർക്കുകൾ", "navigation_bar.community_timeline": "പ്രാദേശിക സമയരേഖ", @@ -255,7 +249,6 @@ "notifications.clear": "അറിയിപ്പ് മായ്ക്കുക", "notifications.clear_confirmation": "നിങ്ങളുടെ എല്ലാ അറിയിപ്പുകളും ശാശ്വതമായി മായ്‌ക്കണമെന്ന് നിങ്ങൾക്ക് ഉറപ്പാണോ?", "notifications.column_settings.alert": "ഡെസ്ക്ടോപ്പ് അറിയിപ്പുകൾ", - "notifications.column_settings.filter_bar.advanced": "എല്ലാ വിഭാഗങ്ങളും പ്രദർശിപ്പിക്കുക", "notifications.column_settings.follow": "പുതിയ പിന്തുടരുന്നവർ:", "notifications.column_settings.follow_request": "പുതിയ പിന്തുടരൽ അഭ്യർത്ഥനകൾ:", "notifications.column_settings.mention": "സൂചനകൾ:", diff --git a/app/javascript/mastodon/locales/mr.json b/app/javascript/mastodon/locales/mr.json index 20231f0bbfd6d4..a00b39e838a0e0 100644 --- a/app/javascript/mastodon/locales/mr.json +++ b/app/javascript/mastodon/locales/mr.json @@ -105,7 +105,6 @@ "confirmations.delete.message": "हे स्टेटस तुम्हाला नक्की हटवायचंय?", "confirmations.delete_list.confirm": "हटवा", "confirmations.delete_list.message": "ही यादी तुम्हाला नक्की कायमची हटवायचीय?", - "confirmations.domain_block.confirm": "संपूर्ण डोमेन लपवा", "confirmations.logout.message": "तुमची खात्री आहे की तुम्ही लॉग आउट करू इच्छिता?", "confirmations.mute.confirm": "आवाज बंद करा", "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", @@ -122,7 +121,6 @@ "hashtag.column_settings.tag_toggle": "Include additional tags in this column", "hashtag.follow": "हॅशटॅग फॉलो करा", "hashtag.unfollow": "हॅशटॅग अनफॉलो करा", - "home.column_settings.basic": "मूळ", "home.column_settings.show_reblogs": "बूस्ट दाखवा", "home.column_settings.show_replies": "उत्तरे दाखवा", "home.hide_announcements": "घोषणा लपवा", diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json index 3d6ba920c97765..8fe043c5dcec02 100644 --- a/app/javascript/mastodon/locales/ms.json +++ b/app/javascript/mastodon/locales/ms.json @@ -160,9 +160,7 @@ "compose_form.spoiler.unmarked": "Tambah amaran kandungan", "compose_form.spoiler_placeholder": "Amaran kandungan (pilihan)", "confirmation_modal.cancel": "Batal", - "confirmations.block.block_and_report": "Sekat & Lapor", "confirmations.block.confirm": "Sekat", - "confirmations.block.message": "Adakah anda pasti anda ingin menyekat {name}?", "confirmations.cancel_follow_request.confirm": "Tarik balik permintaan", "confirmations.cancel_follow_request.message": "Adakah anda pasti ingin menarik balik permintaan anda untuk mengikut {name}?", "confirmations.delete.confirm": "Padam", @@ -171,15 +169,12 @@ "confirmations.delete_list.message": "Adakah anda pasti anda ingin memadam senarai ini secara kekal?", "confirmations.discard_edit_media.confirm": "Singkir", "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": "Sunting", "confirmations.edit.message": "Mengedit sekarang akan menimpa mesej yang sedang anda karang. Adakah anda pasti mahu meneruskan?", "confirmations.logout.confirm": "Log keluar", "confirmations.logout.message": "Adakah anda pasti anda ingin log keluar?", "confirmations.mute.confirm": "Bisukan", - "confirmations.mute.explanation": "Ini akan menyembunyikan hantaran daripada mereka dan juga hantaran yang menyebut mereka, tetapi ia masih membenarkan mereka melihat hantaran anda dan mengikuti anda.", - "confirmations.mute.message": "Adakah anda pasti anda ingin membisukan {name}?", "confirmations.redraft.confirm": "Padam & rangka semula", "confirmations.redraft.message": "Adakah anda pasti anda ingin memadam pos ini dan merangkanya semula? Kegemaran dan galakan akan hilang, dan balasan ke pos asal akan menjadi yatim.", "confirmations.reply.confirm": "Balas", @@ -311,7 +306,6 @@ "hashtag.follow": "Ikuti hashtag", "hashtag.unfollow": "Nyahikut tanda pagar", "hashtags.and_other": "…dan {count, plural, other {# more}}", - "home.column_settings.basic": "Asas", "home.column_settings.show_reblogs": "Tunjukkan galakan", "home.column_settings.show_replies": "Tunjukkan balasan", "home.hide_announcements": "Sembunyikan pengumuman", @@ -397,9 +391,6 @@ "loading_indicator.label": "Memuatkan…", "media_gallery.toggle_visible": "{number, plural, other {Sembunyikan imej}}", "moved_to_account_banner.text": "Akaun anda {disabledAccount} kini dinyahdayakan kerana anda berpindah ke {movedToAccount}.", - "mute_modal.duration": "Tempoh", - "mute_modal.hide_notifications": "Sembunyikan pemberitahuan daripada pengguna ini?", - "mute_modal.indefinite": "Tidak tentu", "navigation_bar.about": "Perihal", "navigation_bar.advanced_interface": "Buka dalam antara muka web lanjutan", "navigation_bar.blocks": "Pengguna yang disekat", @@ -443,9 +434,6 @@ "notifications.column_settings.admin.sign_up": "Pendaftaran baru:", "notifications.column_settings.alert": "Pemberitahuan atas meja", "notifications.column_settings.favourite": "Kegemaran:", - "notifications.column_settings.filter_bar.advanced": "Papar semua kategori", - "notifications.column_settings.filter_bar.category": "Bar penapis pantas", - "notifications.column_settings.filter_bar.show_bar": "Paparkan bar penapis", "notifications.column_settings.follow": "Pengikut baharu:", "notifications.column_settings.follow_request": "Permintaan ikutan baharu:", "notifications.column_settings.mention": "Sebutan:", @@ -636,7 +624,6 @@ "status.direct": "Sebut secara peribadi @{name}", "status.direct_indicator": "Sebutan peribadi", "status.edit": "Sunting", - "status.edited": "Disunting {date}", "status.edited_x_times": "Disunting {count, plural, other {{count} kali}}", "status.embed": "Benaman", "status.favourite": "Kegemaran", diff --git a/app/javascript/mastodon/locales/my.json b/app/javascript/mastodon/locales/my.json index 0d5985b1ce5a7b..23eaa8564b5470 100644 --- a/app/javascript/mastodon/locales/my.json +++ b/app/javascript/mastodon/locales/my.json @@ -150,9 +150,7 @@ "compose_form.spoiler.marked": "Text is hidden behind warning", "compose_form.spoiler.unmarked": "Text is not hidden", "confirmation_modal.cancel": "ပယ်ဖျက်မည်", - "confirmations.block.block_and_report": "ဘလော့ပြီး တိုင်ကြားမည်", "confirmations.block.confirm": "ဘလော့မည်", - "confirmations.block.message": "အကောင့်မှ ထွက်ရန် သေချာပါသလား?", "confirmations.cancel_follow_request.confirm": "ပန်ကြားချက်ကို ပယ်ဖျက်မည်", "confirmations.cancel_follow_request.message": "{name} ကို စောင့်ကြည့်ခြင်းအားပယ်ဖျက်ရန် သေချာပါသလား။", "confirmations.delete.confirm": "ဖျက်မည်", @@ -161,15 +159,12 @@ "confirmations.delete_list.message": "ဖျက်ရန် သေချာပါသလား?", "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": "ပြင်ရန်", "confirmations.edit.message": "ယခုပြင်ဆင်ခြင်းတွင် သင်လက်ရှိမက်ဆေ့ချ်ကို ဖျက်ပစ်ပြီး အသစ်ရေးပါမည်။ ရှေ့ဆက်လိုသည်မှာ သေချာပါသလား။", "confirmations.logout.confirm": "အကောင့်မှထွက်မည်", "confirmations.logout.message": "အကောင့်မှ ထွက်ရန် သေချာပါသလား?", "confirmations.mute.confirm": "ပိတ်ထားရန်", - "confirmations.mute.explanation": "၎င်းသည် ၎င်းတို့ထံမှ ပို့စ်များနှင့် ၎င်းတို့ကို ဖော်ပြထားသော ပို့စ်များကို ဖျောက်ထားမည်ဖြစ်ပြီး၊ သို့သော် ၎င်းတို့သည် သင့်ပို့စ်များကို မြင်နိုင်ပြီး သင့်အား လိုက်ကြည့်နိုင်စေမည်ဖြစ်သည်။", - "confirmations.mute.message": "{name} ကို မမြင်လိုသည်မှာ သေချာပါသလား။ ", "confirmations.redraft.confirm": "ဖျက်ပြီး ပြန်လည်ရေးမည်။", "confirmations.redraft.message": "သင် ဒီပိုစ့်ကိုဖျက်ပြီး ပြန်တည်းဖြတ်မှာ သေချာပြီလား။ ကြယ်ပွင့်​တွေ နဲ့ ပြန်မျှ​ဝေမှု​တွေကိုဆုံးရှုံးမည်။မူရင်းပို့စ်ဆီကို ပြန်စာ​တွေမှာလည်း​ \nပိုစ့်ကို​တွေ့ရမည်မဟုတ်​တော့ပါ။.", "confirmations.reply.confirm": "စာပြန်မည်", @@ -292,7 +287,6 @@ "hashtag.follow": "Hashtag ကို စောင့်ကြည့်မယ်", "hashtag.unfollow": "Hashtag ကို မစောင့်ကြည့်ပါ", "hashtags.and_other": "{count, plural, other {# more}} နှင့်", - "home.column_settings.basic": "အခြေခံ", "home.column_settings.show_reblogs": "Boost များကို ပြပါ", "home.column_settings.show_replies": "ပြန်စာများကို ပြပါ", "home.hide_announcements": "ကြေညာချက်များကို ဖျောက်ပါ", @@ -378,9 +372,6 @@ "loading_indicator.label": "လုပ်ဆောင်နေသည်…", "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", "moved_to_account_banner.text": "{movedToAccount} အကောင့်သို့ပြောင်းလဲထားသဖြင့် {disabledAccount} အကောင့်မှာပိတ်ထားသည်", - "mute_modal.duration": "ကြာချိန်", - "mute_modal.hide_notifications": "ဤအကောင့်မှသတိပေးချက်များကိုပိတ်မလား?", - "mute_modal.indefinite": "ရေတွက်လို့မရပါ", "navigation_bar.about": "အကြောင်း", "navigation_bar.advanced_interface": "အဆင့်မြင့်ဝဘ်ပုံစံ ဖွင့်ပါ", "navigation_bar.blocks": "ဘလော့ထားသောအကောင့်များ", @@ -424,9 +415,6 @@ "notifications.column_settings.admin.sign_up": "အကောင့်အသစ်များ -", "notifications.column_settings.alert": "Desktop သတိပေးချက်များ", "notifications.column_settings.favourite": "Favorites:", - "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": "ဖော်ပြချက်များ -", @@ -614,7 +602,6 @@ "status.direct": "@{name} ကို သီးသန့်ဖော်ပြမည်\n", "status.direct_indicator": "သီးသန့်ဖော်ပြခြင်း။", "status.edit": "ပြင်ဆင်ရန်", - "status.edited": "{date} ကို ပြင်ဆင်ပြီးပါပြီ", "status.edited_x_times": "{count, plural, one {{count} time} other {{count} times}} ပြင်ဆင်ခဲ့သည်", "status.embed": "Embed", "status.favourite": "Favorite", diff --git a/app/javascript/mastodon/locales/ne.json b/app/javascript/mastodon/locales/ne.json index 86e24a15fb1188..aef23c8566c985 100644 --- a/app/javascript/mastodon/locales/ne.json +++ b/app/javascript/mastodon/locales/ne.json @@ -50,6 +50,10 @@ "admin.dashboard.retention.cohort_size": "नयाँ प्रयोगकर्ताहरू", "alert.rate_limited.message": "कृपया {retry_time, time, medium} पछि पुन: प्रयास गर्नुहोस्।", "alert.unexpected.message": "एउटा अनपेक्षित त्रुटि भयो।", + "announcement.announcement": "घोषणा", + "block_modal.remote_users_caveat": "हामी सर्भर {domain} लाई तपाईंको निर्णयको सम्मान गर्न सोध्नेछौं। तर, हामी अनुपालनको ग्यारेन्टी दिन सक्दैनौं किनभने केही सर्भरहरूले ब्लकहरू फरक रूपमा ह्यान्डल गर्न सक्छन्। सार्वजनिक पोस्टहरू लग इन नभएका प्रयोगकर्ताहरूले देख्न सक्छन्।", + "block_modal.show_less": "कम देखाउनुहोस्", + "block_modal.show_more": "थप देखाउनुहोस्", "bundle_column_error.retry": "पुन: प्रयास गर्नुहोस्", "bundle_modal_error.close": "बन्द गर्नुहोस्", "bundle_modal_error.message": "यो कम्पोनेन्ट लोड गर्दा केही गडबड भयो।", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index a8d42e5ff60db1..9bf40a7148bb32 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -89,6 +89,14 @@ "announcement.announcement": "Mededeling", "attachments_list.unprocessed": "(niet verwerkt)", "audio.hide": "Audio verbergen", + "block_modal.remote_users_caveat": "We vragen de server {domain} om je besluit te respecteren. Het naleven hiervan is echter niet gegarandeerd, omdat sommige servers blokkades anders kunnen interpreteren. Openbare berichten zijn mogelijk nog steeds zichtbaar voor niet-ingelogde gebruikers.", + "block_modal.show_less": "Minder tonen", + "block_modal.show_more": "Meer tonen", + "block_modal.they_cant_mention": "De persoon kan jou niet vermelden of volgen.", + "block_modal.they_cant_see_posts": "De persoon kan jouw berichten niet zien en jij ook niet diens berichten.", + "block_modal.they_will_know": "De persoon kan zien dat die wordt geblokkeerd.", + "block_modal.title": "Gebruiker blokkeren?", + "block_modal.you_wont_see_mentions": "Je ziet geen berichten meer die dit account vermelden.", "boost_modal.combo": "Je kunt {combo} klikken om dit de volgende keer over te slaan", "bundle_column_error.copy_stacktrace": "Foutrapportage kopiëren", "bundle_column_error.error.body": "De opgevraagde pagina kon niet worden weergegeven. Dit kan het gevolg zijn van een fout in onze broncode, of van een compatibiliteitsprobleem met je webbrowser.", @@ -160,9 +168,7 @@ "compose_form.spoiler.unmarked": "Inhoudswaarschuwing toevoegen", "compose_form.spoiler_placeholder": "Inhoudswaarschuwing (optioneel)", "confirmation_modal.cancel": "Annuleren", - "confirmations.block.block_and_report": "Blokkeren en rapporteren", "confirmations.block.confirm": "Blokkeren", - "confirmations.block.message": "Weet je het zeker dat je {name} wilt blokkeren?", "confirmations.cancel_follow_request.confirm": "Verzoek annuleren", "confirmations.cancel_follow_request.message": "Weet je zeker dat je jouw verzoek om {name} te volgen wilt annuleren?", "confirmations.delete.confirm": "Verwijderen", @@ -171,15 +177,13 @@ "confirmations.delete_list.message": "Weet je zeker dat je deze lijst definitief wilt verwijderen?", "confirmations.discard_edit_media.confirm": "Weggooien", "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.domain_block.confirm": "Server blokkeren", + "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 ziet geen berichten van deze server meer op openbare tijdlijnen 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", - "confirmations.mute.explanation": "Dit verbergt diens berichten en berichten waar diegene in wordt vermeld, maar diegene kan nog steeds jouw berichten bekijken en jou volgen.", - "confirmations.mute.message": "Weet je het zeker dat je {name} wilt negeren?", "confirmations.redraft.confirm": "Verwijderen en herschrijven", "confirmations.redraft.message": "Weet je zeker dat je dit bericht wilt verwijderen en herschrijven? Je verliest wel de boosts en favorieten, en de reacties op het originele bericht raak je kwijt.", "confirmations.reply.confirm": "Reageren", @@ -205,6 +209,27 @@ "dismissable_banner.explore_statuses": "Dit zijn berichten op het sociale web die vandaag aan populariteit winnen. Nieuwere berichten met meer boosts en favorieten staan hoger.", "dismissable_banner.explore_tags": "Deze hashtags winnen aan populariteit op het sociale web. Hashtags die door meer verschillende mensen worden gebruikt staan hoger.", "dismissable_banner.public_timeline": "Dit zijn de meest recente openbare berichten van accounts op het sociale web die door mensen op {domain} worden gevolgd.", + "domain_block_modal.block": "Server blokkeren", + "domain_block_modal.block_account_instead": "In plaats hiervan {name} blokkeren", + "domain_block_modal.they_can_interact_with_old_posts": "Mensen op deze server kunnen interactie hebben met jouw oude berichten.", + "domain_block_modal.they_cant_follow": "Niemand op deze server kan jou volgen.", + "domain_block_modal.they_wont_know": "Ze krijgen niet te weten dat ze worden geblokkeerd.", + "domain_block_modal.title": "Server blokkeren?", + "domain_block_modal.you_will_lose_followers": "Al jouw volgers van deze server worden ontvolgd.", + "domain_block_modal.you_wont_see_posts": "Je ziet geen berichten of meldingen meer van gebruikers op deze server.", + "domain_pill.activitypub_lets_connect": "Het zorgt ervoor dat je niet alleen maar kunt verbinden en communiceren met mensen op Mastodon, maar ook met andere sociale apps.", + "domain_pill.activitypub_like_language": "ActivityPub is de taal die Mastodon met andere sociale netwerken spreekt.", + "domain_pill.server": "Server", + "domain_pill.their_handle": "Hun Mastodon-adres:", + "domain_pill.their_server": "Hun digitale thuis, waar al hun berichten zich bevinden.", + "domain_pill.their_username": "Hun unieke identificatie-adres op hun server. Het is mogelijk dat er gebruikers met dezelfde gebruikersnaam op verschillende servers te vinden zijn.", + "domain_pill.username": "Gebruikersnaam", + "domain_pill.whats_in_a_handle": "Wat is een Mastodon-adres?", + "domain_pill.who_they_are": "Omdat je aan een Mastodon-adres kunt zien wie iemand is en waar die zich bevindt, kun je met mensen op het door sociale web communiceren.", + "domain_pill.who_you_are": "Omdat je aan jouw Mastodon-adres kunt zien wie jij bent is en waar je je bevindt, kunnen mensen op het door sociale web met jou communiceren.", + "domain_pill.your_handle": "Jouw Mastodon-adres:", + "domain_pill.your_server": "Jouw digitale thuis, waar al jouw berichten zich bevinden. Is deze server toch niet naar jouw wens? Dan kun je op elk moment naar een andere server verhuizen en ook jouw volgers overbrengen.", + "domain_pill.your_username": "Jouw unieke identificatie-adres op deze server. Het is mogelijk dat er gebruikers met dezelfde gebruikersnaam op verschillende servers te vinden zijn.", "embed.instructions": "Embed dit bericht op jouw website door de onderstaande code te kopiëren.", "embed.preview": "Zo komt het eruit te zien:", "emoji_button.activity": "Activiteiten", @@ -229,18 +254,19 @@ "empty_column.blocks": "Je hebt nog geen gebruikers geblokkeerd.", "empty_column.bookmarked_statuses": "Jij hebt nog geen berichten aan je bladwijzers toegevoegd. Wanneer je er een aan jouw bladwijzers toevoegt, valt deze hier te zien.", "empty_column.community": "De lokale tijdlijn is nog leeg. Plaats een openbaar bericht om de spits af te bijten!", - "empty_column.direct": "Je hebt nog geen privéberichten. Wanneer je er een verstuurt of ontvangt, zullen deze hier verschijnen.", + "empty_column.direct": "Je hebt nog geen privéberichten. Wanneer je er een verstuurt of ontvangt, komen deze hier te staan.", "empty_column.domain_blocks": "Er zijn nog geen geblokkeerde servers.", "empty_column.explore_statuses": "Momenteel zijn er geen trends. Kom later terug!", "empty_column.favourited_statuses": "Jij hebt nog geen favoriete berichten. Wanneer je een bericht als favoriet markeert, valt deze hier te zien.", "empty_column.favourites": "Niemand heeft dit bericht nog als favoriet gemarkeerd. Wanneer iemand dit doet, valt dat hier te zien.", - "empty_column.follow_requests": "Je hebt nog geen volgverzoeken. Wanneer je er een ontvangt, zal dat hier te zien zijn.", - "empty_column.followed_tags": "Je hebt nog geen hashtags gevolgd. Wanneer je dit doet, zullen ze hier verschijnen.", + "empty_column.follow_requests": "Jij hebt nog enkel volgverzoek ontvangen. Wanneer je er eentje ontvangt, valt dat hier te zien.", + "empty_column.followed_tags": "Je hebt nog geen hashtags gevolgd. Nadat je dit doet, komen deze hier te staan.", "empty_column.hashtag": "Er is nog niks te vinden onder deze hashtag.", "empty_column.home": "Deze tijdlijn is leeg! Volg meer mensen om het te vullen.", "empty_column.list": "Er is nog niks te zien in deze lijst. Wanneer lijstleden nieuwe berichten plaatsen, zijn deze hier te zien.", - "empty_column.lists": "Je hebt nog geen lijsten. Wanneer je er een aanmaakt, zal dat hier verschijnen.", + "empty_column.lists": "Je hebt nog geen lijsten. Wanneer je er een aanmaakt, valt dat hier te zien.", "empty_column.mutes": "Jij hebt nog geen gebruikers genegeerd.", + "empty_column.notification_requests": "Helemaal leeg! Er is hier niets. Wanneer je nieuwe meldingen ontvangt, verschijnen deze hier volgens jouw instellingen.", "empty_column.notifications": "Je hebt nog geen meldingen. Begin met iemand een gesprek.", "empty_column.public": "Er is hier helemaal niks! Plaatst een openbaar bericht of volg mensen van andere servers om het te vullen", "error.unexpected_crash.explanation": "Als gevolg van een bug in onze broncode of als gevolg van een compatibiliteitsprobleem met jouw webbrowser, kan deze pagina niet goed worden weergegeven.", @@ -271,6 +297,8 @@ "filter_modal.select_filter.subtitle": "Een bestaande categorie gebruiken of een nieuwe aanmaken", "filter_modal.select_filter.title": "Dit bericht filteren", "filter_modal.title.status": "Een bericht filteren", + "filtered_notifications_banner.pending_requests": "Meldingen van {count, plural, =0 {niemand} one {één persoon} other {# mensen}} die je misschien kent", + "filtered_notifications_banner.title": "Gefilterde meldingen", "firehose.all": "Alles", "firehose.local": "Deze server", "firehose.remote": "Andere servers", @@ -314,7 +342,6 @@ "hashtag.follow": "Hashtag volgen", "hashtag.unfollow": "Hashtag ontvolgen", "hashtags.and_other": "…en {count, plural, one {}other {# meer}}", - "home.column_settings.basic": "Algemeen", "home.column_settings.show_reblogs": "Boosts tonen", "home.column_settings.show_replies": "Reacties tonen", "home.hide_announcements": "Mededelingen verbergen", @@ -400,9 +427,15 @@ "loading_indicator.label": "Laden…", "media_gallery.toggle_visible": "{number, plural, one {afbeelding verbergen} other {afbeeldingen verbergen}}", "moved_to_account_banner.text": "Omdat je naar {movedToAccount} bent verhuisd is jouw account {disabledAccount} momenteel uitgeschakeld.", - "mute_modal.duration": "Tijdsduur", - "mute_modal.hide_notifications": "Verberg meldingen van deze persoon?", - "mute_modal.indefinite": "Voor onbepaalde tijd", + "mute_modal.hide_from_notifications": "Onder meldingen verbergen", + "mute_modal.hide_options": "Opties verbergen", + "mute_modal.indefinite": "Totdat ik ze niet meer negeer", + "mute_modal.show_options": "Opties tonen", + "mute_modal.they_can_mention_and_follow": "De persoon kan jou vermelden en volgen, maar jij ziet niks meer van deze persoon.", + "mute_modal.they_wont_know": "De persoon krijgt niet te weten dat die wordt genegeerd.", + "mute_modal.title": "Gebruiker negeren?", + "mute_modal.you_wont_see_mentions": "Je ziet geen berichten meer die dit account vermelden.", + "mute_modal.you_wont_see_posts": "De persoon kan nog steeds jouw berichten zien, maar diens berichten zie je niet meer.", "navigation_bar.about": "Over", "navigation_bar.advanced_interface": "In geavanceerde webinterface openen", "navigation_bar.blocks": "Geblokkeerde gebruikers", @@ -440,15 +473,16 @@ "notification.reblog": "{name} boostte jouw bericht", "notification.status": "{name} heeft zojuist een bericht geplaatst", "notification.update": "{name} heeft een bericht bewerkt", + "notification_requests.accept": "Accepteren", + "notification_requests.dismiss": "Afwijzen", + "notification_requests.notifications_from": "Meldingen van {name}", + "notification_requests.title": "Gefilterde meldingen", "notifications.clear": "Meldingen verwijderen", "notifications.clear_confirmation": "Weet je het zeker dat je al jouw meldingen wilt verwijderen?", "notifications.column_settings.admin.report": "Nieuwe rapportages:", "notifications.column_settings.admin.sign_up": "Nieuwe registraties:", "notifications.column_settings.alert": "Desktopmeldingen", "notifications.column_settings.favourite": "Favorieten:", - "notifications.column_settings.filter_bar.advanced": "Alle categorieën tonen", - "notifications.column_settings.filter_bar.category": "Snelle filterbalk", - "notifications.column_settings.filter_bar.show_bar": "Filterbalk tonen", "notifications.column_settings.follow": "Nieuwe volgers:", "notifications.column_settings.follow_request": "Nieuw volgverzoek:", "notifications.column_settings.mention": "Vermeldingen:", @@ -474,6 +508,15 @@ "notifications.permission_denied": "Desktopmeldingen zijn niet beschikbaar omdat een eerdere browsertoestemming werd geweigerd", "notifications.permission_denied_alert": "Desktopmeldingen kunnen niet worden ingeschakeld, omdat een eerdere browsertoestemming werd geweigerd", "notifications.permission_required": "Desktopmeldingen zijn niet beschikbaar omdat de benodigde toestemming niet is verleend.", + "notifications.policy.filter_new_accounts.hint": "In de afgelopen {days, plural, one {24 uur} other {# dagen}} geregistreerd", + "notifications.policy.filter_new_accounts_title": "Nieuwe accounts", + "notifications.policy.filter_not_followers_hint": "Inclusief mensen die jou korter dan {days, plural, one {24 uur} other {# dagen}} volgen", + "notifications.policy.filter_not_followers_title": "Mensen die jou niet volgen", + "notifications.policy.filter_not_following_hint": "Totdat je ze handmatig goedkeurt", + "notifications.policy.filter_not_following_title": "Mensen die jij niet volgt", + "notifications.policy.filter_private_mentions_hint": "Onzichtbaar tenzij het een antwoord is op een privébericht van jou of wanneer je de afzender volgt", + "notifications.policy.filter_private_mentions_title": "Ongevraagde privéberichten", + "notifications.policy.title": "Meldingen verbergen van…", "notifications_permission_banner.enable": "Desktopmeldingen inschakelen", "notifications_permission_banner.how_to_control": "Om meldingen te ontvangen wanneer Mastodon niet open staat. Je kunt precies bepalen welke soort interacties wel of geen desktopmeldingen geven via de bovenstaande {icon} knop.", "notifications_permission_banner.title": "Mis nooit meer iets", @@ -483,7 +526,7 @@ "onboarding.actions.go_to_home": "Ga naar je starttijdlijn", "onboarding.compose.template": "Hallo #Mastodon!", "onboarding.follows.empty": "Helaas kunnen op dit moment geen resultaten worden getoond. Je kunt proberen te zoeken of op de verkenningspagina te bladeren om mensen te vinden die je kunt volgen, of probeer het later opnieuw.", - "onboarding.follows.lead": "Jouw starttijdlijn is de belangrijkste manier om Mastodon te ervaren. Hoe meer mensen je volgt, hoe actiever en interessanter het zal zijn. Om te beginnen, zijn hier enkele suggesties:", + "onboarding.follows.lead": "Jouw starttijdlijn is de belangrijkste manier om Mastodon te ervaren. Hoe meer mensen je volgt, hoe actiever en interessanter het wordt. Om te beginnen zijn hier enkele suggesties:", "onboarding.follows.title": "Je starttijdlijn aan jouw wensen aanpassen", "onboarding.profile.discoverable": "Maak mijn profiel vindbaar", "onboarding.profile.discoverable_hint": "Wanneer je akkoord gaat met het vindbaar zijn op Mastodon, verschijnen je berichten in zoekresultaten en kunnen ze trending worden, en je profiel kan aan andere mensen worden aanbevolen wanneer ze vergelijkbare interesses hebben.", @@ -507,7 +550,7 @@ "onboarding.steps.follow_people.title": "Je starttijdlijn aan jouw wensen aanpassen", "onboarding.steps.publish_status.body": "Zeg hallo tegen de wereld met tekst, foto's, video's of peilingen {emoji}", "onboarding.steps.publish_status.title": "Maak je eerste bericht", - "onboarding.steps.setup_profile.body": "Anderen zullen eerder met je in contact treden als je wat over jezelf vertelt.", + "onboarding.steps.setup_profile.body": "Wanneer je meer over jezelf vertelt, krijg je meer interactie met andere mensen.", "onboarding.steps.setup_profile.title": "Je profiel aanpassen", "onboarding.steps.share_profile.body": "Laat je vrienden weten waar je te vinden bent op Mastodon", "onboarding.steps.share_profile.title": "Deel je Mastodonprofiel", @@ -535,7 +578,7 @@ "privacy.private.short": "Volgers", "privacy.public.long": "Iedereen op Mastodon en daarbuiten", "privacy.public.short": "Openbaar", - "privacy.unlisted.additional": "Dit is vergelijkbaar met openbaar, behalve dat het beticht niet verschijnt op openbare tijdlijnen of hashtags, onder verkennen of Mastodon zoeken, zelfs als je je account daarvoor hebt ingesteld.", + "privacy.unlisted.additional": "Dit is vergelijkbaar met openbaar, behalve dat het bericht niet op openbare tijdlijnen, onder hashtags, verkennen of zoeken verschijnt, zelfs als je je account daarvoor hebt ingesteld.", "privacy.unlisted.long": "Voor iedereen zichtbaar, maar niet onder trends, hashtags en op openbare tijdlijnen", "privacy.unlisted.short": "Minder openbaar", "privacy_policy.last_updated": "Laatst bijgewerkt op {date}", @@ -650,10 +693,11 @@ "status.direct": "@{name} een privébericht sturen", "status.direct_indicator": "Privébericht", "status.edit": "Bewerken", - "status.edited": "Bewerkt op {date}", + "status.edited": "Laatste bewerking op {date}", "status.edited_x_times": "{count, plural, one {{count} keer} other {{count} keer}} bewerkt", "status.embed": "Embedden", "status.favourite": "Favoriet", + "status.favourites": "{count, plural, one {# favoriet} other {# favorieten}}", "status.filter": "Dit bericht filteren", "status.filtered": "Gefilterd", "status.hide": "Bericht verbergen", @@ -674,12 +718,13 @@ "status.reblog": "Boosten", "status.reblog_private": "Boost naar oorspronkelijke ontvangers", "status.reblogged_by": "{name} boostte", + "status.reblogs": "{count, plural, one {boost} other {boosts}}", "status.reblogs.empty": "Niemand heeft dit bericht nog geboost. Wanneer iemand dit doet, valt dat hier te zien.", "status.redraft": "Verwijderen en herschrijven", "status.remove_bookmark": "Bladwijzer verwijderen", "status.replied_to": "Reageerde op {name}", "status.reply": "Reageren", - "status.replyAll": "Reageer op iedereen", + "status.replyAll": "Op iedereen reageren", "status.report": "@{name} rapporteren", "status.sensitive_warning": "Gevoelige inhoud", "status.share": "Delen", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index 3cc537f54f0121..a218cadf8dfb82 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -89,6 +89,9 @@ "announcement.announcement": "Kunngjering", "attachments_list.unprocessed": "(ubehandla)", "audio.hide": "Gøym lyd", + "block_modal.remote_users_caveat": "Vi vil be tenaren {domain} om å respektere di avgjerd. Det kan ikkje garanterast at det vert etterfølgd, sidan nokre tenarar kan handtere blokkering ulikt. Offentlege innlegg kan framleis vere synlege for ikkje-innlogga brukarar.", + "block_modal.show_less": "Vis mindre", + "block_modal.show_more": "Vis meir", "boost_modal.combo": "Du kan trykkja {combo} for å hoppa over dette neste gong", "bundle_column_error.copy_stacktrace": "Kopier feilrapport", "bundle_column_error.error.body": "Den etterspurde sida kan ikke hentast fram. Det kan skuldast ein feil i koden vår eller eit kompatibilitetsproblem.", @@ -160,9 +163,7 @@ "compose_form.spoiler.unmarked": "Legg til innhaldsåtvaring", "compose_form.spoiler_placeholder": "Innhaldsåtvaring (valfritt)", "confirmation_modal.cancel": "Avbryt", - "confirmations.block.block_and_report": "Blokker & rapporter", "confirmations.block.confirm": "Blokker", - "confirmations.block.message": "Er du sikker på at du vil blokkera {name}?", "confirmations.cancel_follow_request.confirm": "Trekk attende førespurnad", "confirmations.cancel_follow_request.message": "Er du sikker på at du vil trekkje attende førespurnaden din om å fylgje {name}?", "confirmations.delete.confirm": "Slett", @@ -171,15 +172,12 @@ "confirmations.delete_list.message": "Er du sikker på at du vil sletta denne lista for alltid?", "confirmations.discard_edit_media.confirm": "Forkast", "confirmations.discard_edit_media.message": "Du har ulagra endringar i mediaskildringa eller førehandsvisinga. Vil du forkasta dei likevel?", - "confirmations.domain_block.confirm": "Blokker heile 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", - "confirmations.mute.explanation": "Dette vil gøyma innlegga deira og innlegg som nemner dei, men dei vil framleis kunna sjå innlegga dine og fylgja deg.", - "confirmations.mute.message": "Er du sikker på at du vil målbinda {name}?", "confirmations.redraft.confirm": "Slett & skriv på nytt", "confirmations.redraft.message": "Er du sikker på at du vil sletta denne statusen og skriva han på nytt? Då misser du favorittar og framhevingar, og svar til det opprinnelege innlegget vert foreldrelause.", "confirmations.reply.confirm": "Svar", @@ -205,6 +203,19 @@ "dismissable_banner.explore_statuses": "Dette er innlegg frå det desentraliserte nettverket som er i støytet i dag. Nye statusar som er mykje framheva og merkte som favorittar er rangert høgare.", "dismissable_banner.explore_tags": "Desse emneknaggane er populære blant folk på denne tenaren og andre tenarar i det desentraliserte nettverket nett no.", "dismissable_banner.public_timeline": "Dette er dei nyaste offentlege innlegga frå menneske på det sosiale nettet som folk på {domain} følgjer.", + "domain_pill.activitypub_lets_connect": "Den lar deg kople til og samhandle med folk ikkje berre på Mastodon, men òg på tvers av forskjellige sosiale appar.", + "domain_pill.activitypub_like_language": "ActivityPub er som språket Mastodon snakkar med andre sosiale nettverk.", + "domain_pill.server": "Tenar", + "domain_pill.their_handle": "Deira handtak:", + "domain_pill.their_server": "Deira digitale heim, som alle innlegga deira bur.", + "domain_pill.their_username": "Deira unike identifikator på serveren deira. Det er mogleg å finne brukarar med same brukarnamn på forskjellige tenarar.", + "domain_pill.username": "Brukarnamn", + "domain_pill.whats_in_a_handle": "Kva er i eit handtak?", + "domain_pill.who_they_are": "Sidan handtak seier kven nokon er og kvar dei er, kan du interagere med folk på tvers av det sosiale nettverket av .", + "domain_pill.who_you_are": "Sidan handtaket ditt seier kven du er og kvar du er, kan folk interagere med deg på tvers av det sosiale nettverket av .", + "domain_pill.your_handle": "Handtaket ditt:", + "domain_pill.your_server": "Din digitale heim, som alle postane dine bur i. Liker du ikkje dette? Overfør tenarar når som helst og ta med følgjarane dine òg.", + "domain_pill.your_username": "Din unike identifikator på denne tenaren. Det er mogleg å finne brukarar med same brukarnamn på forskjellige tenarar.", "embed.instructions": "Bygg inn denne statusen på nettsida di ved å kopiera koden nedanfor.", "embed.preview": "Slik kjem det til å sjå ut:", "emoji_button.activity": "Aktivitet", @@ -241,6 +252,7 @@ "empty_column.list": "Det er ingenting i denne lista enno. Når medlemer av denne lista legg ut nye statusar, så dukkar dei opp her.", "empty_column.lists": "Du har ingen lister enno. Når du lagar ei, så dukkar ho opp her.", "empty_column.mutes": "Du har ikkje målbunde nokon enno.", + "empty_column.notification_requests": "Ferdig! Her er det ingenting. Når du får nye varsel, kjem dei opp her slik du har valt.", "empty_column.notifications": "Du har ingen varsel enno. Kommuniser med andre for å starte samtalen.", "empty_column.public": "Det er ingenting her! Skriv noko offentleg, eller følg brukarar frå andre tenarar manuelt for å fylle det opp", "error.unexpected_crash.explanation": "På grunn av eit nettlesarkompatibilitetsproblem eller ein feil i koden vår, kunne ikkje denne sida bli vist slik den skal.", @@ -271,6 +283,8 @@ "filter_modal.select_filter.subtitle": "Bruk ein eksisterande kategori eller opprett ein ny", "filter_modal.select_filter.title": "Filtrer dette innlegget", "filter_modal.title.status": "Filtrer eit innlegg", + "filtered_notifications_banner.pending_requests": "Varsel frå {count, plural, =0 {ingen} one {ein person} other {# folk}} du kanskje kjenner", + "filtered_notifications_banner.title": "Filtrerte varslingar", "firehose.all": "Alle", "firehose.local": "Denne tenaren", "firehose.remote": "Andre tenarar", @@ -314,7 +328,6 @@ "hashtag.follow": "Fylg emneknagg", "hashtag.unfollow": "Slutt å fylgje emneknaggen", "hashtags.and_other": "…og {count, plural, one {}other {# fleire}}", - "home.column_settings.basic": "Grunnleggjande", "home.column_settings.show_reblogs": "Vis framhevingar", "home.column_settings.show_replies": "Vis svar", "home.hide_announcements": "Skjul kunngjeringar", @@ -400,9 +413,6 @@ "loading_indicator.label": "Lastar…", "media_gallery.toggle_visible": "{number, plural, one {Skjul bilete} other {Skjul bilete}}", "moved_to_account_banner.text": "Kontoen din, {disabledAccount} er for tida deaktivert fordi du har flytta til {movedToAccount}.", - "mute_modal.duration": "Varigheit", - "mute_modal.hide_notifications": "Gøym varsel frå denne brukaren?", - "mute_modal.indefinite": "På ubestemt tid", "navigation_bar.about": "Om", "navigation_bar.advanced_interface": "Opne i avansert nettgrensesnitt", "navigation_bar.blocks": "Blokkerte brukarar", @@ -440,15 +450,16 @@ "notification.reblog": "{name} framheva innlegget ditt", "notification.status": "{name} la nettopp ut", "notification.update": "{name} redigerte eit innlegg", + "notification_requests.accept": "Godkjenn", + "notification_requests.dismiss": "Avvis", + "notification_requests.notifications_from": "Varslingar frå {name}", + "notification_requests.title": "Filtrerte varslingar", "notifications.clear": "Tøm varsel", "notifications.clear_confirmation": "Er du sikker på at du vil fjerna alle varsla dine for alltid?", "notifications.column_settings.admin.report": "Nye rapportar:", "notifications.column_settings.admin.sign_up": "Nyleg registrerte:", "notifications.column_settings.alert": "Skrivebordsvarsel", "notifications.column_settings.favourite": "Favorittar:", - "notifications.column_settings.filter_bar.advanced": "Vis alle kategoriar", - "notifications.column_settings.filter_bar.category": "Snarfilterlinje", - "notifications.column_settings.filter_bar.show_bar": "Vis filterlinja", "notifications.column_settings.follow": "Nye fylgjarar:", "notifications.column_settings.follow_request": "Ny fylgjarførespurnader:", "notifications.column_settings.mention": "Omtalar:", @@ -474,6 +485,15 @@ "notifications.permission_denied": "Skrivebordsvarsel er ikkje tilgjengelege på grunn av at nettlesaren tidlegare ikkje har fått naudsynte rettar til å vise dei", "notifications.permission_denied_alert": "Sidan nettlesaren tidlegare har blitt nekta naudsynte rettar, kan ikkje skrivebordsvarsel aktiverast", "notifications.permission_required": "Skrivebordsvarsel er utilgjengelege fordi naudsynte rettar ikkje er gitt.", + "notifications.policy.filter_new_accounts.hint": "Skrive siste {days, plural, one {dag} other {# dagar}}", + "notifications.policy.filter_new_accounts_title": "Nye brukarkontoar", + "notifications.policy.filter_not_followers_hint": "Inkludert folk som har fylgt deg mindre enn {days, plural, one {ein dag} other {# dagar}}", + "notifications.policy.filter_not_followers_title": "Folk som ikkje fylgjer deg", + "notifications.policy.filter_not_following_hint": "Til du godkjenner dei manuelt", + "notifications.policy.filter_not_following_title": "Folk du ikkje fylgjer", + "notifications.policy.filter_private_mentions_hint": "Filtrert viss det ikkje er eit svar på dine eigne nemningar eller viss du fylgjer avsendaren", + "notifications.policy.filter_private_mentions_title": "Masseutsende private nemningar", + "notifications.policy.title": "Filtrer ut varslingar frå…", "notifications_permission_banner.enable": "Skru på skrivebordsvarsel", "notifications_permission_banner.how_to_control": "Aktiver skrivebordsvarsel for å få varsel når Mastodon ikkje er open. Du kan nøye bestemme kva samhandlingar som skal føre til skrivebordsvarsel gjennom {icon}-knappen ovanfor etter at varsel er aktivert.", "notifications_permission_banner.title": "Gå aldri glipp av noko", @@ -650,7 +670,6 @@ "status.direct": "Nevn @{name} privat", "status.direct_indicator": "Privat omtale", "status.edit": "Rediger", - "status.edited": "Redigert {date}", "status.edited_x_times": "Redigert {count, plural, one {{count} gong} other {{count} gonger}}", "status.embed": "Bygg inn", "status.favourite": "Favoritt", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index a172fc69f4c4e6..7f93ff04650262 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -160,9 +160,7 @@ "compose_form.spoiler.unmarked": "Legg til innholdsvarsel", "compose_form.spoiler_placeholder": "Innholdsadvarsel (valgfritt)", "confirmation_modal.cancel": "Avbryt", - "confirmations.block.block_and_report": "Blokker og rapporter", "confirmations.block.confirm": "Blokkèr", - "confirmations.block.message": "Er du sikker på at du vil blokkere {name}?", "confirmations.cancel_follow_request.confirm": "Trekk tilbake forespørsel", "confirmations.cancel_follow_request.message": "Er du sikker på at du vil trekke tilbake forespørselen din for å følge {name}?", "confirmations.delete.confirm": "Slett", @@ -171,15 +169,12 @@ "confirmations.delete_list.message": "Er du sikker på at du vil slette denne listen permanent?", "confirmations.discard_edit_media.confirm": "Forkast", "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": "Redigér", "confirmations.edit.message": "Å redigere nå vil overskrive meldingen du skriver for øyeblikket. Er du sikker på at du vil fortsette?", "confirmations.logout.confirm": "Logg ut", "confirmations.logout.message": "Er du sikker på at du vil logge ut?", "confirmations.mute.confirm": "Demp", - "confirmations.mute.explanation": "Dette vil skjule innlegg fra dem og innlegg som nevner dem, men det vil fortsatt la dem se dine innlegg og å følge deg.", - "confirmations.mute.message": "Er du sikker på at du vil dempe {name}?", "confirmations.redraft.confirm": "Slett og skriv på nytt", "confirmations.redraft.message": "Er du sikker på at du vil slette dette innlegget og lagre det på nytt? Favoritter og fremhevinger vil gå tapt, og svar til det originale innlegget vil bli foreldreløse.", "confirmations.reply.confirm": "Svar", @@ -304,7 +299,6 @@ "hashtag.follow": "Følg emneknagg", "hashtag.unfollow": "Slutt å følge emneknagg", "hashtags.and_other": "…og {count, plural, one{en til} other {# til}}", - "home.column_settings.basic": "Enkelt", "home.column_settings.show_reblogs": "Vis fremhevinger", "home.column_settings.show_replies": "Vis svar", "home.hide_announcements": "Skjul kunngjøring", @@ -390,9 +384,6 @@ "loading_indicator.label": "Laster…", "media_gallery.toggle_visible": "Veksle synlighet", "moved_to_account_banner.text": "Din konto {disabledAccount} er for øyeblikket deaktivert fordi du flyttet til {movedToAccount}.", - "mute_modal.duration": "Varighet", - "mute_modal.hide_notifications": "Skjul varslinger fra denne brukeren?", - "mute_modal.indefinite": "På ubestemt tid", "navigation_bar.about": "Om", "navigation_bar.advanced_interface": "Åpne i det avanserte nettgrensesnittet", "navigation_bar.blocks": "Blokkerte brukere", @@ -436,9 +427,6 @@ "notifications.column_settings.admin.sign_up": "Nye registreringer:", "notifications.column_settings.alert": "Skrivebordsvarslinger", "notifications.column_settings.favourite": "Favoritter:", - "notifications.column_settings.filter_bar.advanced": "Vis alle kategorier", - "notifications.column_settings.filter_bar.category": "Hurtigfiltreringslinje", - "notifications.column_settings.filter_bar.show_bar": "Vis filterlinjen", "notifications.column_settings.follow": "Nye følgere:", "notifications.column_settings.follow_request": "Nye følgerforespørsler:", "notifications.column_settings.mention": "Nevnt:", @@ -638,7 +626,6 @@ "status.direct": "Nevn @{name} privat", "status.direct_indicator": "Privat omtale", "status.edit": "Rediger", - "status.edited": "Redigert {date}", "status.edited_x_times": "Redigert {count, plural,one {{count} gang} other {{count} ganger}}", "status.embed": "Bygge inn", "status.favourite": "Favoritt", diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json index 5e122064fc747d..3c32fed0efc2fa 100644 --- a/app/javascript/mastodon/locales/oc.json +++ b/app/javascript/mastodon/locales/oc.json @@ -137,9 +137,7 @@ "compose_form.spoiler.marked": "Lo tèxte es rescondut jos l’avertiment", "compose_form.spoiler.unmarked": "Lo tèxte es pas rescondut", "confirmation_modal.cancel": "Anullar", - "confirmations.block.block_and_report": "Blocar e senhalar", "confirmations.block.confirm": "Blocar", - "confirmations.block.message": "Volètz vertadièrament blocar {name} ?", "confirmations.cancel_follow_request.confirm": "Retirar la demandar", "confirmations.cancel_follow_request.message": "Volètz vertadièrament retirar la demanda de seguiment de {name} ?", "confirmations.delete.confirm": "Escafar", @@ -147,14 +145,11 @@ "confirmations.delete_list.confirm": "Suprimir", "confirmations.delete_list.message": "Volètz vertadièrament suprimir aquesta lista per totjorn ?", "confirmations.discard_edit_media.confirm": "Ignorar", - "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": "Modificar", "confirmations.logout.confirm": "Desconnexion", "confirmations.logout.message": "Volètz vertadièrament vos desconnectar ?", "confirmations.mute.confirm": "Rescondre", - "confirmations.mute.explanation": "Aquò lor escondrà las publicacions e mencions, mas aquò lor permetrà encara de veire vòstra publicacions e de vos sègre.", - "confirmations.mute.message": "Volètz vertadièrament rescondre {name} ?", "confirmations.redraft.confirm": "Escafar & tornar formular", "confirmations.reply.confirm": "Respondre", "confirmations.reply.message": "Respondre remplaçarà lo messatge que sètz a escriure. Volètz vertadièrament contunhar ?", @@ -262,7 +257,6 @@ "hashtag.follow": "Sègre l’etiqueta", "hashtag.unfollow": "Quitar de sègre l’etiqueta", "hashtags.and_other": "…e {count, plural, one {}other {# de mai}}", - "home.column_settings.basic": "Basic", "home.column_settings.show_reblogs": "Mostrar los partatges", "home.column_settings.show_replies": "Mostrar las responsas", "home.hide_announcements": "Rescondre las anóncias", @@ -334,9 +328,6 @@ "load_pending": "{count, plural, one {# nòu element} other {# nòu elements}}", "loading_indicator.label": "Cargament…", "media_gallery.toggle_visible": "Modificar la visibilitat", - "mute_modal.duration": "Durada", - "mute_modal.hide_notifications": "Rescondre las notificacions d’aquesta persona ?", - "mute_modal.indefinite": "Cap de data de fin", "navigation_bar.about": "A prepaus", "navigation_bar.advanced_interface": "Dobrir l’interfàcia web avançada", "navigation_bar.blocks": "Personas blocadas", @@ -379,9 +370,6 @@ "notifications.column_settings.admin.sign_up": "Nòus inscrits :", "notifications.column_settings.alert": "Notificacions localas", "notifications.column_settings.favourite": "Favorits :", - "notifications.column_settings.filter_bar.advanced": "Mostrar totas las categorias", - "notifications.column_settings.filter_bar.category": "Barra de recèrca rapida", - "notifications.column_settings.filter_bar.show_bar": "Afichar la barra de filtres", "notifications.column_settings.follow": "Nòus seguidors :", "notifications.column_settings.follow_request": "Novèla demanda d’abonament :", "notifications.column_settings.mention": "Mencions :", @@ -529,7 +517,6 @@ "status.direct": "Mencionar @{name} en privat", "status.direct_indicator": "Mencion privada", "status.edit": "Modificar", - "status.edited": "Modificat {date}", "status.edited_x_times": "Modificat {count, plural, un {{count} còp} other {{count} còps}}", "status.embed": "Embarcar", "status.favourite": "Apondre als favorits", diff --git a/app/javascript/mastodon/locales/pa.json b/app/javascript/mastodon/locales/pa.json index ee47c1872db689..e09dd9067ab079 100644 --- a/app/javascript/mastodon/locales/pa.json +++ b/app/javascript/mastodon/locales/pa.json @@ -86,13 +86,11 @@ "compose_form.spoiler.unmarked": "ਸਮੱਗਰੀ ਬਾਰੇ ਚੇਤਾਵਨੀ ਜੋੜੋ", "compose_form.spoiler_placeholder": "ਸਮੱਗਰੀ ਬਾਰੇ ਚੇਤਾਵਨੀ (ਚੋਣਵਾਂ)", "confirmation_modal.cancel": "ਰੱਦ ਕਰੋ", - "confirmations.block.block_and_report": "ਰੋਕ ਲਾਓ ਤੇ ਰਿਪੋਰਟ ਕਰੋ", "confirmations.block.confirm": "ਪਾਬੰਦੀ", "confirmations.delete.confirm": "ਹਟਾਓ", "confirmations.delete.message": "ਕੀ ਤੁਸੀਂ ਇਹ ਪੋਸਟ ਨੂੰ ਹਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?", "confirmations.delete_list.confirm": "ਹਟਾਓ", "confirmations.discard_edit_media.confirm": "ਰੱਦ ਕਰੋ", - "confirmations.domain_block.confirm": "ਪੂਰੀ ਡੋਮੇਨ ਉੱਤੇ ਪਾਬੰਦੀ ਲਾਓ", "confirmations.edit.confirm": "ਸੋਧ", "confirmations.logout.confirm": "ਬਾਹਰ ਹੋਵੋ", "confirmations.mute.confirm": "ਮੌਨ ਕਰੋ", @@ -153,7 +151,6 @@ "hashtag.column_settings.tag_toggle": "Include additional tags in this column", "hashtag.follow": "ਹੈਸ਼ਟੈਗ ਨੂੰ ਫ਼ਾਲੋ ਕਰੋ", "hashtag.unfollow": "ਹੈਸ਼ਟੈਗ ਨੂੰ ਅਣ-ਫ਼ਾਲੋ ਕਰੋ", - "home.column_settings.basic": "ਆਮ", "home.pending_critical_update.link": "ਅੱਪਡੇਟ ਵੇਖੋ", "interaction_modal.title.follow": "{name} ਨੂੰ ਫ਼ਾਲੋ ਕਰੋ", "keyboard_shortcuts.back": "ਪਿੱਛੇ ਜਾਓ", @@ -197,7 +194,6 @@ "lists.replies_policy.followed": "ਕੋਈ ਵੀ ਫ਼ਾਲੋ ਕੀਤਾ ਵਰਤੋਂਕਾਰ", "lists.replies_policy.none": "ਕੋਈ ਨਹੀਂ", "loading_indicator.label": "ਲੋਡ ਹੋ ਰਿਹਾ ਹੈ…", - "mute_modal.duration": "ਮਿਆਦ", "navigation_bar.about": "ਇਸ ਬਾਰੇ", "navigation_bar.advanced_interface": "ਤਕਨੀਕੀ ਵੈੱਬ ਇੰਟਰਫੇਸ ਵਿੱਚ ਖੋਲ੍ਹੋ", "navigation_bar.blocks": "ਪਾਬੰਦੀ ਲਾਏ ਵਰਤੋਂਕਾਰ", @@ -311,7 +307,6 @@ "status.copy": "ਪੋਸਟ ਲਈ ਲਿੰਕ ਕਾਪੀ ਕਰੋ", "status.delete": "ਹਟਾਓ", "status.edit": "ਸੋਧ", - "status.edited": "{date} ਨੂੰ ਸੋਧਿਆ", "status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}", "status.embed": "ਮੜ੍ਹੋ", "status.favourite": "ਪਸੰਦ", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index 01b88eacdc0f5a..782ea9d76298f8 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -89,6 +89,14 @@ "announcement.announcement": "Ogłoszenie", "attachments_list.unprocessed": "(nieprzetworzone)", "audio.hide": "Ukryj dźwięk", + "block_modal.remote_users_caveat": "Poprosimy serwer {domain} o uszanowanie twojej decyzji. Zgodność nie jest jednak gwarantowana, bo niektóre serwery mogą inaczej obsługiwać blokowanie. Wpisy publiczne mogą być widoczne dla niezalogowanych użytkowników.", + "block_modal.show_less": "Pokaż mniej", + "block_modal.show_more": "Pokaż więcej", + "block_modal.they_cant_mention": "Użytkownik nie może Cię obserwować ani dodawać wzmianek o Tobie.", + "block_modal.they_cant_see_posts": "Użytkownik nie będzie widzieć Twoich wpisów, a Ty jego.", + "block_modal.they_will_know": "Użytkownik będzie wiedział, że jest zablokowany.", + "block_modal.title": "Zablokować użytkownika?", + "block_modal.you_wont_see_mentions": "Nie zobaczysz wpisów, które wspominają tego użytkownika.", "boost_modal.combo": "Naciśnij {combo}, aby pominąć to następnym razem", "bundle_column_error.copy_stacktrace": "Skopiuj raport o błędzie", "bundle_column_error.error.body": "Nie można zrenderować żądanej strony. Może to być spowodowane błędem w naszym kodzie lub problemami z kompatybilnością przeglądarki.", @@ -160,9 +168,7 @@ "compose_form.spoiler.unmarked": "Dodaj ostrzeżenie o treści", "compose_form.spoiler_placeholder": "Ostrzeżenie o treści (opcjonalne)", "confirmation_modal.cancel": "Anuluj", - "confirmations.block.block_and_report": "Zablokuj i zgłoś", "confirmations.block.confirm": "Zablokuj", - "confirmations.block.message": "Czy na pewno chcesz zablokować {name}?", "confirmations.cancel_follow_request.confirm": "Wycofaj prośbę", "confirmations.cancel_follow_request.message": "Czy na pewno chcesz wycofać prośbę o możliwość obserwowania {name}?", "confirmations.delete.confirm": "Usuń", @@ -171,15 +177,13 @@ "confirmations.delete_list.message": "Czy na pewno chcesz bezpowrotnie usunąć tą listę?", "confirmations.discard_edit_media.confirm": "Odrzuć", "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.confirm": "Blokuj serwer", "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", - "confirmations.mute.explanation": "To schowa ich i wspominające ich posty, ale wciąż pozwoli im widzieć twoje posty i obserwować cię.", - "confirmations.mute.message": "Czy na pewno chcesz wyciszyć {name}?", "confirmations.redraft.confirm": "Usuń i przeredaguj", "confirmations.redraft.message": "Czy na pewno chcesz usunąć i przeredagować ten wpis? Polubienia i podbicia zostaną utracone, a odpowiedzi do oryginalnego wpisu zostaną osierocone.", "confirmations.reply.confirm": "Odpowiedz", @@ -205,6 +209,27 @@ "dismissable_banner.explore_statuses": "Obecnie te wpisy z tego serwera i pozostałych serwerów w zdecentralizowanej sieci zyskują popularność na tym serwerze.", "dismissable_banner.explore_tags": "Te hasztagi obecnie zyskują popularność wśród osób z tego serwera i pozostałych w zdecentralizowanej sieci.", "dismissable_banner.public_timeline": "Są to najnowsze publiczne wpisy osób w serwisie społecznościowym, które obserwują ludzie w serwisie {domain}.", + "domain_block_modal.block": "Blokuj serwer", + "domain_block_modal.block_account_instead": "Zamiast tego zablokuj @{name}", + "domain_block_modal.they_can_interact_with_old_posts": "Ludzie z tego serwera mogą wchodzić w interakcje z Twoimi starymi wpisami.", + "domain_block_modal.they_cant_follow": "Nikt z tego serwera nie może Cię obserwować.", + "domain_block_modal.they_wont_know": "Użytkownik nie dowie się, że został zablokowany.", + "domain_block_modal.title": "Zablokować domenę?", + "domain_block_modal.you_will_lose_followers": "Wszyscy twoi obserwujący z tego serwera zostaną usunięci.", + "domain_block_modal.you_wont_see_posts": "Nie zobaczysz postów ani powiadomień od użytkowników na tym serwerze.", + "domain_pill.activitypub_lets_connect": "Pozwala połączyć się z ludźmi na Mastodonie, jak i na innych serwisach społecznościowych.", + "domain_pill.activitypub_like_language": "ActivityPub jest językiem używanym przez Mastodon do wymiany danych z innymi serwisami społecznościowymi.", + "domain_pill.server": "Serwer", + "domain_pill.their_handle": "Uchwyt:", + "domain_pill.their_server": "Cyfrowy dom, w którym znajdują się wszystkie wpisy.", + "domain_pill.their_username": "Unikalny identyfikator na serwerze. Możliwe jest znalezienie użytkowników o tej samej nazwie użytkownika na różnych serwerach.", + "domain_pill.username": "Nazwa użytkownika", + "domain_pill.whats_in_a_handle": "Co zawiera uchwyt użytkownika?", + "domain_pill.who_they_are": "Ponieważ uchwyty mówią kto jest kim i gdzie się znajduje, możesz wchodzić w interakcje z ludźmi korzystającymi z .", + "domain_pill.who_you_are": "Ponieważ Twój uchwyt mówi kim jesteś i gdzie się znajdujesz, inni mogą wchodzić z Tobą w interakcje korzystając z .", + "domain_pill.your_handle": "Twój uchwyt:", + "domain_pill.your_server": "Twój cyfrowy dom, w którym żyją wszystkie Twoje wpisy. Nie lubisz tego? Zmień serwer w dowolnym momencie i przenieś swoich obserwujących.", + "domain_pill.your_username": "Twój unikalny identyfikator na tym serwerze. Użytkownicy o tej samej nazwie mogą współistnieć na różnych serwerach.", "embed.instructions": "Osadź ten wpis na swojej stronie wklejając poniższy kod.", "embed.preview": "Będzie to wyglądać tak:", "emoji_button.activity": "Aktywność", @@ -241,6 +266,7 @@ "empty_column.list": "Nie ma nic na tej liście. Kiedy członkowie listy dodadzą nowe wpisy, pojawia się one tutaj.", "empty_column.lists": "Nie masz żadnych list. Kiedy utworzysz jedną, pojawi się tutaj.", "empty_column.mutes": "Nie wyciszyłeś(-aś) jeszcze żadnego użytkownika.", + "empty_column.notification_requests": "To wszystko – kiedy otrzymasz nowe powiadomienia, pokażą się tutaj zgodnie z twoimi ustawieniami.", "empty_column.notifications": "Nie masz żadnych powiadomień. Rozpocznij interakcje z innymi użytkownikami.", "empty_column.public": "Tu nic nie ma! Napisz coś publicznie, lub dodaj ludzi z innych serwerów, aby to wyświetlić", "error.unexpected_crash.explanation": "W związku z błędem w naszym kodzie lub braku kompatybilności przeglądarki, ta strona nie może być poprawnie wyświetlona.", @@ -271,6 +297,8 @@ "filter_modal.select_filter.subtitle": "Użyj istniejącej kategorii lub utwórz nową", "filter_modal.select_filter.title": "Filtruj ten wpis", "filter_modal.title.status": "Filtruj wpis", + "filtered_notifications_banner.pending_requests": "Powiadomienia od {count, plural, =0 {żadnej osoby którą możesz znać} one {# osoby którą możesz znać} other {# osób które możesz znać}}", + "filtered_notifications_banner.title": "Powiadomienia filtrowane", "firehose.all": "Wszystko", "firehose.local": "Ten serwer", "firehose.remote": "Inne serwery", @@ -314,7 +342,6 @@ "hashtag.follow": "Obserwuj hasztag", "hashtag.unfollow": "Przestań obserwować hashtag", "hashtags.and_other": "…i {count, plural, other {jeszcze #}}", - "home.column_settings.basic": "Podstawowe", "home.column_settings.show_reblogs": "Pokazuj podbicia", "home.column_settings.show_replies": "Pokazuj odpowiedzi", "home.hide_announcements": "Ukryj ogłoszenia", @@ -400,9 +427,15 @@ "loading_indicator.label": "Ładowanie…", "media_gallery.toggle_visible": "Przełącz widoczność", "moved_to_account_banner.text": "Twoje konto {disabledAccount} jest obecnie wyłączone, ponieważ zostało przeniesione na {movedToAccount}.", - "mute_modal.duration": "Czas", - "mute_modal.hide_notifications": "Chcesz ukryć powiadomienia od tego użytkownika?", - "mute_modal.indefinite": "Nieokreślony", + "mute_modal.hide_from_notifications": "Ukryj z powiadomień", + "mute_modal.hide_options": "Ukryj opcje", + "mute_modal.indefinite": "Do ręcznego usunięcia wyciszenia", + "mute_modal.show_options": "Pokaż opcje", + "mute_modal.they_can_mention_and_follow": "Użytkownik może Cię obserwować oraz dodawać wzmianki, ale Ty ich nie zobaczysz.", + "mute_modal.they_wont_know": "Użytkownik nie dowie się, że został wyciszony.", + "mute_modal.title": "Wyciszyć użytkownika?", + "mute_modal.you_wont_see_mentions": "Nie zobaczysz wpisów, które wspominają tego użytkownika.", + "mute_modal.you_wont_see_posts": "Użytkownik dalej będzie widzieć Twoje posty, ale Ty nie będziesz widzieć jego.", "navigation_bar.about": "O serwerze", "navigation_bar.advanced_interface": "Otwórz w zaawansowanym interfejsie użytkownika", "navigation_bar.blocks": "Zablokowani użytkownicy", @@ -440,15 +473,16 @@ "notification.reblog": "Twój post został podbity przez {name}", "notification.status": "{name} opublikował(a) nowy wpis", "notification.update": "{name} edytował(a) post", + "notification_requests.accept": "Akceptuj", + "notification_requests.dismiss": "Odrzuć", + "notification_requests.notifications_from": "Powiadomienia od {name}", + "notification_requests.title": "Powiadomienia filtrowane", "notifications.clear": "Wyczyść powiadomienia", "notifications.clear_confirmation": "Czy na pewno chcesz bezpowrotnie usunąć wszystkie powiadomienia?", "notifications.column_settings.admin.report": "Nowe zgłoszenia:", "notifications.column_settings.admin.sign_up": "Nowe rejestracje:", "notifications.column_settings.alert": "Powiadomienia na pulpicie", "notifications.column_settings.favourite": "Ulubione:", - "notifications.column_settings.filter_bar.advanced": "Wyświetl wszystkie kategorie", - "notifications.column_settings.filter_bar.category": "Szybkie filtrowanie", - "notifications.column_settings.filter_bar.show_bar": "Pokaż filtry", "notifications.column_settings.follow": "Nowi obserwujący:", "notifications.column_settings.follow_request": "Nowe prośby o możliwość obserwacji:", "notifications.column_settings.mention": "Wspomnienia:", @@ -474,6 +508,15 @@ "notifications.permission_denied": "Powiadomienia na pulpicie nie są dostępne, ponieważ wcześniej nie udzielono uprawnień w przeglądarce", "notifications.permission_denied_alert": "Powiadomienia na pulpicie nie mogą zostać włączone, ponieważ wcześniej odmówiono uprawnień", "notifications.permission_required": "Powiadomienia na pulpicie nie są dostępne, ponieważ nie przyznano wymaganego uprawnienia.", + "notifications.policy.filter_new_accounts.hint": "Utworzone w ciągu {days, plural, one {ostatniego dnia} other {ostatnich # dni}}", + "notifications.policy.filter_new_accounts_title": "Nowe konta", + "notifications.policy.filter_not_followers_hint": "Zawierające osoby które obserwują cię krócej niż {days, plural, one {dzień} other {# dni}}", + "notifications.policy.filter_not_followers_title": "Ludzie, którzy cię nie obserwują", + "notifications.policy.filter_not_following_hint": "Aż ich ręcznie nie zatwierdzisz", + "notifications.policy.filter_not_following_title": "Ludzie, których nie obserwujesz", + "notifications.policy.filter_private_mentions_hint": "Odfiltrowane, chyba że są odpowiedzią na twoją własną wzmiankę, lub obserwujesz wysyłającego", + "notifications.policy.filter_private_mentions_title": "Nieproszone prywatne wzmianki", + "notifications.policy.title": "Odfiltruj powiadomienia od…", "notifications_permission_banner.enable": "Włącz powiadomienia na pulpicie", "notifications_permission_banner.how_to_control": "Aby otrzymywać powiadomienia, gdy Mastodon nie jest otwarty, włącz powiadomienia pulpitu. Możesz dokładnie kontrolować, októrych działaniach będziesz powiadomienia na pulpicie za pomocą przycisku {icon} powyżej, jeżeli tylko zostaną włączone.", "notifications_permission_banner.title": "Nie przegap niczego", @@ -650,10 +693,11 @@ "status.direct": "Prywatna wzmianka @{name}", "status.direct_indicator": "Prywatna wzmianka", "status.edit": "Edytuj", - "status.edited": "Edytowano {date}", + "status.edited": "Ostatnio edytowane {date}", "status.edited_x_times": "Edytowano {count, plural, one {{count} raz} other {{count} razy}}", "status.embed": "Osadź", "status.favourite": "Dodaj do ulubionych", + "status.favourites": "{count, plural, one {polubienie} few {polubienia} other {polubień}}", "status.filter": "Filtruj ten wpis", "status.filtered": "Filtrowany(-a)", "status.hide": "Ukryj post", @@ -674,6 +718,7 @@ "status.reblog": "Podbij", "status.reblog_private": "Podbij dla odbiorców oryginalnego wpisu", "status.reblogged_by": "Podbite przez {name}", + "status.reblogs": "{count, plural, one {podbicie} few {podbicia} other {podbić}}", "status.reblogs.empty": "Nikt nie podbił jeszcze tego wpisu. Gdy ktoś to zrobi, pojawi się tutaj.", "status.redraft": "Usuń i przeredaguj", "status.remove_bookmark": "Usuń zakładkę", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index 8911afe946192f..28a18667ae6450 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -89,6 +89,10 @@ "announcement.announcement": "Comunicados", "attachments_list.unprocessed": "(não processado)", "audio.hide": "Ocultar áudio", + "block_modal.show_less": "Mostrar menos", + "block_modal.show_more": "Mostrar mais", + "block_modal.title": "Bloquear usuário?", + "block_modal.you_wont_see_mentions": "Você não verá publicações que os mencionem.", "boost_modal.combo": "Pressione {combo} para pular isso na próxima vez", "bundle_column_error.copy_stacktrace": "Copiar relatório do erro", "bundle_column_error.error.body": "A página solicitada não pôde ser renderizada. Pode ser devido a um erro no nosso código, ou um problema de compatibilidade do seu navegador.", @@ -160,9 +164,7 @@ "compose_form.spoiler.unmarked": "Sem Aviso de Conteúdo", "compose_form.spoiler_placeholder": "Aviso de conteúdo (opcional)", "confirmation_modal.cancel": "Cancelar", - "confirmations.block.block_and_report": "Bloquear e denunciar", "confirmations.block.confirm": "Bloquear", - "confirmations.block.message": "Você tem certeza de que deseja bloquear {name}?", "confirmations.cancel_follow_request.confirm": "Cancelar a solicitação", "confirmations.cancel_follow_request.message": "Tem certeza de que deseja cancelar seu pedido para seguir {name}?", "confirmations.delete.confirm": "Excluir", @@ -171,15 +173,12 @@ "confirmations.delete_list.message": "Você tem certeza de que deseja excluir esta lista?", "confirmations.discard_edit_media.confirm": "Descartar", "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", - "confirmations.mute.explanation": "Isso ocultará toots do usuário e toots que o mencionam, mas ainda permitirá que ele veja teus toots e te siga.", - "confirmations.mute.message": "Você tem certeza de que deseja silenciar {name}?", "confirmations.redraft.confirm": "Excluir e rascunhar", "confirmations.redraft.message": "Você tem certeza de que quer apagar essa postagem e rascunhá-la? Favoritos e impulsos serão perdidos, e respostas à postagem original ficarão órfãs.", "confirmations.reply.confirm": "Responder", @@ -205,6 +204,8 @@ "dismissable_banner.explore_statuses": "Estas são postagens de toda a rede social que estão ganhando tração hoje. Postagens mais recentes com mais impulsos e favoritos têm classificações mais altas.", "dismissable_banner.explore_tags": "Estas hashtags estão ganhando popularidade no momento entre as pessoas deste e de outros servidores da rede descentralizada.", "dismissable_banner.public_timeline": "Estas são as publicações públicas mais recentes de pessoas na rede social que pessoas em {domain} seguem.", + "domain_block_modal.they_can_interact_with_old_posts": "Pessoas deste servidor podem interagir com suas publicações antigas.", + "domain_block_modal.they_cant_follow": "Ninguém deste servidor pode lhe seguir.", "embed.instructions": "Incorpore este toot no seu site ao copiar o código abaixo.", "embed.preview": "Aqui está como vai ficar:", "emoji_button.activity": "Atividade", @@ -241,6 +242,7 @@ "empty_column.list": "Nada aqui. Quando membros da lista tootarem, eles aparecerão aqui.", "empty_column.lists": "Nada aqui. Quando você criar listas, elas aparecerão aqui.", "empty_column.mutes": "Nada aqui.", + "empty_column.notification_requests": "Tudo limpo! Não há nada aqui. Quando você receber novas notificações, elas aparecerão aqui de acordo com suas configurações.", "empty_column.notifications": "Interaja com outros usuários para começar a conversar.", "empty_column.public": "Publique algo ou siga manualmente usuários de outros servidores", "error.unexpected_crash.explanation": "Esta página não pôde ser mostrada corretamente. Este erro provavelmente é devido a um bug em nosso código ou um problema de compatibilidade de navegador.", @@ -271,13 +273,20 @@ "filter_modal.select_filter.subtitle": "Use uma categoria existente ou crie uma nova", "filter_modal.select_filter.title": "Filtrar esta publicação", "filter_modal.title.status": "Filtrar uma publicação", + "filtered_notifications_banner.title": "Notificações filtradas", "firehose.all": "Tudo", "firehose.local": "Este servidor", "firehose.remote": "Outros servidores", "follow_request.authorize": "Aprovar", "follow_request.reject": "Recusar", "follow_requests.unlocked_explanation": "Apesar de seu perfil não ser trancado, {domain} exige que você revise a solicitação para te seguir destes perfis manualmente.", + "follow_suggestions.curated_suggestion": "Escolha da equipe", "follow_suggestions.dismiss": "Não mostrar novamente", + "follow_suggestions.hints.featured": "Este perfil foi escolhido a dedo pela equipe {domain}.", + "follow_suggestions.hints.friends_of_friends": "Este perfil é popular entre as pessoas que você segue.", + "follow_suggestions.hints.most_followed": "Este perfil é um dos mais seguidos em {domain}.", + "follow_suggestions.hints.most_interactions": "Este perfil tem recebido recentemente muita atenção em {domain}.", + "follow_suggestions.hints.similar_to_recently_followed": "Este perfil é semelhante aos perfis que você seguiu recentemente.", "follow_suggestions.personalized_suggestion": "Sugestão personalizada", "follow_suggestions.popular_suggestion": "Sugestão popular", "follow_suggestions.view_all": "Visualizar tudo", @@ -308,7 +317,6 @@ "hashtag.follow": "Seguir hashtag", "hashtag.unfollow": "Parar de seguir hashtag", "hashtags.and_other": "…e {count, plural, one {}other {outros #}}", - "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Mostrar boosts", "home.column_settings.show_replies": "Mostrar respostas", "home.hide_announcements": "Ocultar comunicados", @@ -394,9 +402,13 @@ "loading_indicator.label": "Carregando…", "media_gallery.toggle_visible": "{number, plural, one {Ocultar mídia} other {Ocultar mídias}}", "moved_to_account_banner.text": "Sua conta {disabledAccount} está desativada porque você a moveu para {movedToAccount}.", - "mute_modal.duration": "Duração", - "mute_modal.hide_notifications": "Ocultar notificações deste usuário?", - "mute_modal.indefinite": "Indefinido", + "mute_modal.hide_options": "Ocultar opções", + "mute_modal.show_options": "Mostrar opções", + "mute_modal.they_can_mention_and_follow": "Eles podem mencionar e seguir você, mas você não os verá.", + "mute_modal.they_wont_know": "Eles não saberão que foram silenciados.", + "mute_modal.title": "Silenciar usuário?", + "mute_modal.you_wont_see_mentions": "Você não verá publicações que os mencionem.", + "mute_modal.you_wont_see_posts": "Eles ainda poderão ver suas publicações, mas você não verá as deles.", "navigation_bar.about": "Sobre", "navigation_bar.advanced_interface": "Ativar na interface web avançada", "navigation_bar.blocks": "Usuários bloqueados", @@ -434,15 +446,16 @@ "notification.reblog": "{name} deu boost no teu toot", "notification.status": "{name} acabou de tootar", "notification.update": "{name} editou uma publicação", + "notification_requests.accept": "Aceitar", + "notification_requests.dismiss": "Rejeitar", + "notification_requests.notifications_from": "Notificações de {name}", + "notification_requests.title": "Notificações filtradas", "notifications.clear": "Limpar notificações", "notifications.clear_confirmation": "Você tem certeza de que deseja limpar todas as suas notificações?", "notifications.column_settings.admin.report": "Novas denúncias:", "notifications.column_settings.admin.sign_up": "Novas inscrições:", "notifications.column_settings.alert": "Notificações no computador", "notifications.column_settings.favourite": "Favoritos:", - "notifications.column_settings.filter_bar.advanced": "Mostrar todas as categorias", - "notifications.column_settings.filter_bar.category": "Barra de filtro rápido das notificações", - "notifications.column_settings.filter_bar.show_bar": "Mostrar barra de filtro", "notifications.column_settings.follow": "Seguidores:", "notifications.column_settings.follow_request": "Seguidores pendentes:", "notifications.column_settings.mention": "Menções:", @@ -468,6 +481,13 @@ "notifications.permission_denied": "Navegador não tem permissão para ativar notificações no computador.", "notifications.permission_denied_alert": "Verifique a permissão do navegador para ativar notificações no computador.", "notifications.permission_required": "Ativar notificações no computador exige permissão do navegador.", + "notifications.policy.filter_new_accounts_title": "Novas contas", + "notifications.policy.filter_not_followers_title": "Pessoas que não estão te seguindo", + "notifications.policy.filter_not_following_hint": "Até que você os aprove manualmente", + "notifications.policy.filter_not_following_title": "Pessoas que você não segue", + "notifications.policy.filter_private_mentions_hint": "Filtrado, a menos que respondido em sua própria menção ou se você segue o remetente", + "notifications.policy.filter_private_mentions_title": "Menções privadas não solicitadas", + "notifications.policy.title": "Filtrar notificações de…", "notifications_permission_banner.enable": "Ativar notificações no computador", "notifications_permission_banner.how_to_control": "Para receber notificações quando o Mastodon não estiver aberto, ative as notificações no computador. Você pode controlar precisamente quais tipos de interações geram notificações no computador através do botão {icon}.", "notifications_permission_banner.title": "Nunca perca nada", @@ -529,6 +549,9 @@ "privacy.private.short": "Seguidores", "privacy.public.long": "Qualquer um dentro ou fora do Mastodon", "privacy.public.short": "Público", + "privacy.unlisted.additional": "Isso se comporta exatamente como público, exceto que a publicação não aparecerá nos _feeds ao vivo_ ou nas _hashtags_, explorar, ou barra de busca, mesmo que você seja escolhido em toda a conta.", + "privacy.unlisted.long": "Menos notificações e recomendações do algoritmo", + "privacy.unlisted.short": "Público (silencioso)", "privacy_policy.last_updated": "Atualizado {date}", "privacy_policy.title": "Política de privacidade", "recommended": "Recomendado", @@ -640,7 +663,7 @@ "status.direct": "Mencione em privado @{name}", "status.direct_indicator": "Menção privada", "status.edit": "Editar", - "status.edited": "Editado em {date}", + "status.edited": "Última edição em {date}", "status.edited_x_times": "Editado {count, plural, one {{count} hora} other {{count} vezes}}", "status.embed": "Incorporar", "status.favourite": "Favorita", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index 26aa0f0b5f932c..b1145f64d506dc 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -160,9 +160,7 @@ "compose_form.spoiler.unmarked": "Juntar um aviso de conteúdo", "compose_form.spoiler_placeholder": "Aviso de conteúdo (opcional)", "confirmation_modal.cancel": "Cancelar", - "confirmations.block.block_and_report": "Bloquear e Denunciar", "confirmations.block.confirm": "Bloquear", - "confirmations.block.message": "De certeza que queres bloquear {name}?", "confirmations.cancel_follow_request.confirm": "Retirar pedido", "confirmations.cancel_follow_request.message": "Tem a certeza que pretende retirar o pedido para seguir {name}?", "confirmations.delete.confirm": "Eliminar", @@ -171,15 +169,12 @@ "confirmations.delete_list.message": "Tens a certeza de que deseja eliminar permanentemente esta lista?", "confirmations.discard_edit_media.confirm": "Descartar", "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", - "confirmations.mute.explanation": "Isto irá esconder publicações deles ou publicações que os mencionem, mas irá permitir que vejam as suas publicações e sejam seus seguidores.", - "confirmations.mute.message": "De certeza que queres silenciar {name}?", "confirmations.redraft.confirm": "Eliminar & reescrever", "confirmations.redraft.message": "Tem a certeza de que quer eliminar e reescrever esta publicação? Os favoritos e partilhas perder-se-ão e as respostas à publicação original ficarão órfãs.", "confirmations.reply.confirm": "Responder", @@ -241,6 +236,7 @@ "empty_column.list": "Ainda não existem publicações nesta lista. Quando membros desta lista fizerem novas publicações, elas aparecerão aqui.", "empty_column.lists": "Ainda não tem qualquer lista. Quando criar uma, ela irá aparecer aqui.", "empty_column.mutes": "Ainda não silenciaste qualquer utilizador.", + "empty_column.notification_requests": "Tudo limpo! Não há nada aqui. Quando você receber novas notificações, elas aparecerão aqui conforme as suas configurações.", "empty_column.notifications": "Não tens notificações. Interage com outros utilizadores para iniciar uma conversa.", "empty_column.public": "Não há nada aqui! Escreve algo publicamente ou segue outros utilizadores para veres aqui os conteúdos públicos", "error.unexpected_crash.explanation": "Devido a um erro no nosso código ou a uma compatilidade com o seu navegador, esta página não pôde ser apresentada correctamente.", @@ -271,6 +267,8 @@ "filter_modal.select_filter.subtitle": "Utilize uma categoria existente ou crie uma nova", "filter_modal.select_filter.title": "Filtrar esta publicação", "filter_modal.title.status": "Filtrar uma publicação", + "filtered_notifications_banner.pending_requests": "Notificações de {count, plural, =0 {ninguém} one {uma pessoa} other {# pessoas}} que talvez conheça", + "filtered_notifications_banner.title": "Notificações filtradas", "firehose.all": "Todas", "firehose.local": "Este servidor", "firehose.remote": "Outros servidores", @@ -314,7 +312,6 @@ "hashtag.follow": "Seguir #etiqueta", "hashtag.unfollow": "Deixar de seguir #etiqueta", "hashtags.and_other": "…e {count, plural, other {mais #}}", - "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Mostrar impulsos", "home.column_settings.show_replies": "Mostrar respostas", "home.hide_announcements": "Ocultar comunicações", @@ -400,9 +397,6 @@ "loading_indicator.label": "A carregar…", "media_gallery.toggle_visible": "Alternar visibilidade", "moved_to_account_banner.text": "A sua conta {disabledAccount} está, no momento, desativada, porque você migrou para {movedToAccount}.", - "mute_modal.duration": "Duração", - "mute_modal.hide_notifications": "Esconder notificações deste utilizador?", - "mute_modal.indefinite": "Indefinidamente", "navigation_bar.about": "Sobre", "navigation_bar.advanced_interface": "Abrir na interface web avançada", "navigation_bar.blocks": "Utilizadores bloqueados", @@ -440,15 +434,16 @@ "notification.reblog": "{name} reforçou a tua publicação", "notification.status": "{name} acabou de publicar", "notification.update": "{name} editou uma publicação", + "notification_requests.accept": "Aceitar", + "notification_requests.dismiss": "Descartar", + "notification_requests.notifications_from": "Notificações de {name}", + "notification_requests.title": "Notificações filtradas", "notifications.clear": "Limpar notificações", "notifications.clear_confirmation": "Queres mesmo limpar todas as notificações?", "notifications.column_settings.admin.report": "Novas denúncias:", "notifications.column_settings.admin.sign_up": "Novas inscrições:", "notifications.column_settings.alert": "Notificações no ambiente de trabalho", "notifications.column_settings.favourite": "Favoritos:", - "notifications.column_settings.filter_bar.advanced": "Mostrar todas as categorias", - "notifications.column_settings.filter_bar.category": "Barra de filtros rápidos", - "notifications.column_settings.filter_bar.show_bar": "Mostrar barra de filtros", "notifications.column_settings.follow": "Novos seguidores:", "notifications.column_settings.follow_request": "Novos pedidos de seguidor:", "notifications.column_settings.mention": "Menções:", @@ -474,6 +469,15 @@ "notifications.permission_denied": "Notificações no ambiente de trabalho não estão disponíveis porque a permissão, solicitada pelo navegador, foi recusada anteriormente", "notifications.permission_denied_alert": "Notificações no ambiente de trabalho não podem ser ativadas, pois a permissão do navegador foi recusada anteriormente", "notifications.permission_required": "Notificações no ambiente de trabalho não estão disponíveis porque a permissão necessária não foi concedida.", + "notifications.policy.filter_new_accounts.hint": "Criada nos últimos {days, plural, one {um dia} other {# dias}}", + "notifications.policy.filter_new_accounts_title": "Novas contas", + "notifications.policy.filter_not_followers_hint": "Incluindo pessoas que o seguem há menos de {days, plural, one {um dia} other {# dias}}", + "notifications.policy.filter_not_followers_title": "Pessoas não te seguem", + "notifications.policy.filter_not_following_hint": "Até que você os aprove manualmente", + "notifications.policy.filter_not_following_title": "Pessoas que você não segue", + "notifications.policy.filter_private_mentions_hint": "Filtrado, a menos que seja em resposta à sua própria menção ou se você seguir o remetente", + "notifications.policy.filter_private_mentions_title": "Menções privadas não solicitadas", + "notifications.policy.title": "Filtrar notificações de…", "notifications_permission_banner.enable": "Ativar notificações no ambiente de trabalho", "notifications_permission_banner.how_to_control": "Para receber notificações quando o Mastodon não estiver aberto, ative as notificações no ambiente de trabalho. Depois da sua ativação, pode controlar precisamente quais tipos de interações geram notificações, através do botão {icon} acima.", "notifications_permission_banner.title": "Nunca perca nada", @@ -650,10 +654,11 @@ "status.direct": "Mencionar @{name} em privado", "status.direct_indicator": "Menção privada", "status.edit": "Editar", - "status.edited": "Editado em {date}", + "status.edited": "Última edição em {date}", "status.edited_x_times": "Editado {count, plural,one {{count} vez} other {{count} vezes}}", "status.embed": "Embutir", "status.favourite": "Assinalar como favorito", + "status.favourites": "{count, plural, one {favorito} other {favoritos}}", "status.filter": "Filtrar esta publicação", "status.filtered": "Filtrada", "status.hide": "Ocultar publicação", @@ -674,6 +679,7 @@ "status.reblog": "Partilhar", "status.reblog_private": "Partilhar com a visibilidade original", "status.reblogged_by": "{name} reforçou", + "status.reblogs": "{count, plural, one {partilha} other {partilhas}}", "status.reblogs.empty": "Ainda ninguém reforçou esta publicação. Quando alguém o fizer, ele irá aparecer aqui.", "status.redraft": "Apagar & reescrever", "status.remove_bookmark": "Retirar dos marcadores", diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json index b8bb779f85db12..0aef0ebd9617ee 100644 --- a/app/javascript/mastodon/locales/ro.json +++ b/app/javascript/mastodon/locales/ro.json @@ -155,9 +155,7 @@ "compose_form.spoiler.unmarked": "Adaugă un avertisment privind conținutul", "compose_form.spoiler_placeholder": "Atenționare de conținut (opțional)", "confirmation_modal.cancel": "Anulează", - "confirmations.block.block_and_report": "Blochează și raportează", "confirmations.block.confirm": "Blochează", - "confirmations.block.message": "Ești sigur că vrei să blochezi pe {name}?", "confirmations.cancel_follow_request.confirm": "Retrage cererea", "confirmations.cancel_follow_request.message": "Sunteți sigur că doriți să retrageți cererea dvs. de urmărire pentru {name}?", "confirmations.delete.confirm": "Elimină", @@ -166,15 +164,12 @@ "confirmations.delete_list.message": "Ești sigur că vrei să elimini definitiv această listă?", "confirmations.discard_edit_media.confirm": "Renunță", "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": "Modifică", "confirmations.edit.message": "Editarea acum va suprascrie mesajul pe care îl compuneți în prezent. Sunteți sigur că vreți să continuați?", "confirmations.logout.confirm": "Deconectare", "confirmations.logout.message": "Ești sigur că vrei să te deconectezi?", "confirmations.mute.confirm": "Ignoră", - "confirmations.mute.explanation": "Postările acestei persoane și postările în care este menționată vor fi ascunse, însă tot va putea să îți vadă postările și să se aboneze la tine.", - "confirmations.mute.message": "Ești sigur că vrei să ignori pe {name}?", "confirmations.redraft.confirm": "Șterge și scrie din nou", "confirmations.reply.confirm": "Răspunde", "confirmations.reply.message": "Dacă răspunzi acum, mesajul pe care îl scrii în acest moment va fi șters. Ești sigur că vrei să continui?", @@ -292,7 +287,6 @@ "hashtag.column_settings.tag_toggle": "Adaugă etichete suplimentare pentru această coloană", "hashtag.follow": "Urmărește haștagul", "hashtag.unfollow": "Nu mai urmări haștagul", - "home.column_settings.basic": "De bază", "home.column_settings.show_reblogs": "Afișează distribuirile", "home.column_settings.show_replies": "Afișează răspunsurile", "home.hide_announcements": "Ascunde anunțurile", @@ -371,9 +365,6 @@ "load_pending": "{count, plural, one {# element nou} other {# elemente noi}}", "media_gallery.toggle_visible": "{number, plural, one {Ascunde imaginea} other {Ascunde imaginile}}", "moved_to_account_banner.text": "Contul tău {disabledAccount} este în acest moment dezactivat deoarece te-ai mutat la {movedToAccount}.", - "mute_modal.duration": "Durata", - "mute_modal.hide_notifications": "Ascunde notificările de la acest utilizator?", - "mute_modal.indefinite": "Nedeterminat", "navigation_bar.about": "Despre", "navigation_bar.advanced_interface": "Deschide în interfața web avansată", "navigation_bar.blocks": "Utilizatori blocați", @@ -414,9 +405,6 @@ "notifications.column_settings.admin.report": "Raportări noi:", "notifications.column_settings.admin.sign_up": "Înscrieri noi:", "notifications.column_settings.alert": "Notificări pe desktop", - "notifications.column_settings.filter_bar.advanced": "Afișează toate categoriile", - "notifications.column_settings.filter_bar.category": "Bară de filtrare rapidă", - "notifications.column_settings.filter_bar.show_bar": "Arată bara de filtrare", "notifications.column_settings.follow": "Noi urmăritori:", "notifications.column_settings.follow_request": "Noi cereri de abonare:", "notifications.column_settings.mention": "Mențiuni:", @@ -580,7 +568,6 @@ "status.direct": "Menționează @{name} în privat", "status.direct_indicator": "Mențiune privată", "status.edit": "Modifică", - "status.edited": "Modificat în data de {date}", "status.edited_x_times": "Modificată {count, plural, one {o dată} few {de {count} ori} other {de {count} de ori}}", "status.embed": "Înglobează", "status.filter": "Filtrează această postare", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index fde170db60d230..7a60f3bb7c770f 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -160,9 +160,7 @@ "compose_form.spoiler.unmarked": "Текст не скрыт", "compose_form.spoiler_placeholder": "Предупреждение о контенте (опционально)", "confirmation_modal.cancel": "Отмена", - "confirmations.block.block_and_report": "Заблокировать и пожаловаться", "confirmations.block.confirm": "Заблокировать", - "confirmations.block.message": "Вы уверены, что хотите заблокировать {name}?", "confirmations.cancel_follow_request.confirm": "Отменить запрос", "confirmations.cancel_follow_request.message": "Вы уверены, что хотите отозвать свой запрос на подписку {name}?", "confirmations.delete.confirm": "Удалить", @@ -171,15 +169,12 @@ "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.message": "Вы уверены, что хотите добавить {name} в список игнорируемых?", "confirmations.redraft.confirm": "Удалить и исправить", "confirmations.redraft.message": "Вы уверены, что хотите удалить и переписать этот пост? Отметки «избранного», продвижения и ответы к оригинальному посту будут удалены.", "confirmations.reply.confirm": "Ответить", @@ -308,7 +303,6 @@ "hashtag.follow": "Подписаться на новые посты", "hashtag.unfollow": "Отписаться", "hashtags.and_other": "...и {count, plural, other {# ещё}}", - "home.column_settings.basic": "Основные", "home.column_settings.show_reblogs": "Показывать продвижения", "home.column_settings.show_replies": "Показывать ответы", "home.hide_announcements": "Скрыть объявления", @@ -394,9 +388,6 @@ "loading_indicator.label": "Загрузка…", "media_gallery.toggle_visible": "Показать/скрыть {number, plural, =1 {изображение} other {изображения}}", "moved_to_account_banner.text": "Ваша учетная запись {disabledAccount} в настоящее время заморожена, потому что вы переехали на {movedToAccount}.", - "mute_modal.duration": "Продолжительность", - "mute_modal.hide_notifications": "Скрыть уведомления от этого пользователя?", - "mute_modal.indefinite": "Не определена", "navigation_bar.about": "О проекте", "navigation_bar.advanced_interface": "Включить многоколоночный интерфейс", "navigation_bar.blocks": "Заблокированные пользователи", @@ -440,9 +431,6 @@ "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": "Вас упомянули в посте:", @@ -644,7 +632,6 @@ "status.direct": "Лично упоминать @{name}", "status.direct_indicator": "Личные упоминания", "status.edit": "Изменить", - "status.edited": "Последнее изменение: {date}", "status.edited_x_times": "{count, plural, one {{count} изменение} many {{count} изменений} other {{count} изменения}}", "status.embed": "Встроить на свой сайт", "status.favourite": "Избранное", diff --git a/app/javascript/mastodon/locales/ry.json b/app/javascript/mastodon/locales/ry.json index 59de0397777655..de3d6191716b72 100644 --- a/app/javascript/mastodon/locales/ry.json +++ b/app/javascript/mastodon/locales/ry.json @@ -15,5 +15,42 @@ "account.block_domain": "Заблоковати домен {domain}", "account.block_short": "Заблоковати", "account.blocked": "Заблоковано", - "account.browse_more_on_origin_server": "Позирайте бульше на ориґіналнум профілю" + "account.browse_more_on_origin_server": "Позирайте бульше на ориґіналнум профілю", + "account.copy": "Зкопіровати удкликованя на профіл", + "account.domain_blocked": "Домен заблокованый", + "account.edit_profile": "Управити профіл", + "account.endorse": "Указовати на профілови", + "account.featured_tags.last_status_at": "Датум послідньої публикації {date}", + "account.featured_tags.last_status_never": "Ниє публикацій", + "account.follow": "Пудписати ся", + "account.followers": "Пудписникы", + "account.followers.empty": "У сього хосновача раз ниє пудписникув.", + "account.following": "Слідуєте", + "account.follows.empty": "Сись хосновач щи никого не слідує.", + "account.go_to_profile": "Перейти на профіл", + "account.languages": "Поміняти убрані языкы", + "account.link_verified_on": "Властность сього удкликованя было звірено {date}", + "account.media": "Медіа", + "account.moved_to": "Хосновач {name} указав, ож новый профіл йим є:", + "account.mute_notifications_short": "Стишити голошіня", + "account.mute_short": "Стишити", + "account.muted": "Стишено", + "account.mutual": "Взайомно", + "account.no_bio": "Описа ниє.", + "account.open_original_page": "Удоперти ориґіналну сторунку", + "account.posts": "Публикації", + "account.posts_with_replies": "Публикації тай удповіді", + "account.report": "Скарговати ся на {name}", + "account.requested": "Чекат ся на пудтвердженя. Нажміт убы удмінити запрос на слідованя", + "account.requested_follow": "Хосновач {name} просит ся пудписати ся на вас", + "account.share": "Пошырити профіл хосновача {name}", + "account.unblock": "Розблоковати {name}", + "account.unblock_domain": "Розблоковати домен {domain}", + "bundle_column_error.return": "Вернути ся на головну", + "bundle_column_error.routing.body": "Не можеме найти сяку сторунку. Бизувні сьте, ож URL у адресному шорикови є добрый?", + "bundle_column_error.routing.title": "404", + "bundle_modal_error.close": "Заперти", + "bundle_modal_error.message": "Штось ся показило, закидь сьме ладовали сись компонент.", + "bundle_modal_error.retry": "Попробовати зась", + "closed_registrations.other_server_instructions": "Mastodon є децентралізованов платформов, можете си учинити профіл и на другому серверови тай комуніковати из сим." } diff --git a/app/javascript/mastodon/locales/sa.json b/app/javascript/mastodon/locales/sa.json index 469930c3ed121d..99aa46bc89f7ab 100644 --- a/app/javascript/mastodon/locales/sa.json +++ b/app/javascript/mastodon/locales/sa.json @@ -135,9 +135,7 @@ "compose_form.spoiler.marked": "प्रच्छान्नाक्षरं विद्यते", "compose_form.spoiler.unmarked": "अप्रच्छन्नाक्षरं विद्यते", "confirmation_modal.cancel": "नश्यताम्", - "confirmations.block.block_and_report": "अवरुध्य आविद्यताम्", "confirmations.block.confirm": "निषेधः", - "confirmations.block.message": "निश्चयेनाऽवरोधो विधेयः {name}?", "confirmations.cancel_follow_request.confirm": "अनुरोधनमपनय", "confirmations.cancel_follow_request.message": "{name} अनुसरणस्यानुरोधमपनेतुं दृढीकृतं वा?", "confirmations.delete.confirm": "मार्जय", @@ -146,15 +144,12 @@ "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.message": "किं निश्चयेन निःशब्दं भवेत् {name} मित्रमेतत् ?", "confirmations.redraft.confirm": "मार्जय पुनश्च लिख्यताम्", "confirmations.reply.confirm": "उत्तरम्", "confirmations.reply.message": "प्रत्युत्तरमिदानीं लिख्यते तर्हि पूर्वलिखितसन्देशं विनश्य पुनः लिख्यते । निश्चयेनैवं कर्तव्यम् ?", @@ -264,7 +259,6 @@ "hashtag.column_settings.tag_toggle": "Include additional tags in this column", "hashtag.follow": "प्रचलितवस्तु अनुसर", "hashtag.unfollow": "प्रचलितवस्तु अनुसरणं वारय", - "home.column_settings.basic": "मूलभूतम्", "home.column_settings.show_reblogs": "बुस्त् दर्शय", "home.column_settings.show_replies": "उत्तराणि दर्शय", "home.hide_announcements": "विज्ञापनानि प्रच्छादय", @@ -335,9 +329,6 @@ "load_pending": "{count, plural, one {# नूतनवस्तु} other {# नूतनवस्तूनि}}", "media_gallery.toggle_visible": "{number, plural, one {चित्रं प्रच्छादय} other {चित्राणि प्रच्छादय}}", "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": "पुटचिह्नानि", @@ -376,9 +367,6 @@ "notifications.column_settings.admin.report": "नूतनावेदनानि", "notifications.column_settings.admin.sign_up": "नूतनपञ्जीकरणम्:", "notifications.column_settings.alert": "देस्क्टप्विज्ञापनानि", - "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": "उल्लिखितानि :", @@ -527,7 +515,6 @@ "status.delete": "मार्जय", "status.detailed_status": "विस्तृतसंभाषणदृश्यम्", "status.edit": "सम्पादय", - "status.edited": "सम्पादितं {date}", "status.edited_x_times": "Edited {count, plural, one {{count} वारम्} other {{count} वारम्}}", "status.embed": "निहितम्", "status.filter": "पत्रमिदं फिल्तरं कुरु", diff --git a/app/javascript/mastodon/locales/sc.json b/app/javascript/mastodon/locales/sc.json index 90b663aea79fc6..1a5f2ef0f396be 100644 --- a/app/javascript/mastodon/locales/sc.json +++ b/app/javascript/mastodon/locales/sc.json @@ -106,21 +106,16 @@ "compose_form.spoiler.marked": "Boga avisu de cuntenutu", "compose_form.spoiler.unmarked": "Agiunghe avisu de cuntenutu", "confirmation_modal.cancel": "Annulla", - "confirmations.block.block_and_report": "Bloca e signala", "confirmations.block.confirm": "Bloca", - "confirmations.block.message": "Seguru chi boles blocare {name}?", "confirmations.delete.confirm": "Cantzella", "confirmations.delete.message": "Seguru chi boles cantzellare custa publicatzione?", "confirmations.delete_list.confirm": "Cantzella", "confirmations.delete_list.message": "Seguru chi boles cantzellare custa lista in manera permanente?", - "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": "Modìfica", "confirmations.logout.confirm": "Essi·nche", "confirmations.logout.message": "Seguru chi boles essire?", "confirmations.mute.confirm": "A sa muda", - "confirmations.mute.explanation": "Custu at a cuare is publicatziones issoro e is messàgios chi ddos mèntovant, ma ant a pòdere bìdere is messàgios tuos e t'ant a pòdere sighire.", - "confirmations.mute.message": "Seguru chi boles pònnere a {name} a sa muda?", "confirmations.redraft.confirm": "Cantzella e torra a fàghere", "confirmations.reply.confirm": "Risponde", "confirmations.reply.message": "Rispondende immoe as a subrascrìere su messàgiu chi ses iscriende. Seguru chi boles sighire?", @@ -200,7 +195,6 @@ "hashtag.column_settings.tag_mode.none": "Perunu de custos", "hashtag.column_settings.tag_toggle": "Include etichetas additzionales pro custa colunna", "hashtag.follow": "Sighi su hashtag", - "home.column_settings.basic": "Bàsicu", "home.column_settings.show_reblogs": "Ammustra is cumpartziduras", "home.column_settings.show_replies": "Ammustra rispostas", "home.hide_announcements": "Cua annùntzios", @@ -266,9 +260,6 @@ "load_pending": "{count, plural, one {# elementu nou} other {# elementos noos}}", "loading_indicator.label": "Carrighende…", "media_gallery.toggle_visible": "Cua {number, plural, one {immàgine} other {immàgines}}", - "mute_modal.duration": "Durada", - "mute_modal.hide_notifications": "Boles cuare is notìficas de custa persone?", - "mute_modal.indefinite": "Indefinida", "navigation_bar.about": "Informatziones", "navigation_bar.blocks": "Persones blocadas", "navigation_bar.bookmarks": "Sinnalibros", @@ -300,8 +291,6 @@ "notifications.clear": "Lìmpia notìficas", "notifications.clear_confirmation": "Seguru chi boles isboidare in manera permanente totu is notìficas tuas?", "notifications.column_settings.alert": "Notìficas de iscrivania", - "notifications.column_settings.filter_bar.advanced": "Ammustra totu is categorias", - "notifications.column_settings.filter_bar.category": "Barra lestra de filtros", "notifications.column_settings.follow": "Sighiduras noas:", "notifications.column_settings.follow_request": "Rechestas noas de sighidura:", "notifications.column_settings.mention": "Mèntovos:", diff --git a/app/javascript/mastodon/locales/sco.json b/app/javascript/mastodon/locales/sco.json index b7563022a93594..ba62c11f71a715 100644 --- a/app/javascript/mastodon/locales/sco.json +++ b/app/javascript/mastodon/locales/sco.json @@ -131,9 +131,7 @@ "compose_form.spoiler.marked": "Tak aff the content warnin", "compose_form.spoiler.unmarked": "Pit on a content warnin", "confirmation_modal.cancel": "Stap", - "confirmations.block.block_and_report": "Dingie & Clype", "confirmations.block.confirm": "Dingie", - "confirmations.block.message": "Ye shair thit ye'r wantin tae dingie {name}?", "confirmations.cancel_follow_request.confirm": "Tak back yer request", "confirmations.cancel_follow_request.message": "Ye shair thit ye'r wantin tae tak back yer request fir tae follae {name}?", "confirmations.delete.confirm": "Delete", @@ -142,13 +140,10 @@ "confirmations.delete_list.message": "Ye shair thit ye'r wantin fir tae delete this post fir ever?", "confirmations.discard_edit_media.confirm": "Fling awa", "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.logout.confirm": "Log oot", "confirmations.logout.message": "Ye shair thit ye'r wantin tae log oot?", "confirmations.mute.confirm": "Wheesht", - "confirmations.mute.explanation": "This'll hide posts fae them an posts mentionin them, but it'll stull alloo them tae see yer posts an follae ye.", - "confirmations.mute.message": "Ye sure thit ye'r wantin tae wheesht {name}?", "confirmations.redraft.confirm": "Delete an stert anew", "confirmations.reply.confirm": "Reply", "confirmations.reply.message": "Replyin noo'll owerwrite the message ye'r screivin the noo. Ur ye sure thit ye'r wantin tae dae that?", @@ -249,7 +244,6 @@ "hashtag.column_settings.tag_toggle": "Pit in mair hashtags fir this column", "hashtag.follow": "Follae hashtag", "hashtag.unfollow": "Unfollae hashtag", - "home.column_settings.basic": "Basic", "home.column_settings.show_reblogs": "Shaw boosts", "home.column_settings.show_replies": "Shaw replies", "home.hide_announcements": "Hide annooncements", @@ -320,9 +314,6 @@ "load_pending": "{count, plural, one {# new item} other {# new items}}", "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}", "moved_to_account_banner.text": "Yer accoont {disabledAccount} is disabilt the noo acause ye flittit tae {movedToAccount}.", - "mute_modal.duration": "Lenth", - "mute_modal.hide_notifications": "Hide notifications fae this uiser?", - "mute_modal.indefinite": "Indefinite", "navigation_bar.about": "Aboot", "navigation_bar.blocks": "Dingied uisers", "navigation_bar.bookmarks": "Buikmairks", @@ -359,9 +350,6 @@ "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Desktap notes", - "notifications.column_settings.filter_bar.advanced": "Shaw aw caitegories", - "notifications.column_settings.filter_bar.category": "Quick filter baur", - "notifications.column_settings.filter_bar.show_bar": "Shaw filter baur", "notifications.column_settings.follow": "New follaers:", "notifications.column_settings.follow_request": "New follae requests:", "notifications.column_settings.mention": "Menshies:", @@ -498,7 +486,6 @@ "status.delete": "Delete", "status.detailed_status": "Detailt conversation view", "status.edit": "Edit", - "status.edited": "Editit {date}", "status.edited_x_times": "Editit {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Embed", "status.filter": "Filter this post", diff --git a/app/javascript/mastodon/locales/si.json b/app/javascript/mastodon/locales/si.json index 2058d1415be921..4cb81a760c74ae 100644 --- a/app/javascript/mastodon/locales/si.json +++ b/app/javascript/mastodon/locales/si.json @@ -108,21 +108,17 @@ "compose_form.spoiler.marked": "අන්තර්ගත අවවාදය ඉවත් කරන්න", "compose_form.spoiler.unmarked": "අන්තර්ගත අවවාදයක් එක් කරන්න", "confirmation_modal.cancel": "අවලංගු", - "confirmations.block.block_and_report": "අවහිර කර වාර්තා කරන්න", "confirmations.block.confirm": "අවහිර", - "confirmations.block.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.edit.confirm": "සංස්කරණය", "confirmations.logout.confirm": "නික්මෙන්න", "confirmations.logout.message": "ඔබට නික්මෙන්න අවශ්‍ය බව විශ්වාසද?", "confirmations.mute.confirm": "නිශ්ශබ්ද", - "confirmations.mute.message": "{name} නිහඬ කිරීමට වුවමනා ද?", "confirmations.reply.confirm": "පිළිතුර", "conversation.delete": "සංවාදය මකන්න", "conversation.mark_as_read": "කියවූ බව යොදන්න", @@ -201,7 +197,6 @@ "hashtag.column_settings.tag_mode.all": "මේ සියල්ලම", "hashtag.column_settings.tag_mode.none": "මේ කිසිවක් නැත", "hashtag.column_settings.tag_toggle": "මෙම තීරුවේ අමතර ටැග් ඇතුළත් කරන්න", - "home.column_settings.basic": "මූලික", "home.column_settings.show_replies": "පිළිතුරු පෙන්වන්න", "home.hide_announcements": "නිවේදන සඟවන්න", "home.pending_critical_update.link": "යාවත්කාල බලන්න", @@ -249,8 +244,6 @@ "lists.replies_policy.none": "කිසිවෙක් නැත", "lists.replies_policy.title": "පිළිතුරු පෙන්වන්න:", "lists.subheading": "ඔබගේ ලැයිස්තු", - "mute_modal.duration": "පරාසය", - "mute_modal.hide_notifications": "මෙම පුද්ගලයාගේ දැනුම්දීම් සඟවන්නද?", "navigation_bar.about": "පිළිබඳව", "navigation_bar.blocks": "අවහිර කළ අය", "navigation_bar.bookmarks": "පොත්යොමු", @@ -285,9 +278,6 @@ "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": "සැඳහුම්:", @@ -408,7 +398,6 @@ "status.delete": "මකන්න", "status.detailed_status": "විස්තරාත්මක සංවාද දැක්ම", "status.edit": "සංස්කරණය", - "status.edited": "සංශෝධිතයි {date}", "status.edited_x_times": "සංශෝධිතයි {count, plural, one {වාර {count}} other {වාර {count}}}", "status.embed": "කාවැද්දූ", "status.filter": "මෙම ලිපිය පෙරන්න", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index 7eee0c29c2a061..8c9238bb9e61fd 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -160,9 +160,7 @@ "compose_form.spoiler.unmarked": "Pridať varovanie o obsahu", "compose_form.spoiler_placeholder": "Varovanie o obsahu (voliteľné)", "confirmation_modal.cancel": "Zruš", - "confirmations.block.block_and_report": "Zablokovať a nahlásiť", "confirmations.block.confirm": "Zablokovať", - "confirmations.block.message": "Určite chcete zablokovať {name}?", "confirmations.cancel_follow_request.confirm": "Stiahnuť žiadosť", "confirmations.cancel_follow_request.message": "Určite chcete stiahnuť svoju žiadosť o sledovanie {name}?", "confirmations.delete.confirm": "Vymazať", @@ -171,15 +169,12 @@ "confirmations.delete_list.message": "Určite chcete tento zoznam trvalo vymazať?", "confirmations.discard_edit_media.confirm": "Zahodiť", "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": "Blokovať celú doménu", "confirmations.domain_block.message": "Určite chcete blokovať celú doménu {domain}? Vo väčšine prípadov stačí blokovať alebo ignorovať pár konkrétnych účtov, čo aj odporúčame. Obsah z tejto domény neuvidíte v žiadnej verejnej časovej osi ani v upozorneniach. Vaši sledujúci pochádzajúci z tejto domény budú odstránení.", "confirmations.edit.confirm": "Upraviť", "confirmations.edit.message": "Úpravou prepíšete príspevok, ktorý máte rozpísaný. Určite chcete pokračovať?", "confirmations.logout.confirm": "Odhlásiť sa", "confirmations.logout.message": "Určite sa chcete odhlásiť?", "confirmations.mute.confirm": "Stíšiť", - "confirmations.mute.explanation": "Toto nastavenie skryje príspevky od daného účtu alebo príspevky od iných, v ktorých je tento účet spomenutý. Účet bude stále vidieť vaše príspevky a môcť vás sledovať.", - "confirmations.mute.message": "Určite chcete stíšiť {name}?", "confirmations.redraft.confirm": "Vymazať a prepísať", "confirmations.redraft.message": "Určite chcete tento príspevok vymazať a prepísať? Prídete o jeho zdieľania a ohviezdičkovania a odpovede na pôvodný príspevok budú odlúčené.", "confirmations.reply.confirm": "Odpovedať", @@ -271,6 +266,7 @@ "filter_modal.select_filter.subtitle": "Použite existujúcu kategóriu alebo vytvorte novú", "filter_modal.select_filter.title": "Filtrovanie tohto príspevku", "filter_modal.title.status": "Filtrovanie príspevku", + "filtered_notifications_banner.pending_requests": "Oboznámenia od {count, plural, =0 {nikoho} one {jedného človeka} other {# ľudí}} čo môžeš poznať", "firehose.all": "Všetko", "firehose.local": "Tento server", "firehose.remote": "Ostatné servery", @@ -314,7 +310,6 @@ "hashtag.follow": "Sledovať hashtag", "hashtag.unfollow": "Prestať sledovať hashtag", "hashtags.and_other": "…a {count, plural, other {# ďalších}}", - "home.column_settings.basic": "Základné", "home.column_settings.show_reblogs": "Zobraziť zdieľania", "home.column_settings.show_replies": "Zobraziť odpovede", "home.hide_announcements": "Skryť oznámenia", @@ -400,9 +395,6 @@ "loading_indicator.label": "Načítavanie…", "media_gallery.toggle_visible": "{number, plural, one {Skryť obrázok} other {Skryť obrázky}}", "moved_to_account_banner.text": "Váš účet {disabledAccount} je momentálne deaktivovaný, pretože ste sa presunuli na {movedToAccount}.", - "mute_modal.duration": "Trvanie", - "mute_modal.hide_notifications": "Skryť upozornenia od tohto účtu?", - "mute_modal.indefinite": "Bez obmedzenia", "navigation_bar.about": "O tomto serveri", "navigation_bar.advanced_interface": "Otvoriť v pokročilom webovom rozhraní", "navigation_bar.blocks": "Blokované účty", @@ -440,15 +432,15 @@ "notification.reblog": "{name} zdieľa váš príspevok", "notification.status": "{name} uverejňuje niečo nové", "notification.update": "{name} upravuje príspevok", + "notification_requests.accept": "Prijať", + "notification_requests.notifications_from": "Oboznámenia od {name}", + "notification_requests.title": "Filtrované oboznámenia", "notifications.clear": "Vyčistiť upozornenia", "notifications.clear_confirmation": "Určite chcete nenávratne odstrániť všetky svoje upozornenia?", "notifications.column_settings.admin.report": "Nové hlásenia:", "notifications.column_settings.admin.sign_up": "Nové registrácie:", "notifications.column_settings.alert": "Upozornenia na ploche", "notifications.column_settings.favourite": "Ohviezdičkované:", - "notifications.column_settings.filter_bar.advanced": "Zobraziť všetky kategórie", - "notifications.column_settings.filter_bar.category": "Rýchly filter", - "notifications.column_settings.filter_bar.show_bar": "Zobraziť filter", "notifications.column_settings.follow": "Nové sledovania od:", "notifications.column_settings.follow_request": "Nové žiadosti o sledovanie od:", "notifications.column_settings.mention": "Označenia:", @@ -474,6 +466,9 @@ "notifications.permission_denied": "Upozornenia na ploche sú nedostupné pre už skôr zamietnutú požiadavku prehliadača", "notifications.permission_denied_alert": "Upozornenia na ploche nemôžu byť zapnuté, pretože požiadavka prehliadača bola už skôr zamietnutá", "notifications.permission_required": "Upozornenia na ploche sú nedostupné, pretože neboli udelené potrebné povolenia.", + "notifications.policy.filter_new_accounts_title": "Nové účty", + "notifications.policy.filter_not_followers_title": "Ľudia, ktorí ťa nenasledujú", + "notifications.policy.filter_not_following_title": "Ľudia, ktorých nenasleduješ", "notifications_permission_banner.enable": "Povoliť upozornenia na ploche", "notifications_permission_banner.how_to_control": "Ak chcete dostávať upozornenia, keď Mastodon nie je otvorený, povoľte upozornenia na ploche. Po ich zapnutí môžete presne kontrolovať, ktoré typy interakcií generujú upozornenia na ploche, a to prostredníctvom tlačidla {icon} vyššie.", "notifications_permission_banner.title": "Nenechajte si nič ujsť", @@ -650,7 +645,7 @@ "status.direct": "Súkromne označiť @{name}", "status.direct_indicator": "Súkromné označenie", "status.edit": "Upraviť", - "status.edited": "Upravené {date}", + "status.edited": "Naposledy upravený {date}", "status.edited_x_times": "Upravený {count, plural, other {{count}×}}", "status.embed": "Vložiť", "status.favourite": "Ohviezdičkované", diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json index 8396e02a68bc2e..de22e98f07a236 100644 --- a/app/javascript/mastodon/locales/sl.json +++ b/app/javascript/mastodon/locales/sl.json @@ -89,6 +89,14 @@ "announcement.announcement": "Obvestilo", "attachments_list.unprocessed": "(neobdelano)", "audio.hide": "Skrij zvok", + "block_modal.remote_users_caveat": "Od strežnika {domain} bomo zahtevali, da spoštuje vašo odločitev. Izpolnjevanje zahteve ni zagotovljeno, ker nekateri strežniki blokiranja obravnavajo drugače. Javne objave bodo morda še vedno vidne neprijavljenim uporabnikom.", + "block_modal.show_less": "Pokaži manj", + "block_modal.show_more": "Pokaži več", + "block_modal.they_cant_mention": "Ne morejo vas omenjati ali vam slediti.", + "block_modal.they_cant_see_posts": "Ne vidijo vaših objav, vi pa ne njihovih.", + "block_modal.they_will_know": "Ne morejo videti, da so blokirani.", + "block_modal.title": "Blokiraj uporabnika?", + "block_modal.you_wont_see_mentions": "Objav, ki jih omenjajo, ne boste videli.", "boost_modal.combo": "Če želite preskočiti to, lahko pritisnete {combo}", "bundle_column_error.copy_stacktrace": "Kopiraj poročilo o napaki", "bundle_column_error.error.body": "Zahtevane strani ni mogoče upodobiti. Vzrok težave je morda hrošč v naši kodi ali pa nezdružljivost z brskalnikom.", @@ -160,9 +168,7 @@ "compose_form.spoiler.unmarked": "Dodaj opozorilo o vsebini", "compose_form.spoiler_placeholder": "Opozorilo o vsebini (ni obvezno)", "confirmation_modal.cancel": "Prekliči", - "confirmations.block.block_and_report": "Blokiraj in prijavi", "confirmations.block.confirm": "Blokiraj", - "confirmations.block.message": "Ali ste prepričani, da želite blokirati {name}?", "confirmations.cancel_follow_request.confirm": "Umakni zahtevo", "confirmations.cancel_follow_request.message": "Ali ste prepričani, da želite umakniti svojo zahtevo, da bi sledili {name}?", "confirmations.delete.confirm": "Izbriši", @@ -171,15 +177,13 @@ "confirmations.delete_list.message": "Ali ste prepričani, da želite trajno izbrisati ta seznam?", "confirmations.discard_edit_media.confirm": "Opusti", "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.confirm": "Blokiraj strežnik", "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", - "confirmations.mute.explanation": "S tem boste skrili objave pred njimi in objave, ki jih omenjajo, še vedno pa bodo lahko videli vaše objave in vam sledili.", - "confirmations.mute.message": "Ali ste prepričani, da želite utišati {name}?", "confirmations.redraft.confirm": "Izbriši in preoblikuj", "confirmations.redraft.message": "Ali ste prepričani, da želite izbrisati ta status in ga preoblikovati? Vzljubi in izpostavitve bodo izgubljeni, odgovori na izvirno objavo pa bodo osiroteli.", "confirmations.reply.confirm": "Odgovori", @@ -205,6 +209,27 @@ "dismissable_banner.explore_statuses": "Te objave s tega in drugih strežnikov v decentraliziranem omrežju pridobivajo ravno zdaj veliko pozornosti na tem strežniku.", "dismissable_banner.explore_tags": "Ravno zdaj dobivajo ti ključniki veliko pozoronosti med osebami na tem in drugih strežnikih decentraliziranega omrežja.", "dismissable_banner.public_timeline": "To so najnovejše javne objave oseb z družabnega omrežja, ki jim sledijo osebe na {domain}.", + "domain_block_modal.block": "Blokiraj strežnik", + "domain_block_modal.block_account_instead": "Namesto tega blokiraj @{name}", + "domain_block_modal.they_can_interact_with_old_posts": "Osebe s tega strežnika se lahko odzivajo na vaše stare objave.", + "domain_block_modal.they_cant_follow": "Nihče s tega strežnika vam ne more slediti.", + "domain_block_modal.they_wont_know": "Ne bodo vedeli, da so blokirani.", + "domain_block_modal.title": "Blokiraj domeno?", + "domain_block_modal.you_will_lose_followers": "Vsi vaši sledilci s tega strežnika bodo odstranjeni.", + "domain_block_modal.you_wont_see_posts": "Objav ali obvestil uporabnikov s tega strežnika ne boste videli.", + "domain_pill.activitypub_lets_connect": "Omogoča vam povezovanje in interakcijo z ljudmi, ki niso samo na Mastodonu, ampak tudi na drugih družabnih platformah.", + "domain_pill.activitypub_like_language": "Protokol ActivityPub je kot jezik, s katerim se Mastodon pogovarja z drugimi družabnimi omrežji.", + "domain_pill.server": "Strežnik", + "domain_pill.their_handle": "Njihova ročica:", + "domain_pill.their_server": "Njihovo digitalno domovanje, kjer bivajo vse njihove objave.", + "domain_pill.their_username": "Njihov edinstveni identifikator na njihovem strežniku. Uporabnike z istim uporabniškim imenom lahko najdete na različnih strežnikih.", + "domain_pill.username": "Uporabniško ime", + "domain_pill.whats_in_a_handle": "Kaj je v ročici?", + "domain_pill.who_they_are": "Ker ročice povedo, kdo je kdo in kje so, ste lahko z osebami v interakciji prek družabnega spleta .", + "domain_pill.who_you_are": "Ker ročice povedo, kdo ste in kje ste, ste lahko z osebami v interakciji prek družabnega spleta .", + "domain_pill.your_handle": "Vaša ročica:", + "domain_pill.your_server": "Vaše digitalno domovanje, kjer bivajo vse vaše objave. Vam ta ni všeč? Prenesite ga med strežniki kadar koli in z njim tudi svoje sledilce.", + "domain_pill.your_username": "Vaš edinstveni identifikator na tem strežniku. Uporabnike z istim uporabniškim imenom je možno najti na različnih strežnikih.", "embed.instructions": "Vstavite to objavo na svojo spletno stran tako, da kopirate spodnjo kodo.", "embed.preview": "Tako bo izgledalo:", "emoji_button.activity": "Dejavnost", @@ -241,6 +266,7 @@ "empty_column.list": "Na tem seznamu ni ničesar. Ko bodo člani tega seznama objavili nove statuse, se bodo pojavili tukaj.", "empty_column.lists": "Nimate seznamov. Ko ga boste ustvarili, se bo prikazal tukaj.", "empty_column.mutes": "Niste utišali še nobenega uporabnika.", + "empty_column.notification_requests": "Vse prebrano! Tu ni ničesar več. Ko prejmete nova obvestila, se bodo pojavila tu glede na vaše nastavitve.", "empty_column.notifications": "Nimate še nobenih obvestil. Povežite se z drugimi, da začnete pogovor.", "empty_column.public": "Tukaj ni ničesar! Da ga napolnite, napišite nekaj javnega ali pa ročno sledite uporabnikom iz drugih strežnikov", "error.unexpected_crash.explanation": "Zaradi hrošča v naši kodi ali težave z združljivostjo brskalnika te strani ni mogoče ustrezno prikazati.", @@ -271,6 +297,8 @@ "filter_modal.select_filter.subtitle": "Uporabite obstoječo kategorijo ali ustvarite novo", "filter_modal.select_filter.title": "Filtriraj to objavo", "filter_modal.title.status": "Filtrirajte objavo", + "filtered_notifications_banner.pending_requests": "Obvestila od {count, plural, =0 {nikogar, ki bi ga} one {# človeka, ki bi ga} two {# ljudi, ki bi ju} few {# ljudi, ki bi jih} other {# ljudi, ki bi jih}} lahko poznali", + "filtered_notifications_banner.title": "Filtrirana obvestila", "firehose.all": "Vse", "firehose.local": "Ta strežnik", "firehose.remote": "Drugi strežniki", @@ -314,7 +342,6 @@ "hashtag.follow": "Sledi ključniku", "hashtag.unfollow": "Nehaj slediti ključniku", "hashtags.and_other": "…in še {count, plural, other {#}}", - "home.column_settings.basic": "Osnovno", "home.column_settings.show_reblogs": "Pokaži izpostavitve", "home.column_settings.show_replies": "Pokaži odgovore", "home.hide_announcements": "Skrij obvestila", @@ -400,9 +427,15 @@ "loading_indicator.label": "Nalaganje …", "media_gallery.toggle_visible": "{number, plural,one {Skrij sliko} two {Skrij sliki} other {Skrij slike}}", "moved_to_account_banner.text": "Vaš račun {disabledAccount} je trenutno onemogočen, ker ste se prestavili na {movedToAccount}.", - "mute_modal.duration": "Trajanje", - "mute_modal.hide_notifications": "Ali želite skriti obvestila tega uporabnika?", - "mute_modal.indefinite": "Nedoločeno", + "mute_modal.hide_from_notifications": "Skrijte se pred obvestili", + "mute_modal.hide_options": "Skrij možnosti", + "mute_modal.indefinite": "Dokler jim ne povrnem glasu", + "mute_modal.show_options": "Pokaži možnosti", + "mute_modal.they_can_mention_and_follow": "Lahko vas omenijo ali vam sledijo, vi pa jih ne morete videti.", + "mute_modal.they_wont_know": "Ne bodo vedeli, da so utišani.", + "mute_modal.title": "Utišaj uporabnika?", + "mute_modal.you_wont_see_mentions": "Objav, ki jih omenjajo, ne boste videli.", + "mute_modal.you_wont_see_posts": "Še vedno vidijo vaše objave, vi pa ne njihovih.", "navigation_bar.about": "O Mastodonu", "navigation_bar.advanced_interface": "Odpri v naprednem spletnem vmesniku", "navigation_bar.blocks": "Blokirani uporabniki", @@ -440,15 +473,16 @@ "notification.reblog": "{name} je izpostavila/a vašo objavo", "notification.status": "{name} je pravkar objavil/a", "notification.update": "{name} je uredil(a) objavo", + "notification_requests.accept": "Sprejmi", + "notification_requests.dismiss": "Zavrni", + "notification_requests.notifications_from": "Obvestila od {name}", + "notification_requests.title": "Filtrirana obvestila", "notifications.clear": "Počisti obvestila", "notifications.clear_confirmation": "Ali ste prepričani, da želite trajno izbrisati vsa svoja obvestila?", "notifications.column_settings.admin.report": "Nove prijave:", "notifications.column_settings.admin.sign_up": "Novi vpisi:", "notifications.column_settings.alert": "Namizna obvestila", "notifications.column_settings.favourite": "Priljubljeni:", - "notifications.column_settings.filter_bar.advanced": "Prikaži vse kategorije", - "notifications.column_settings.filter_bar.category": "Vrstica za hitro filtriranje", - "notifications.column_settings.filter_bar.show_bar": "Pokaži vrstico s filtri", "notifications.column_settings.follow": "Novi sledilci:", "notifications.column_settings.follow_request": "Nove prošnje za sledenje:", "notifications.column_settings.mention": "Omembe:", @@ -474,6 +508,15 @@ "notifications.permission_denied": "Namizna obvestila niso na voljo zaradi poprej zavrnjene zahteve dovoljenja brskalnika.", "notifications.permission_denied_alert": "Namiznih obvestil ni mogoče omogočiti, ker je bilo dovoljenje brskalnika že prej zavrnjeno", "notifications.permission_required": "Namizna obvestila niso na voljo, ker zahtevano dovoljenje ni bilo podeljeno.", + "notifications.policy.filter_new_accounts.hint": "Ustvarjen v {days, plural, one {zadnjem # dnevu} two {zadnjih # dnevih} few {zadnjih # dnevih} other {zadnjih # dnevih}}", + "notifications.policy.filter_new_accounts_title": "Novi računi", + "notifications.policy.filter_not_followers_hint": "Vključujoč ljudi, ki vam sledijo manj kot {days, plural, one {# dan} two {# dneva} few {# dni} other {# dni}}", + "notifications.policy.filter_not_followers_title": "Ljudje, ki vam ne sledijo", + "notifications.policy.filter_not_following_hint": "Dokler jih ročno ne odobrite", + "notifications.policy.filter_not_following_title": "Ljudje, ki jim ne sledite", + "notifications.policy.filter_private_mentions_hint": "Filtrirano, razen če je odgovor na vašo lastno omembo ali če sledite pošiljatelju", + "notifications.policy.filter_private_mentions_title": "Neželene zasebne omembe", + "notifications.policy.title": "Skrij obvestila od …", "notifications_permission_banner.enable": "Omogoči obvestila na namizju", "notifications_permission_banner.how_to_control": "Če želite prejemati obvestila, ko Mastodon ni odprt, omogočite namizna obvestila. Natančno lahko nadzirate, katere vrste interakcij naj tvorijo namizna obvestila; ko so omogočena, za to uporabite gumb {icon} zgoraj.", "notifications_permission_banner.title": "Nikoli ne zamudite ničesar", @@ -650,10 +693,11 @@ "status.direct": "Zasebno omeni @{name}", "status.direct_indicator": "Zasebna omemba", "status.edit": "Uredi", - "status.edited": "Urejeno {date}", + "status.edited": "Zadnje urejanje {date}", "status.edited_x_times": "Urejeno {count, plural, one {#-krat} two {#-krat} few {#-krat} other {#-krat}}", "status.embed": "Vdelaj", "status.favourite": "Priljubljen_a", + "status.favourites": "{count, plural, one {priljubitev} two {priljubitvi} few {priljubitve} other {priljubitev}}", "status.filter": "Filtriraj to objavo", "status.filtered": "Filtrirano", "status.hide": "Skrij objavo", @@ -674,6 +718,7 @@ "status.reblog": "Izpostavi", "status.reblog_private": "Izpostavi z izvirno vidljivostjo", "status.reblogged_by": "{name} je izpostavil/a", + "status.reblogs": "{count, plural, one {izpostavitev} two {izpostavitvi} few {izpostavitve} other {izpostavitev}}", "status.reblogs.empty": "Nihče še ni izpostavil te objave. Ko se bo to zgodilo, se bodo pojavile tukaj.", "status.redraft": "Izbriši in preoblikuj", "status.remove_bookmark": "Odstrani zaznamek", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index c388ebb8657946..dd8f4ad9802490 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -89,6 +89,14 @@ "announcement.announcement": "Lajmërim", "attachments_list.unprocessed": "(e papërpunuar)", "audio.hide": "Fshihe audion", + "block_modal.remote_users_caveat": "Do t’i kërkojmë shërbyesit {domain} të respektojë vendimin tuaj. Por, pajtimi s’është i garantuar, ngaqë disa shërbyes mund t’i trajtojnë ndryshe bllokimet. Psotimet publike mundet të jenë ende të dukshme për përdorues pa bërë hyrje në llogari.", + "block_modal.show_less": "Shfaq më pak", + "block_modal.show_more": "Shfaq më tepër", + "block_modal.they_cant_mention": "S’mund t’u përmendin, ose t’ju ndjekin.", + "block_modal.they_cant_see_posts": "S’mund të shohin postimet tuaja dhe as ju të tyret.", + "block_modal.they_will_know": "Mund të shohin se janë bllokuar.", + "block_modal.title": "Të bllokohet përdoruesi?", + "block_modal.you_wont_see_mentions": "S’do të shihni postimet ku përmenden.", "boost_modal.combo": "Që kjo të anashkalohet herës tjetër, mund të shtypni {combo}", "bundle_column_error.copy_stacktrace": "Kopjo raportim gabimi", "bundle_column_error.error.body": "Faqja e kërkuar s’u vizatua dot. Kjo mund të vijë nga një e metë në kodin tonë, ose nga një problem përputhshmërie i shfletuesit.", @@ -160,9 +168,7 @@ "compose_form.spoiler.unmarked": "Shtoni sinjalizim lënde", "compose_form.spoiler_placeholder": "Sinjalizim lënde (opsional)", "confirmation_modal.cancel": "Anuloje", - "confirmations.block.block_and_report": "Bllokojeni & Raportojeni", "confirmations.block.confirm": "Bllokoje", - "confirmations.block.message": "Jeni i sigurt se doni të bllokohet {name}?", "confirmations.cancel_follow_request.confirm": "Tërhiqeni mbrapsht kërkesën", "confirmations.cancel_follow_request.message": "Jeni i sigurt se doni të tërhiqni mbrapsht kërkesën tuaj për ndjekje të {name}?", "confirmations.delete.confirm": "Fshije", @@ -171,15 +177,13 @@ "confirmations.delete_list.message": "Jeni i sigurt se doni të fshihet përgjithmonë kjo listë?", "confirmations.discard_edit_media.confirm": "Hidhe tej", "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.confirm": "Bllokoje shërbyesin", "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", - "confirmations.mute.explanation": "Kjo do t’u fshehë postimet dhe përmendje postimesh, por ende do t’u lejojë të shohin postimet tuaja dhe t’ju ndjekin.", - "confirmations.mute.message": "Jeni i sigurt se doni të heshtohet {name}?", "confirmations.redraft.confirm": "Fshijeni & rihartojeni", "confirmations.redraft.message": "Jeni i sigurt se doni të fshihet kjo gjendje dhe të rihartohet? Të parapëlqyerit dhe përforcimet do të humbin, ndërsa përgjigjet te postimi origjinal do të bëhen jetime.", "confirmations.reply.confirm": "Përgjigjuni", @@ -205,6 +209,27 @@ "dismissable_banner.explore_statuses": "Këto janë postime nga rrjeti shoqëror që po tërheqin vëmendjen tani. Postimet më të reja me më përforcime dhe më të parapëlqyera nga njerëzit renditen më sipër.", "dismissable_banner.explore_tags": "Këta hashtag-ë po tërheqin vëmendjen mes personave në këtë shërbyes dhe të tjerë të tillë të rrjetit të decentralizuar mu tani.", "dismissable_banner.public_timeline": "Këto janë postimet më të reja publike prej personash në rrjetin shoqëror që ndjekin njerëzit në {domain}.", + "domain_block_modal.block": "Bllokoje shërbyesin", + "domain_block_modal.block_account_instead": "Blloko @{name} në vend të kësaj", + "domain_block_modal.they_can_interact_with_old_posts": "Persona nga ky shërbyes mund të ndërveprojnë me postimet tuaja të vjetra.", + "domain_block_modal.they_cant_follow": "S’mund t’ju ndjekë askush nga ky shërbyes.", + "domain_block_modal.they_wont_know": "S’do ta dinë se janë bllokuar.", + "domain_block_modal.title": "Të bllokohet përkatësia?", + "domain_block_modal.you_will_lose_followers": "Krejt ndjekësit tuaj nga ky shërbyes do të hiqen.", + "domain_block_modal.you_wont_see_posts": "S’do të shihni postime, apo njoftime nga përdorues në këtë shërbyes.", + "domain_pill.activitypub_lets_connect": "Ju lejon të lidheni dhe ndërveproni me persona jo thjesht në Mastodon, por edhe nëpër aplikacione të ndryshme shoqërore.", + "domain_pill.activitypub_like_language": "ActivityPub është si gjuha me të cilën Mastodon-i komunikon me rrjete të tjerë shoqërorë.", + "domain_pill.server": "Shërbyes", + "domain_pill.their_handle": "Targa e tij:", + "domain_pill.their_server": "Shtëpia e tij dixhitale, ku rrinë krejt postimet prej tij.", + "domain_pill.their_username": "Identifikuesi i tij unik në shërbyesin e vet. Është e mundur të gjenden përdorues me të njëjtin emër përdoruesi në shërbyes të ndryshëm.", + "domain_pill.username": "Emër përdoruesi", + "domain_pill.whats_in_a_handle": "Ç’është një targë?", + "domain_pill.who_they_are": "Nga targat thonë se cili është dikush dhe se ku gjendet, ju mund të ndërveproni me persona nëpër web-in shoqëror të .", + "domain_pill.who_you_are": "Ngaqë targa juaj thotë se cili jeni dhe se ku gjendeni, njerëzit mund të ndërveprojnë me ju nëpër web-in shoqëror të .", + "domain_pill.your_handle": "Targa juaj:", + "domain_pill.your_server": "Shtëpia juaj dixhitale, kur gjenden krejt postimet tuaja. S’ju pëlqen kjo këtu? Shpërngulni shërbyes kur të doni dhe sillni edhe ndjekësit tuaj.", + "domain_pill.your_username": "Identifikuesi juja unik në këtë shërbyes. Është e mundur të gjenden përdorues me të njëjtin emër përdoruesi në shërbyes të ndryshëm.", "embed.instructions": "Trupëzojeni këtë gjendje në sajtin tuaj duke kopjuar kodin më poshtë.", "embed.preview": "Ja si do të duket:", "emoji_button.activity": "Veprimtari", @@ -241,6 +266,7 @@ "empty_column.list": "Në këtë listë ende s’ka gjë. Kur anëtarë të kësaj liste postojnë gjendje të reja, ato do të shfaqen këtu.", "empty_column.lists": "Ende s’keni ndonjë listë. Kur të krijoni një të tillë, do të duket këtu.", "empty_column.mutes": "S’keni heshtuar ende ndonjë përdorues.", + "empty_column.notification_requests": "Gjithçka si duhet! S’ka ç’bëhet këtu. Kur merrni njoftime të reja, do të shfaqen këtu, në përputhje me rregullimet tuaja.", "empty_column.notifications": "Ende s’keni ndonjë njoftim. Ndërveproni me të tjerët që të nisë biseda.", "empty_column.public": "S’ka gjë këtu! Shkruani diçka publikisht, ose ndiqni dorazi përdorues prej instancash të tjera, që kjo të mbushet", "error.unexpected_crash.explanation": "Për shkak të një të mete në kodin tonë ose të një problemi përputhshmërie të shfletuesit, kjo faqe s’mund të shfaqet saktë.", @@ -271,6 +297,7 @@ "filter_modal.select_filter.subtitle": "Përdorni një kategori ekzistuese, ose krijoni një të re", "filter_modal.select_filter.title": "Filtroje këtë postim", "filter_modal.title.status": "Filtroni një postim", + "filtered_notifications_banner.title": "Njoftime të filtruar", "firehose.all": "Krejt", "firehose.local": "Këtë shërbyes", "firehose.remote": "Shërbyes të tjerë", @@ -314,7 +341,6 @@ "hashtag.follow": "Ndiqe hashtag-un", "hashtag.unfollow": "Hiqe ndjekjen e hashtag-ut", "hashtags.and_other": "…dhe {count, plural, one {}other {# më tepër}}", - "home.column_settings.basic": "Bazë", "home.column_settings.show_reblogs": "Shfaq përforcime", "home.column_settings.show_replies": "Shfaq përgjigje", "home.hide_announcements": "Fshihi lajmërimet", @@ -400,9 +426,15 @@ "loading_indicator.label": "Po ngarkohet…", "media_gallery.toggle_visible": "Fshihni {number, plural, one {figurë} other {figura}}", "moved_to_account_banner.text": "Llogaria juaj {disabledAccount} aktualisht është e çaktivizuar, ngaqë kaluat te {movedToAccount}.", - "mute_modal.duration": "Kohëzgjatje", - "mute_modal.hide_notifications": "Të kalohen të fshehura njoftimet prej këtij përdoruesi?", - "mute_modal.indefinite": "E pacaktuar", + "mute_modal.hide_from_notifications": "Fshihe prej njoftimeve", + "mute_modal.hide_options": "Fshihi mundësitë", + "mute_modal.indefinite": "Deri sa t’u heq heshtimin", + "mute_modal.show_options": "Shfaq mundësi", + "mute_modal.they_can_mention_and_follow": "Mund t’ju përmendin dhe ndjekin, por s’do t’i shihni.", + "mute_modal.they_wont_know": "S’do ta dinë se janë heshtuar.", + "mute_modal.title": "Të heshtohet përdoruesi?", + "mute_modal.you_wont_see_mentions": "S’do të shihni postime ku përmenden.", + "mute_modal.you_wont_see_posts": "Ata munden ende të shohin postimet tuaja, por ju s’do të shihni të tyret.", "navigation_bar.about": "Mbi", "navigation_bar.advanced_interface": "Hape në ndërfaqe web të thelluar", "navigation_bar.blocks": "Përdorues të bllokuar", @@ -440,15 +472,16 @@ "notification.reblog": "{name} përforcoi mesazhin tuaj", "notification.status": "{name} sapo postoi", "notification.update": "{name} përpunoi një postim", + "notification_requests.accept": "Pranoje", + "notification_requests.dismiss": "Hidhe tej", + "notification_requests.notifications_from": "Njoftime prej {name}", + "notification_requests.title": "Njoftime të filtruar", "notifications.clear": "Spastroji njoftimet", "notifications.clear_confirmation": "Jeni i sigurt se doni të spastrohen përgjithmonë krejt njoftimet tuaja?", "notifications.column_settings.admin.report": "Raportime të reja:", "notifications.column_settings.admin.sign_up": "Regjistrime të reja:", "notifications.column_settings.alert": "Njoftime desktopi", "notifications.column_settings.favourite": "Të parapëlqyer:", - "notifications.column_settings.filter_bar.advanced": "Shfaq krejt kategoritë", - "notifications.column_settings.filter_bar.category": "Shtyllë filtrimesh të shpejta", - "notifications.column_settings.filter_bar.show_bar": "Shfaq shtyllë filtrash", "notifications.column_settings.follow": "Ndjekës të rinj:", "notifications.column_settings.follow_request": "Kërkesa të reja për ndjekje:", "notifications.column_settings.mention": "Përmendje:", @@ -474,6 +507,13 @@ "notifications.permission_denied": "S’merren dot njoftime në desktop, ngaqë më herët shfletuesit i janë mohuar lejet për këtë", "notifications.permission_denied_alert": "S’mund të aktivizohen njoftimet në desktop, ngaqë lejet e shfletuesit për këtë janë mohuar më herët", "notifications.permission_required": "S’merren dot njoftime desktop, ngaqë s’është akorduar leja përkatëse.", + "notifications.policy.filter_new_accounts_title": "Llogari të reja", + "notifications.policy.filter_not_followers_title": "Persona që s’ju ndjekin", + "notifications.policy.filter_not_following_hint": "Deri sa t’i miratoni dorazi", + "notifications.policy.filter_not_following_title": "Persona që s’i ndiqni", + "notifications.policy.filter_private_mentions_hint": "Filtruar, hiq rastin nëse gjendet te përgjigje ndaj përmendjes tuaj, ose nëse dërguesin e ndiqni", + "notifications.policy.filter_private_mentions_title": "Përmendje private të pakërkuara", + "notifications.policy.title": "Filtroni njoftime nga…", "notifications_permission_banner.enable": "Aktivizo njoftime në desktop", "notifications_permission_banner.how_to_control": "Për të marrë njoftime, kur Mastodon-i s’është i hapur, aktivizoni njoftime në desktop. Përmes butoni {icon} më sipër, mund të kontrolloni me përpikëri cilat lloje ndërveprimesh prodhojnë njoftime në desktop, pasi të jenë aktivizuar.", "notifications_permission_banner.title": "Mos t’ju shpëtojë gjë", @@ -650,10 +690,11 @@ "status.direct": "Përmendje private për @{name}", "status.direct_indicator": "Përmendje private", "status.edit": "Përpunojeni", - "status.edited": "Përpunuar më {date}", + "status.edited": "Përpunuar së fundi më {date}", "status.edited_x_times": "Përpunuar {count, plural, one {{count} herë} other {{count} herë}}", "status.embed": "Trupëzim", "status.favourite": "I vini shenjë si të parapëlqyer", + "status.favourites": "{count, plural, one {i parapëlqyer} other {të parapëlqyer}}", "status.filter": "Filtroje këtë postim", "status.filtered": "I filtruar", "status.hide": "Fshihe postimin", @@ -674,6 +715,7 @@ "status.reblog": "Përforcojeni", "status.reblog_private": "Përforcim për publikun origjinal", "status.reblogged_by": "{name} përforcoi", + "status.reblogs": "{count, plural, one {përforcim} other {përforcime}}", "status.reblogs.empty": "Këtë mesazh s’e ka përforcuar njeri deri tani. Kur ta bëjë dikush, kjo do të duket këtu.", "status.redraft": "Fshijeni & rihartojeni", "status.remove_bookmark": "Hiqe faqerojtësin", diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json index 35bfc79f2ee1cc..2d795c76cc5ae3 100644 --- a/app/javascript/mastodon/locales/sr-Latn.json +++ b/app/javascript/mastodon/locales/sr-Latn.json @@ -160,9 +160,7 @@ "compose_form.spoiler.unmarked": "Dodaj upozorenje o sadržaju", "compose_form.spoiler_placeholder": "Upozorenje o sadržaju (opciono)", "confirmation_modal.cancel": "Otkaži", - "confirmations.block.block_and_report": "Blokiraj i prijavi", "confirmations.block.confirm": "Blokiraj", - "confirmations.block.message": "Da li ste sigurni da želite da blokirate korisnika {name}?", "confirmations.cancel_follow_request.confirm": "Povuci zahtev", "confirmations.cancel_follow_request.message": "Da li ste sigurni da želite da povučete zahtev da pratite {name}?", "confirmations.delete.confirm": "Izbriši", @@ -171,15 +169,12 @@ "confirmations.delete_list.message": "Da li ste sigurni da želite da trajno izbrišete ovu listu?", "confirmations.discard_edit_media.confirm": "Odbaci", "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.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 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}?", "confirmations.redraft.confirm": "Izbriši i prepravi", "confirmations.redraft.message": "Da li ste sigurni da želite da izbrišete ovu objavu i da je prepravite? Podržavanja i oznake kao omiljenih će biti izgubljeni, a odgovori će ostati bez originalne objave.", "confirmations.reply.confirm": "Odgovori", @@ -241,6 +236,7 @@ "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, ona će se pojaviti ovde.", "empty_column.mutes": "Još uvek ne ignorišete nijednog korisnika.", + "empty_column.notification_requests": "Sve je čisto! Ovde nema ničega. Kada dobijete nova obaveštenja, ona će se pojaviti ovde u skladu sa vašim podešavanjima.", "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.", @@ -271,6 +267,8 @@ "filter_modal.select_filter.subtitle": "Koristite postojeću kategoriju ili kreirajte novu", "filter_modal.select_filter.title": "Filtriraj ovu objavu", "filter_modal.title.status": "Filtriraj objavu", + "filtered_notifications_banner.pending_requests": "Obaveštenja od {count, plural, =0 {nikoga koga možda poznajete} one {# osobe koju možda poznajete} few {# osobe koje možda poznajete} other {# osoba koje možda poznajete}}", + "filtered_notifications_banner.title": "Filtrirana obaveštenja", "firehose.all": "Sve", "firehose.local": "Ovaj server", "firehose.remote": "Ostali serveri", @@ -314,7 +312,6 @@ "hashtag.follow": "Zaprati heš oznaku", "hashtag.unfollow": "Otprati heš oznaku", "hashtags.and_other": "…i {count, plural, one {još #} few {još #}other {još #}}", - "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", @@ -400,9 +397,6 @@ "loading_indicator.label": "Učitavanje…", "media_gallery.toggle_visible": "{number, plural, one {Sakrij sliku} few {Sakrij slike} other {Sakrij slike}}", "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đeno", "navigation_bar.about": "Osnovni podaci", "navigation_bar.advanced_interface": "Otvori u naprednom veb okruženju", "navigation_bar.blocks": "Blokirani korisnici", @@ -440,15 +434,16 @@ "notification.reblog": "{name} je podržao vašu objavu", "notification.status": "{name} je upravo objavio", "notification.update": "{name} je uredio objavu", + "notification_requests.accept": "Prihvati", + "notification_requests.dismiss": "Odbaci", + "notification_requests.notifications_from": "Obaveštenja od {name}", + "notification_requests.title": "Filtrirana obaveštenja", "notifications.clear": "Obriši obaveštenja", "notifications.clear_confirmation": "Da li ste sigurni da želite trajno da obrišete sva vaša obaveštenja?", "notifications.column_settings.admin.report": "Nove prijave:", "notifications.column_settings.admin.sign_up": "Nove ragistracije:", "notifications.column_settings.alert": "Obaveštenja na radnoj površini", "notifications.column_settings.favourite": "Omiljeno:", - "notifications.column_settings.filter_bar.advanced": "Prikaži sve kategorije", - "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:", "notifications.column_settings.mention": "Pominjanja:", @@ -474,6 +469,15 @@ "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.policy.filter_new_accounts.hint": "Kreirano {days, plural, one {u poslednjeg # dana} few {u poslednja # dana} other {u poslednjih # dana}}", + "notifications.policy.filter_new_accounts_title": "Novi nalozi", + "notifications.policy.filter_not_followers_hint": "Uključujući ljude koji su vas pratili manje od {days, plural, one {# dana} few {# dana} other {# dana}}", + "notifications.policy.filter_not_followers_title": "Ljudi koji vas ne prate", + "notifications.policy.filter_not_following_hint": "Dok ih ručno ne odobrite", + "notifications.policy.filter_not_following_title": "Ljudi koje ne pratite", + "notifications.policy.filter_private_mentions_hint": "Filtrirano osim ako je odgovor na vaše pominjanje ili ako pratite pošiljaoca", + "notifications.policy.filter_private_mentions_title": "Neželjena privatna pominjanja", + "notifications.policy.title": "Filtriraj obaveštenja od…", "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", @@ -650,10 +654,11 @@ "status.direct": "Privatno pomeni @{name}", "status.direct_indicator": "Privatno pominjanje", "status.edit": "Uredi", - "status.edited": "Uređeno {date}", + "status.edited": "Poslednje uređivanje {date}", "status.edited_x_times": "Uređeno {count, plural, one {{count} put} other {{count} puta}}", "status.embed": "Ugradi", "status.favourite": "Omiljeno", + "status.favourites": "{count, plural, one {# omiljeno} few {# omiljena} other {# omiljenih}}", "status.filter": "Filtriraj ovu objavu", "status.filtered": "Filtrirano", "status.hide": "Sakrij objavu", @@ -674,6 +679,7 @@ "status.reblog": "Podrži", "status.reblog_private": "Podrži sa originalnom vidljivošću", "status.reblogged_by": "{name} je podržao/la", + "status.reblogs": "{count, plural, one {# podržavanje} few {# podržavanja} other {# podržavanja}}", "status.reblogs.empty": "Još uvek niko nije podržao ovu objavu. Kada bude podržana, pojaviće se ovde.", "status.redraft": "Izbriši i preoblikuj", "status.remove_bookmark": "Ukloni obeleživač", diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json index dc20585c9279fe..347a3f65a3c071 100644 --- a/app/javascript/mastodon/locales/sr.json +++ b/app/javascript/mastodon/locales/sr.json @@ -89,6 +89,14 @@ "announcement.announcement": "Најава", "attachments_list.unprocessed": "(необрађено)", "audio.hide": "Сакриј аудио", + "block_modal.remote_users_caveat": "Замолићемо сервер {domain} да поштује вашу одлуку. Међутим, усклађеност није загарантована јер неки сервери могу другачије да обрађују блокове. Јавне објаве могу и даље бити видљиве корисницима који нису пријављени.", + "block_modal.show_less": "Прикажи мање", + "block_modal.show_more": "Прикажи више", + "block_modal.they_cant_mention": "Не могу да вас помињу или прате.", + "block_modal.they_cant_see_posts": "Не могу да виде ваше објаве, а ви нећете видети њихове.", + "block_modal.they_will_know": "Могу да виде да су блокирани.", + "block_modal.title": "Блокирати корисника?", + "block_modal.you_wont_see_mentions": "Нећете видети објаве које их помињу.", "boost_modal.combo": "Можете притиснути {combo} да прескочите ово следећи пут", "bundle_column_error.copy_stacktrace": "Копирај извештај о грешци", "bundle_column_error.error.body": "Није могуће приказати тражену страницу. Разлог може бити грешка у нашем коду или проблем са компатибилношћу претраживача.", @@ -160,9 +168,7 @@ "compose_form.spoiler.unmarked": "Додај упозорење о садржају", "compose_form.spoiler_placeholder": "Упозорење о садржају (опционо)", "confirmation_modal.cancel": "Откажи", - "confirmations.block.block_and_report": "Блокирај и пријави", "confirmations.block.confirm": "Блокирај", - "confirmations.block.message": "Да ли сте сигурни да желите да блокирате корисника {name}?", "confirmations.cancel_follow_request.confirm": "Повуци захтев", "confirmations.cancel_follow_request.message": "Да ли сте сигурни да желите да повучете захтев да пратите {name}?", "confirmations.delete.confirm": "Избриши", @@ -171,15 +177,13 @@ "confirmations.delete_list.message": "Да ли сте сигурни да желите да трајно избришете ову листу?", "confirmations.discard_edit_media.confirm": "Одбаци", "confirmations.discard_edit_media.message": "Имате несачуване промене у опису или прегледу медија, да ли ипак хоћете да их одбаците?", - "confirmations.domain_block.confirm": "Блокирај цео домен", + "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.message": "Да ли стварно желите да игноришете корисника {name}?", "confirmations.redraft.confirm": "Избриши и преправи", "confirmations.redraft.message": "Да ли сте сигурни да желите да избришете ову објаву и да је преправите? Подржавања и ознаке као омиљених ће бити изгубљени, а одговори ће остати без оригиналне објаве.", "confirmations.reply.confirm": "Одговори", @@ -205,6 +209,18 @@ "dismissable_banner.explore_statuses": "Ово су објаве широм друштвеног веба које данас постају све популарније. Новије објаве са више подржавања и омиљене су рангиране више.", "dismissable_banner.explore_tags": "Ово су хеш ознаке које данас постају све популарније на друштвеној мрежи. Хеш ознаке које користи више различитих људи су рангиране више.", "dismissable_banner.public_timeline": "Ово су најновије јавне објаве људи са друштвеног веба које људи на {domain}-у прате.", + "domain_block_modal.block": "Блокирај сервер", + "domain_block_modal.block_account_instead": "Уместо тога, блокирај @{name}", + "domain_block_modal.they_can_interact_with_old_posts": "Људи са овог сервера могу да имају интеракцију са вашим старим објавама.", + "domain_block_modal.they_cant_follow": "Нико са овог сервера не може да вас прати.", + "domain_block_modal.they_wont_know": "Неће знати да су блокирани.", + "domain_block_modal.title": "Блокирати домен?", + "domain_block_modal.you_will_lose_followers": "Сви ваши пратиоци са овог сервера ће бити уклоњени.", + "domain_block_modal.you_wont_see_posts": "Нећете видети објаве или обавештења корисника на овом серверу.", + "domain_pill.activitypub_lets_connect": "Омогућује вам да се повежете и комуницирате са људима не само на Mastodon-у, већ и у различитим друштвеним апликацијама.", + "domain_pill.activitypub_like_language": "ActivityPub је као језик којим Mastodon говори са другим друштвеним мрежама.", + "domain_pill.server": "Сервер", + "domain_pill.username": "Корисничко име", "embed.instructions": "Уградите ову објаву на свој веб сајт копирањем кода испод.", "embed.preview": "Ево како ће то изгледати:", "emoji_button.activity": "Активности", @@ -241,6 +257,7 @@ "empty_column.list": "У овој листи још нема ничега. Када чланови ове листе објаве нешто ново, појавиће се овде.", "empty_column.lists": "Још увек немате ниједну листу. Када направите једну, она ће се појавити овде.", "empty_column.mutes": "Још увек не игноришете ниједног корисника.", + "empty_column.notification_requests": "Све је чисто! Овде нема ничега. Када добијете нова обавештења, она ће се појавити овде у складу са вашим подешавањима.", "empty_column.notifications": "Још увек немате никаква обавештења. Када други људи буду у интеракцији са вама, видећете то овде.", "empty_column.public": "Овде нема ничега! Напишите нешто јавно или ручно пратите кориснике са других сервера да бисте ово попунили", "error.unexpected_crash.explanation": "Због грешке у нашем коду или проблема са компатибилношћу прегледача, ова страница се није могла правилно приказати.", @@ -271,6 +288,8 @@ "filter_modal.select_filter.subtitle": "Користите постојећу категорију или креирајте нову", "filter_modal.select_filter.title": "Филтрирај ову објаву", "filter_modal.title.status": "Филтрирај објаву", + "filtered_notifications_banner.pending_requests": "Обавештења од {count, plural, =0 {никога кога можда познајете} one {# особе коју можда познајете} few {# особе које можда познајете} other {# особа које можда познајете}}", + "filtered_notifications_banner.title": "Филтрирана обавештења", "firehose.all": "Све", "firehose.local": "Овај сервер", "firehose.remote": "Остали сервери", @@ -314,7 +333,6 @@ "hashtag.follow": "Запрати хеш ознаку", "hashtag.unfollow": "Отпрати хеш ознаку", "hashtags.and_other": "…и {count, plural, one {још #} few {још #}other {још #}}", - "home.column_settings.basic": "Основна", "home.column_settings.show_reblogs": "Прикажи подржавања", "home.column_settings.show_replies": "Прикажи одговоре", "home.hide_announcements": "Сакриј најаве", @@ -400,9 +418,15 @@ "loading_indicator.label": "Учитавање…", "media_gallery.toggle_visible": "{number, plural, one {Сакриј слику} few {Сакриј слике} other {Сакриј слике}}", "moved_to_account_banner.text": "Ваш налог {disabledAccount} је тренутно онемогућен јер сте прешли на {movedToAccount}.", - "mute_modal.duration": "Трајање", - "mute_modal.hide_notifications": "Сакрити обавештења од овог корисника?", - "mute_modal.indefinite": "Неодређено", + "mute_modal.hide_from_notifications": "Сакриј из обавештења", + "mute_modal.hide_options": "Сакриј опције", + "mute_modal.indefinite": "Док их не уклоним из игнорисаних", + "mute_modal.show_options": "Прикажи опције", + "mute_modal.they_can_mention_and_follow": "Могу да вас помињу и прате, али их нећете видети.", + "mute_modal.they_wont_know": "Неће знати да су игнорисани.", + "mute_modal.title": "Игнорисати корисника?", + "mute_modal.you_wont_see_mentions": "Нећете видети објаве које га помињу.", + "mute_modal.you_wont_see_posts": "И даље може да види ваше објаве, али ви нећете видети његове.", "navigation_bar.about": "Основни подаци", "navigation_bar.advanced_interface": "Отвори у напредном веб окружењу", "navigation_bar.blocks": "Блокирани корисници", @@ -440,15 +464,16 @@ "notification.reblog": "{name} је подржао вашу објаву", "notification.status": "{name} је управо објавио", "notification.update": "{name} је уредио објаву", + "notification_requests.accept": "Прихвати", + "notification_requests.dismiss": "Одбаци", + "notification_requests.notifications_from": "Обавештења од {name}", + "notification_requests.title": "Филтрирана обавештења", "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": "Помињања:", @@ -474,6 +499,15 @@ "notifications.permission_denied": "Обавештења на радној површини нису доступна због претходно одбијеног захтева за дозволу прегледача", "notifications.permission_denied_alert": "Обавештења на радној површини не могу бити омогућена, јер је дозвола прегледача раније била одбијена", "notifications.permission_required": "Обавештења на радној површини нису доступна јер потребна дозвола није додељена.", + "notifications.policy.filter_new_accounts.hint": "Креирано {days, plural, one {у последњег # дана} few {у последња # дана} other {у последњих # дана}}", + "notifications.policy.filter_new_accounts_title": "Нови налози", + "notifications.policy.filter_not_followers_hint": "Укључујући људе који су вас пратили мање од {days, plural, one {# дана} few {# дана} other {# дана}}", + "notifications.policy.filter_not_followers_title": "Људи који вас не прате", + "notifications.policy.filter_not_following_hint": "Док их ручно не одобрите", + "notifications.policy.filter_not_following_title": "Људи које не пратите", + "notifications.policy.filter_private_mentions_hint": "Филтрирано осим ако је одговор на ваше помињање или ако пратите пошиљаоца", + "notifications.policy.filter_private_mentions_title": "Нежељена приватна помињања", + "notifications.policy.title": "Филтрирај обавештења од…", "notifications_permission_banner.enable": "Омогућити обавештења на радној површини", "notifications_permission_banner.how_to_control": "Да бисте примали обавештења када Mastodon није отворен, омогућите обавештења на радној површини. Kада су обавештења на радној површини омогућена врсте интеракција које она генеришу могу се подешавати помоћу дугмета {icon}.", "notifications_permission_banner.title": "Никада ништа не пропустите", @@ -650,10 +684,11 @@ "status.direct": "Приватно помени @{name}", "status.direct_indicator": "Приватно помињање", "status.edit": "Уреди", - "status.edited": "Уређено {date}", + "status.edited": "Последње уређивање {date}", "status.edited_x_times": "Уређено {count, plural, one {{count} пут} other {{count} пута}}", "status.embed": "Угради", "status.favourite": "Омиљено", + "status.favourites": "{count, plural, one {# омиљено} few {# омиљена} other {# омиљених}}", "status.filter": "Филтрирај ову објаву", "status.filtered": "Филтрирано", "status.hide": "Сакриј објаву", @@ -674,6 +709,7 @@ "status.reblog": "Подржи", "status.reblog_private": "Подржи са оригиналном видљивошћу", "status.reblogged_by": "{name} је подржао/ла", + "status.reblogs": "{count, plural, one {# подржавање} few {# подржавања} other {# подржавања}}", "status.reblogs.empty": "Још увек нико није подржао ову објаву. Када буде подржана, појавиће се овде.", "status.redraft": "Избриши и преобликуј", "status.remove_bookmark": "Уклони обележивач", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 55503ddf50a398..1bfd3e480fb19d 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -89,6 +89,13 @@ "announcement.announcement": "Meddelande", "attachments_list.unprocessed": "(obehandlad)", "audio.hide": "Dölj audio", + "block_modal.show_less": "Visa mindre", + "block_modal.show_more": "Visa mer", + "block_modal.they_cant_mention": "De kan inte nämna eller följa dig.", + "block_modal.they_cant_see_posts": "De kan inte se dina inlägg och du kan inte se deras.", + "block_modal.they_will_know": "De kan se att de är blockerade.", + "block_modal.title": "Blockera användare?", + "block_modal.you_wont_see_mentions": "Du kommer inte att se inlägg som nämner dem.", "boost_modal.combo": "Du kan trycka på {combo} för att hoppa över detta nästa gång", "bundle_column_error.copy_stacktrace": "Kopiera felrapport", "bundle_column_error.error.body": "Den begärda sidan kunde inte visas. Det kan bero på ett fel i vår kod eller ett problem med webbläsarens kompatibilitet.", @@ -160,9 +167,7 @@ "compose_form.spoiler.unmarked": "Texten är inte dold", "compose_form.spoiler_placeholder": "Innehållsvarning (valfritt)", "confirmation_modal.cancel": "Avbryt", - "confirmations.block.block_and_report": "Blockera & rapportera", "confirmations.block.confirm": "Blockera", - "confirmations.block.message": "Är du säker på att du vill blockera {name}?", "confirmations.cancel_follow_request.confirm": "Återkalla förfrågan", "confirmations.cancel_follow_request.message": "Är du säker på att du vill återkalla din begäran om att följa {name}?", "confirmations.delete.confirm": "Radera", @@ -171,15 +176,13 @@ "confirmations.delete_list.message": "Är du säker på att du vill radera denna lista permanent?", "confirmations.discard_edit_media.confirm": "Kasta", "confirmations.discard_edit_media.message": "Du har osparade ändringar till mediabeskrivningen eller förhandsgranskningen, kasta bort dem ändå?", - "confirmations.domain_block.confirm": "Dölj hela domänen", + "confirmations.domain_block.confirm": "Blockera server", "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", - "confirmations.mute.explanation": "Detta kommer dölja inlägg från hen och inlägg som nämner hen, men hen tillåts fortfarande se dina inlägg och följa dig.", - "confirmations.mute.message": "Är du säker på att du vill tysta {name}?", "confirmations.redraft.confirm": "Radera & gör om", "confirmations.redraft.message": "Är du säker på att du vill radera detta inlägg och göra om det? Favoritmarkeringar, boostar och svar till det ursprungliga inlägget kommer förlora sitt sammanhang.", "confirmations.reply.confirm": "Svara", @@ -205,6 +208,16 @@ "dismissable_banner.explore_statuses": "Dessa inlägg, från denna och andra servrar i det decentraliserade nätverket, pratas det om just nu på denna server.", "dismissable_banner.explore_tags": "Dessa hashtaggar pratas det om just nu bland folk på denna och andra servrar i det decentraliserade nätverket.", "dismissable_banner.public_timeline": "De här är de aktuella publika inlägg från personer på det sociala nätet som personer i {domain} följer.", + "domain_block_modal.block": "Blockera server", + "domain_block_modal.block_account_instead": "Blockera @{name} istället", + "domain_block_modal.they_can_interact_with_old_posts": "Personer från denna server kan interagera med dina gamla inlägg.", + "domain_block_modal.they_cant_follow": "Ingen från denna server kan följa dig.", + "domain_block_modal.title": "Blockera domän?", + "domain_block_modal.you_will_lose_followers": "Alla dina följare från denna server kommer att tas bort.", + "domain_pill.server": "Server", + "domain_pill.their_username": "Deras unika identifierare på deras server. Det är möjligt att hitta användare med samma användarnamn på olika servrar.", + "domain_pill.username": "Användarnamn", + "domain_pill.your_username": "Din unika identifierare på denna server. Det är möjligt att hitta användare med samma användarnamn på olika servrar.", "embed.instructions": "Bädda in detta inlägg på din webbplats genom att kopiera koden nedan.", "embed.preview": "Så här kommer det att se ut:", "emoji_button.activity": "Aktivitet", @@ -314,7 +327,6 @@ "hashtag.follow": "Följ hashtagg", "hashtag.unfollow": "Avfölj hashtagg", "hashtags.and_other": "…och {count, plural, one {}other {# mer}}", - "home.column_settings.basic": "Grundläggande", "home.column_settings.show_reblogs": "Visa boostar", "home.column_settings.show_replies": "Visa svar", "home.hide_announcements": "Dölj notiser", @@ -400,9 +412,11 @@ "loading_indicator.label": "Laddar…", "media_gallery.toggle_visible": "Växla synlighet", "moved_to_account_banner.text": "Ditt konto {disabledAccount} är för närvarande inaktiverat eftersom du flyttat till {movedToAccount}.", - "mute_modal.duration": "Varaktighet", - "mute_modal.hide_notifications": "Dölj aviseringar från denna användare?", - "mute_modal.indefinite": "Obestämt", + "mute_modal.hide_options": "Dölj alternativ", + "mute_modal.show_options": "Visa alternativ", + "mute_modal.they_can_mention_and_follow": "De kan nämna och följa dig, men du ser dem inte.", + "mute_modal.you_wont_see_mentions": "Du kommer inte att se inlägg som nämner dem.", + "mute_modal.you_wont_see_posts": "De kan fortfarande se dina inlägg, men du kan inte se deras.", "navigation_bar.about": "Om", "navigation_bar.advanced_interface": "Öppna i avancerat webbgränssnitt", "navigation_bar.blocks": "Blockerade användare", @@ -446,9 +460,6 @@ "notifications.column_settings.admin.sign_up": "Nya registreringar:", "notifications.column_settings.alert": "Skrivbordsaviseringar", "notifications.column_settings.favourite": "Favoriter:", - "notifications.column_settings.filter_bar.advanced": "Visa alla kategorier", - "notifications.column_settings.filter_bar.category": "Snabbfilter", - "notifications.column_settings.filter_bar.show_bar": "Visa filterfält", "notifications.column_settings.follow": "Nya följare:", "notifications.column_settings.follow_request": "Ny följ-förfrågan:", "notifications.column_settings.mention": "Omnämningar:", @@ -474,6 +485,9 @@ "notifications.permission_denied": "Skrivbordsaviseringar är otillgängliga på grund av tidigare nekade förfrågningar om behörighet i webbläsaren", "notifications.permission_denied_alert": "Skrivbordsaviseringar kan inte aktiveras, eftersom att webbläsarens behörighet har nekats innan", "notifications.permission_required": "Skrivbordsaviseringar är otillgängliga eftersom att rättigheten som krävs inte har godkänts.", + "notifications.policy.filter_new_accounts_title": "Nya konton", + "notifications.policy.filter_not_followers_title": "Personer som inte följer dig", + "notifications.policy.filter_not_following_title": "Personer du inte följer", "notifications_permission_banner.enable": "Aktivera skrivbordsaviseringar", "notifications_permission_banner.how_to_control": "För att ta emot aviseringar när Mastodon inte är öppet, aktivera skrivbordsaviseringar. När de är aktiverade kan du styra exakt vilka typer av interaktioner som aviseras via {icon} -knappen ovan.", "notifications_permission_banner.title": "Missa aldrig något", @@ -650,10 +664,11 @@ "status.direct": "Nämn @{name} privat", "status.direct_indicator": "Privat nämning", "status.edit": "Redigera", - "status.edited": "Ändrad {date}", + "status.edited": "Senast ändrad {date}", "status.edited_x_times": "Redigerad {count, plural, one {{count} gång} other {{count} gånger}}", "status.embed": "Bädda in", "status.favourite": "Favoritmarkera", + "status.favourites": "{count, plural, one {favorit} other {favoriter}}", "status.filter": "Filtrera detta inlägg", "status.filtered": "Filtrerat", "status.hide": "Dölj inlägg", diff --git a/app/javascript/mastodon/locales/szl.json b/app/javascript/mastodon/locales/szl.json index 42164f656b10b7..43cfc78d5bb373 100644 --- a/app/javascript/mastodon/locales/szl.json +++ b/app/javascript/mastodon/locales/szl.json @@ -34,7 +34,6 @@ "compose_form.spoiler.marked": "Text is hidden behind warning", "compose_form.spoiler.unmarked": "Text is not hidden", "confirmations.delete.message": "Are you sure you want to delete this status?", - "confirmations.domain_block.confirm": "Hide entire domain", "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_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", "embed.instructions": "Embed this status on your website by copying the code below.", diff --git a/app/javascript/mastodon/locales/ta.json b/app/javascript/mastodon/locales/ta.json index 6210c3d0b11e06..ac0984293af780 100644 --- a/app/javascript/mastodon/locales/ta.json +++ b/app/javascript/mastodon/locales/ta.json @@ -126,22 +126,17 @@ "compose_form.spoiler.marked": "எச்சரிக்கையின் பின்னால் பதிவு மறைக்கப்பட்டுள்ளது", "compose_form.spoiler.unmarked": "பதிவு மறைக்கப்படவில்லை", "confirmation_modal.cancel": "ரத்து", - "confirmations.block.block_and_report": "தடுத்துப் புகாரளி", "confirmations.block.confirm": "தடு", - "confirmations.block.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.logout.confirm": "வெளியேறு", "confirmations.logout.message": "நிச்சயமாக நீங்கள் வெளியேற விரும்புகிறீர்களா?", "confirmations.mute.confirm": "அமைதியாக்கு", - "confirmations.mute.explanation": "இந்தத் தேர்வு அவர்களின் பதிவுகளையும், அவர்களைக் குறிப்பிடும் பதிவுகளையும் மறைத்துவிடும். ஆனால், அவர்களால் உங்களைப் பின்தொடர்ந்து உங்கள் பதிவுகளைக் காண முடியும்.", - "confirmations.mute.message": "{name}-ஐ நிச்சயமாக நீங்கள் அமைதியாக்க விரும்புகிறீர்களா?", "confirmations.redraft.confirm": "பதிவை நீக்கி மறுவரைவு செய்", "confirmations.reply.confirm": "மறுமொழி", "confirmations.reply.message": "ஏற்கனவே ஒரு பதிவு எழுதப்பட்டுக்கொண்டிருக்கிறது. இப்பொழுது பதில் எழுத முனைந்தால் அது அழிக்கப்படும். பரவாயில்லையா?", @@ -211,7 +206,6 @@ "hashtag.column_settings.tag_mode.any": "இவற்றில் எவையேனும்", "hashtag.column_settings.tag_mode.none": "இவற்றில் ஏதுமில்லை", "hashtag.column_settings.tag_toggle": "இந்த நெடுவரிசையில் கூடுதல் சிட்டைகளைச் சேர்க்கவும்", - "home.column_settings.basic": "அடிப்படையானவை", "home.column_settings.show_reblogs": "பகிர்வுகளைக் காண்பி", "home.column_settings.show_replies": "மறுமொழிகளைக் காண்பி", "home.hide_announcements": "அறிவிப்புகளை மறை", @@ -265,7 +259,6 @@ "lists.subheading": "உங்கள் பட்டியல்கள்", "load_pending": "{count, plural,one {# புதியது}other {# புதியவை}}", "media_gallery.toggle_visible": "நிலைமாற்று தெரியும்", - "mute_modal.hide_notifications": "இந்த பயனரின் அறிவிப்புகளை மறைக்கவா?", "navigation_bar.blocks": "தடுக்கப்பட்ட பயனர்கள்", "navigation_bar.bookmarks": "அடையாளக்குறிகள்", "navigation_bar.community_timeline": "உள்ளூர் காலக்கெடு", @@ -293,8 +286,6 @@ "notifications.clear": "அறிவிப்புகளை அழிக்கவும்", "notifications.clear_confirmation": "உங்கள் எல்லா அறிவிப்புகளையும் நிரந்தரமாக அழிக்க விரும்புகிறீர்களா?", "notifications.column_settings.alert": "டெஸ்க்டாப் அறிவிப்புகள்", - "notifications.column_settings.filter_bar.advanced": "எல்லா வகைகளையும் காட்டு", - "notifications.column_settings.filter_bar.category": "விரைவு வடிகட்டி பட்டை", "notifications.column_settings.follow": "புதிய பின்பற்றுபவர்கள்:", "notifications.column_settings.follow_request": "புதிய பின்தொடர் கோரிக்கைகள்:", "notifications.column_settings.mention": "குறிப்பிடுகிறது:", diff --git a/app/javascript/mastodon/locales/tai.json b/app/javascript/mastodon/locales/tai.json index fe6b8fe6503782..825cfb93bdff25 100644 --- a/app/javascript/mastodon/locales/tai.json +++ b/app/javascript/mastodon/locales/tai.json @@ -20,7 +20,6 @@ "compose_form.spoiler.marked": "Î-tû luē-iông kíng-kò", "compose_form.spoiler.unmarked": "Tsing-ka luē-iông kíng-kò", "confirmations.delete.message": "Lí kám bueh thâi-tiāu tsi̍t-ē huah-siann?", - "confirmations.domain_block.confirm": "Hong-só tsíng-kò bāng-hi̍k", "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_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", "embed.instructions": "Embed this status on your website by copying the code below.", diff --git a/app/javascript/mastodon/locales/te.json b/app/javascript/mastodon/locales/te.json index 24a67247c03fce..284102c381bc6d 100644 --- a/app/javascript/mastodon/locales/te.json +++ b/app/javascript/mastodon/locales/te.json @@ -70,15 +70,12 @@ "compose_form.spoiler.unmarked": "పాఠ్యం దాచబడలేదు", "confirmation_modal.cancel": "రద్దు చెయ్యి", "confirmations.block.confirm": "బ్లాక్ చేయి", - "confirmations.block.message": "మీరు ఖచ్చితంగా {name}ని బ్లాక్ చేయాలనుకుంటున్నారా?", "confirmations.delete.confirm": "తొలగించు", "confirmations.delete.message": "మీరు ఖచ్చితంగా ఈ స్టేటస్ ని తొలగించాలనుకుంటున్నారా?", "confirmations.delete_list.confirm": "తొలగించు", "confirmations.delete_list.message": "మీరు ఖచ్చితంగా ఈ జాబితాను శాశ్వతంగా తొలగించాలనుకుంటున్నారా?", - "confirmations.domain_block.confirm": "మొత్తం డొమైన్ను దాచు", "confirmations.domain_block.message": "మీరు నిజంగా నిజంగా మొత్తం {domain} ని బ్లాక్ చేయాలనుకుంటున్నారా? చాలా సందర్భాలలో కొన్ని లక్ష్యంగా ఉన్న బ్లాక్స్ లేదా మ్యూట్స్ సరిపోతాయి మరియు ఉత్తమమైనవి. మీరు ఆ డొమైన్ నుండి కంటెంట్ను ఏ ప్రజా కాలక్రమాలలో లేదా మీ నోటిఫికేషన్లలో చూడలేరు. ఆ డొమైన్ నుండి మీ అనుచరులు తీసివేయబడతారు.", "confirmations.mute.confirm": "మ్యూట్ చేయి", - "confirmations.mute.message": "{name}ను మీరు ఖచ్చితంగా మ్యూట్ చేయాలనుకుంటున్నారా?", "confirmations.redraft.confirm": "తొలగించు & తిరగరాయు", "confirmations.reply.confirm": "ప్రత్యుత్తరమివ్వు", "confirmations.reply.message": "ఇప్పుడే ప్రత్యుత్తరం ఇస్తే మీరు ప్రస్తుతం వ్రాస్తున్న సందేశం తిరగరాయబడుతుంది. మీరు ఖచ్చితంగా కొనసాగించాలనుకుంటున్నారా?", @@ -127,7 +124,6 @@ "hashtag.column_settings.tag_mode.any": "వీటిలో ఏవైనా", "hashtag.column_settings.tag_mode.none": "ఇవేవీ కావు", "hashtag.column_settings.tag_toggle": "ఈ నిలువు వరుసలో మరికొన్ని ట్యాగులను చేర్చండి", - "home.column_settings.basic": "ప్రాథమిక", "home.column_settings.show_reblogs": "బూస్ట్ లను చూపించు", "home.column_settings.show_replies": "ప్రత్యుత్తరాలను చూపించు", "keyboard_shortcuts.back": "వెనక్కి తిరిగి వెళ్ళడానికి", @@ -174,7 +170,6 @@ "lists.search": "మీరు అనుసరించే వ్యక్తులలో శోధించండి", "lists.subheading": "మీ జాబితాలు", "media_gallery.toggle_visible": "దృశ్యమానతను టోగుల్ చేయండి", - "mute_modal.hide_notifications": "ఈ వినియోగదారు నుండి నోటిఫికేషన్లను దాచాలా?", "navigation_bar.blocks": "బ్లాక్ చేయబడిన వినియోగదారులు", "navigation_bar.community_timeline": "స్థానిక కాలక్రమం", "navigation_bar.compose": "కొత్త టూట్ను రాయండి", @@ -198,8 +193,6 @@ "notifications.clear": "ప్రకటనలను తుడిచివేయు", "notifications.clear_confirmation": "మీరు మీ అన్ని నోటిఫికేషన్లను శాశ్వతంగా తొలగించాలనుకుంటున్నారా?", "notifications.column_settings.alert": "డెస్క్టాప్ నోటిఫికేషన్లు", - "notifications.column_settings.filter_bar.advanced": "అన్ని విభాగాలను చూపించు", - "notifications.column_settings.filter_bar.category": "క్విక్ ఫిల్టర్ బార్", "notifications.column_settings.follow": "క్రొత్త అనుచరులు:", "notifications.column_settings.mention": "ప్రస్తావనలు:", "notifications.column_settings.poll": "ఎన్నిక ఫలితాలు:", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index 0865b18542dcae..ce3b4eaa256bc1 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -89,6 +89,14 @@ "announcement.announcement": "ประกาศ", "attachments_list.unprocessed": "(ยังไม่ได้ประมวลผล)", "audio.hide": "ซ่อนเสียง", + "block_modal.remote_users_caveat": "เราจะขอให้เซิร์ฟเวอร์ {domain} เคารพการตัดสินใจของคุณ อย่างไรก็ตาม ไม่รับประกันการปฏิบัติตามข้อกำหนดเนื่องจากเซิร์ฟเวอร์บางแห่งอาจจัดการการปิดกั้นแตกต่างกัน โพสต์สาธารณะอาจยังคงปรากฏแก่ผู้ใช้ที่ไม่ได้เข้าสู่ระบบ", + "block_modal.show_less": "แสดงน้อยลง", + "block_modal.show_more": "แสดงเพิ่มเติม", + "block_modal.they_cant_mention": "เขาไม่สามารถกล่าวถึงหรือติดตามคุณ", + "block_modal.they_cant_see_posts": "เขาไม่สามารถเห็นโพสต์ของคุณและคุณจะไม่เห็นโพสต์ของเขา", + "block_modal.they_will_know": "เขาสามารถเห็นว่ามีการปิดกั้นเขา", + "block_modal.title": "ปิดกั้นผู้ใช้?", + "block_modal.you_wont_see_mentions": "คุณจะไม่เห็นโพสต์ที่กล่าวถึงเขา", "boost_modal.combo": "คุณสามารถกด {combo} เพื่อข้ามสิ่งนี้ในครั้งถัดไป", "bundle_column_error.copy_stacktrace": "คัดลอกรายงานข้อผิดพลาด", "bundle_column_error.error.body": "ไม่สามารถแสดงผลหน้าที่ขอ ข้อผิดพลาดอาจเป็นเพราะข้อบกพร่องในโค้ดของเรา หรือปัญหาความเข้ากันได้ของเบราว์เซอร์", @@ -160,9 +168,7 @@ "compose_form.spoiler.unmarked": "เพิ่มคำเตือนเนื้อหา", "compose_form.spoiler_placeholder": "คำเตือนเนื้อหา (ไม่จำเป็น)", "confirmation_modal.cancel": "ยกเลิก", - "confirmations.block.block_and_report": "ปิดกั้นแล้วรายงาน", "confirmations.block.confirm": "ปิดกั้น", - "confirmations.block.message": "คุณแน่ใจหรือไม่ว่าต้องการปิดกั้น {name}?", "confirmations.cancel_follow_request.confirm": "ถอนคำขอ", "confirmations.cancel_follow_request.message": "คุณแน่ใจหรือไม่ว่าต้องการถอนคำขอเพื่อติดตาม {name} ของคุณ?", "confirmations.delete.confirm": "ลบ", @@ -171,15 +177,13 @@ "confirmations.delete_list.message": "คุณแน่ใจหรือไม่ว่าต้องการลบรายการนี้อย่างถาวร?", "confirmations.discard_edit_media.confirm": "ละทิ้ง", "confirmations.discard_edit_media.message": "คุณมีการเปลี่ยนแปลงคำอธิบายหรือตัวอย่างสื่อที่ยังไม่ได้บันทึก ละทิ้งการเปลี่ยนแปลงเหล่านั้นต่อไป?", - "confirmations.domain_block.confirm": "ปิดกั้นทั้งโดเมน", + "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.message": "คุณแน่ใจหรือไม่ว่าต้องการซ่อน {name}?", "confirmations.redraft.confirm": "ลบแล้วร่างใหม่", "confirmations.redraft.message": "คุณแน่ใจหรือไม่ว่าต้องการลบโพสต์นี้แล้วร่างโพสต์ใหม่? รายการโปรดและการดันจะสูญหาย และการตอบกลับโพสต์ดั้งเดิมจะไม่มีความเกี่ยวพัน", "confirmations.reply.confirm": "ตอบกลับ", @@ -205,6 +209,27 @@ "dismissable_banner.explore_statuses": "นี่คือโพสต์จากทั่วทั้งเว็บสังคมที่กำลังได้รับความสนใจวันนี้ โพสต์ที่ใหม่กว่าที่มีการดันและรายการโปรดมากกว่าจะได้รับการจัดอันดับที่สูงกว่า", "dismissable_banner.explore_tags": "นี่คือแฮชแท็กที่กำลังได้รับความสนใจในเว็บสังคมวันนี้ แฮชแท็กที่มีการใช้โดยผู้คนต่าง ๆ มากกว่าจะได้รับการจัดอันดับที่สูงกว่า", "dismissable_banner.public_timeline": "นี่คือโพสต์สาธารณะล่าสุดจากผู้คนในเว็บสังคมที่ผู้คนใน {domain} ติดตาม", + "domain_block_modal.block": "ปิดกั้นเซิร์ฟเวอร์", + "domain_block_modal.block_account_instead": "ปิดกั้น @{name} แทน", + "domain_block_modal.they_can_interact_with_old_posts": "ผู้คนจากเซิร์ฟเวอร์นี้สามารถโต้ตอบกับโพสต์เก่า ๆ ของคุณ", + "domain_block_modal.they_cant_follow": "ไม่มีใครจากเซิร์ฟเวอร์นี้สามารถติดตามคุณ", + "domain_block_modal.they_wont_know": "เขาจะไม่ทราบว่ามีการปิดกั้นเขา", + "domain_block_modal.title": "ปิดกั้นโดเมน?", + "domain_block_modal.you_will_lose_followers": "จะเอาผู้ติดตามทั้งหมดของคุณจากเซิร์ฟเวอร์นี้ออก", + "domain_block_modal.you_wont_see_posts": "คุณจะไม่เห็นโพสต์หรือการแจ้งเตือนจากผู้ใช้ในเซิร์ฟเวอร์นี้", + "domain_pill.activitypub_lets_connect": "โปรโตคอลช่วยให้คุณเชื่อมต่อและโต้ตอบกับผู้คนไม่ใช่แค่ใน Mastodon แต่ทั่วทั้งแอปสังคมต่าง ๆ เช่นกัน", + "domain_pill.activitypub_like_language": "ActivityPub เป็นเหมือนภาษาที่ Mastodon พูดกับเครือข่ายสังคมอื่น ๆ", + "domain_pill.server": "เซิร์ฟเวอร์", + "domain_pill.their_handle": "นามของเขา:", + "domain_pill.their_server": "บ้านดิจิทัลของเขา ที่ซึ่งโพสต์ทั้งหมดของเขาอาศัยอยู่", + "domain_pill.their_username": "ตัวระบุที่ไม่ซ้ำกันของเขาในเซิร์ฟเวอร์ของเขา เป็นไปได้ที่จะค้นหาผู้ใช้ที่มีชื่อผู้ใช้เดียวกันในเซิร์ฟเวอร์ที่แตกต่างกัน", + "domain_pill.username": "ชื่อผู้ใช้", + "domain_pill.whats_in_a_handle": "ในนามมีอะไรอยู่?", + "domain_pill.who_they_are": "เนื่องจากนามบอกว่าใครสักคนคือใครและเขาอยู่ที่ไหน คุณสามารถโต้ตอบกับผู้คนทั่วทั้งเว็บสังคมของ ", + "domain_pill.who_you_are": "เนื่องจากนามของคุณบอกว่าคุณคือใครและคุณอยู่ที่ไหน ผู้คนสามารถโต้ตอบกับคุณทั่วทั้งเว็บสังคมของ ", + "domain_pill.your_handle": "นามของคุณ:", + "domain_pill.your_server": "บ้านดิจิทัลของคุณ ที่ซึ่งโพสต์ทั้งหมดของคุณอาศัยอยู่ ไม่ชอบเซิร์ฟเวอร์นี้? ถ่ายโอนเซิร์ฟเวอร์เมื่อใดก็ได้และนำผู้ติดตามของคุณไปด้วยเช่นกัน", + "domain_pill.your_username": "ตัวระบุที่ไม่ซ้ำกันของคุณในเซิร์ฟเวอร์นี้ เป็นไปได้ที่จะค้นหาผู้ใช้ที่มีชื่อผู้ใช้เดียวกันในเซิร์ฟเวอร์ที่แตกต่างกัน", "embed.instructions": "ฝังโพสต์นี้ในเว็บไซต์ของคุณโดยคัดลอกโค้ดด้านล่าง", "embed.preview": "นี่คือลักษณะของการฝังที่จะปรากฏ:", "emoji_button.activity": "กิจกรรม", @@ -241,6 +266,7 @@ "empty_column.list": "ยังไม่มีสิ่งใดในรายการนี้ เมื่อสมาชิกของรายการนี้โพสต์โพสต์ใหม่ โพสต์จะปรากฏที่นี่", "empty_column.lists": "คุณยังไม่มีรายการใด ๆ เมื่อคุณสร้างรายการ รายการจะปรากฏที่นี่", "empty_column.mutes": "คุณยังไม่ได้ซ่อนผู้ใช้ใด ๆ", + "empty_column.notification_requests": "โล่งทั้งหมด! ไม่มีสิ่งใดที่นี่ เมื่อคุณได้รับการแจ้งเตือนใหม่ การแจ้งเตือนจะปรากฏที่นี่ตามการตั้งค่าของคุณ", "empty_column.notifications": "คุณยังไม่มีการแจ้งเตือนใด ๆ เมื่อผู้คนอื่น ๆ โต้ตอบกับคุณ คุณจะเห็นการแจ้งเตือนที่นี่", "empty_column.public": "ไม่มีสิ่งใดที่นี่! เขียนบางอย่างเป็นสาธารณะ หรือติดตามผู้ใช้จากเซิร์ฟเวอร์อื่น ๆ ด้วยตนเองเพื่อเติมเส้นเวลาให้เต็ม", "error.unexpected_crash.explanation": "เนื่องจากข้อบกพร่องในโค้ดของเราหรือปัญหาความเข้ากันได้ของเบราว์เซอร์ จึงไม่สามารถแสดงหน้านี้ได้อย่างถูกต้อง", @@ -271,6 +297,8 @@ "filter_modal.select_filter.subtitle": "ใช้หมวดหมู่ที่มีอยู่หรือสร้างหมวดหมู่ใหม่", "filter_modal.select_filter.title": "กรองโพสต์นี้", "filter_modal.title.status": "กรองโพสต์", + "filtered_notifications_banner.pending_requests": "การแจ้งเตือนจาก {count, plural, =0 {ไม่มีใคร} other {# คน}} ที่คุณอาจรู้จัก", + "filtered_notifications_banner.title": "การแจ้งเตือนที่กรองอยู่", "firehose.all": "ทั้งหมด", "firehose.local": "เซิร์ฟเวอร์นี้", "firehose.remote": "เซิร์ฟเวอร์อื่น ๆ", @@ -314,7 +342,6 @@ "hashtag.follow": "ติดตามแฮชแท็ก", "hashtag.unfollow": "เลิกติดตามแฮชแท็ก", "hashtags.and_other": "…และอีก {count, plural, other {# เพิ่มเติม}}", - "home.column_settings.basic": "พื้นฐาน", "home.column_settings.show_reblogs": "แสดงการดัน", "home.column_settings.show_replies": "แสดงการตอบกลับ", "home.hide_announcements": "ซ่อนประกาศ", @@ -400,9 +427,15 @@ "loading_indicator.label": "กำลังโหลด…", "media_gallery.toggle_visible": "{number, plural, other {ซ่อนภาพ}}", "moved_to_account_banner.text": "มีการปิดใช้งานบัญชีของคุณ {disabledAccount} ในปัจจุบันเนื่องจากคุณได้ย้ายไปยัง {movedToAccount}", - "mute_modal.duration": "ระยะเวลา", - "mute_modal.hide_notifications": "ซ่อนการแจ้งเตือนจากผู้ใช้นี้?", - "mute_modal.indefinite": "ไม่มีกำหนด", + "mute_modal.hide_from_notifications": "ซ่อนจากการแจ้งเตือน", + "mute_modal.hide_options": "ซ่อนตัวเลือก", + "mute_modal.indefinite": "จนกว่าฉันจะเลิกซ่อนเขา", + "mute_modal.show_options": "แสดงตัวเลือก", + "mute_modal.they_can_mention_and_follow": "เขาสามารถกล่าวถึงและติดตามคุณ แต่คุณจะไม่เห็นเขา", + "mute_modal.they_wont_know": "เขาจะไม่ทราบว่ามีการซ่อนเขา", + "mute_modal.title": "ซ่อนผู้ใช้?", + "mute_modal.you_wont_see_mentions": "คุณจะไม่เห็นโพสต์ที่กล่าวถึงเขา", + "mute_modal.you_wont_see_posts": "เขายังคงสามารถเห็นโพสต์ของคุณ แต่คุณจะไม่เห็นโพสต์ของเขา", "navigation_bar.about": "เกี่ยวกับ", "navigation_bar.advanced_interface": "เปิดในส่วนติดต่อเว็บขั้นสูง", "navigation_bar.blocks": "ผู้ใช้ที่ปิดกั้นอยู่", @@ -440,15 +473,16 @@ "notification.reblog": "{name} ได้ดันโพสต์ของคุณ", "notification.status": "{name} เพิ่งโพสต์", "notification.update": "{name} ได้แก้ไขโพสต์", + "notification_requests.accept": "ยอมรับ", + "notification_requests.dismiss": "ปิด", + "notification_requests.notifications_from": "การแจ้งเตือนจาก {name}", + "notification_requests.title": "การแจ้งเตือนที่กรองอยู่", "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": "การกล่าวถึง:", @@ -474,6 +508,15 @@ "notifications.permission_denied": "การแจ้งเตือนบนเดสก์ท็อปไม่พร้อมใช้งานเนื่องจากมีการปฏิเสธคำขอสิทธิอนุญาตเบราว์เซอร์ก่อนหน้านี้", "notifications.permission_denied_alert": "ไม่สามารถเปิดใช้งานการแจ้งเตือนบนเดสก์ท็อป เนื่องจากมีการปฏิเสธสิทธิอนุญาตเบราว์เซอร์ก่อนหน้านี้", "notifications.permission_required": "การแจ้งเตือนบนเดสก์ท็อปไม่พร้อมใช้งานเนื่องจากไม่ได้ให้สิทธิอนุญาตที่จำเป็น", + "notifications.policy.filter_new_accounts.hint": "สร้างขึ้นภายใน {days, plural, other {# วัน}}ที่ผ่านมา", + "notifications.policy.filter_new_accounts_title": "บัญชีใหม่", + "notifications.policy.filter_not_followers_hint": "รวมถึงผู้คนที่ได้ติดตามคุณน้อยกว่า {days, plural, other {# วัน}}", + "notifications.policy.filter_not_followers_title": "ผู้คนที่ไม่ได้ติดตามคุณ", + "notifications.policy.filter_not_following_hint": "จนกว่าคุณจะอนุมัติเขาด้วยตนเอง", + "notifications.policy.filter_not_following_title": "ผู้คนที่คุณไม่ได้ติดตาม", + "notifications.policy.filter_private_mentions_hint": "กรองไว้เว้นแต่การกล่าวถึงแบบส่วนตัวอยู่ในการตอบกลับการกล่าวถึงของคุณเองหรือหากคุณติดตามผู้ส่ง", + "notifications.policy.filter_private_mentions_title": "การกล่าวถึงแบบส่วนตัวที่ไม่พึงประสงค์", + "notifications.policy.title": "กรองการแจ้งเตือนจาก…", "notifications_permission_banner.enable": "เปิดใช้งานการแจ้งเตือนบนเดสก์ท็อป", "notifications_permission_banner.how_to_control": "เพื่อรับการแจ้งเตือนเมื่อ Mastodon ไม่ได้เปิด เปิดใช้งานการแจ้งเตือนบนเดสก์ท็อป คุณสามารถควบคุมชนิดของการโต้ตอบที่สร้างการแจ้งเตือนบนเดสก์ท็อปได้อย่างแม่นยำผ่านปุ่ม {icon} ด้านบนเมื่อเปิดใช้งานการแจ้งเตือน", "notifications_permission_banner.title": "ไม่พลาดสิ่งใด", @@ -650,10 +693,11 @@ "status.direct": "กล่าวถึง @{name} แบบส่วนตัว", "status.direct_indicator": "การกล่าวถึงแบบส่วนตัว", "status.edit": "แก้ไข", - "status.edited": "แก้ไขเมื่อ {date}", + "status.edited": "แก้ไขล่าสุดเมื่อ {date}", "status.edited_x_times": "แก้ไข {count, plural, other {{count} ครั้ง}}", "status.embed": "ฝัง", "status.favourite": "ชื่นชอบ", + "status.favourites": "{count, plural, other {รายการโปรด}}", "status.filter": "กรองโพสต์นี้", "status.filtered": "กรองอยู่", "status.hide": "ซ่อนโพสต์", @@ -674,6 +718,7 @@ "status.reblog": "ดัน", "status.reblog_private": "ดันด้วยการมองเห็นดั้งเดิม", "status.reblogged_by": "{name} ได้ดัน", + "status.reblogs": "{count, plural, other {การดัน}}", "status.reblogs.empty": "ยังไม่มีใครดันโพสต์นี้ เมื่อใครสักคนดัน เขาจะปรากฏที่นี่", "status.redraft": "ลบแล้วร่างใหม่", "status.remove_bookmark": "เอาที่คั่นหน้าออก", diff --git a/app/javascript/mastodon/locales/tok.json b/app/javascript/mastodon/locales/tok.json index 64c3f98db7f62f..c3f184e15d4917 100644 --- a/app/javascript/mastodon/locales/tok.json +++ b/app/javascript/mastodon/locales/tok.json @@ -119,9 +119,7 @@ "compose_form.save_changes": "o sin e ni", "compose_form.spoiler.marked": "o weka e toki pi ijo ike ken", "confirmation_modal.cancel": "o pini", - "confirmations.block.block_and_report": "o weka e jan o toki e jan tawa lawa", "confirmations.block.confirm": "o weka", - "confirmations.block.message": "sina o wile ala wile weka e jan {name}?", "confirmations.cancel_follow_request.confirm": "o weka e wile sina", "confirmations.cancel_follow_request.message": "sina awen ala awen wile weka e wile kute sina lon {name}?", "confirmations.delete.confirm": "o weka", @@ -130,15 +128,12 @@ "confirmations.delete_list.message": "sina wile ala wile weka e lipu ni?", "confirmations.discard_edit_media.confirm": "o weka", "confirmations.discard_edit_media.message": "toki sitelen anu lukin lili sitelen la ante pi awen ala li lon. sina wile weka e ante ni?", - "confirmations.domain_block.confirm": "o weka.", "confirmations.domain_block.message": "sina wile ala a wile a len e ma {domain} ꞏ ken suli la len jan taso li pona ꞏ len pi ma ni la sina ken ala lukin e ijo pi ma ni lon lipu toki ale anu lukin toki ꞏ len ni la jan kute sina pi ma ni li weka", "confirmations.edit.confirm": "o ante", "confirmations.edit.message": "sina ante e toki sina la toki pali sina li weka. sina wile ala wile e ni?", "confirmations.logout.confirm": "o weka", "confirmations.logout.message": "sina wile ala wile weka", "confirmations.mute.confirm": "o len", - "confirmations.mute.explanation": "ni la sina lukin ala e toki ona e toki kepeken nimi ona. taso la ona li ken lukin e toki sina li ken kute e ona.", - "confirmations.mute.message": "sina awen ala awen wile kute ala e {name}?", "confirmations.redraft.confirm": "o weka o pali sin e toki", "confirmations.redraft.message": "pali sin e toki ni la sina wile ala wile weka e ona? sina ni la suli pi toki ni en wawa pi toki ni li weka. kin la toki lon toki ni li jo e mama ala.", "confirmations.reply.confirm": "toki lon toki ni", @@ -266,8 +261,6 @@ "load_pending": "{count, plural, other {ijo sin #}}", "loading_indicator.label": "ni li kama…", "media_gallery.toggle_visible": "{number, plural, other {o len e sitelen}}", - "mute_modal.duration": "tenpo", - "mute_modal.indefinite": "tenpo ale", "navigation_bar.about": "sona", "navigation_bar.blocks": "jan weka", "navigation_bar.compose": "o pali e toki sin", @@ -339,7 +332,6 @@ "status.cancel_reblog_private": "o pini e pana", "status.delete": "o weka", "status.edit": "o ante", - "status.edited": "ni li ante lon {date}", "status.embed": "ni o lon insa pi lipu ante", "status.favourite": "o suli", "status.hide": "o len", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index 02c9159be5503d..bf88e53c948110 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -89,6 +89,14 @@ "announcement.announcement": "Duyuru", "attachments_list.unprocessed": "(işlenmemiş)", "audio.hide": "Sesi gizle", + "block_modal.remote_users_caveat": "{domain} sunucusundan kararınıza saygı duymasını isteyeceğiz. Ancak, Uymaları garanti değildir çünkü bazı sunucular engellemeyi farklı şekilde yapıyorlar. Herkese açık gönderiler giriş yapmamış kullanıcılara görüntülenmeye devam edebilir.", + "block_modal.show_less": "Daha az göster", + "block_modal.show_more": "Daha fazla göster", + "block_modal.they_cant_mention": "Sizden bahsedemez veya sizi takip edemezler.", + "block_modal.they_cant_see_posts": "Onlar sizin gönderilerinizi görmeye devam edebilir, ancak siz onlarınkini göremezsiniz.", + "block_modal.they_will_know": "Engellendiklerini görebiliyorlar.", + "block_modal.title": "Kullanıcıyı engelle?", + "block_modal.you_wont_see_mentions": "Onlardan bahseden gönderiler göremezsiniz.", "boost_modal.combo": "Bir daha ki sefere {combo} tuşuna basabilirsin", "bundle_column_error.copy_stacktrace": "Hata raporunu kopyala", "bundle_column_error.error.body": "İstenen sayfa gösterilemiyor. Bu durum kodumuzdaki bir hatadan veya tarayıcı uyum sorunundan kaynaklanıyor olabilir.", @@ -160,9 +168,7 @@ "compose_form.spoiler.unmarked": "Metin gizli değil", "compose_form.spoiler_placeholder": "İçerik uyarısı (isteğe bağlı)", "confirmation_modal.cancel": "İptal", - "confirmations.block.block_and_report": "Engelle ve Bildir", "confirmations.block.confirm": "Engelle", - "confirmations.block.message": "{name} adlı kullanıcıyı engellemek istediğinden emin misin?", "confirmations.cancel_follow_request.confirm": "İsteği geri çek", "confirmations.cancel_follow_request.message": "{name} kişisini takip etme isteğini geri çekmek istediğinden emin misin?", "confirmations.delete.confirm": "Sil", @@ -171,15 +177,13 @@ "confirmations.delete_list.message": "Bu listeyi kalıcı olarak silmek istediğinden emin misin?", "confirmations.discard_edit_media.confirm": "Vazgeç", "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.confirm": "Sunucuyu 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", - "confirmations.mute.explanation": "Bu, onlardan gelen ve bahseden gönderileri gizler. Ancak yine de gönderilerini görmelerine ve seni takip etmelerine izin verilir.", - "confirmations.mute.message": "{name} kullanıcısını sessize almak istediğinden emin misin?", "confirmations.redraft.confirm": "Sil Düzenle ve yeniden paylaş", "confirmations.redraft.message": "Bu gönderiyi silip taslak haline getirmek istediğinize emin misiniz? Mevcut favoriler ve boostlar silinecek ve gönderiye verilen yanıtlar başıboş kalacak.", "confirmations.reply.confirm": "Yanıtla", @@ -205,6 +209,27 @@ "dismissable_banner.explore_statuses": "Bunlar, sosyal ağ genelinde bugün ilgi gören gönderiler. Daha çok yinelenen ve favorilenen yeni gönderiler daha üst sıralarda yer alır.", "dismissable_banner.explore_tags": "Bu etiketler, merkeziyetsiz ağda bulunan bu ve diğer sunuculardaki insanların şimdilerde ilgisini çekiyor.", "dismissable_banner.public_timeline": "Bunlar, {domain} üzerindeki insanların, sosyal ağ da takip ettiği insanlarca gönderilen en son ve herkese açık gönderilerdir.", + "domain_block_modal.block": "Sunucuyu engelle", + "domain_block_modal.block_account_instead": "Bunun yerine {name} hesabını engelle", + "domain_block_modal.they_can_interact_with_old_posts": "Bu sunucudan kişiler eski gönderilerinizle etkileşebilirler.", + "domain_block_modal.they_cant_follow": "Bu sunucudan hiç kimse sizi takip edemez.", + "domain_block_modal.they_wont_know": "Engellendiklerini bilmeyecekler.", + "domain_block_modal.title": "Alan adını engelle?", + "domain_block_modal.you_will_lose_followers": "Bu sunucudaki tüm takipçileriniz kaldırılacaktır.", + "domain_block_modal.you_wont_see_posts": "Bu sunucudaki kullanıcılardan gelen gönderileri veya bildirimleri göremezsiniz.", + "domain_pill.activitypub_lets_connect": "Sadece Mastodon üzerindeki değil, diğer sosyal uygulamalardaki kişilerle de bağlantı kurmanıza ve etkileşmenize olanak sağlar.", + "domain_pill.activitypub_like_language": "ActivityPub, Mastodon'un diğer sosyal ağlarla konuşmak için kullandığı dil gibidir.", + "domain_pill.server": "Sunucu", + "domain_pill.their_handle": "Tanıtıcıları:", + "domain_pill.their_server": "Dijital evleri, tüm gönderilerinin yaşadığı yerdir.", + "domain_pill.their_username": "Sunucularındaki tekil tanımlayıcıları. Farklı sunucularda aynı kullanıcı adına sahip kullanıcıları bulmak mümkündür.", + "domain_pill.username": "Kullanıcı adı", + "domain_pill.whats_in_a_handle": "Tanıtıcı nedir?", + "domain_pill.who_they_are": "Tanıtıcılar bir kişinin kim olduğunu ve nerede olduğunu söylediği için, sosyal ağındaki insanlarla etkileşime geçebilirsiniz.", + "domain_pill.who_you_are": "Tanıtıcınız kim olduğunuzu ve nerede olduğunuzu söylediği için, sosyal ağındaki insanlar sizinle etkileşime geçebilir.", + "domain_pill.your_handle": "Tanıtıcınız:", + "domain_pill.your_server": "Dijital anasayfanız, tüm gönderilerinizin yaşadığı yerdir. Bunu beğenmediniz mi? İstediğiniz zaman sunucularınızı değiştirin ve takipçilerinizi de getirin.", + "domain_pill.your_username": "Bu sunucudaki tekil tanımlayıcınız. Farklı sunucularda aynı kullanıcı adına sahip kullanıcıları bulmak mümkündür.", "embed.instructions": "Aşağıdaki kodu kopyalayarak bu durumu sitenize gömün.", "embed.preview": "İşte nasıl görüneceği:", "emoji_button.activity": "Aktivite", @@ -241,6 +266,7 @@ "empty_column.list": "Henüz bu listede bir şey yok. Bu listenin üyeleri bir şey paylaşığında burada gözükecek.", "empty_column.lists": "Henüz listen yok. Liste oluşturduğunda burada görünür.", "empty_column.mutes": "Henüz bir kullanıcıyı sessize almadınız.", + "empty_column.notification_requests": "Hepsi tamam! Burada yeni bir şey yok. Yeni bildirim aldığınızda, ayarlarınıza göre burada görüntülenecekler.", "empty_column.notifications": "Henüz bildiriminiz yok. Sohbete başlamak için başkalarıyla etkileşim kurun.", "empty_column.public": "Burada hiçbir şey yok! Herkese açık bir şeyler yazın veya burayı doldurmak için diğer sunuculardaki kullanıcıları takip edin", "error.unexpected_crash.explanation": "Bizim kodumuzdaki bir hatadan ya da tarayıcı uyumluluk sorunundan dolayı, bu sayfa düzgün görüntülenemedi.", @@ -271,6 +297,8 @@ "filter_modal.select_filter.subtitle": "Mevcut bir kategoriyi kullan veya yeni bir tane oluştur", "filter_modal.select_filter.title": "Bu gönderiyi süzgeçle", "filter_modal.title.status": "Bir gönderi süzgeçle", + "filtered_notifications_banner.pending_requests": "Bildiğiniz {count, plural, =0 {hiç kimseden} one {bir kişiden} other {# kişiden}} bildirim", + "filtered_notifications_banner.title": "Filtrelenmiş bildirimler", "firehose.all": "Tümü", "firehose.local": "Bu sunucu", "firehose.remote": "Diğer sunucular", @@ -314,7 +342,6 @@ "hashtag.follow": "Etiketi takip et", "hashtag.unfollow": "Etiketi takibi bırak", "hashtags.and_other": "…ve {count, plural, one {}other {# fazlası}}", - "home.column_settings.basic": "Temel", "home.column_settings.show_reblogs": "Yeniden paylaşımları göster", "home.column_settings.show_replies": "Yanıtları göster", "home.hide_announcements": "Duyuruları gizle", @@ -357,7 +384,7 @@ "keyboard_shortcuts.hotkey": "Kısayol tuşu", "keyboard_shortcuts.legend": "Bu efsaneyi görüntülemek için", "keyboard_shortcuts.local": "Yerel akışı aç", - "keyboard_shortcuts.mention": "Yazandan bahsetmek için", + "keyboard_shortcuts.mention": "Yazana değinmek için", "keyboard_shortcuts.muted": "Sessize alınmış kullanıcı listesini açmak için", "keyboard_shortcuts.my_profile": "Profilinizi açmak için", "keyboard_shortcuts.notifications": "Bildirimler sütununu açmak için", @@ -400,9 +427,15 @@ "loading_indicator.label": "Yükleniyor…", "media_gallery.toggle_visible": "{number, plural, one {Resmi} other {Resimleri}} gizle", "moved_to_account_banner.text": "{disabledAccount} hesabınız, {movedToAccount} hesabına taşıdığınız için şu an devre dışı.", - "mute_modal.duration": "Süre", - "mute_modal.hide_notifications": "Bu kullanıcıdan bildirimler gizlensin mı?", - "mute_modal.indefinite": "Belirsiz", + "mute_modal.hide_from_notifications": "Bildirimlerde gizle", + "mute_modal.hide_options": "Seçenekleri gizle", + "mute_modal.indefinite": "Ben sessizliklerini kaldırana kadar", + "mute_modal.show_options": "Seçenekleri göster", + "mute_modal.they_can_mention_and_follow": "Sizden bahsedebilir ve sizi takip edebilirler, ancak siz onları göremezsiniz.", + "mute_modal.they_wont_know": "Susturulduklarını bilmeyecekler.", + "mute_modal.title": "Kullanıcıyı sustur?", + "mute_modal.you_wont_see_mentions": "Onlardan bahseden gönderiler göremezsiniz.", + "mute_modal.you_wont_see_posts": "Onlar sizin gönderilerinizi görmeye devam edebilir, ancak siz onlarınkini göremezsiniz.", "navigation_bar.about": "Hakkında", "navigation_bar.advanced_interface": "Gelişmiş web arayüzünde aç", "navigation_bar.blocks": "Engellenen kullanıcılar", @@ -434,21 +467,22 @@ "notification.favourite": "{name} gönderinizi beğendi", "notification.follow": "{name} seni takip etti", "notification.follow_request": "{name} size takip isteği gönderdi", - "notification.mention": "{name} senden bahsetti", + "notification.mention": "{name} sana değindi", "notification.own_poll": "Anketiniz sona erdi", "notification.poll": "Oy verdiğiniz bir anket sona erdi", "notification.reblog": "{name} gönderini yeniden paylaştı", "notification.status": "{name} az önce gönderdi", "notification.update": "{name} bir gönderiyi düzenledi", + "notification_requests.accept": "Onayla", + "notification_requests.dismiss": "Yoksay", + "notification_requests.notifications_from": "{name} bildirimleri", + "notification_requests.title": "Filtrelenmiş bildirimler", "notifications.clear": "Bildirimleri temizle", "notifications.clear_confirmation": "Tüm bildirimlerinizi kalıcı olarak temizlemek ister misiniz?", "notifications.column_settings.admin.report": "Yeni bildirimler:", "notifications.column_settings.admin.sign_up": "Yeni kayıtlar:", "notifications.column_settings.alert": "Masaüstü bildirimleri", "notifications.column_settings.favourite": "Favorilerin:", - "notifications.column_settings.filter_bar.advanced": "Tüm kategorileri görüntüle", - "notifications.column_settings.filter_bar.category": "Hızlı süzgeç çubuğu", - "notifications.column_settings.filter_bar.show_bar": "Süzgeç çubuğunu göster", "notifications.column_settings.follow": "Yeni takipçiler:", "notifications.column_settings.follow_request": "Yeni takip istekleri:", "notifications.column_settings.mention": "Değinmeler:", @@ -474,6 +508,15 @@ "notifications.permission_denied": "Daha önce reddedilen tarayıcı izinleri isteği nedeniyle masaüstü bildirimleri kullanılamıyor", "notifications.permission_denied_alert": "Tarayıcı izni daha önce reddedildiğinden, masaüstü bildirimleri etkinleştirilemez", "notifications.permission_required": "Masaüstü bildirimleri, gereksinim duyulan izin verilmediği için mevcut değil.", + "notifications.policy.filter_new_accounts.hint": "Son {days, plural, one {bir gün} other {# gün}}de oluşturuldu", + "notifications.policy.filter_new_accounts_title": "Yeni hesaplar", + "notifications.policy.filter_not_followers_hint": "Sizi {days, plural, one {bir gün} other {# gün}}den azdır takip eden kişileri de içeriyor", + "notifications.policy.filter_not_followers_title": "Seni takip etmeyen kullanıcılar", + "notifications.policy.filter_not_following_hint": "Onları manuel olarak onaylayana kadar", + "notifications.policy.filter_not_following_title": "Takip etmediğin kullanıcılar", + "notifications.policy.filter_private_mentions_hint": "Kendi değinmenize yanıt veya takip ettiğiniz kullanıcıdan değilse filtrelenir", + "notifications.policy.filter_private_mentions_title": "İstenmeyen özel değinmeler", + "notifications.policy.title": "Şundan bildirimleri filtrele…", "notifications_permission_banner.enable": "Masaüstü bildirimlerini etkinleştir", "notifications_permission_banner.how_to_control": "Mastodon açık olmadığında bildirim almak için masaüstü bildirimlerini etkinleştirin. Etkinleştirildikten sonra yukarıdaki {icon} düğmesini kullanarak hangi etkileşim türlerinin masaüstü bildirimleri oluşturduğunu tam olarak kontrol edebilirsiniz.", "notifications_permission_banner.title": "Hiçbir şeyi kaçırmayın", @@ -650,10 +693,11 @@ "status.direct": "@{name} kullanıcısına özelden değin", "status.direct_indicator": "Özel değinme", "status.edit": "Düzenle", - "status.edited": "{date} tarihinde düzenlenmiş", + "status.edited": "Son düzenleme {date}", "status.edited_x_times": "{count, plural, one {{count} kez} other {{count} kez}} düzenlendi", "status.embed": "Gömülü", "status.favourite": "Favori", + "status.favourites": "{count, plural, one {beğeni} other {beğeni}}", "status.filter": "Bu gönderiyi süzgeçle", "status.filtered": "Süzgeçlenmiş", "status.hide": "Gönderiyi gizle", @@ -674,6 +718,7 @@ "status.reblog": "Yeniden paylaş", "status.reblog_private": "Özgün görünürlük ile yeniden paylaş", "status.reblogged_by": "{name} yeniden paylaştı", + "status.reblogs": "{count, plural, one {yeniden paylaşım} other {yeniden paylaşım}}", "status.reblogs.empty": "Henüz hiç kimse bu Gönderiyi Yeniden Paylaşmadı. Herhangi bir kullanıcı yeniden paylaştığında burada görüntülenecek.", "status.redraft": "Sil,Düzenle ve Yeniden paylaş", "status.remove_bookmark": "Yer işaretini kaldır", diff --git a/app/javascript/mastodon/locales/tt.json b/app/javascript/mastodon/locales/tt.json index 17de9884e79675..82d45205c2143f 100644 --- a/app/javascript/mastodon/locales/tt.json +++ b/app/javascript/mastodon/locales/tt.json @@ -134,9 +134,7 @@ "compose_form.spoiler.marked": "Text is hidden behind warning", "compose_form.spoiler.unmarked": "Text is not hidden", "confirmation_modal.cancel": "Баш тарту", - "confirmations.block.block_and_report": "Блоклау һәм шикаять итү", "confirmations.block.confirm": "Блоклау", - "confirmations.block.message": "Сез {name} кулланучыны блокларга телисезме?", "confirmations.cancel_follow_request.confirm": "Сорауны баш тарту", "confirmations.cancel_follow_request.message": "Сез абонемент соравыгызны кире кайтарырга телисез {name}?", "confirmations.delete.confirm": "Бетерү", @@ -145,14 +143,11 @@ "confirmations.delete_list.message": "Сез бу исемлекне мәңгегә бетерергә телисезме?", "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": "Үзгәртү", "confirmations.logout.confirm": "Чыгу", "confirmations.logout.message": "Сез чыгарга телисезме?", "confirmations.mute.confirm": "Тавышсыз", - "confirmations.mute.explanation": "Бу алардан ураза тотуны һәм алар турында искә алуны яшерәчәк, ләкин бу аларга уразаларыгызны күрергә һәм язылырга мөмкинлек бирәчәк.", - "confirmations.mute.message": "Сез тавышны сүндерергә телисез {name}?", "confirmations.redraft.confirm": "Бетерү & эшкәртү", "confirmations.reply.confirm": "Җавап бирү", "confirmations.reply.message": "Тһеавап хәзер сез ясаган хәбәрне яңадан язуга китерәчәк. Сез дәвам итәсегез киләме?", @@ -236,7 +231,6 @@ "hashtag.column_settings.tag_toggle": "Include additional tags in this column", "hashtag.follow": "Хэштегка язылу", "hashtag.unfollow": "Хэштегка язылу юк", - "home.column_settings.basic": "Төп", "home.column_settings.show_reblogs": "Табышмаклау", "home.column_settings.show_replies": "Җаваплар күрсәтү", "home.hide_announcements": "Игъланнарны яшерү", @@ -302,8 +296,6 @@ "lists.replies_policy.none": "Һичкем", "lists.subheading": "Исемлегегегезләр", "load_pending": "{count, plural, one {# яңа элемент} other {# яңа элемент}}", - "mute_modal.duration": "Дәвамлык", - "mute_modal.indefinite": "Билгесез", "navigation_bar.about": "Проект турында", "navigation_bar.blocks": "Блокланган кулланучылар", "navigation_bar.bookmarks": "Кыстыргычлар", @@ -426,7 +418,6 @@ "status.delete": "Бетерү", "status.direct_indicator": "Хосусый искә алу", "status.edit": "Үзгәртү", - "status.edited": "{date} көнне төзәтте", "status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}", "status.embed": "Веб-биткә кертү", "status.filtered": "Сөзелгән", diff --git a/app/javascript/mastodon/locales/ug.json b/app/javascript/mastodon/locales/ug.json index 9dc3b5c1f985cf..4120d4483b264c 100644 --- a/app/javascript/mastodon/locales/ug.json +++ b/app/javascript/mastodon/locales/ug.json @@ -17,7 +17,6 @@ "compose_form.spoiler.marked": "Text is hidden behind warning", "compose_form.spoiler.unmarked": "Text is not hidden", "confirmations.delete.message": "Are you sure you want to delete this status?", - "confirmations.domain_block.confirm": "Hide entire domain", "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_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", "embed.instructions": "Embed this status on your website by copying the code below.", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index d14654d17c8956..bb0d0b39e2aed8 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -160,9 +160,7 @@ "compose_form.spoiler.unmarked": "Додати попередження про вміст", "compose_form.spoiler_placeholder": "Попередження про вміст (необов'язково)", "confirmation_modal.cancel": "Скасувати", - "confirmations.block.block_and_report": "Заблокувати та поскаржитися", "confirmations.block.confirm": "Заблокувати", - "confirmations.block.message": "Ви впевнені, що хочете заблокувати {name}?", "confirmations.cancel_follow_request.confirm": "Відкликати запит", "confirmations.cancel_follow_request.message": "Ви дійсно бажаєте відкликати запит на стеження за {name}?", "confirmations.delete.confirm": "Видалити", @@ -171,15 +169,12 @@ "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.message": "Ви впевнені, що хочете приховати {name}?", "confirmations.redraft.confirm": "Видалити та виправити", "confirmations.redraft.message": "Ви впевнені, що хочете видалити цей допис та переписати його? Додавання у вибране та поширення буде втрачено, а відповіді на оригінальний допис залишаться без першоджерела.", "confirmations.reply.confirm": "Відповісти", @@ -241,6 +236,7 @@ "empty_column.list": "Цей список порожній. Коли його учасники додадуть нові дописи, вони з'являться тут.", "empty_column.lists": "У вас ще немає списків. Коли ви їх створите, вони з'являться тут.", "empty_column.mutes": "Ви ще не приховали жодного користувача.", + "empty_column.notification_requests": "Усе чисто! Тут нічого немає. Коли ви отримаєте нові сповіщення, вони з'являться тут відповідно до ваших налаштувань.", "empty_column.notifications": "У вас ще немає сповіщень. Коли інші люди почнуть взаємодіяти з вами, ви побачите їх тут.", "empty_column.public": "Тут поки нічого немає! Опублікуйте щось, або вручну підпишіться на користувачів інших серверів, щоб заповнити стрічку", "error.unexpected_crash.explanation": "Через помилку у нашому коді або несумісність браузера, ця сторінка не може бути зображена коректно.", @@ -271,6 +267,8 @@ "filter_modal.select_filter.subtitle": "Використати наявну категорію або створити нову", "filter_modal.select_filter.title": "Фільтрувати цей допис", "filter_modal.title.status": "Фільтрувати допис", + "filtered_notifications_banner.pending_requests": "Сповіщення від {count, plural, =0 {жодної особи} one {однієї особи} few {# осіб} many {# осіб} other {# особи}}, котрих ви можете знати", + "filtered_notifications_banner.title": "Відфільтровані сповіщення", "firehose.all": "Всі", "firehose.local": "Цей сервер", "firehose.remote": "Інші сервери", @@ -314,7 +312,6 @@ "hashtag.follow": "Стежити за хештегом", "hashtag.unfollow": "Не стежити за хештегом", "hashtags.and_other": "…і {count, plural, other {ще #}}", - "home.column_settings.basic": "Основні", "home.column_settings.show_reblogs": "Показувати поширення", "home.column_settings.show_replies": "Показувати відповіді", "home.hide_announcements": "Приховати оголошення", @@ -400,9 +397,6 @@ "loading_indicator.label": "Завантаження…", "media_gallery.toggle_visible": "{number, plural, one {Приховати зображення} other {Приховати зображення}}", "moved_to_account_banner.text": "Ваш обліковий запис {disabledAccount} наразі вимкнений, оскільки вас перенесено до {movedToAccount}.", - "mute_modal.duration": "Тривалість", - "mute_modal.hide_notifications": "Сховати сповіщення цього користувача?", - "mute_modal.indefinite": "Невизначений строк", "navigation_bar.about": "Про застосунок", "navigation_bar.advanced_interface": "Відкрити в розширеному вебінтерфейсі", "navigation_bar.blocks": "Заблоковані користувачі", @@ -440,15 +434,16 @@ "notification.reblog": "{name} поширює ваш допис", "notification.status": "{name} щойно дописує", "notification.update": "{name} змінює допис", + "notification_requests.accept": "Прийняти", + "notification_requests.dismiss": "Відхилити", + "notification_requests.notifications_from": "Сповіщення від {name}", + "notification_requests.title": "Відфільтровані сповіщення", "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": "Згадки:", @@ -474,6 +469,11 @@ "notifications.permission_denied": "Сповіщення стільниці недоступні через раніше відхилений запит дозволів для браузера", "notifications.permission_denied_alert": "Сповіщення не можна ввімкнути оскільки у дозволі вже було відмовлено раніше", "notifications.permission_required": "Сповіщення на стільниці не доступні, оскільки необхідний дозвіл не надано.", + "notifications.policy.filter_new_accounts.hint": "Створено впродовж {days, plural, one {одного} few {# днів} many {# днів} other {# дня}}", + "notifications.policy.filter_new_accounts_title": "Нові облікові записи", + "notifications.policy.filter_not_followers_title": "Люди не підписані на вас", + "notifications.policy.filter_not_following_hint": "Доки ви не схвалюєте їх вручну", + "notifications.policy.filter_not_following_title": "Люди, на яких ви не підписані", "notifications_permission_banner.enable": "Увімкнути сповіщення стільниці", "notifications_permission_banner.how_to_control": "Щоб отримувати сповіщення, коли Mastodon не відкрито, увімкніть сповіщення стільниці. Ви можете контролювати, які типи взаємодій створюють сповіщення через кнопку {icon} вгорі після їхнього увімкнення.", "notifications_permission_banner.title": "Не проґавте нічого", @@ -650,10 +650,11 @@ "status.direct": "Особиста згадка @{name}", "status.direct_indicator": "Особиста згадка", "status.edit": "Редагувати", - "status.edited": "Відредаговано {date}", + "status.edited": "Востаннє змінено {date}", "status.edited_x_times": "Відредаговано {count, plural, one {{count} раз} few {{count} рази} many {{counter} разів} other {{counter} разів}}", "status.embed": "Вбудувати", "status.favourite": "Уподобане", + "status.favourites": "{count, plural, one {вподобання} few {вподобання} many {вподобань} other {вподобання}}", "status.filter": "Фільтрувати цей допис", "status.filtered": "Відфільтровано", "status.hide": "Сховати допис", @@ -674,6 +675,7 @@ "status.reblog": "Поширити", "status.reblog_private": "Поширити для початкової аудиторії", "status.reblogged_by": "{name} поширює", + "status.reblogs": "{count, plural, one {поширення} few {поширення} many {поширень} other {поширення}}", "status.reblogs.empty": "Ніхто ще не поширив цей допис. Коли хтось це зроблять, вони будуть зображені тут.", "status.redraft": "Видалити та виправити", "status.remove_bookmark": "Видалити закладку", diff --git a/app/javascript/mastodon/locales/ur.json b/app/javascript/mastodon/locales/ur.json index fee2cc3a9817e2..37f156c28fc9f6 100644 --- a/app/javascript/mastodon/locales/ur.json +++ b/app/javascript/mastodon/locales/ur.json @@ -121,20 +121,15 @@ "compose_form.spoiler.marked": "Text is hidden behind warning", "compose_form.spoiler.unmarked": "Text is not hidden", "confirmation_modal.cancel": "منسوخ", - "confirmations.block.block_and_report": "شکایت کریں اور بلاک کریں", "confirmations.block.confirm": "بلاک", - "confirmations.block.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.domain_block.confirm": "Hide entire domain", "confirmations.domain_block.message": "کیا آپ واقعی، واقعی یقین رکھتے ہیں کہ آپ پورے {domain} کو بلاک کرنا چاہتے ہیں؟ زیادہ تر معاملات میں چند ٹارگٹیڈ بلاکس یا خاموش کرنا کافی اور افضل ہیں۔ آپ اس ڈومین کا مواد کسی بھی عوامی ٹائم لائنز یا اپنی اطلاعات میں نہیں دیکھیں گے۔ اس ڈومین سے آپ کے پیروکاروں کو ہٹا دیا جائے گا۔", "confirmations.logout.confirm": "لاگ آؤٹ", "confirmations.logout.message": "کیا واقعی آپ لاگ آؤٹ ہونا چاہتے ہیں؟", "confirmations.mute.confirm": "خاموش", - "confirmations.mute.explanation": "یہ ان سے پوسٹس اور ان کا تذکرہ کرنے والی پوسٹس کو چھپائے گا، لیکن یہ پھر بھی انہیں آپ کی پوسٹس دیکھنے اور آپ کی پیروی کرنے کی اجازت دے گا۔", - "confirmations.mute.message": "کیا واقعی آپ {name} کو خاموش کرنا چاہتے ہیں؟", "confirmations.redraft.confirm": "ڈیلیٹ کریں اور دوبارہ ڈرافٹ کریں", "confirmations.reply.confirm": "جواب دیں", "confirmations.reply.message": "ابھی جواب دینے سے وہ پیغام اوور رائٹ ہو جائے گا جو آپ فی الحال لکھ رہے ہیں۔ کیا آپ واقعی آگے بڑھنا چاہتے ہیں؟", @@ -189,7 +184,6 @@ "hashtag.column_settings.tag_mode.any": "ان میں سے کوئی", "hashtag.column_settings.tag_mode.none": "ان میں سے کوئی بھی نہیں", "hashtag.column_settings.tag_toggle": "اس کالم کے لئے مزید ٹیگز شامل کریں", - "home.column_settings.basic": "بنیادی", "home.column_settings.show_reblogs": "افزائشات دکھائیں", "home.column_settings.show_replies": "جوابات دکھائیں", "intervals.full.days": "{number, plural, one {# روز} other {# روز}}", @@ -224,7 +218,6 @@ "keyboard_shortcuts.toot": "to start a brand new toot", "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search", "keyboard_shortcuts.up": "to move up in the list", - "mute_modal.indefinite": "غیر معینہ", "navigation_bar.blocks": "مسدود صارفین", "navigation_bar.bookmarks": "بُک مارکس", "navigation_bar.community_timeline": "مقامی ٹائم لائن", @@ -253,7 +246,6 @@ "notifications.clear": "اطلاعات ہٹائیں", "notifications.clear_confirmation": "کیا آپ واقعی اپنی تمام اطلاعات کو صاف کرنا چاہتے ہیں؟", "notifications.column_settings.alert": "ڈیسک ٹاپ اطلاعات", - "notifications.column_settings.filter_bar.advanced": "تمام زمرے دکھائیں", "notifications.column_settings.status": "New toots:", "onboarding.actions.go_to_explore": "See what's trending", "onboarding.actions.go_to_home": "Go to your home feed", diff --git a/app/javascript/mastodon/locales/uz.json b/app/javascript/mastodon/locales/uz.json index 8f231c8c77ab9e..77892914a42263 100644 --- a/app/javascript/mastodon/locales/uz.json +++ b/app/javascript/mastodon/locales/uz.json @@ -132,9 +132,7 @@ "compose_form.spoiler.marked": "Kontent ogohlantirishini olib tashlang", "compose_form.spoiler.unmarked": "Kontent haqida ogohlantirish qo'shing", "confirmation_modal.cancel": "Bekor qilish", - "confirmations.block.block_and_report": "Bloklash va hisobot berish", "confirmations.block.confirm": "Bloklash", - "confirmations.block.message": "Haqiqatan ham {name}ni bloklamoqchimisiz?", "confirmations.cancel_follow_request.confirm": "Bekor qilish", "confirmations.cancel_follow_request.message": "Haqiqatan ham {name}ga obuna boʻlish soʻrovingizni qaytarib olmoqchimisiz?", "confirmations.delete.confirm": "Oʻchirish", @@ -143,13 +141,10 @@ "confirmations.delete_list.message": "Haqiqatan ham bu roʻyxatni butunlay oʻchirib tashlamoqchimisiz?", "confirmations.discard_edit_media.confirm": "Bekor qilish", "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.logout.confirm": "Chiqish", "confirmations.logout.message": "Chiqishingizga aminmisiz?", "confirmations.mute.confirm": "Ovozsiz", - "confirmations.mute.explanation": "Bu ulardagi postlar va ular haqida eslatib o'tilgan postlarni yashiradi, ammo bu ularga sizning postlaringizni ko'rish va sizni kuzatish imkonini beradi.", - "confirmations.mute.message": "Haqiqatan ham {name} ovozini o‘chirib qo‘ymoqchimisiz?", "confirmations.redraft.confirm": "O'chirish va qayta loyihalash", "confirmations.reply.confirm": "Javob berish", "confirmations.reply.message": "Hozir javob bersangiz, hozir yozayotgan xabaringiz ustidan yoziladi. Davom etishni xohlaysizmi?", @@ -255,7 +250,6 @@ "hashtag.column_settings.tag_toggle": "Ushbu ustun uchun qo'shimcha teglarni qo'shing", "hashtag.follow": "Hashtagni kuzatish", "hashtag.unfollow": "Hashtagni kuzatishni to'xtatish", - "home.column_settings.basic": "Asos", "home.column_settings.show_reblogs": "Boostlarni ko'rish", "home.column_settings.show_replies": "Javoblarni ko'rish", "home.hide_announcements": "E'lonlarni yashirish", @@ -315,9 +309,6 @@ "load_pending": "{count, plural, one {# yangi element} other {# yangi elementlar}}", "media_gallery.toggle_visible": "{number, plural, one {Rasmni yashirish} other {Rasmlarni yashirish}}", "moved_to_account_banner.text": "{movedToAccount} hisobiga koʻchganingiz uchun {disabledAccount} hisobingiz hozirda oʻchirib qoʻyilgan.", - "mute_modal.duration": "Davomiyligi", - "mute_modal.hide_notifications": "Bu foydalanuvchidan bildirishnomalar berkitilsinmi?", - "mute_modal.indefinite": "Cheksiz", "navigation_bar.about": "Haqida", "navigation_bar.blocks": "Bloklangan foydalanuvchilar", "navigation_bar.bookmarks": "Xatcho‘plar", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index 9a4182e540197d..b51b832b2b65ba 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -89,6 +89,14 @@ "announcement.announcement": "Có gì mới?", "attachments_list.unprocessed": "(chưa xử lí)", "audio.hide": "Ẩn âm thanh", + "block_modal.remote_users_caveat": "Chúng tôi sẽ yêu cầu {domain} tôn trọng quyết định của bạn. Tuy nhiên, việc tuân thủ không được đảm bảo vì một số máy chủ có thể xử lý việc chặn theo cách khác nhau. Các tút công khai vẫn có thể hiển thị đối với người dùng chưa đăng nhập.", + "block_modal.show_less": "Thu gọn", + "block_modal.show_more": "Hiện thêm", + "block_modal.they_cant_mention": "Họ không thể nhắc đến hay theo dõi bạn.", + "block_modal.they_cant_see_posts": "Bạn và họ sẽ không nhìn thấy tút của nhau.", + "block_modal.they_will_know": "Họ sẽ biết đã bị bạn chặn.", + "block_modal.title": "Chặn người này?", + "block_modal.you_wont_see_mentions": "Bạn sẽ không nhìn thấy tút có nhắc đến họ.", "boost_modal.combo": "Nhấn {combo} để bỏ qua bước này", "bundle_column_error.copy_stacktrace": "Sao chép báo lỗi", "bundle_column_error.error.body": "Không thể hiện trang này. Đây có thể là một lỗi trong mã lập trình của chúng tôi, hoặc là vấn đề tương thích của trình duyệt.", @@ -160,9 +168,7 @@ "compose_form.spoiler.unmarked": "Tạo nội dung ẩn", "compose_form.spoiler_placeholder": "Nội dung ẩn (tùy chọn)", "confirmation_modal.cancel": "Hủy bỏ", - "confirmations.block.block_and_report": "Chặn & Báo cáo", "confirmations.block.confirm": "Chặn", - "confirmations.block.message": "Bạn có thật sự muốn chặn {name}?", "confirmations.cancel_follow_request.confirm": "Thu hồi yêu cầu", "confirmations.cancel_follow_request.message": "Bạn có chắc muốn thu hồi yêu cầu theo dõi của bạn với {name}?", "confirmations.delete.confirm": "Xóa bỏ", @@ -171,15 +177,13 @@ "confirmations.delete_list.message": "Bạn thật sự muốn xóa vĩnh viễn danh sách này?", "confirmations.discard_edit_media.confirm": "Bỏ qua", "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.confirm": "Chặn 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", - "confirmations.mute.explanation": "Điều này sẽ khiến tút của họ và những tút có nhắc đến họ bị ẩn, tuy nhiên họ vẫn có thể xem tút của bạn và theo dõi bạn.", - "confirmations.mute.message": "Bạn thật sự muốn ẩn {name}?", "confirmations.redraft.confirm": "Xóa & viết lại", "confirmations.redraft.message": "Bạn thật sự muốn xóa tút và viết lại? Điều này sẽ xóa mất những lượt thích và đăng lại của tút, cũng như những trả lời sẽ không còn nội dung gốc.", "confirmations.reply.confirm": "Trả lời", @@ -205,6 +209,27 @@ "dismissable_banner.explore_statuses": "Đây là những tút đang phổ biến trong mạng liên hợp của máy chủ này.", "dismissable_banner.explore_tags": "Đây là những hashtag đang được sử dụng nhiều trong mạng liên hợp của máy chủ này.", "dismissable_banner.public_timeline": "Đây là những tút công khai gần đây trong mạng liên hợp của máy chủ {domain}.", + "domain_block_modal.block": "Chặn máy chủ", + "domain_block_modal.block_account_instead": "Chỉ chặn {name}", + "domain_block_modal.they_can_interact_with_old_posts": "Thành viên máy chủ này có thể tương tác với các tút cũ của bạn.", + "domain_block_modal.they_cant_follow": "Không ai trên máy chủ này có thể theo dõi bạn.", + "domain_block_modal.they_wont_know": "Họ sẽ không biết đã bị bạn chặn.", + "domain_block_modal.title": "Chặn máy chủ?", + "domain_block_modal.you_will_lose_followers": "Những người theo dõi bạn ở máy chủ này sẽ bị xóa.", + "domain_block_modal.you_wont_see_posts": "Bạn sẽ không thấy tút hoặc thông báo từ thành viên máy chủ này.", + "domain_pill.activitypub_lets_connect": "Nó cho phép bạn kết nối và tương tác với mọi người không chỉ trên Mastodon mà còn trên các ứng dụng xã hội khác.", + "domain_pill.activitypub_like_language": "ActivityPub giống như ngôn ngữ Mastodon giao tiếp với các mạng xã hội khác.", + "domain_pill.server": "Máy chủ", + "domain_pill.their_handle": "Địa chỉ Mastodon:", + "domain_pill.their_server": "Ngôi nhà kỹ thuật số, nơi lưu giữ tút của ai đó.", + "domain_pill.their_username": "Danh tính duy nhất của họ trên máy chủ này. Có thể có tên người dùng giống nhau trên các máy chủ khác.", + "domain_pill.username": "Tên người dùng", + "domain_pill.whats_in_a_handle": "Địa chỉ Mastodon là gì?", + "domain_pill.who_they_are": "Vì địa chỉ Mastodon cho biết một người là ai và họ ở đâu, nên bạn có thể tương tác với mọi người trên các nền tảng có .", + "domain_pill.who_you_are": "Vì địa chỉ Mastodon cho biết bạn là ai và bạn ở đâu, nên bạn có thể tương tác với mọi người trên các nền tảng có .", + "domain_pill.your_handle": "Địa chỉ Mastodon của bạn:", + "domain_pill.your_server": "Ngôi nhà kỹ thuật số, nơi lưu giữ tút của bạn. Không thích ở đây? Chuyển sang máy chủ khác và mang theo người theo dõi của bạn.", + "domain_pill.your_username": "Danh tính duy nhất của bạn trên máy chủ này. Có thể có tên người dùng giống bạn trên các máy chủ khác.", "embed.instructions": "Sao chép đoạn mã dưới đây và chèn vào trang web của bạn.", "embed.preview": "Nó sẽ hiển thị như vầy:", "emoji_button.activity": "Hoạt động", @@ -241,6 +266,7 @@ "empty_column.list": "Chưa có tút. Khi những người trong danh sách này đăng tút mới, chúng sẽ xuất hiện ở đây.", "empty_column.lists": "Bạn chưa tạo danh sách nào.", "empty_column.mutes": "Bạn chưa ẩn bất kỳ ai.", + "empty_column.notification_requests": "Sạch sẽ! Không còn gì ở đây. Khi bạn nhận được thông báo mới, chúng sẽ xuất hiện ở đây theo cài đặt của bạn.", "empty_column.notifications": "Bạn chưa có thông báo nào. Hãy thử theo dõi hoặc nhắn riêng cho ai đó.", "empty_column.public": "Trống trơn! Bạn hãy viết gì đó hoặc bắt đầu theo dõi những người khác", "error.unexpected_crash.explanation": "Trang này có thể không hiển thị chính xác do lỗi lập trình Mastodon hoặc vấn đề tương thích trình duyệt.", @@ -271,6 +297,8 @@ "filter_modal.select_filter.subtitle": "Sử dụng một danh mục hiện có hoặc tạo một danh mục mới", "filter_modal.select_filter.title": "Lọc tút này", "filter_modal.title.status": "Lọc một tút", + "filtered_notifications_banner.pending_requests": "Thông báo từ {count, plural, =0 {không ai} other {# người}} bạn có thể biết", + "filtered_notifications_banner.title": "Thông báo đã lọc", "firehose.all": "Toàn bộ", "firehose.local": "Máy chủ này", "firehose.remote": "Máy chủ khác", @@ -314,7 +342,6 @@ "hashtag.follow": "Theo dõi hashtag", "hashtag.unfollow": "Bỏ theo dõi hashtag", "hashtags.and_other": "…và {count, plural, other {# nữa}}", - "home.column_settings.basic": "Tùy chỉnh", "home.column_settings.show_reblogs": "Hiện những lượt đăng lại", "home.column_settings.show_replies": "Hiện những tút dạng trả lời", "home.hide_announcements": "Ẩn thông báo máy chủ", @@ -362,7 +389,7 @@ "keyboard_shortcuts.my_profile": "mở hồ sơ của bạn", "keyboard_shortcuts.notifications": "mở thông báo", "keyboard_shortcuts.open_media": "mở ảnh hoặc video", - "keyboard_shortcuts.pinned": "Open pinned posts list", + "keyboard_shortcuts.pinned": "mở những tút đã ghim", "keyboard_shortcuts.profile": "mở trang của người đăng tút", "keyboard_shortcuts.reply": "trả lời", "keyboard_shortcuts.requests": "mở danh sách yêu cầu theo dõi", @@ -400,9 +427,15 @@ "loading_indicator.label": "Đang tải…", "media_gallery.toggle_visible": "{number, plural, other {Ẩn hình ảnh}}", "moved_to_account_banner.text": "Tài khoản {disabledAccount} của bạn hiện không khả dụng vì bạn đã chuyển sang {movedToAccount}.", - "mute_modal.duration": "Thời hạn", - "mute_modal.hide_notifications": "Ẩn thông báo từ người này?", - "mute_modal.indefinite": "Vĩnh viễn", + "mute_modal.hide_from_notifications": "Ẩn thông báo", + "mute_modal.hide_options": "Tùy chọn ẩn", + "mute_modal.indefinite": "Cho tới khi bỏ ẩn", + "mute_modal.show_options": "Hiển thị tùy chọn", + "mute_modal.they_can_mention_and_follow": "Họ có thể nhắc đến và theo dõi bạn, nhưng bạn không thấy họ.", + "mute_modal.they_wont_know": "Họ sẽ không biết đã bị bạn ẩn.", + "mute_modal.title": "Ẩn người này?", + "mute_modal.you_wont_see_mentions": "Bạn sẽ không nhìn thấy tút có nhắc đến họ.", + "mute_modal.you_wont_see_posts": "Bạn sẽ không nhìn thấy tút của họ.", "navigation_bar.about": "Giới thiệu", "navigation_bar.advanced_interface": "Dùng bố cục nhiều cột", "navigation_bar.blocks": "Người đã chặn", @@ -440,15 +473,16 @@ "notification.reblog": "{name} đăng lại tút của bạn", "notification.status": "{name} đăng tút mới", "notification.update": "{name} đã sửa tút", + "notification_requests.accept": "Chấp nhận", + "notification_requests.dismiss": "Bỏ qua", + "notification_requests.notifications_from": "Thông báo từ {name}", + "notification_requests.title": "Thông báo đã lọc", "notifications.clear": "Xóa hết thông báo", "notifications.clear_confirmation": "Bạn thật sự muốn xóa vĩnh viễn tất cả thông báo của mình?", "notifications.column_settings.admin.report": "Báo cáo mới:", "notifications.column_settings.admin.sign_up": "Người mới tham gia:", "notifications.column_settings.alert": "Báo trên máy tính", "notifications.column_settings.favourite": "Lượt thích:", - "notifications.column_settings.filter_bar.advanced": "Toàn bộ", - "notifications.column_settings.filter_bar.category": "Phân loại", - "notifications.column_settings.filter_bar.show_bar": "Hiện bộ lọc", "notifications.column_settings.follow": "Người theo dõi:", "notifications.column_settings.follow_request": "Yêu cầu theo dõi:", "notifications.column_settings.mention": "Lượt nhắc đến:", @@ -474,6 +508,15 @@ "notifications.permission_denied": "Trình duyệt không cho phép hiển thị thông báo trên màn hình.", "notifications.permission_denied_alert": "Không thể bật thông báo trên màn hình bởi vì trình duyệt đã cấm trước đó", "notifications.permission_required": "Không hiện thông báo trên màn hình bởi vì chưa cho phép.", + "notifications.policy.filter_new_accounts.hint": "Đã tạo trong vòng {days, plural, other {# ngày}}", + "notifications.policy.filter_new_accounts_title": "Tài khoản mới", + "notifications.policy.filter_not_followers_hint": "Bao gồm những người đã theo dõi bạn ít hơn {days, plural, other {# ngày}}", + "notifications.policy.filter_not_followers_title": "Những người không theo dõi bạn", + "notifications.policy.filter_not_following_hint": "Cho tới khi bạn duyệt họ", + "notifications.policy.filter_not_following_title": "Những người bạn không theo dõi", + "notifications.policy.filter_private_mentions_hint": "Được lọc trừ khi nó trả lời lượt nhắc từ bạn hoặc nếu bạn theo dõi người gửi", + "notifications.policy.filter_private_mentions_title": "Lượt nhắc riêng tư không được yêu cầu", + "notifications.policy.title": "Lọc ra thông báo từ…", "notifications_permission_banner.enable": "Cho phép thông báo trên màn hình", "notifications_permission_banner.how_to_control": "Hãy bật thông báo trên màn hình để không bỏ lỡ những thông báo từ Mastodon. Một khi đã bật, bạn có thể lựa chọn từng loại thông báo khác nhau thông qua {icon} nút bên dưới.", "notifications_permission_banner.title": "Không bỏ lỡ điều thú vị nào", @@ -650,10 +693,11 @@ "status.direct": "Nhắn riêng @{name}", "status.direct_indicator": "Nhắn riêng", "status.edit": "Sửa", - "status.edited": "Đã sửa {date}", + "status.edited": "Sửa lần cuối {date}", "status.edited_x_times": "Đã sửa {count, plural, other {{count} lần}}", "status.embed": "Nhúng", "status.favourite": "Thích", + "status.favourites": "{count, plural, other {lượt thích}}", "status.filter": "Lọc tút này", "status.filtered": "Bộ lọc", "status.hide": "Ẩn tút", @@ -674,6 +718,7 @@ "status.reblog": "Đăng lại", "status.reblog_private": "Đăng lại (Riêng tư)", "status.reblogged_by": "{name} đăng lại", + "status.reblogs": "{count, plural, other {đăng lại}}", "status.reblogs.empty": "Tút này chưa có ai đăng lại. Nếu có, nó sẽ hiển thị ở đây.", "status.redraft": "Xóa và viết lại", "status.remove_bookmark": "Bỏ lưu", diff --git a/app/javascript/mastodon/locales/zgh.json b/app/javascript/mastodon/locales/zgh.json index a585838cd22af9..1d3a22108cd7ba 100644 --- a/app/javascript/mastodon/locales/zgh.json +++ b/app/javascript/mastodon/locales/zgh.json @@ -48,11 +48,9 @@ "compose_form.spoiler.unmarked": "Text is not hidden", "confirmation_modal.cancel": "ⵙⵔ", "confirmations.block.confirm": "ⴳⴷⵍ", - "confirmations.block.message": "ⵉⵙ ⵏⵉⵜ ⵜⵅⵙⴷ ⴰⴷ ⵜⴳⴷⵍⴷ {name}?", "confirmations.delete.confirm": "ⴽⴽⵙ", "confirmations.delete.message": "ⵉⵙ ⵏⵉⵜ ⵜⵅⵙⴷ ⴰⴷ ⵜⴽⴽⵙⴷ ⵜⴰⵥⵕⵉⴳⵜ ⴰ?", "confirmations.delete_list.confirm": "ⴽⴽⵙ", - "confirmations.domain_block.confirm": "Hide entire domain", "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 3e714987c077e8..1a39dc235c6007 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -89,6 +89,14 @@ "announcement.announcement": "公告", "attachments_list.unprocessed": "(未处理)", "audio.hide": "隐藏音频", + "block_modal.remote_users_caveat": "我们将要求服务器 {domain} 尊重您的决定。然而,无法保证对方一定遵从,因为某些服务器可能会以不同的方式处理屏蔽操作。公开嘟文仍然可能对未登录用户可见。", + "block_modal.show_less": "显示更少", + "block_modal.show_more": "显示更多", + "block_modal.they_cant_mention": "他们不能提及或关注你。", + "block_modal.they_cant_see_posts": "他们看不到你的嘟文,你也看不到他们的嘟文。", + "block_modal.they_will_know": "他们可以看到他们被屏蔽。", + "block_modal.title": "屏蔽用户?", + "block_modal.you_wont_see_mentions": "你不会看到提及他们的嘟文。", "boost_modal.combo": "下次按住 {combo} 即可跳过此提示", "bundle_column_error.copy_stacktrace": "复制错误报告", "bundle_column_error.error.body": "请求的页面无法渲染,可能是代码出现错误或浏览器存在兼容性问题。", @@ -160,9 +168,7 @@ "compose_form.spoiler.unmarked": "添加内容警告", "compose_form.spoiler_placeholder": "内容警告 (可选)", "confirmation_modal.cancel": "取消", - "confirmations.block.block_and_report": "屏蔽与举报", "confirmations.block.confirm": "屏蔽", - "confirmations.block.message": "确定要屏蔽 {name} 吗?", "confirmations.cancel_follow_request.confirm": "撤回请求", "confirmations.cancel_follow_request.message": "确定撤回关注 {name} 的请求吗?", "confirmations.delete.confirm": "删除", @@ -171,15 +177,13 @@ "confirmations.delete_list.message": "确定永久删除这个列表吗?", "confirmations.discard_edit_media.confirm": "丢弃", "confirmations.discard_edit_media.message": "您还有未保存的媒体描述或预览修改,仍要丢弃吗?", - "confirmations.domain_block.confirm": "屏蔽整个域名", + "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.message": "你确定要隐藏 {name} 吗?", "confirmations.redraft.confirm": "删除并重新编辑", "confirmations.redraft.message": "确定删除这条嘟文并重写吗?所有相关的喜欢和转嘟都将丢失,嘟文的回复也会失去关联。", "confirmations.reply.confirm": "回复", @@ -205,6 +209,27 @@ "dismissable_banner.explore_statuses": "这些是目前在社交网络上引起关注的嘟文。嘟文的喜欢和转嘟次数越多,排名越高。", "dismissable_banner.explore_tags": "这些标签正在本站和分布式网络上其他站点的用户中引起关注。", "dismissable_banner.public_timeline": "这些是在 {domain} 上关注的人们最新发布的公开嘟文。", + "domain_block_modal.block": "屏蔽服务器", + "domain_block_modal.block_account_instead": "改为屏蔽 @{name}", + "domain_block_modal.they_can_interact_with_old_posts": "来自该服务器的人可以与你之前的嘟文交互。", + "domain_block_modal.they_cant_follow": "此服务器上没有人可以关注你。", + "domain_block_modal.they_wont_know": "他们不会知道自己被屏蔽。", + "domain_block_modal.title": "屏蔽该域名?", + "domain_block_modal.you_will_lose_followers": "该服务器上你的所有关注者都会被删除。", + "domain_block_modal.you_wont_see_posts": "你将不会看到此服务器上用户的嘟文或通知。", + "domain_pill.activitypub_lets_connect": "它让你不仅能与Mastodon上的人交流互动,还能与其它不同社交应用上的人联系。", + "domain_pill.activitypub_like_language": "ActivityPub就像Mastodon与其它社交网络交流时使用的语言。", + "domain_pill.server": "服务器", + "domain_pill.their_handle": "它们的代号:", + "domain_pill.their_server": "它们的数字家园,它们的所有嘟文都存放在那里。", + "domain_pill.their_username": "它们在它们的服务器上的唯一标识符。在不同的服务器上可能会找到相同用户名的用户。", + "domain_pill.username": "用户名", + "domain_pill.whats_in_a_handle": "代号里都有什么?", + "domain_pill.who_they_are": "代号可以告诉你一个人是谁和在哪里,所以你可以在社交网络上与的人们互动。", + "domain_pill.who_you_are": "你的代号可以告诉别人你是谁和你在哪里,这样社交网络上来自的人们就可以与你互动。", + "domain_pill.your_handle": "你的代号:", + "domain_pill.your_server": "你的数字家园,你的所有嘟文都存放在这里。不喜欢这个服务器吗?随时带上你的关注者一起迁移到其它服务器。", + "domain_pill.your_username": "你在这个服务器上的唯一标识符。在不同的服务器上可能会找到相同用户名的用户。", "embed.instructions": "复制下列代码以在你的网站中嵌入此嘟文。", "embed.preview": "它会像这样显示出来:", "emoji_button.activity": "活动", @@ -241,6 +266,7 @@ "empty_column.list": "列表中还没有任何内容。当列表成员发布新嘟文时,它们将出现在这里。", "empty_column.lists": "你还没有创建过列表。你创建的列表会在这里显示。", "empty_column.mutes": "你没有隐藏任何用户。", + "empty_column.notification_requests": "都看完了!这里没有任何未读通知。当收到新的通知时,它们将根据您的设置显示在这里。", "empty_column.notifications": "你还没有收到过任何通知,快和其他用户互动吧。", "empty_column.public": "这里什么都没有!写一些公开的嘟文,或者关注其他服务器的用户后,这里就会有嘟文出现了", "error.unexpected_crash.explanation": "此页面无法正确显示,这可能是因为我们的代码中有错误,也可能是因为浏览器兼容问题。", @@ -271,6 +297,8 @@ "filter_modal.select_filter.subtitle": "使用一个已存在类别,或创建一个新类别", "filter_modal.select_filter.title": "过滤此嘟文", "filter_modal.title.status": "过滤一条嘟文", + "filtered_notifications_banner.pending_requests": "来自你可能认识的 {count, plural, =0 {0 个人} other {# 个人}}的通知", + "filtered_notifications_banner.title": "通知(已过滤)", "firehose.all": "全部", "firehose.local": "此服务器", "firehose.remote": "其他服务器", @@ -314,7 +342,6 @@ "hashtag.follow": "关注话题标签", "hashtag.unfollow": "取消关注话题标签", "hashtags.and_other": "… 和另外 {count, plural, other {# 个话题}}", - "home.column_settings.basic": "基本设置", "home.column_settings.show_reblogs": "显示转嘟", "home.column_settings.show_replies": "显示回复", "home.hide_announcements": "隐藏公告", @@ -400,9 +427,15 @@ "loading_indicator.label": "加载中…", "media_gallery.toggle_visible": "{number, plural, other {隐藏图像}}", "moved_to_account_banner.text": "您的账号 {disabledAccount} 已禁用,因为您已迁移到 {movedToAccount}。", - "mute_modal.duration": "持续时长", - "mute_modal.hide_notifications": "同时隐藏来自这个用户的通知?", - "mute_modal.indefinite": "无期限", + "mute_modal.hide_from_notifications": "从通知中隐藏", + "mute_modal.hide_options": "隐藏选项", + "mute_modal.indefinite": "直到我取消隐藏他们", + "mute_modal.show_options": "显示选项", + "mute_modal.they_can_mention_and_follow": "他们可以提及和关注你,但是你看不到他们。", + "mute_modal.they_wont_know": "它们不会知道自己已被隐藏。", + "mute_modal.title": "隐藏用户?", + "mute_modal.you_wont_see_mentions": "你看不到提及他们的嘟文。", + "mute_modal.you_wont_see_posts": "他们可以看到你的嘟文,但是你看不到他们的。", "navigation_bar.about": "关于", "navigation_bar.advanced_interface": "在高级网页界面中打开", "navigation_bar.blocks": "已屏蔽的用户", @@ -440,15 +473,16 @@ "notification.reblog": "{name} 转发了你的嘟文", "notification.status": "{name} 刚刚发布嘟文", "notification.update": "{name} 编辑了嘟文", + "notification_requests.accept": "接受", + "notification_requests.dismiss": "拒绝", + "notification_requests.notifications_from": "来自 {name} 的通知", + "notification_requests.title": "通知(已过滤)", "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": "提及:", @@ -474,6 +508,15 @@ "notifications.permission_denied": "由于权限被拒绝,无法启用桌面通知。", "notifications.permission_denied_alert": "由于在此之前浏览器权限请求就已被拒绝,所以启用桌面通知失败", "notifications.permission_required": "所需权限未被授予,所以桌面通知不可用", + "notifications.policy.filter_new_accounts.hint": "在 {days, plural, other {# 天}}内创建的账户", + "notifications.policy.filter_new_accounts_title": "新账户", + "notifications.policy.filter_not_followers_hint": "包括关注你少于 {days, plural, other {# 天}}的人", + "notifications.policy.filter_not_followers_title": "未关注你的人", + "notifications.policy.filter_not_following_hint": "直到你手动批准", + "notifications.policy.filter_not_following_title": "你没有关注的人", + "notifications.policy.filter_private_mentions_hint": "过滤通知,除非通知是在回复提及你自己的内容,或发送者是你关注的人", + "notifications.policy.filter_private_mentions_title": "不请自来的提及", + "notifications.policy.title": "通知过滤范围", "notifications_permission_banner.enable": "启用桌面通知", "notifications_permission_banner.how_to_control": "启用桌面通知以在 Mastodon 未打开时接收通知。你可以通过交互通过上面的 {icon} 按钮来精细控制可以发送桌面通知的交互类型。", "notifications_permission_banner.title": "精彩不容错过", @@ -533,7 +576,7 @@ "privacy.direct.short": "具体的人", "privacy.private.long": "仅限您的关注者", "privacy.private.short": "关注者", - "privacy.public.long": "所有Mastodon内外的人", + "privacy.public.long": "所有 Mastodon 内外的人", "privacy.public.short": "公开", "privacy.unlisted.additional": "该模式的行为与“公开”完全相同,只是帖子不会出现在实时动态、话题标签、探索或 Mastodon 搜索中,即使你已在账户级设置中选择加入。", "privacy.unlisted.long": "减少算法影响", @@ -650,10 +693,11 @@ "status.direct": "私下提及 @{name}", "status.direct_indicator": "私下提及", "status.edit": "编辑", - "status.edited": "编辑于 {date}", + "status.edited": "最近编辑于 {date}", "status.edited_x_times": "共编辑 {count, plural, one {{count} 次} other {{count} 次}}", "status.embed": "嵌入", "status.favourite": "喜欢", + "status.favourites": "{count, plural, other {次喜欢}}", "status.filter": "过滤此嘟文", "status.filtered": "已过滤", "status.hide": "隐藏嘟文", @@ -674,6 +718,7 @@ "status.reblog": "转嘟", "status.reblog_private": "转嘟(可见者不变)", "status.reblogged_by": "{name} 转嘟了", + "status.reblogs": "{count, plural, other {次转嘟}}", "status.reblogs.empty": "没有人转嘟过此条嘟文。如果有人转嘟了,就会显示在这里。", "status.redraft": "删除并重新编辑", "status.remove_bookmark": "移除书签", diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json index 2382e3c61ce2c2..44a1435b2f3747 100644 --- a/app/javascript/mastodon/locales/zh-HK.json +++ b/app/javascript/mastodon/locales/zh-HK.json @@ -89,6 +89,14 @@ "announcement.announcement": "公告", "attachments_list.unprocessed": "(未處理)", "audio.hide": "隱藏音訊", + "block_modal.remote_users_caveat": "我們會要求 {domain} 伺服器尊重你的決定。然而,由於部份伺服器可能以不同方式處理封鎖,因此無法保證一定會成功。公開帖文仍然有機會被未登入的使用者看見。", + "block_modal.show_less": "顯示更少", + "block_modal.show_more": "顯示更多", + "block_modal.they_cant_mention": "對方無法提及和追蹤你。", + "block_modal.they_cant_see_posts": "你們無法看到對方的帖文。", + "block_modal.they_will_know": "對方會看到自己被封鎖。", + "block_modal.title": "封鎖使用者?", + "block_modal.you_wont_see_mentions": "你將不會看到提及對方的帖文。", "boost_modal.combo": "你下次可以按 {combo} 來跳過", "bundle_column_error.copy_stacktrace": "複製錯誤報告", "bundle_column_error.error.body": "無法提供請求的頁面。這可能是因為代碼出現錯誤或瀏覽器出現兼容問題。", @@ -160,9 +168,7 @@ "compose_form.spoiler.unmarked": "文字沒有被隱藏", "compose_form.spoiler_placeholder": "內容警告 (選用)", "confirmation_modal.cancel": "取消", - "confirmations.block.block_and_report": "封鎖並檢舉", "confirmations.block.confirm": "封鎖", - "confirmations.block.message": "你確定要封鎖{name}嗎?", "confirmations.cancel_follow_request.confirm": "撤回請求", "confirmations.cancel_follow_request.message": "您確定要撤回追蹤 {name} 的請求嗎?", "confirmations.delete.confirm": "刪除", @@ -171,15 +177,13 @@ "confirmations.delete_list.message": "你確定要永久刪除這列表嗎?", "confirmations.discard_edit_media.confirm": "捨棄", "confirmations.discard_edit_media.message": "您在媒體描述或預覽有尚未儲存的變更。確定要捨棄它們嗎?", - "confirmations.domain_block.confirm": "封鎖整個網站", + "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.message": "你確定要將{name}靜音嗎?", "confirmations.redraft.confirm": "刪除並編輯", "confirmations.redraft.message": "你確定要移除並重新起草這篇帖文嗎?你將會失去最愛和轉推,而回覆也會與原始帖文斷開連接。", "confirmations.reply.confirm": "回覆", @@ -205,6 +209,27 @@ "dismissable_banner.explore_statuses": "這些是今天在社交網絡上受到關注的帖文。新的帖文如果有較多轉推和最愛會排得更高。", "dismissable_banner.explore_tags": "這些主題標籤正在被本站以及去中心化網路上的人們熱烈討論。", "dismissable_banner.public_timeline": "這些是 {domain} 使用者追蹤的社交網絡上最新的公開帖文。", + "domain_block_modal.block": "封鎖伺服器", + "domain_block_modal.block_account_instead": "封鎖 @{name} 即可", + "domain_block_modal.they_can_interact_with_old_posts": "此伺服器的人們可與你的舊帖文互動。", + "domain_block_modal.they_cant_follow": "此伺服器的人無法追蹤你。", + "domain_block_modal.they_wont_know": "對方不會知道自己被封鎖。", + "domain_block_modal.title": "封鎖網域?", + "domain_block_modal.you_will_lose_followers": "你在此伺服器的所有追蹤者都將會被移除。", + "domain_block_modal.you_wont_see_posts": "你將看不到此伺服器使用者的帖文和通知。", + "domain_pill.activitypub_lets_connect": "這讓你不僅能在 Mastodon 上,也能在其他社交應用程式中與人交流互動。", + "domain_pill.activitypub_like_language": "ActivityPub 就像 Mastodon 與其他社交網絡溝通所用的語言。", + "domain_pill.server": "伺服器", + "domain_pill.their_handle": "他們的帳號:", + "domain_pill.their_server": "他們的數碼家園,所有帖文的棲息地。", + "domain_pill.their_username": "在他們的伺服器上的獨特識別碼。不同伺服器上的使用者有可能擁有相同的使用者名稱。", + "domain_pill.username": "使用者名稱", + "domain_pill.whats_in_a_handle": "帳號是甚麼?", + "domain_pill.who_they_are": "帳號代表了使用者的身份和所在之處,因此你能夠在以 構建的社交網絡中與他人互動交流。", + "domain_pill.who_you_are": "你的帳號代表了你的身份和所在之處,因此人們能夠在以 構建的社交網絡中與你互動交流。", + "domain_pill.your_handle": "你的帳號:", + "domain_pill.your_server": "你的數碼家園,你所有帖文的棲息地。不喜歡這裏嗎?隨時搬家到其他伺服器,把你的追蹤者也帶來。", + "domain_pill.your_username": "你在這台伺服器的獨特識別碼。可以在不同伺服器上找到相同使用者名稱的人。", "embed.instructions": "要內嵌此文章,請將以下代碼貼進你的網站。", "embed.preview": "看上去會是這樣:", "emoji_button.activity": "活動", @@ -241,6 +266,7 @@ "empty_column.list": "這個列表暫時未有內容。", "empty_column.lists": "你還沒有建立任何名單。這裡將會顯示你所建立的名單。", "empty_column.mutes": "你尚未靜音任何使用者。", + "empty_column.notification_requests": "沒有新通知了!當有新通知時,會根據設定顯示在這裏。", "empty_column.notifications": "你沒有任何通知紀錄,快向其他用戶搭訕吧。", "empty_column.public": "跨站時間軸暫時沒有內容!快寫一些公共的文章,或者關注另一些服務站的用戶吧!你和本站、友站的交流,將決定這裏出現的內容。", "error.unexpected_crash.explanation": "由於發生系統故障或瀏覽器相容性問題,故無法正常顯示頁面。", @@ -271,13 +297,21 @@ "filter_modal.select_filter.subtitle": "使用既有類別,或創建一個新類別", "filter_modal.select_filter.title": "過濾此帖文", "filter_modal.title.status": "過濾一則帖文", + "filtered_notifications_banner.pending_requests": "來自 {count, plural, =0 {0 位} other {# 位}}你可能認識的人的通知", + "filtered_notifications_banner.title": "已過濾之通知", "firehose.all": "全部", "firehose.local": "本伺服器", "firehose.remote": "其他伺服器", "follow_request.authorize": "批准", "follow_request.reject": "拒絕", "follow_requests.unlocked_explanation": "即使您的帳號未上鎖,{domain} 的工作人員認為您可能會想手動審核來自這些帳號的追蹤請求。", + "follow_suggestions.curated_suggestion": "編輯精選", "follow_suggestions.dismiss": "不再顯示", + "follow_suggestions.hints.featured": "這個人檔案是由 {domain} 團隊精挑細選。", + "follow_suggestions.hints.friends_of_friends": "這個人檔案在你追蹤的人當中很受歡迎。", + "follow_suggestions.hints.most_followed": "這個人檔案是在 {domain} 上最多追蹤之一。", + "follow_suggestions.hints.most_interactions": "這個人檔案最近在 {domain} 上備受關注。", + "follow_suggestions.hints.similar_to_recently_followed": "這個人檔案與你最近追蹤的類似。", "follow_suggestions.personalized_suggestion": "個人化推薦", "follow_suggestions.popular_suggestion": "熱門推薦", "follow_suggestions.view_all": "查看所有", @@ -308,7 +342,6 @@ "hashtag.follow": "追蹤主題標籤", "hashtag.unfollow": "取消追蹤主題標籤", "hashtags.and_other": "…及{count, plural, other {其他 # 個}}", - "home.column_settings.basic": "基本", "home.column_settings.show_reblogs": "顯示被轉推的文章", "home.column_settings.show_replies": "顯示回應文章", "home.hide_announcements": "隱藏公告", @@ -394,9 +427,15 @@ "loading_indicator.label": "載入中…", "media_gallery.toggle_visible": "隱藏圖片", "moved_to_account_banner.text": "您的帳號 {disabledAccount} 目前已停用,因為您已搬家至 {movedToAccount}。", - "mute_modal.duration": "時間", - "mute_modal.hide_notifications": "需要隱藏這使用者的通知嗎?", - "mute_modal.indefinite": "沒期限", + "mute_modal.hide_from_notifications": "隱藏通知", + "mute_modal.hide_options": "隱藏選項", + "mute_modal.indefinite": "直至我將對方解除靜音", + "mute_modal.show_options": "顯示選項", + "mute_modal.they_can_mention_and_follow": "對方能提及和追蹤你,但你將看不到對方。", + "mute_modal.they_wont_know": "對方不會知道自己被靜音。", + "mute_modal.title": "將使用者靜音?", + "mute_modal.you_wont_see_mentions": "你將看不到提及他們的帖文。", + "mute_modal.you_wont_see_posts": "他們仍能看到你的帖文,但你將看不到他們的。", "navigation_bar.about": "關於", "navigation_bar.advanced_interface": "在進階網頁介面打開", "navigation_bar.blocks": "封鎖名單", @@ -434,15 +473,16 @@ "notification.reblog": "{name} 轉推你的文章", "notification.status": "{name} 剛發表了文章", "notification.update": "{name} 編輯了帖文", + "notification_requests.accept": "接受", + "notification_requests.dismiss": "忽略", + "notification_requests.notifications_from": "來自 {name} 的通知", + "notification_requests.title": "已過濾之通知", "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": "提及你:", @@ -468,6 +508,15 @@ "notifications.permission_denied": "本站不能發送桌面通知,因為瀏覽器先前拒絕了本站的桌面通知權限請求", "notifications.permission_denied_alert": "無法啟用桌面通知,因為瀏覽器先前拒絕了本站的桌面通知權限請求", "notifications.permission_required": "由於瀏覽器未有授予桌面通知權限,本站暫未能發送桌面通知。", + "notifications.policy.filter_new_accounts.hint": "在過去 {days, plural, other {# 天}}內建立", + "notifications.policy.filter_new_accounts_title": "新帳號", + "notifications.policy.filter_not_followers_hint": "包括追蹤你不到 {days, plural, other {# 天}}的人", + "notifications.policy.filter_not_followers_title": "未追蹤你的人", + "notifications.policy.filter_not_following_hint": "直至你手動核准他們", + "notifications.policy.filter_not_following_title": "你未追蹤的人", + "notifications.policy.filter_private_mentions_hint": "除非回覆你的提及或來自你追蹤的人,否則將被過濾", + "notifications.policy.filter_private_mentions_title": "未經請求的私人提及", + "notifications.policy.title": "過濾來自以下的通知…", "notifications_permission_banner.enable": "啟用桌面通知", "notifications_permission_banner.how_to_control": "只要啟用桌面通知,便可在 Mastodon 網站沒有打開時收到通知。在已經啟用桌面通知的時候,你可以透過上面的 {icon} 按鈕準確控制哪些類型的互動會產生桌面通知。", "notifications_permission_banner.title": "不放過任何事情", @@ -644,7 +693,7 @@ "status.direct": "私下提及 @{name}", "status.direct_indicator": "私人提及", "status.edit": "編輯", - "status.edited": "編輯於 {date}", + "status.edited": "最後編輯於 {date}", "status.edited_x_times": "Edited {count, plural, one {{count} 次} other {{count} 次}}", "status.embed": "嵌入", "status.favourite": "最愛", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index f52f28381082aa..71272213a80a1c 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -70,7 +70,7 @@ "account.unendorse": "取消於個人檔案推薦對方", "account.unfollow": "取消跟隨", "account.unmute": "解除靜音 @{name}", - "account.unmute_notifications_short": "取消靜音推播通知", + "account.unmute_notifications_short": "解除靜音推播通知", "account.unmute_short": "解除靜音", "account_note.placeholder": "按此新增備註", "admin.dashboard.daily_retention": "註冊後使用者存留率(日)", @@ -89,6 +89,14 @@ "announcement.announcement": "公告", "attachments_list.unprocessed": "(未經處理)", "audio.hide": "隱藏音訊", + "block_modal.remote_users_caveat": "我們會要求 {domain} 伺服器尊重您的決定。然而,我們無法保證所有伺服器都會遵守,某些伺服器可能以不同方式處理封鎖。未登入之使用者仍可能看到您的公開嘟文。", + "block_modal.show_less": "減少顯示", + "block_modal.show_more": "顯示更多", + "block_modal.they_cant_mention": "他們無法提及或跟隨您。", + "block_modal.they_cant_see_posts": "他們無法讀取您的嘟文,且您不會見到他們的。", + "block_modal.they_will_know": "他們能見到他們已被封鎖。", + "block_modal.title": "是否封鎖該使用者?", + "block_modal.you_wont_see_mentions": "您不會見到提及他們的嘟文。", "boost_modal.combo": "下次您可以按 {combo} 跳過", "bundle_column_error.copy_stacktrace": "複製錯誤報告", "bundle_column_error.error.body": "無法繪製請求的頁面。這可能是因為我們程式碼中的臭蟲或是瀏覽器的相容問題。", @@ -160,9 +168,7 @@ "compose_form.spoiler.unmarked": "新增內容警告", "compose_form.spoiler_placeholder": "內容警告 (可選的)", "confirmation_modal.cancel": "取消", - "confirmations.block.block_and_report": "封鎖並檢舉", "confirmations.block.confirm": "封鎖", - "confirmations.block.message": "您確定要封鎖 {name} 嗎?", "confirmations.cancel_follow_request.confirm": "收回跟隨請求", "confirmations.cancel_follow_request.message": "您確定要收回跟隨 {name} 的請求嗎?", "confirmations.delete.confirm": "刪除", @@ -171,15 +177,13 @@ "confirmations.delete_list.message": "您確定要永久刪除此列表嗎?", "confirmations.discard_edit_media.confirm": "捨棄", "confirmations.discard_edit_media.message": "您於媒體描述或預覽區塊有未儲存的變更。是否要捨棄這些變更?", - "confirmations.domain_block.confirm": "封鎖整個網域", + "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.message": "您確定要靜音 {name} 嗎?", "confirmations.redraft.confirm": "刪除並重新編輯", "confirmations.redraft.message": "您確定要刪除這則嘟文並重新編輯嗎?您將失去這則嘟文之轉嘟及最愛,且對此嘟文之回覆會變成獨立的嘟文。", "confirmations.reply.confirm": "回覆", @@ -205,6 +209,27 @@ "dismissable_banner.explore_statuses": "這些於此伺服器以及去中心化網路中其他伺服器發出的嘟文正在被此伺服器上的人們熱烈討論著。越多不同人轉嘟及最愛排名更高。", "dismissable_banner.explore_tags": "這些主題標籤正在被此伺服器以及去中心化網路上的人們熱烈討論著。越多不同人所嘟出的主題標籤排名更高。", "dismissable_banner.public_timeline": "這些是來自 {domain} 使用者們跟隨中帳號所發表之最新公開嘟文。", + "domain_block_modal.block": "封鎖伺服器", + "domain_block_modal.block_account_instead": "改為封鎖 @{name}", + "domain_block_modal.they_can_interact_with_old_posts": "來自此伺服器之使用者能與您以往的嘟文互動。", + "domain_block_modal.they_cant_follow": "來自此伺服器之使用者將無法跟隨您。", + "domain_block_modal.they_wont_know": "他們不會知道他們已被封鎖。", + "domain_block_modal.title": "是否封鎖該網域?", + "domain_block_modal.you_will_lose_followers": "所有您來自此伺服器之跟隨者將被移除。", + "domain_block_modal.you_wont_see_posts": "您不會見到來自此伺服器使用者之任何嘟文或通知。", + "domain_pill.activitypub_lets_connect": "它使您能於 Mastodon 及其他不同的社群應用程式與人連結及互動。", + "domain_pill.activitypub_like_language": "ActivityPub 像是 Mastodon 與其他社群網路溝通時所用的語言。", + "domain_pill.server": "伺服器", + "domain_pill.their_handle": "他們的帳號:", + "domain_pill.their_server": "他們數位世界的家,他們所有的嘟文都在這裡。", + "domain_pill.their_username": "他們於他們的伺服器中獨一無二的識別。於不同的伺服器上可能找到具有相同帳號的使用者。", + "domain_pill.username": "使用者名稱", + "domain_pill.whats_in_a_handle": "什麼是帳號 (@handle) ?", + "domain_pill.who_they_are": "由於帳號 (@handle) 能說明某人是誰以及他們來自何方,您能於 之社群網路上與人們互動。", + "domain_pill.who_you_are": "由於帳號 (@handle) 能說明您是誰以及您來自何方,人們能於 之社群網路上與您互動。", + "domain_pill.your_handle": "您的帳號:", + "domain_pill.your_server": "您數位世界的家,您所有的嘟文都在這裡。不喜歡這台伺服器嗎?您能隨時搬家至其他伺服器並且仍保有您的跟隨者。", + "domain_pill.your_username": "您於您的伺服器中獨一無二的識別。於不同的伺服器上可能找到具有相同帳號的使用者。", "embed.instructions": "若您欲於您的網站嵌入此嘟文,請複製以下程式碼。", "embed.preview": "它將顯示成這樣:", "emoji_button.activity": "活動", @@ -241,6 +266,7 @@ "empty_column.list": "這份列表下什麼也沒有。當此列表的成員嘟出新的嘟文時,它們將顯示於此。", "empty_column.lists": "您還沒有新增任何列表。當您新增列表時,它將於此顯示。", "empty_column.mutes": "您尚未靜音任何使用者。", + "empty_column.notification_requests": "清空啦!已經沒有任何通知。當您收到新通知時,它們將依照您的設定於此顯示。", "empty_column.notifications": "您還沒有收到任何通知,當您與別人開始互動時,它將於此顯示。", "empty_column.public": "這裡什麼都沒有!嘗試寫些公開的嘟文,或者跟隨其他伺服器的使用者後,就會有嘟文出現了", "error.unexpected_crash.explanation": "由於發生系統故障或瀏覽器相容性問題,無法正常顯示此頁面。", @@ -271,6 +297,8 @@ "filter_modal.select_filter.subtitle": "使用既有的類別或是新增", "filter_modal.select_filter.title": "過濾此嘟文", "filter_modal.title.status": "過濾一則嘟文", + "filtered_notifications_banner.pending_requests": "來自您可能認識的 {count, plural, =0 {0 人} other {# 人}} 之通知", + "filtered_notifications_banner.title": "已過濾之通知", "firehose.all": "全部", "firehose.local": "本站", "firehose.remote": "聯邦宇宙", @@ -314,7 +342,6 @@ "hashtag.follow": "跟隨主題標籤", "hashtag.unfollow": "取消跟隨主題標籤", "hashtags.and_other": "…及其他 {count, plural, other {# 個}}", - "home.column_settings.basic": "基本設定", "home.column_settings.show_reblogs": "顯示轉嘟", "home.column_settings.show_replies": "顯示回覆", "home.hide_announcements": "隱藏公告", @@ -394,15 +421,21 @@ "lists.replies_policy.list": "列表成員", "lists.replies_policy.none": "沒有人", "lists.replies_policy.title": "顯示回覆:", - "lists.search": "搜尋您跟隨的使用者", + "lists.search": "搜尋您跟隨之使用者", "lists.subheading": "您的列表", "load_pending": "{count, plural, one {# 個新項目} other {# 個新項目}}", "loading_indicator.label": "正在載入...", "media_gallery.toggle_visible": "切換可見性", "moved_to_account_banner.text": "您的帳號 {disabledAccount} 目前已停用,因為您已搬家至 {movedToAccount}。", - "mute_modal.duration": "持續時間", - "mute_modal.hide_notifications": "是否隱藏來自這位使用者的通知?", - "mute_modal.indefinite": "無期限", + "mute_modal.hide_from_notifications": "於通知中隱藏", + "mute_modal.hide_options": "隱藏選項", + "mute_modal.indefinite": "直到我解除靜音他們", + "mute_modal.show_options": "顯示選項", + "mute_modal.they_can_mention_and_follow": "他們仍可提及或跟隨您,但您不會見到他們。", + "mute_modal.they_wont_know": "他們不會知道他們已被靜音。", + "mute_modal.title": "是否靜音該使用者?", + "mute_modal.you_wont_see_mentions": "您不會見到提及他們的嘟文。", + "mute_modal.you_wont_see_posts": "他們仍可讀取您的嘟文,但您不會見到他們的。", "navigation_bar.about": "關於", "navigation_bar.advanced_interface": "以進階網頁介面開啟", "navigation_bar.blocks": "已封鎖的使用者", @@ -440,15 +473,16 @@ "notification.reblog": "{name} 已轉嘟您的嘟文", "notification.status": "{name} 剛剛嘟文", "notification.update": "{name} 已編輯嘟文", + "notification_requests.accept": "接受", + "notification_requests.dismiss": "關閉", + "notification_requests.notifications_from": "來自 {name} 之通知", + "notification_requests.title": "已過濾之通知", "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": "提及:", @@ -474,6 +508,15 @@ "notifications.permission_denied": "由於之前已拒絕瀏覽器請求,因此無法使用桌面通知", "notifications.permission_denied_alert": "由於之前瀏覽器權限被拒絕,無法啟用桌面通知", "notifications.permission_required": "由於尚未授予所需的權限,因此無法使用桌面通知。", + "notifications.policy.filter_new_accounts.hint": "新增於過去 {days, plural, other {# 日}}", + "notifications.policy.filter_new_accounts_title": "新帳號", + "notifications.policy.filter_not_followers_hint": "包含最近 {days, plural, other {# 日}} 內跟隨您之使用者", + "notifications.policy.filter_not_followers_title": "未跟隨您之使用者", + "notifications.policy.filter_not_following_hint": "直至您手動核准他們", + "notifications.policy.filter_not_following_title": "您未跟隨之使用者", + "notifications.policy.filter_private_mentions_hint": "過濾通知,除非嘟文包含於您的提及,或您跟隨該發嘟帳號", + "notifications.policy.filter_private_mentions_title": "不請自來的私訊", + "notifications.policy.title": "過濾通知來自...", "notifications_permission_banner.enable": "啟用桌面通知", "notifications_permission_banner.how_to_control": "啟用桌面通知以於 Mastodon 沒有開啟的時候接收通知。啟用桌面通知後,您可以透過上面的 {icon} 按鈕準確的控制哪些類型的互動會產生桌面通知。", "notifications_permission_banner.title": "不要錯過任何東西!", @@ -486,7 +529,7 @@ "onboarding.follows.lead": "您的首頁時間軸是 Mastodon 的核心體驗。若您跟隨更多人,它將會變得更活躍有趣。這些個人檔案也許是個好起點,您可以隨時取消跟隨他們!", "onboarding.follows.title": "客製化您的首頁時間軸", "onboarding.profile.discoverable": "使我的個人檔案可以被找到", - "onboarding.profile.discoverable_hint": "當您於 Mastodon 上選擇加入可發現性時,您的嘟文可能會出現於搜尋結果與趨勢中。您的個人檔案可能會被推薦給與您志趣相投的人。", + "onboarding.profile.discoverable_hint": "當您於 Mastodon 上選擇加入可發現性時,您的嘟文可能會顯示於搜尋結果與趨勢中。您的個人檔案可能會被推薦給與您志趣相投的人。", "onboarding.profile.display_name": "顯示名稱", "onboarding.profile.display_name_hint": "完整名稱或暱稱...", "onboarding.profile.lead": "您隨時可以稍候於設定中完成此操作,將有更多自訂選項可使用。", @@ -531,7 +574,7 @@ "privacy.change": "調整嘟文隱私狀態", "privacy.direct.long": "此嘟文提及之所有人", "privacy.direct.short": "指定使用者", - "privacy.private.long": "只有跟隨您的人能看到", + "privacy.private.long": "只有跟隨您之使用者能看到", "privacy.private.short": "跟隨者", "privacy.public.long": "所有人 (無論在 Mastodon 上與否)", "privacy.public.short": "公開", @@ -650,10 +693,11 @@ "status.direct": "私訊 @{name}", "status.direct_indicator": "私訊", "status.edit": "編輯", - "status.edited": "編輯於 {date}", + "status.edited": "上次編輯於 {date}", "status.edited_x_times": "已編輯 {count, plural, one {{count} 次} other {{count} 次}}", "status.embed": "內嵌嘟文", "status.favourite": "最愛", + "status.favourites": "{count, plural, other {# 則最愛}}", "status.filter": "過濾此嘟文", "status.filtered": "已過濾", "status.hide": "隱藏嘟文", @@ -674,6 +718,7 @@ "status.reblog": "轉嘟", "status.reblog_private": "依照原嘟可見性轉嘟", "status.reblogged_by": "{name} 已轉嘟", + "status.reblogs": "{count, plural, other {# 則轉嘟}}", "status.reblogs.empty": "還沒有人轉嘟過這則嘟文。當有人轉嘟時,它將於此顯示。", "status.redraft": "刪除並重新編輯", "status.remove_bookmark": "移除書籤", diff --git a/app/javascript/mastodon/reducers/blocks.js b/app/javascript/mastodon/reducers/blocks.js deleted file mode 100644 index 1b65071634fb16..00000000000000 --- a/app/javascript/mastodon/reducers/blocks.js +++ /dev/null @@ -1,22 +0,0 @@ -import Immutable from 'immutable'; - -import { - BLOCKS_INIT_MODAL, -} from '../actions/blocks'; - -const initialState = Immutable.Map({ - new: Immutable.Map({ - account_id: null, - }), -}); - -export default function mutes(state = initialState, action) { - switch (action.type) { - case BLOCKS_INIT_MODAL: - return state.withMutations((state) => { - state.setIn(['new', 'account_id'], action.account.get('id')); - }); - default: - return state; - } -} diff --git a/app/javascript/mastodon/reducers/index.ts b/app/javascript/mastodon/reducers/index.ts index 1f7c1973eb906c..dc6449d08c53b0 100644 --- a/app/javascript/mastodon/reducers/index.ts +++ b/app/javascript/mastodon/reducers/index.ts @@ -10,7 +10,6 @@ import announcements from './announcements'; import antennaAdder from './antenna_adder'; import antennaEditor from './antenna_editor'; import antennas from './antennas'; -import blocks from './blocks'; import bookmark_categories from './bookmark_categories'; import bookmarkCategoryAdder from './bookmark_category_adder'; import bookmarkCategoryEditor from './bookmark_category_editor'; @@ -35,7 +34,6 @@ import markers from './markers'; import media_attachments from './media_attachments'; import meta from './meta'; import { modalReducer } from './modal'; -import mutes from './mutes'; import { notificationPolicyReducer } from './notification_policy'; import { notificationRequestsReducer } from './notification_requests'; import notifications from './notifications'; @@ -72,8 +70,6 @@ const reducers = { relationships: relationshipsReducer, settings, push_notifications, - mutes, - blocks, boosts, server, contexts, diff --git a/app/javascript/mastodon/reducers/mutes.js b/app/javascript/mastodon/reducers/mutes.js deleted file mode 100644 index a9eb61ff834cbc..00000000000000 --- a/app/javascript/mastodon/reducers/mutes.js +++ /dev/null @@ -1,31 +0,0 @@ -import Immutable from 'immutable'; - -import { - MUTES_INIT_MODAL, - MUTES_TOGGLE_HIDE_NOTIFICATIONS, - MUTES_CHANGE_DURATION, -} from '../actions/mutes'; - -const initialState = Immutable.Map({ - new: Immutable.Map({ - account: null, - notifications: true, - duration: 0, - }), -}); - -export default function mutes(state = initialState, action) { - switch (action.type) { - case MUTES_INIT_MODAL: - return state.withMutations((state) => { - state.setIn(['new', 'account'], action.account); - state.setIn(['new', 'notifications'], true); - }); - case MUTES_TOGGLE_HIDE_NOTIFICATIONS: - return state.updateIn(['new', 'notifications'], (old) => !old); - case MUTES_CHANGE_DURATION: - return state.setIn(['new', 'duration'], Number(action.duration)); - default: - return state; - } -} diff --git a/app/javascript/mastodon/utils/log_out.ts b/app/javascript/mastodon/utils/log_out.ts index 3a4cc8ecb1e52a..b08a61a6a28162 100644 --- a/app/javascript/mastodon/utils/log_out.ts +++ b/app/javascript/mastodon/utils/log_out.ts @@ -1,5 +1,3 @@ -import Rails from '@rails/ujs'; - export const logOut = () => { const form = document.createElement('form'); @@ -9,13 +7,18 @@ export const logOut = () => { methodInput.setAttribute('type', 'hidden'); form.appendChild(methodInput); - const csrfToken = Rails.csrfToken(); - const csrfParam = Rails.csrfParam(); + const csrfToken = document.querySelector( + 'meta[name=csrf-token]', + ); + + const csrfParam = document.querySelector( + 'meta[name=csrf-param]', + ); if (csrfParam && csrfToken) { const csrfInput = document.createElement('input'); - csrfInput.setAttribute('name', csrfParam); - csrfInput.setAttribute('value', csrfToken); + csrfInput.setAttribute('name', csrfParam.content); + csrfInput.setAttribute('value', csrfToken.content); csrfInput.setAttribute('type', 'hidden'); form.appendChild(csrfInput); } diff --git a/app/javascript/material-icons/400-24px/badge-fill.svg b/app/javascript/material-icons/400-24px/badge-fill.svg new file mode 100644 index 00000000000000..2f7175b7f12b88 --- /dev/null +++ b/app/javascript/material-icons/400-24px/badge-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/javascript/material-icons/400-24px/badge.svg b/app/javascript/material-icons/400-24px/badge.svg new file mode 100644 index 00000000000000..d413363a4cc91a --- /dev/null +++ b/app/javascript/material-icons/400-24px/badge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/javascript/material-icons/400-24px/domain_disabled-fill.svg b/app/javascript/material-icons/400-24px/domain_disabled-fill.svg new file mode 100644 index 00000000000000..2f16593d38e5fe --- /dev/null +++ b/app/javascript/material-icons/400-24px/domain_disabled-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/javascript/material-icons/400-24px/domain_disabled.svg b/app/javascript/material-icons/400-24px/domain_disabled.svg new file mode 100644 index 00000000000000..2f16593d38e5fe --- /dev/null +++ b/app/javascript/material-icons/400-24px/domain_disabled.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/javascript/material-icons/400-24px/globe-fill.svg b/app/javascript/material-icons/400-24px/globe-fill.svg new file mode 100644 index 00000000000000..c931f53c744fd3 --- /dev/null +++ b/app/javascript/material-icons/400-24px/globe-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/javascript/material-icons/400-24px/globe.svg b/app/javascript/material-icons/400-24px/globe.svg new file mode 100644 index 00000000000000..c931f53c744fd3 --- /dev/null +++ b/app/javascript/material-icons/400-24px/globe.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/javascript/material-icons/400-24px/history-fill.svg b/app/javascript/material-icons/400-24px/history-fill.svg new file mode 100644 index 00000000000000..2d8124b474acac --- /dev/null +++ b/app/javascript/material-icons/400-24px/history-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/javascript/material-icons/400-24px/history.svg b/app/javascript/material-icons/400-24px/history.svg new file mode 100644 index 00000000000000..2d8124b474acac --- /dev/null +++ b/app/javascript/material-icons/400-24px/history.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/javascript/material-icons/400-24px/person_remove-fill.svg b/app/javascript/material-icons/400-24px/person_remove-fill.svg new file mode 100644 index 00000000000000..239c7a49dcb7c0 --- /dev/null +++ b/app/javascript/material-icons/400-24px/person_remove-fill.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/javascript/material-icons/400-24px/person_remove.svg b/app/javascript/material-icons/400-24px/person_remove.svg new file mode 100644 index 00000000000000..725da3649b62a3 --- /dev/null +++ b/app/javascript/material-icons/400-24px/person_remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/javascript/material-icons/400-24px/star-fill.svg b/app/javascript/material-icons/400-24px/star-fill.svg index cb2231e63436ba..84e8230ab75aa6 100644 --- a/app/javascript/material-icons/400-24px/star-fill.svg +++ b/app/javascript/material-icons/400-24px/star-fill.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/javascript/material-icons/400-24px/star.svg b/app/javascript/material-icons/400-24px/star.svg index 1736e085d0683a..6a72ecc226ddb4 100644 --- a/app/javascript/material-icons/400-24px/star.svg +++ b/app/javascript/material-icons/400-24px/star.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/app/javascript/packs/public.jsx b/app/javascript/packs/public.jsx deleted file mode 100644 index d8a4c16034f64a..00000000000000 --- a/app/javascript/packs/public.jsx +++ /dev/null @@ -1,285 +0,0 @@ -import { createRoot } from 'react-dom/client'; - -import './public-path'; - -import { IntlMessageFormat } from 'intl-messageformat'; -import { defineMessages } from 'react-intl'; - -import Rails from '@rails/ujs'; -import axios from 'axios'; -import { throttle } from 'lodash'; - -import { start } from '../mastodon/common'; -import { timeAgoString } from '../mastodon/components/relative_timestamp'; -import emojify from '../mastodon/features/emoji/emoji'; -import loadKeyboardExtensions from '../mastodon/load_keyboard_extensions'; -import { loadLocale, getLocale } from '../mastodon/locales'; -import { loadPolyfills } from '../mastodon/polyfills'; -import ready from '../mastodon/ready'; - -import 'cocoon-js-vanilla'; - -start(); - -const messages = defineMessages({ - usernameTaken: { id: 'username.taken', defaultMessage: 'That username is taken. Try another' }, - passwordExceedsLength: { id: 'password_confirmation.exceeds_maxlength', defaultMessage: 'Password confirmation exceeds the maximum password length' }, - passwordDoesNotMatch: { id: 'password_confirmation.mismatching', defaultMessage: 'Password confirmation does not match' }, -}); - -window.addEventListener('message', e => { - const data = e.data || {}; - - if (!window.parent || data.type !== 'setHeight') { - return; - } - - ready(() => { - window.parent.postMessage({ - type: 'setHeight', - id: data.id, - height: document.getElementsByTagName('html')[0].scrollHeight, - }, '*'); - }); -}); - -function loaded() { - const { messages: localeData } = getLocale(); - - const locale = document.documentElement.lang; - - const dateTimeFormat = new Intl.DateTimeFormat(locale, { - year: 'numeric', - month: 'long', - day: 'numeric', - hour: 'numeric', - minute: 'numeric', - }); - - const dateFormat = new Intl.DateTimeFormat(locale, { - year: 'numeric', - month: 'short', - day: 'numeric', - timeFormat: false, - }); - - const timeFormat = new Intl.DateTimeFormat(locale, { - timeStyle: 'short', - }); - - const formatMessage = ({ id, defaultMessage }, values) => { - const messageFormat = new IntlMessageFormat(localeData[id] || defaultMessage, locale); - return messageFormat.format(values); - }; - - document.querySelectorAll('.emojify').forEach((content) => { - content.innerHTML = emojify(content.innerHTML); - }); - - document.querySelectorAll('time.formatted').forEach((content) => { - const datetime = new Date(content.getAttribute('datetime')); - const formattedDate = dateTimeFormat.format(datetime); - - content.title = formattedDate; - content.textContent = formattedDate; - }); - - const isToday = date => { - const today = new Date(); - - return date.getDate() === today.getDate() && - date.getMonth() === today.getMonth() && - date.getFullYear() === today.getFullYear(); - }; - const todayFormat = new IntlMessageFormat(localeData['relative_format.today'] || 'Today at {time}', locale); - - document.querySelectorAll('time.relative-formatted').forEach((content) => { - const datetime = new Date(content.getAttribute('datetime')); - - let formattedContent; - - if (isToday(datetime)) { - const formattedTime = timeFormat.format(datetime); - - formattedContent = todayFormat.format({ time: formattedTime }); - } else { - formattedContent = dateFormat.format(datetime); - } - - content.title = formattedContent; - content.textContent = formattedContent; - }); - - document.querySelectorAll('time.time-ago').forEach((content) => { - const datetime = new Date(content.getAttribute('datetime')); - const now = new Date(); - - const timeGiven = content.getAttribute('datetime').includes('T'); - content.title = timeGiven ? dateTimeFormat.format(datetime) : dateFormat.format(datetime); - content.textContent = timeAgoString({ - formatMessage, - formatDate: (date, options) => (new Intl.DateTimeFormat(locale, options)).format(date), - }, datetime, now, now.getFullYear(), timeGiven); - }); - - const reactComponents = document.querySelectorAll('[data-component]'); - - if (reactComponents.length > 0) { - import(/* webpackChunkName: "containers/media_container" */ '../mastodon/containers/media_container') - .then(({ default: MediaContainer }) => { - reactComponents.forEach((component) => { - Array.from(component.children).forEach((child) => { - component.removeChild(child); - }); - }); - - const content = document.createElement('div'); - - const root = createRoot(content); - root.render(); - document.body.appendChild(content); - }) - .catch(error => { - console.error(error); - }); - } - - Rails.delegate(document, '#user_account_attributes_username', 'input', throttle(({ target }) => { - if (target.value && target.value.length > 0) { - axios.get('/api/v1/accounts/lookup', { params: { acct: target.value } }).then(() => { - target.setCustomValidity(formatMessage(messages.usernameTaken)); - }).catch(() => { - target.setCustomValidity(''); - }); - } else { - target.setCustomValidity(''); - } - }, 500, { leading: false, trailing: true })); - - Rails.delegate(document, '#user_password,#user_password_confirmation', 'input', () => { - const password = document.getElementById('user_password'); - const confirmation = document.getElementById('user_password_confirmation'); - if (!confirmation) return; - - if (confirmation.value && confirmation.value.length > password.maxLength) { - confirmation.setCustomValidity(formatMessage(messages.passwordExceedsLength)); - } else if (password.value && password.value !== confirmation.value) { - confirmation.setCustomValidity(formatMessage(messages.passwordDoesNotMatch)); - } else { - confirmation.setCustomValidity(''); - } - }); - - Rails.delegate(document, '.status__content__spoiler-link', 'click', function() { - const statusEl = this.parentNode.parentNode; - - if (statusEl.dataset.spoiler === 'expanded') { - statusEl.dataset.spoiler = 'folded'; - this.textContent = (new IntlMessageFormat(localeData['status.show_more'] || 'Show more', locale)).format(); - } else { - statusEl.dataset.spoiler = 'expanded'; - this.textContent = (new IntlMessageFormat(localeData['status.show_less'] || 'Show less', locale)).format(); - } - - return false; - }); - - document.querySelectorAll('.status__content__spoiler-link').forEach((spoilerLink) => { - const statusEl = spoilerLink.parentNode.parentNode; - const message = (statusEl.dataset.spoiler === 'expanded') ? (localeData['status.show_less'] || 'Show less') : (localeData['status.show_more'] || 'Show more'); - spoilerLink.textContent = (new IntlMessageFormat(message, locale)).format(); - }); -} - -Rails.delegate(document, '#edit_profile input[type=file]', 'change', ({ target }) => { - const avatar = document.getElementById(target.id + '-preview'); - const [file] = target.files || []; - const url = file ? URL.createObjectURL(file) : avatar.dataset.originalSrc; - - avatar.src = url; -}); - -Rails.delegate(document, '.input-copy input', 'click', ({ target }) => { - target.focus(); - target.select(); - target.setSelectionRange(0, target.value.length); -}); - -Rails.delegate(document, '.input-copy button', 'click', ({ target }) => { - const input = target.parentNode.querySelector('.input-copy__wrapper input'); - - const oldReadOnly = input.readonly; - - input.readonly = false; - input.focus(); - input.select(); - input.setSelectionRange(0, input.value.length); - - try { - if (document.execCommand('copy')) { - input.blur(); - target.parentNode.classList.add('copied'); - - setTimeout(() => { - target.parentNode.classList.remove('copied'); - }, 700); - } - } catch (err) { - console.error(err); - } - - input.readonly = oldReadOnly; -}); - -const toggleSidebar = () => { - const sidebar = document.querySelector('.sidebar ul'); - const toggleButton = document.querySelector('.sidebar__toggle__icon'); - - if (sidebar.classList.contains('visible')) { - document.body.style.overflow = null; - toggleButton.setAttribute('aria-expanded', 'false'); - } else { - document.body.style.overflow = 'hidden'; - toggleButton.setAttribute('aria-expanded', 'true'); - } - - toggleButton.classList.toggle('active'); - sidebar.classList.toggle('visible'); -}; - -Rails.delegate(document, '.sidebar__toggle__icon', 'click', () => { - toggleSidebar(); -}); - -Rails.delegate(document, '.sidebar__toggle__icon', 'keydown', e => { - if (e.key === ' ' || e.key === 'Enter') { - e.preventDefault(); - toggleSidebar(); - } -}); - -Rails.delegate(document, '.custom-emoji', 'mouseover', ({ target }) => target.src = target.getAttribute('data-original')); -Rails.delegate(document, '.custom-emoji', 'mouseout', ({ target }) => target.src = target.getAttribute('data-static')); - -// Empty the honeypot fields in JS in case something like an extension -// automatically filled them. -Rails.delegate(document, '#registration_new_user,#new_user', 'submit', () => { - ['user_website', 'user_confirm_password', 'registration_user_website', 'registration_user_confirm_password'].forEach(id => { - const field = document.getElementById(id); - if (field) { - field.value = ''; - } - }); -}); - -function main() { - ready(loaded); -} - -loadPolyfills() - .then(loadLocale) - .then(main) - .then(loadKeyboardExtensions) - .catch(error => { - console.error(error); - }); diff --git a/app/javascript/packs/public.tsx b/app/javascript/packs/public.tsx new file mode 100644 index 00000000000000..044faeb29605cb --- /dev/null +++ b/app/javascript/packs/public.tsx @@ -0,0 +1,462 @@ +import { createRoot } from 'react-dom/client'; + +import './public-path'; + +import { IntlMessageFormat } from 'intl-messageformat'; +import type { MessageDescriptor, PrimitiveType } from 'react-intl'; +import { defineMessages } from 'react-intl'; + +import Rails from '@rails/ujs'; +import axios from 'axios'; +import { throttle } from 'lodash'; + +import { start } from '../mastodon/common'; +import { timeAgoString } from '../mastodon/components/relative_timestamp'; +import emojify from '../mastodon/features/emoji/emoji'; +import loadKeyboardExtensions from '../mastodon/load_keyboard_extensions'; +import { loadLocale, getLocale } from '../mastodon/locales'; +import { loadPolyfills } from '../mastodon/polyfills'; +import ready from '../mastodon/ready'; + +import 'cocoon-js-vanilla'; + +start(); + +const messages = defineMessages({ + usernameTaken: { + id: 'username.taken', + defaultMessage: 'That username is taken. Try another', + }, + passwordExceedsLength: { + id: 'password_confirmation.exceeds_maxlength', + defaultMessage: 'Password confirmation exceeds the maximum password length', + }, + passwordDoesNotMatch: { + id: 'password_confirmation.mismatching', + defaultMessage: 'Password confirmation does not match', + }, +}); + +interface SetHeightMessage { + type: 'setHeight'; + id: string; + height: number; +} + +function isSetHeightMessage(data: unknown): data is SetHeightMessage { + if ( + data && + typeof data === 'object' && + 'type' in data && + data.type === 'setHeight' + ) + return true; + else return false; +} + +window.addEventListener('message', (e) => { + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- typings are not correct, it can be null in very rare cases + if (!e.data || !isSetHeightMessage(e.data) || !window.parent) return; + + const data = e.data; + + ready(() => { + window.parent.postMessage( + { + type: 'setHeight', + id: data.id, + height: document.getElementsByTagName('html')[0].scrollHeight, + }, + '*', + ); + }).catch((e) => { + console.error('Error in setHeightMessage postMessage', e); + }); +}); + +function loaded() { + const { messages: localeData } = getLocale(); + + const locale = document.documentElement.lang; + + const dateTimeFormat = new Intl.DateTimeFormat(locale, { + year: 'numeric', + month: 'long', + day: 'numeric', + hour: 'numeric', + minute: 'numeric', + }); + + const dateFormat = new Intl.DateTimeFormat(locale, { + year: 'numeric', + month: 'short', + day: 'numeric', + }); + + const timeFormat = new Intl.DateTimeFormat(locale, { + timeStyle: 'short', + }); + + const formatMessage = ( + { id, defaultMessage }: MessageDescriptor, + values?: Record, + ) => { + let message: string | undefined = undefined; + + if (id) message = localeData[id]; + + if (!message) message = defaultMessage as string; + + const messageFormat = new IntlMessageFormat(message, locale); + return messageFormat.format(values) as string; + }; + + document.querySelectorAll('.emojify').forEach((content) => { + content.innerHTML = emojify(content.innerHTML); + }); + + document + .querySelectorAll('time.formatted') + .forEach((content) => { + const datetime = new Date(content.dateTime); + const formattedDate = dateTimeFormat.format(datetime); + + content.title = formattedDate; + content.textContent = formattedDate; + }); + + const isToday = (date: Date) => { + const today = new Date(); + + return ( + date.getDate() === today.getDate() && + date.getMonth() === today.getMonth() && + date.getFullYear() === today.getFullYear() + ); + }; + const todayFormat = new IntlMessageFormat( + localeData['relative_format.today'] || 'Today at {time}', + locale, + ); + + document + .querySelectorAll('time.relative-formatted') + .forEach((content) => { + const datetime = new Date(content.dateTime); + + let formattedContent: string; + + if (isToday(datetime)) { + const formattedTime = timeFormat.format(datetime); + + formattedContent = todayFormat.format({ + time: formattedTime, + }) as string; + } else { + formattedContent = dateFormat.format(datetime); + } + + content.title = formattedContent; + content.textContent = formattedContent; + }); + + document + .querySelectorAll('time.time-ago') + .forEach((content) => { + const datetime = new Date(content.dateTime); + const now = new Date(); + + const timeGiven = content.dateTime.includes('T'); + content.title = timeGiven + ? dateTimeFormat.format(datetime) + : dateFormat.format(datetime); + content.textContent = timeAgoString( + { + formatMessage, + formatDate: (date: Date, options) => + new Intl.DateTimeFormat(locale, options).format(date), + }, + datetime, + now.getTime(), + now.getFullYear(), + timeGiven, + ); + }); + + const reactComponents = document.querySelectorAll('[data-component]'); + + if (reactComponents.length > 0) { + import( + /* webpackChunkName: "containers/media_container" */ '../mastodon/containers/media_container' + ) + .then(({ default: MediaContainer }) => { + reactComponents.forEach((component) => { + Array.from(component.children).forEach((child) => { + component.removeChild(child); + }); + }); + + const content = document.createElement('div'); + + const root = createRoot(content); + root.render( + , + ); + document.body.appendChild(content); + + return true; + }) + .catch((error) => { + console.error(error); + }); + } + + Rails.delegate( + document, + 'input#user_account_attributes_username', + 'input', + throttle( + ({ target }) => { + if (!(target instanceof HTMLInputElement)) return; + + if (target.value && target.value.length > 0) { + axios + .get('/api/v1/accounts/lookup', { params: { acct: target.value } }) + .then(() => { + target.setCustomValidity(formatMessage(messages.usernameTaken)); + return true; + }) + .catch(() => { + target.setCustomValidity(''); + }); + } else { + target.setCustomValidity(''); + } + }, + 500, + { leading: false, trailing: true }, + ), + ); + + Rails.delegate( + document, + '#user_password,#user_password_confirmation', + 'input', + () => { + const password = document.querySelector( + 'input#user_password', + ); + const confirmation = document.querySelector( + 'input#user_password_confirmation', + ); + if (!confirmation || !password) return; + + if ( + confirmation.value && + confirmation.value.length > password.maxLength + ) { + confirmation.setCustomValidity( + formatMessage(messages.passwordExceedsLength), + ); + } else if (password.value && password.value !== confirmation.value) { + confirmation.setCustomValidity( + formatMessage(messages.passwordDoesNotMatch), + ); + } else { + confirmation.setCustomValidity(''); + } + }, + ); + + Rails.delegate( + document, + 'button.status__content__spoiler-link', + 'click', + function () { + if (!(this instanceof HTMLButtonElement)) return; + + const statusEl = this.parentNode?.parentNode; + + if ( + !( + statusEl instanceof HTMLDivElement && + statusEl.classList.contains('.status__content') + ) + ) + return; + + if (statusEl.dataset.spoiler === 'expanded') { + statusEl.dataset.spoiler = 'folded'; + this.textContent = new IntlMessageFormat( + localeData['status.show_more'] || 'Show more', + locale, + ).format() as string; + } else { + statusEl.dataset.spoiler = 'expanded'; + this.textContent = new IntlMessageFormat( + localeData['status.show_less'] || 'Show less', + locale, + ).format() as string; + } + }, + ); + + document + .querySelectorAll('button.status__content__spoiler-link') + .forEach((spoilerLink) => { + const statusEl = spoilerLink.parentNode?.parentNode; + + if ( + !( + statusEl instanceof HTMLDivElement && + statusEl.classList.contains('.status__content') + ) + ) + return; + + const message = + statusEl.dataset.spoiler === 'expanded' + ? localeData['status.show_less'] || 'Show less' + : localeData['status.show_more'] || 'Show more'; + spoilerLink.textContent = new IntlMessageFormat( + message, + locale, + ).format() as string; + }); +} + +Rails.delegate( + document, + '#edit_profile input[type=file]', + 'change', + ({ target }) => { + if (!(target instanceof HTMLInputElement)) return; + + const avatar = document.querySelector( + `img#${target.id}-preview`, + ); + + if (!avatar) return; + + let file: File | undefined; + if (target.files) file = target.files[0]; + + const url = file ? URL.createObjectURL(file) : avatar.dataset.originalSrc; + + if (url) avatar.src = url; + }, +); + +Rails.delegate(document, '.input-copy input', 'click', ({ target }) => { + if (!(target instanceof HTMLInputElement)) return; + + target.focus(); + target.select(); + target.setSelectionRange(0, target.value.length); +}); + +Rails.delegate(document, '.input-copy button', 'click', ({ target }) => { + if (!(target instanceof HTMLButtonElement)) return; + + const input = target.parentNode?.querySelector( + '.input-copy__wrapper input', + ); + + if (!input) return; + + const oldReadOnly = input.readOnly; + + input.readOnly = false; + input.focus(); + input.select(); + input.setSelectionRange(0, input.value.length); + + try { + if (document.execCommand('copy')) { + input.blur(); + + const parent = target.parentElement; + + if (!parent) return; + parent.classList.add('copied'); + + setTimeout(() => { + parent.classList.remove('copied'); + }, 700); + } + } catch (err) { + console.error(err); + } + + input.readOnly = oldReadOnly; +}); + +const toggleSidebar = () => { + const sidebar = document.querySelector('.sidebar ul'); + const toggleButton = document.querySelector( + 'a.sidebar__toggle__icon', + ); + + if (!sidebar || !toggleButton) return; + + if (sidebar.classList.contains('visible')) { + document.body.style.overflow = ''; + toggleButton.setAttribute('aria-expanded', 'false'); + } else { + document.body.style.overflow = 'hidden'; + toggleButton.setAttribute('aria-expanded', 'true'); + } + + toggleButton.classList.toggle('active'); + sidebar.classList.toggle('visible'); +}; + +Rails.delegate(document, '.sidebar__toggle__icon', 'click', () => { + toggleSidebar(); +}); + +Rails.delegate(document, '.sidebar__toggle__icon', 'keydown', (e) => { + if (e.key === ' ' || e.key === 'Enter') { + e.preventDefault(); + toggleSidebar(); + } +}); + +Rails.delegate(document, 'img.custom-emoji', 'mouseover', ({ target }) => { + if (target instanceof HTMLImageElement && target.dataset.original) + target.src = target.dataset.original; +}); +Rails.delegate(document, 'img.custom-emoji', 'mouseout', ({ target }) => { + if (target instanceof HTMLImageElement && target.dataset.static) + target.src = target.dataset.static; +}); + +// Empty the honeypot fields in JS in case something like an extension +// automatically filled them. +Rails.delegate(document, '#registration_new_user,#new_user', 'submit', () => { + [ + 'user_website', + 'user_confirm_password', + 'registration_user_website', + 'registration_user_confirm_password', + ].forEach((id) => { + const field = document.querySelector(`input#${id}`); + if (field) { + field.value = ''; + } + }); +}); + +function main() { + ready(loaded).catch((error) => { + console.error(error); + }); +} + +loadPolyfills() + .then(loadLocale) + .then(main) + .then(loadKeyboardExtensions) + .catch((error) => { + console.error(error); + }); diff --git a/app/javascript/styles/mastodon-light/diff.scss b/app/javascript/styles/mastodon-light/diff.scss index e3872283e14033..493e377d610023 100644 --- a/app/javascript/styles/mastodon-light/diff.scss +++ b/app/javascript/styles/mastodon-light/diff.scss @@ -21,25 +21,6 @@ html { } // Change default background colors of columns -.column > .scrollable, -.getting-started, -.column-inline-form, -.regeneration-indicator { - background: $white; - border: 1px solid lighten($ui-base-color, 8%); - border-top: 0; -} - -.error-column { - border: 1px solid lighten($ui-base-color, 8%); -} - -.column > .scrollable.about { - border-top: 1px solid lighten($ui-base-color, 8%); -} - -.about__meta, -.about__section__title, .interaction-modal { background: $white; border: 1px solid lighten($ui-base-color, 8%); @@ -53,37 +34,10 @@ html { background: lighten($ui-base-color, 12%); } -.filter-form { - background: $white; - border-bottom: 1px solid lighten($ui-base-color, 8%); -} - -.column-back-button, -.column-header { - background: $white; - border: 1px solid lighten($ui-base-color, 8%); - - @media screen and (max-width: $no-gap-breakpoint) { - border-top: 0; - } - - &--slim-button { - top: -50px; - right: 0; - } -} - -.column-header__back-button, -.column-header__button, -.column-header__button.active, .account__header { background: $white; } -.column-header { - border-bottom: 0; -} - .column-header__button.active { color: $ui-highlight-color; @@ -91,7 +45,6 @@ html { &:active, &:focus { color: $ui-highlight-color; - background: $white; } } @@ -117,25 +70,6 @@ html { } } -.column-subheading { - background: darken($ui-base-color, 4%); - border-bottom: 1px solid lighten($ui-base-color, 8%); -} - -.getting-started, -.scrollable { - .column-link { - background: $white; - border-bottom: 1px solid lighten($ui-base-color, 8%); - - &:hover, - &:active, - &:focus { - background: $ui-base-color; - } - } -} - .getting-started .navigation-bar { border-top: 1px solid lighten($ui-base-color, 8%); border-bottom: 1px solid lighten($ui-base-color, 8%); @@ -168,23 +102,6 @@ html { border-bottom: 0; } -.notification__filter-bar { - border: 1px solid lighten($ui-base-color, 8%); - border-top: 0; -} - -.drawer__header, -.drawer__inner { - background: $white; - border: 1px solid lighten($ui-base-color, 8%); -} - -.drawer__inner__mastodon { - background: $white - url('data:image/svg+xml;utf8,') - no-repeat bottom / 100% auto; -} - .upload-progress__backdrop { background: $ui-base-color; } @@ -194,11 +111,6 @@ html { background: lighten($white, 4%); } -.detailed-status, -.detailed-status__action-bar { - background: $white; -} - // Change the background colors of status__content__spoiler-link .reply-indicator__content .status__content__spoiler-link, .status__content .status__content__spoiler-link { @@ -351,11 +263,11 @@ html { } .react-toggle-track { - background: $ui-secondary-color; + background: $ui-primary-color; } .react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track { - background: darken($ui-secondary-color, 10%); + background: lighten($ui-primary-color, 10%); } .react-toggle.react-toggle--checked:hover:not(.react-toggle--disabled) diff --git a/app/javascript/styles/mastodon-light/variables.scss b/app/javascript/styles/mastodon-light/variables.scss index a1cccc07a29f74..e0437c95236ced 100644 --- a/app/javascript/styles/mastodon-light/variables.scss +++ b/app/javascript/styles/mastodon-light/variables.scss @@ -62,4 +62,8 @@ $emojis-requiring-inversion: 'chains'; .theme-mastodon-light { --dropdown-border-color: #d9e1e8; --dropdown-background-color: #fff; + --background-border-color: #d9e1e8; + --background-color: #fff; + --background-color-tint: rgba(255, 255, 255, 90%); + --background-filter: blur(10px); } diff --git a/app/javascript/styles/mastodon/about.scss b/app/javascript/styles/mastodon/about.scss index b970dccd2fe528..42f1fda0f9e6ef 100644 --- a/app/javascript/styles/mastodon/about.scss +++ b/app/javascript/styles/mastodon/about.scss @@ -26,7 +26,7 @@ $fluid-breakpoint: $maximum-width + 20px; li { position: relative; - border-bottom: 1px solid lighten($ui-base-color, 8%); + border-bottom: 1px solid var(--background-border-color); padding: 1em 1.75em; padding-inline-start: 3em; font-weight: 500; diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss index 0aa14c27b06866..22626264207c53 100644 --- a/app/javascript/styles/mastodon/admin.scss +++ b/app/javascript/styles/mastodon/admin.scss @@ -1385,8 +1385,8 @@ a.sparkline { } .account-card { - background: $ui-base-color; border-radius: 4px; + border: 1px solid lighten($ui-base-color, 8%); &__permalink { color: inherit; diff --git a/app/javascript/styles/mastodon/basics.scss b/app/javascript/styles/mastodon/basics.scss index 28dad81da5414b..2e7d5e5e9c5287 100644 --- a/app/javascript/styles/mastodon/basics.scss +++ b/app/javascript/styles/mastodon/basics.scss @@ -8,7 +8,7 @@ body { font-family: $font-sans-serif, sans-serif; - background: darken($ui-base-color, 8%); + background: var(--background-color); font-size: 13px; line-height: 18px; font-weight: 400; diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index c4972586207d20..d52648dccd122a 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -106,17 +106,17 @@ } &.button-secondary { - color: $ui-button-secondary-color; + color: $highlight-text-color; background: transparent; padding: 6px 17px; - border: 1px solid $ui-button-secondary-border-color; + border: 1px solid $highlight-text-color; &:active, &:focus, &:hover { - border-color: $ui-button-secondary-focus-background-color; - color: $ui-button-secondary-focus-color; - background-color: $ui-button-secondary-focus-background-color; + border-color: lighten($highlight-text-color, 4%); + color: lighten($highlight-text-color, 4%); + background-color: transparent; text-decoration: none; } @@ -1326,7 +1326,7 @@ body > [data-popper-placement] { box-sizing: border-box; width: 100%; clear: both; - border-bottom: 1px solid lighten($ui-base-color, 8%); + border-bottom: 1px solid var(--background-border-color); &__button { display: inline; @@ -1347,19 +1347,14 @@ body > [data-popper-placement] { .focusable { &:focus { outline: 0; - background: lighten($ui-base-color, 4%); - - .detailed-status, - .detailed-status__action-bar { - background: lighten($ui-base-color, 8%); - } + background: rgba($ui-highlight-color, 0.05); } } .status { padding: 16px; min-height: 54px; - border-bottom: 1px solid lighten($ui-base-color, 8%); + border-bottom: 1px solid var(--background-border-color); cursor: auto; @keyframes fade { @@ -1604,10 +1599,10 @@ body > [data-popper-placement] { } .status__wrapper-direct { - background: mix($ui-base-color, $ui-highlight-color, 95%); + background: rgba($ui-highlight-color, 0.05); &:focus { - background: mix(lighten($ui-base-color, 4%), $ui-highlight-color, 95%); + background: rgba($ui-highlight-color, 0.05); } .status__prepend { @@ -1679,9 +1674,8 @@ body > [data-popper-placement] { } .detailed-status { - background: lighten($ui-base-color, 4%); padding: 16px; - border-top: 1px solid lighten($ui-base-color, 8%); + border-top: 1px solid var(--background-border-color); &--flex { display: flex; @@ -1734,22 +1728,41 @@ body > [data-popper-placement] { } .detailed-status__meta { - margin-top: 16px; + margin-top: 24px; color: $dark-text-color; font-size: 14px; line-height: 18px; + &__line { + border-bottom: 1px solid var(--background-border-color); + padding: 8px 0; + display: flex; + align-items: center; + gap: 8px; + + &:first-child { + padding-top: 0; + } + + &:last-child { + padding-bottom: 0; + border-bottom: 0; + } + } + .icon { - width: 15px; - height: 15px; - vertical-align: middle; + width: 18px; + height: 18px; + } + + .animated-number { + color: $secondary-text-color; } } .detailed-status__action-bar { - background: lighten($ui-base-color, 4%); - border-top: 1px solid lighten($ui-base-color, 8%); - border-bottom: 1px solid lighten($ui-base-color, 8%); + border-top: 1px solid var(--background-border-color); + border-bottom: 1px solid var(--background-border-color); display: flex; flex-direction: row; padding: 10px 0; @@ -1787,24 +1800,11 @@ body > [data-popper-placement] { color: inherit; text-decoration: none; gap: 6px; - position: relative; - top: 0.145em; - - .icon { - top: 0; - } -} - -.detailed-status__favorites, -.detailed-status__reblogs { - font-weight: 500; - font-size: 12px; - line-height: 18px; } .domain { padding: 10px; - border-bottom: 1px solid lighten($ui-base-color, 8%); + border-bottom: 1px solid var(--background-border-color); .domain__domain-name { flex: 1 1 auto; @@ -1828,7 +1828,7 @@ body > [data-popper-placement] { .account { padding: 16px; - border-bottom: 1px solid lighten($ui-base-color, 8%); + border-bottom: 1px solid var(--background-border-color); .account__display-name { flex: 1 1 auto; @@ -1861,6 +1861,118 @@ body > [data-popper-placement] { } } + &__domain-pill { + display: inline-flex; + background: rgba($highlight-text-color, 0.2); + border-radius: 4px; + border: 0; + color: $highlight-text-color; + font-weight: 500; + font-size: 12px; + line-height: 16px; + padding: 4px 8px; + + &.active { + color: $white; + background: $ui-highlight-color; + } + + &__popout { + background: var(--dropdown-background-color); + backdrop-filter: var(--background-filter); + border: 1px solid var(--dropdown-border-color); + box-shadow: var(--dropdown-shadow); + max-width: 320px; + padding: 16px; + border-radius: 8px; + display: flex; + flex-direction: column; + gap: 24px; + font-size: 14px; + line-height: 20px; + color: $darker-text-color; + + .link-button { + display: inline; + font-size: inherit; + line-height: inherit; + } + + &__header { + display: flex; + align-items: center; + gap: 12px; + + &__icon { + width: 40px; + height: 40px; + background: $ui-highlight-color; + color: $white; + display: flex; + align-items: center; + justify-content: center; + border-radius: 50%; + flex-shrink: 0; + } + + h3 { + font-size: 17px; + line-height: 22px; + color: $primary-text-color; + } + } + + &__handle { + border: 2px dashed $highlight-text-color; + background: rgba($highlight-text-color, 0.1); + padding: 12px 8px; + color: $highlight-text-color; + border-radius: 4px; + + &__label { + font-size: 11px; + line-height: 16px; + font-weight: 500; + } + + &__handle { + user-select: all; + } + } + + &__parts { + display: flex; + flex-direction: column; + gap: 8px; + font-size: 12px; + line-height: 16px; + + & > div { + display: flex; + align-items: flex-start; + gap: 12px; + } + + &__icon { + width: 40px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + color: $highlight-text-color; + } + + h6 { + font-size: 14px; + line-height: 20px; + font-weight: 500; + color: $primary-text-color; + } + } + } + } + &__note { font-size: 14px; font-weight: 400; @@ -2095,7 +2207,7 @@ a.account__display-name { .notification__report { padding: 16px; - border-bottom: 1px solid lighten($ui-base-color, 8%); + border-bottom: 1px solid var(--background-border-color); display: flex; gap: 10px; @@ -2359,6 +2471,7 @@ a.account__display-name { .dropdown-menu { background: var(--dropdown-background-color); + backdrop-filter: var(--background-filter); border: 1px solid var(--dropdown-border-color); padding: 4px; border-radius: 4px; @@ -2381,6 +2494,10 @@ a.account__display-name { outline: 1px dotted; } + &:hover { + text-decoration: underline; + } + .icon { width: 15px; height: 15px; @@ -2549,6 +2666,7 @@ $ui-header-height: 55px; z-index: 3; justify-content: space-between; align-items: center; + backdrop-filter: var(--background-filter); &__logo { display: inline-flex; @@ -2607,7 +2725,8 @@ $ui-header-height: 55px; } .tabs-bar__wrapper { - background: darken($ui-base-color, 8%); + background: var(--background-color-tint); + backdrop-filter: var(--background-filter); position: sticky; top: $ui-header-height; z-index: 2; @@ -2643,8 +2762,15 @@ $ui-header-height: 55px; flex-direction: column; > .scrollable { - background: $ui-base-color; + border: 1px solid var(--background-border-color); + border-top: 0; border-radius: 0 0 4px 4px; + + &.about, + &.privacy-policy { + border-top: 1px solid var(--background-border-color); + border-radius: 4px; + } } } @@ -2674,7 +2800,6 @@ $ui-header-height: 55px; font-size: 16px; align-items: center; justify-content: center; - border-bottom: 2px solid transparent; } .column, @@ -2803,8 +2928,7 @@ $ui-header-height: 55px; .navigation-panel { margin: 0; - background: $ui-base-color; - border-inline-start: 1px solid lighten($ui-base-color, 8%); + border-inline-start: 1px solid var(--background-border-color); height: 100vh; } @@ -2822,8 +2946,15 @@ $ui-header-height: 55px; .layout-single-column .ui__header { display: flex; - background: $ui-base-color; - border-bottom: 1px solid lighten($ui-base-color, 8%); + background: var(--background-color-tint); + border-bottom: 1px solid var(--background-border-color); + } + + .column > .scrollable, + .tabs-bar__wrapper .column-header, + .tabs-bar__wrapper .column-back-button { + border-left: 0; + border-right: 0; } .column-header, @@ -2881,7 +3012,7 @@ $ui-header-height: 55px; inset-inline-start: 9px; top: -13px; background: $ui-highlight-color; - border: 2px solid lighten($ui-base-color, 8%); + border: 2px solid var(--background-color); padding: 1px 6px; border-radius: 6px; font-size: 10px; @@ -2903,7 +3034,7 @@ $ui-header-height: 55px; } .column-link--transparent .icon-with-badge__badge { - border-color: darken($ui-base-color, 8%); + border-color: var(--background-color); } .column-title { @@ -3253,7 +3384,7 @@ $ui-header-height: 55px; flex: 0 0 auto; border: 0; background: transparent; - border-top: 1px solid lighten($ui-base-color, 4%); + border-top: 1px solid var(--background-border-color); margin: 10px 0; } @@ -3270,13 +3401,14 @@ $ui-header-height: 55px; overflow: hidden; display: flex; border-radius: 4px; + border: 1px solid var(--background-border-color); } .drawer__inner { position: absolute; top: 0; inset-inline-start: 0; - background: darken($ui-base-color, 4%); + background: var(--background-color); box-sizing: border-box; padding: 0; display: flex; @@ -3285,15 +3417,11 @@ $ui-header-height: 55px; overflow-y: auto; width: 100%; height: 100%; - - &.darker { - background: $ui-base-color; - } } .drawer__inner__mastodon { - background: darken($ui-base-color, 4%) - url('data:image/svg+xml;utf8,') + background: var(--background-color) + url('data:image/svg+xml;utf8,') no-repeat bottom / 100% auto; flex: 1; min-height: 47px; @@ -3317,7 +3445,7 @@ $ui-header-height: 55px; .drawer__header { flex: 0 0 auto; font-size: 16px; - background: darken($ui-base-color, 4%); + border: 1px solid var(--background-border-color); margin-bottom: 10px; display: flex; flex-direction: row; @@ -3327,7 +3455,7 @@ $ui-header-height: 55px; a:hover, a:focus, a:active { - background: $ui-base-color; + color: $primary-text-color; } } @@ -3372,15 +3500,14 @@ $ui-header-height: 55px; .column-back-button { box-sizing: border-box; width: 100%; - background: $ui-base-color; + background: transparent; + border: 1px solid var(--background-border-color); border-radius: 4px 4px 0 0; color: $highlight-text-color; cursor: pointer; flex: 0 0 auto; font-size: 16px; line-height: inherit; - border: 0; - border-bottom: 1px solid lighten($ui-base-color, 8%); text-align: unset; padding: 13px; margin: 0; @@ -3393,13 +3520,17 @@ $ui-header-height: 55px; &:hover { text-decoration: underline; } + + @media screen and (max-width: $no-gap-breakpoint) { + border-top: 0; + } } .column-header__back-button { display: flex; align-items: center; gap: 5px; - background: $ui-base-color; + background: transparent; border: 0; font-family: inherit; color: $highlight-text-color; @@ -3454,7 +3585,7 @@ $ui-header-height: 55px; height: 20px; padding: 0; border-radius: 10px; - background-color: #626982; + background-color: $ui-primary-color; } .react-toggle--focus { @@ -3477,7 +3608,7 @@ $ui-header-height: 55px; width: 16px; height: 16px; border-radius: 50%; - background-color: $primary-text-color; + background-color: $ui-button-color; box-sizing: border-box; transition: all 0.25s ease; transition-property: border-color, left; @@ -3488,6 +3619,15 @@ $ui-header-height: 55px; border-color: $ui-highlight-color; } +.react-toggle:hover:not(.react-toggle--disabled) .react-toggle-track { + background: darken($ui-primary-color, 5%); +} + +.react-toggle.react-toggle--checked:hover:not(.react-toggle--disabled) + .react-toggle-track { + background: lighten($ui-highlight-color, 5%); +} + .switch-to-advanced { color: $light-text-color; background-color: $ui-base-color; @@ -3505,8 +3645,6 @@ $ui-header-height: 55px; } .column-link { - background: lighten($ui-base-color, 8%); - color: $primary-text-color; display: flex; align-items: center; gap: 5px; @@ -3516,6 +3654,8 @@ $ui-header-height: 55px; overflow: hidden; white-space: nowrap; border: 0; + background: transparent; + color: $secondary-text-color; border-left: 4px solid transparent; position: relative; z-index: 0; @@ -3523,7 +3663,11 @@ $ui-header-height: 55px; &:hover, &:focus, &:active { - background: lighten($ui-base-color, 11%); + color: $primary-text-color; + } + + &.active { + color: $highlight-text-color; } &:focus { @@ -3535,22 +3679,6 @@ $ui-header-height: 55px; border-radius: 0; } - &--transparent { - background: transparent; - color: $secondary-text-color; - - &:hover, - &:focus, - &:active { - background: transparent; - color: $primary-text-color; - } - - &.active { - color: $highlight-text-color; - } - } - &--logo { background: transparent; padding: 10px; @@ -3587,8 +3715,8 @@ $ui-header-height: 55px; } .column-subheading { - background: $ui-base-color; - color: $dark-text-color; + background: var(--surface-background-color); + color: $darker-text-color; padding: 8px 20px; font-size: 12px; font-weight: 500; @@ -3596,12 +3724,6 @@ $ui-header-height: 55px; cursor: default; } -.getting-started__wrapper, -.getting-started, -.flex-spacer { - background: $ui-base-color; -} - .getting-started__wrapper { flex: 0 0 auto; } @@ -3613,6 +3735,8 @@ $ui-header-height: 55px; .getting-started { color: $dark-text-color; overflow: auto; + border: 1px solid var(--background-border-color); + border-top: 0; &__trends { flex: 0 1 auto; @@ -3621,7 +3745,7 @@ $ui-header-height: 55px; margin-top: 10px; h4 { - border-bottom: 1px solid lighten($ui-base-color, 8%); + border-bottom: 1px solid var(--background-border-color); padding: 10px; font-size: 12px; text-transform: uppercase; @@ -3779,7 +3903,7 @@ button.icon-button.active i.fa-retweet { margin-top: 14px; text-decoration: none; overflow: hidden; - border: 1px solid lighten($ui-base-color, 8%); + border: 1px solid var(--background-border-color); border-radius: 8px; &__actions { @@ -4037,7 +4161,7 @@ a.status-card { } .load-gap { - border-bottom: 1px solid lighten($ui-base-color, 8%); + border-bottom: 1px solid var(--background-border-color); } .timeline-hint { @@ -4070,7 +4194,8 @@ a.status-card { font-size: 16px; font-weight: 500; color: $dark-text-color; - background: $ui-base-color; + border: 1px solid var(--background-border-color); + border-top: 0; cursor: default; display: flex; flex: 1 1 auto; @@ -4150,8 +4275,7 @@ a.status-card { .column-header { display: flex; font-size: 16px; - background: $ui-base-color; - border-bottom: 1px solid lighten($ui-base-color, 8%); + border: 1px solid var(--background-border-color); border-radius: 4px 4px 0 0; flex: 0 0 auto; cursor: pointer; @@ -4218,6 +4342,10 @@ a.status-card { padding-top: 16px; } } + + @media screen and (max-width: $no-gap-breakpoint) { + border-top: 0; + } } .column-header__buttons { @@ -4237,9 +4365,9 @@ a.status-card { display: flex; justify-content: center; align-items: center; - background: $ui-base-color; border: 0; color: $darker-text-color; + background: transparent; cursor: pointer; font-size: 16px; padding: 0 15px; @@ -4258,7 +4386,6 @@ a.status-card { &.active { color: $primary-text-color; - background: lighten($ui-base-color, 4%); &:hover { color: $primary-text-color; @@ -4275,7 +4402,6 @@ a.status-card { max-height: 70vh; overflow: hidden; overflow-y: auto; - border-bottom: 1px solid lighten($ui-base-color, 8%); color: $darker-text-color; transition: max-height 150ms ease-in-out, @@ -4297,13 +4423,14 @@ a.status-card { height: 0; background: transparent; border: 0; - border-top: 1px solid lighten($ui-base-color, 8%); + border-top: 1px solid var(--background-border-color); margin: 10px 0; } } .column-header__collapsible-inner { - background: $ui-base-color; + border: 1px solid var(--background-border-color); + border-top: 0; } .column-header__setting-btn { @@ -4549,9 +4676,8 @@ a.status-card { } .account--panel { - background: lighten($ui-base-color, 4%); - border-top: 1px solid lighten($ui-base-color, 8%); - border-bottom: 1px solid lighten($ui-base-color, 8%); + border-top: 1px solid var(--background-border-color); + border-bottom: 1px solid var(--background-border-color); display: flex; flex-direction: row; padding: 10px 0; @@ -4867,7 +4993,6 @@ a.status-card { .empty-column-indicator, .follow_requests-unlocked_explanation { color: $dark-text-color; - background: $ui-base-color; text-align: center; padding: 20px; font-size: 15px; @@ -4893,15 +5018,15 @@ a.status-card { } .follow_requests-unlocked_explanation { - background: darken($ui-base-color, 4%); - border-bottom: 1px solid lighten($ui-base-color, 8%); + background: var(--surface-background-color); + border-bottom: 1px solid var(--background-border-color); contain: initial; flex-grow: 0; } .error-column { padding: 20px; - background: $ui-base-color; + border: 1px solid var(--background-border-color); border-radius: 4px; display: flex; flex: 1 1 auto; @@ -5116,7 +5241,7 @@ a.status-card { width: 100%; height: 6px; border-radius: 6px; - background: darken($ui-base-color, 8%); + background: var(--background-color); position: relative; margin-top: 5px; } @@ -5546,28 +5671,16 @@ a.status-card { } } -.search-results__header { - color: $dark-text-color; - background: lighten($ui-base-color, 2%); - padding: 15px; - font-weight: 500; - font-size: 16px; - cursor: default; - display: flex; - align-items: center; - gap: 5px; -} - .search-results__section { - border-bottom: 1px solid lighten($ui-base-color, 8%); + border-bottom: 1px solid var(--background-border-color); &:last-child { border-bottom: 0; } &__header { - background: darken($ui-base-color, 4%); - border-bottom: 1px solid lighten($ui-base-color, 8%); + border-bottom: 1px solid var(--background-border-color); + background: var(--surface-background-color); padding: 15px; font-weight: 500; font-size: 14px; @@ -5646,6 +5759,10 @@ a.status-card { pointer-events: auto; user-select: text; display: flex; + + @media screen and (max-width: $no-gap-breakpoint) { + margin-top: auto; + } } .video-modal .video-player { @@ -5977,6 +6094,154 @@ a.status-card { margin-inline-start: 10px; } +.safety-action-modal { + width: 600px; + flex-direction: column; + + &__top, + &__bottom { + display: flex; + gap: 8px; + padding: 24px; + flex-direction: column; + background: var(--modal-background-color); + backdrop-filter: var(--background-filter); + border: 1px solid var(--modal-border-color); + } + + &__top { + border-radius: 16px 16px 0 0; + border-bottom: 0; + gap: 16px; + } + + &__bottom { + border-radius: 0 0 16px 16px; + border-top: 0; + + @media screen and (max-width: $no-gap-breakpoint) { + border-radius: 0; + border-bottom: 0; + padding-bottom: 32px; + } + } + + &__header { + display: flex; + gap: 16px; + align-items: center; + font-size: 14px; + line-height: 20px; + color: $darker-text-color; + + &__icon { + border-radius: 64px; + background: $ui-highlight-color; + color: $white; + display: flex; + align-items: center; + justify-content: center; + width: 40px; + height: 40px; + flex-shrink: 0; + + .icon { + width: 24px; + height: 24px; + } + } + + h1 { + font-size: 22px; + line-height: 28px; + color: $primary-text-color; + } + } + + &__bullet-points { + display: flex; + flex-direction: column; + gap: 8px; + font-size: 16px; + line-height: 24px; + + & > div { + display: flex; + gap: 16px; + align-items: center; + } + + &__icon { + width: 40px; + height: 40px; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + + .icon { + width: 24px; + height: 24px; + } + } + } + + &__field-group { + display: flex; + flex-direction: column; + + label { + display: flex; + gap: 16px; + align-items: center; + font-size: 16px; + line-height: 24px; + height: 32px; + padding: 0 12px; + } + } + + &__caveats { + font-size: 14px; + padding: 0 12px; + + strong { + font-weight: 500; + } + } + + &__bottom { + padding-top: 0; + + &__collapsible { + display: none; + flex-direction: column; + gap: 16px; + } + + &.active { + background: var(--modal-background-variant-color); + padding-top: 24px; + + .safety-action-modal__bottom__collapsible { + display: flex; + } + } + } + + &__actions { + display: flex; + align-items: center; + gap: 8px; + justify-content: flex-end; + + .link-button { + padding: 10px 12px; + font-weight: 600; + } + } +} + .boost-modal, .confirmation-modal, .report-modal, @@ -6615,7 +6880,7 @@ a.status-card { .attachment-list { display: flex; font-size: 14px; - border: 1px solid lighten($ui-base-color, 8%); + border: 1px solid var(--background-border-color); border-radius: 4px; margin-top: 16px; overflow: hidden; @@ -6625,7 +6890,7 @@ a.status-card { color: $dark-text-color; padding: 8px 18px; cursor: default; - border-inline-end: 1px solid lighten($ui-base-color, 8%); + border-inline-end: 1px solid var(--background-border-color); display: flex; flex-direction: column; align-items: center; @@ -6798,7 +7063,7 @@ a.status-card { overflow: hidden; box-sizing: border-box; position: relative; - background: darken($ui-base-color, 8%); + background: var(--background-color); border-radius: 8px; padding-bottom: 44px; width: 100%; @@ -7194,7 +7459,6 @@ a.status-card { .scrollable .account-card { margin: 10px; - background: lighten($ui-base-color, 8%); } .scrollable .account-card__title__avatar { @@ -7205,11 +7469,7 @@ a.status-card { } .scrollable .account-card__bio::after { - background: linear-gradient( - to left, - lighten($ui-base-color, 8%), - transparent - ); + background: linear-gradient(to left, var(--background-color), transparent); } .account-gallery__container { @@ -7238,8 +7498,8 @@ a.status-card { .notification__filter-bar, .account__section-headline { - background: $ui-base-color; - border-bottom: 1px solid lighten($ui-base-color, 8%); + border: 1px solid var(--background-border-color); + border-top: 0; cursor: default; display: flex; flex-shrink: 0; @@ -7280,10 +7540,15 @@ a.status-card { } } } + + .scrollable & { + border-left: 0; + border-right: 0; + } } .filter-form { - background: $ui-base-color; + border-bottom: 1px solid var(--background-border-color); &__column { display: flex; @@ -7301,7 +7566,8 @@ a.status-card { display: flex; } -.radio-button { +.radio-button, +.check-box { font-size: 14px; position: relative; display: inline-flex; @@ -7320,17 +7586,19 @@ a.status-card { } &__input { - display: block; + display: flex; + align-items: center; + justify-content: center; position: relative; border: 2px solid $secondary-text-color; box-sizing: border-box; - width: 18px; - height: 18px; + width: 20px; + height: 20px; flex: 0 0 auto; border-radius: 50%; &.checked { - border-color: $secondary-text-color; + border-color: $ui-highlight-color; &::before { position: absolute; @@ -7339,9 +7607,31 @@ a.status-card { content: ''; display: block; border-radius: 50%; - width: 10px; - height: 10px; - background: $secondary-text-color; + width: 12px; + height: 12px; + background: $ui-highlight-color; + } + } + + .icon { + width: 18px; + height: 18px; + } + } +} + +.check-box { + &__input { + width: 18px; + height: 18px; + border-radius: 2px; + + &.checked { + background: $ui-highlight-color; + color: $white; + + &::before { + display: none; } } } @@ -7458,7 +7748,7 @@ noscript { .follow-request-banner, .account-memorial-banner { padding: 20px; - background: lighten($ui-base-color, 4%); + background: var(--surface-background-color); display: flex; align-items: center; flex-direction: column; @@ -7501,7 +7791,8 @@ noscript { justify-content: flex-start; gap: 15px; align-items: center; - background: lighten($ui-base-color, 4%); + border: 1px solid var(--background-border-color); + border-top: 0; label { flex: 1 1 auto; @@ -7602,7 +7893,7 @@ noscript { .list { padding: 10px; - border-bottom: 1px solid lighten($ui-base-color, 8%); + border-bottom: 1px solid var(--background-border-color); } .list__wrapper { @@ -7873,7 +8164,7 @@ noscript { height: 145px; position: relative; background: darken($ui-base-color, 4%); - border-bottom: 1px solid lighten($ui-base-color, 8%); + border-bottom: 1px solid var(--background-border-color); img { object-fit: cover; @@ -7887,7 +8178,7 @@ noscript { &__bar { position: relative; padding: 0 20px; - border-bottom: 1px solid lighten($ui-base-color, 8%); + border-bottom: 1px solid var(--background-border-color); .avatar { display: block; @@ -7895,8 +8186,8 @@ noscript { width: 94px; .account__avatar { - background: darken($ui-base-color, 8%); - border: 2px solid $ui-base-color; + background: var(--background-color); + border: 2px solid var(--background-border-color); } } } @@ -7971,14 +8262,17 @@ noscript { font-size: 17px; line-height: 22px; color: $primary-text-color; - font-weight: 700; + font-weight: 600; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; small { - display: block; - font-size: 15px; + display: flex; + align-items: center; + gap: 4px; + font-size: 14px; + line-height: 20px; color: $darker-text-color; font-weight: 400; overflow: hidden; @@ -7989,10 +8283,8 @@ noscript { } .icon-lock { - height: 16px; - width: 16px; - position: relative; - top: 3px; + height: 18px; + width: 18px; } } } @@ -8012,13 +8304,12 @@ noscript { margin: 0; margin-top: 16px; border-radius: 4px; - background: darken($ui-base-color, 4%); - border: 0; + border: 1px solid var(--background-border-color); dl { display: block; padding: 11px 16px; - border-bottom-color: lighten($ui-base-color, 4%); + border-bottom-color: var(--background-border-color); } dd, @@ -8193,7 +8484,7 @@ noscript { display: flex; align-items: center; padding: 15px; - border-bottom: 1px solid lighten($ui-base-color, 8%); + border-bottom: 1px solid var(--background-border-color); gap: 15px; &:last-child { @@ -8311,7 +8602,7 @@ noscript { .conversation { display: flex; - border-bottom: 1px solid lighten($ui-base-color, 8%); + border-bottom: 1px solid var(--background-border-color); padding: 5px; padding-bottom: 0; @@ -8673,7 +8964,7 @@ noscript { .picture-in-picture-placeholder { box-sizing: border-box; - border: 2px dashed lighten($ui-base-color, 8%); + border: 2px dashed var(--background-border-color); background: $base-shadow-color; display: flex; flex-direction: column; @@ -8701,7 +8992,7 @@ noscript { .notifications-permission-banner { padding: 30px; - border-bottom: 1px solid lighten($ui-base-color, 8%); + border-bottom: 1px solid var(--background-border-color); display: flex; flex-direction: column; align-items: center; @@ -8760,7 +9051,8 @@ noscript { flex: 1 1 auto; display: flex; flex-direction: column; - background: $ui-base-color; + border: 1px solid var(--background-border-color); + border-top: 0; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; } @@ -8771,7 +9063,7 @@ noscript { color: $primary-text-color; text-decoration: none; padding: 15px; - border-bottom: 1px solid lighten($ui-base-color, 8%); + border-bottom: 1px solid var(--background-border-color); gap: 15px; &:last-child { @@ -8953,22 +9245,36 @@ noscript { } } +.safety-action-modal, .interaction-modal { max-width: 90vw; width: 600px; - background: var(--modal-background-color); - border: 1px solid var(--modal-border-color); - border-radius: 8px; +} + +.interaction-modal { overflow: visible; position: relative; display: block; - padding: 40px; + border-radius: 16px; + background: var(--modal-background-color); + backdrop-filter: var(--background-filter); + border: 1px solid var(--modal-border-color); + padding: 24px; + + @media screen and (max-width: $no-gap-breakpoint) { + border-radius: 16px 16px 0 0; + border-bottom: 0; + padding-bottom: 32px; + } h3 { font-size: 22px; line-height: 33px; font-weight: 700; - text-align: center; + display: flex; + align-items: center; + justify-content: center; + gap: 8px; } p { @@ -8989,7 +9295,9 @@ noscript { &__icon { color: $highlight-text-color; - margin: 0 5px; + display: flex; + align-items: center; + justify-content: center; } &__lead { @@ -9022,6 +9330,7 @@ noscript { border: 0; padding: 15px - 4px 15px - 6px; flex: 1 1 auto; + min-width: 0; &::placeholder { color: lighten($darker-text-color, 4%); @@ -9150,7 +9459,6 @@ noscript { } .privacy-policy { - background: $ui-base-color; padding: 20px; @media screen and (min-width: $no-gap-breakpoint) { @@ -9519,6 +9827,7 @@ noscript { .about { padding: 20px; + border-top: 1px solid var(--background-border-color); @media screen and (min-width: $no-gap-breakpoint) { border-radius: 4px; @@ -9565,7 +9874,7 @@ noscript { } &__meta { - background: lighten($ui-base-color, 4%); + border: 1px solid var(--background-border-color); border-radius: 4px; display: flex; margin-bottom: 30px; @@ -9581,7 +9890,7 @@ noscript { width: 0; border: 0; border-style: solid; - border-color: lighten($ui-base-color, 8%); + border-color: var(--background-border-color); border-left-width: 1px; min-height: calc(100% - 60px); flex: 0 0 auto; @@ -9689,7 +9998,7 @@ noscript { line-height: 22px; padding: 20px; border-radius: 4px; - background: lighten($ui-base-color, 4%); + border: 1px solid var(--background-border-color); color: $highlight-text-color; cursor: pointer; } @@ -9699,7 +10008,7 @@ noscript { } &__body { - border: 1px solid lighten($ui-base-color, 4%); + border: 1px solid var(--background-border-color); border-top: 0; padding: 20px; font-size: 15px; @@ -9709,18 +10018,17 @@ noscript { &__domain-blocks { margin-top: 30px; - background: darken($ui-base-color, 4%); - border: 1px solid lighten($ui-base-color, 4%); + border: 1px solid var(--background-border-color); border-radius: 4px; &__domain { - border-bottom: 1px solid lighten($ui-base-color, 4%); + border-bottom: 1px solid var(--background-border-color); padding: 10px; font-size: 15px; color: $darker-text-color; &:nth-child(2n) { - background: darken($ui-base-color, 2%); + background: darken($ui-base-color, 4%); } &:last-child { @@ -9810,7 +10118,7 @@ noscript { } .hashtag-header { - border-bottom: 1px solid lighten($ui-base-color, 8%); + border-bottom: 1px solid var(--background-border-color); padding: 15px; font-size: 17px; line-height: 22px; @@ -9872,8 +10180,8 @@ noscript { gap: 12px; padding: 16px 0; padding-bottom: 0; - border-bottom: 1px solid mix($ui-base-color, $ui-highlight-color, 75%); - background: mix($ui-base-color, $ui-highlight-color, 95%); + border-bottom: 1px solid var(--background-border-color); + background: rgba($ui-highlight-color, 0.05); &__header { display: flex; @@ -9957,8 +10265,8 @@ noscript { overflow-x: scroll; &__card { - background: darken($ui-base-color, 4%); - border: 1px solid lighten($ui-base-color, 8%); + background: var(--background-color); + border: 1px solid var(--background-border-color); border-radius: 4px; display: flex; flex-direction: column; @@ -9995,7 +10303,7 @@ noscript { .account__avatar { flex-shrink: 0; align-self: flex-end; - border: 1px solid lighten($ui-base-color, 8%); + border: 1px solid var(--background-border-color); background-color: $ui-base-color; } diff --git a/app/javascript/styles/mastodon/variables.scss b/app/javascript/styles/mastodon/variables.scss index 9f55238749072a..0f2f68354b79bb 100644 --- a/app/javascript/styles/mastodon/variables.scss +++ b/app/javascript/styles/mastodon/variables.scss @@ -51,10 +51,10 @@ $ui-button-focus-background-color: $blurple-600 !default; $ui-button-focus-outline-color: $blurple-400 !default; $ui-button-focus-outline: solid 2px $ui-button-focus-outline-color !default; -$ui-button-secondary-color: $grey-100 !default; -$ui-button-secondary-border-color: $grey-100 !default; -$ui-button-secondary-focus-background-color: $grey-600 !default; -$ui-button-secondary-focus-color: $white !default; +$ui-button-secondary-color: $blurple-500 !default; +$ui-button-secondary-border-color: $blurple-500 !default; +$ui-button-secondary-focus-border-color: $blurple-300 !default; +$ui-button-secondary-focus-color: $blurple-300 !default; $ui-button-tertiary-color: $blurple-300 !default; $ui-button-tertiary-border-color: $blurple-300 !default; @@ -99,10 +99,16 @@ $font-display: 'mastodon-font-display' !default; $font-monospace: 'mastodon-font-monospace' !default; :root { - --dropdown-border-color: #{lighten($ui-base-color, 12%)}; - --dropdown-background-color: #{lighten($ui-base-color, 4%)}; + --dropdown-border-color: #{lighten($ui-base-color, 4%)}; + --dropdown-background-color: #{rgba(darken($ui-base-color, 8%), 0.9)}; --dropdown-shadow: 0 20px 25px -5px #{rgba($base-shadow-color, 0.25)}, 0 8px 10px -6px #{rgba($base-shadow-color, 0.25)}; - --modal-background-color: #{darken($ui-base-color, 4%)}; + --modal-background-color: #{rgba(darken($ui-base-color, 8%), 0.7)}; + --modal-background-variant-color: #{rgba($ui-base-color, 0.7)}; --modal-border-color: #{lighten($ui-base-color, 4%)}; + --background-border-color: #{lighten($ui-base-color, 4%)}; + --background-filter: blur(10px) saturate(180%) contrast(75%) brightness(70%); + --background-color: #{darken($ui-base-color, 8%)}; + --background-color-tint: #{rgba(darken($ui-base-color, 8%), 0.9)}; + --surface-background-color: #{darken($ui-base-color, 4%)}; } diff --git a/app/lib/activity_tracker.rb b/app/lib/activity_tracker.rb index 9160ef22a69229..d0e675f07d2cda 100644 --- a/app/lib/activity_tracker.rb +++ b/app/lib/activity_tracker.rb @@ -24,7 +24,7 @@ def add(value = 1, at_time = Time.now.utc) end def get(start_at, end_at = Time.now.utc) - (start_at.to_date...end_at.to_date).map do |date| + (start_at.to_date..end_at.to_date).map do |date| key = key_at(date.to_time(:utc)) value = case @type diff --git a/app/lib/admin/metrics/dimension/instance_languages_dimension.rb b/app/lib/admin/metrics/dimension/instance_languages_dimension.rb index b478213808e842..661e6d93b751ca 100644 --- a/app/lib/admin/metrics/dimension/instance_languages_dimension.rb +++ b/app/lib/admin/metrics/dimension/instance_languages_dimension.rb @@ -37,11 +37,11 @@ def sql_query_string end def earliest_status_id - Mastodon::Snowflake.id_at(@start_at, with_random: false) + Mastodon::Snowflake.id_at(@start_at.beginning_of_day, with_random: false) end def latest_status_id - Mastodon::Snowflake.id_at(@end_at, with_random: false) + Mastodon::Snowflake.id_at(@end_at.end_of_day, with_random: false) end def params diff --git a/app/lib/admin/metrics/dimension/servers_dimension.rb b/app/lib/admin/metrics/dimension/servers_dimension.rb index 42aba8e2132480..2c8406d52fd614 100644 --- a/app/lib/admin/metrics/dimension/servers_dimension.rb +++ b/app/lib/admin/metrics/dimension/servers_dimension.rb @@ -30,10 +30,10 @@ def sql_query_string end def earliest_status_id - Mastodon::Snowflake.id_at(@start_at) + Mastodon::Snowflake.id_at(@start_at.beginning_of_day, with_random: false) end def latest_status_id - Mastodon::Snowflake.id_at(@end_at) + Mastodon::Snowflake.id_at(@end_at.end_of_day, with_random: false) end end diff --git a/app/lib/admin/metrics/dimension/tag_languages_dimension.rb b/app/lib/admin/metrics/dimension/tag_languages_dimension.rb index cd077ff863d697..6e283d2c655797 100644 --- a/app/lib/admin/metrics/dimension/tag_languages_dimension.rb +++ b/app/lib/admin/metrics/dimension/tag_languages_dimension.rb @@ -40,11 +40,11 @@ def tag_id end def earliest_status_id - Mastodon::Snowflake.id_at(@start_at, with_random: false) + Mastodon::Snowflake.id_at(@start_at.beginning_of_day, with_random: false) end def latest_status_id - Mastodon::Snowflake.id_at(@end_at, with_random: false) + Mastodon::Snowflake.id_at(@end_at.end_of_day, with_random: false) end def params diff --git a/app/lib/admin/metrics/dimension/tag_servers_dimension.rb b/app/lib/admin/metrics/dimension/tag_servers_dimension.rb index fc5e49a966a867..db820e965c5b3d 100644 --- a/app/lib/admin/metrics/dimension/tag_servers_dimension.rb +++ b/app/lib/admin/metrics/dimension/tag_servers_dimension.rb @@ -40,11 +40,11 @@ def tag_id end def earliest_status_id - Mastodon::Snowflake.id_at(@start_at, with_random: false) + Mastodon::Snowflake.id_at(@start_at.beginning_of_day, with_random: false) end def latest_status_id - Mastodon::Snowflake.id_at(@end_at, with_random: false) + Mastodon::Snowflake.id_at(@end_at.end_of_day, with_random: false) end def params diff --git a/app/lib/admin/metrics/measure/instance_statuses_measure.rb b/app/lib/admin/metrics/measure/instance_statuses_measure.rb index 8c71c6614545d5..b918a30a57cc09 100644 --- a/app/lib/admin/metrics/measure/instance_statuses_measure.rb +++ b/app/lib/admin/metrics/measure/instance_statuses_measure.rb @@ -51,11 +51,11 @@ def sql_query_string end def earliest_status_id - Mastodon::Snowflake.id_at(@start_at, with_random: false) + Mastodon::Snowflake.id_at(@start_at.beginning_of_day, with_random: false) end def latest_status_id - Mastodon::Snowflake.id_at(@end_at, with_random: false) + Mastodon::Snowflake.id_at(@end_at.end_of_day, with_random: false) end def time_period diff --git a/app/lib/text_formatter.rb b/app/lib/text_formatter.rb index cd3dad9a0964ab..d334babd0eb850 100644 --- a/app/lib/text_formatter.rb +++ b/app/lib/text_formatter.rb @@ -55,6 +55,7 @@ def to_s class << self include ERB::Util + include ActionView::Helpers::TagHelper def shortened_link(url, rel_me: false) url = Addressable::URI.parse(url).to_s @@ -65,9 +66,11 @@ def shortened_link(url, rel_me: false) suffix = url[prefix.length + 30..] cutoff = url[prefix.length..].length > 30 - <<~HTML.squish.html_safe # rubocop:disable Rails/OutputSafety - #{h(display_url)} - HTML + tag.a href: url, target: '_blank', rel: rel.join(' '), translate: 'no' do + tag.span(prefix, class: 'invisible') + + tag.span(display_url, class: (cutoff ? 'ellipsis' : '')) + + tag.span(suffix, class: 'invisible') + end rescue Addressable::URI::InvalidURIError, IDN::Idna::IdnaError h(url) end diff --git a/app/models/account.rb b/app/models/account.rb index 20dc2a4e668071..7c29051cec5bae 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -118,6 +118,7 @@ class Account < ApplicationRecord normalizes :username, with: ->(username) { username.squish } + scope :without_internal, -> { where(id: 1...) } scope :remote, -> { where.not(domain: nil) } scope :local, -> { where(domain: nil) } scope :partitioned, -> { order(Arel.sql('row_number() over (partition by domain)')) } @@ -498,7 +499,7 @@ def readonly_attributes end def inboxes - urls = reorder(nil).where(protocol: :activitypub).group(:preferred_inbox_url).pluck(Arel.sql("coalesce(nullif(accounts.shared_inbox_url, ''), accounts.inbox_url) AS preferred_inbox_url")) + urls = reorder(nil).activitypub.group(:preferred_inbox_url).pluck(Arel.sql("coalesce(nullif(accounts.shared_inbox_url, ''), accounts.inbox_url) AS preferred_inbox_url")) DeliveryFailureTracker.without_unavailable(urls) end diff --git a/app/models/account_suggestions/friends_of_friends_source.rb b/app/models/account_suggestions/friends_of_friends_source.rb index 879c2cc8e56949..825b24f41981ed 100644 --- a/app/models/account_suggestions/friends_of_friends_source.rb +++ b/app/models/account_suggestions/friends_of_friends_source.rb @@ -1,13 +1,13 @@ # frozen_string_literal: true -# Reverted this commit.temporarily because load issues. -# Whenever a manual merge occurs, be sure to check the following commits. -# Hash: ee8d0b94473df357677cd1f82581251ce0423c01 -# Message: Fix follow suggestions potentially including silenced or blocked accounts (#29306) - class AccountSuggestions::FriendsOfFriendsSource < AccountSuggestions::Source def get(account, limit: DEFAULT_LIMIT) - Account.find_by_sql([<<~SQL.squish, { id: account.id, limit: limit }]).map { |row| [row.id, key] } + source_query(account, limit: limit) + .map { |id, _frequency, _followers_count| [id, key] } + end + + def source_query(account, limit: DEFAULT_LIMIT) + Account.find_by_sql([<<~SQL.squish, { id: account.id, limit: limit }]).map { |row| [row.id, row.frequency, row.followers_count] } WITH first_degree AS ( SELECT target_account_id FROM follows @@ -15,12 +15,16 @@ def get(account, limit: DEFAULT_LIMIT) WHERE account_id = :id AND NOT target_accounts.hide_collections ) - SELECT accounts.id, COUNT(*) AS frequency + SELECT accounts.id, COUNT(*) AS frequency, account_stats.followers_count as followers_count FROM accounts JOIN follows ON follows.target_account_id = accounts.id JOIN account_stats ON account_stats.account_id = accounts.id LEFT OUTER JOIN follow_recommendation_mutes ON follow_recommendation_mutes.target_account_id = accounts.id AND follow_recommendation_mutes.account_id = :id WHERE follows.account_id IN (SELECT * FROM first_degree) + AND NOT EXISTS (SELECT 1 FROM blocks b WHERE b.target_account_id = follows.target_account_id AND b.account_id = :id) + AND NOT EXISTS (SELECT 1 FROM blocks b WHERE b.target_account_id = :id AND b.account_id = follows.target_account_id) + AND NOT EXISTS (SELECT 1 FROM mutes m WHERE m.target_account_id = follows.target_account_id AND m.account_id = :id) + AND (accounts.domain IS NULL OR NOT EXISTS (SELECT 1 FROM account_domain_blocks b WHERE b.account_id = :id AND b.domain = accounts.domain)) AND NOT EXISTS (SELECT 1 FROM follows f WHERE f.target_account_id = follows.target_account_id AND f.account_id = :id) AND follows.target_account_id <> :id AND accounts.discoverable diff --git a/app/models/concerns/account/interactions.rb b/app/models/concerns/account/interactions.rb index f0d34419e642e1..edeb147e8320f8 100644 --- a/app/models/concerns/account/interactions.rb +++ b/app/models/concerns/account/interactions.rb @@ -267,10 +267,6 @@ def pinned?(status) status_pins.exists?(status: status) end - def endorsed?(account) - account_pins.exists?(target_account: account) - end - def status_matches_filters(status) active_filters = CustomFilter.cached_filters_for(id) CustomFilter.apply_cached_filters(active_filters, status, following: following?(status.account)) diff --git a/app/models/concerns/account/statuses_search.rb b/app/models/concerns/account/statuses_search.rb index 334b7145043cc2..93452b78b06ce0 100644 --- a/app/models/concerns/account/statuses_search.rb +++ b/app/models/concerns/account/statuses_search.rb @@ -31,7 +31,7 @@ def enqueue_remove_from_public_statuses_index def add_to_public_statuses_index! return unless Chewy.enabled? - statuses.without_reblogs.where(visibility: :public).reorder(nil).find_in_batches do |batch| + statuses.without_reblogs.public_visibility.reorder(nil).find_in_batches do |batch| PublicStatusesIndex.import(batch) end end diff --git a/app/models/concerns/domain_normalizable.rb b/app/models/concerns/domain_normalizable.rb index 8e244c1d87c2a5..76f91c5b64029c 100644 --- a/app/models/concerns/domain_normalizable.rb +++ b/app/models/concerns/domain_normalizable.rb @@ -5,6 +5,18 @@ module DomainNormalizable included do before_validation :normalize_domain + + scope :by_domain_length, -> { order(domain_char_length.desc) } + end + + class_methods do + def domain_char_length + Arel.sql( + <<~SQL.squish + CHAR_LENGTH(domain) + SQL + ) + end end private diff --git a/app/models/custom_filter.rb b/app/models/custom_filter.rb index eab15254d346f9..15b43831364ff3 100644 --- a/app/models/custom_filter.rb +++ b/app/models/custom_filter.rb @@ -45,7 +45,7 @@ class CustomFilter < ApplicationRecord validates :title, :context, presence: true validate :context_must_be_valid - before_validation :clean_up_contexts + normalizes :context, with: ->(context) { context.map(&:strip).filter_map(&:presence) } before_save :prepare_cache_invalidation! before_destroy :prepare_cache_invalidation! @@ -141,10 +141,6 @@ def invalidate_cache! private - def clean_up_contexts - self.context = Array(context).map(&:strip).filter_map(&:presence) - end - def context_must_be_valid errors.add(:context, I18n.t('filters.errors.invalid_context')) if invalid_context_value? end diff --git a/app/models/domain_block.rb b/app/models/domain_block.rb index a851e17307c594..a6c6cc045b294c 100644 --- a/app/models/domain_block.rb +++ b/app/models/domain_block.rb @@ -132,7 +132,7 @@ def rule_for(domain) segments = uri.normalized_host.split('.') variants = segments.map.with_index { |_, i| segments[i..].join('.') } - where(domain: variants).order(Arel.sql('char_length(domain) desc')).first + where(domain: variants).by_domain_length.first rescue Addressable::URI::InvalidURIError, IDN::Idna::IdnaError nil end diff --git a/app/models/email_domain_block.rb b/app/models/email_domain_block.rb index 40be59420aeb44..f3a86eae8f3533 100644 --- a/app/models/email_domain_block.rb +++ b/app/models/email_domain_block.rb @@ -56,7 +56,7 @@ def invalid_uri? end def blocking?(allow_with_approval: false) - blocks = EmailDomainBlock.where(domain: domains_with_variants, allow_with_approval: allow_with_approval).order(Arel.sql('char_length(domain) desc')) + blocks = EmailDomainBlock.where(domain: domains_with_variants, allow_with_approval: allow_with_approval).by_domain_length blocks.each { |block| block.history.add(@attempt_ip) } if @attempt_ip.present? blocks.any? end diff --git a/app/models/ip_block.rb b/app/models/ip_block.rb index 9def5b0cde1016..d6242efbf7db24 100644 --- a/app/models/ip_block.rb +++ b/app/models/ip_block.rb @@ -23,7 +23,7 @@ class IpBlock < ApplicationRecord sign_up_requires_approval: 5000, sign_up_block: 5500, no_access: 9999, - } + }, prefix: true validates :ip, :severity, presence: true validates :ip, uniqueness: true diff --git a/app/models/notification.rb b/app/models/notification.rb index 64c751b9e4d9de..94cb97b5fafa55 100644 --- a/app/models/notification.rb +++ b/app/models/notification.rb @@ -33,23 +33,55 @@ class Notification < ApplicationRecord 'AccountWarning' => :warning, }.freeze - TYPES = %i( - mention - status - list_status - reblog - status_reference - follow - follow_request - favourite - emoji_reaction - reaction - poll - update - warning - admin.sign_up - admin.report - ).freeze + PROPERTIES = { + mention: { + filterable: true, + }.freeze, + status: { + filterable: false, + }.freeze, + list_status: { + filterable: false, + }.freeze, + reblog: { + filterable: true, + }.freeze, + status_reference: { + filterable: true, + }.freeze, + follow: { + filterable: true, + }.freeze, + follow_request: { + filterable: true, + }.freeze, + favourite: { + filterable: true, + }.freeze, + emoji_reaction: { + filterable: true, + }.freeze, + reaction: { + filterable: true, + }.freeze, + poll: { + filterable: false, + }.freeze, + update: { + filterable: false, + }.freeze, + warning: { + filterable: false, + }.freeze, + 'admin.sign_up': { + filterable: false, + }.freeze, + 'admin.report': { + filterable: false, + }.freeze, + }.freeze + + TYPES = PROPERTIES.keys.freeze TARGET_STATUS_INCLUDES_BY_TYPE = { status: :status, diff --git a/app/models/preview_card_provider.rb b/app/models/preview_card_provider.rb index 8ba24331bbabfb..756707e3f1aed8 100644 --- a/app/models/preview_card_provider.rb +++ b/app/models/preview_card_provider.rb @@ -54,6 +54,6 @@ def requires_review_notification? def self.matching_domain(domain) segments = domain.split('.') - where(domain: segments.map.with_index { |_, i| segments[i..].join('.') }).order(Arel.sql('char_length(domain) desc')).first + where(domain: segments.map.with_index { |_, i| segments[i..].join('.') }).by_domain_length.first end end diff --git a/app/models/public_feed.rb b/app/models/public_feed.rb index c11b68f97c452f..ab45d9e8744f87 100644 --- a/app/models/public_feed.rb +++ b/app/models/public_feed.rb @@ -69,7 +69,7 @@ def media_only? end def public_scope - Status.with_public_visibility.joins(:account).merge(Account.without_suspended.without_silenced) + Status.public_visibility.joins(:account).merge(Account.without_suspended.without_silenced) end def public_search_scope diff --git a/app/models/status.rb b/app/models/status.rb index eb57761cb504db..a8947ed7ea78d6 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -138,7 +138,6 @@ class Status < ApplicationRecord 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: nil }) } - scope :with_public_visibility, -> { where(visibility: [:public, :public_unlisted, :login]) } scope :with_public_search_visibility, -> { merge(where(visibility: [:public, :public_unlisted, :login]).or(Status.where(searchability: [:public, :public_unlisted]))) } scope :tagged_with, ->(tag_ids) { joins(:statuses_tags).where(statuses_tags: { tag_id: tag_ids }) } scope :not_excluded_by_account, ->(account) { where.not(account_id: account.excluded_from_timeline_account_ids) } @@ -659,7 +658,6 @@ def set_poll_id def set_visibility self.visibility = reblog.visibility if reblog? && visibility.nil? self.visibility = (account.locked? ? :private : :public) if visibility.nil? - self.sensitive = false if sensitive.nil? end def set_searchability diff --git a/app/models/user.rb b/app/models/user.rb index 288904a56c0c1c..abf4b12272e77c 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -449,7 +449,7 @@ def wrap_email_confirmation end def sign_up_from_ip_requires_approval? - sign_up_ip.present? && IpBlock.sign_up_requires_approval.exists?(['ip >>= ?', sign_up_ip.to_s]) + sign_up_ip.present? && IpBlock.severity_sign_up_requires_approval.exists?(['ip >>= ?', sign_up_ip.to_s]) end def sign_up_email_requires_approval? diff --git a/app/services/notify_service.rb b/app/services/notify_service.rb index ed1db8221c359e..09e95497e14eeb 100644 --- a/app/services/notify_service.rb +++ b/app/services/notify_service.rb @@ -72,6 +72,13 @@ class FilterCondition NEW_FOLLOWER_THRESHOLD = 3.days.freeze + NON_FILTERABLE_TYPES = %i( + admin.sign_up + admin.report + poll + update + ).freeze + def initialize(notification) @notification = notification @recipient = notification.account @@ -80,6 +87,7 @@ def initialize(notification) end def filter? + return false unless Notification::PROPERTIES[@notification.type][:filterable] return false if override_for_sender? from_limited? || diff --git a/app/views/admin/account_actions/new.html.haml b/app/views/admin/account_actions/new.html.haml index 4cb4401c70542d..bce1c31760d6e8 100644 --- a/app/views/admin/account_actions/new.html.haml +++ b/app/views/admin/account_actions/new.html.haml @@ -2,29 +2,48 @@ = t('admin.account_actions.title', acct: @account.pretty_acct) = simple_form_for @account_action, url: admin_account_action_path(@account.id) do |f| - = f.input :report_id, as: :hidden + = 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) { account_action_type_label(type) }, 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), + hint: t('simple_form.hints.admin_account_action.type_html', acct: @account.pretty_acct), + include_blank: false, + label_method: ->(type) { account_action_type_label(type) }, + wrapper: :with_block_label - if @account.local? %hr.spacer/ .fields-group - = f.input :send_email_notification, as: :boolean, wrapper: :with_label + = f.input :send_email_notification, + as: :boolean, + wrapper: :with_label - if params[:report_id].present? .fields-group - = f.input :include_statuses, as: :boolean, wrapper: :with_label + = f.input :include_statuses, + as: :boolean, + wrapper: :with_label %hr.spacer/ - unless @warning_presets.empty? .fields-group - = f.input :warning_preset_id, collection: @warning_presets, label_method: ->(warning_preset) { [warning_preset.title.presence, truncate(warning_preset.text)].compact.join(' - ') }, wrapper: :with_block_label + = f.input :warning_preset_id, + collection: @warning_presets, + label_method: ->(warning_preset) { [warning_preset.title.presence, truncate(warning_preset.text)].compact.join(' - ') }, + wrapper: :with_block_label .fields-group - = f.input :text, as: :text, wrapper: :with_block_label, hint: t('simple_form.hints.admin_account_action.text_html', path: admin_warning_presets_path) + = f.input :text, + as: :text, + hint: t('simple_form.hints.admin_account_action.text_html', path: admin_warning_presets_path), + wrapper: :with_block_label .actions - = f.button :button, t('admin.account_actions.action'), type: :submit + = f.button :button, + t('admin.account_actions.action'), + type: :submit diff --git a/app/views/admin/accounts/index.html.haml b/app/views/admin/accounts/index.html.haml index 21938da6d67bc2..1e0fa66c3f746c 100644 --- a/app/views/admin/accounts/index.html.haml +++ b/app/views/admin/accounts/index.html.haml @@ -6,19 +6,26 @@ .filter-subset.filter-subset--with-select %strong= t('admin.accounts.location.title') .input.select.optional - = select_tag :origin, options_for_select([[t('admin.accounts.location.local'), 'local'], [t('admin.accounts.location.remote'), 'remote']], params[:origin]), prompt: I18n.t('generic.all') + = select_tag :origin, + options_for_select([[t('admin.accounts.location.local'), 'local'], [t('admin.accounts.location.remote'), 'remote']], params[:origin]), + prompt: I18n.t('generic.all') .filter-subset.filter-subset--with-select %strong= t('admin.accounts.moderation.title') .input.select.optional - = select_tag :status, options_for_select(admin_accounts_moderation_options, params[:status]), prompt: I18n.t('generic.all') + = select_tag :status, + options_for_select(admin_accounts_moderation_options, params[:status]), + prompt: I18n.t('generic.all') .filter-subset.filter-subset--with-select %strong= t('admin.accounts.role') .input.select.optional - = select_tag :role_ids, options_from_collection_for_select(UserRole.assignable, :id, :name, params[:role_ids]), prompt: I18n.t('admin.accounts.moderation.all') + = select_tag :role_ids, + options_from_collection_for_select(UserRole.assignable, :id, :name, params[:role_ids]), + prompt: I18n.t('admin.accounts.moderation.all') .filter-subset.filter-subset--with-select %strong= t 'generic.order_by' .input.select - = select_tag :order, options_for_select([[t('relationships.most_recent'), 'recent'], [t('relationships.last_active'), 'active']], params[:order]) + = select_tag :order, + options_for_select([[t('relationships.most_recent'), 'recent'], [t('relationships.last_active'), 'active']], params[:order]) .fields-group - %i(username by_domain display_name email ip).each do |key| @@ -46,18 +53,42 @@ = check_box_tag :batch_checkbox_all, nil, false .batch-table__toolbar__actions - if @accounts.any?(&:user_pending?) - = f.button safe_join([fa_icon('check'), t('admin.accounts.approve')]), name: :approve, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + = f.button safe_join([fa_icon('check'), t('admin.accounts.approve')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :approve, + type: :submit - = f.button safe_join([fa_icon('times'), t('admin.accounts.reject')]), name: :reject, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + = f.button safe_join([fa_icon('times'), t('admin.accounts.reject')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :reject, + type: :submit - elsif @accounts.any?(&:remote_pending) - = f.button safe_join([fa_icon('check'), t('admin.accounts.approve')]), name: :approve_remote, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + = f.button safe_join([fa_icon('check'), t('admin.accounts.approve')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :approve_remote, + type: :submit - = f.button safe_join([fa_icon('check'), t('admin.accounts.approve_domain')]), name: :approve_remote_domain, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + = f.button safe_join([fa_icon('check'), t('admin.accounts.approve_domain')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :approve_remote_domain, + type: :submit - = f.button safe_join([fa_icon('times'), t('admin.accounts.reject')]), name: :reject_remote, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + = f.button safe_join([fa_icon('times'), t('admin.accounts.reject')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :reject_remote, + type: :submit - = f.button safe_join([fa_icon('lock'), t('admin.accounts.perform_full_suspension')]), name: :suspend, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + = f.button safe_join([fa_icon('lock'), t('admin.accounts.perform_full_suspension')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :suspend, + type: :submit - if @accounts.size >= 40 .batch-table__select-all .not-selected.active diff --git a/app/views/admin/announcements/edit.html.haml b/app/views/admin/announcements/edit.html.haml index 150d98272fcd65..23c568a885d99a 100644 --- a/app/views/admin/announcements/edit.html.haml +++ b/app/views/admin/announcements/edit.html.haml @@ -5,18 +5,33 @@ = render 'shared/error_messages', object: @announcement .fields-group - = f.input :starts_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: datetime_pattern, placeholder: datetime_placeholder } - = f.input :ends_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: datetime_pattern, placeholder: datetime_placeholder } + = f.input :starts_at, + html5: true, + include_blank: true, + input_html: { pattern: datetime_pattern, placeholder: datetime_placeholder }, + wrapper: :with_block_label + = f.input :ends_at, + html5: true, + include_blank: true, + input_html: { pattern: datetime_pattern, placeholder: datetime_placeholder }, + wrapper: :with_block_label .fields-group - = f.input :all_day, as: :boolean, wrapper: :with_label + = f.input :all_day, + as: :boolean, + wrapper: :with_label .fields-group - = f.input :text, wrapper: :with_block_label + = f.input :text, + wrapper: :with_block_label - unless @announcement.published? .fields-group - = f.input :scheduled_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: datetime_pattern, placeholder: datetime_placeholder } + = f.input :scheduled_at, + html5: true, + include_blank: true, + input_html: { pattern: datetime_pattern, placeholder: datetime_placeholder }, + wrapper: :with_block_label .actions = f.button :button, t('generic.save_changes'), type: :submit diff --git a/app/views/admin/announcements/new.html.haml b/app/views/admin/announcements/new.html.haml index 0123632ff47a53..a681ed789ec149 100644 --- a/app/views/admin/announcements/new.html.haml +++ b/app/views/admin/announcements/new.html.haml @@ -5,17 +5,34 @@ = render 'shared/error_messages', object: @announcement .fields-group - = f.input :starts_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: datetime_pattern, placeholder: datetime_placeholder } - = f.input :ends_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: datetime_pattern, placeholder: datetime_placeholder } + = f.input :starts_at, + html5: true, + include_blank: true, + input_html: { pattern: datetime_pattern, placeholder: datetime_placeholder }, + wrapper: :with_block_label + = f.input :ends_at, + html5: true, + include_blank: true, + input_html: { pattern: datetime_pattern, placeholder: datetime_placeholder }, + wrapper: :with_block_label .fields-group - = f.input :all_day, as: :boolean, wrapper: :with_label + = f.input :all_day, + as: :boolean, + wrapper: :with_label .fields-group - = f.input :text, wrapper: :with_block_label + = f.input :text, + wrapper: :with_block_label .fields-group - = f.input :scheduled_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: datetime_pattern, placeholder: datetime_placeholder } + = f.input :scheduled_at, + html5: true, + include_blank: true, + input_html: { pattern: datetime_pattern, placeholder: datetime_placeholder }, + wrapper: :with_block_label .actions - = f.button :button, t('.create'), type: :submit + = f.button :button, + t('.create'), + type: :submit diff --git a/app/views/admin/custom_emojis/index.html.haml b/app/views/admin/custom_emojis/index.html.haml index d1cab782689a85..e97906647fa10a 100644 --- a/app/views/admin/custom_emojis/index.html.haml +++ b/app/views/admin/custom_emojis/index.html.haml @@ -68,12 +68,19 @@ .fields-group.fields-row__column.fields-row__column-6 .input.select.optional .label_input - = f.select :category_id, options_from_collection_for_select(CustomEmojiCategory.all, 'id', 'name'), prompt: t('admin.custom_emojis.assign_category'), class: 'select optional', 'aria-label': t('admin.custom_emojis.assign_category') + = f.select :category_id, + options_from_collection_for_select(CustomEmojiCategory.all, 'id', 'name'), + 'aria-label': t('admin.custom_emojis.assign_category'), + class: 'select optional', + prompt: t('admin.custom_emojis.assign_category') .fields-group.fields-row__column.fields-row__column-6 .input.string.optional .label_input - = f.text_field :category_name, class: 'string optional', placeholder: t('admin.custom_emojis.create_new_category'), 'aria-label': t('admin.custom_emojis.create_new_category') + = f.text_field :category_name, + 'aria-label': t('admin.custom_emojis.create_new_category'), + class: 'string optional', + placeholder: t('admin.custom_emojis.create_new_category') .batch-table__body - if @custom_emojis.empty? diff --git a/app/views/admin/custom_emojis/new.html.haml b/app/views/admin/custom_emojis/new.html.haml index 5b5f22703541ff..87fd13f836e14a 100644 --- a/app/views/admin/custom_emojis/new.html.haml +++ b/app/views/admin/custom_emojis/new.html.haml @@ -5,10 +5,16 @@ = render 'shared/error_messages', object: @custom_emoji .fields-group - = f.input :shortcode, wrapper: :with_label, label: t('admin.custom_emojis.shortcode'), hint: t('admin.custom_emojis.shortcode_hint') + = f.input :shortcode, + wrapper: :with_label, + label: t('admin.custom_emojis.shortcode'), + hint: t('admin.custom_emojis.shortcode_hint') .fields-group - = f.input :image, wrapper: :with_label, input_html: { accept: CustomEmoji::IMAGE_MIME_TYPES.join(',') }, hint: t('admin.custom_emojis.image_hint', size: number_to_human_size(CustomEmoji::LIMIT)) + = f.input :image, + wrapper: :with_label, + input_html: { accept: CustomEmoji::IMAGE_MIME_TYPES.join(',') }, + hint: t('admin.custom_emojis.image_hint', size: number_to_human_size(CustomEmoji::LIMIT)) .fields-group = f.input :category_id, collection: CustomEmojiCategory.all, label_method: ->(item) { item.name }, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', include_blank: t('admin.custom_emojis.assign_category'), wrapper: :with_label, label: false, hint: false @@ -23,4 +29,6 @@ = f.input :license, wrapper: :with_label, kmyblue: true, label: t('admin.custom_emojis.license'), hint: t('admin.custom_emojis.license_hint') .actions - = f.button :button, t('admin.custom_emojis.upload'), type: :submit + = f.button :button, + t('admin.custom_emojis.upload'), + type: :submit diff --git a/app/views/admin/domain_blocks/edit.html.haml b/app/views/admin/domain_blocks/edit.html.haml index 7ab3aaae03197b..fc4afe9c3ce378 100644 --- a/app/views/admin/domain_blocks/edit.html.haml +++ b/app/views/admin/domain_blocks/edit.html.haml @@ -6,32 +6,65 @@ .fields-row .fields-row__column.fields-row__column-6.fields-group - = f.input :domain, wrapper: :with_label, label: t('admin.domain_blocks.domain'), hint: t('admin.domain_blocks.new.hint'), required: true, readonly: true, disabled: true + = f.input :domain, + disabled: true, + hint: t('admin.domain_blocks.new.hint'), + label: t('admin.domain_blocks.domain'), + readonly: true, + required: true, + wrapper: :with_label .fields-row__column.fields-row__column-6.fields-group - = f.input :severity, collection: DomainBlock.severities.keys, wrapper: :with_label, include_blank: false, label_method: ->(type) { t("admin.domain_blocks.new.severity.#{type}") }, hint: t('admin.domain_blocks.new.severity.desc_html') + = f.input :severity, + collection: DomainBlock.severities.keys, + hint: t('admin.domain_blocks.new.severity.desc_html'), + include_blank: false, + label_method: ->(type) { t("admin.domain_blocks.new.severity.#{type}") }, + wrapper: :with_label = render 'domain_block_list', f: f %h4= I18n.t('admin.domain_blocks.headers.mastodon_default') .fields-group - = f.input :reject_media, as: :boolean, wrapper: :with_label, label: I18n.t('admin.domain_blocks.reject_media'), hint: I18n.t('admin.domain_blocks.reject_media_hint') + = f.input :reject_media, + as: :boolean, + hint: I18n.t('admin.domain_blocks.reject_media_hint'), + label: I18n.t('admin.domain_blocks.reject_media'), + wrapper: :with_label .fields-group - = f.input :reject_reports, as: :boolean, wrapper: :with_label, label: I18n.t('admin.domain_blocks.reject_reports'), hint: I18n.t('admin.domain_blocks.reject_reports_hint') + = f.input :reject_reports, + as: :boolean, + hint: I18n.t('admin.domain_blocks.reject_reports_hint'), + label: I18n.t('admin.domain_blocks.reject_reports'), + wrapper: :with_label .fields-group - = f.input :obfuscate, as: :boolean, wrapper: :with_label, label: I18n.t('admin.domain_blocks.obfuscate'), hint: I18n.t('admin.domain_blocks.obfuscate_hint') + = f.input :obfuscate, + as: :boolean, + hint: I18n.t('admin.domain_blocks.obfuscate_hint'), + label: I18n.t('admin.domain_blocks.obfuscate'), + wrapper: :with_label .field-group - = f.input :private_comment, wrapper: :with_label, label: I18n.t('admin.domain_blocks.private_comment'), hint: t('admin.domain_blocks.private_comment_hint'), as: :string + = f.input :private_comment, + as: :string, + hint: t('admin.domain_blocks.private_comment_hint'), + label: I18n.t('admin.domain_blocks.private_comment'), + wrapper: :with_label .field-group - = f.input :public_comment, wrapper: :with_label, label: I18n.t('admin.domain_blocks.public_comment'), hint: t('admin.domain_blocks.public_comment_hint'), as: :string + = f.input :public_comment, + as: :string, + hint: t('admin.domain_blocks.public_comment_hint'), + label: I18n.t('admin.domain_blocks.public_comment'), + wrapper: :with_label .fields-group = f.input :hidden, as: :boolean, kmyblue: true, wrapper: :with_label, label: I18n.t('admin.domain_blocks.hidden'), hint: I18n.t('admin.domain_blocks.hidden_hint') .actions - = f.button :button, t('generic.save_changes'), type: :submit + = f.button :button, + t('generic.save_changes'), + type: :submit diff --git a/app/views/admin/domain_blocks/new.html.haml b/app/views/admin/domain_blocks/new.html.haml index 8f5180eb8dc374..d3f59db6b86a6e 100644 --- a/app/views/admin/domain_blocks/new.html.haml +++ b/app/views/admin/domain_blocks/new.html.haml @@ -6,32 +6,63 @@ .fields-row .fields-row__column.fields-row__column-6.fields-group - = f.input :domain, wrapper: :with_label, label: t('admin.domain_blocks.domain'), hint: t('.hint'), required: true + = f.input :domain, + hint: t('.hint'), + label: t('admin.domain_blocks.domain'), + required: true, + wrapper: :with_label .fields-row__column.fields-row__column-6.fields-group - = f.input :severity, collection: DomainBlock.severities.keys, wrapper: :with_label, include_blank: false, label_method: ->(type) { t(".severity.#{type}") }, hint: t('.severity.desc_html') + = f.input :severity, + collection: DomainBlock.severities.keys, + hint: t('.severity.desc_html'), + include_blank: false, + label_method: ->(type) { t(".severity.#{type}") }, + wrapper: :with_label = render 'domain_block_list', f: f %h4= I18n.t('admin.domain_blocks.headers.mastodon_default') .fields-group - = f.input :reject_media, as: :boolean, wrapper: :with_label, label: I18n.t('admin.domain_blocks.reject_media'), hint: I18n.t('admin.domain_blocks.reject_media_hint') + = f.input :reject_media, + as: :boolean, + hint: I18n.t('admin.domain_blocks.reject_media_hint'), + label: I18n.t('admin.domain_blocks.reject_media'), + wrapper: :with_label .fields-group - = f.input :reject_reports, as: :boolean, wrapper: :with_label, label: I18n.t('admin.domain_blocks.reject_reports'), hint: I18n.t('admin.domain_blocks.reject_reports_hint') + = f.input :reject_reports, + as: :boolean, + hint: I18n.t('admin.domain_blocks.reject_reports_hint'), + label: I18n.t('admin.domain_blocks.reject_reports'), + wrapper: :with_label .fields-group - = f.input :obfuscate, as: :boolean, wrapper: :with_label, label: I18n.t('admin.domain_blocks.obfuscate'), hint: I18n.t('admin.domain_blocks.obfuscate_hint') + = f.input :obfuscate, + as: :boolean, + hint: I18n.t('admin.domain_blocks.obfuscate_hint'), + label: I18n.t('admin.domain_blocks.obfuscate'), + wrapper: :with_label .field-group - = f.input :private_comment, wrapper: :with_label, label: I18n.t('admin.domain_blocks.private_comment'), hint: t('admin.domain_blocks.private_comment_hint'), as: :string + = f.input :private_comment, + as: :string, + hint: t('admin.domain_blocks.private_comment_hint'), + label: I18n.t('admin.domain_blocks.private_comment'), + wrapper: :with_label .field-group - = f.input :public_comment, wrapper: :with_label, label: I18n.t('admin.domain_blocks.public_comment'), hint: t('admin.domain_blocks.public_comment_hint'), as: :string + = f.input :public_comment, + as: :string, + hint: t('admin.domain_blocks.public_comment_hint'), + label: I18n.t('admin.domain_blocks.public_comment'), + wrapper: :with_label .fields-group = f.input :hidden, as: :boolean, kmyblue: true, wrapper: :with_label, label: I18n.t('admin.domain_blocks.hidden'), hint: I18n.t('admin.domain_blocks.hidden_hint') .actions - = f.button :button, t('.create'), type: :submit + = f.button :button, + t('.create'), + type: :submit diff --git a/app/views/admin/email_domain_blocks/index.html.haml b/app/views/admin/email_domain_blocks/index.html.haml index 9f16e0d5c36460..59036f899f9faa 100644 --- a/app/views/admin/email_domain_blocks/index.html.haml +++ b/app/views/admin/email_domain_blocks/index.html.haml @@ -12,7 +12,11 @@ %label.batch-table__toolbar__select.batch-checkbox-all = check_box_tag :batch_checkbox_all, nil, false .batch-table__toolbar__actions - = f.button safe_join([fa_icon('times'), t('admin.email_domain_blocks.delete')]), name: :delete, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + = f.button safe_join([fa_icon('times'), t('admin.email_domain_blocks.delete')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :delete, + type: :submit .batch-table__body - if @email_domain_blocks.empty? = nothing_here 'nothing-here--under-tabs' diff --git a/app/views/admin/email_domain_blocks/new.html.haml b/app/views/admin/email_domain_blocks/new.html.haml index 3d31487733ee34..dd4b83ee3f2832 100644 --- a/app/views/admin/email_domain_blocks/new.html.haml +++ b/app/views/admin/email_domain_blocks/new.html.haml @@ -5,10 +5,16 @@ = render 'shared/error_messages', object: @email_domain_block .fields-group - = f.input :domain, wrapper: :with_block_label, label: t('admin.email_domain_blocks.domain'), input_html: { readonly: defined?(@resolved_records) } + = f.input :domain, + input_html: { readonly: defined?(@resolved_records) }, + label: t('admin.email_domain_blocks.domain'), + wrapper: :with_block_label .fields-group - = f.input :allow_with_approval, wrapper: :with_label, hint: false, label: I18n.t('admin.email_domain_blocks.allow_registrations_with_approval') + = f.input :allow_with_approval, + hint: false, + label: I18n.t('admin.email_domain_blocks.allow_registrations_with_approval'), + wrapper: :with_label - if defined?(@resolved_records) %p.hint= t('admin.email_domain_blocks.resolved_dns_records_hint_html') @@ -22,7 +28,11 @@ - @resolved_records.each do |record| .batch-table__row %label.batch-table__row__select.batch-table__row__select--aligned.batch-checkbox - = f.input_field :other_domains, as: :boolean, checked_value: record.exchange.to_s, include_hidden: false, multiple: true + = f.input_field :other_domains, + as: :boolean, + checked_value: record.exchange.to_s, + include_hidden: false, + multiple: true .batch-table__row__content.pending-account .pending-account__header %samp= record.exchange.to_s diff --git a/app/views/admin/export_domain_allows/new.html.haml b/app/views/admin/export_domain_allows/new.html.haml index dc0cf8c52a1ff2..66c6aa8d8ac688 100644 --- a/app/views/admin/export_domain_allows/new.html.haml +++ b/app/views/admin/export_domain_allows/new.html.haml @@ -4,7 +4,10 @@ = simple_form_for @import, url: import_admin_export_domain_allows_path, html: { multipart: true } do |f| .fields-row .fields-group.fields-row__column.fields-row__column-6 - = f.input :data, wrapper: :with_block_label, hint: t('simple_form.hints.imports.data'), as: :file + = f.input :data, + as: :file, + hint: t('simple_form.hints.imports.data'), + wrapper: :with_block_label .actions = f.button :button, t('imports.upload'), type: :submit diff --git a/app/views/admin/export_domain_blocks/import.html.haml b/app/views/admin/export_domain_blocks/import.html.haml index 01add232d16d1d..48016a9abe1f5e 100644 --- a/app/views/admin/export_domain_blocks/import.html.haml +++ b/app/views/admin/export_domain_blocks/import.html.haml @@ -12,7 +12,11 @@ %label.batch-table__toolbar__select.batch-checkbox-all = check_box_tag :batch_checkbox_all, nil, false .batch-table__toolbar__actions - = f.button safe_join([fa_icon('copy'), t('admin.domain_blocks.import')]), name: :save, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + = f.button safe_join([fa_icon('copy'), t('admin.domain_blocks.import')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :save, + type: :submit .batch-table__body - if @domain_blocks.empty? = nothing_here 'nothing-here--under-tabs' diff --git a/app/views/admin/export_domain_blocks/new.html.haml b/app/views/admin/export_domain_blocks/new.html.haml index 0291aeed776e2d..9c960d47fe50e4 100644 --- a/app/views/admin/export_domain_blocks/new.html.haml +++ b/app/views/admin/export_domain_blocks/new.html.haml @@ -4,7 +4,10 @@ = simple_form_for @import, url: import_admin_export_domain_blocks_path, html: { multipart: true } do |f| .fields-row .fields-group.fields-row__column.fields-row__column-6 - = f.input :data, wrapper: :with_block_label, hint: t('simple_form.hints.imports.data'), as: :file + = f.input :data, + as: :file, + hint: t('simple_form.hints.imports.data'), + wrapper: :with_block_label .actions = f.button :button, t('imports.upload'), type: :submit diff --git a/app/views/admin/follow_recommendations/show.html.haml b/app/views/admin/follow_recommendations/show.html.haml index 9c2063d3c577ee..9d23f9ba5160a5 100644 --- a/app/views/admin/follow_recommendations/show.html.haml +++ b/app/views/admin/follow_recommendations/show.html.haml @@ -13,7 +13,8 @@ .filter-subset.filter-subset--with-select %strong= t('admin.follow_recommendations.language') .input.select.optional - = select_tag :language, options_for_select(Trends.available_locales.map { |key| [standard_locale_name(key), key] }, @language) + = select_tag :language, + options_for_select(Trends.available_locales.map { |key| [standard_locale_name(key), key] }, @language) .filter-subset %strong= t('admin.follow_recommendations.status') %ul @@ -30,9 +31,16 @@ = check_box_tag :batch_checkbox_all, nil, false .batch-table__toolbar__actions - if params[:status].blank? && can?(:suppress, :follow_recommendation) - = f.button safe_join([fa_icon('times'), t('admin.follow_recommendations.suppress')]), name: :suppress, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + = f.button safe_join([fa_icon('times'), t('admin.follow_recommendations.suppress')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :suppress, + type: :submit - if params[:status] == 'suppressed' && can?(:unsuppress, :follow_recommendation) - = f.button safe_join([fa_icon('plus'), t('admin.follow_recommendations.unsuppress')]), name: :unsuppress, class: 'table-action-link', type: :submit + = f.button safe_join([fa_icon('plus'), t('admin.follow_recommendations.unsuppress')]), + class: 'table-action-link', + name: :unsuppress, + type: :submit .batch-table__body - if @accounts.empty? = nothing_here 'nothing-here--under-tabs' diff --git a/app/views/admin/ip_blocks/index.html.haml b/app/views/admin/ip_blocks/index.html.haml index a48e4791a36344..f1d2b3dc477d7e 100644 --- a/app/views/admin/ip_blocks/index.html.haml +++ b/app/views/admin/ip_blocks/index.html.haml @@ -14,7 +14,11 @@ = check_box_tag :batch_checkbox_all, nil, false .batch-table__toolbar__actions - if can?(:destroy, :ip_block) - = f.button safe_join([fa_icon('times'), t('admin.ip_blocks.delete')]), name: :delete, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + = f.button safe_join([fa_icon('times'), t('admin.ip_blocks.delete')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :delete, + type: :submit .batch-table__body - if @ip_blocks.empty? = nothing_here 'nothing-here--under-tabs' diff --git a/app/views/admin/ip_blocks/new.html.haml b/app/views/admin/ip_blocks/new.html.haml index ecaf04315bc674..81493012c60405 100644 --- a/app/views/admin/ip_blocks/new.html.haml +++ b/app/views/admin/ip_blocks/new.html.haml @@ -5,16 +5,30 @@ = render 'shared/error_messages', object: @ip_block .fields-group - = f.input :ip, as: :string, wrapper: :with_block_label, input_html: { placeholder: '192.0.2.0/24' } + = f.input :ip, + as: :string, + input_html: { placeholder: '192.0.2.0/24' }, + wrapper: :with_block_label .fields-group - = f.input :expires_in, wrapper: :with_block_label, collection: [1.day, 2.weeks, 1.month, 6.months, 1.year, 3.years].map(&:to_i), label_method: ->(i) { I18n.t("admin.ip_blocks.expires_in.#{i}") }, prompt: I18n.t('invites.expires_in_prompt') + = f.input :expires_in, + collection: [1.day, 2.weeks, 1.month, 6.months, 1.year, 3.years].map(&:to_i), + label_method: ->(i) { I18n.t("admin.ip_blocks.expires_in.#{i}") }, + prompt: I18n.t('invites.expires_in_prompt'), + wrapper: :with_block_label .fields-group - = f.input :severity, as: :radio_buttons, collection: IpBlock.severities.keys, include_blank: false, wrapper: :with_block_label, label_method: ->(severity) { ip_blocks_severity_label(severity) } + = f.input :severity, + as: :radio_buttons, + collection: IpBlock.severities.keys, + include_blank: false, + label_method: ->(severity) { ip_blocks_severity_label(severity) }, + wrapper: :with_block_label .fields-group - = f.input :comment, as: :string, wrapper: :with_block_label + = f.input :comment, + as: :string, + wrapper: :with_block_label .actions = f.button :button, t('admin.ip_blocks.add_new'), type: :submit diff --git a/app/views/admin/relationships/index.html.haml b/app/views/admin/relationships/index.html.haml index f82cf26a38e0cc..8260430d80fb6e 100644 --- a/app/views/admin/relationships/index.html.haml +++ b/app/views/admin/relationships/index.html.haml @@ -30,7 +30,11 @@ %label.batch-table__toolbar__select.batch-checkbox-all = check_box_tag :batch_checkbox_all, nil, false .batch-table__toolbar__actions - = f.button safe_join([fa_icon('lock'), t('admin.accounts.perform_full_suspension')]), name: :suspend, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + = f.button safe_join([fa_icon('lock'), t('admin.accounts.perform_full_suspension')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :suspend, + type: :submit .batch-table__body - if @accounts.empty? = nothing_here 'nothing-here--under-tabs' diff --git a/app/views/admin/reports/_status.html.haml b/app/views/admin/reports/_status.html.haml index b2982a42bf5107..3775a1101cb0a8 100644 --- a/app/views/admin/reports/_status.html.haml +++ b/app/views/admin/reports/_status.html.haml @@ -22,7 +22,9 @@ %time.formatted{ datetime: status.created_at.iso8601, title: l(status.created_at) }= l(status.created_at) - if status.edited? · - = link_to t('statuses.edited_at_html', date: content_tag(:time, l(status.edited_at), datetime: status.edited_at.iso8601, title: l(status.edited_at), class: 'formatted')), admin_account_status_path(status.account_id, status), class: 'detailed-status__datetime' + = link_to t('statuses.edited_at_html', date: content_tag(:time, l(status.edited_at), datetime: status.edited_at.iso8601, title: l(status.edited_at), class: 'formatted')), + admin_account_status_path(status.account_id, status), + class: 'detailed-status__datetime' - if status.discarded? · %span.negative-hint= t('admin.statuses.deleted') diff --git a/app/views/admin/reports/show.html.haml b/app/views/admin/reports/show.html.haml index 4376e5af4d7a75..e20dd38c4f8c07 100644 --- a/app/views/admin/reports/show.html.haml +++ b/app/views/admin/reports/show.html.haml @@ -37,7 +37,9 @@ %p = t 'admin.reports.statuses_description_html' — - = link_to safe_join([fa_icon('plus'), t('admin.reports.add_to_report')]), admin_account_statuses_path(@report.target_account_id, report_id: @report.id), class: 'table-action-link' + = link_to safe_join([fa_icon('plus'), t('admin.reports.add_to_report')]), + admin_account_statuses_path(@report.target_account_id, report_id: @report.id), + class: 'table-action-link' = form_for(@form, url: batch_admin_account_statuses_path(@report.target_account_id, report_id: @report.id)) do |f| .batch-table diff --git a/app/views/admin/roles/_form.html.haml b/app/views/admin/roles/_form.html.haml index 46a1c537a75a0f..0b1c3101624c30 100644 --- a/app/views/admin/roles/_form.html.haml +++ b/app/views/admin/roles/_form.html.haml @@ -5,19 +5,25 @@ = t('admin.roles.everyone_full_description_html') - else .fields-group - = form.input :name, wrapper: :with_label + = form.input :name, + wrapper: :with_label - unless current_user.role == form.object .fields-group - = form.input :position, wrapper: :with_label, input_html: { max: current_user.role.position - 1 } + = form.input :position, + input_html: { max: current_user.role.position - 1 }, + wrapper: :with_label .fields-group - = form.input :color, wrapper: :with_label, input_html: { placeholder: '#000000', type: 'color' } + = form.input :color, + input_html: { placeholder: '#000000', type: 'color' }, + wrapper: :with_label %hr.spacer/ .fields-group - = form.input :highlighted, wrapper: :with_label + = form.input :highlighted, + wrapper: :with_label %hr.spacer/ @@ -31,6 +37,17 @@ - (form.object.everyone? ? UserRole::Flags::CATEGORIES.slice(:invites) : UserRole::Flags::CATEGORIES).each do |category, permissions| %h4= t(category, scope: 'admin.roles.categories') - = form.input :permissions_as_keys, collection: permissions, wrapper: :with_block_label, include_blank: false, label_method: ->(privilege) { privilege_label(privilege) }, required: false, as: :check_boxes, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', label: false, hint: false, disabled: disable_permissions?(permissions) + = form.input :permissions_as_keys, + as: :check_boxes, + collection_wrapper_tag: 'ul', + collection: permissions, + disabled: disable_permissions?(permissions), + hint: false, + include_blank: false, + item_wrapper_tag: 'li', + label_method: ->(privilege) { privilege_label(privilege) }, + label: false, + required: false, + wrapper: :with_block_label %hr.spacer/ diff --git a/app/views/admin/settings/about/show.html.haml b/app/views/admin/settings/about/show.html.haml index 1237c20fa8e36b..1eb47a0b54e865 100644 --- a/app/views/admin/settings/about/show.html.haml +++ b/app/views/admin/settings/about/show.html.haml @@ -11,7 +11,10 @@ %p.lead= t('admin.settings.about.preamble') .fields-group - = f.input :site_extended_description, wrapper: :with_block_label, as: :text, input_html: { rows: 8 } + = f.input :site_extended_description, + as: :text, + input_html: { rows: 8 }, + wrapper: :with_block_label %p.hint = t 'admin.settings.about.rules_hint' @@ -19,15 +22,32 @@ .fields-row .fields-row__column.fields-row__column-6.fields-group - = f.input :show_domain_blocks, wrapper: :with_label, collection: %i(disabled users all), label_method: ->(value) { t("admin.settings.domain_blocks.#{value}") }, include_blank: false, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li' + = f.input :show_domain_blocks, + collection_wrapper_tag: 'ul', + collection: %i(disabled users all), + include_blank: false, + item_wrapper_tag: 'li', + label_method: ->(value) { t("admin.settings.domain_blocks.#{value}") }, + wrapper: :with_label .fields-row__column.fields-row__column-6.fields-group - = f.input :show_domain_blocks_rationale, wrapper: :with_label, collection: %i(disabled users all), label_method: ->(value) { t("admin.settings.domain_blocks.#{value}") }, include_blank: false, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li' + = f.input :show_domain_blocks_rationale, + collection_wrapper_tag: 'ul', + collection: %i(disabled users all), + include_blank: false, + item_wrapper_tag: 'li', + label_method: ->(value) { t("admin.settings.domain_blocks.#{value}") }, + wrapper: :with_label .fields-group - = f.input :status_page_url, wrapper: :with_block_label, input_html: { placeholder: "https://status.#{Rails.configuration.x.local_domain}" } + = f.input :status_page_url, + input_html: { placeholder: "https://status.#{Rails.configuration.x.local_domain}" }, + wrapper: :with_block_label .fields-group - = f.input :site_terms, wrapper: :with_block_label, as: :text, input_html: { rows: 8 } + = f.input :site_terms, + as: :text, + input_html: { rows: 8 }, + wrapper: :with_block_label .actions = f.button :button, t('generic.save_changes'), type: :submit diff --git a/app/views/admin/settings/appearance/show.html.haml b/app/views/admin/settings/appearance/show.html.haml index ed61774c9b0379..3ef4920cd50d5a 100644 --- a/app/views/admin/settings/appearance/show.html.haml +++ b/app/views/admin/settings/appearance/show.html.haml @@ -11,14 +11,23 @@ %p.lead= t('admin.settings.appearance.preamble') .fields-group - = f.input :theme, collection: Themes.instance.names, label_method: ->(theme) { I18n.t("themes.#{theme}", default: theme) }, wrapper: :with_label, include_blank: false + = f.input :theme, + collection: Themes.instance.names, + include_blank: false, + label_method: ->(theme) { I18n.t("themes.#{theme}", default: theme) }, + wrapper: :with_label .fields-group - = f.input :custom_css, wrapper: :with_block_label, as: :text, input_html: { rows: 8 } + = f.input :custom_css, + as: :text, + input_html: { rows: 8 }, + wrapper: :with_block_label .fields-row .fields-row__column.fields-row__column-6.fields-group - = f.input :mascot, as: :file, wrapper: :with_block_label + = f.input :mascot, + as: :file, + wrapper: :with_block_label .fields-row__column.fields-row__column-6.fields-group - if @admin_settings.mascot.persisted? diff --git a/app/views/admin/settings/branding/show.html.haml b/app/views/admin/settings/branding/show.html.haml index aee730689227e9..769c0dafe81d5f 100644 --- a/app/views/admin/settings/branding/show.html.haml +++ b/app/views/admin/settings/branding/show.html.haml @@ -11,20 +11,28 @@ %p.lead= t('admin.settings.branding.preamble') .fields-group - = f.input :site_title, wrapper: :with_label + = f.input :site_title, + wrapper: :with_label .fields-row .fields-row__column.fields-row__column-6.fields-group - = f.input :site_contact_username, wrapper: :with_label + = f.input :site_contact_username, + wrapper: :with_label .fields-row__column.fields-row__column-6.fields-group - = f.input :site_contact_email, wrapper: :with_label + = f.input :site_contact_email, + wrapper: :with_label .fields-group - = f.input :site_short_description, wrapper: :with_block_label, as: :text, input_html: { rows: 2, maxlength: 200 } + = f.input :site_short_description, + as: :text, + input_html: { rows: 2, maxlength: 200 }, + wrapper: :with_block_label .fields-row .fields-row__column.fields-row__column-6.fields-group - = f.input :thumbnail, as: :file, wrapper: :with_block_label + = f.input :thumbnail, + as: :file, + wrapper: :with_block_label .fields-row__column.fields-row__column-6.fields-group - if @admin_settings.thumbnail.persisted? = image_tag @admin_settings.thumbnail.file.url(:'@1x'), class: 'fields-group__thumbnail' diff --git a/app/views/admin/settings/content_retention/show.html.haml b/app/views/admin/settings/content_retention/show.html.haml index b0971c14441702..3c5f7e2c03642e 100644 --- a/app/views/admin/settings/content_retention/show.html.haml +++ b/app/views/admin/settings/content_retention/show.html.haml @@ -11,14 +11,18 @@ %p.lead= t('admin.settings.content_retention.preamble') .fields-group - = f.input :media_cache_retention_period, wrapper: :with_block_label, input_html: { pattern: '[0-9]+' } - - .fields-group - = f.input :content_cache_retention_period, wrapper: :with_block_label, input_html: { pattern: '[0-9]+' }, hint: false, warning_hint: t('simple_form.hints.form_admin_settings.content_cache_retention_period') + = f.input :media_cache_retention_period, + input_html: { pattern: '[0-9]+' }, + wrapper: :with_block_label + = f.input :content_cache_retention_period, + hint: false, + input_html: { pattern: '[0-9]+' }, + warning_hint: t('simple_form.hints.form_admin_settings.content_cache_retention_period'), + wrapper: :with_block_label = f.input :delete_content_cache_without_reaction, as: :boolean, wrapper: :with_label, kmyblue: true, hint: false - - .fields-group - = f.input :backups_retention_period, wrapper: :with_block_label, input_html: { pattern: '[0-9]+' } + = f.input :backups_retention_period, + input_html: { pattern: '[0-9]+' }, + wrapper: :with_block_label .actions = f.button :button, t('generic.save_changes'), type: :submit diff --git a/app/views/admin/settings/discovery/show.html.haml b/app/views/admin/settings/discovery/show.html.haml index 88b5663a0d5161..162dd51d862e33 100644 --- a/app/views/admin/settings/discovery/show.html.haml +++ b/app/views/admin/settings/discovery/show.html.haml @@ -13,21 +13,34 @@ %h4= t('admin.settings.discovery.trends') .fields-group - = f.input :trends, as: :boolean, wrapper: :with_label + = f.input :trends, + as: :boolean, + wrapper: :with_label .fields-group - = f.input :trends_as_landing_page, as: :boolean, wrapper: :with_label + = f.input :trends_as_landing_page, + as: :boolean, + wrapper: :with_label .fields-group - = f.input :trendable_by_default, as: :boolean, wrapper: :with_label, recommended: :not_recommended + = f.input :trendable_by_default, + as: :boolean, + wrapper: :with_label, + recommended: :not_recommended %h4= t('admin.settings.discovery.public_timelines') .fields-group - = f.input :timeline_preview, as: :boolean, wrapper: :with_label + = f.input :timeline_preview, + as: :boolean, + wrapper: :with_label .fields-group - = f.input :noindex, as: :boolean, wrapper: :with_label, label: t('admin.settings.default_noindex.title'), hint: t('admin.settings.default_noindex.desc_html') + = f.input :noindex, + as: :boolean, + hint: t('admin.settings.default_noindex.desc_html'), + label: t('admin.settings.default_noindex.title'), + wrapper: :with_label %h4= t('admin.settings.discovery.emoji_reactions') @@ -62,17 +75,30 @@ %h4= t('admin.settings.discovery.publish_statistics') .fields-group - = f.input :activity_api_enabled, as: :boolean, wrapper: :with_label, recommended: :recommended + = f.input :activity_api_enabled, + as: :boolean, + wrapper: :with_label, + recommended: :recommended %h4= t('admin.settings.discovery.publish_discovered_servers') .fields-group - = f.input :peers_api_enabled, as: :boolean, wrapper: :with_label, recommended: :recommended + = f.input :peers_api_enabled, + as: :boolean, + wrapper: :with_label, + recommended: :recommended %h4= t('admin.settings.security.federation_authentication') .fields-group - = f.input :authorized_fetch, as: :boolean, wrapper: :with_label, label: t('admin.settings.security.authorized_fetch'), warning_hint: discovery_warning_hint_text, hint: discovery_hint_text, disabled: authorized_fetch_overridden?, recommended: discovery_recommended_value + = f.input :authorized_fetch, + as: :boolean, + disabled: authorized_fetch_overridden?, + hint: discovery_hint_text, + label: t('admin.settings.security.authorized_fetch'), + recommended: discovery_recommended_value, + warning_hint: discovery_warning_hint_text, + wrapper: :with_label .fields-group = f.input :check_lts_version_only, as: :boolean, wrapper: :with_label, kmyblue: true, hint: false @@ -80,12 +106,15 @@ %h4= t('admin.settings.discovery.follow_recommendations') .fields-group - = f.input :bootstrap_timeline_accounts, wrapper: :with_block_label + = f.input :bootstrap_timeline_accounts, + wrapper: :with_block_label %h4= t('admin.settings.discovery.profile_directory') .fields-group - = f.input :profile_directory, as: :boolean, wrapper: :with_label + = f.input :profile_directory, + as: :boolean, + wrapper: :with_label .actions = f.button :button, t('generic.save_changes'), type: :submit diff --git a/app/views/admin/settings/registrations/show.html.haml b/app/views/admin/settings/registrations/show.html.haml index 9b55f3cd8f5626..4d40b2889c6ddb 100644 --- a/app/views/admin/settings/registrations/show.html.haml +++ b/app/views/admin/settings/registrations/show.html.haml @@ -14,17 +14,32 @@ .fields-row .fields-row__column.fields-row__column-6.fields-group - = f.input :registrations_mode, collection: %w(open approved none), wrapper: :with_label, include_blank: false, label_method: ->(mode) { I18n.t("admin.settings.registrations_mode.modes.#{mode}") }, warning_hint: I18n.t('admin.settings.registrations_mode.warning_hint') + = f.input :registrations_mode, + collection: %w(open approved none), + include_blank: false, + label_method: ->(mode) { I18n.t("admin.settings.registrations_mode.modes.#{mode}") }, + warning_hint: I18n.t('admin.settings.registrations_mode.warning_hint'), + wrapper: :with_label .fields-row__column.fields-row__column-6.fields-group - = f.input :require_invite_text, as: :boolean, wrapper: :with_label, disabled: !approved_registrations? + = f.input :require_invite_text, + as: :boolean, + disabled: !approved_registrations?, + wrapper: :with_label - if captcha_available? .fields-group - = f.input :captcha_enabled, as: :boolean, wrapper: :with_label, label: t('admin.settings.captcha_enabled.title'), hint: t('admin.settings.captcha_enabled.desc_html') + = f.input :captcha_enabled, + as: :boolean, + hint: t('admin.settings.captcha_enabled.desc_html'), + label: t('admin.settings.captcha_enabled.title'), + wrapper: :with_label .fields-group - = f.input :closed_registrations_message, as: :text, wrapper: :with_block_label, input_html: { rows: 2 } + = f.input :closed_registrations_message, + as: :text, + input_html: { rows: 2 }, + wrapper: :with_block_label .fields-group = f.input :registration_button_message, as: :text, kmyblue: true, hint: false, wrapper: :with_label, input_html: { rows: 2 } diff --git a/app/views/admin/statuses/index.html.haml b/app/views/admin/statuses/index.html.haml index a2e3cbc0daf09a..33a41bd36520ab 100644 --- a/app/views/admin/statuses/index.html.haml +++ b/app/views/admin/statuses/index.html.haml @@ -33,7 +33,11 @@ = check_box_tag :batch_checkbox_all, nil, false .batch-table__toolbar__actions - unless @statuses.empty? - = f.button safe_join([fa_icon('flag'), t('admin.statuses.batch.report')]), name: :report, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + = f.button safe_join([fa_icon('flag'), t('admin.statuses.batch.report')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :report, + type: :submit .batch-table__body - if @statuses.empty? = nothing_here 'nothing-here--under-tabs' diff --git a/app/views/admin/trends/links/index.html.haml b/app/views/admin/trends/links/index.html.haml index e6ed9d95f6601b..965d2b2e5684fa 100644 --- a/app/views/admin/trends/links/index.html.haml +++ b/app/views/admin/trends/links/index.html.haml @@ -13,7 +13,9 @@ .filter-subset.filter-subset--with-select %strong= t('admin.follow_recommendations.language') .input.select.optional - = select_tag :locale, options_for_select(@locales.map { |key| [standard_locale_name(key), key] }, params[:locale]), include_blank: true + = select_tag :locale, + options_for_select(@locales.map { |key| [standard_locale_name(key), key] }, params[:locale]), + include_blank: true .filter-subset %strong= t('admin.trends.trending') %ul @@ -35,10 +37,26 @@ %label.batch-table__toolbar__select.batch-checkbox-all = check_box_tag :batch_checkbox_all, nil, false .batch-table__toolbar__actions - = f.button safe_join([fa_icon('check'), t('admin.trends.links.allow')]), name: :approve, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } - = f.button safe_join([fa_icon('check'), t('admin.trends.links.allow_provider')]), name: :approve_providers, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } - = f.button safe_join([fa_icon('times'), t('admin.trends.links.disallow')]), name: :reject, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } - = f.button safe_join([fa_icon('times'), t('admin.trends.links.disallow_provider')]), name: :reject_providers, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + = f.button safe_join([fa_icon('check'), t('admin.trends.links.allow')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :approve, + type: :submit + = f.button safe_join([fa_icon('check'), t('admin.trends.links.allow_provider')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :approve_providers, + type: :submit + = f.button safe_join([fa_icon('times'), t('admin.trends.links.disallow')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :reject, + type: :submit + = f.button safe_join([fa_icon('times'), t('admin.trends.links.disallow_provider')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :reject_providers, + type: :submit .batch-table__body - if @preview_cards.empty? = nothing_here 'nothing-here--under-tabs' diff --git a/app/views/admin/trends/links/preview_card_providers/index.html.haml b/app/views/admin/trends/links/preview_card_providers/index.html.haml index d9ad12fc966ac4..c91822fb7491b6 100644 --- a/app/views/admin/trends/links/preview_card_providers/index.html.haml +++ b/app/views/admin/trends/links/preview_card_providers/index.html.haml @@ -31,8 +31,16 @@ %label.batch-table__toolbar__select.batch-checkbox-all = check_box_tag :batch_checkbox_all, nil, false .batch-table__toolbar__actions - = f.button safe_join([fa_icon('check'), t('admin.trends.allow')]), name: :approve, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } - = f.button safe_join([fa_icon('times'), t('admin.trends.disallow')]), name: :reject, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + = f.button safe_join([fa_icon('check'), t('admin.trends.allow')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :approve, + type: :submit + = f.button safe_join([fa_icon('times'), t('admin.trends.disallow')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :reject, + type: :submit .batch-table__body - if @preview_card_providers.empty? diff --git a/app/views/admin/trends/statuses/_status.html.haml b/app/views/admin/trends/statuses/_status.html.haml index 98f2e770908ea9..095f3f2187c983 100644 --- a/app/views/admin/trends/statuses/_status.html.haml +++ b/app/views/admin/trends/statuses/_status.html.haml @@ -14,7 +14,9 @@ = fa_icon 'link' = media_attachment.file_file_name - = t('admin.trends.statuses.shared_by', count: status.reblogs_count + status.favourites_count, friendly_count: friendly_number_to_human(status.reblogs_count + status.favourites_count)) + = t 'admin.trends.statuses.shared_by', + count: status.reblogs_count + status.favourites_count, + friendly_count: friendly_number_to_human(status.reblogs_count + status.favourites_count) - if status.account.domain.present? · diff --git a/app/views/admin/trends/statuses/index.html.haml b/app/views/admin/trends/statuses/index.html.haml index bf04772f2280c2..0891d15fcf0bfb 100644 --- a/app/views/admin/trends/statuses/index.html.haml +++ b/app/views/admin/trends/statuses/index.html.haml @@ -31,10 +31,26 @@ %label.batch-table__toolbar__select.batch-checkbox-all = check_box_tag :batch_checkbox_all, nil, false .batch-table__toolbar__actions - = f.button safe_join([fa_icon('check'), t('admin.trends.statuses.allow')]), name: :approve, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } - = f.button safe_join([fa_icon('check'), t('admin.trends.statuses.allow_account')]), name: :approve_accounts, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } - = f.button safe_join([fa_icon('times'), t('admin.trends.statuses.disallow')]), name: :reject, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } - = f.button safe_join([fa_icon('times'), t('admin.trends.statuses.disallow_account')]), name: :reject_accounts, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + = f.button safe_join([fa_icon('check'), t('admin.trends.statuses.allow')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :approve, + type: :submit + = f.button safe_join([fa_icon('check'), t('admin.trends.statuses.allow_account')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :approve_accounts, + type: :submit + = f.button safe_join([fa_icon('times'), t('admin.trends.statuses.disallow')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :reject, + type: :submit + = f.button safe_join([fa_icon('times'), t('admin.trends.statuses.disallow_account')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :reject_accounts, + type: :submit .batch-table__body - if @statuses.empty? = nothing_here 'nothing-here--under-tabs' diff --git a/app/views/admin/trends/tags/index.html.haml b/app/views/admin/trends/tags/index.html.haml index 4730d20c180af0..effde7b0ec69f9 100644 --- a/app/views/admin/trends/tags/index.html.haml +++ b/app/views/admin/trends/tags/index.html.haml @@ -25,8 +25,16 @@ %label.batch-table__toolbar__select.batch-checkbox-all = check_box_tag :batch_checkbox_all, nil, false .batch-table__toolbar__actions - = f.button safe_join([fa_icon('check'), t('admin.trends.allow')]), name: :approve, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } - = f.button safe_join([fa_icon('times'), t('admin.trends.disallow')]), name: :reject, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + = f.button safe_join([fa_icon('check'), t('admin.trends.allow')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :approve, + type: :submit + = f.button safe_join([fa_icon('times'), t('admin.trends.disallow')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :reject, + type: :submit .batch-table__body - if @tags.empty? diff --git a/app/views/admin/users/roles/show.html.haml b/app/views/admin/users/roles/show.html.haml index 8216180607b909..f26640f2a1af8f 100644 --- a/app/views/admin/users/roles/show.html.haml +++ b/app/views/admin/users/roles/show.html.haml @@ -3,7 +3,13 @@ = simple_form_for @user, url: admin_user_role_path(@user) do |f| .fields-group - = f.association :role, wrapper: :with_block_label, collection: UserRole.assignable, label_method: :name, include_blank: I18n.t('admin.accounts.change_role.no_role') + = f.association :role, + collection: UserRole.assignable, + include_blank: I18n.t('admin.accounts.change_role.no_role'), + label_method: :name, + wrapper: :with_block_label .actions - = f.button :button, t('generic.save_changes'), type: :submit + = f.button :button, + t('generic.save_changes'), + type: :submit diff --git a/app/views/admin/webhooks/_form.html.haml b/app/views/admin/webhooks/_form.html.haml index 6c4574fd3bc087..2b948b9a6aa210 100644 --- a/app/views/admin/webhooks/_form.html.haml +++ b/app/views/admin/webhooks/_form.html.haml @@ -1,10 +1,21 @@ = render 'shared/error_messages', object: form.object .fields-group - = form.input :url, wrapper: :with_block_label, input_html: { placeholder: 'https://' } + = form.input :url, + wrapper: :with_block_label, + input_html: { placeholder: 'https://' } .fields-group - = form.input :events, collection: Webhook::EVENTS, wrapper: :with_block_label, include_blank: false, as: :check_boxes, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', disabled: Webhook::EVENTS.filter { |event| !current_user.role.can?(Webhook.permission_for_event(event)) } + = form.input :events, + collection: Webhook::EVENTS, + wrapper: :with_block_label, + include_blank: false, + as: :check_boxes, + collection_wrapper_tag: 'ul', + item_wrapper_tag: 'li', + disabled: Webhook::EVENTS.filter { |event| !current_user.role.can?(Webhook.permission_for_event(event)) } .fields-group - = form.input :template, wrapper: :with_block_label, input_html: { placeholder: '{ "content": "Hello {{object.username}}" }' } + = form.input :template, + wrapper: :with_block_label, + input_html: { placeholder: '{ "content": "Hello {{object.username}}" }' } diff --git a/app/views/application/mailer/_hashtag.html.haml b/app/views/application/mailer/_hashtag.html.haml index 524fd7e274b805..fcedfa80a5e247 100644 --- a/app/views/application/mailer/_hashtag.html.haml +++ b/app/views/application/mailer/_hashtag.html.haml @@ -17,4 +17,4 @@ %span.email-mini-hashtag-img-span = image_tag full_asset_url(account.avatar.url), alt: '', width: 16, height: 16 %td - %p= t('user_mailer.welcome.hashtags_recent_count', people: number_with_delimiter(hashtag.history.aggregate(2.days.ago.to_date..Time.zone.today).accounts), days: 2) + %p= t('user_mailer.welcome.hashtags_recent_count', people: number_with_delimiter(hashtag.history.aggregate(2.days.ago.to_date..Time.zone.today).accounts)) diff --git a/app/views/filters/_filter_fields.html.haml b/app/views/filters/_filter_fields.html.haml index f8f47feaa10abb..b2fb2552c256d0 100644 --- a/app/views/filters/_filter_fields.html.haml +++ b/app/views/filters/_filter_fields.html.haml @@ -1,16 +1,37 @@ .fields-row .fields-row__column.fields-row__column-6.fields-group - = f.input :title, as: :string, wrapper: :with_label, hint: false + = f.input :title, + as: :string, + hint: false, + wrapper: :with_label .fields-row__column.fields-row__column-6.fields-group - = f.input :expires_in, wrapper: :with_label, collection: [30.minutes, 1.hour, 6.hours, 12.hours, 1.day, 1.week, 2.weeks, 1.month, 3.months].map(&:to_i), label_method: ->(i) { I18n.t("invites.expires_in.#{i}") }, include_blank: I18n.t('invites.expires_in_prompt') + = f.input :expires_in, + collection: [30.minutes, 1.hour, 6.hours, 12.hours, 1.day, 1.week, 2.weeks, 1.month, 3.months].map(&:to_i), + include_blank: I18n.t('invites.expires_in_prompt'), + label_method: ->(i) { I18n.t("invites.expires_in.#{i}") }, + wrapper: :with_label .fields-group - = f.input :context, wrapper: :with_block_label, collection: CustomFilter::VALID_CONTEXTS, as: :check_boxes, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', label_method: ->(context) { I18n.t("filters.contexts.#{context}") }, include_blank: false + = f.input :context, + as: :check_boxes, + collection_wrapper_tag: 'ul', + collection: CustomFilter::VALID_CONTEXTS, + include_blank: false, + item_wrapper_tag: 'li', + label_method: ->(context) { I18n.t("filters.contexts.#{context}") }, + wrapper: :with_block_label %hr.spacer/ .fields-group - = f.input :filter_action, as: :radio_buttons, collection: %i(half_warn warn hide), include_blank: false, wrapper: :with_block_label, label_method: ->(action) { filter_action_label(action) }, hint: t('simple_form.hints.filters.action'), required: true + = f.input :filter_action, + as: :radio_buttons, + collection: %i(half_warn warn hide), + hint: t('simple_form.hints.filters.action'), + include_blank: false, + label_method: ->(action) { filter_action_label(action) }, + required: true, + wrapper: :with_block_label .fields-group = f.input :exclude_follows, wrapper: :with_label, kmyblue: true, label: t('simple_form.labels.filters.options.exclude_follows') diff --git a/app/views/statuses_cleanup/show.html.haml b/app/views/statuses_cleanup/show.html.haml index 9650250aa524c4..44fb9928105189 100644 --- a/app/views/statuses_cleanup/show.html.haml +++ b/app/views/statuses_cleanup/show.html.haml @@ -7,9 +7,19 @@ = simple_form_for @policy, url: statuses_cleanup_path, method: :put, html: { id: 'edit_policy' } do |f| .fields-row .fields-row__column.fields-row__column-6.fields-group - = f.input :enabled, as: :boolean, wrapper: :with_label, label: t('statuses_cleanup.enabled'), hint: t('statuses_cleanup.enabled_hint') + = f.input :enabled, + as: :boolean, + hint: t('statuses_cleanup.enabled_hint'), + label: t('statuses_cleanup.enabled'), + wrapper: :with_label .fields-row__column.fields-row__column-6.fields-group - = f.input :min_status_age, wrapper: :with_label, label: t('statuses_cleanup.min_age_label'), collection: AccountStatusesCleanupPolicy::ALLOWED_MIN_STATUS_AGE.map(&:to_i), label_method: ->(i) { t("statuses_cleanup.min_age.#{i}") }, include_blank: false, hint: false + = f.input :min_status_age, + collection: AccountStatusesCleanupPolicy::ALLOWED_MIN_STATUS_AGE.map(&:to_i), + hint: false, + include_blank: false, + label_method: ->(i) { t("statuses_cleanup.min_age.#{i}") }, + label: t('statuses_cleanup.min_age_label'), + wrapper: :with_label .flash-message= t('statuses_cleanup.explanation') @@ -17,21 +27,39 @@ .fields-row .fields-row__column.fields-row__column-6.fields-group - = f.input :keep_pinned, wrapper: :with_label, label: t('statuses_cleanup.keep_pinned'), hint: t('statuses_cleanup.keep_pinned_hint') + = f.input :keep_pinned, + hint: t('statuses_cleanup.keep_pinned_hint'), + label: t('statuses_cleanup.keep_pinned'), + wrapper: :with_label .fields-row__column.fields-row__column-6.fields-group - = f.input :keep_direct, wrapper: :with_label, label: t('statuses_cleanup.keep_direct'), hint: t('statuses_cleanup.keep_direct_hint') + = f.input :keep_direct, + hint: t('statuses_cleanup.keep_direct_hint'), + label: t('statuses_cleanup.keep_direct'), + wrapper: :with_label .fields-row .fields-row__column.fields-row__column-6.fields-group - = f.input :keep_self_fav, wrapper: :with_label, label: t('statuses_cleanup.keep_self_fav'), hint: t('statuses_cleanup.keep_self_fav_hint') + = f.input :keep_self_fav, + hint: t('statuses_cleanup.keep_self_fav_hint'), + label: t('statuses_cleanup.keep_self_fav'), + wrapper: :with_label .fields-row__column.fields-row__column-6.fields-group - = f.input :keep_self_bookmark, wrapper: :with_label, label: t('statuses_cleanup.keep_self_bookmark'), hint: t('statuses_cleanup.keep_self_bookmark_hint') + = f.input :keep_self_bookmark, + hint: t('statuses_cleanup.keep_self_bookmark_hint'), + label: t('statuses_cleanup.keep_self_bookmark'), + wrapper: :with_label .fields-row .fields-row__column.fields-row__column-6.fields-group - = f.input :keep_polls, wrapper: :with_label, label: t('statuses_cleanup.keep_polls'), hint: t('statuses_cleanup.keep_polls_hint') + = f.input :keep_polls, + hint: t('statuses_cleanup.keep_polls_hint'), + label: t('statuses_cleanup.keep_polls'), + wrapper: :with_label .fields-row__column.fields-row__column-6.fields-group - = f.input :keep_media, wrapper: :with_label, label: t('statuses_cleanup.keep_media'), hint: t('statuses_cleanup.keep_media_hint') + = f.input :keep_media, + hint: t('statuses_cleanup.keep_media_hint'), + label: t('statuses_cleanup.keep_media'), + wrapper: :with_label .fields-row .fields-row__column.fields-row__column-6.fields-group @@ -41,9 +69,17 @@ .fields-row .fields-row__column.fields-row__column-6.fields-group - = f.input :min_favs, wrapper: :with_label, label: t('statuses_cleanup.min_favs'), hint: t('statuses_cleanup.min_favs_hint'), input_html: { min: 1, placeholder: t('statuses_cleanup.ignore_favs') } + = f.input :min_favs, + hint: t('statuses_cleanup.min_favs_hint'), + input_html: { min: 1, placeholder: t('statuses_cleanup.ignore_favs') }, + label: t('statuses_cleanup.min_favs'), + wrapper: :with_label .fields-row__column.fields-row__column-6.fields-group - = f.input :min_reblogs, wrapper: :with_label, label: t('statuses_cleanup.min_reblogs'), hint: t('statuses_cleanup.min_reblogs_hint'), input_html: { min: 1, placeholder: t('statuses_cleanup.ignore_reblogs') } + = f.input :min_reblogs, + hint: t('statuses_cleanup.min_reblogs_hint'), + input_html: { min: 1, placeholder: t('statuses_cleanup.ignore_reblogs') }, + label: t('statuses_cleanup.min_reblogs'), + wrapper: :with_label .fields-row .fields-row__column.fields-row__column-6.fields-group diff --git a/app/views/user_mailer/welcome.text.erb b/app/views/user_mailer/welcome.text.erb index 150944605f09d8..d9da2997daecd7 100644 --- a/app/views/user_mailer/welcome.text.erb +++ b/app/views/user_mailer/welcome.text.erb @@ -53,7 +53,7 @@ <%= t('user_mailer.welcome.hashtags_subtitle') %> <%- @tags.each do |tag| %> -* #<%= tag.display_name %> · <%= t('user_mailer.welcome.hashtags_recent_count', people: number_with_delimiter(tag.history.aggregate(2.days.ago.to_date..Time.zone.today).accounts), days: 2) %> +* #<%= tag.display_name %> · <%= t('user_mailer.welcome.hashtags_recent_count', people: number_with_delimiter(tag.history.aggregate(2.days.ago.to_date..Time.zone.today).accounts)) %> <%= tag_url(tag) %> <%- end %> diff --git a/config/locales/an.yml b/config/locales/an.yml index 27abf2203a8c91..5ac57f423818b7 100644 --- a/config/locales/an.yml +++ b/config/locales/an.yml @@ -1468,8 +1468,6 @@ an: other: "%{count} votos" vote: Vota show_more: Amostrar mas - show_newer: Amostrar mas recients - show_older: Amostrar mas antigos show_thread: Amostrar discusión title: "%{name}: «%{quote}»" visibilities: diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 2e227f53a7a35f..5b932f525c8fdd 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -1820,8 +1820,6 @@ ar: zero: بدون صوت %{count} vote: صوّت show_more: أظهر المزيد - show_newer: إظهار أحدث - show_older: إظهار أقدم show_thread: اعرض خيط المحادثة title: '%{name}: "%{quote}"' visibilities: diff --git a/config/locales/be.yml b/config/locales/be.yml index d0cc96d6d89206..d04409ca9a7f60 100644 --- a/config/locales/be.yml +++ b/config/locales/be.yml @@ -1761,8 +1761,6 @@ be: other: "%{count} голасу" vote: Прагаласаваць show_more: Паказаць больш - show_newer: Паказаць навейшыя - show_older: Паказаць старэйшыя show_thread: Паказаць ланцуг title: '%{name}: "%{quote}"' visibilities: @@ -1931,7 +1929,11 @@ be: follows_subtitle: Падпішыцеся на папулярных карыстальнікаў follows_title: На каго падпісацца follows_view_more: Прагледзець больш людзей, на якіх варта падпісацца - hashtags_recent_count: "%{people} людзей за апошнія %{days} дні" + hashtags_recent_count: + few: "%{people} чалавекі за апошнія 2 дні" + many: "%{people} чалавек за апошнія 2 дні" + one: "%{people} чалавек за апошнія 2 дні" + other: "%{people} чалавека за апошнія 2 дні" hashtags_subtitle: Даведайцеся што было папулярна ў апошнія 2 дні hashtags_title: Папулярныя хэштэгі hashtags_view_more: Прагледзець іншыя папулярныя хэштэгі diff --git a/config/locales/bg.yml b/config/locales/bg.yml index 8689b0359ec47c..3f05bfa0c08e61 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -1697,8 +1697,6 @@ bg: other: "%{count} гласа" vote: Гласуване show_more: Покажи повече - show_newer: Показване на по-нови - show_older: Показване на по-стари show_thread: Показване на нишката title: "%{name}: „%{quote}“" visibilities: @@ -1867,7 +1865,9 @@ bg: follows_subtitle: Следвайте добре известни акаунти follows_title: Кого да се последва follows_view_more: Преглед на още хора за последване - hashtags_recent_count: "%{people} души за последните %{days} дни" + hashtags_recent_count: + one: "%{people} лице през последните 2 дни" + other: "%{people} души през последните 2 дни" hashtags_subtitle: Проучете какво изгрява от последните 2 дни hashtags_title: Изгряващи хаштагове hashtags_view_more: Преглед на още изгряващи хаштагове diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 15a06559be9c14..dedf69d7b21eec 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -1582,7 +1582,7 @@ ca: rss: content_warning: 'Avís de contingut:' descriptions: - account: Publicacions des de @%{acct} + account: Publicacions públiques de @%{acct} tag: 'Tuts etiquetats #%{hashtag}' scheduled_statuses: over_daily_limit: Has superat el límit de %{limit} tuts programats per a avui @@ -1697,8 +1697,6 @@ ca: other: "%{count} vots" vote: Vota show_more: Mostra'n més - show_newer: Mostra els més nous - show_older: Mostra els més vells show_thread: Mostra el fil title: '%{name}: "%{quote}"' visibilities: @@ -1729,7 +1727,7 @@ ca: keep_self_bookmark: Mantenir els tuts que has desat a les adreces d'interès keep_self_bookmark_hint: No esborra els teus propis tuts si els has desat en les adreces d'interès keep_self_fav: Mantenir els tuts que has afavorit - keep_self_fav_hint: No esborra els teus propis tuts si les has afavorit + keep_self_fav_hint: No esborra les teves publicacions si les has afavorit min_age: '1209600': 2 setmanes '15778476': 6 mesos @@ -1867,7 +1865,9 @@ ca: follows_subtitle: Seguiu comptes populars follows_title: A qui seguir follows_view_more: Més persones a qui seguir - hashtags_recent_count: "%{people} persones en els últims %{days} dies" + hashtags_recent_count: + one: "%{people} persona en els 2 últims dies" + other: "%{people} persones en els 2 últims dies" hashtags_subtitle: Exploreu què és tendència des de fa 2 dies hashtags_title: Etiquetes en tendència hashtags_view_more: Més etiquetes en tendència diff --git a/config/locales/ckb.yml b/config/locales/ckb.yml index f4733c27e5fbb0..c1f280a24c55a6 100644 --- a/config/locales/ckb.yml +++ b/config/locales/ckb.yml @@ -982,8 +982,6 @@ ckb: other: "%{count} دەنگەکان" vote: دەنگ show_more: زیاتر پیشان بدە - show_newer: نوێتر پیشان بدە - show_older: پیشاندانی کۆنتر show_thread: نیشاندانی ڕشتە visibilities: private: شوێنکەوتوانی تەنها diff --git a/config/locales/co.yml b/config/locales/co.yml index 8668cc69539283..13c8b743134b6f 100644 --- a/config/locales/co.yml +++ b/config/locales/co.yml @@ -966,8 +966,6 @@ co: other: "%{count} voti" vote: Vutà show_more: Vede di più - show_newer: Vede i più ricenti - show_older: Vede i più anziani show_thread: Vede u filu title: '%{name}: "%{quote}"' visibilities: diff --git a/config/locales/cs.yml b/config/locales/cs.yml index 2ecc3606662f68..7e4e3805418026 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -1761,8 +1761,6 @@ cs: other: "%{count} hlasů" vote: Hlasovat show_more: Zobrazit více - show_newer: Zobrazit novější - show_older: Zobrazit starší show_thread: Zobrazit vlákno title: "%{name}: „%{quote}“" visibilities: diff --git a/config/locales/cy.yml b/config/locales/cy.yml index 17c4280508ea69..067d939deb5a18 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -1825,8 +1825,6 @@ cy: zero: "%{count} o bleidleisiau" vote: Pleidlais show_more: Dangos mwy - show_newer: Dangos y diweddaraf - show_older: Dangos pethau hŷn show_thread: Dangos edefyn title: '%{name}: "%{quote}"' visibilities: @@ -1995,7 +1993,6 @@ cy: follows_subtitle: Dilynwch gyfrifon adnabyddus follows_title: Pwy i ddilyn follows_view_more: Gweld mwy o bobl i ddilyn - hashtags_recent_count: "%{people} person yn y %{days} diwrnod diwethaf" hashtags_subtitle: Gweld beth sy'n tueddu dros y 2 ddiwrnod diwethaf hashtags_title: Hashnodau tuedd hashtags_view_more: Gweld mwy o hashnodau tuedd diff --git a/config/locales/da.yml b/config/locales/da.yml index 527f2240c7c1ba..fcb600d7b95bd8 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -1697,8 +1697,6 @@ da: other: "%{count} stemmer" vote: Stem show_more: Vis flere - show_newer: Vis nyere - show_older: Vis ældre show_thread: Vis tråd title: '%{name}: "%{quote}"' visibilities: @@ -1867,7 +1865,9 @@ da: follows_subtitle: Følg velkendte konti follows_title: Hvem, som skal følges follows_view_more: Vis nogle personer at følge - hashtags_recent_count: "%{people} personer de seneste %{days} dage" + hashtags_recent_count: + one: "%{people} person de seneste 2 dage" + other: "%{people} personer de seneste 2 dage" hashtags_subtitle: Udforsk de seneste 2 dages tendenser hashtags_title: Populære hashtags hashtags_view_more: Se flere populære hashtags diff --git a/config/locales/de.yml b/config/locales/de.yml index 262c0166c92086..84f10d8e088efe 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -1697,8 +1697,6 @@ de: other: "%{count} Stimmen" vote: Abstimmen show_more: Mehr anzeigen - show_newer: Neuere anzeigen - show_older: Ältere anzeigen show_thread: Thread anzeigen title: "%{name}: „%{quote}“" visibilities: @@ -1867,8 +1865,10 @@ de: follows_subtitle: Folge bekannten Profilen follows_title: Empfohlene Profile follows_view_more: Weitere Profile zum Folgen entdecken - hashtags_recent_count: "%{people} Personen in den letzten %{days} Tagen" - hashtags_subtitle: Entdecke, was in den letzten 2 Tagen angesagt war + hashtags_recent_count: + one: "%{people} Profil in den vergangenen 2 Tagen" + other: "%{people} Profile in den vergangenen 2 Tagen" + hashtags_subtitle: Entdecke, was in den vergangenen 2 Tagen angesagt war hashtags_title: Angesagte Hashtags hashtags_view_more: Weitere angesagte Hashtags entdecken post_action: Verfassen diff --git a/config/locales/devise.kab.yml b/config/locales/devise.kab.yml index f878a5b5039058..438c1df2b9a46f 100644 --- a/config/locales/devise.kab.yml +++ b/config/locales/devise.kab.yml @@ -81,9 +81,9 @@ kab: update_needs_confirmation: Tleqmeḍ akken iwata amiḍan-ik·im, maca nesra ad nsenqed tansa-ik·im imayl tamaynut. Ttxil-k·m senqed imayl-k·m sakin ḍfer aseɣwen i usentem n n tansa imayl tamaynut. Ttxil senqed akaram n spam ma yella ur tufiḍ ara imayl-nni. updated: Amiḍan-ik·im yettwalqem akken iwata. sessions: - already_signed_out: Aqla-k teffγeḍ. + already_signed_out: Aqla-k teffɣeḍ. signed_in: Aqla-k teqqneḍ. - signed_out: Aqla-k teffγeḍ. + signed_out: Aqla-k teffɣeḍ. unlocks: send_instructions: Deg kra n tesdatin, ad teṭṭfeḍ imayl deg-s iwellihen i yilaqen i userreḥ n umiḍan-ik·im. Ma yella ur tufiḍ ara izen-agi, ttxil-k·m ẓer deg ukaram spam. send_paranoid_instructions: Ma yella umiḍan-ik·im yella, ad teṭṭfeḍ imayl deg tesdatin i d-iteddun, deg-s iwellihen i yilaqen i userreḥ n umiḍan-ik·im. Ma yella ur tufiḍ ara izen-agi, ttxil-k·m ẓer deg ukaram spam. diff --git a/config/locales/devise.pt-BR.yml b/config/locales/devise.pt-BR.yml index e79a83c4314760..4a7f346fabcf85 100644 --- a/config/locales/devise.pt-BR.yml +++ b/config/locales/devise.pt-BR.yml @@ -53,6 +53,7 @@ pt-BR: subtitle: A autenticação de dois fatores foi desativada. title: 2FA desativada two_factor_enabled: + explanation: Será necessário um código gerado pelo aplicativo de autenticação para fazer login. subject: 'Mastodon: Autenticação de dois fatores ativada' subtitle: A autenticação de dois fatores foi ativada para sua conta. title: 2FA ativada @@ -74,6 +75,7 @@ pt-BR: title: Uma das suas chaves de segurança foi excluída webauthn_disabled: explanation: A autenticação por chaves de segurança foi desativada para sua conta. + extra: O login agora é possível usando o código gerado por um aplicativo de autenticação de dois fatores. subject: 'Mastodon: Autenticação por chaves de segurança desativada' title: Chaves de segurança desativadas webauthn_enabled: diff --git a/config/locales/doorkeeper.gl.yml b/config/locales/doorkeeper.gl.yml index 7564bc2dc63bb7..aa0eae2844e8c7 100644 --- a/config/locales/doorkeeper.gl.yml +++ b/config/locales/doorkeeper.gl.yml @@ -184,7 +184,7 @@ gl: write:blocks: bloquear contas e dominios write:bookmarks: marcar publicacións write:conversations: acalar e eliminar conversas - write:favourites: marcar como favorita + write:favourites: favorecer publicacións write:filters: crear filtros write:follows: seguir usuarias write:lists: crear listaxes diff --git a/config/locales/doorkeeper.kab.yml b/config/locales/doorkeeper.kab.yml index d7f8904a35e9b1..1b1a7df957645f 100644 --- a/config/locales/doorkeeper.kab.yml +++ b/config/locales/doorkeeper.kab.yml @@ -12,7 +12,7 @@ kab: attributes: redirect_uri: fragment_present: ur yezmir ad yegber afrur. - invalid_uri: ilaq ad tili d tansa URL tameγtut. + invalid_uri: ilaq ad tili d tansa URL tameɣtut. relative_uri: ilaq ad yili d URI amagdaz. secured_uri: ilaq URI ad yili HTTPS/SSL. doorkeeper: @@ -40,7 +40,7 @@ kab: name: Isem new: Asnas amaynut show: Ẓer - title: Isnasen-ik + title: Isnasen-ik·im new: title: Asnas amaynut show: @@ -64,6 +64,8 @@ kab: confirmations: revoke: Tetḥeqqeḍ? index: + description_html: Ha-t-an yisnasen i izemren ad kecmen ɣer umiḍan-ik·im, s useqdec n API. Ma llan yisnasen ur teεqileḍ ara da, neɣ kra n wesnas ur iteddu ara akken ilaq, tzemreḍ ad tekkseḍ anekcum-is. + last_used_at: Yettwaseqdec i tikkelt taneggarut ass n %{date} title: Isnasen-ik·im yettusirgen errors: messages: @@ -98,7 +100,7 @@ kab: application: title: Tlaq tsiregt n OAuth scopes: - admin:read: γeṛ akk isefka γef uqeddac + admin:read: ad iɣeṛ akk isefka ɣef uqeddac admin:write: ẓreg akk isefka γef uqeddac follow: beddel assaγen n umiḍan push: ṭṭef-d tilγa-ik yettwademren @@ -106,19 +108,19 @@ kab: read:accounts: ẓer isallen n yimiḍanen read:blocks: ẓer imiḍanen i tesḥebseḍ read:bookmarks: ẓer ticraḍ-ik - read:filters: ẓer imsizedgen-ik + read:filters: ad iẓer imsizdigen-ik·im read:follows: ẓer imeḍfaṛen-ik read:lists: ẓer tibdarin-ik·im read:mutes: ẓer wid i tesgugmeḍ - read:notifications: ẓer tilγa-ik + read:notifications: ad ẓer tilɣa-inek·inem read:reports: ẓer ineqqisen-ik·im read:search: anadi deg umkan-ik·im read:statuses: ẓer meṛṛa tisuffaɣ write: beddel meṛṛa isefka n umiḍan-ik - write:accounts: ẓreg amaγnu-ik + write:accounts: ad iẓreg amaɣnu-ik·im write:blocks: seḥbes imiḍanen d tγula write:bookmarks: ad yernu tisuffaɣ ɣer ticraḍ - write:filters: rnu-d imsizedgen + write:filters: ad isnulfu imsizedgen write:follows: ḍfeṛ imdanen write:lists: ad yesnulfu tibdarin write:media: ad yessali ifuyla n umidya diff --git a/config/locales/doorkeeper.zh-TW.yml b/config/locales/doorkeeper.zh-TW.yml index 65926dfeef364a..f9813b13196044 100644 --- a/config/locales/doorkeeper.zh-TW.yml +++ b/config/locales/doorkeeper.zh-TW.yml @@ -172,7 +172,7 @@ zh-TW: read:bookmarks: 檢視您的書籤 read:favourites: 檢視您收藏之最愛嘟文 read:filters: 檢視您的過濾條件 - read:follows: 檢視您跟隨的人 + read:follows: 檢視您跟隨之使用者 read:lists: 檢視您的列表 read:mutes: 檢視您靜音的人 read:notifications: 檢視您的通知 diff --git a/config/locales/el.yml b/config/locales/el.yml index 1b7dcddc6fc39c..d3d91abc2b6b87 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -1569,8 +1569,6 @@ el: other: "%{count} ψήφοι" vote: Ψήφισε show_more: Δείξε περισσότερα - show_newer: Εμφάνιση νεότερων - show_older: Εμφάνιση παλαιότερων show_thread: Εμφάνιση νήματος title: '%{name}: "%{quote}"' visibilities: diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml index 292365ed560c10..b5d92541df5847 100644 --- a/config/locales/en-GB.yml +++ b/config/locales/en-GB.yml @@ -1692,8 +1692,6 @@ en-GB: other: "%{count} votes" vote: Vote show_more: Show more - show_newer: Show newer - show_older: Show older show_thread: Show thread title: '%{name}: "%{quote}"' visibilities: diff --git a/config/locales/en.yml b/config/locales/en.yml index ef20d689c6bac9..d54b7a82e673a6 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -2067,8 +2067,6 @@ en: public_unlisted_long: Local users and followers can find unset: (Unsupported servers) show_more: Show more - show_newer: Show newer - show_older: Show older show_thread: Show thread title: '%{name}: "%{quote}"' too_many_hashtags: Too many hashtags @@ -2249,7 +2247,9 @@ en: follows_subtitle: Follow well-known accounts follows_title: Who to follow follows_view_more: View more people to follow - hashtags_recent_count: "%{people} people in the past %{days} days" + hashtags_recent_count: + one: "%{people} person in the past 2 days" + other: "%{people} people in the past 2 days" hashtags_subtitle: Explore what’s trending since past 2 days hashtags_title: Trending hashtags hashtags_view_more: View more trending hashtags diff --git a/config/locales/eo.yml b/config/locales/eo.yml index 9d27dace972cf7..cb5654b4c7288d 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -1624,8 +1624,6 @@ eo: other: "%{count} voĉdonoj" vote: Voĉdoni show_more: Montri pli - show_newer: Montri pli novajn - show_older: Montri pli malnovajn show_thread: Montri la mesaĝaron title: "%{name}: “%{quote}”" visibilities: diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml index 398345d8c8239a..aae437b9546742 100644 --- a/config/locales/es-AR.yml +++ b/config/locales/es-AR.yml @@ -1697,8 +1697,6 @@ es-AR: other: "%{count} votos" vote: Votar show_more: Mostrar más - show_newer: Mostrar más recientes - show_older: Mostrar más antiguos show_thread: Mostrar hilo title: '%{name}: "%{quote}"' visibilities: @@ -1867,7 +1865,9 @@ es-AR: follows_subtitle: Seguí cuentas populares follows_title: A quién seguir follows_view_more: Encontrá más cuentas para seguir - hashtags_recent_count: "%{people} cuentas en los últimos %{days} días" + hashtags_recent_count: + one: "%{people} cuenta en los últimos 2 días" + other: "%{people} cuenta en los últimos 2 días" hashtags_subtitle: Explora las tendencias de los últimos 2 días hashtags_title: Etiquetas en tendencia hashtags_view_more: Ver más etiquetas en tendencias diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml index 0948e8d434142c..e7e1a4ff88ea1b 100644 --- a/config/locales/es-MX.yml +++ b/config/locales/es-MX.yml @@ -970,7 +970,7 @@ es-MX: admin_mailer: auto_close_registrations: body: Debido al faltante de actividad reciente de moderación, los registros en %{instance} han cambiado automáticamente para requerir la revisión manial, para evitar que %{instance} se utilice como una plataforma para potenciales malos actores. Puedes revertir este cambio en los registros en cualquier momento. - subject: Se ha cambiado automáticamente el registro de %{instance} para requerir aprobación + subject: Los registros para %{instance} han sido cambiados automáticamente para requerir aprobación new_appeal: actions: delete_statuses: para eliminar sus mensajes @@ -1697,8 +1697,6 @@ es-MX: other: "%{count} votos" vote: Vota show_more: Mostrar más - show_newer: Mostrar más recientes - show_older: Mostrar más antiguos show_thread: Mostrar discusión title: "%{name}: «%{quote}»" visibilities: @@ -1855,26 +1853,25 @@ es-MX: feature_action: Leer más feature_audience: Mastodon te proporciona una posibilidad única de gestionar tu audiencia sin intermediarios. El despliegue de Mastodon en tu propia infraestructura te permite seguir y ser seguido desde cualquier servidor de Mastodon que se encuentre en línea y no está bajo el control de nadie más que tú. feature_audience_title: Construye tu audiencia con confianza - feature_control: Tú sabes lo que quieres ver en tu página principal. Nada de algoritmos y publicidad para desperdiciar tu tiempo. Sigue a quien quieras a través de cualquier servidor de Mastodon y recibe sus publicaciones en orden cronológico. Haz tu rincón de internet un poco más como tú. - feature_control_title: Mantente en control de tu línea de tiempo - feature_creativity: Mastodon soporta mensajes de audio, vídeo e imágenes, descripciones de accesibilidad, encuestas, advertencias de contenido, avatares animados, emojis personalizados, recortes de miniatura, y más, para ayudarte a expresarte en línea. Ya sea publicando tu arte, tu música o tu podcast, Mastodon está ahí para ti. + feature_control: Tú sabes mejor lo que quieres ver en tu página principal. Nada de algoritmos o publicidad para desperdiciar tu tiempo. Sigue a quien quieras a través de cualquier servidor de Mastodon y recibe sus publicaciones en orden cronológico. Haz tu rincón de internet un poco más como tú. + feature_control_title: Mantén el control de tu línea de tiempo + feature_creativity: Mastodon soporta publicaciones con audio, vídeo e imágenes, descripciones de accesibilidad, encuestas, advertencias de contenido, avatares animados, emojis personalizados, recortes de miniatura, y más, para ayudarte a expresarte en línea. Ya sea publicando tu arte, tu música o tu podcast, Mastodon está ahí para ti. feature_creativity_title: Creatividad inigualable - feature_moderation: Mastodon vuelve a poner la toma de decisiones en tus manos. Cada servidor crea sus propias reglas y reglamentos, que se aplican localmente y no globalmente como en redes sociales corporativas, lo que resulta en la mayor flexibilidad para responder a las necesidades de diferentes grupos de personas. Únete a un servidor con las reglas con las que esté sde acuerdo, o aloja el tuyo propio. + feature_moderation: Mastodon vuelve a poner la toma de decisiones en tus manos. Cada servidor crea sus propias reglas y reglamentos, las cuales se aplican localmente y no globalmente como en redes sociales corporativas, haciéndolos más flexibles para responder a las necesidades de diferentes grupos de personas. Únete a un servidor con las reglas que estés de acuerdo, o aloja el tuyo propio. feature_moderation_title: La moderación como debería ser follow_action: Seguir - follow_step: Seguir a personas interesantes es de lo que trata Mastodon. - follow_title: Personaliza tu línea de inicio + follow_step: Seguir a personas interesantes es de lo que se trata Mastodon. + follow_title: Personaliza tu inicio follows_subtitle: Seguir cuentas conocidas follows_title: A quién seguir follows_view_more: Ver más personas para seguir - hashtags_recent_count: "%{people} personas en los últimos %{days} días" hashtags_subtitle: Explora las tendencias de los últimos 2 días hashtags_title: Etiquetas en tendencia hashtags_view_more: Ver más etiquetas en tendencia - post_action: Redactar + post_action: Redacta post_step: Di hola al mundo con texto, fotos, vídeos o encuestas. - post_title: Escribe tu primera publicación - share_action: Compartir + post_title: Haz tu primera publicación + share_action: Comparte share_step: Dile a tus amigos cómo encontrarte en Mastodon. share_title: Comparte tu perfil de Mastodon sign_in_action: Regístrate diff --git a/config/locales/es.yml b/config/locales/es.yml index 946ba1cbebeb6f..24822116ca0c45 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -1697,8 +1697,6 @@ es: other: "%{count} votos" vote: Vota show_more: Mostrar más - show_newer: Mostrar más recientes - show_older: Mostrar más antiguos show_thread: Mostrar discusión title: "%{name}: «%{quote}»" visibilities: @@ -1867,7 +1865,9 @@ es: follows_subtitle: Seguir cuentas conocidas follows_title: A quién seguir follows_view_more: Ver más personas para seguir - hashtags_recent_count: "%{people} personas en los últimos %{days} días" + hashtags_recent_count: + one: "%{people} persona en los últimos 2 días" + other: "%{people} personas en los últimos 2 días" hashtags_subtitle: Explora las tendencias de los últimos 2 días hashtags_title: Etiquetas en tendencia hashtags_view_more: Ver más etiquetas en tendencia diff --git a/config/locales/et.yml b/config/locales/et.yml index cd944d9c199f26..80e3d3ef682810 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -1697,8 +1697,6 @@ et: other: "%{count} häält" vote: Hääleta show_more: Näita rohkem - show_newer: Uuemate kuvamine - show_older: Vanemate kuvamine show_thread: Kuva lõim title: '%{name}: "%{quote}"' visibilities: @@ -1869,7 +1867,6 @@ et: follows_subtitle: Jälgi teada-tuntud kasutajaid follows_title: Keda jälgida follows_view_more: Vaata lähemalt, keda jälgida - hashtags_recent_count: "%{people} inimest viimase %{days} päeva jooksul" hashtags_subtitle: Avasta, mis viimase 2 päeva jooksul on toimunud hashtags_title: Populaarsed märksõnad hashtags_view_more: Vaata teisi trendikaid märksõnu diff --git a/config/locales/eu.yml b/config/locales/eu.yml index bd46e4aa884ca9..ac641ab45423b7 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -970,6 +970,9 @@ eu: title: Webhook-ak webhook: Webhook admin_mailer: + auto_close_registrations: + body: Duela gutxi moderatzaile gutxi aritu direla eta, %{instance} instantziako izen-emateek eskuzko berrikuspena beharko dute automatikoki, %{instance} instantzia eragile okerren plataforma gisa erabili dadin ekiditeko. Izen-emate irekiak berriro gai ditzakezu nahi duzunean. + subject: "%{instance} instantziako izen-emateek onarpena beharko dute orain" new_appeal: actions: delete_statuses: bidalketak ezabatzea @@ -1698,8 +1701,6 @@ eu: other: "%{count} boto" vote: Bozkatu show_more: Erakutsi gehiago - show_newer: Erakutsi berriagoak - show_older: Erakutsi zaharragoak show_thread: Erakutsi haria title: '%{name}: "%{quote}"' visibilities: @@ -1868,7 +1869,9 @@ eu: follows_subtitle: Jarraitu kontu ospetsuak follows_title: Nor jarraitu follows_view_more: Ikusi jarrai dezakezun jende gehiago - hashtags_recent_count: "%{people} pertsona azken %{days} egunetan" + hashtags_recent_count: + one: Pertson %{people} azken 2 egunetan + other: "%{people} pertson azken 2 egunetan" hashtags_subtitle: Arakatu azken 2 egunetan pil-pilean dagoena hashtags_title: Pil-pilean dauden traolak hashtags_view_more: Ikusi pil-pilean dauden traol gehiago diff --git a/config/locales/fa.yml b/config/locales/fa.yml index 5d62f9143e120f..df9b926276f753 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -508,7 +508,7 @@ fa: private_comment: یادداشت خصوصی public_comment: یادداشت عمومی purge: پاکسازی - title: ارتباط میان‌سروری + title: ارتباط همگانی total_blocked_by_us: مسدودشده از طرف ما total_followed_by_them: ما را پی می‌گیرند total_followed_by_us: ما پیگیرشان هستیم @@ -673,7 +673,7 @@ fa: follow_recommendations: پیروی از پیشنهادها profile_directory: شاخهٔ نمایه public_timelines: خط زمانی‌های عمومی - publish_discovered_servers: انتشار سرورهای یافته‌شده + publish_discovered_servers: انتشار کارسازهای کشف شده publish_statistics: انتشار آمار title: کشف trends: پرطرفدارها @@ -898,7 +898,7 @@ fa: description: prefix_invited_by_user: "@%{name} شما را به عضویت در این کارساز ماستودون دعوت کرده است!" prefix_sign_up: همین امروز عضو ماستودون شوید! - suffix: با داشتن حساب می‌توانید دیگران را پی بگیرید، نوشته‌های تازه منتشر کنید، و با کاربران دیگر از هر سرور ماستودون دیگری و حتی سرورهای دیگر در ارتباط باشید! + suffix: با داشتن حساب می‌توانید دیگران را پی گرفته، نوشته‌هایی منتشر کرده و با کاربرانی از هر کارساز ماستودن دیگری در ارتباط باشید! didnt_get_confirmation: یک پیوند تأیید را دریافت نکردید؟ dont_have_your_security_key: کلید امنیتیتان را ندارید؟ forgot_password: گذرواژه خود را فراموش کرده‌اید؟ @@ -921,7 +921,7 @@ fa: cas: CAS saml: SAML register: عضو شوید - registration_closed: سرور %{instance} عضو تازه‌ای نمی‌پذیرد + registration_closed: کارساز %{instance} عضو تازه‌ای نمی‌پذیرد resend_confirmation: ارسال مجدد پیوند تایید reset_password: بازنشانی گذرواژه rules: @@ -1461,8 +1461,6 @@ fa: other: "%{count} رأی" vote: رأی show_more: نمایش - show_newer: نمایش جدیدتر - show_older: نمایش قدیمی‌تر show_thread: نمایش رشته title: "%{name}: «%{quote}»" visibilities: diff --git a/config/locales/fi.yml b/config/locales/fi.yml index bc73e3ee0e81d8..a92ad4ecb65eee 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -1551,7 +1551,7 @@ fi: limit_reached: Erilaisten reaktioiden raja saavutettu unrecognized_emoji: ei ole tunnistettu emoji redirects: - prompt: Mikäli luotat linkkiin, jatka napsauttaen sitä. + prompt: Jos luotat linkkiin, jatka napsauttamalla sitä. title: Olet poistumassa palvelimelta %{instance}. relationships: activity: Tilin aktiivisuus @@ -1697,8 +1697,6 @@ fi: other: "%{count} ääntä" vote: Äänestä show_more: Näytä lisää - show_newer: Näytä uudemmat - show_older: Näytä vanhempi show_thread: Näytä ketju title: "%{name}: ”%{quote}”" visibilities: @@ -1802,7 +1800,7 @@ fi: explanation: Joku on yrittänyt kirjautua tilillesi antaen väärän toisen todennustunnisteen. further_actions_html: Jos se et ollut sinä, suosittelemme, että %{action} välittömästi, sillä se on saattanut vaarantua. subject: Kaksivaiheisen todennuksen virhe - title: Kaksivaihekirjautumisen toinen vaihe epäonnistui + title: Kaksivaiheisen kirjautumisen toinen vaihe epäonnistui suspicious_sign_in: change_password: vaihda salasanasi details: 'Tässä on tiedot kirjautumisesta:' @@ -1846,7 +1844,10 @@ fi: apps_ios_action: Lataa App Storesta apps_step: Lataa viralliset sovelluksemme. apps_title: Mastodon-sovellukset + checklist_subtitle: 'Aloitetaan tällä uudella sosiaalisella seudulla:' + checklist_title: Tervetulon tarkistuslista edit_profile_action: Mukauta + edit_profile_step: Tehosta vuorovaikutuksiasi täydennetyllä profiililla. edit_profile_title: Mukauta profiiliasi explanation: Näillä vinkeillä pääset alkuun feature_action: Lue lisää @@ -1864,7 +1865,9 @@ fi: follows_subtitle: Seuraa tunnettuja tilejä follows_title: Ehdotuksia seurattavaksi follows_view_more: Näytä lisää seurattavia henkilöitä - hashtags_recent_count: "%{people} henkilöä viimeisenä %{days} päivänä" + hashtags_recent_count: + one: "%{people} henkilö viimeisenä 2 päivänä" + other: "%{people} henkilöä viimeisenä 2 päivänä" hashtags_subtitle: Tutki, mikä on ollut suosittua viimeisenä 2 päivänä hashtags_title: Suositut aihetunnisteet hashtags_view_more: Näytä lisää suosittuja aihetunnisteita diff --git a/config/locales/fo.yml b/config/locales/fo.yml index 64c26a62f20b1e..45633d85b308dc 100644 --- a/config/locales/fo.yml +++ b/config/locales/fo.yml @@ -1697,8 +1697,6 @@ fo: other: "%{count} atkvøður" vote: Atkvøð show_more: Vís meira - show_newer: Vís nýggjari - show_older: Vís eldri show_thread: Vís tráð title: '%{name}: "%{quote}"' visibilities: @@ -1867,7 +1865,6 @@ fo: follows_subtitle: Fylg vælkendar kontur follows_title: Hvørji tú átti at fylgt follows_view_more: Sí fleiri fólk at fylgja - hashtags_recent_count: "%{people} fólk seinastu %{days} dagarnar" hashtags_subtitle: Kanna rákið seinastu 2 dagarnar hashtags_title: Vælumtókt frámerki hashtags_view_more: Sí fleiri vælumtókt frámerki diff --git a/config/locales/fr-CA.yml b/config/locales/fr-CA.yml index 860c591a0a9857..2ed482770caab1 100644 --- a/config/locales/fr-CA.yml +++ b/config/locales/fr-CA.yml @@ -1697,8 +1697,6 @@ fr-CA: other: "%{count} votes" vote: Voter show_more: Déplier - show_newer: Plus récents - show_older: Plus anciens show_thread: Afficher le fil de discussion title: "%{name} : « %{quote} »" visibilities: @@ -1867,7 +1865,6 @@ fr-CA: follows_subtitle: Suivez des comptes populaires follows_title: Qui suivre follows_view_more: Voir plus de personnes à suivre - hashtags_recent_count: "%{people} personnes dans les %{days} derniers jours" hashtags_subtitle: Explorez les tendances depuis les 2 derniers jours hashtags_title: Hashtags populaires hashtags_view_more: Voir plus de hashtags populaires diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 46b22cf8b368aa..ae012c1531c7b4 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -1697,8 +1697,6 @@ fr: other: "%{count} votes" vote: Voter show_more: Déplier - show_newer: Plus récents - show_older: Plus anciens show_thread: Afficher le fil de discussion title: "%{name} : « %{quote} »" visibilities: @@ -1867,7 +1865,6 @@ fr: follows_subtitle: Suivez des comptes populaires follows_title: Qui suivre follows_view_more: Voir plus de personnes à suivre - hashtags_recent_count: "%{people} personnes dans les %{days} derniers jours" hashtags_subtitle: Explorez les tendances depuis les 2 derniers jours hashtags_title: Hashtags populaires hashtags_view_more: Voir plus de hashtags populaires diff --git a/config/locales/fy.yml b/config/locales/fy.yml index ad2c37e23f17c4..742b2903a0ca3a 100644 --- a/config/locales/fy.yml +++ b/config/locales/fy.yml @@ -1692,8 +1692,6 @@ fy: other: "%{count} stimmen" vote: Stimme show_more: Mear toane - show_newer: Nijere toane - show_older: Aldere toane show_thread: Petear toane title: '%{name}: "%{quote}"' visibilities: @@ -1848,7 +1846,6 @@ fy: follow_action: Folgje follows_title: Wa te folgjen follows_view_more: Mear minsken om te folgjen besjen - hashtags_recent_count: "%{people} minsken yn de ôfrûne %{days} dagen" hashtags_subtitle: Wat der yn de ôfrûne 2 dagen bard is ferkenne hashtags_title: Populêre hashtags hashtags_view_more: Mear populêre hashtags besjen diff --git a/config/locales/ga.yml b/config/locales/ga.yml index 527512053be1ae..5c61898ef51284 100644 --- a/config/locales/ga.yml +++ b/config/locales/ga.yml @@ -471,7 +471,6 @@ ga: poll: vote: Vótáil show_more: Taispeáin níos mó - show_newer: Taispeáin níos nuaí show_thread: Taispeáin snáithe visibilities: private: Leantóirí amháin diff --git a/config/locales/gd.yml b/config/locales/gd.yml index 16f046baab8fff..79bbbea0f581e7 100644 --- a/config/locales/gd.yml +++ b/config/locales/gd.yml @@ -903,7 +903,7 @@ gd: message_html: "Chaidh stòras nan oibseactan agad a dhroch-rèiteachadh. Tha prìobhaideachd an luchd-cleachdaidh agad fo chunnart." tags: review: Dèan lèirmheas air an staid - updated_msg: Chaidh roghainnean nan tagaichean hais ùrachadh + updated_msg: Chaidh roghainnean an taga hais ùrachadh title: Rianachd trends: allow: Ceadaich @@ -1209,7 +1209,7 @@ gd: appealed_msg: Chaidh an t-ath-thagradh agad a chur a-null. Ma thèid aontachadh ris, gheibh thu brath mu dhèidhinn. appeals: submit: Cuir a-null an t-ath-thagradh - approve_appeal: Zatwierdź odwołanie + approve_appeal: Thoir aonta ris an ath-thagradh associated_report: An gearan co-cheangailte created_at: Ceann-là description_html: Seo na gnìomhan a chaidh a ghabhail an aghaidh a’ chunntais agad agus na rabhaidhean a chaidh a chur thugad le luchd-obrach %{instance}. @@ -1761,8 +1761,6 @@ gd: two: "%{count} bhòt" vote: Bhòt show_more: Seall barrachd dheth - show_newer: Seall feadhainn as ùire - show_older: Seall feadhainn as sine show_thread: Seall an snàithlean title: "%{name}: “%{quote}”" visibilities: @@ -1929,9 +1927,13 @@ gd: follow_step: Tha leantainn dhaoine inntinneach air cridhe Mhastodon. follow_title: Cuir dreach pearsanta air do dhachaigh follows_subtitle: Lean cunntasan cliùiteach - follows_title: Cò a leanas tu + follows_title: Molaidhean leantainn follows_view_more: Seall barrachd dhaoine ri leantainn - hashtags_recent_count: 'Daoine sna %{days} là(ithean) seo chaidh: %{people}' + hashtags_recent_count: + few: "%{people} daoine san 2 latha seo chaidh" + one: "%{people} neach san 2 latha seo chaidh" + other: "%{people} daoine san 2 latha seo chaidh" + two: "%{people} daoine san 2 latha seo chaidh" hashtags_subtitle: Rùraich na tha a’ treandadh san 2 latha seo chaidh hashtags_title: Tagaichean hais a’ treandadh hashtags_view_more: Seall barrachd thagaichean hais a’ treandadh diff --git a/config/locales/gl.yml b/config/locales/gl.yml index a6543005b2bf57..dc4a62f701c4f8 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -907,7 +907,7 @@ gl: statuses: allow: Permitir publicación allow_account: Permitir autora - description_html: Estas son publicacións que o teu servidor coñece que están sendo compartidas e favorecidas en gran número neste intre. Pode ser útil para as persoas recén chegadas e as que retornan para que atopen persoas a quen seguir. Non se mostran publicamente a menos que aprobes a autora, e a autora permita que a súa conta sexa suxerida a outras. Tamén podes rexeitar ou aprobar publicacións individuais. + description_html: Estas son publicacións que o teu servidor coñece que están sendo compartidas e favorecidas en gran número neste intre. Pode ser útil para as persoas recén chegadas e para as que retornan para que atopen persoas a quen seguir. Non se mostran publicamente a menos que aprobes a autora, e a autora permita que a súa conta sexa suxerida a outras. Tamén podes rexeitar ou aprobar publicacións individuais. disallow: Rexeitar publicación disallow_account: Rexeitar autora no_status_selected: Non se cambiou ningunha publicación en voga xa que non había ningunha seleccionada @@ -1405,7 +1405,7 @@ gl: confirmation_html: Tes a certeza de querer retirar a subscrición a Mastodon en %{domain} para recibir %{type} no teu correo electrónico en %{email}? Poderás volver a subscribirte desde os axustes de notificacións por correo. emails: notification_emails: - favourite: notificacións de favoritos + favourite: notificacións de favorecidas follow: notificacións de seguimentos follow_request: notificacións de solicitudes de seguimento mention: notificacións de mencións @@ -1464,7 +1464,7 @@ gl: sign_up: subject: "%{name} rexistrouse" favourite: - body: 'A túa publicación foi marcada como favorita por %{name}:' + body: 'A túa publicación foi favorecida por %{name}:' subject: "%{name} marcou como favorita a túa publicación" title: Nova favorita follow: @@ -1697,8 +1697,6 @@ gl: other: "%{count} votos" vote: Votar show_more: Mostrar máis - show_newer: Mostrar o máis novo - show_older: Mostrar o máis vello show_thread: Amosar fío title: '%{name}: "%{quote}"' visibilities: @@ -1717,7 +1715,7 @@ gl: ignore_favs: Ignorar favoritas ignore_reblogs: Ignorar promocións interaction_exceptions: Excepcións baseadas en interaccións - interaction_exceptions_explanation: Ten en conta de que non hai garantía de que se eliminen as túas publicacións se non superan o límite de promocións e favorecementos aínda que algunha vez o tivesen superado. + interaction_exceptions_explanation: Ten en conta que non hai garantía de que se eliminen as túas publicacións se baixan do límite de promocións e favorecementos se nalgún momento o superaron. keep_direct: Manter mensaxes directas keep_direct_hint: Non borrar ningunha das túas mensaxes directas keep_media: Manter publicacións que conteñen multimedia @@ -1728,7 +1726,7 @@ gl: keep_polls_hint: Non eliminar ningunha das túas enquisas keep_self_bookmark: Manter as publicacións engadidas a marcadores keep_self_bookmark_hint: Non elimina as publicacións se as engadiches aos marcadores - keep_self_fav: Manter as publicacións que marcaches como favoritas + keep_self_fav: Manter as publicacións que favoreceches keep_self_fav_hint: Non elimina as túas propias publicacións se as marcaches como favoritas min_age: '1209600': 2 semanas @@ -1740,7 +1738,7 @@ gl: '63113904': 2 anos '7889238': 3 meses min_age_label: Límite temporal - min_favs: Manter as publicacións favoritas máis de + min_favs: Manter as publicacións favorecidas polo menos 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 @@ -1867,7 +1865,6 @@ gl: follows_subtitle: Sigue estas contas populares follows_title: A quen seguir follows_view_more: Ver máis persoas para seguir - hashtags_recent_count: "%{people} persoas nos últimos %{days} días" hashtags_subtitle: Descubre os temas en voga nos últimos 2 días hashtags_title: Cancelos en voga hashtags_view_more: Ver máis cancelos en voga diff --git a/config/locales/he.yml b/config/locales/he.yml index 59f562c2c94715..1388a716325433 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -1761,8 +1761,6 @@ he: two: "%{count} קולות" vote: הצבעה show_more: עוד - show_newer: הצג חדשים יותר - show_older: הצג ישנים יותר show_thread: הצג שרשור title: '%{name}: "%{quote}"' visibilities: @@ -1931,7 +1929,11 @@ he: follows_subtitle: לעקיבה אחרי חלשבונות ידועים follows_title: אחרי מי לעקוב follows_view_more: ראו עוד א.נשים לעקוב אחריהן.ם - hashtags_recent_count: "%{people} אנשים ב־%{days} ימים" + hashtags_recent_count: + many: "%{people} אנשים ביומיים האחרונים" + one: איש אחד ביומיים האחרונים + other: "%{people} אנשים ביומיים האחרונים" + two: שני אנשים ביומיים האחרונים hashtags_subtitle: לחקור מהם הנושאים החמים ביומיים האחרונים hashtags_title: תגיות חמות hashtags_view_more: צפיה בעוד תגיות שכרגע חוזרות הרבה diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 76fef4633aada4..f09f7e42852c10 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -778,7 +778,7 @@ hu: warning_hint: Javasoljuk a "Jóváhagyás szükséges a regisztrációhoz” lehetőség használatát, hacsak nem vagy biztos abban, hogy a moderátor csapatod időben tudja kezelni a szemetet és a rosszindulatú regisztrációkat. security: authorized_fetch: Hitelesítés szükséges a föderációs kiszolgálóktól - authorized_fetch_hint: A föderációs szerverek hitelesítésének szükségessége lehetővé teszi mind a felhasználói mind a szerver szintű blokkok szigorúbb végrehajtását. Ez azonban a teljesítménybüntetés árán jár, csökkenti a válaszok elérhetőségét és kompatibilitási problémákat vethet fel egyes föderációs szolgáltatásokkal. Emellett ez nem akadályozza meg a dedikált szereplőket abban, hogy nyilvános bejegyzéseiket és fiókjaikat letöltsék. + authorized_fetch_hint: A hitelesítés megkövetelése föderált kiszolgálók felé lehetővé teszi a felhasználó- és kiszolgáló szintű letiltások szigorúbb kikényszerítését. Azonban ennek az ára teljesítménycsökkenés, a válaszaid elérésének csökkenése, és vezethet kombatibilitási problémákhoz is bizonyos föderációs szolgáltatásokkal. Ráadásul ez nem akadályozza meg, hogy eltökélt aktorok letöltsék a nyilvános bejegyzéseidet és fiókjaidat. authorized_fetch_overridden_hint: Jelenleg nem lehet ezt a beállítást megváltoztatni, mert azt egy környezeti változó felülbírálja. federation_authentication: Föderációs hitelesítés kikényszerítése title: Kiszolgáló-beállítások @@ -1452,9 +1452,9 @@ hu: moderation: title: Moderáció move_handler: - carry_blocks_over_text: Ez a fiók elköltözött innen %{acct}, melyet letiltottatok. - carry_mutes_over_text: Ez a fiók elköltözött innen %{acct}, melyet lenémítottatok. - copy_account_note_text: 'Ez a fiók elköltözött innen %{acct}, itt vannak a bejegyzéseitek róla:' + carry_blocks_over_text: 'Ez a felhasználó elköltözött innen: %{acct}, korábban letiltottad.' + carry_mutes_over_text: 'Ez a felhasználó elköltözött innen: %{acct}, korábban lenémítottad.' + copy_account_note_text: 'Ez a fiók elköltözött innen: %{acct}, itt vannak a bejegyzéseid róla:' navigation: toggle_menu: Menü be/ki notification_mailer: @@ -1697,8 +1697,6 @@ hu: other: "%{count} szavazat" vote: Szavazás show_more: Több megjelenítése - show_newer: Újabbak mutatása - show_older: Régebbiek mutatása show_thread: Szál mutatása title: "%{name}: „%{quote}”" visibilities: @@ -1867,7 +1865,9 @@ hu: follows_subtitle: Jól ismert fiókok követése follows_title: Kit érdemes követni follows_view_more: További követendő személyek megtekintése - hashtags_recent_count: "%{people} személy az elmúlt %{days} napban" + hashtags_recent_count: + one: "%{people} személy az elmúlt 2 napban" + other: "%{people} személy az elmúlt 2 napban" hashtags_subtitle: Fedezd fel, mi felkapott az elmúlt 2 napban hashtags_title: Felkapott hashtagek hashtags_view_more: További felkapott hashtagek megtekintése diff --git a/config/locales/hy.yml b/config/locales/hy.yml index 4125c1110e1af3..9d596dd834558c 100644 --- a/config/locales/hy.yml +++ b/config/locales/hy.yml @@ -808,8 +808,6 @@ hy: other: "%{count} ձայներ" vote: Քուէարկել show_more: Աւելին - show_newer: Ցուցադրել նորերը - show_older: Ցուցադրել հները show_thread: Բացել շղթան title: '%{name}: "%{quote}"' visibilities: diff --git a/config/locales/id.yml b/config/locales/id.yml index 1655b744ff5715..d1c04ad1d483aa 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -1428,8 +1428,6 @@ id: other: "%{count} memilih" vote: Pilih show_more: Tampilkan selengkapnya - show_newer: Tampilkan lebih baru - show_older: Tampilkan lebih lama show_thread: Tampilkan utas title: '%{name}: "%{quote}"' visibilities: diff --git a/config/locales/ie.yml b/config/locales/ie.yml index 222b82ba8080ce..7a0ae6292e8eda 100644 --- a/config/locales/ie.yml +++ b/config/locales/ie.yml @@ -1697,8 +1697,6 @@ ie: other: "%{count} votes" vote: Votar show_more: Monstrar plu - show_newer: Monstrar plu nov - show_older: Monstrar plu old show_thread: Monstrar fil title: "%{name}: «%{quote}»" visibilities: @@ -1867,7 +1865,6 @@ ie: follows_subtitle: Sequer famosi contos follows_title: Persones a sequer follows_view_more: Vider plu persones a sequer - hashtags_recent_count: "%{people} persones in li passat %{days} dies" hashtags_subtitle: Explorar li postas de tendentie durant li passat 2 dies hashtags_title: Populari hashtags hashtags_view_more: Vider plu hashtags in tendentie diff --git a/config/locales/io.yml b/config/locales/io.yml index 32769effa4dbf5..4561a43e8e3f31 100644 --- a/config/locales/io.yml +++ b/config/locales/io.yml @@ -1666,8 +1666,6 @@ io: other: "%{count} voti" vote: Votez show_more: Montrar plue - show_newer: Montrez plu nova kozo - show_older: Montrez plu olda kozo show_thread: Montrez postaro title: '%{name}: "%{quote}"' visibilities: diff --git a/config/locales/is.yml b/config/locales/is.yml index df0391bfa3ea7b..d7a3f8e2ccc7b1 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -1701,8 +1701,6 @@ is: other: "%{count} atkvæði" vote: Greiða atkvæði show_more: Sýna meira - show_newer: Sýna nýrri - show_older: Sýna eldri show_thread: Birta þráð title: "%{name}: „%{quote}‟" visibilities: @@ -1871,7 +1869,9 @@ is: follows_subtitle: Fylgstu með vel þekktum notendum follows_title: Hverjum ætti að fylgjast með follows_view_more: Skoða fleira fólk til að fylgjast með - hashtags_recent_count: "%{people} manns á síðustu %{days} dögum" + hashtags_recent_count: + one: "%{people} aðili síðustu 2 daga" + other: "%{people} manns á síðustu 2 dögum" hashtags_subtitle: Skoðaðu hvað sé búið að vera í umræðunni síðustu 2 dagana hashtags_title: Vinsæl myllumerki hashtags_view_more: Sjá fleiri vinsæl myllumerki diff --git a/config/locales/it.yml b/config/locales/it.yml index 64015bd98d54dc..6e7f9a7ce1597d 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -1699,8 +1699,6 @@ it: other: "%{count} voti" vote: Vota show_more: Mostra di più - show_newer: Mostra più nuovi - show_older: Mostra più vecchi show_thread: Mostra thread title: '%{name}: "%{quote}"' visibilities: @@ -1869,7 +1867,6 @@ it: follows_subtitle: Segui account ben noti follows_title: Chi seguire follows_view_more: Visualizza più persone da seguire - hashtags_recent_count: "%{people} persone negli ultimi %{days} giorni" hashtags_subtitle: Esplora le tendenze degli ultimi 2 giorni hashtags_title: Hashtag di tendenza hashtags_view_more: Visualizza altri hashtag di tendenza diff --git a/config/locales/ja.yml b/config/locales/ja.yml index b1b5b4ca5f0361..d813f6d93d081a 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -2045,8 +2045,6 @@ ja: public_unlisted_long: ローカル・フォロワー・反応者のみが検索できます unset: (未対応サーバー) show_more: もっと見る - show_newer: 新しいものを表示 - show_older: 古いものを表示 show_thread: スレッドを表示 title: '%{name}: "%{quote}"' too_many_hashtags: ハッシュタグが多すぎます @@ -2234,7 +2232,6 @@ ja: follows_subtitle: 人気アカウントをフォロー follows_title: フォローを増やしてみませんか? follows_view_more: フォローするユーザーを探す - hashtags_recent_count: "%{days} 日間で %{people} 人が共有" hashtags_subtitle: 過去2日間のトレンドを見る hashtags_title: トレンドのハッシュタグ hashtags_view_more: トレンドのハッシュタグをもっと見る diff --git a/config/locales/kab.yml b/config/locales/kab.yml index b25a4e3a1d0fa4..566ba0dee1d0d1 100644 --- a/config/locales/kab.yml +++ b/config/locales/kab.yml @@ -252,6 +252,7 @@ kab: add_new: Timerna n taɣult ɣer tabdert tamellalt created_msg: Taγult-a tettwarna γer wumuγ amellal mebla ugur destroyed_msg: Taγult-a tettwakkes seg umuγ amellal + export: Sifeḍ import: Kter undo: Kkes seg tebdart tamellalt domain_blocks: @@ -387,6 +388,7 @@ kab: roles: categories: administration: Tadbelt + invites: Iɛeṛṛuḍen moderation: Aseɣyed delete: Kkes privileges: @@ -420,7 +422,10 @@ kab: delete: Kkes afaylu yulin software_updates: documentation_link: Issin ugar + type: Anaw + version: Lqem statuses: + account: Ameskar application: Asnas back_to_account: Tuɣalin ɣer usebter n umiḍan deleted: Yettwakkes @@ -462,6 +467,7 @@ kab: advanced_web_interface: Agrudem n web leqqayen discovery: Asnirem localization: + body: Mastodon suqqlen-t-id yiwiziwen. guide_link: https://crowdin.com/project/mastodon guide_link_text: Yal yiwen·t y·tezmer a ttekki. sensitive_content: Agbur amḥulfu @@ -471,12 +477,18 @@ kab: view_profile: Ssken-d amaɣnu view_status: Ssken-d tasuffiɣt applications: + created: Yennulfa-d wesnas akken iwata + destroyed: Yettwakkes wesnas-nni akken iwata logout: Ffeɣ token_regenerated: Ajuṭu n unekcum yettusirew i tikkelt-nniḍen akken iwata your_token: Ajiṭun-ik·im n unekcum auth: apply_for_account: Suter amiḍan + captcha_confirmation: + title: Asefqed n tɣellist confirmations: + clicking_this_link: tekki ɣef wassaɣ-a + proceed_to_login_html: Tzemreḍ tura ad tkemmleḍ ɣer %{login_link}. welcome_title: Ansuf yessek·em, %{name}! delete_account: Kkes amiḍan description: @@ -507,6 +519,7 @@ kab: rules: accept: Qbel back: Tuɣalin + invited_by: 'Tzemreḍ ad tkecmeḍ ɣer %{domain} s tanemmirt i tinnubga i d-teṭṭfeḍ sɣur :' preamble_invited: Uqbel ad tkemmleḍ, ttxil-k·m ẓer ilugan i d-sbedden yimkariyen n %{domain}. title: Kra n yilugan igejdanen. title_invited: Tettwaɛerḍeḍ. @@ -521,7 +534,7 @@ kab: preamble_html: Kcem ar %{domain} s inekcam-inek n tuqqna. Ma yella yezga-d umiḍan-ik deg uqeddac-nniḍen, ur tezmireḍ ara ad tkecmeḍ sya. title: Akeččum ɣer %{domain} sign_up: - preamble: S umiḍan deg uqeddac-a n Mastodon, ad tizmireḍ ad tḍefreḍ win i ak-yehwan deg uẓeṭṭa, anida yebɣu yili umiḍan-nsen. + preamble: S umiḍan deg uqeddac-a n Mastodon, ad tizmireḍ ad tḍefreḍ win i ak·kem-yehwan deg uẓeṭṭa, anida yebɣu yili umiḍan-nnsen. title: Iyya ad d-nessewjed tiɣawsiwin i %{domain}. status: account_status: Addad n umiḍan @@ -531,6 +544,9 @@ kab: confirm: Kemmel invalid_password: Yir awal uffir prompt: Sentem awal uffir send ad tkemleḍ + crypto: + errors: + invalid_key: maci d tasarut tameɣtut n Ed25519 neɣ Curve25519 date: formats: default: "%d %b %Y" @@ -550,6 +566,7 @@ kab: x_months: "%{count}agu" x_seconds: "%{count}tas" deletes: + challenge_not_passed: Ur iṣeḥḥa ara yisalli-nni i teskecmeḍ confirm_password: Sekcem awal-ik·im uffir n tura akken ad tesfeqdeḍ tamagit-ik·im proceed: Kkes amiḍan warning: @@ -607,10 +624,15 @@ kab: confirm: Sentem copy: Nɣel delete: Kkes + none: Ula yiwen order_by: Sizwer s save_changes: Sekles ibeddilen today: ass-a imports: + errors: + empty: Afaylu CSV d ilem + too_large: Bezzaf meqqer ufaylu + failures: Tuccḍiwin modes: merge: Smezdi overwrite: Semselsi @@ -705,7 +727,10 @@ kab: moved: Igujj primary: Agejdan relationship: Assaɣ + remove_selected_follows: Ur ṭṭafar ara iseqdacen yettwafernen status: Addad n umiḍan + rss: + content_warning: 'Alɣu n ugbur :' sessions: activity: Armud aneggaru browser: Iminig @@ -729,6 +754,7 @@ kab: current_session: Tiɣimit tamirant date: Azemz description: "%{browser} s %{platform}" + explanation: Ha-t-en yiminigen web ikecmen akka tura ɣer umiḍan-ik·im Mastodon. ip: IP platforms: adobe_air: Adobe Air @@ -787,8 +813,6 @@ kab: other: "%{count} n yedɣaren" vote: Dɣeṛ show_more: Ssken-d ugar - show_newer: Ssken-d timaynutin - show_older: Ssken-d tiqburin show_thread: Ssken-d lxiḍ title: '%{name} : "%{quote}"' visibilities: @@ -841,6 +865,8 @@ kab: silence: Amiḍan yesɛa talast suspend: Amiḍan yettwaḥbas welcome: + apps_android_action: Awi-t-id seg Google Play + apps_ios_action: Sader-it-id seg App Store apps_step: Zdem-d isnasen-nneɣ unṣiben. apps_title: Isnasen n Mastodon feature_action: Issin ugar @@ -848,8 +874,11 @@ kab: follows_title: Anwa ara ḍefṛeḍ follows_view_more: Ssken-d ugar n medden ay tzemred ad tḍefred post_step: Ini-as azul i umaḍal s uḍris, s tiwlafin, s tividyutin neɣ s tefranin. + post_title: Aru tasuffeɣt-inek·inem tamezwarut share_action: Bḍu share_step: Init-asen i yimeddukal-nwen amek ara ken-id-afen deg Mastodon. + share_title: Bḍu amaɣnu-inek·inem n Mastodon + sign_in_action: Qqen subject: Ansuf ɣer Maṣṭudun title: Ansuf yessek·em, %{name}! users: diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 40af97c6287a96..c4dcb5687b884a 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -1667,8 +1667,6 @@ ko: other: "%{count}명 투표함" vote: 투표 show_more: 더 보기 - show_newer: 새로운 것 표시 - show_older: 오래된 것 표시 show_thread: 글타래 보기 title: '%{name}: "%{quote}"' visibilities: @@ -1824,6 +1822,7 @@ ko: explanation: 시작하기 전에 몇가지 팁들을 준비했습니다 feature_action: 더 알아보기 feature_audience: 마스토돈은 중개자 없이 청중을 관리할 수 있는 특별한 가능성을 제공합니다. 자체 인프라에 배포된 마스토돈을 사용하면 온라인에 있는 다른 마스토돈 서버에도 팔로우하거나 팔로우할 수 있으며, 본인 외에는 누구의 통제도 받지 않습니다. + feature_audience_title: 신뢰 있는 청중 구축 feature_control_title: 내 타임라인에 대해 통제권을 유지하세요 feature_creativity: 마스토돈은 오디오, 비디오, 사진, 접근성 설명(alt), 투표, 콘텐츠 주의 (블라인드), 움직이는 아바타, 커스텀 이모티콘, 썸네일 자르기, 그리고 더 많은 것들을 당신이 온라인에서 당신을 더 잘 드러낼 수 있도록 돕기위해 지원합니다. 당신이 그림이나 음악을 올리던, 팟캐스트 같은것을 진행하던 마스토돈이 함께합니다. feature_moderation: 마스토돈은 의사 결정권을 사용자에게 돌려줍니다. 각 서버는 기업 소셜 미디어처럼 하향식이 아닌 로컬에서 시행되는 자체 규칙과 규정을 만들 수 있어 다양한 그룹의 요구에 가장 유연하게 대응할 수 있습니다. 동의하는 규칙이 있는 서버에 가입하거나 직접 서버를 호스팅하세요. @@ -1834,7 +1833,8 @@ ko: follows_subtitle: 잘 알려진 계정들을 팔로우 follows_title: 누구를 팔로우 할 지 follows_view_more: 팔로우 할 사람들 더 보기 - hashtags_recent_count: 최근 %{days}일동안 %{people} 명 + hashtags_recent_count: + other: 최근 2일동안 %{people} 명 hashtags_subtitle: 최근 2일간 무엇이 유행했는지 둘러보기 hashtags_title: 유행하는 해시태그 hashtags_view_more: 유행하는 해시태그 더 보기 diff --git a/config/locales/ku.yml b/config/locales/ku.yml index 0c44b7555bb21c..f8d9cd80d42dbb 100644 --- a/config/locales/ku.yml +++ b/config/locales/ku.yml @@ -1462,8 +1462,6 @@ ku: other: "%{count} deng" vote: Deng bide show_more: Bêtir nîşan bide - show_newer: Nûtirîn nîşan bide - show_older: Kevntirîn nîşan bide show_thread: Mijarê nîşan bide title: "%{name}%{quote}" visibilities: diff --git a/config/locales/lad.yml b/config/locales/lad.yml index 22930453754cd8..c0ab028b9cfbff 100644 --- a/config/locales/lad.yml +++ b/config/locales/lad.yml @@ -1697,8 +1697,6 @@ lad: other: "%{count} votos" vote: Vota show_more: Amostra mas - show_newer: Amostra mas muevos - show_older: Amostra mas viejos show_thread: Amostra diskusyon title: '%{name}: "%{quote}"' visibilities: @@ -1846,15 +1844,25 @@ lad: apps_ios_action: Abasha en App Store apps_step: Abasha muestras aplikasyones ofisyalas. apps_title: Aplikasyones de Mastodon + checklist_title: Lista de bienvenida edit_profile_action: Personaliza edit_profile_step: Kompleta tu profil para aumentar tus enteraksyones. edit_profile_title: Personaliza tu profil explanation: Aki ay algunos konsejos para ampesar feature_action: Ambezate mas + feature_audience_title: Konstruye tu audyensya kon konfyansa + feature_control_title: Manten kontrol de tu linya de tyempo + feature_creativity_title: Kreativita sin paralelas + feature_moderation_title: La moderasyon komo deveria ser follow_action: Sige + follow_step: El buto de Mastodon es segir a djente interesante. follow_title: Personaliza tu linya prinsipala + follows_subtitle: Sige kuentos konesidos follows_title: A ken segir + follows_view_more: Ve mas personas para segir + hashtags_subtitle: Eksplora los trendes de los ultimos 2 diyas hashtags_title: Etiketas en trend + hashtags_view_more: Ve mas etiketas en trend post_action: Eskrive post_step: Puedes introdusirte al mundo kon teksto, fotos, videos o anketas. post_title: Eskrive tu primera publikasyon diff --git a/config/locales/lt.yml b/config/locales/lt.yml index 62336d89d41c6a..610b4437c8afe3 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -403,10 +403,12 @@ lt: import: Importuoti new: create: Sukurti bloką - hint: Domeno blokavimas nesustabdys vartotojų paskyrų sukūrimo duomenų sistemoje, tačiau automatiškai pritaikys atitinkamus moderavimo metodus šioms paskyroms. + hint: Domeno blokas netrukdys kurti paskyrų įrašų duomenų bazėje, bet atgaline data ir automatiškai taikys tam tikrus tų paskyrų prižiūrėjimo būdus. severity: + desc_html: "Ribojimas padarys šio domeno paskyrų įrašus nematomus visiems, kurie jų neseka. Pristabdymas iš tavo serverio pašalins visą šio domeno paskyrų turinį, mediją ir profilio duomenis. Naudok Nieko, jei nori tik atmesti medijos failus." noop: Nieko - suspend: Draudimas + silence: Riboti + suspend: Pristabdyti title: Naujos domeno blokas reject_media: Atmesti medijos failai reject_media_hint: Panaikina lokaliai saugomus medijos failus bei atsisako jų parsisiuntimo ateityje. Neliečia užblokavimu @@ -468,7 +470,7 @@ lt: assign_to_self: Paskirti man assigned: Paskirtas moderatorius comment: - none: Nėra + none: Nieko created_at: Reportuotas forwarded_replies_explanation: Šis ataskaita yra iš nuotolinio naudotojo ir susijusi su nuotoliniu turiniu. Jis buvo persiųstas tau, nes turinys, apie kurį pranešta, yra atsakymas vienam iš tavo naudotojų. mark_as_resolved: Pažymėti kaip išsprestą @@ -849,7 +851,6 @@ lt: follows_subtitle: Sek gerai žinomas paskyras. follows_title: Ką sekti follows_view_more: Peržiūrėti daugiau sekamų žmonių - hashtags_recent_count: "%{people} žmonių per pastarąsias %{days} dienas" hashtags_subtitle: Naršyk, kas tendencinga per pastarąsias 2 dienas. hashtags_title: Tendencijos saitažodžiai hashtags_view_more: Peržiūrėti daugiau tendencingų saitažodžių diff --git a/config/locales/lv.yml b/config/locales/lv.yml index d6d0f05c50a104..bd2500a912ca9e 100644 --- a/config/locales/lv.yml +++ b/config/locales/lv.yml @@ -473,7 +473,7 @@ lv: status: Statuss suppress: Apspiest sekošanas rekomendāciju suppressed: Apspiestie - title: Sekošanas rekomendācijas + title: Sekošanas ieteikumi unsuppress: Atjaunot sekošanas rekomendāciju instances: availability: @@ -1718,8 +1718,6 @@ lv: zero: "%{count} balsu" vote: Balsu skaits show_more: Rādīt vairāk - show_newer: Nekad nerādīt - show_older: Rādīt senākus show_thread: Rādīt tematu title: "%{name}: “%{quote}”" visibilities: diff --git a/config/locales/ms.yml b/config/locales/ms.yml index 1704aed3e07f88..bfd6591ddbe8fd 100644 --- a/config/locales/ms.yml +++ b/config/locales/ms.yml @@ -1634,8 +1634,6 @@ ms: other: "%{count} undi" vote: Undi show_more: Tunjuk lebih banyak - show_newer: Tunjuk lebih baharu - show_older: Tunjuk lebih tua show_thread: Tunjuk bebenang title: '%{name}: "%{quote}"' visibilities: diff --git a/config/locales/my.yml b/config/locales/my.yml index a01755b6c48a43..6898db877c9d11 100644 --- a/config/locales/my.yml +++ b/config/locales/my.yml @@ -1633,8 +1633,6 @@ my: other: မဲအရေအတွက် %{count} မဲ vote: မဲပေးမည် show_more: ပိုမိုပြရန် - show_newer: ပို့စ်အသစ်များပြရန် - show_older: ပို့စ်အဟောင်းများပြရန် show_thread: Thread ကို ပြပါ title: '%{name}: "%{quote}"' visibilities: diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 8f7cb06b66a440..3b4c586dc5493c 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -386,12 +386,12 @@ nl: confirm_suspension: cancel: Annuleren confirm: Opschorten - permanent_action: De schorsing ongedaan maken zal geen gegevens of volgrelaties herstellen. + permanent_action: Het ongedaan maken van de schorsing herstelt geen gegevens of volgrelaties. preamble_html: Je staat op het punt om %{domain} en subdomeinen op te schorten. remove_all_data: Dit verwijdert alle inhoud, media en profielgegevens van de accounts van dit domein van jouw server. - stop_communication: Jouw server zal niet langer met deze servers communiceren. + stop_communication: Jouw server communiceert niet langer meer met deze servers. title: Domeinblokkade voor %{domain} bevestigen - undo_relationships: Dit zal elke volgrelatie tussen de accounts van deze servers en die van jou ongedaan maken. + undo_relationships: Dit maakt elke volgrelatie tussen de accounts van deze servers en die van jou ongedaan. created_msg: Domeinblokkade wordt nu verwerkt destroyed_msg: Domeinblokkade is ongedaan gemaakt domain: Domein @@ -470,8 +470,8 @@ nl: instances: availability: description_html: - one: Als de bezorging aan het domein gedurende %{count} dag blijft mislukken, dan zullen er geen verdere pogingen tot bezorging worden gedaan tot een bezorging van het domein is ontvangen. - other: Als de bezorging aan het domein gedurende %{count} verschillende dagen blijft mislukken, dan zullen er geen verdere pogingen tot bezorging worden gedaan tot een bezorging van het domein is ontvangen. + one: Wanneer de bezorging aan het domein gedurende %{count} dag blijft mislukken dan worden er geen bezorgpogingen meer gedaan, totdat een bezorging van het domein wordt ontvangen. + other: Als de bezorging aan het domein gedurende %{count} verschillende dagen blijft mislukken dan worden er geen bezorgpogingen meer gedaan, totdat een bezorging van het domein wordt ontvangen. failure_threshold_reached: Foutieve drempelwaarde bereikt op %{date}. failures_recorded: one: Mislukte poging op %{count} dag. @@ -593,7 +593,7 @@ nl: other_description_html: Bekijk meer opties voor het controleren van het gedrag van en de communicatie met het gerapporteerde account. resolve_description_html: Er wordt tegen het gerapporteerde account geen maatregel genomen, geen overtreding geregistreerd en de rapportage wordt gemarkeerd als opgelost. silence_description_html: Het account is alleen zichtbaar voor degenen die het al volgen of handmatig opzoeken, waardoor het bereik ernstig wordt beperkt. Dit kan altijd ongedaan worden gemaakt. Dit sluit alle rapporten tegen dit account af. - suspend_description_html: Het account en al zijn inhoud zullen niet toegankelijk zijn en uiteindelijk verwijderd worden en er zal geen interactie met het account mogelijk zijn. Dit is omkeerbaar binnen 30 dagen. Dit sluit alle rapporten tegen dit account af. + suspend_description_html: Het account en de inhoud hiervan is niet meer toegankelijk, en het is ook niet meer mogelijk om ermee interactie te hebben. Uiteindelijk wordt het account volledig verwijderd. Dit is omkeerbaar binnen 30 dagen. Dit sluit alle rapporten tegen dit account af. actions_description_html: Beslis welke maatregel moet worden genomen om deze rapportage op te lossen. Wanneer je een (straf)maatregel tegen het gerapporteerde account neemt, krijgt het account een e-mailmelding, behalve wanneer de spam-categorie is gekozen. actions_description_remote_html: Beslis welke actie moet worden ondernomen om deze rapportage op te lossen. Dit is alleen van invloed op hoe jouw server met dit externe account communiceert en de inhoud ervan beheert. add_to_report: Meer aan de rapportage toevoegen @@ -653,7 +653,7 @@ nl: close_report: 'Rapportage #%{id} als opgelost markeren' close_reports_html: "Alle rapportages tegen @%{acct} als opgelost markeren" delete_data_html: Het account en inhoud van @%{acct} over 30 dagen verwijderen, tenzij die in de tussentijd wordt gedeblokkeerd - preview_preamble_html: "@%{acct} zal een waarschuwing ontvangen met de volgende inhoud:" + preview_preamble_html: "@%{acct} ontvangt een waarschuwing met de volgende inhoud:" record_strike_html: Registreer een overtreding van @%{acct} om je te helpen met het sneller afhandelen van toekomstige overtredingen van dit account send_email_html: Een waarschuwingsmail naar @%{acct} sturen warning_placeholder: Optionele aanvullende redenen voor de moderatie-actie. @@ -778,7 +778,7 @@ nl: warning_hint: We raden je aan om “Goedkeuring vereist om te kunnen registreren” te gebruiken, tenzij je er zeker van bent dat jouw moderatieteam spam en kwaadwillende registraties tijdig kan afhandelen. security: authorized_fetch: Verificatie van gefedeerde servers vereisen - authorized_fetch_hint: Verificatie vereisen van gefedereerde servers maakt een striktere handhaving van blokkades op gebruikersniveau en serverniveau mogelijk. Dit gaat echter ten koste van de prestaties, vermindert het bereik van je reacties en kan compatibiliteitsproblemen met sommige gefedereerde services opleveren. Bovendien zal dit niet voorkomen dat personen met slechte bedoelingen je openbare berichten en accounts kunnen ophalen. + authorized_fetch_hint: Verificatie vereisen van gefedereerde servers maakt een striktere handhaving van blokkades op gebruikersniveau en serverniveau mogelijk. Dit gaat echter ten koste van de prestaties, vermindert het bereik van je reacties en kan compatibiliteitsproblemen met sommige gefedereerde services opleveren. Bovendien voorkomt dit niet dat personen met slechte bedoelingen je openbare berichten en accounts kunnen ophalen. authorized_fetch_overridden_hint: Je kunt momenteel deze instelling niet wijzigen, omdat deze is overschreven door een omgevingsvariabele. federation_authentication: Afgedwongen federatie-verificatie title: Serverinstellingen @@ -900,7 +900,7 @@ nl: pending_review: In afwachting van beoordeling preview_card_providers: allowed: Links van deze website kunnen trending worden - description_html: Dit zijn domeinen waarvan er links vaak op jouw server worden gedeeld. Links zullen niet in het openbaar trending worden, voordat het domein van de link wordt goedgekeurd. Jouw goedkeuring (of afwijzing) geldt ook voor subdomeinen. + description_html: Dit zijn domeinen waarvan er vaak links op jouw server worden gedeeld. Links worden niet in het openbaar trending, voordat het domein van de link wordt goedgekeurd. Jouw goedkeuring (of afwijzing) geldt ook voor subdomeinen. rejected: Links naar deze nieuwssite kunnen niet trending worden title: Websites rejected: Afgekeurd @@ -928,7 +928,7 @@ nl: listable: Kan worden aanbevolen no_tag_selected: Er werden geen hashtags gewijzigd, omdat er geen enkele werd geselecteerd not_listable: Wordt niet aanbevolen - not_trendable: Zal niet onder trends verschijnen + not_trendable: Verschijnt niet onder trends not_usable: Kan niet worden gebruikt peaked_on_and_decaying: Piekte op %{date} en is nu weer op diens retour title: Trending hashtags @@ -1159,10 +1159,10 @@ nl: email_change_html: Je kunt je e-mailadres wijzigen zonder dat je jouw account hoeft te verwijderen email_contact_html: Wanneer het nog steeds niet aankomt, kun je voor hulp e-mailen naar %{email} email_reconfirmation_html: Wanneer je de bevestigingsmail niet hebt ontvangen, kun je deze opnieuw aanvragen - irreversible: Je zult niet in staat zijn om jouw account te herstellen of te deactiveren + irreversible: Je bent niet meer in staat om jouw account te herstellen of te deactiveren more_details_html: Zie het privacybeleid voor meer informatie. - username_available: Jouw gebruikersnaam zal weer beschikbaar komen - username_unavailable: Jouw gebruikersnaam zal onbeschikbaar blijven + username_available: Jouw gebruikersnaam komt weer beschikbaar + username_unavailable: Jouw gebruikersnaam blijft onbeschikbaar disputes: strikes: action_taken: Genomen maatregel @@ -1197,7 +1197,7 @@ nl: invalid_domain: is een ongeldige domeinnaam edit_profile: basic_information: Algemene informatie - hint_html: "Pas aan wat mensen op jouw openbare profiel en naast je berichten zien. Andere mensen zullen je eerder volgen en met je communiceren wanneer je profiel is ingevuld en je een profielfoto hebt." + hint_html: "Wat mensen op jouw openbare profiel en naast je berichten zien aanpassen. Andere mensen gaan je waarschijnlijk eerder volgen en hebben vaker interactie met je, wanneer je profiel is ingevuld en je een profielfoto hebt." other: Overige errors: '400': De aanvraag die je hebt ingediend was ongeldig of foutief. @@ -1323,7 +1323,7 @@ nl: bookmarks_html: Je staat op het punt jouw bladwijzers te vervangen door %{total_items} berichten vanuit %{filename}. domain_blocking_html: Je staat op het punt jouw lijst met geblokkeerde domeinen te vervangen door %{total_items} domeinen vanuit %{filename}. following_html: Je staat op het punt om %{total_items} accounts te volgen vanuit %{filename} en te stoppen met het volgen van alle andere accounts. - lists_html: Je staat op het punt je lijsten te vervangen door inhoud van %{filename}. Tot %{total_items} accounts zullen aan nieuwe lijsten worden toegevoegd. + lists_html: Je staat op het punt je lijsten te vervangen door inhoud van %{filename}. Er worden totaal %{total_items} accounts aan nieuwe lijsten toegevoegd. muting_html: Je staat op het punt jouw lijst met genegeerde accounts te vervangen door %{total_items} accounts vanuit %{filename}. preambles: blocking_html: Je staat op het punt om %{total_items} accounts te blokkeren vanuit %{filename}. @@ -1421,7 +1421,7 @@ nl: migrations: acct: Verhuisd naar cancel: Doorverwijzing annuleren - cancel_explanation: Het annuleren van de doorverwijzing zal jouw huidige account opnieuw activeren, maar brengt geen volgers terug die naar het andere account zijn verhuisd. + cancel_explanation: Het annuleren van de doorverwijzing activeert opnieuw jouw huidige account, maar brengt geen volgers terug die naar het andere account zijn verhuisd. cancelled_msg: De doorverwijzing is succesvol geannuleerd. errors: already_moved: is hetzelfde account waarnaar je al naar toe bent verhuisd @@ -1697,8 +1697,6 @@ nl: other: "%{count} stemmen" vote: Stemmen show_more: Meer tonen - show_newer: Nieuwere tonen - show_older: Oudere tonen show_thread: Gesprek tonen title: '%{name}: "%{quote}"' visibilities: @@ -1822,7 +1820,7 @@ nl: mark_statuses_as_sensitive: Sommige van jouw berichten zijn als gevoelig gemarkeerd door de moderatoren van %{instance}. Dit betekent dat mensen op de media in de berichten moeten klikken/tikken om deze weer te geven. Je kunt media in de toekomst ook zelf als gevoelig markeren. sensitive: Vanaf nu worden al jouw geüploade media als gevoelig gemarkeerd en verborgen achter een waarschuwing. silence: Je kunt nog steeds jouw account gebruiken, maar alleen mensen die jou al volgen kunnen jouw berichten zien, en je kunt minder goed worden gevonden. Andere kunnen je echter nog wel steeds handmatig volgen. - suspend: Je kunt niet langer jouw account gebruiken, en jouw profiel en andere gegevens zijn niet langer toegankelijk. Je kunt nog steeds inloggen om een backup van jouw gegevens op te vragen, totdat deze na 30 dagen volledig worden verwijderd. We zullen wel enkele basisgegevens behouden om te voorkomen dat je onder je schorsing uit probeert te komen. + suspend: Je kunt niet langer jouw account gebruiken, en jouw profiel en andere gegevens zijn niet langer toegankelijk. Je kunt nog steeds inloggen om een backup van jouw gegevens op te vragen, totdat deze na 30 dagen volledig worden verwijderd. We behouden wel enkele basisgegevens, om te voorkomen dat je onder je schorsing uit probeert te komen. reason: 'Reden:' statuses: 'Gerapporteerde berichten:' subject: @@ -1830,7 +1828,7 @@ nl: disable: Jouw account %{acct} is bevroren mark_statuses_as_sensitive: Deze berichten van %{acct} zijn als gevoelig gemarkeerd none: Waarschuwing voor %{acct} - sensitive: Berichten van %{acct} zullen vanaf nu altijd als gevoelig worden gemarkeerd + sensitive: Berichten van %{acct} worden vanaf nu altijd als gevoelig gemarkeerd silence: Jouw account %{acct} is nu beperkt suspend: Jouw account %{acct} is opgeschort title: @@ -1849,7 +1847,7 @@ nl: checklist_subtitle: 'Laten we aan dit nieuwe sociale avontuur beginnen:' checklist_title: Welkomstchecklist edit_profile_action: Personaliseren - edit_profile_step: Anderen zullen eerder met je in contact treden als je wat over jezelf vertelt. + edit_profile_step: Wanneer je meer over jezelf vertelt, krijg je meer interactie met andere mensen. edit_profile_title: Je profiel aanpassen explanation: Hier zijn enkele tips om je op weg te helpen feature_action: Meer informatie @@ -1867,7 +1865,9 @@ nl: follows_subtitle: Volg bekende accounts follows_title: Wie te volgen follows_view_more: Meer mensen om te volgen bekijken - hashtags_recent_count: "%{people} mensen in de afgelopen %{days} dagen" + hashtags_recent_count: + one: "%{people} persoon in de afgelopen 2 dagen" + other: "%{people} mensen in de afgelopen 2 dagen" hashtags_subtitle: Wat er in de afgelopen 2 dagen is gebeurd verkennen hashtags_title: Populaire hashtags hashtags_view_more: Meer populaire hashtags bekijken @@ -1891,7 +1891,7 @@ nl: verification: extra_instructions_html: Tip: De link op je website kan onzichtbaar zijn. Het belangrijke onderdeel is rel="me" dat impersonatie op websites met user-generated content voorkomt. Je kunt zelfs een link-tag gebruiken in de header van de pagina in plaats van a, maar de HTML moet ook zonder JavaScript toegankelijk zijn. here_is_how: Zo werkt het - hint_html: "Verificatie van je identiteit op Mastodon is voor iedereen. Het is gebaseerd op open webstandaarden, en is en blijft altijd gratis. Alles wat nodig is is een persoonlijke website waar mensen je aan kunnen herkennen. Wanneer je vanuit jouw profiel naar deze website linkt, zullen wij controleren of de website naar jouw profiel teruglinkt en daar een visuele indicator van tonen." + hint_html: "Verificatie van je identiteit op Mastodon is voor iedereen. Het is gebaseerd op open webstandaarden, en is en blijft altijd gratis. Alles wat nodig is is een persoonlijke website waar mensen je aan kunnen herkennen. Wanneer je vanuit jouw profiel naar deze website linkt, controleren wij of de website naar jouw profiel teruglinkt en geven wij dit duidelijk hierop aan." instructions_html: Kopieer en plak de onderstaande code in de HTML van je website. Voeg vervolgens het adres van je website toe aan een van de extra velden op je profiel op het tabblad "Profiel bewerken" en sla de wijzigingen op. verification: Verificatie verified_links: Jouw geverifieerde links diff --git a/config/locales/nn.yml b/config/locales/nn.yml index 73821e5e28b04f..f53b67d0982175 100644 --- a/config/locales/nn.yml +++ b/config/locales/nn.yml @@ -1697,8 +1697,6 @@ nn: other: "%{count} røyster" vote: Røyst show_more: Vis meir - show_newer: Vis nyere - show_older: Vis eldre show_thread: Vis tråden title: "%{name}: «%{quote}»" visibilities: @@ -1867,7 +1865,6 @@ nn: follows_subtitle: Fylg kjende folk follows_title: Kven du kan fylgja follows_view_more: Sjå fleire du kan fylgja - hashtags_recent_count: "%{people} folk dei siste %{days} dagane" hashtags_subtitle: Sjå kva som har vore populært dei siste to dagane hashtags_title: Populære emneknaggar hashtags_view_more: Sjå fleire populære emneknaggar diff --git a/config/locales/no.yml b/config/locales/no.yml index ba3d40a522efb2..4cdf2ca82a0e01 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -1694,8 +1694,6 @@ other: "%{count} stemmer" vote: Stem show_more: Vis mer - show_newer: Vis nyere - show_older: Vis eldre show_thread: Vis tråden title: "%{name}: «%{quote}»" visibilities: @@ -1854,7 +1852,6 @@ follows_subtitle: Følg godt kjente kontoer follows_title: Hvem å følge follows_view_more: Vis flere personer å følge - hashtags_recent_count: "%{people} personer i de siste %{days} dagene" hashtags_title: Populære emneknagger hashtags_view_more: Vis flere populære emneknagger post_step: Si hallo til verdenen med tekst, bilder, videoer, eller meningsmålinger. diff --git a/config/locales/oc.yml b/config/locales/oc.yml index 9f9f04ba9be0ac..569f76715b21c5 100644 --- a/config/locales/oc.yml +++ b/config/locales/oc.yml @@ -875,8 +875,6 @@ oc: other: "%{count} vòtes" vote: Votar show_more: Ne veire mai - show_newer: Veire mai recents - show_older: Veire mai ancians show_thread: Mostrar lo fil title: '%{name} : "%{quote}"' visibilities: diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 70e772c4c71569..e43f9a605079dd 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -1761,8 +1761,6 @@ pl: other: "%{count} głosy" vote: Głosuj show_more: Pokaż więcej - show_newer: Pokaż nowsze - show_older: Pokaż starsze show_thread: Pokaż wątek title: '%{name}: "%{quote}"' visibilities: @@ -1931,7 +1929,11 @@ pl: follows_subtitle: Obserwuj dobrze znane konta follows_title: Kogo obserwować follows_view_more: Zobacz więcej osób do obserwowania - hashtags_recent_count: "%{people} osób w ostatnie %{days} dni" + hashtags_recent_count: + few: "%{people} osoby w ostatnie 2 dni" + many: "%{people} osób w ostatnie 2 dni" + one: "%{people} osoba w ostatnie 2 dni" + other: "%{people} osób w ostatnie 2 dni" hashtags_subtitle: Zobacz, co było popularne przez ostatnie 2 dni hashtags_title: Popularne hashtagi hashtags_view_more: Zobacz więcej popularnych hashtagów diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index a521af185ed312..194de9a3eb1456 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -775,6 +775,7 @@ pt-BR: approved: Aprovação necessária para criar conta none: Ninguém pode criar conta open: Qualquer um pode criar conta + warning_hint: Recomendamos o uso de "Aprovação necessária para se cadastrar", a menos que você esteja confiante de que sua equipe de moderação pode lidar com spam e registros maliciosos em tempo hábil. security: authorized_fetch: Exigir autenticação por parte de servidores federados authorized_fetch_hint: Exigir autenticação de servidores federados permite uma aplicação mais rigorosa de bloqueios tanto de nível de usuário como de servidor. No entanto, isso traz como custo uma penalidade no desempenho, reduz o alcance das suas respostas e pode introduzir problemas de compatibilidade com alguns serviços federados. Além disso, não impedirá atores dedicados de consultar suas publicações e contas públicas. @@ -967,6 +968,9 @@ pt-BR: title: Webhooks webhook: Webhook admin_mailer: + auto_close_registrations: + body: Devido à falta de atividade recente dos moderadores, as inscrições em %{instance} foram automaticamente alteradas para exigir revisão manual, para evitar que %{instance} seja usada como uma plataforma para potenciais atores mal-intencionados. Você pode alterá-la de volta para inscrições abertas a qualquer momento. + subject: As inscrições para %{instance} foram automaticamente alteradas para requerer aprovação new_appeal: actions: delete_statuses: para excluir suas publicações @@ -1693,8 +1697,6 @@ pt-BR: other: "%{count} votos" vote: Votar show_more: Mostrar mais - show_newer: Mostrar mais recentes - show_older: Mostrar mais antigos show_thread: Mostrar conversa title: '%{name}: "%{quote}"' visibilities: @@ -1781,6 +1783,7 @@ pt-BR: action: Configurações da conta explanation: A revisão da punição na sua conta em %{strike_date} que você enviou em %{appeal_date} foi aprovada. Sua conta está novamente em situação regular. subject: Sua revisão de %{date} foi aprovada + subtitle: Sua conta está novamente em boa situação. title: Revisão aprovada appeal_rejected: explanation: A revisão da punição na sua conta em %{strike_date} que você enviou em %{appeal_date} foi rejeitada. @@ -1837,7 +1840,41 @@ pt-BR: silence: Conta silenciada suspend: Conta banida welcome: + apps_android_action: Disponível no Google Play + apps_ios_action: Disponível na App Store + apps_step: Baixe nossos aplicativos oficiais. + apps_title: Apps Mastodon + checklist_subtitle: 'Vamos começar nesta nova fronteira social:' + checklist_title: Lista de verificação de boas-vindas + edit_profile_action: Personalizar + edit_profile_step: Aumente suas interações tendo um perfil completo. + edit_profile_title: Customize seu perfil explanation: Aqui estão algumas dicas para você começar + feature_action: Saiba mais + feature_audience: O Mastodon oferece a você uma oportunidade única de gerenciar seu público sem intermediários. O Mastodon implantado em sua própria infraestrutura permite que você siga e seja seguido por qualquer outro servidor Mastodon online e está única e exclusivamente sob o seu controle. + feature_audience_title: Construa confiança com seu público + feature_control: Você sabe o que deseja ver na sua página inicial. Sem algoritmos ou anúncios para desperdiçar seu tempo. Siga qualquer pessoa em qualquer servidor Mastodon a partir de uma única conta e receba suas postagens em ordem cronológica, e faça o seu cantinho na internet um pouco mais a sua cara. + feature_control_title: Fique no controle da sua própria linha do tempo + feature_creativity: Mastodon oferece suporte a postagens de áudio, vídeo e imagem, descrições de acessibilidade, enquetes, avisos de conteúdo, avatares animados, emojis personalizados, recorte de miniaturas e muito mais, para ajudá-lo a se expressar online. Seja você publicando sua arte, sua música ou seu podcast, o Mastodon está lá para você. + feature_creativity_title: Criatividade inigualável + feature_moderation: Mastodon devolve a tomada de decisão para suas mãos. Cada servidor cria suas próprias regras e regulamentos, que são aplicados localmente e não de cima para baixo como nas redes sociais corporativas, tornando-o o mais flexível em responder às necessidades de diferentes grupos de pessoas. Junte-se a um servidor com as regras com as quais você concorda, ou hospede o seu próprio. + feature_moderation_title: Moderando como deve ser + follow_action: Seguir + follow_step: Seguir pessoas interessantes é do que trata Mastodon. + follow_title: Personalize sua página inicial + follows_subtitle: Siga contas conhecidas + follows_title: Quem seguir + follows_view_more: Veja mais pessoas para seguir + hashtags_subtitle: Explorar o que está em alta nos últimos 2 dias + hashtags_title: Hashtags em alta + hashtags_view_more: Ver mais hashtags em alta + post_action: Escrever + post_step: Diga olá para o mundo com texto, fotos, vídeos ou enquetes. + post_title: Crie sua primeira publicação + share_action: Compartilhar + share_step: Deixe seus amigos saberem como te encontrar no Mastodon. + share_title: Compartilhe seu perfil do Mastodon + sign_in_action: Entrar subject: Boas-vindas ao Mastodon title: Boas vindas, %{name}! users: diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml index bd635d12b670c9..57a698e1d10dc1 100644 --- a/config/locales/pt-PT.yml +++ b/config/locales/pt-PT.yml @@ -1697,8 +1697,6 @@ pt-PT: other: "%{count} votos" vote: Votar show_more: Mostrar mais - show_newer: Mostrar mais recentes - show_older: Mostrar mais antigos show_thread: Mostrar conversa title: '%{name}: "%{quote}"' visibilities: @@ -1867,7 +1865,6 @@ pt-PT: follows_subtitle: Siga contas bem conhecidas follows_title: Quem seguir follows_view_more: Veja mais pessoas para seguir - hashtags_recent_count: "%{people} pessoas nos últimos %{days} dias" hashtags_subtitle: Explore o que está em tendência desde os últimos 2 dias hashtags_title: Trending hashtags hashtags_view_more: Ver mais hashtags em alta diff --git a/config/locales/ro.yml b/config/locales/ro.yml index 747402bb1e6299..1099e3d0d7e3c6 100644 --- a/config/locales/ro.yml +++ b/config/locales/ro.yml @@ -122,6 +122,8 @@ ro: removed_header_msg: S-a îndepărtat cu succes coperta utilizatorului %{username} resend_confirmation: already_confirmed: Acest utilizator este deja confirmat + send: Retrimite link-ul de confirmare + success: Link-ul de confirmare a fost trimis cu succes! reset: Resetează reset_password: Resetează parola resubscribe: Resubscrie-te @@ -129,6 +131,7 @@ ro: search: Caută search_same_email_domain: Alţi utilizatori cu acelaşi domeniu de e-mail search_same_ip: Alţi utilizatori cu acelaşi IP + security: Securitate security_measures: only_password: Doar parola password_and_2fa: Parolă și Conectarea în 2 pași @@ -189,6 +192,7 @@ ro: destroy_ip_block: Șterge regula IP destroy_status: Șterge starea destroy_unavailable_domain: Șterge Domeniul Indisponibil + destroy_user_role: Distruge Rolul disable_2fa_user: Dezactivează 2FA disable_custom_emoji: Dezactivează Emoji-urile Personalizate disable_sign_in_token_auth_user: Dezactivează Autentificarea prin Token E-mail pentru Utilizator @@ -202,6 +206,7 @@ ro: reject_user: Respinge Utilizatorul remove_avatar_user: Elimină avatar reopen_report: Redeschide Raport + resend_user: Retrimite E-Mail-ul de Confirmare reset_password_user: Resetează Parola resolve_report: Rezolvă Raport sensitive_account: Cont Sensibil @@ -213,7 +218,9 @@ ro: unsuspend_account: Anulează Suspendarea Contului update_announcement: Actualizare Anunț update_custom_emoji: Actualizare Emoji Personalizat + update_ip_block: Actualizați regula IP update_status: Actualizează Starea + update_user_role: Actualizare Rol actions: create_custom_emoji_html: "%{name} a încărcat noi emoji %{target}" deleted_account: cont șters @@ -238,6 +245,7 @@ ro: unpublish: Revocă publicarea unpublished_msg: Publicarea anunțului a fost revocată cu succes! updated_msg: Anunț actualizat cu succes! + critical_update_pending: Actualizare critică în așteptare custom_emojis: assign_category: Atribuie o categorie by_domain: Domeniu @@ -272,6 +280,37 @@ ro: update_failed_msg: Nu s-a putut actualiza emoticonul respectiv updated_msg: Emoticon actualizat cu succes! upload: Încarcă + dashboard: + active_users: utilizatori activi + interactions: interacțiuni + media_storage: Stocare media + new_users: utilizatori noi + opened_reports: rapoarte deschise + resolved_reports: rapoarte rezolvate + software: Software + sources: Surse de înscriere + space: Utilizare spațiu + title: Tablou de bord + top_languages: Limbi active de top + top_servers: Top servere active + website: Site web + disputes: + appeals: + empty: Niciun recurs găsit. + title: Recursuri + domain_allows: + export: Exportare + import: Importare + domain_blocks: + confirm_suspension: + cancel: Anulare + confirm: Suspendă + permanent_action: Anularea suspendării nu va restabili nicio dată sau relație. + preamble_html: Sunteți pe cale să suspendați %{domain} și subdomeniile sale. + remove_all_data: Acest lucru va elimina tot conținutul, media și datele profilului contului acestui domeniu de pe server. + stop_communication: Serverul tău nu va mai comunica cu aceste servere. + title: Confirmați blocarea domeniului pentru %{domain} + undo_relationships: Această acțiune va anula orice relație de urmărire între conturile acestor servere și ale tale. email_domain_blocks: delete: Șterge dns: diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 83fbe373a01dc1..d2c46097008559 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -1756,8 +1756,6 @@ ru: other: "%{count} голосов" vote: Голосовать show_more: Развернуть - show_newer: Показать более новое - show_older: Показать старые show_thread: Открыть обсуждение title: '%{name}: "%{quote}"' visibilities: diff --git a/config/locales/sc.yml b/config/locales/sc.yml index ec16c6027d82fb..e51ac84eac6f55 100644 --- a/config/locales/sc.yml +++ b/config/locales/sc.yml @@ -1025,8 +1025,6 @@ sc: other: "%{count} votos" vote: Vota show_more: Ammustra·nde prus - show_newer: Ammustra is prus noos - show_older: Ammustra is prus betzos show_thread: Ammustra su tema title: '%{name}: "%{quote}"' visibilities: diff --git a/config/locales/sco.yml b/config/locales/sco.yml index 5b452fc6bb7d38..8382dec76e1cad 100644 --- a/config/locales/sco.yml +++ b/config/locales/sco.yml @@ -1452,8 +1452,6 @@ sco: other: "%{count} votes" vote: Vote show_more: Shaw mair - show_newer: Shaw newer - show_older: Shaw aulder show_thread: Shaw threid title: '%{name}: "%{quote}"' visibilities: diff --git a/config/locales/si.yml b/config/locales/si.yml index 6afa8f8ef3b839..e0be7ff8e95721 100644 --- a/config/locales/si.yml +++ b/config/locales/si.yml @@ -1316,8 +1316,6 @@ si: other: ඡන්ද %{count} යි vote: ඡන්දය show_more: තව පෙන්වන්න - show_newer: අලුත්ම පෙන්වන්න - show_older: පැරණි පෙන්වන්න show_thread: නූල් පෙන්වන්න title: '%{name}: "%{quote}"' visibilities: diff --git a/config/locales/simple_form.be.yml b/config/locales/simple_form.be.yml index e72d16a1878b7a..245c1e8528ea90 100644 --- a/config/locales/simple_form.be.yml +++ b/config/locales/simple_form.be.yml @@ -116,6 +116,7 @@ be: sign_up_requires_approval: Новыя рэгістрацыі запатрабуюць вашага ўзгаднення severity: Абярыце, што будзе адбывацца з запытамі з гэтага IP rule: + hint: Неабавязкова. Пазначце дадатковыя звесткі аб правіле text: Апішыце правіла ці патрабаванне для карыстальнікаў на гэтым серверы. Імкніцеся зрабіць яго простым ды кароткім sessions: otp: 'Увядзіце код двухфактарнай аўтэнтыфікацыі з вашага тэлефона або адзін з кодаў аднаўлення:' @@ -299,6 +300,7 @@ be: patch: Апавяшчаць аб абнаўленнях з выпраўленнем памылак trending_tag: Новы трэнд патрабуе разгляду rule: + hint: Дадатковая інфармацыя text: Правіла settings: indexable: Індэксаваць профіль у пошукавых сістэмах diff --git a/config/locales/simple_form.bg.yml b/config/locales/simple_form.bg.yml index 831e1a2f8c5443..e85e753e887773 100644 --- a/config/locales/simple_form.bg.yml +++ b/config/locales/simple_form.bg.yml @@ -116,6 +116,7 @@ bg: sign_up_requires_approval: Новите регистрации ще изискват одобрението ви severity: Изберете какво да се случва със заявките от този IP rule: + hint: По избор. Дайте по-подробно за правилото text: Опишете правило или изискване за потребителите на този сървър. Опитайте се да го направите кратко и просто sessions: otp: 'Въведете двуфакторния код, породен от приложението на телефона си или използвайте един от кодовете си за възстановяване:' @@ -299,6 +300,7 @@ bg: patch: Известие за обновявания на оправени грешки trending_tag: Изискване на преглед за новонашумели rule: + hint: Допълнителни сведения text: Правило settings: indexable: Включване на страницата на профила в търсачките diff --git a/config/locales/simple_form.br.yml b/config/locales/simple_form.br.yml index 529e3224e67c4d..196711aee97b1a 100644 --- a/config/locales/simple_form.br.yml +++ b/config/locales/simple_form.br.yml @@ -67,6 +67,7 @@ br: notification_emails: follow: Heuliañ a ra {name} ac'hanoc'h rule: + hint: Titouroù ouzhpenn text: Reolenn tag: name: Hashtag diff --git a/config/locales/simple_form.ca.yml b/config/locales/simple_form.ca.yml index 7d0f799d0cee4a..e4bee0214c0349 100644 --- a/config/locales/simple_form.ca.yml +++ b/config/locales/simple_form.ca.yml @@ -116,6 +116,7 @@ ca: sign_up_requires_approval: Els nous registres requeriran la teva aprovació severity: Tria què passarà amb les sol·licituds des d’aquesta IP rule: + hint: Opcional. Proporcioneu més detalls de la regla text: Descriu una norma o requeriment pels usuaris d'aquest servidor. Intenta fer-la curta i senzilla sessions: otp: 'Introdueix el codi de dos factors generat per el teu telèfon o utilitza un dels teus codis de recuperació:' @@ -299,6 +300,7 @@ ca: patch: Notificar sobre les actualitzacions de correcció d'errors trending_tag: Nova tendència requereix revisió rule: + hint: Informació addicional text: Norma settings: indexable: Inclou la pàgina del perfil en els motors de cerca diff --git a/config/locales/simple_form.cy.yml b/config/locales/simple_form.cy.yml index 3daedfc86063ce..21cd1ddc0afd54 100644 --- a/config/locales/simple_form.cy.yml +++ b/config/locales/simple_form.cy.yml @@ -116,6 +116,7 @@ cy: sign_up_requires_approval: Bydd angen eich cymeradwyaeth ar gyfer cofrestriadau newydd severity: Dewiswch beth fydd yn digwydd gyda cheisiadau o'r IP hwn rule: + hint: Dewisol. Darparwch ragor o fanylion am y rheol text: Disgrifiwch reol neu ofyniad ar gyfer defnyddwyr ar y gweinydd hwn. Ceisiwch ei gadw'n fyr ac yn syml sessions: otp: 'Mewnbynnwch y cod dau gam a gynhyrchwyd gan eich ap ffôn neu defnyddiwch un o''ch codau adfer:' @@ -299,6 +300,7 @@ cy: patch: Rhoi gwybod am ddiweddariadau trwsio byg trending_tag: Mae pwnc llosg newydd angen adolygiad rule: + hint: Gwybodaeth ychwanegol text: Rheol settings: indexable: Cynnwys tudalen proffil mewn peiriannau chwilio diff --git a/config/locales/simple_form.da.yml b/config/locales/simple_form.da.yml index fde0bcc2485364..6c8d995bfdb1a9 100644 --- a/config/locales/simple_form.da.yml +++ b/config/locales/simple_form.da.yml @@ -116,6 +116,7 @@ da: sign_up_requires_approval: Nye tilmeldinger kræver din godkendelse severity: Afgør, hvordan forespørgsler fra denne IP behandles rule: + hint: Valgfrit. Oplys yderligere detaljer om reglen text: Beskriv på en kort og enkel form en regel/krav for brugere på denne server sessions: otp: 'Angiv tofaktorkoden generet af din mobil-app eller brug en af genoprettelseskoderne:' @@ -299,6 +300,7 @@ da: patch: Notificér om fejlrettelsesopdateringer trending_tag: Ny tendens kræver revidering rule: + hint: Yderligere oplysninger text: Regel settings: indexable: Inkludér profilside i søgemaskiner diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml index b8fec42d66f746..1d3fba7876aaf3 100644 --- a/config/locales/simple_form.de.yml +++ b/config/locales/simple_form.de.yml @@ -116,6 +116,7 @@ de: sign_up_requires_approval: Neue Registrierungen müssen genehmigt werden severity: Wähle aus, was mit Anfragen von dieser IP-Adresse geschehen soll rule: + hint: "(Optional) Gib weitere Details zu dieser Regel an" text: Führe eine Regel oder Auflage für Profile auf diesem Server ein. Bleib dabei kurz und knapp sessions: otp: 'Gib den Zwei-Faktor-Code von deinem Smartphone ein oder verwende einen deiner Wiederherstellungscodes:' @@ -148,7 +149,7 @@ de: show_collections: Follower und „Folge ich“ im Profil anzeigen unlocked: Neue Follower automatisch akzeptieren account_alias: - acct: Profilname des alten Kontos + acct: Adresse des alten Kontos account_migration: acct: Adresse des neuen Kontos account_warning_preset: @@ -299,6 +300,7 @@ de: patch: Über Fehlerbehebungen informieren trending_tag: Neuer Trend erfordert eine Überprüfung rule: + hint: Zusätzliche Informationen text: Regel settings: indexable: Profilseite in Suchmaschinen einbeziehen diff --git a/config/locales/simple_form.es-AR.yml b/config/locales/simple_form.es-AR.yml index a074091313c8f1..0111624082a8c2 100644 --- a/config/locales/simple_form.es-AR.yml +++ b/config/locales/simple_form.es-AR.yml @@ -116,6 +116,7 @@ es-AR: sign_up_requires_approval: Los nuevos registros requerirán tu aprobación severity: Elegí lo que pasará con las solicitudes desde esta dirección IP rule: + hint: Opcional. Ofrecé más detalles sobre la regla text: Describí una regla o requisito para los usuarios de este servidor. Intentá hacerla corta y sencilla sessions: otp: 'Ingresá el código de autenticación de dos factores generado por la aplicación en tu dispositivo, o usá uno de tus códigos de recuperación:' @@ -299,6 +300,7 @@ es-AR: patch: Notificar sobre actualizaciones de corrección de errores trending_tag: Una nueva tendencia requiere revisión rule: + hint: Información adicional text: Regla settings: indexable: Incluir la página de perfil en los motores de búsqueda diff --git a/config/locales/simple_form.es-MX.yml b/config/locales/simple_form.es-MX.yml index d8f1cf95a00c9d..28253d385b6520 100644 --- a/config/locales/simple_form.es-MX.yml +++ b/config/locales/simple_form.es-MX.yml @@ -116,6 +116,7 @@ es-MX: sign_up_requires_approval: Nuevos registros requerirán su aprobación severity: Elegir lo que pasará con las peticiones desde esta IP rule: + hint: Opcional. Proporciona más detalles sobre la regla text: Describe una norma o requisito para los usuarios de este servidor. Intenta hacerla corta y sencilla sessions: otp: 'Introduce el código de autenticación de dos factores generado por tu aplicación de teléfono o usa uno de tus códigos de recuperación:' @@ -299,6 +300,7 @@ es-MX: patch: Notificar en actualizaciones de errores trending_tag: La nueva tendencia requiere de revisión rule: + hint: Información adicional text: Norma settings: indexable: Incluir la página de perfil en los motores de búsqueda diff --git a/config/locales/simple_form.es.yml b/config/locales/simple_form.es.yml index fee260aa8992f7..008ac16073d1f3 100644 --- a/config/locales/simple_form.es.yml +++ b/config/locales/simple_form.es.yml @@ -116,6 +116,7 @@ es: sign_up_requires_approval: Nuevos registros requerirán su aprobación severity: Elegir lo que pasará con las peticiones desde esta IP rule: + hint: Opcional. Proporciona más detalles sobre la regla text: Describe una norma o requisito para los usuarios de este servidor. Intenta hacerla corta y sencilla sessions: otp: 'Introduce el código de autenticación de dos factores generado por tu aplicación de teléfono o usa uno de tus códigos de recuperación:' @@ -299,6 +300,7 @@ es: patch: Notificar de actualizaciones de errores trending_tag: Una nueva tendencia requiere revisión rule: + hint: Información adicional text: Norma settings: indexable: Incluye la página de perfil en los buscadores diff --git a/config/locales/simple_form.eu.yml b/config/locales/simple_form.eu.yml index b417b45fa9ed75..03ba1aea6cc527 100644 --- a/config/locales/simple_form.eu.yml +++ b/config/locales/simple_form.eu.yml @@ -116,6 +116,7 @@ eu: sign_up_requires_approval: Izen emate berriek zure onarpena beharko dute severity: Aukeratu zer gertatuko den IP honetatik datozen eskaerekin rule: + hint: Aukerakoa. Eman arauari buruzko xehetasun gehiago. text: Deskribatu zerbitzari honetako erabiltzaileentzako arau edo betekizun bat. Saiatu labur eta sinple idazten sessions: otp: 'Sartu zure telefonoko aplikazioak sortutako bi faktoreetako kodea, edo erabili zure berreskuratze kodeetako bat:' @@ -299,6 +300,7 @@ eu: patch: Jakinarazi akats zuzenketa eguneraketa guztiak trending_tag: Joera berriak berrikuspena behar du rule: + hint: Informazio gehigarria text: Araua settings: indexable: Gehitu profila bilaketa-motorretan diff --git a/config/locales/simple_form.fa.yml b/config/locales/simple_form.fa.yml index a312e5aa1c641a..03f18754519162 100644 --- a/config/locales/simple_form.fa.yml +++ b/config/locales/simple_form.fa.yml @@ -62,7 +62,7 @@ fa: username: تنها می‌توانید از حروف، اعداد، و زیرخط استفاده کنید whole_word: اگر کلیدواژه فقط دارای حروف و اعداد باشد، تنها وقتی پیدا می‌شود که با کل یک واژه در متن منطبق باشد، نه با بخشی از یک واژه domain_allow: - domain: این دامین خواهد توانست داده‌ها از این سرور را دریافت کند و داده‌های از این دامین در این‌جا پردازش و ذخیره خواهند شد + domain: این دامنه خواهد توانست داده‌ها را از این کارساز واکشی کرده و داده‌های ورودی از آن پردازش و ذخیره خواهند شد email_domain_block: domain: این می‌تواند نام دامنه‌ای باشد که در نشانی رایانامه یا رکورد MX استفاده می‌شود. پس از ثبت نام بررسی خواهند شد. with_dns_records: تلاشی برای resolve کردن رکوردهای ساناد دامنهٔ داده‌شده انجام شده و نتیجه نیز مسدود خواهد شد diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml index 3d79f76e8a66e9..b1c2e91a1ee3e7 100644 --- a/config/locales/simple_form.fi.yml +++ b/config/locales/simple_form.fi.yml @@ -116,6 +116,7 @@ fi: sign_up_requires_approval: Uudet rekisteröitymiset edellyttävät hyväksyntääsi severity: Valitse, mitä tapahtuu tämän IP-osoitteen pyynnöille rule: + hint: Valinnainen. Anna lisätietoja säännöstä text: Kuvaile sääntöä tai edellytystä palvelimesi käyttäjille. Suosi tiivistä, yksinkertaista ilmaisua sessions: otp: 'Näppäile mobiilisovelluksessa näkyvä kaksivaiheisen todennuksen tunnusluku, tai käytä tarvittaessa palautuskoodia:' @@ -299,6 +300,7 @@ fi: patch: Ilmoita virhekorjauspäivityksistä trending_tag: Uusi trendi vaatii tarkistusta rule: + hint: Lisätietoja text: Sääntö settings: indexable: Sisällytä profiilisivu hakukoneisiin diff --git a/config/locales/simple_form.fo.yml b/config/locales/simple_form.fo.yml index 003eede25b92f6..599e79ea2f64ff 100644 --- a/config/locales/simple_form.fo.yml +++ b/config/locales/simple_form.fo.yml @@ -116,6 +116,7 @@ fo: sign_up_requires_approval: Nýggjar tilmeldingar fara at krevja tína góðkenning severity: Vel, hvat skal henda við umbønum frá hesari IP adressuni rule: + hint: Valfrítt. Gev fleiri smálutir um regluna text: Lýs eina reglu ella eitt krav fyri brúkarar á hesum ambætaranum. Ger tað stutt og einfalt sessions: otp: 'Skriva tvey-faktor koduna frá telefon-appini ella brúka eina av tínum endurgerðskodum:' @@ -299,6 +300,7 @@ fo: patch: Gev fráboðan um feilrættingardagføringar trending_tag: Broytt rák skal kannast rule: + hint: Fleiri upplýsingar text: Regla settings: indexable: Lat vangasíðu vera tøka í leitimaskinum diff --git a/config/locales/simple_form.fy.yml b/config/locales/simple_form.fy.yml index 5dc5ab2c90ee7e..e2e40f04dd53a9 100644 --- a/config/locales/simple_form.fy.yml +++ b/config/locales/simple_form.fy.yml @@ -116,6 +116,7 @@ fy: sign_up_requires_approval: Nije registraasjes fereaskje jo goedkarring severity: Kies wat der barre moat mei oanfragen fan dit IP-adres rule: + hint: Opsjoneel. Jou mear details oer de rigel text: Omskriuw in rigel of eask foar brûkers op dizze server. Probearje it koart en simpel te hâlden sessions: otp: 'Fier de twa-stapstagongskoade fan jo mobile telefoan ôf yn of brûk ien fan jo werstelkoaden:' @@ -299,6 +300,7 @@ fy: patch: Meldingen by bugfix-fernijingen trending_tag: Nije trend beoardieling fereasket rule: + hint: Oanfoljende ynformaasje text: Regel settings: indexable: Sykmasinen jo profylside fine litte diff --git a/config/locales/simple_form.gd.yml b/config/locales/simple_form.gd.yml index bd7e44455aca15..168e7168ed5eef 100644 --- a/config/locales/simple_form.gd.yml +++ b/config/locales/simple_form.gd.yml @@ -116,6 +116,7 @@ gd: sign_up_requires_approval: Bidh cleachdaichean air an ùr-chlàradh feumach air d’ aonta severity: Tagh na thachras le iarrtasan on IP seo rule: + hint: Roghainneil. Thoir seachad barrachd fiosrachaidh mun riaghailt text: Mìnich riaghailt no riatanas do chleachdaichean an fhrithealaiche seo. Feuch an cùm thu sìmplidh goirid e sessions: otp: 'Cuir a-steach an còd dà-cheumnach a ghin aplacaid an fhòn agad no cleachd fear dhe na còdan aisig agad:' @@ -299,6 +300,7 @@ gd: patch: Thoir brathan dhomh do dh’ùrachaidhean càraidh trending_tag: Tha treand ùr ri lèirmheasadh rule: + hint: Barrachd fiosrachaidh text: Riaghailt settings: indexable: Gabh a-staigh duilleag na pròifil sna h-einnseanan-luirg diff --git a/config/locales/simple_form.gl.yml b/config/locales/simple_form.gl.yml index 719da8eefa8bb3..ffb12d31bcefce 100644 --- a/config/locales/simple_form.gl.yml +++ b/config/locales/simple_form.gl.yml @@ -116,6 +116,7 @@ gl: sign_up_requires_approval: Os novos rexistros requerirán a túa aprobación severity: Escolle que acontecerá coas peticións desde este IP rule: + hint: Optativo. Proporciona máis detalles acerca da regra text: Describe unha regra ou requerimento para as usuarias deste servidor. Intenta que sexa curta e simple sessions: otp: 'Escribe o código do segundo factor creado pola aplicación do teu móbil ou usa un dos códigos de recuperación:' @@ -299,6 +300,7 @@ gl: patch: Notificar as actualizacións de arranxos trending_tag: Hai que revisar unha nova tendencia rule: + hint: Información adicional text: Regra settings: indexable: Incluír páxina de perfil nos motores de busca diff --git a/config/locales/simple_form.he.yml b/config/locales/simple_form.he.yml index 3d7512c5f5461d..4f2611666afb21 100644 --- a/config/locales/simple_form.he.yml +++ b/config/locales/simple_form.he.yml @@ -116,6 +116,7 @@ he: sign_up_requires_approval: הרשמות חדשות ידרשו את אישורך severity: נא לבחור מה יקרה לבקשות מכתובת IP זו rule: + hint: לא חובה. פירוט נוסף לגבי הכלל text: נא לתאר את הכלל או הדרישה למשתמשים משרת זה. על התיאור להיות קצר ובהיר sessions: otp: 'נא להקליד קוד אימות דו-שלבי ממכשירך או להשתמש באחד מקודי אחזור הגישה שלך:' @@ -299,6 +300,7 @@ he: patch: קבלת הודעה על עדכוני תיקון שקצים trending_tag: נושאים חמים חדשים דורשים סקירה rule: + hint: מידע נוסף text: כלל settings: indexable: חשיפת דף המשתמש במנועי החיפוש diff --git a/config/locales/simple_form.hu.yml b/config/locales/simple_form.hu.yml index 573809c73a5904..1d5e149339a9d6 100644 --- a/config/locales/simple_form.hu.yml +++ b/config/locales/simple_form.hu.yml @@ -116,6 +116,7 @@ hu: sign_up_requires_approval: Új regisztrációk csak a jóváhagyásoddal történhetnek majd meg severity: Válaszd ki, mi történjen a kérésekkel erről az IP-ről rule: + hint: Nem kötelező. Adj meg további részleteket a szabályról. text: Írd le, mi a szabály vagy elvárás ezen a kiszolgálón a felhasználók felé. Próbálj röviden, egyszerűen fogalmazni. sessions: otp: 'Add meg a telefonodon generált kétlépcsős azonosító kódodat vagy használd az egyik tartalék bejelentkező kódot:' @@ -148,9 +149,9 @@ hu: show_collections: Követők és követettek megjelnítése a profilban unlocked: Új követők automatikus elfogadása account_alias: - acct: Régi fiók kezelése + acct: A régi fiók fiókneve account_migration: - acct: Új fiók kezelése + acct: Az új fiók fiókneve account_warning_preset: text: Figyelmeztető szöveg title: Cím @@ -251,7 +252,7 @@ hu: registrations_mode: Ki regisztrálhat require_invite_text: Indok megkövetelése a csatlakozáshoz show_domain_blocks: Domain tiltások megjelenitése - show_domain_blocks_rationale: A domainok blokkolásának okának megjelenítése + show_domain_blocks_rationale: A domainek letiltási okainak megjelenítése site_contact_email: Kapcsolattartó e-mail site_contact_username: Kapcsolattartó felhasználóneve site_extended_description: Bővített leírás @@ -299,6 +300,7 @@ hu: patch: Értesítés hibajavítási frissítésekről trending_tag: Új trend felülvizsgálatra vár rule: + hint: További információk text: Szabály settings: indexable: A profiloldal szerepeltetése a keresőmotorokban diff --git a/config/locales/simple_form.is.yml b/config/locales/simple_form.is.yml index 0859e898971a0c..cae9bbed5fa7cc 100644 --- a/config/locales/simple_form.is.yml +++ b/config/locales/simple_form.is.yml @@ -116,6 +116,7 @@ is: sign_up_requires_approval: Nýskráningar munu þurfa samþykki þitt severity: Veldu hvað munir gerast við beiðnir frá þessu IP-vistfangi rule: + hint: Valkvætt. Gefðu nánari upplýsingar um regluna text: Lýstu reglum eða kröfum sem gerðar eru til notenda á þessum netþjóni. Reyndu að hafa þetta skýrt og skorinort sessions: otp: 'Settu inn tveggja-þátta kóðann sem farsímaforritið útbjó eða notaðu einn af endurheimtukóðunum þínum:' @@ -299,6 +300,7 @@ is: patch: Láta vita við uppfærslur með lagfæringum trending_tag: Nýtt vinsælt efni krefst yfirferðar rule: + hint: Viðbótarupplýsingar text: Regla settings: indexable: Hafa notandasnið með í leitarvélum diff --git a/config/locales/simple_form.it.yml b/config/locales/simple_form.it.yml index 244cf7c44ad849..bf294a48c660b6 100644 --- a/config/locales/simple_form.it.yml +++ b/config/locales/simple_form.it.yml @@ -116,6 +116,7 @@ it: sign_up_requires_approval: Le nuove iscrizioni richiederanno la tua approvazione severity: Scegli cosa accadrà con le richieste da questo IP rule: + hint: Opzionale. Fornisce maggiori dettagli sulla regola text: Descrivi una regola o un requisito per gli utenti su questo server. Prova a mantenerla breve e semplice sessions: otp: 'Inserisci il codice a due fattori generato dall''app del tuo telefono o usa uno dei codici di recupero:' @@ -299,6 +300,7 @@ it: patch: Notifica sulle correzioni di bug trending_tag: La nuova tendenza richiede un controllo rule: + hint: Informazioni aggiuntive text: Regola settings: indexable: Includi la pagina del profilo nei motori di ricerca diff --git a/config/locales/simple_form.ja.yml b/config/locales/simple_form.ja.yml index 7224cce768f996..5b96d1845666af 100644 --- a/config/locales/simple_form.ja.yml +++ b/config/locales/simple_form.ja.yml @@ -151,6 +151,7 @@ ja: sign_up_requires_approval: 承認するまで新規登録が完了しなくなります severity: このIPに対する措置を選択してください rule: + hint: ルールについての具体的な説明を追加できます (任意) text: ユーザーのためのルールや要件を記述してください。短くシンプルにしてください。 sessions: otp: '携帯電話のアプリで生成された二要素認証コードを入力するか、リカバリーコードを使用してください:' @@ -429,6 +430,7 @@ ja: patch: 緊急のアップデートとバグ修正アップデートを通知する trending_tag: 新しいトレンドのレビューをする必要がある時 rule: + hint: ルールの補足説明 text: ルール settings: indexable: 検索エンジンからアクセスできるようにする diff --git a/config/locales/simple_form.kab.yml b/config/locales/simple_form.kab.yml index a9b040b0585140..8723e83efac3cc 100644 --- a/config/locales/simple_form.kab.yml +++ b/config/locales/simple_form.kab.yml @@ -23,6 +23,8 @@ kab: setting_display_media_hide_all: Ffer yal tikkelt akk taywalt setting_display_media_show_all: Ffer yal tikkelt teywalt yettwacreḍ d tanafrit username: Tzemreḍ ad tesqedceḍ isekkilen, uṭṭunen akked yijerriden n wadda + featured_tag: + name: 'Ha-t-an kra seg ihacṭagen i tesseqdaceḍ ussan-a ineggura maḍi :' imports: data: Afaylu CSV id yusan seg uqeddac-nniḍen n Maṣṭudun ip_block: @@ -51,6 +53,7 @@ kab: ends_at: Tagara n tedyant text: Alɣu defaults: + autofollow: Ɛreḍ-it-id ad yeḍfer amiḍan-ik·im avatar: Avaṭar bot: Wagi d amiḍan aṛubut chosen_languages: Sizdeg tutlayin @@ -88,8 +91,8 @@ kab: site_terms: Tasertit tabaḍnit site_title: Isem n uqeddac interactions: - must_be_follower: Ssewḥel ilɣa seg wid akked tid ur yellin ara d imeḍfaren-ik·im - must_be_following: Ssewḥel ilɣa seg wid akked tid ur tettḍafareḍ ara + must_be_follower: Ssewḥel ilɣa sɣur wid akked tid ur yellin ara d imeḍfaren-ik·im + must_be_following: Ssewḥel ilɣa sɣur wid akked tid ur tettḍafareḍ ara must_be_following_dm: Sewḥel iznan usriden sɣur wid akked tid ur tettḍafareḍ ara invite: comment: Awennit @@ -102,10 +105,13 @@ kab: no_access: Sewḥel anekcum severity: Alugen notification_emails: + favourite: Ma yella walbɛaḍ i iḥemmlen tasuffeɣt-ik·im follow: Yeḍfer-ik·im-id walbɛaḍ + follow_request: Ma yella win i d-yessutren ad k·em-yeḍfer mention: Yuder-ik·em-id walbɛaḍ reblog: Yella win yesselhan adda-dik·im rule: + hint: Isallen-nniḍen text: Alugen tag: name: Ahacṭag diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml index 1dee6f14317d76..d948a88ed16282 100644 --- a/config/locales/simple_form.ko.yml +++ b/config/locales/simple_form.ko.yml @@ -116,6 +116,7 @@ ko: sign_up_requires_approval: 새 가입이 승인을 필요로 하도록 합니다 severity: 해당 IP로부터의 요청에 대해 무엇이 일어나게 할 지 고르세요 rule: + hint: 옵션사항. 규칙에 대한 더 상세한 정보를 제공하세요 text: 이 서버 사용자들이 지켜야 할 규칙과 요구사항을 설명해주세요. 짧고 간단하게 작성해주세요 sessions: otp: '휴대전화에서 생성된 이중 인증 코드를 입력하거나, 복구 코드 중 하나를 사용하세요:' @@ -299,6 +300,7 @@ ko: patch: 버그픽스 업데이트에 대해 알림 trending_tag: 검토해야 할 새 유행 rule: + hint: 추가 정보 text: 규칙 settings: indexable: 검색 엔진에 프로필 페이지 기재하기 diff --git a/config/locales/simple_form.lad.yml b/config/locales/simple_form.lad.yml index f9ee9a4b9a1fa8..75113be18b6669 100644 --- a/config/locales/simple_form.lad.yml +++ b/config/locales/simple_form.lad.yml @@ -116,6 +116,7 @@ lad: sign_up_requires_approval: Muevas enrejistrasyones rekeriran tu achetasyon severity: Eskoje lo ke pasara kon las petisyones dizde este IP rule: + hint: Opsyonal. Adjusta mas detalyos sovre la regla text: Deskrive una norma o rekerensya para los utilizadores de este sirvidor. Aprova fazerla kurta i kolay sessions: otp: 'Introduse el kodiche de autentifikasyon de dos pasos djenerado por tu aplikasyon de telefon o uza uno de tus kodiches de recuperasyon:' @@ -299,6 +300,7 @@ lad: patch: Avizame de aktualizasyones de yerros trending_tag: Un muevo trend nesesita revizyon rule: + hint: Enformasyon adisyonala text: Regla settings: indexable: Inkluye la pajina de profil en los bushkadores diff --git a/config/locales/simple_form.lt.yml b/config/locales/simple_form.lt.yml index 53b8d672deb133..5431ea1b100877 100644 --- a/config/locales/simple_form.lt.yml +++ b/config/locales/simple_form.lt.yml @@ -82,6 +82,8 @@ lt: thumbnail: Maždaug 2:1 dydžio vaizdas, rodomas šalia tavo serverio informacijos. timeline_preview: Atsijungę lankytojai galės naršyti naujausius viešus įrašus, esančius serveryje. trends: Trendai rodo, kurios įrašai, saitažodžiai ir naujienų istorijos tavo serveryje sulaukia didžiausio susidomėjimo. + rule: + hint: Pasirinktinai. Pateik daugiau informacijos apie taisyklę. sessions: otp: 'Įvesk telefono programėlėje sugeneruotą dviejų tapatybės kodą arba naudok vieną iš atkūrimo kodų:' webauthn: Jei tai USB raktas, būtinai jį įkišk ir, jei reikia, paspausk. @@ -168,6 +170,7 @@ lt: label: Yra nauja Mastodon versija patch: Pranešti apie klaidų ištaisymo atnaujinimus rule: + hint: Papildoma informacija text: Taisyklė settings: show_application: Rodyti, iš kurios programėles išsiuntei įrašą diff --git a/config/locales/simple_form.lv.yml b/config/locales/simple_form.lv.yml index 133a225405a230..596fbe3e3417b6 100644 --- a/config/locales/simple_form.lv.yml +++ b/config/locales/simple_form.lv.yml @@ -26,7 +26,7 @@ lv: disable: Neļauj lietotājam izmantot savu kontu, bet neizdzēs vai neslēp tā saturu. none: Izmanto šo, lai nosūtītu lietotājam brīdinājumu, neradot nekādas citas darbības. sensitive: Piespiest visus šī lietotāja multivides pielikumus atzīmēt kā sensitīvus. - silence: Neļauj lietotājam publicēt ziņas ar publisku redzamību, paslēp viņa ziņas un paziņojumus no personām, kas viņiem neseko. Tiek aizvērti visi šī konta pārskati. + silence: Neļaut lietotājam veikt ierakstus ar publisku redzamību, paslēpt viņa ierakstus un paziņojumus no cilvēkiem, kas tam neseko. Tiek aizvērti visi ziņojumi par šo kontu. suspend: Novērs jebkādu mijiedarbību no šī konta vai uz to un dzēs tā saturu. Atgriežams 30 dienu laikā. Tiek aizvērti visi šī konta pārskati. warning_preset_id: Neobligāts. Tu joprojām vari pievienot pielāgotu tekstu sākotnējās iestatīšanas beigās announcement: diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml index 3f4f339b93a206..df108a2fecc99d 100644 --- a/config/locales/simple_form.nl.yml +++ b/config/locales/simple_form.nl.yml @@ -116,6 +116,7 @@ nl: sign_up_requires_approval: Nieuwe registraties vereisen jouw goedkeuring severity: Kies wat er moet gebeuren met aanvragen van dit IP-adres rule: + hint: Optioneel. Verstrek meer details over de regel text: Omschrijf een regel of vereiste voor gebruikers op deze server. Probeer het kort en simpel te houden sessions: otp: 'Voer de tweestaps-toegangscode vanaf jouw mobiele telefoon in of gebruik een van jouw herstelcodes:' @@ -299,6 +300,7 @@ nl: patch: Meldingen bij bugfix-updates trending_tag: Nieuwe trend vereist beoordeling rule: + hint: Aanvullende informatie text: Regel settings: indexable: Zoekmachines jouw profielpagina laten vinden diff --git a/config/locales/simple_form.nn.yml b/config/locales/simple_form.nn.yml index 98cc372be77d29..72525619c7d9cd 100644 --- a/config/locales/simple_form.nn.yml +++ b/config/locales/simple_form.nn.yml @@ -116,6 +116,7 @@ nn: sign_up_requires_approval: Du må godkjenna nye registreringar severity: Vel kva som skal skje ved førespurnader frå denne IP rule: + hint: Valfritt. Gje meir informasjon om regelen text: Forklar ein regel eller eit krav for brukarar på denne tenaren. Prøv å skriva kort og lettfattleg sessions: otp: Angi tofaktorkoden fra din telefon eller bruk en av dine gjenopprettingskoder. @@ -299,6 +300,7 @@ nn: patch: Varsle om feilrettingsoppdateringar trending_tag: Ny trend krev gjennomgang rule: + hint: Meir informasjon text: Regler settings: indexable: Ta med profilsida i søkjemotorar diff --git a/config/locales/simple_form.pl.yml b/config/locales/simple_form.pl.yml index 4a8208202fa691..3a1c619f70652d 100644 --- a/config/locales/simple_form.pl.yml +++ b/config/locales/simple_form.pl.yml @@ -116,6 +116,7 @@ pl: sign_up_requires_approval: Nowe rejestracje będą wymagać twojej zgody severity: Wybierz co ma się stać z żadaniami z tego adresu IP rule: + hint: Opcjonalne. Dodaj więcej szczegółów dot. tej zasady text: Opisz wymóg lub regułę dla użytkowników na tym serwerze. Postaraj się, aby była krótka i prosta sessions: otp: 'Wprowadź kod weryfikacji dwuetapowej z telefonu lub wykorzystaj jeden z kodów zapasowych:' @@ -299,6 +300,7 @@ pl: patch: Powiadamiaj o aktualizacjach naprawiających błędy trending_tag: Nowe popularne wymagają przeglądu rule: + hint: Informacje dodatkowe text: Zasada settings: indexable: Udostępniaj profil wyszukiwarkom diff --git a/config/locales/simple_form.pt-BR.yml b/config/locales/simple_form.pt-BR.yml index 3a4e99a0d12793..676f5e37a3f354 100644 --- a/config/locales/simple_form.pt-BR.yml +++ b/config/locales/simple_form.pt-BR.yml @@ -39,12 +39,14 @@ pt-BR: text: Você só pode solicitar uma revisão uma vez defaults: autofollow: Pessoas que criarem conta através de seu convite te seguirão automaticamente + avatar: WEBP, PNG, GIF ou JPG. No máximo %{size}. Será reduzido para %{dimensions}px bot: Essa conta executa principalmente ações automatizadas e pode não ser monitorada context: Um ou mais contextos onde o filtro deve atuar current_password: Para fins de segurança, digite a senha da conta atual current_username: Para confirmar, digite o nome de usuário da conta atual digest: Enviado apenas após um longo período de inatividade com um resumo das menções recebidas durante ausência email: Você receberá um e-mail de confirmação + header: WEBP, PNG, GIF ou JPG. No máximo %{size}. Será reduzido para %{dimensions}px inbox_url: Copie o link da página inicial do repetidor que você deseja usar irreversible: As publicações filtradas desaparecerão irreversivelmente, mesmo se o filtro for removido depois locale: O idioma da interface do usuário, e-mails e notificações @@ -297,6 +299,7 @@ pt-BR: patch: Notificar sobre atualizações de correções trending_tag: Uma nova tendência requer revisão rule: + hint: Informações adicionais text: Regra settings: indexable: Incluir página de perfil nos motores de busca diff --git a/config/locales/simple_form.pt-PT.yml b/config/locales/simple_form.pt-PT.yml index 9c54e72140fa79..a84f97f88d7e6d 100644 --- a/config/locales/simple_form.pt-PT.yml +++ b/config/locales/simple_form.pt-PT.yml @@ -116,6 +116,7 @@ pt-PT: sign_up_requires_approval: Novas inscrições requererão a sua aprovação severity: Escolha o que acontecerá com as solicitações deste IP rule: + hint: Opcional. Forneça mais detalhes sobre a regra text: Descreva uma regra ou requisito para os utilizadores nesta instância. Tente mantê-la curta e simples sessions: otp: 'Insira o código de autenticação em duas etapas gerado pelo seu telemóvel ou use um dos seus códigos de recuperação:' @@ -299,6 +300,7 @@ pt-PT: patch: Notificar sobre atualizações de correções de problemas trending_tag: Uma nova publicação em alta requer avaliação rule: + hint: Informação Adicional text: Regra settings: indexable: Incluir página de perfil nos motores de busca diff --git a/config/locales/simple_form.sl.yml b/config/locales/simple_form.sl.yml index 1e56894384e98a..cbf0570187117f 100644 --- a/config/locales/simple_form.sl.yml +++ b/config/locales/simple_form.sl.yml @@ -116,6 +116,7 @@ sl: sign_up_requires_approval: Za nove registracije bo potrebna vaša odobritev severity: Izberite, kaj se bo zgodilo z zahtevami iz tega IP-naslova rule: + hint: Neobvezno. Vnesite dodatne podrobnosti o pravilu text: Opišite pravilo ali zahtevo za uporabnike na tem strežniku. Poskusite biti kratki in jasni sessions: otp: 'Vnesite dvomestno kodo, ki je ustvarjena z aplikacijo na telefonu, ali uporabite eno od vaših obnovitvenih kod:' @@ -299,6 +300,7 @@ sl: patch: Obveščaj o posodobitvah z odpravljenimi hrošči trending_tag: Nov trend zahteva pregled rule: + hint: Dodatne informacije text: Pravilo settings: indexable: V iskalnike vključi stran profila diff --git a/config/locales/simple_form.sq.yml b/config/locales/simple_form.sq.yml index b8404766f3b71d..41ee3d9bd5bcdf 100644 --- a/config/locales/simple_form.sq.yml +++ b/config/locales/simple_form.sq.yml @@ -116,6 +116,7 @@ sq: sign_up_requires_approval: Regjistrime të reja do të duan miratimin tuaj severity: Zgjidhni ç’do të ndodhë me kërkesa nga kjo IP rule: + hint: Opsionale. Jepni më tepër hollësi rreth këtij rregulli text: Përshkruani një rregull ose një domosdoshmëri për përdoruesit në këtë shërbyes. Përpiquni të jetë i shkurtër dhe i thjeshtë sessions: otp: 'Jepni kodin dyfaktorësh të prodhuar nga aplikacioni i telefonit tuaj ose përdorni një nga kodet tuaj të rikthimeve:' @@ -299,6 +300,7 @@ sq: patch: Njofto për ndreqje të metash trending_tag: Për gjëra të reja në modë lypset shqyrtim rule: + hint: Informacion shtesë text: Rregull settings: indexable: Përfshi faqe profili në motorë kërkimesh diff --git a/config/locales/simple_form.sr-Latn.yml b/config/locales/simple_form.sr-Latn.yml index 3214a722dfc1ad..13296a04ce9984 100644 --- a/config/locales/simple_form.sr-Latn.yml +++ b/config/locales/simple_form.sr-Latn.yml @@ -116,6 +116,7 @@ sr-Latn: sign_up_requires_approval: Nove registracije će zahtevati Vaše odobrenje severity: Izaberite šta će se desiti sa zahtevima sa ove IP adrese rule: + hint: Opcionalno. Pružite više detalja o pravilu 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:' @@ -299,6 +300,7 @@ sr-Latn: patch: Obavesti o ispravkama grešaka trending_tag: Novi trend treba pregledati rule: + hint: Dodatne informacije text: Pravilo settings: indexable: Uključi stranicu profila u pretraživače diff --git a/config/locales/simple_form.sr.yml b/config/locales/simple_form.sr.yml index 9631efc0531e1b..9820482182cca6 100644 --- a/config/locales/simple_form.sr.yml +++ b/config/locales/simple_form.sr.yml @@ -116,6 +116,7 @@ sr: sign_up_requires_approval: Нове регистрације ће захтевати Ваше одобрење severity: Изаберите шта ће се десити са захтевима са ове IP адресе rule: + hint: Опционално. Пружите више детаља о правилу text: Опишите правило или услов за кориснике на овом серверу. Потрудите се да опис буде кратак и једноставан sessions: otp: 'Унесите двофакторски код са Вашег телефона или користите један од кодова за опоравак:' @@ -299,6 +300,7 @@ sr: patch: Обавести о исправкама грешака trending_tag: Нови тренд треба прегледати rule: + hint: Додатне информације text: Правило settings: indexable: Укључи страницу профила у претраживаче diff --git a/config/locales/simple_form.sv.yml b/config/locales/simple_form.sv.yml index 02806e711fc7d3..c3b8625c8eed2c 100644 --- a/config/locales/simple_form.sv.yml +++ b/config/locales/simple_form.sv.yml @@ -299,6 +299,7 @@ sv: patch: Meddela vid buggfix-uppdateringar trending_tag: En ny trend kräver granskning rule: + hint: Ytterligare information text: Regel settings: indexable: Inkludera profilsidan i sökmotorer diff --git a/config/locales/simple_form.th.yml b/config/locales/simple_form.th.yml index 259bb000991291..b41cf0bea68fcb 100644 --- a/config/locales/simple_form.th.yml +++ b/config/locales/simple_form.th.yml @@ -116,6 +116,7 @@ th: sign_up_requires_approval: การลงทะเบียนใหม่จะต้องการการอนุมัติของคุณ severity: เลือกสิ่งที่จะเกิดขึ้นกับคำขอจาก IP นี้ rule: + hint: ไม่จำเป็น ให้รายละเอียดเพิ่มเติมเกี่ยวกับกฎ text: อธิบายกฎหรือข้อกำหนดสำหรับผู้ใช้ในเซิร์ฟเวอร์นี้ พยายามทำให้กฎหรือข้อกำหนดสั้นและเรียบง่าย sessions: otp: 'ป้อนรหัสสองปัจจัยที่สร้างโดยแอปในโทรศัพท์ของคุณหรือใช้หนึ่งในรหัสกู้คืนของคุณ:' @@ -299,6 +300,7 @@ th: patch: แจ้งเตือนการอัปเดตการแก้ไขข้อบกพร่อง trending_tag: แนวโน้มใหม่ต้องการการตรวจทาน rule: + hint: ข้อมูลเพิ่มเติม text: กฎ settings: indexable: รวมหน้าโปรไฟล์ในเครื่องมือค้นหา diff --git a/config/locales/simple_form.tr.yml b/config/locales/simple_form.tr.yml index cc644d4df4bfe6..16c23caeb0bd59 100644 --- a/config/locales/simple_form.tr.yml +++ b/config/locales/simple_form.tr.yml @@ -116,6 +116,7 @@ tr: sign_up_requires_approval: Yeni kayıt onayınızı gerektirir severity: Bu IP'den gelen isteklere ne olacağını seçin rule: + hint: İsteğe bağlı. Kural hakkında daha fazla ayrıntı verin text: Bu sunucu üzerindeki kullanıcılar için bir kural veya gereksinimi tanımlayın. Kuralı kısa ve yalın tutmaya çalışın sessions: otp: 'Telefonunuzdaki two-factor kodunuzu giriniz veya kurtarma kodlarınızdan birini giriniz:' @@ -299,6 +300,7 @@ tr: patch: Yama güncellemelerini bildir trending_tag: Yeni eğilimin gözden geçmesi gerekiyor rule: + hint: Ek bilgi text: Kural settings: indexable: Arama motorları profil sayfasını içersin diff --git a/config/locales/simple_form.uk.yml b/config/locales/simple_form.uk.yml index a85684a0f9eec3..db8e4b4d27713e 100644 --- a/config/locales/simple_form.uk.yml +++ b/config/locales/simple_form.uk.yml @@ -119,6 +119,7 @@ uk: sign_up_requires_approval: Нові реєстрації потребуватимуть затвердження вами severity: Виберіть, що буде відбуватися з запитами з цієї IP rule: + hint: Необов'язково. Докладніше про правило text: Опис правила або вимоги для користувачів на цьому сервері. Спробуйте зробити його коротким і простим sessions: otp: 'Введіть код двофакторної автентифікації, згенерований вашим мобільним застосунком, або скористайтеся одним з ваших кодів відновлення:' @@ -302,6 +303,7 @@ uk: patch: Сповіщати про оновлення з виправленнями trending_tag: Нове популярне вимагає розгляду rule: + hint: Додаткова інформація text: Правило settings: indexable: Включити сторінку профілю в пошукові системи diff --git a/config/locales/simple_form.vi.yml b/config/locales/simple_form.vi.yml index ae0a5ea560cb5f..f4d9f526b6988a 100644 --- a/config/locales/simple_form.vi.yml +++ b/config/locales/simple_form.vi.yml @@ -116,6 +116,7 @@ vi: sign_up_requires_approval: Bạn sẽ phê duyệt những đăng ký mới từ IP này severity: Chọn hành động nếu nhận được yêu cầu từ IP này rule: + hint: Tùy chọn. Cung cấp chi tiết hơn về nội quy text: Mô tả một nội quy bắt buộc trên máy chủ này. Nên để ngắn và đơn giản sessions: otp: 'Nhập mã xác minh 2 bước được tạo bởi ứng dụng điện thoại của bạn hoặc dùng một trong các mã khôi phục của bạn:' @@ -299,6 +300,7 @@ vi: patch: Thông báo bản cập sửa lỗi trending_tag: Phê duyệt nội dung nổi bật mới rule: + hint: Thông tin thêm text: Nội quy settings: indexable: Cho phép hiện hồ sơ trong công cụ tìm kiếm diff --git a/config/locales/simple_form.zh-CN.yml b/config/locales/simple_form.zh-CN.yml index d0ca529a4df376..7f2eee023cfddc 100644 --- a/config/locales/simple_form.zh-CN.yml +++ b/config/locales/simple_form.zh-CN.yml @@ -116,6 +116,7 @@ zh-CN: sign_up_requires_approval: 新注册需要你的批准 severity: 选择如何处理来自此 IP 的请求。 rule: + hint: 选填。提供关于这条规则的更多详情 text: 描述这个服务器上的用户规则或要求。尽量确保简洁、清晰易懂 sessions: otp: 输入你手机应用上生成的双因素认证代码,或者任意一个恢复代码: @@ -299,6 +300,7 @@ zh-CN: patch: 通知错误修复更新 trending_tag: 新热门待审核 rule: + hint: 补充信息 text: 规则 settings: indexable: 允许搜索引擎索引个人资料页面 diff --git a/config/locales/simple_form.zh-HK.yml b/config/locales/simple_form.zh-HK.yml index 6fa052082eaa4f..f6e40720feb1b3 100644 --- a/config/locales/simple_form.zh-HK.yml +++ b/config/locales/simple_form.zh-HK.yml @@ -39,12 +39,14 @@ zh-HK: text: 你每次只能提出一次申訴 defaults: autofollow: 通過邀請網址註冊的用戶將會自動關注你 + avatar: WEBP、PNG、GIF 或 JPG 格式圖片,最大為 %{size},並將縮小至 %{dimensions} px bot: 這個帳號是機械人,所做的事情可能沒有經人為監察 context: 過濾器應該套用的一項或多項條件 current_password: 基於保安緣故,請輸入目前帳號的密碼 current_username: 請輸入目前帳戶的使用者名稱以確認 digest: 僅在你長時間未登錄,且收到了私信時發送 email: 你將收到一封確認電郵 + header: WEBP、PNG、GIF 或 JPG 格式圖片,最大為 %{size},並將縮小至 %{dimensions} px inbox_url: 在你想要使用的中繼站首頁,複製它的網址 irreversible: 文章過濾是不可還原的,即使日後過濾器被移除,也無法重新看到被它濾走的文章 locale: 使用者介面、電郵和通知的語言 @@ -114,6 +116,7 @@ zh-HK: sign_up_requires_approval: 新登記申請正等候你審批 severity: 請設定伺服器將如何處理來自這個 IP 位址的請求 rule: + hint: 選填。提供有關規則的更多細節 text: 請描述在此伺服器上用戶需要遵守的規則或要求。請盡量保持簡短易明。 sessions: otp: 輸入你手機上生成的雙重認證碼,或者任意一個恢復代碼: @@ -297,6 +300,7 @@ zh-HK: patch: 通知除錯更新 trending_tag: 新趨勢須經過審核 rule: + hint: 其他資訊 text: 規則 settings: indexable: 在搜尋引擎中顯示個人檔案 diff --git a/config/locales/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml index fe938712e3e9b0..69a2794e6c406f 100644 --- a/config/locales/simple_form.zh-TW.yml +++ b/config/locales/simple_form.zh-TW.yml @@ -8,7 +8,7 @@ zh-TW: fields: 烘培雞、自我認同代稱、年齡,及任何您想分享的。 indexable: 您的公開嘟文可能會顯示於 Mastodon 之搜尋結果中。曾與您嘟文互動過的人可能無論如何都能搜尋它們。 note: '您可以 @mention 其他人或者使用 #主題標籤。' - show_collections: 人們將能瀏覽您跟隨中及跟隨者帳號。您所跟隨之人能得知您正在跟隨其帳號。 + show_collections: 人們將能瀏覽您跟隨中及跟隨者帳號。您所跟隨之使用者能得知您正在跟隨其帳號。 unlocked: 人們將無需額外請求您的同意便能跟隨您的帳號。取消勾選以審查跟隨請求並選擇是否同意或拒絕新跟隨者。 account_alias: acct: 指定要移動的帳號之「使用者名稱@網域名稱」 @@ -16,7 +16,7 @@ zh-TW: acct: 指定欲移動至帳號之「使用者名稱@網域名稱」 account_warning_preset: text: 您可使用嘟文語法,例如網址、「#」標籤與提及功能 - title: 可選。不會向收件者顯示 + title: 可選的。不會向收件者顯示 admin_account_action: include_statuses: 使用者可看到導致檢舉或警告的嘟文 send_email_notification: 使用者將收到帳號發生之事情的解釋 @@ -116,6 +116,7 @@ zh-TW: sign_up_requires_approval: 新註冊申請需要先經過您的審核 severity: 請選擇將如何處理來自這個 IP 位址的請求 rule: + hint: 可選的。提供關於此規則更多細節 text: 說明使用者於此伺服器上需遵守的規則或條款。試著維持各項條款簡短而明瞭。 sessions: otp: 請輸入產生自您手機 App 的兩階段驗證碼,或輸入其中一個備用驗證碼: @@ -299,6 +300,7 @@ zh-TW: patch: 通知錯誤修正更新 trending_tag: 新熱門趨勢需要審核 rule: + hint: 其他資訊 text: 規則 settings: indexable: 於搜尋引擎中包含個人檔案頁面 diff --git a/config/locales/sl.yml b/config/locales/sl.yml index 103e16a1f5fb73..3f2b65b76abfe6 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -1761,8 +1761,6 @@ sl: two: "%{count} glasova" vote: Glasuj show_more: Pokaži več - show_newer: Pokaži novejše - show_older: Pokaži starejše show_thread: Pokaži nit title: "%{name}: »%{quote}«" visibilities: @@ -1931,7 +1929,6 @@ sl: follows_subtitle: Sledite dobro znanim računom follows_title: Komu slediti follows_view_more: Pokaži več oseb za sledenje - hashtags_recent_count: "%{people} oseb v zadnjih %{days} dneh" hashtags_subtitle: Raziščite, kaj je v trendu zadnja dva dni hashtags_title: Ključniki v trendu hashtags_view_more: Pokaži več ključnikov v trendu diff --git a/config/locales/sq.yml b/config/locales/sq.yml index ecf79da51a4a37..759f995470991d 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -1693,8 +1693,6 @@ sq: other: "%{count} vota" vote: Votë show_more: Shfaq më tepër - show_newer: Shfaq më të reja - show_older: Shfaq më të vjetra show_thread: Shfaq rrjedhën title: '%{name}: "%{quote}"' visibilities: @@ -1843,6 +1841,7 @@ sq: apps_step: Shkarkoni aplikacionet tona zyrtare. apps_title: Aplikacione Mastodon checklist_subtitle: 'Le t’ju vëmë në udhë drejt këtij horizonti të ri rrjetesh shoqërorë:' + checklist_title: Listë hapash mirëseardhjeje edit_profile_action: Personalizojeni edit_profile_step: Përforconi ndërveprimet tuaja, duke pasur një profil shterues. edit_profile_title: Personalizoni profilin tuaj @@ -1862,7 +1861,9 @@ sq: follows_subtitle: Ndiqni llogari të mirënjohura follows_title: Cilët të ndiqen follows_view_more: Shihni më tepër vetë për ndjekje - hashtags_recent_count: "%{people} vetë në %{days} ditët e shkuara" + hashtags_recent_count: + one: "%{people} person në 2 ditët e shkuara" + other: "%{people} vetë në 2 ditët e shkuara" hashtags_subtitle: Eksploroni ç’është në modëë që prej 2 ditëve të fundit hashtags_title: Hashtag-ë në modë hashtags_view_more: Shihni më tepër hashtagë në modë diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml index c2f9295f1cf867..74a5e0b1c07ea0 100644 --- a/config/locales/sr-Latn.yml +++ b/config/locales/sr-Latn.yml @@ -1729,8 +1729,6 @@ sr-Latn: 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 title: "%{name}: „%{quote}”" visibilities: @@ -1899,7 +1897,6 @@ sr-Latn: follows_subtitle: Pratite dobro poznate naloge follows_title: Koga pratiti follows_view_more: Pogledajte još ljudi za praćenje - hashtags_recent_count: "%{people} ljudi u prošlih %{days} dana" hashtags_subtitle: Istražite šta je u trendu u poslednja 2 dana hashtags_title: Heš oznake u trendu hashtags_view_more: Pogledajte još heš oznaka u trendu diff --git a/config/locales/sr.yml b/config/locales/sr.yml index 19b6b66dd8800d..9e7dd9c35c62c0 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -1729,8 +1729,6 @@ sr: other: "%{count} гласова" vote: Гласајте show_more: Прикажи још - show_newer: Никад не приказуј - show_older: Прикажи старије show_thread: Прикажи низ title: "%{name}: „%{quote}”" visibilities: @@ -1899,7 +1897,10 @@ sr: follows_subtitle: Пратите добро познате налоге follows_title: Кога пратити follows_view_more: Погледајте још људи за праћење - hashtags_recent_count: "%{people} људи у прошлих %{days} дана" + hashtags_recent_count: + few: "%{people} особе у последња 2 дана" + one: "%{people} особа у последња 2 дана" + other: "%{people} особа у последња 2 дана" hashtags_subtitle: Истражите шта је у тренду у последња 2 дана hashtags_title: Хеш ознаке у тренду hashtags_view_more: Погледајте још хеш ознака у тренду diff --git a/config/locales/sv.yml b/config/locales/sv.yml index a40808eed60f89..d282d9222204cb 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -1697,8 +1697,6 @@ sv: other: "%{count} röster" vote: Rösta show_more: Visa mer - show_newer: Visa nyare - show_older: Visa äldre show_thread: Visa tråd title: '%{name}: "%{quote}"' visibilities: @@ -1867,7 +1865,9 @@ sv: follows_subtitle: Följ välkända konton follows_title: Rekommenderade profiler follows_view_more: Visa fler personer att följa - hashtags_recent_count: "%{people} personer under de senaste %{days} dagarna" + hashtags_recent_count: + one: "%{people} personer de senaste 2 dagarna" + other: "%{people} personer under de senaste 2 dagarna" hashtags_subtitle: Utforska vad som har trendat de senaste 2 dagarna hashtags_title: Trendande hashtaggar hashtags_view_more: Visa fler trendande hashtaggar diff --git a/config/locales/th.yml b/config/locales/th.yml index 1b4ce0d6abef74..67d2b94793d936 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -1665,8 +1665,6 @@ th: other: "%{count} การลงคะแนน" vote: ลงคะแนน show_more: แสดงเพิ่มเติม - show_newer: แสดงที่ใหม่กว่า - show_older: แสดงที่เก่ากว่า show_thread: แสดงกระทู้ title: '%{name}: "%{quote}"' visibilities: @@ -1827,7 +1825,8 @@ th: follows_subtitle: ติดตามบัญชีที่มีชื่อเสียง follows_title: ติดตามใครดี follows_view_more: ดูผู้คนที่จะติดตามเพิ่มเติม - hashtags_recent_count: "%{people} คนใน %{days} วันที่ผ่านมา" + hashtags_recent_count: + other: "%{people} คนใน 2 วันที่ผ่านมา" hashtags_subtitle: สำรวจสิ่งที่กำลังนิยมตั้งแต่ 2 วันที่ผ่านมา hashtags_title: แฮชแท็กที่กำลังนิยม hashtags_view_more: ดูแฮชแท็กที่กำลังนิยมเพิ่มเติม diff --git a/config/locales/tr.yml b/config/locales/tr.yml index 58436690ca362a..a942e5b3947f4f 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -1697,8 +1697,6 @@ tr: other: "%{count} oylar" vote: Oy Ver show_more: Daha fazlasını göster - show_newer: Yenileri göster - show_older: Eskileri göster show_thread: Konuyu göster title: '%{name}: "%{quote}"' visibilities: @@ -1867,7 +1865,9 @@ tr: follows_subtitle: Tanınmış hesapları takip edin follows_title: Takip edebileceklerin follows_view_more: Takip edecek daha fazla kişi görüntüleyin - hashtags_recent_count: "%{days} günde %{people} kişi" + hashtags_recent_count: + one: Son 2 günde %{people} kişi + other: Son 2 günde %{people} kişi hashtags_subtitle: Son 2 günde öne çıkanları keşfedin hashtags_title: Öne çıkan etiketler hashtags_view_more: Daha fazla öne çıkan etiket görüntüleyin diff --git a/config/locales/uk.yml b/config/locales/uk.yml index eb3ca2a4ae153b..9c343489eb445f 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -1761,8 +1761,6 @@ uk: other: "%{count} голоси" vote: Проголосувати show_more: Розгорнути - show_newer: Показати новіші - show_older: Показати давніші show_thread: Відкрити обговорення title: '%{name}: "%{quote}"' visibilities: diff --git a/config/locales/vi.yml b/config/locales/vi.yml index 3ceaad92efa939..bb3bd27b507b46 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -1665,8 +1665,6 @@ vi: other: "%{count} người bình chọn" vote: Bình chọn show_more: Đọc thêm - show_newer: Mới hơn - show_older: Cũ hơn show_thread: Nội dung gốc title: '%{name}: "%{quote}"' visibilities: @@ -1835,7 +1833,6 @@ vi: follows_subtitle: Theo dõi những người thú vị follows_title: Gợi ý theo dõi follows_view_more: Xem thêm những người khác - hashtags_recent_count: "%{people} người dùng trong %{days} ngày qua" hashtags_subtitle: Khám phá xu hướng 2 ngày qua hashtags_title: Hashtag xu hướng hashtags_view_more: Xem thêm hashtag xu hướng diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 6296a4bb7cbc1b..2d1d82b3064c3b 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -1665,8 +1665,6 @@ zh-CN: other: "%{count} 票" vote: 投票 show_more: 显示更多 - show_newer: 显示更新内容 - show_older: 显示更早内容 show_thread: 显示全部对话 title: "%{name}:“%{quote}”" visibilities: @@ -1835,7 +1833,8 @@ zh-CN: follows_subtitle: 关注知名账户 follows_title: 推荐关注 follows_view_more: 查看更多可关注的人 - hashtags_recent_count: 在过去的 %{days} 天中有 %{people} 人 + hashtags_recent_count: + other: 过去2天内有 %{people} 人 hashtags_subtitle: 探索过去2天以来的热门内容 hashtags_title: 热门话题标签 hashtags_view_more: 查看更多热门话题标签 diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml index 0d3e109b19733e..0bb362eadf65d3 100644 --- a/config/locales/zh-HK.yml +++ b/config/locales/zh-HK.yml @@ -753,6 +753,7 @@ zh-HK: disabled: 給沒有人 users: 所有已登入的帳號 registrations: + moderation_recommandation: 在向所有人開放註冊之前,請確保擁有一個準備充足且反應迅速的審核團隊! preamble: 控制誰可在你的伺服器上建立帳號。 title: 註冊 registrations_mode: @@ -760,6 +761,7 @@ zh-HK: approved: 註冊需要核准 none: 沒有人可註冊 open: 任何人皆能註冊 + warning_hint: 我們建議你使用「需要審核註冊」的設定,除非你確信審核團隊能夠及時處理垃圾訊息和惡意註冊。 security: authorized_fetch: 要求跨站驗證 authorized_fetch_hint: 要求跨站驗證可更嚴謹地執行使用者級及伺服器級的封鎖。然而,這會犧牲性能,降低你回覆的觸及範圍,跨站服務亦可能出現兼容問題。此外,這並無法阻止他人蓄意擷取你的公開帖文和帳號。 @@ -948,6 +950,9 @@ zh-HK: title: Webhooks webhook: Webhook admin_mailer: + auto_close_registrations: + body: 由於管理員最近較少活動,為防止 %{instance} 被惡意利用,註冊流程已自動改為手動審核。你可以隨時將它切換回開放註冊。 + subject: "%{instance} 上的註冊已自動切換為需要審核批准" new_appeal: actions: delete_statuses: 刪除他們的帖文 @@ -1660,8 +1665,6 @@ zh-HK: other: "%{count} 票" vote: 投票 show_more: 顯示更多 - show_newer: 顯示較新嘟文 - show_older: 顯示較舊嘟文 show_thread: 顯示討論串 title: "%{name}:「%{quote}」" visibilities: @@ -1805,7 +1808,43 @@ zh-HK: silence: 賬戶已被限制 suspend: 帳號已停用 welcome: + apps_android_action: 從 Google Play 下載 + apps_ios_action: 從 App Store 下載 + apps_step: 下載官方應用程式。 + apps_title: Mastodon 應用程式 + checklist_subtitle: 讓我們帶你進入全新的社交領域: + checklist_title: 歡迎清單 + edit_profile_action: 自訂 + edit_profile_step: 完善個人檔案來促進互動。 + edit_profile_title: 自訂你的個人檔案。 explanation: 下面是幾個小貼士,希望它們能幫到你 + feature_action: 了解更多 + feature_audience: 在 Mastodon 上,無需仲介,你也可以管理受眾。將 Mastodon 部署在自己的基礎架構上,既可以追蹤來自其他 Mastodon 伺服器上的人,也可以被他們追蹤。完全不受他人控制,一切由你掌控。 + feature_audience_title: 自信地建立受眾 + feature_control: 由你決定首頁時間軸的內容,不讓演算法和廣告干擾你!你可以使用同一帳號追蹤 Mastodon 伺服器上的使用者,並按時序瀏覽帖文,打造你專屬的網絡世界,讓這角落更貼近你的喜好。 + feature_control_title: 掌控自己的時間軸 + feature_creativity: Mastodon 囊括多元格式,助你盡情表達自我:干台支援音訊、影片、圖片帖文、無障礙描述、投票、內容警告,還有動態頭像、自訂表情符號、縮圖裁剪控制等功能。無論你想發佈藝術作品、音樂還是 podcast,Mastodon 都是你的理想平台。 + feature_creativity_title: 無與倫比的創意 + feature_moderation: 在 Mastodon,一切由你掌控。每台伺服器都能各自制訂並實施自身守則,而非像企業社交媒體那樣由上而下。這讓 Mastodon 能夠靈活地滿足不同群體的需要。你可以加入你認同其規則的伺服器,也可以自行架設。 + feature_moderation_title: 以應有的方式管理社群 + follow_action: 追蹤 + follow_step: 追蹤有趣的人正是 Mastodon 的核心所在。 + follow_title: 自訂你的首頁時間軸 + follows_subtitle: 追蹤知名帳號 + follows_title: 追蹤對象 + follows_view_more: 查看更多追蹤對象 + hashtags_recent_count: + other: 過去兩天內有 %{people} 人 + hashtags_subtitle: 查看過去兩天的流行話題 + hashtags_title: 熱門標籤 + hashtags_view_more: 查看更多熱門標籤 + post_action: 撰寫 + post_step: 用文字、相片、影片或投票跟大家打個招呼吧。 + post_title: 發表你的第一則帖文 + share_action: 分享 + share_step: 讓你的朋友知道如何在 Mastodon 上找到你。 + share_title: 分享你的 Mastodon 個人檔案 + sign_in_action: 登入 subject: 歡迎來到 Mastodon (萬象) title: 歡迎 %{name} 加入! users: diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index d8952edec91f66..4c450f3c1bf283 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -397,7 +397,7 @@ zh-TW: create: 新增封鎖 hint: 站點封鎖動作並不會阻止帳號紀錄被新增至資料庫,但會自動回溯性地對那些帳號套用特定管理設定。 severity: - desc_html: "「靜音」令該站點下使用者的嘟文,設定為只對跟隨者顯示,沒有跟隨的人會看不到。「停權」會刪除將該站點下使用者的嘟文、媒體檔案與個人檔案。「」則會拒絕接收來自該站點的媒體檔案。" + desc_html: "「靜音」令該站點下使用者的嘟文,設定為只對跟隨者顯示,沒有跟隨之使用者會看不到。「停權」會刪除將該站點下使用者的嘟文、媒體檔案與個人檔案。「」則會拒絕接收來自該站點的媒體檔案。" noop: 無 silence: 靜音 suspend: 停權 @@ -1667,8 +1667,6 @@ zh-TW: other: "%{count} 票" vote: 投票 show_more: 顯示更多 - show_newer: 顯示較新嘟文 - show_older: 顯示較舊嘟文 show_thread: 顯示討論串 title: "%{name}:「%{quote}」" visibilities: @@ -1837,7 +1835,8 @@ zh-TW: follows_subtitle: 跟隨家喻戶曉的熱門帳號 follows_title: 推薦跟隨帳號 follows_view_more: 檢視更多人以跟隨 - hashtags_recent_count: 於過去 %{days} 天 %{people} 人 + hashtags_recent_count: + other: 於過去二天 %{people} 人 hashtags_subtitle: 探索過去兩天內的熱門主題標籤 hashtags_title: 熱門主題標籤 hashtags_view_more: 檢視更多熱門主題標籤 diff --git a/config/routes.rb b/config/routes.rb index 26aa596fee41ad..58ae926ce4bb4c 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -84,8 +84,10 @@ def redirect_with_vary(path) get 'remote_interaction_helper', to: 'remote_interaction_helper#index' resource :instance_actor, path: 'actor', only: [:show] do - resource :inbox, only: [:create], module: :activitypub - resource :outbox, only: [:show], module: :activitypub + scope module: :activitypub do + resource :inbox, only: [:create] + resource :outbox, only: [:show] + end end get '/invite/:invite_code', constraints: ->(req) { req.format == :json }, to: 'api/v1/invites#show' @@ -134,11 +136,13 @@ def redirect_with_vary(path) resources :followers, only: [:index], controller: :follower_accounts resources :following, only: [:index], controller: :following_accounts - resource :outbox, only: [:show], module: :activitypub - resource :inbox, only: [:create], module: :activitypub - resource :claim, only: [:create], module: :activitypub - resources :collections, only: [:show], module: :activitypub - resource :followers_synchronization, only: [:show], module: :activitypub + scope module: :activitypub do + resource :outbox, only: [:show] + resource :inbox, only: [:create] + resource :claim, only: [:create] + resources :collections, only: [:show] + resource :followers_synchronization, only: [:show] + end end resource :inbox, only: [:create], module: :activitypub @@ -147,10 +151,12 @@ def redirect_with_vary(path) get '/:encoded_at(*path)', to: redirect("/@%{path}"), constraints: { encoded_at: /%40/ } constraints(username: %r{[^@/.]+}) do - get '/@:username', to: 'accounts#show', as: :short_account - get '/@:username/with_replies', to: 'accounts#show', as: :short_account_with_replies - get '/@:username/media', to: 'accounts#show', as: :short_account_media - get '/@:username/tagged/:tag', to: 'accounts#show', as: :short_account_tag + with_options to: 'accounts#show' do + get '/@:username', as: :short_account + get '/@:username/with_replies', as: :short_account_with_replies + get '/@:username/media', as: :short_account_media + get '/@:username/tagged/:tag', as: :short_account_tag + end end constraints(account_username: %r{[^@/.]+}) do diff --git a/config/routes/api.rb b/config/routes/api.rb index 62e2c87d51895d..85021f75988466 100644 --- a/config/routes/api.rb +++ b/config/routes/api.rb @@ -137,14 +137,16 @@ end resource :instance, only: [:show] do - resources :peers, only: [:index], controller: 'instances/peers' - resources :rules, only: [:index], controller: 'instances/rules' - 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 :languages, only: [:show], controller: 'instances/languages' - resource :activity, only: [:show], controller: 'instances/activity' + scope module: :instances do + resources :peers, only: [:index] + resources :rules, only: [:index] + resources :domain_blocks, only: [:index] + resource :privacy_policy, only: [:show] + resource :extended_description, only: [:show] + resource :translation_languages, only: [:show] + resource :languages, only: [:show] + resource :activity, only: [:show], controller: :activity + end end namespace :peers do @@ -193,15 +195,17 @@ end resources :accounts, only: [:create, :show] do - resources :statuses, only: :index, controller: 'accounts/statuses' - resources :followers, only: :index, controller: 'accounts/follower_accounts' - resources :following, only: :index, controller: 'accounts/following_accounts' - resources :lists, only: :index, controller: 'accounts/lists' - resources :antennas, only: :index, controller: 'accounts/antennas' - resources :exclude_antennas, only: :index, controller: 'accounts/exclude_antennas' - resources :circles, only: :index, controller: 'accounts/circles' - resources :identity_proofs, only: :index, controller: 'accounts/identity_proofs' - resources :featured_tags, only: :index, controller: 'accounts/featured_tags' + scope module: :accounts do + resources :statuses, only: :index + resources :followers, only: :index, controller: :follower_accounts + resources :following, only: :index, controller: :following_accounts + resources :lists, only: :index + resources :antennas, only: :index + resources :exclude_antennas, only: :index + resources :circlues, only: :index + resources :identity_proofs, only: :index + resources :featured_tags, only: :index + end member do post :follow diff --git a/lib/mastodon/cli/accounts.rb b/lib/mastodon/cli/accounts.rb index b5308e2b7625ac..d3b7ebe5805709 100644 --- a/lib/mastodon/cli/accounts.rb +++ b/lib/mastodon/cli/accounts.rb @@ -295,7 +295,7 @@ def cull(*domains) skip_threshold = 7.days.ago skip_domains = Concurrent::Set.new - query = Account.remote.where(protocol: :activitypub) + query = Account.remote.activitypub query = query.where(domain: domains) unless domains.empty? processed, culled = parallelize_with_progress(query.partitioned) do |account| diff --git a/lib/mastodon/cli/ip_blocks.rb b/lib/mastodon/cli/ip_blocks.rb index 100bf7bada587a..3c5fdb275c5105 100644 --- a/lib/mastodon/cli/ip_blocks.rb +++ b/lib/mastodon/cli/ip_blocks.rb @@ -105,7 +105,7 @@ def remove(*addresses) tools. Only blocks with no_access severity are returned. LONG_DESC def export - IpBlock.where(severity: :no_access).find_each do |ip_block| + IpBlock.severity_no_access.find_each do |ip_block| case options[:format] when 'nginx' say "deny #{ip_block.ip}/#{ip_block.ip.prefix};" diff --git a/lib/mastodon/cli/media.rb b/lib/mastodon/cli/media.rb index ac8f219807284c..e26b4f24afa272 100644 --- a/lib/mastodon/cli/media.rb +++ b/lib/mastodon/cli/media.rb @@ -277,7 +277,7 @@ def refresh desc 'usage', 'Calculate disk space consumed by Mastodon' def usage - say("Attachments:\t#{number_to_human_size(MediaAttachment.sum(Arel.sql('COALESCE(file_file_size, 0) + COALESCE(thumbnail_file_size, 0)')))} (#{number_to_human_size(MediaAttachment.where(account: Account.local).sum(Arel.sql('COALESCE(file_file_size, 0) + COALESCE(thumbnail_file_size, 0)')))} local)") + say("Attachments:\t#{number_to_human_size(media_attachment_storage_size)} (#{number_to_human_size(local_media_attachment_storage_size)} local)") say("Custom emoji:\t#{number_to_human_size(CustomEmoji.sum(:image_file_size))} (#{number_to_human_size(CustomEmoji.local.sum(:image_file_size))} local)") say("Preview cards:\t#{number_to_human_size(PreviewCard.sum(:image_file_size))}") say("Avatars:\t#{number_to_human_size(Account.sum(:avatar_file_size))} (#{number_to_human_size(Account.local.sum(:avatar_file_size))} local)") @@ -317,6 +317,22 @@ def lookup(url) private + def media_attachment_storage_size + MediaAttachment.sum(file_and_thumbnail_size_sql) + end + + def local_media_attachment_storage_size + MediaAttachment.where(account: Account.local).sum(file_and_thumbnail_size_sql) + end + + def file_and_thumbnail_size_sql + Arel.sql( + <<~SQL.squish + COALESCE(file_file_size, 0) + COALESCE(thumbnail_file_size, 0) + SQL + ) + end + PRELOAD_MODEL_WHITELIST = %w( Account Backup diff --git a/lib/mastodon/cli/search.rb b/lib/mastodon/cli/search.rb index 7afc98c430c3d6..1b428c0125a501 100644 --- a/lib/mastodon/cli/search.rb +++ b/lib/mastodon/cli/search.rb @@ -103,6 +103,14 @@ def deploy progress.finish say("Indexed #{added} records, de-indexed #{removed}", :green, true) + rescue Elasticsearch::Transport::Transport::ServerError => e + fail_with_message <<~ERROR + There was an issue connecting to the search server. Make sure the + server is configured and running correctly, and that the environment + variable settings match what the server is expecting. + + #{e.message} + ERROR end private diff --git a/package.json b/package.json index c265bb27e015fc..92e96c10e63b4d 100644 --- a/package.json +++ b/package.json @@ -54,7 +54,7 @@ "@reduxjs/toolkit": "^2.0.1", "@svgr/webpack": "^5.5.0", "arrow-key-navigation": "^1.2.0", - "async-mutex": "^0.4.0", + "async-mutex": "^0.5.0", "autoprefixer": "^10.4.14", "axios": "^1.4.0", "babel-loader": "^8.3.0", @@ -162,14 +162,11 @@ "@types/react-helmet": "^6.1.6", "@types/react-immutable-proptypes": "^2.1.0", "@types/react-motion": "^0.0.40", - "@types/react-overlays": "^3.1.0", "@types/react-router": "^5.1.20", "@types/react-router-dom": "^5.3.3", - "@types/react-select": "^5.0.1", "@types/react-sparklines": "^1.7.2", "@types/react-swipeable-views": "^0.13.1", "@types/react-test-renderer": "^18.0.0", - "@types/react-textarea-autosize": "^8.0.0", "@types/react-toggle": "^4.0.3", "@types/redux-immutable": "^4.0.3", "@types/requestidlecallback": "^0.3.5", diff --git a/spec/controllers/api/base_controller_spec.rb b/spec/controllers/api/base_controller_spec.rb index f8e014be2feae0..659d55f8012d0e 100644 --- a/spec/controllers/api/base_controller_spec.rb +++ b/spec/controllers/api/base_controller_spec.rb @@ -3,10 +3,6 @@ require 'rails_helper' describe Api::BaseController do - before do - stub_const('FakeService', Class.new) - end - controller do def success head 200 @@ -72,36 +68,4 @@ def failure expect(response).to have_http_status(403) end end - - describe 'error handling' do - before do - routes.draw { get 'failure' => 'api/base#failure' } - end - - { - ActiveRecord::RecordInvalid => 422, - ActiveRecord::RecordNotFound => 404, - ActiveRecord::RecordNotUnique => 422, - Date::Error => 422, - HTTP::Error => 503, - Mastodon::InvalidParameterError => 400, - Mastodon::NotPermittedError => 403, - Mastodon::RaceConditionError => 503, - Mastodon::RateLimitExceededError => 429, - Mastodon::UnexpectedResponseError => 503, - Mastodon::ValidationError => 422, - OpenSSL::SSL::SSLError => 503, - Seahorse::Client::NetworkingError => 503, - Stoplight::Error::RedLight => 503, - }.each do |error, code| - it "Handles error class of #{error}" do - allow(FakeService).to receive(:new).and_raise(error) - - get :failure - - expect(response).to have_http_status(code) - expect(FakeService).to have_received(:new) - end - 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 deleted file mode 100644 index a62fa54e60735e..00000000000000 --- a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb +++ /dev/null @@ -1,105 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' - -describe Api::V1::Accounts::CredentialsController do - render_views - - let(:user) { Fabricate(:user) } - let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) } - - context 'with an oauth token' do - before do - allow(controller).to receive(:doorkeeper_token) { token } - end - - describe 'GET #show' do - let(:scopes) { 'read:accounts' } - - it 'returns http success' do - get :show - expect(response).to have_http_status(200) - end - end - - describe 'PATCH #update' do - let(:scopes) { 'write:accounts' } - - describe 'with valid data' do - before do - allow(ActivityPub::UpdateDistributionWorker).to receive(:perform_async) - - patch :update, params: { - display_name: "Alice Isn't Dead", - note: "Hi!\n\nToot toot!", - avatar: fixture_file_upload('avatar.gif', 'image/gif'), - header: fixture_file_upload('attachment.jpg', 'image/jpeg'), - source: { - privacy: 'unlisted', - sensitive: true, - }, - } - end - - it 'updates account info', :aggregate_failures do - expect(response).to have_http_status(200) - - user.reload - user.account.reload - - expect(user.account.display_name).to eq("Alice Isn't Dead") - expect(user.account.note).to eq("Hi!\n\nToot toot!") - 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 be(true) - - expect(ActivityPub::UpdateDistributionWorker).to have_received(:perform_async).with(user.account_id) - end - end - - describe 'with empty source list' do - before do - patch :update, params: { - display_name: "I'm a cat", - source: {}, - }, as: :json - end - - it 'returns http success' do - expect(response).to have_http_status(200) - end - end - - describe 'with invalid data' do - before do - patch :update, params: { note: 'This is too long. ' * 30 } - end - - it 'returns http unprocessable entity' do - expect(response).to have_http_status(422) - end - end - end - end - - context 'without an oauth token' do - before do - allow(controller).to receive(:doorkeeper_token).and_return(nil) - end - - describe 'GET #show' do - it 'returns http unauthorized' do - get :show - 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(401) - end - end - end -end diff --git a/spec/controllers/concerns/api/error_handling_spec.rb b/spec/controllers/concerns/api/error_handling_spec.rb new file mode 100644 index 00000000000000..9b36fc20a32403 --- /dev/null +++ b/spec/controllers/concerns/api/error_handling_spec.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe Api::ErrorHandling do + before do + stub_const('FakeService', Class.new) + end + + controller(Api::BaseController) do + def failure + FakeService.new + end + end + + describe 'error handling' do + before do + routes.draw { get 'failure' => 'api/base#failure' } + end + + { + ActiveRecord::RecordInvalid => 422, + ActiveRecord::RecordNotFound => 404, + ActiveRecord::RecordNotUnique => 422, + Date::Error => 422, + HTTP::Error => 503, + Mastodon::InvalidParameterError => 400, + Mastodon::NotPermittedError => 403, + Mastodon::RaceConditionError => 503, + Mastodon::RateLimitExceededError => 429, + Mastodon::UnexpectedResponseError => 503, + Mastodon::ValidationError => 422, + OpenSSL::SSL::SSLError => 503, + Seahorse::Client::NetworkingError => 503, + Stoplight::Error::RedLight => 503, + }.each do |error, code| + it "Handles error class of #{error}" do + allow(FakeService) + .to receive(:new) + .and_raise(error) + + get :failure + + expect(response) + .to have_http_status(code) + expect(FakeService) + .to have_received(:new) + end + end + end +end diff --git a/spec/controllers/instance_actors_controller_spec.rb b/spec/controllers/instance_actors_controller_spec.rb index 70aaff9d65b098..42ffb679884e08 100644 --- a/spec/controllers/instance_actors_controller_spec.rb +++ b/spec/controllers/instance_actors_controller_spec.rb @@ -41,6 +41,14 @@ it_behaves_like 'shared behavior' end + + context 'with a suspended instance actor' do + let(:authorized_fetch_mode) { false } + + before { Account.representative.update(suspended_at: 10.days.ago) } + + it_behaves_like 'shared behavior' + end end end end diff --git a/spec/features/oauth_spec.rb b/spec/features/oauth_spec.rb index 70356784d2c831..720c262890d5db 100644 --- a/spec/features/oauth_spec.rb +++ b/spec/features/oauth_spec.rb @@ -61,15 +61,11 @@ expect(page).to have_content(I18n.t('auth.login')) # Failing to log-in presents the form again - fill_in 'user_email', with: email - fill_in 'user_password', with: 'wrong password' - click_on I18n.t('auth.login') + fill_in_auth_details(email, 'wrong password') expect(page).to have_content(I18n.t('auth.login')) # Logging in redirects to an authorization page - fill_in 'user_email', with: email - fill_in 'user_password', with: password - click_on I18n.t('auth.login') + fill_in_auth_details(email, password) expect(page).to have_content(I18n.t('doorkeeper.authorizations.buttons.authorize')) # Upon authorizing, it redirects to the apps' callback URL @@ -88,15 +84,11 @@ expect(page).to have_content(I18n.t('auth.login')) # Failing to log-in presents the form again - fill_in 'user_email', with: email - fill_in 'user_password', with: 'wrong password' - click_on I18n.t('auth.login') + fill_in_auth_details(email, 'wrong password') expect(page).to have_content(I18n.t('auth.login')) # Logging in redirects to an authorization page - fill_in 'user_email', with: email - fill_in 'user_password', with: password - click_on I18n.t('auth.login') + fill_in_auth_details(email, password) expect(page).to have_content(I18n.t('doorkeeper.authorizations.buttons.authorize')) # Upon denying, it redirects to the apps' callback URL @@ -118,25 +110,19 @@ expect(page).to have_content(I18n.t('auth.login')) # Failing to log-in presents the form again - fill_in 'user_email', with: email - fill_in 'user_password', with: 'wrong password' - click_on I18n.t('auth.login') + fill_in_auth_details(email, 'wrong password') expect(page).to have_content(I18n.t('auth.login')) # Logging in redirects to a two-factor authentication page - fill_in 'user_email', with: email - fill_in 'user_password', with: password - click_on I18n.t('auth.login') + fill_in_auth_details(email, password) expect(page).to have_content(I18n.t('simple_form.hints.sessions.otp')) # Filling in an incorrect two-factor authentication code presents the form again - fill_in 'user_otp_attempt', with: 'wrong' - click_on I18n.t('auth.login') + fill_in_otp_details('wrong') expect(page).to have_content(I18n.t('simple_form.hints.sessions.otp')) # Filling in the correct TOTP code redirects to an app authorization page - fill_in 'user_otp_attempt', with: user.current_otp - click_on I18n.t('auth.login') + fill_in_otp_details(user.current_otp) expect(page).to have_content(I18n.t('doorkeeper.authorizations.buttons.authorize')) # Upon authorizing, it redirects to the apps' callback URL @@ -155,25 +141,19 @@ expect(page).to have_content(I18n.t('auth.login')) # Failing to log-in presents the form again - fill_in 'user_email', with: email - fill_in 'user_password', with: 'wrong password' - click_on I18n.t('auth.login') + fill_in_auth_details(email, 'wrong password') expect(page).to have_content(I18n.t('auth.login')) # Logging in redirects to a two-factor authentication page - fill_in 'user_email', with: email - fill_in 'user_password', with: password - click_on I18n.t('auth.login') + fill_in_auth_details(email, password) expect(page).to have_content(I18n.t('simple_form.hints.sessions.otp')) # Filling in an incorrect two-factor authentication code presents the form again - fill_in 'user_otp_attempt', with: 'wrong' - click_on I18n.t('auth.login') + fill_in_otp_details('wrong') expect(page).to have_content(I18n.t('simple_form.hints.sessions.otp')) # Filling in the correct TOTP code redirects to an app authorization page - fill_in 'user_otp_attempt', with: user.current_otp - click_on I18n.t('auth.login') + fill_in_otp_details(user.current_otp) expect(page).to have_content(I18n.t('doorkeeper.authorizations.buttons.authorize')) # Upon denying, it redirects to the apps' callback URL @@ -185,6 +165,19 @@ end end + private + + def fill_in_auth_details(email, password) + fill_in 'user_email', with: email + fill_in 'user_password', with: password + click_on I18n.t('auth.login') + end + + def fill_in_otp_details(value) + fill_in 'user_otp_attempt', with: value + click_on I18n.t('auth.login') + end + # TODO: external auth end end diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb index b2ffb65c909314..35d72c867d82f9 100644 --- a/spec/helpers/application_helper_spec.rb +++ b/spec/helpers/application_helper_spec.rb @@ -3,30 +3,6 @@ require 'rails_helper' describe ApplicationHelper do - describe 'active_nav_class' 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' - end - - it 'returns active when on a current page' do - allow(helper).to receive(:current_page?).with('/foo').and_return(false) - allow(helper).to receive(:current_page?).with('/test').and_return(true) - - result = helper.active_nav_class('/foo', '/test') - 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 '' - end - end - describe 'body_classes' do context 'with a body class string from a controller' do before { helper.extend controller_helpers } @@ -103,36 +79,6 @@ def current_theme = 'default' end end - describe 'show_landing_strip?', :without_verify_partial_doubles do - describe 'when signed in' 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 be false - end - end - - describe 'when signed out' do - before do - allow(helper).to receive(:user_signed_in?).and_return(false) - end - - 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 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 be true - end - end - end - describe 'available_sign_up_path' do context 'when registrations are closed' do before do diff --git a/spec/helpers/statuses_helper_spec.rb b/spec/helpers/statuses_helper_spec.rb index c67e1f3f2b301a..73d7d80e46043f 100644 --- a/spec/helpers/statuses_helper_spec.rb +++ b/spec/helpers/statuses_helper_spec.rb @@ -29,26 +29,6 @@ def status_text_summary(status) 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' - result = helper.link_to_newer(url) - - expect(result).to match('load-more') - expect(result).to match(I18n.t('statuses.show_newer')) - end - end - - describe 'link_to_older' do - it 'returns a link to older content' do - url = 'https://example.com' - result = helper.link_to_older(url) - - expect(result).to match('load-more') - expect(result).to match(I18n.t('statuses.show_older')) - end - end - describe 'fa_visibility_icon' do context 'with a status that is public' do let(:status) { Status.new(visibility: 'public') } diff --git a/spec/lib/activitypub/activity/add_spec.rb b/spec/lib/activitypub/activity/add_spec.rb index ec6df0171666df..c0abd9f39376d4 100644 --- a/spec/lib/activitypub/activity/add_spec.rb +++ b/spec/lib/activitypub/activity/add_spec.rb @@ -50,7 +50,7 @@ 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| # rubocop:disable Lint/UnusedBlockArgument + allow(service_stub).to receive(:call) do |uri, id: true, on_behalf_of: nil, **| expect(uri).to eq 'https://example.com/unknown' expect(id).to be true expect(on_behalf_of&.following?(sender)).to be true @@ -64,7 +64,7 @@ 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| # rubocop:disable Lint/UnusedBlockArgument + allow(service_stub).to receive(:call) do |uri, id: true, on_behalf_of: nil, **| expect(uri).to eq 'https://example.com/unknown' expect(id).to be true expect(on_behalf_of).to be_nil diff --git a/spec/lib/feed_manager_spec.rb b/spec/lib/feed_manager_spec.rb index 51635b5ebe0c7d..065c4207662278 100644 --- a/spec/lib/feed_manager_spec.rb +++ b/spec/lib/feed_manager_spec.rb @@ -11,7 +11,7 @@ end it 'tracks at least as many statuses as reblogs', :skip_stub do - expect(FeedManager::REBLOG_FALLOFF).to be <= FeedManager::MAX_ITEMS + expect(described_class::REBLOG_FALLOFF).to be <= described_class::MAX_ITEMS end describe '#key' do @@ -262,12 +262,12 @@ it 'trims timelines if they will have more than FeedManager::MAX_ITEMS' do account = Fabricate(:account) status = Fabricate(:status) - members = Array.new(FeedManager::MAX_ITEMS) { |count| [count, count] } + members = Array.new(described_class::MAX_ITEMS) { |count| [count, count] } redis.zadd("feed:home:#{account.id}", members) described_class.instance.push_to_home(account, status) - expect(redis.zcard("feed:home:#{account.id}")).to eq FeedManager::MAX_ITEMS + expect(redis.zcard("feed:home:#{account.id}")).to eq described_class::MAX_ITEMS end context 'with reblogs' do @@ -297,7 +297,7 @@ described_class.instance.push_to_home(account, reblogged) # Fill the feed with intervening statuses - FeedManager::REBLOG_FALLOFF.times do + described_class::REBLOG_FALLOFF.times do described_class.instance.push_to_home(account, Fabricate(:status)) end @@ -358,7 +358,7 @@ described_class.instance.push_to_home(account, reblogs.first) # Fill the feed with intervening statuses - FeedManager::REBLOG_FALLOFF.times do + described_class::REBLOG_FALLOFF.times do described_class.instance.push_to_home(account, Fabricate(:status)) end @@ -504,7 +504,7 @@ status = Fabricate(:status, reblog: reblogged) described_class.instance.push_to_home(receiver, reblogged) - FeedManager::REBLOG_FALLOFF.times { described_class.instance.push_to_home(receiver, Fabricate(:status)) } + described_class::REBLOG_FALLOFF.times { described_class.instance.push_to_home(receiver, Fabricate(:status)) } described_class.instance.push_to_home(receiver, status) # The reblogging status should show up under normal conditions. diff --git a/spec/lib/mastodon/cli/domains_spec.rb b/spec/lib/mastodon/cli/domains_spec.rb index 24f341c1247ebe..448e6fe42b34e7 100644 --- a/spec/lib/mastodon/cli/domains_spec.rb +++ b/spec/lib/mastodon/cli/domains_spec.rb @@ -15,6 +15,23 @@ describe '#purge' do let(:action) { :purge } + context 'with invalid limited federation mode argument' do + let(:arguments) { ['example.host'] } + let(:options) { { limited_federation_mode: true } } + + it 'warns about usage and exits' do + expect { subject } + .to raise_error(Thor::Error, /DOMAIN parameter not supported/) + end + end + + context 'without a domains argument' do + it 'warns about usage and exits' do + expect { subject } + .to raise_error(Thor::Error, 'No domain(s) given') + end + end + context 'with accounts from the domain' do let(:domain) { 'host.example' } let!(:account) { Fabricate(:account, domain: domain) } diff --git a/spec/lib/mastodon/cli/search_spec.rb b/spec/lib/mastodon/cli/search_spec.rb index 8cce2c6ee22a96..ed3789c3e7d282 100644 --- a/spec/lib/mastodon/cli/search_spec.rb +++ b/spec/lib/mastodon/cli/search_spec.rb @@ -33,6 +33,17 @@ end end + context 'when server communication raises an error' do + let(:options) { { reset_chewy: true } } + + before { allow(Chewy::Stash::Specification).to receive(:reset!).and_raise(Elasticsearch::Transport::Transport::Errors::InternalServerError) } + + it 'Exits with error message' do + expect { subject } + .to raise_error(Thor::Error, /issue connecting to the search/) + end + end + context 'without options' do before { stub_search_indexes } diff --git a/spec/lib/sanitize/config_spec.rb b/spec/lib/sanitize/config_spec.rb index 550ad1c52b0643..2d8dc2f63be6fb 100644 --- a/spec/lib/sanitize/config_spec.rb +++ b/spec/lib/sanitize/config_spec.rb @@ -4,7 +4,7 @@ describe Sanitize::Config do describe '::MASTODON_STRICT' do - subject { Sanitize::Config::MASTODON_STRICT } + subject { described_class::MASTODON_STRICT } it 'converts h1 to p strong' do expect(Sanitize.fragment('

Foo

', subject)).to eq '

Foo

' diff --git a/spec/lib/signature_parser_spec.rb b/spec/lib/signature_parser_spec.rb index 08e9bea66c6e9e..3f398e8dd0dfa9 100644 --- a/spec/lib/signature_parser_spec.rb +++ b/spec/lib/signature_parser_spec.rb @@ -27,7 +27,7 @@ let(:header) { 'hello this is malformed!' } it 'raises an error' do - expect { subject }.to raise_error(SignatureParser::ParsingError) + expect { subject }.to raise_error(described_class::ParsingError) end end end diff --git a/spec/lib/vacuum/imports_vacuum_spec.rb b/spec/lib/vacuum/imports_vacuum_spec.rb index c712b7b9b26712..3a273d827635ac 100644 --- a/spec/lib/vacuum/imports_vacuum_spec.rb +++ b/spec/lib/vacuum/imports_vacuum_spec.rb @@ -13,7 +13,26 @@ describe '#perform' do it 'cleans up the expected imports' do - expect { subject.perform }.to change { BulkImport.pluck(:id) }.from([old_unconfirmed, new_unconfirmed, recent_ongoing, recent_finished, old_finished].map(&:id)).to([new_unconfirmed, recent_ongoing, recent_finished].map(&:id)) + expect { subject.perform } + .to change { ordered_bulk_imports.pluck(:id) } + .from(original_import_ids) + .to(remaining_import_ids) + end + + def ordered_bulk_imports + BulkImport.order(id: :asc) + end + + def original_import_ids + [old_unconfirmed, new_unconfirmed, recent_ongoing, recent_finished, old_finished].map(&:id) + end + + def vacuumed_import_ids + [old_unconfirmed, old_finished].map(&:id) + end + + def remaining_import_ids + original_import_ids - vacuumed_import_ids end end end diff --git a/spec/lib/webfinger_resource_spec.rb b/spec/lib/webfinger_resource_spec.rb index 0e2bdcb71ad6d9..442f91aad02095 100644 --- a/spec/lib/webfinger_resource_spec.rb +++ b/spec/lib/webfinger_resource_spec.rb @@ -46,7 +46,7 @@ expect do described_class.new(resource).username - end.to raise_error(WebfingerResource::InvalidRequest) + end.to raise_error(described_class::InvalidRequest) end it 'finds the username in a valid https route' do @@ -137,7 +137,7 @@ expect do described_class.new(resource).username - end.to raise_error(WebfingerResource::InvalidRequest) + end.to raise_error(described_class::InvalidRequest) end end end diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb index 8cb5548ca8e4ba..ba8147b5522f5d 100644 --- a/spec/models/account_spec.rb +++ b/spec/models/account_spec.rb @@ -901,7 +901,7 @@ end describe 'MENTION_RE' do - subject { Account::MENTION_RE } + subject { described_class::MENTION_RE } it 'matches usernames in the middle of a sentence' do expect(subject.match('Hello to @alice from me')[1]).to eq 'alice' @@ -1111,7 +1111,7 @@ { username: 'b', domain: 'b' }, ].map(&method(:Fabricate).curry(2).call(:account)) - expect(described_class.where('id > 0').alphabetic).to eq matches + expect(described_class.without_internal.alphabetic).to eq matches end end @@ -1162,7 +1162,7 @@ it 'returns an array of accounts who do not have a domain' do local_account = Fabricate(:account, domain: nil) _account_with_domain = Fabricate(:account, domain: 'example.com') - expect(described_class.where('id > 0').local).to contain_exactly(local_account) + expect(described_class.without_internal.local).to contain_exactly(local_account) end end @@ -1173,14 +1173,14 @@ matches[index] = Fabricate(:account, domain: matches[index]) end - expect(described_class.where('id > 0').partitioned).to match_array(matches) + expect(described_class.without_internal.partitioned).to match_array(matches) end end describe 'recent' do it 'returns a relation of accounts sorted by recent creation' do matches = Array.new(2) { Fabricate(:account) } - expect(described_class.where('id > 0').recent).to match_array(matches) + expect(described_class.without_internal.recent).to match_array(matches) end end diff --git a/spec/models/account_suggestions/friends_of_friends_source_spec.rb b/spec/models/account_suggestions/friends_of_friends_source_spec.rb index 6868d51faf2040..c2f8d0f86c3326 100644 --- a/spec/models/account_suggestions/friends_of_friends_source_spec.rb +++ b/spec/models/account_suggestions/friends_of_friends_source_spec.rb @@ -1,6 +1,100 @@ # frozen_string_literal: true -# Reverted this commit.temporarily because load issues. -# Whenever a manual merge occurs, be sure to check the following commits. -# Hash: ee8d0b94473df357677cd1f82581251ce0423c01 -# Message: Fix follow suggestions potentially including silenced or blocked accounts (#29306) +require 'rails_helper' + +RSpec.describe AccountSuggestions::FriendsOfFriendsSource do + describe '#get' do + subject { described_class.new } + + let!(:bob) { Fabricate(:account, discoverable: true, hide_collections: false) } + let!(:alice) { Fabricate(:account, discoverable: true, hide_collections: true) } + let!(:eve) { Fabricate(:account, discoverable: true, hide_collections: false) } + let!(:mallory) { Fabricate(:account, discoverable: false, hide_collections: false) } + let!(:eugen) { Fabricate(:account, discoverable: true, hide_collections: false) } + let!(:neil) { Fabricate(:account, discoverable: true, hide_collections: false) } + let!(:john) { Fabricate(:account, discoverable: true, hide_collections: false) } + let!(:jerk) { Fabricate(:account, discoverable: true, hide_collections: false) } + let!(:larry) { Fabricate(:account, discoverable: true, hide_collections: false) } + + context 'with follows and blocks' do + before do + bob.block!(jerk) + FollowRecommendationMute.create!(account: bob, target_account: neil) + + # bob follows eugen, alice and larry + [eugen, alice, larry].each { |account| bob.follow!(account) } + + # alice follows eve and mallory + [john, mallory].each { |account| alice.follow!(account) } + + # eugen follows eve, john, jerk, larry and neil + [eve, mallory, jerk, larry, neil].each { |account| eugen.follow!(account) } + end + + it 'returns eligible accounts', :aggregate_failures do + results = subject.get(bob) + + # eve is returned through eugen + expect(results).to include([eve.id, :friends_of_friends]) + + # john is not reachable because alice hides who she follows + expect(results).to_not include([john.id, :friends_of_friends]) + + # mallory is not discoverable + expect(results).to_not include([mallory.id, :friends_of_friends]) + + # larry is not included because he's followed already + expect(results).to_not include([larry.id, :friends_of_friends]) + + # jerk is blocked + expect(results).to_not include([jerk.id, :friends_of_friends]) + + # the suggestion for neil has already been rejected + expect(results).to_not include([neil.id, :friends_of_friends]) + end + end + + context 'with deterministic order' do + before do + # bob follows eve and mallory + [eve, mallory].each { |account| bob.follow!(account) } + + # eve follows eugen, john, and jerk + [jerk, eugen, john].each { |account| eve.follow!(account) } + + # mallory follows eugen, john, and neil + [neil, eugen, john].each { |account| mallory.follow!(account) } + + john.follow!(eugen) + john.follow!(neil) + end + + it 'returns eligible accounts in the expected order' do + expect(subject.get(bob)).to eq expected_results + end + + it 'contains correct underlying source data' do + expect(source_query_values) + .to contain_exactly( + [john.id, 2, 2], # Followed by 2 friends of bob (eve, mallory), 2 followers total (breaks tie) + [eugen.id, 2, 3], # Followed by 2 friends of bob (eve, mallory), 3 followers total + [jerk.id, 1, 1], # Followed by 1 friends of bob (eve), 1 followers total (breaks tie) + [neil.id, 1, 2] # Followed by 1 friends of bob (mallory), 2 followers total + ) + end + + def expected_results + [ + [john.id, :friends_of_friends], + [eugen.id, :friends_of_friends], + [jerk.id, :friends_of_friends], + [neil.id, :friends_of_friends], + ] + end + + def source_query_values + subject.source_query(bob).to_a + end + end + end +end diff --git a/spec/models/custom_filter_spec.rb b/spec/models/custom_filter_spec.rb index 94049363373098..8ac9dbb896434e 100644 --- a/spec/models/custom_filter_spec.rb +++ b/spec/models/custom_filter_spec.rb @@ -32,4 +32,12 @@ expect(record).to model_have_error_on_field(:context) end end + + describe 'Normalizations' do + it 'cleans up context values' do + record = described_class.new(context: ['home', 'notifications', 'public ', '']) + + expect(record.context).to eq(%w(home notifications public)) + end + end end diff --git a/spec/models/form/import_spec.rb b/spec/models/form/import_spec.rb index b4b5bbf8976856..ca0221ab2a0b53 100644 --- a/spec/models/form/import_spec.rb +++ b/spec/models/form/import_spec.rb @@ -30,7 +30,7 @@ it 'has errors' do subject.validate - expect(subject.errors[:data]).to include(I18n.t('imports.errors.over_rows_processing_limit', count: Form::Import::ROWS_PROCESSING_LIMIT)) + expect(subject.errors[:data]).to include(I18n.t('imports.errors.over_rows_processing_limit', count: described_class::ROWS_PROCESSING_LIMIT)) end end diff --git a/spec/models/privacy_policy_spec.rb b/spec/models/privacy_policy_spec.rb index 0d7471375509ab..03bbe7264b6ee9 100644 --- a/spec/models/privacy_policy_spec.rb +++ b/spec/models/privacy_policy_spec.rb @@ -8,7 +8,7 @@ it 'has the privacy text' do policy = described_class.current - expect(policy.text).to eq(PrivacyPolicy::DEFAULT_PRIVACY_POLICY) + expect(policy.text).to eq(described_class::DEFAULT_PRIVACY_POLICY) end end diff --git a/spec/models/tag_spec.rb b/spec/models/tag_spec.rb index 69aaeed0afece6..5a1d620884864a 100644 --- a/spec/models/tag_spec.rb +++ b/spec/models/tag_spec.rb @@ -22,7 +22,7 @@ end describe 'HASHTAG_RE' do - subject { Tag::HASHTAG_RE } + subject { described_class::HASHTAG_RE } it 'does not match URLs with anchors with non-hashtag characters' do expect(subject.match('Check this out https://medium.com/@alice/some-article#.abcdef123')).to be_nil diff --git a/spec/models/user_role_spec.rb b/spec/models/user_role_spec.rb index a76dbddd2e7335..365fc75e7b7cd7 100644 --- a/spec/models/user_role_spec.rb +++ b/spec/models/user_role_spec.rb @@ -8,7 +8,7 @@ describe '#can?' do context 'with a single flag' do it 'returns true if any of them are present' do - subject.permissions = UserRole::FLAGS[:manage_reports] + subject.permissions = described_class::FLAGS[:manage_reports] expect(subject.can?(:manage_reports)).to be true end @@ -19,7 +19,7 @@ context 'with multiple flags' do it 'returns true if any of them are present' do - subject.permissions = UserRole::FLAGS[:manage_users] + subject.permissions = described_class::FLAGS[:manage_users] expect(subject.can?(:manage_reports, :manage_users)).to be true end @@ -51,7 +51,7 @@ describe '#permissions_as_keys' do before do - subject.permissions = UserRole::FLAGS[:invite_users] | UserRole::FLAGS[:view_dashboard] | UserRole::FLAGS[:manage_reports] + subject.permissions = described_class::FLAGS[:invite_users] | described_class::FLAGS[:view_dashboard] | described_class::FLAGS[:manage_reports] end it 'returns an array' do @@ -70,7 +70,7 @@ let(:input) { %w(manage_users) } it 'sets permission flags' do - expect(subject.permissions).to eq UserRole::FLAGS[:manage_users] + expect(subject.permissions).to eq described_class::FLAGS[:manage_users] end end @@ -78,7 +78,7 @@ let(:input) { %w(manage_users manage_reports) } it 'sets permission flags' do - expect(subject.permissions).to eq UserRole::FLAGS[:manage_users] | UserRole::FLAGS[:manage_reports] + expect(subject.permissions).to eq described_class::FLAGS[:manage_users] | described_class::FLAGS[:manage_reports] end end @@ -86,7 +86,7 @@ let(:input) { %w(foo) } it 'does not set permission flags' do - expect(subject.permissions).to eq UserRole::Flags::NONE + expect(subject.permissions).to eq described_class::Flags::NONE end end end @@ -96,7 +96,7 @@ subject { described_class.nobody } it 'returns none' do - expect(subject.computed_permissions).to eq UserRole::Flags::NONE + expect(subject.computed_permissions).to eq described_class::Flags::NONE end end @@ -110,11 +110,11 @@ context 'when role has the administrator flag' do before do - subject.permissions = UserRole::FLAGS[:administrator] + subject.permissions = described_class::FLAGS[:administrator] end it 'returns all permissions' do - expect(subject.computed_permissions).to eq UserRole::Flags::ALL + expect(subject.computed_permissions).to eq described_class::Flags::ALL end end @@ -159,7 +159,7 @@ end it 'has no permissions' do - expect(subject.permissions).to eq UserRole::Flags::NONE + expect(subject.permissions).to eq described_class::Flags::NONE end it 'has negative position' do diff --git a/spec/models/user_settings_spec.rb b/spec/models/user_settings_spec.rb index 653597c90de597..dfc4910d6e9e58 100644 --- a/spec/models/user_settings_spec.rb +++ b/spec/models/user_settings_spec.rb @@ -24,7 +24,7 @@ context 'when setting was not defined' do it 'raises error' do - expect { subject[:foo] }.to raise_error UserSettings::KeyError + expect { subject[:foo] }.to raise_error described_class::KeyError end end end @@ -93,7 +93,7 @@ describe '.definition_for' do context 'when key is defined' do it 'returns a setting' do - expect(described_class.definition_for(:always_send_emails)).to be_a UserSettings::Setting + expect(described_class.definition_for(:always_send_emails)).to be_a described_class::Setting end end diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 3e84d687383551..89fc25bcbdfb09 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -21,6 +21,7 @@ require 'capybara/rspec' require 'chewy/rspec' require 'email_spec/rspec' +require 'test_prof/recipes/rspec/before_all' Dir[Rails.root.join('spec', 'support', '**', '*.rb')].each { |f| require f } diff --git a/spec/requests/api/v1/accounts/credentials_spec.rb b/spec/requests/api/v1/accounts/credentials_spec.rb index b13e79b12b9137..737348c2dddff8 100644 --- a/spec/requests/api/v1/accounts/credentials_spec.rb +++ b/spec/requests/api/v1/accounts/credentials_spec.rb @@ -15,15 +15,11 @@ it_behaves_like 'forbidden for wrong scope', 'write write:accounts' - it 'returns http success' do - subject - - expect(response).to have_http_status(200) - end - - it 'returns the expected content' do + it 'returns http success with expected content' do subject + expect(response) + .to have_http_status(200) expect(body_as_json).to include({ source: hash_including({ discoverable: false, @@ -34,24 +30,55 @@ end end - describe 'POST /api/v1/accounts/update_credentials' do + describe 'PATCH /api/v1/accounts/update_credentials' do subject do patch '/api/v1/accounts/update_credentials', headers: headers, params: params end - let(:params) { { discoverable: true, locked: false, indexable: true } } + before { allow(ActivityPub::UpdateDistributionWorker).to receive(:perform_async) } + + let(:params) do + { + avatar: fixture_file_upload('avatar.gif', 'image/gif'), + discoverable: true, + display_name: "Alice Isn't Dead", + header: fixture_file_upload('attachment.jpg', 'image/jpeg'), + indexable: true, + locked: false, + note: 'Hello!', + source: { + privacy: 'unlisted', + sensitive: true, + }, + } + end it_behaves_like 'forbidden for wrong scope', 'read read:accounts' - it 'returns http success' do - subject + describe 'with empty source list' do + let(:params) { { display_name: "I'm a cat", source: {} } } - expect(response).to have_http_status(200) + it 'returns http success' do + subject + expect(response).to have_http_status(200) + end end - it 'returns JSON with updated attributes' do + describe 'with invalid data' do + let(:params) { { note: 'This is too long. ' * 30 } } + + it 'returns http unprocessable entity' do + subject + expect(response).to have_http_status(422) + end + end + + it 'returns http success with updated JSON attributes' do subject + expect(response) + .to have_http_status(200) + expect(body_as_json).to include({ source: hash_including({ discoverable: true, @@ -59,6 +86,27 @@ }), locked: false, }) + + expect(ActivityPub::UpdateDistributionWorker) + .to have_received(:perform_async).with(user.account_id) + end + + def expect_account_updates + expect(user.account.reload) + .to have_attributes( + display_name: eq("Alice Isn't Dead"), + note: 'Hello!', + avatar: exist, + header: exist + ) + end + + def expect_user_updates + expect(user.reload) + .to have_attributes( + setting_default_privacy: eq('unlisted'), + setting_default_sensitive: be(true) + ) end end end diff --git a/spec/requests/api/v1/blocks_spec.rb b/spec/requests/api/v1/blocks_spec.rb index 62543157c32df4..c6c2d56f364ca1 100644 --- a/spec/requests/api/v1/blocks_spec.rb +++ b/spec/requests/api/v1/blocks_spec.rb @@ -38,16 +38,14 @@ expect(body_as_json.size).to eq(params[:limit]) end - it 'sets the correct pagination header for the prev path' do + it 'sets correct link header pagination' do subject - expect(response.headers['Link'].find_link(%w(rel prev)).href).to eq(api_v1_blocks_url(limit: params[:limit], since_id: blocks.last.id)) - end - - it 'sets the correct pagination header for the next path' do - subject - - expect(response.headers['Link'].find_link(%w(rel next)).href).to eq(api_v1_blocks_url(limit: params[:limit], max_id: blocks[1].id)) + expect(response) + .to include_pagination_headers( + prev: api_v1_blocks_url(limit: params[:limit], since_id: blocks.last.id), + next: api_v1_blocks_url(limit: params[:limit], max_id: blocks.second.id) + ) end end diff --git a/spec/requests/api/v1/bookmarks_spec.rb b/spec/requests/api/v1/bookmarks_spec.rb index 18f4fddc29f2b0..dc32820c8983ad 100644 --- a/spec/requests/api/v1/bookmarks_spec.rb +++ b/spec/requests/api/v1/bookmarks_spec.rb @@ -42,9 +42,14 @@ it 'paginates correctly', :aggregate_failures do subject - expect(body_as_json.size).to eq(params[:limit]) - expect(response.headers['Link'].find_link(%w(rel prev)).href).to eq(api_v1_bookmarks_url(limit: params[:limit], min_id: bookmarks.last.id)) - expect(response.headers['Link'].find_link(%w(rel next)).href).to eq(api_v1_bookmarks_url(limit: params[:limit], max_id: bookmarks[1].id)) + expect(body_as_json.size) + .to eq(params[:limit]) + + expect(response) + .to include_pagination_headers( + prev: api_v1_bookmarks_url(limit: params[:limit], min_id: bookmarks.last.id), + next: api_v1_bookmarks_url(limit: params[:limit], max_id: bookmarks.second.id) + ) end end diff --git a/spec/requests/api/v1/favourites_spec.rb b/spec/requests/api/v1/favourites_spec.rb index 2d8a42e7162c87..b988ac99dbe129 100644 --- a/spec/requests/api/v1/favourites_spec.rb +++ b/spec/requests/api/v1/favourites_spec.rb @@ -45,16 +45,14 @@ expect(body_as_json.size).to eq(params[:limit]) end - it 'sets the correct pagination header for the prev path' do + it 'sets the correct pagination headers' do subject - expect(response.headers['Link'].find_link(%w(rel prev)).href).to eq(api_v1_favourites_url(limit: params[:limit], min_id: favourites.last.id)) - end - - it 'sets the correct pagination header for the next path' do - subject - - expect(response.headers['Link'].find_link(%w(rel next)).href).to eq(api_v1_favourites_url(limit: params[:limit], max_id: favourites[1].id)) + expect(response) + .to include_pagination_headers( + prev: api_v1_favourites_url(limit: params[:limit], min_id: favourites.last.id), + next: api_v1_favourites_url(limit: params[:limit], max_id: favourites.second.id) + ) end end diff --git a/spec/requests/api/v1/followed_tags_spec.rb b/spec/requests/api/v1/followed_tags_spec.rb index 52ed1ba4bb51f0..3d2d82d5db1c28 100644 --- a/spec/requests/api/v1/followed_tags_spec.rb +++ b/spec/requests/api/v1/followed_tags_spec.rb @@ -49,16 +49,14 @@ expect(body_as_json.size).to eq(params[:limit]) end - it 'sets the correct pagination header for the prev path' do + it 'sets the correct pagination headers' do subject - expect(response.headers['Link'].find_link(%w(rel prev)).href).to eq(api_v1_followed_tags_url(limit: params[:limit], since_id: tag_follows.last.id)) - end - - it 'sets the correct pagination header for the next path' do - subject - - expect(response.headers['Link'].find_link(%w(rel next)).href).to eq(api_v1_followed_tags_url(limit: params[:limit], max_id: tag_follows.last.id)) + expect(response) + .to include_pagination_headers( + prev: api_v1_followed_tags_url(limit: params[:limit], since_id: tag_follows.last.id), + next: api_v1_followed_tags_url(limit: params[:limit], max_id: tag_follows.last.id) + ) end end end diff --git a/spec/requests/api/v1/mutes_spec.rb b/spec/requests/api/v1/mutes_spec.rb index b2782a0c22f6ba..019bf16584e11e 100644 --- a/spec/requests/api/v1/mutes_spec.rb +++ b/spec/requests/api/v1/mutes_spec.rb @@ -44,10 +44,11 @@ it 'sets the correct pagination headers', :aggregate_failures do subject - headers = response.headers['Link'] - - expect(headers.find_link(%w(rel prev)).href).to eq(api_v1_mutes_url(limit: params[:limit], since_id: mutes.last.id.to_s)) - expect(headers.find_link(%w(rel next)).href).to eq(api_v1_mutes_url(limit: params[:limit], max_id: mutes.last.id.to_s)) + expect(response) + .to include_pagination_headers( + prev: api_v1_mutes_url(limit: params[:limit], since_id: mutes.last.id), + next: api_v1_mutes_url(limit: params[:limit], max_id: mutes.last.id) + ) end end diff --git a/spec/requests/api/v1/notifications_spec.rb b/spec/requests/api/v1/notifications_spec.rb index 222ff67fc876f7..55d3cdac948896 100644 --- a/spec/requests/api/v1/notifications_spec.rb +++ b/spec/requests/api/v1/notifications_spec.rb @@ -98,9 +98,14 @@ def body_json_account_ids notifications = user.account.notifications - expect(body_as_json.size).to eq(params[:limit]) - expect(response.headers['Link'].find_link(%w(rel prev)).href).to eq(api_v1_notifications_url(limit: params[:limit], min_id: notifications.last.id.to_s)) - expect(response.headers['Link'].find_link(%w(rel next)).href).to eq(api_v1_notifications_url(limit: params[:limit], max_id: notifications[2].id.to_s)) + expect(body_as_json.size) + .to eq(params[:limit]) + + expect(response) + .to include_pagination_headers( + prev: api_v1_notifications_url(limit: params[:limit], min_id: notifications.last.id), + next: api_v1_notifications_url(limit: params[:limit], max_id: notifications[2].id) + ) end end diff --git a/spec/requests/api/v1/timelines/home_spec.rb b/spec/requests/api/v1/timelines/home_spec.rb index e57e9643bf647a..2bebe8cf452847 100644 --- a/spec/requests/api/v1/timelines/home_spec.rb +++ b/spec/requests/api/v1/timelines/home_spec.rb @@ -55,10 +55,11 @@ it 'sets the correct pagination headers', :aggregate_failures do subject - headers = response.headers['Link'] - - expect(headers.find_link(%w(rel prev)).href).to eq(api_v1_timelines_home_url(limit: 1, min_id: ana.statuses.first.id.to_s)) - expect(headers.find_link(%w(rel next)).href).to eq(api_v1_timelines_home_url(limit: 1, max_id: ana.statuses.first.id.to_s)) + expect(response) + .to include_pagination_headers( + prev: api_v1_timelines_home_url(limit: params[:limit], min_id: ana.statuses.first.id), + next: api_v1_timelines_home_url(limit: params[:limit], max_id: ana.statuses.first.id) + ) end end end diff --git a/spec/requests/api/v1/timelines/public_spec.rb b/spec/requests/api/v1/timelines/public_spec.rb index 66354ca71ec03c..0e0fa2dc9bb8b8 100644 --- a/spec/requests/api/v1/timelines/public_spec.rb +++ b/spec/requests/api/v1/timelines/public_spec.rb @@ -106,10 +106,11 @@ it 'sets the correct pagination headers', :aggregate_failures do subject - headers = response.headers['Link'] - - expect(headers.find_link(%w(rel prev)).href).to eq(api_v1_timelines_public_url(limit: 1, min_id: media_status.id.to_s)) - expect(headers.find_link(%w(rel next)).href).to eq(api_v1_timelines_public_url(limit: 1, max_id: media_status.id.to_s)) + expect(response) + .to include_pagination_headers( + prev: api_v1_timelines_public_url(limit: params[:limit], min_id: media_status.id), + next: api_v1_timelines_public_url(limit: params[:limit], max_id: media_status.id) + ) end end end diff --git a/spec/requests/api/v1/timelines/tag_spec.rb b/spec/requests/api/v1/timelines/tag_spec.rb index a118af13e2ff69..8611341702d95c 100644 --- a/spec/requests/api/v1/timelines/tag_spec.rb +++ b/spec/requests/api/v1/timelines/tag_spec.rb @@ -71,10 +71,11 @@ it 'sets the correct pagination headers', :aggregate_failures do subject - headers = response.headers['Link'] - - expect(headers.find_link(%w(rel prev)).href).to eq(api_v1_timelines_tag_url(limit: 1, min_id: love_status.id.to_s)) - expect(headers.find_link(%w(rel next)).href).to eq(api_v1_timelines_tag_url(limit: 1, max_id: love_status.id.to_s)) + expect(response) + .to include_pagination_headers( + prev: api_v1_timelines_tag_url(limit: params[:limit], min_id: love_status.id), + next: api_v1_timelines_tag_url(limit: params[:limit], max_id: love_status.id) + ) end end diff --git a/spec/controllers/api/v2/filters/keywords_controller_spec.rb b/spec/requests/api/v2/filters/keywords_spec.rb similarity index 79% rename from spec/controllers/api/v2/filters/keywords_controller_spec.rb rename to spec/requests/api/v2/filters/keywords_spec.rb index 9f25237bcf1459..55fb2afd955e70 100644 --- a/spec/controllers/api/v2/filters/keywords_controller_spec.rb +++ b/spec/requests/api/v2/filters/keywords_spec.rb @@ -2,25 +2,20 @@ require 'rails_helper' -RSpec.describe Api::V2::Filters::KeywordsController do - render_views - +RSpec.describe 'API V2 Filters Keywords' do let(:user) { Fabricate(:user) } let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) } let(:filter) { Fabricate(:custom_filter, account: user.account) } let(:other_user) { Fabricate(:user) } let(:other_filter) { Fabricate(:custom_filter, account: other_user.account) } + let(:headers) { { 'Authorization' => "Bearer #{token.token}" } } - before do - allow(controller).to receive(:doorkeeper_token) { token } - end - - describe 'GET #index' do + describe 'GET /api/v2/filters/:filter_id/keywords' do let(:scopes) { 'read:filters' } let!(:keyword) { Fabricate(:custom_filter_keyword, custom_filter: filter) } it 'returns http success' do - get :index, params: { filter_id: filter.id } + get "/api/v2/filters/#{filter.id}/keywords", headers: headers expect(response).to have_http_status(200) expect(body_as_json) .to contain_exactly( @@ -30,18 +25,18 @@ context "when trying to access another's user filters" do it 'returns http not found' do - get :index, params: { filter_id: other_filter.id } + get "/api/v2/filters/#{other_filter.id}/keywords", headers: headers expect(response).to have_http_status(404) end end end - describe 'POST #create' do + describe 'POST /api/v2/filters/:filter_id/keywords' do let(:scopes) { 'write:filters' } let(:filter_id) { filter.id } before do - post :create, params: { filter_id: filter_id, keyword: 'magic', whole_word: false } + post "/api/v2/filters/#{filter_id}/keywords", headers: headers, params: { keyword: 'magic', whole_word: false } end it 'creates a filter', :aggregate_failures do @@ -65,12 +60,12 @@ end end - describe 'GET #show' do + describe 'GET /api/v2/filters/keywords/:id' do let(:scopes) { 'read:filters' } let(:keyword) { Fabricate(:custom_filter_keyword, keyword: 'foo', whole_word: false, custom_filter: filter) } before do - get :show, params: { id: keyword.id } + get "/api/v2/filters/keywords/#{keyword.id}", headers: headers end it 'responds with the keyword', :aggregate_failures do @@ -90,12 +85,12 @@ end end - describe 'PUT #update' do + describe 'PUT /api/v2/filters/keywords/:id' do let(:scopes) { 'write:filters' } let(:keyword) { Fabricate(:custom_filter_keyword, custom_filter: filter) } before do - get :update, params: { id: keyword.id, keyword: 'updated' } + put "/api/v2/filters/keywords/#{keyword.id}", headers: headers, params: { keyword: 'updated' } end it 'updates the keyword', :aggregate_failures do @@ -113,12 +108,12 @@ end end - describe 'DELETE #destroy' do + describe 'DELETE /api/v2/filters/keywords/:id' do let(:scopes) { 'write:filters' } let(:keyword) { Fabricate(:custom_filter_keyword, custom_filter: filter) } before do - delete :destroy, params: { id: keyword.id } + delete "/api/v2/filters/keywords/#{keyword.id}", headers: headers end it 'destroys the keyword', :aggregate_failures do diff --git a/spec/controllers/api/v2/filters/statuses_controller_spec.rb b/spec/requests/api/v2/filters/statuses_spec.rb similarity index 81% rename from spec/controllers/api/v2/filters/statuses_controller_spec.rb rename to spec/requests/api/v2/filters/statuses_spec.rb index d9df803971b789..26d2fb00e13fe9 100644 --- a/spec/controllers/api/v2/filters/statuses_controller_spec.rb +++ b/spec/requests/api/v2/filters/statuses_spec.rb @@ -2,25 +2,20 @@ require 'rails_helper' -RSpec.describe Api::V2::Filters::StatusesController do - render_views - +RSpec.describe 'API V2 Filters Statuses' do let(:user) { Fabricate(:user) } let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) } let(:filter) { Fabricate(:custom_filter, account: user.account) } let(:other_user) { Fabricate(:user) } let(:other_filter) { Fabricate(:custom_filter, account: other_user.account) } + let(:headers) { { 'Authorization' => "Bearer #{token.token}" } } - before do - allow(controller).to receive(:doorkeeper_token) { token } - end - - describe 'GET #index' do + describe 'GET /api/v2/filters/:filter_id/statuses' do let(:scopes) { 'read:filters' } let!(:status_filter) { Fabricate(:custom_filter_status, custom_filter: filter) } it 'returns http success' do - get :index, params: { filter_id: filter.id } + get "/api/v2/filters/#{filter.id}/statuses", headers: headers expect(response).to have_http_status(200) expect(body_as_json) .to contain_exactly( @@ -30,7 +25,7 @@ context "when trying to access another's user filters" do it 'returns http not found' do - get :index, params: { filter_id: other_filter.id } + get "/api/v2/filters/#{other_filter.id}/statuses", headers: headers expect(response).to have_http_status(404) end end @@ -42,7 +37,7 @@ let!(:status) { Fabricate(:status) } before do - post :create, params: { filter_id: filter_id, status_id: status.id } + post "/api/v2/filters/#{filter_id}/statuses", headers: headers, params: { status_id: status.id } end it 'creates a filter', :aggregate_failures do @@ -65,12 +60,12 @@ end end - describe 'GET #show' do + describe 'GET /api/v2/filters/statuses/:id' do let(:scopes) { 'read:filters' } let!(:status_filter) { Fabricate(:custom_filter_status, custom_filter: filter) } before do - get :show, params: { id: status_filter.id } + get "/api/v2/filters/statuses/#{status_filter.id}", headers: headers end it 'responds with the filter', :aggregate_failures do @@ -89,12 +84,12 @@ end end - describe 'DELETE #destroy' do + describe 'DELETE /api/v2/filters/statuses/:id' do let(:scopes) { 'write:filters' } let(:status_filter) { Fabricate(:custom_filter_status, custom_filter: filter) } before do - delete :destroy, params: { id: status_filter.id } + delete "/api/v2/filters/statuses/#{status_filter.id}", headers: headers end it 'destroys the filter', :aggregate_failures do diff --git a/spec/requests/cache_spec.rb b/spec/requests/cache_spec.rb index c56eec16c535d7..91e5b022e3951a 100644 --- a/spec/requests/cache_spec.rb +++ b/spec/requests/cache_spec.rb @@ -39,7 +39,7 @@ module TestEndpoints /api/v1/accounts/lookup?acct=alice /api/v1/statuses/110224538612341312 /api/v1/statuses/110224538612341312/context - /api/v1/polls/12345 + /api/v1/polls/123456789 /api/v1/trends/statuses /api/v1/directory ).freeze @@ -166,14 +166,18 @@ module DisabledAnonymousAPI ActionController::Base.allow_forgery_protection = old end - let(:alice) { Fabricate(:account, username: 'alice') } - let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Moderator')) } + let(:alice) { Account.find_by(username: 'alice') } + let(:user) { User.find_by(email: 'user@host.example') } + let(:token) { Doorkeeper::AccessToken.find_by(resource_owner_id: user.id) } - before do - status = Fabricate(:status, account: alice, id: '110224538612341312') - Fabricate(:status, account: alice, id: '110224538643211312', visibility: :private) + before_all do + alice = Fabricate(:account, username: 'alice') + user = Fabricate(:user, email: 'user@host.example', role: UserRole.find_by(name: 'Moderator')) + status = Fabricate(:status, account: alice, id: 110_224_538_612_341_312) + Fabricate(:status, account: alice, id: 110_224_538_643_211_312, visibility: :private) Fabricate(:invite, code: 'abcdef') - Fabricate(:poll, status: status, account: alice, id: '12345') + Fabricate(:poll, status: status, account: alice, id: 123_456_789) + Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'read') user.account.follow!(alice) end @@ -321,8 +325,6 @@ module DisabledAnonymousAPI end context 'with an auth token' do - let!(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'read') } - TestEndpoints::ALWAYS_CACHED.each do |endpoint| describe endpoint do before do @@ -585,8 +587,6 @@ module DisabledAnonymousAPI end context 'with an auth token' do - let!(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'read') } - TestEndpoints::ALWAYS_CACHED.each do |endpoint| describe endpoint do before do diff --git a/spec/requests/content_security_policy_spec.rb b/spec/requests/content_security_policy_spec.rb index d4cc40bce5d976..d4447dca4befc5 100644 --- a/spec/requests/content_security_policy_spec.rb +++ b/spec/requests/content_security_policy_spec.rb @@ -3,25 +3,38 @@ require 'rails_helper' describe 'Content-Security-Policy' do - it 'sets the expected CSP headers' do - allow(SecureRandom).to receive(:base64).with(16).and_return('ZbA+JmE7+bK8F5qvADZHuQ==') + before { allow(SecureRandom).to receive(:base64).with(16).and_return('ZbA+JmE7+bK8F5qvADZHuQ==') } + it 'sets the expected CSP headers' do get '/' - expect(response.headers['Content-Security-Policy'].split(';').map(&:strip)).to contain_exactly( - "base-uri 'none'", - "default-src 'none'", - "frame-ancestors 'none'", - "font-src 'self' https://cb6e6126.ngrok.io", - "img-src 'self' data: blob: https://cb6e6126.ngrok.io", - "style-src 'self' https://cb6e6126.ngrok.io 'nonce-ZbA+JmE7+bK8F5qvADZHuQ=='", - "media-src 'self' data: https://cb6e6126.ngrok.io", - "frame-src 'self' https:", - "manifest-src 'self' https://cb6e6126.ngrok.io", - "form-action 'self'", - "child-src 'self' blob: https://cb6e6126.ngrok.io", - "worker-src 'self' blob: https://cb6e6126.ngrok.io", - "connect-src 'self' data: blob: https://cb6e6126.ngrok.io ws://cb6e6126.ngrok.io:4000", - "script-src 'self' https://cb6e6126.ngrok.io 'wasm-unsafe-eval'" - ) + + expect(response_csp_headers) + .to match_array(expected_csp_headers) + end + + def response_csp_headers + response + .headers['Content-Security-Policy'] + .split(';') + .map(&:strip) + end + + def expected_csp_headers + <<~CSP.split("\n").map(&:strip) + base-uri 'none' + child-src 'self' blob: https://cb6e6126.ngrok.io + connect-src 'self' data: blob: https://cb6e6126.ngrok.io ws://cb6e6126.ngrok.io:4000 + default-src 'none' + font-src 'self' https://cb6e6126.ngrok.io + form-action 'self' + frame-ancestors 'none' + frame-src 'self' https: + img-src 'self' data: blob: https://cb6e6126.ngrok.io + manifest-src 'self' https://cb6e6126.ngrok.io + media-src 'self' data: https://cb6e6126.ngrok.io + script-src 'self' https://cb6e6126.ngrok.io 'wasm-unsafe-eval' + style-src 'self' https://cb6e6126.ngrok.io 'nonce-ZbA+JmE7+bK8F5qvADZHuQ==' + worker-src 'self' blob: https://cb6e6126.ngrok.io + CSP end end diff --git a/spec/search/models/concerns/account/statuses_search_spec.rb b/spec/search/models/concerns/account/statuses_search_spec.rb index 915bc094cb5957..a1b0bf405c5133 100644 --- a/spec/search/models/concerns/account/statuses_search_spec.rb +++ b/spec/search/models/concerns/account/statuses_search_spec.rb @@ -21,7 +21,7 @@ account.indexable = true account.save! - expect(PublicStatusesIndex.filter(term: { account_id: account.id }).count).to eq(account.statuses.where(visibility: :public).count) + expect(PublicStatusesIndex.filter(term: { account_id: account.id }).count).to eq(account.statuses.public_visibility.count) expect(StatusesIndex.filter(term: { account_id: account.id }).count).to eq(account.statuses.count) end end @@ -32,7 +32,7 @@ context 'when picking an indexable account' do it 'has statuses in the PublicStatusesIndex' do - expect(PublicStatusesIndex.filter(term: { account_id: account.id }).count).to eq(account.statuses.where(visibility: :public).count) + expect(PublicStatusesIndex.filter(term: { account_id: account.id }).count).to eq(account.statuses.public_visibility.count) end it 'has statuses in the StatusesIndex' do diff --git a/spec/services/account_search_service_spec.rb b/spec/services/account_search_service_spec.rb index 4f89cd220c8df8..5ec08859031759 100644 --- a/spec/services/account_search_service_spec.rb +++ b/spec/services/account_search_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -describe AccountSearchService, type: :service do +describe AccountSearchService do describe '#call' do context 'with a query to ignore' do it 'returns empty array for missing query' do diff --git a/spec/services/account_statuses_cleanup_service_spec.rb b/spec/services/account_statuses_cleanup_service_spec.rb index 0ac113f1055eb7..403c4632d74303 100644 --- a/spec/services/account_statuses_cleanup_service_spec.rb +++ b/spec/services/account_statuses_cleanup_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -describe AccountStatusesCleanupService, type: :service do +describe AccountStatusesCleanupService do let(:account) { Fabricate(:account, username: 'alice', domain: nil) } let(:account_policy) { Fabricate(:account_statuses_cleanup_policy, account: account) } let!(:unrelated_status) { Fabricate(:status, created_at: 3.years.ago) } diff --git a/spec/services/activitypub/fetch_featured_collection_service_spec.rb b/spec/services/activitypub/fetch_featured_collection_service_spec.rb index dab204406bbb23..7ea87922acc02b 100644 --- a/spec/services/activitypub/fetch_featured_collection_service_spec.rb +++ b/spec/services/activitypub/fetch_featured_collection_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe ActivityPub::FetchFeaturedCollectionService, type: :service do +RSpec.describe ActivityPub::FetchFeaturedCollectionService 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') } 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 638278a10e5375..59367b1e32c5e8 100644 --- a/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb +++ b/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe ActivityPub::FetchFeaturedTagsCollectionService, type: :service do +RSpec.describe ActivityPub::FetchFeaturedTagsCollectionService do subject { described_class.new } let(:collection_url) { 'https://example.com/account/tags' } diff --git a/spec/services/activitypub/fetch_remote_account_service_spec.rb b/spec/services/activitypub/fetch_remote_account_service_spec.rb index d213571fae045d..60ee879e4ecf3f 100644 --- a/spec/services/activitypub/fetch_remote_account_service_spec.rb +++ b/spec/services/activitypub/fetch_remote_account_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe ActivityPub::FetchRemoteAccountService, type: :service do +RSpec.describe ActivityPub::FetchRemoteAccountService do subject { described_class.new } let!(:actor) do diff --git a/spec/services/activitypub/fetch_remote_actor_service_spec.rb b/spec/services/activitypub/fetch_remote_actor_service_spec.rb index 41625db8c74d94..ce0a8534f10ea2 100644 --- a/spec/services/activitypub/fetch_remote_actor_service_spec.rb +++ b/spec/services/activitypub/fetch_remote_actor_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe ActivityPub::FetchRemoteActorService, type: :service do +RSpec.describe ActivityPub::FetchRemoteActorService do subject { described_class.new } let!(:actor) do diff --git a/spec/services/activitypub/fetch_remote_key_service_spec.rb b/spec/services/activitypub/fetch_remote_key_service_spec.rb index 94f2d3856b17b5..ae12ee43d6ca24 100644 --- a/spec/services/activitypub/fetch_remote_key_service_spec.rb +++ b/spec/services/activitypub/fetch_remote_key_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe ActivityPub::FetchRemoteKeyService, type: :service do +RSpec.describe ActivityPub::FetchRemoteKeyService do subject { described_class.new } let(:webfinger) { { subject: 'acct:alice@example.com', links: [{ rel: 'self', href: 'https://example.com/alice' }] } } diff --git a/spec/services/activitypub/fetch_remote_status_service_spec.rb b/spec/services/activitypub/fetch_remote_status_service_spec.rb index 0fb32d20b1901a..a86f141fe0b747 100644 --- a/spec/services/activitypub/fetch_remote_status_service_spec.rb +++ b/spec/services/activitypub/fetch_remote_status_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do +RSpec.describe ActivityPub::FetchRemoteStatusService do include ActionView::Helpers::TextHelper subject { described_class.new } diff --git a/spec/services/activitypub/fetch_replies_service_spec.rb b/spec/services/activitypub/fetch_replies_service_spec.rb index 8e1f606e26e794..e7d8d3528a97eb 100644 --- a/spec/services/activitypub/fetch_replies_service_spec.rb +++ b/spec/services/activitypub/fetch_replies_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe ActivityPub::FetchRepliesService, type: :service do +RSpec.describe ActivityPub::FetchRepliesService do subject { described_class.new } let(:actor) { Fabricate(:account, domain: 'example.com', uri: 'http://example.com/account') } diff --git a/spec/services/activitypub/process_account_service_spec.rb b/spec/services/activitypub/process_account_service_spec.rb index f26bec6f7e5e61..bb14e184605dd3 100644 --- a/spec/services/activitypub/process_account_service_spec.rb +++ b/spec/services/activitypub/process_account_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe ActivityPub::ProcessAccountService, type: :service do +RSpec.describe ActivityPub::ProcessAccountService do subject { described_class.new } before do diff --git a/spec/services/activitypub/process_collection_service_spec.rb b/spec/services/activitypub/process_collection_service_spec.rb index 63502c546e29c6..74df0f91063f53 100644 --- a/spec/services/activitypub/process_collection_service_spec.rb +++ b/spec/services/activitypub/process_collection_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe ActivityPub::ProcessCollectionService, type: :service do +RSpec.describe ActivityPub::ProcessCollectionService do subject { described_class.new } let(:actor) { Fabricate(:account, domain: 'example.com', uri: 'http://example.com/account') } diff --git a/spec/services/activitypub/process_status_update_service_spec.rb b/spec/services/activitypub/process_status_update_service_spec.rb index 5df7a2c96c07c3..2653b35b44017f 100644 --- a/spec/services/activitypub/process_status_update_service_spec.rb +++ b/spec/services/activitypub/process_status_update_service_spec.rb @@ -6,7 +6,7 @@ def poll_option_json(name, votes) { type: 'Note', name: name, replies: { type: 'Collection', totalItems: votes } } end -RSpec.describe ActivityPub::ProcessStatusUpdateService, type: :service do +RSpec.describe ActivityPub::ProcessStatusUpdateService do subject { described_class.new } let(:thread) { nil } diff --git a/spec/services/activitypub/synchronize_followers_service_spec.rb b/spec/services/activitypub/synchronize_followers_service_spec.rb index f62376ab95b24e..648f9a33212c3e 100644 --- a/spec/services/activitypub/synchronize_followers_service_spec.rb +++ b/spec/services/activitypub/synchronize_followers_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe ActivityPub::SynchronizeFollowersService, type: :service do +RSpec.describe ActivityPub::SynchronizeFollowersService do subject { described_class.new } let(:actor) { Fabricate(:account, domain: 'example.com', uri: 'http://example.com/account', inbox_url: 'http://example.com/inbox') } 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 05af125997c750..2fce424b1acab7 100644 --- a/spec/services/after_block_domain_from_account_service_spec.rb +++ b/spec/services/after_block_domain_from_account_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe AfterBlockDomainFromAccountService, type: :service do +RSpec.describe AfterBlockDomainFromAccountService do subject { described_class.new } let!(:wolf) { Fabricate(:account, username: 'wolf', domain: 'evil.org', inbox_url: 'https://evil.org/inbox', protocol: :activitypub) } diff --git a/spec/services/after_block_service_spec.rb b/spec/services/after_block_service_spec.rb index 3e8529148b690d..b95ca5a89a8e30 100644 --- a/spec/services/after_block_service_spec.rb +++ b/spec/services/after_block_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe AfterBlockService, type: :service do +RSpec.describe AfterBlockService do subject { described_class.new.call(account, target_account) } let(:account) { Fabricate(:account) } diff --git a/spec/services/app_sign_up_service_spec.rb b/spec/services/app_sign_up_service_spec.rb index b37b6da1f018ee..ec7b7516f95372 100644 --- a/spec/services/app_sign_up_service_spec.rb +++ b/spec/services/app_sign_up_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe AppSignUpService, type: :service do +RSpec.describe AppSignUpService do subject { described_class.new } let(:app) { Fabricate(:application, scopes: 'read write') } diff --git a/spec/services/authorize_follow_service_spec.rb b/spec/services/authorize_follow_service_spec.rb index 602250ee96fdaa..be2a8641854054 100644 --- a/spec/services/authorize_follow_service_spec.rb +++ b/spec/services/authorize_follow_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe AuthorizeFollowService, type: :service do +RSpec.describe AuthorizeFollowService do subject { described_class.new } let(:sender) { Fabricate(:account, username: 'alice') } diff --git a/spec/services/backup_service_spec.rb b/spec/services/backup_service_spec.rb index f5ad319136992b..e269b3f11784cc 100644 --- a/spec/services/backup_service_spec.rb +++ b/spec/services/backup_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe BackupService, type: :service do +RSpec.describe BackupService do subject(:service_call) { described_class.new.call(backup) } let!(:user) { Fabricate(:user) } diff --git a/spec/services/batched_remove_status_service_spec.rb b/spec/services/batched_remove_status_service_spec.rb index 1c59d5ed06fbdc..e501b9ba84a94c 100644 --- a/spec/services/batched_remove_status_service_spec.rb +++ b/spec/services/batched_remove_status_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe BatchedRemoveStatusService, :sidekiq_inline, type: :service do +RSpec.describe BatchedRemoveStatusService, :sidekiq_inline do subject { described_class.new } let!(:alice) { Fabricate(:account) } diff --git a/spec/services/block_domain_service_spec.rb b/spec/services/block_domain_service_spec.rb index 8bce62e48dcfaa..5089607e1cad94 100644 --- a/spec/services/block_domain_service_spec.rb +++ b/spec/services/block_domain_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe BlockDomainService, type: :service do +RSpec.describe BlockDomainService do subject { described_class.new } let!(:bad_account) { Fabricate(:account, username: 'badguy666', domain: 'evil.org') } diff --git a/spec/services/block_service_spec.rb b/spec/services/block_service_spec.rb index 9e4ff8e598ab50..e72e5282598ce8 100644 --- a/spec/services/block_service_spec.rb +++ b/spec/services/block_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe BlockService, type: :service do +RSpec.describe BlockService do subject { described_class.new } let(:sender) { Fabricate(:account, username: 'alice') } diff --git a/spec/services/bootstrap_timeline_service_spec.rb b/spec/services/bootstrap_timeline_service_spec.rb index 721a0337fd3094..c99813bceba89f 100644 --- a/spec/services/bootstrap_timeline_service_spec.rb +++ b/spec/services/bootstrap_timeline_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe BootstrapTimelineService, type: :service do +RSpec.describe BootstrapTimelineService do subject { described_class.new } context 'when the new user has registered from an invite' do diff --git a/spec/services/bulk_import_row_service_spec.rb b/spec/services/bulk_import_row_service_spec.rb index a77acc073212a3..d295c280676f89 100644 --- a/spec/services/bulk_import_row_service_spec.rb +++ b/spec/services/bulk_import_row_service_spec.rb @@ -110,7 +110,7 @@ end it 'adds the target account to the list' do - expect { subject.call(import_row) }.to change { ListAccount.joins(:list).exists?(account_id: target_account.id, list: { title: 'my list' }) }.from(false).to(true) + expect { subject.call(import_row) }.to add_target_account_to_list end end @@ -124,7 +124,7 @@ end it 'adds the target account to the list' do - expect { subject.call(import_row) }.to change { ListAccount.joins(:list).exists?(account_id: target_account.id, list: { title: 'my list' }) }.from(false).to(true) + expect { subject.call(import_row) }.to add_target_account_to_list end end @@ -134,7 +134,7 @@ end it 'adds the target account to the list' do - expect { subject.call(import_row) }.to change { ListAccount.joins(:list).exists?(account_id: target_account.id, list: { title: 'my list' }) }.from(false).to(true) + expect { subject.call(import_row) }.to add_target_account_to_list end end @@ -146,9 +146,24 @@ end it 'adds the target account to the list' do - expect { subject.call(import_row) }.to change { ListAccount.joins(:list).exists?(account_id: target_account.id, list: { title: 'my list' }) }.from(false).to(true) + expect { subject.call(import_row) }.to add_target_account_to_list end end + + def add_target_account_to_list + change { target_account_on_list? } + .from(false) + .to(true) + end + + def target_account_on_list? + ListAccount + .joins(:list) + .exists?( + account_id: target_account.id, + list: { title: 'my list' } + ) + end end context 'when the list does not exist yet' do diff --git a/spec/services/clear_domain_media_service_spec.rb b/spec/services/clear_domain_media_service_spec.rb index 9766e62de8cd0d..f1e5097a99fec8 100644 --- a/spec/services/clear_domain_media_service_spec.rb +++ b/spec/services/clear_domain_media_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe ClearDomainMediaService, type: :service do +RSpec.describe ClearDomainMediaService do subject { described_class.new } let!(:bad_account) { Fabricate(:account, username: 'badguy666', domain: 'evil.org') } diff --git a/spec/services/delete_account_service_spec.rb b/spec/services/delete_account_service_spec.rb index 0c1c495f0e4658..e9226f3e04fef6 100644 --- a/spec/services/delete_account_service_spec.rb +++ b/spec/services/delete_account_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe DeleteAccountService, type: :service do +RSpec.describe DeleteAccountService do shared_examples 'common behavior' do subject { described_class.new.call(account) } diff --git a/spec/services/fan_out_on_write_service_spec.rb b/spec/services/fan_out_on_write_service_spec.rb index 3d1bac5bb42b72..39f318aac1b47a 100644 --- a/spec/services/fan_out_on_write_service_spec.rb +++ b/spec/services/fan_out_on_write_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe FanOutOnWriteService, type: :service do +RSpec.describe FanOutOnWriteService do subject { described_class.new } let(:ltl_enabled) { true } diff --git a/spec/services/favourite_service_spec.rb b/spec/services/favourite_service_spec.rb index c93dc6829a68cc..b09c1f26935d58 100644 --- a/spec/services/favourite_service_spec.rb +++ b/spec/services/favourite_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe FavouriteService, type: :service do +RSpec.describe FavouriteService do subject { described_class.new } let(:sender) { Fabricate(:account, username: 'alice') } diff --git a/spec/services/fetch_link_card_service_spec.rb b/spec/services/fetch_link_card_service_spec.rb index 654da1e0d4278f..28559dc7083883 100644 --- a/spec/services/fetch_link_card_service_spec.rb +++ b/spec/services/fetch_link_card_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe FetchLinkCardService, type: :service do +RSpec.describe FetchLinkCardService do subject { described_class.new } let(:html) { 'Hello world' } diff --git a/spec/services/fetch_oembed_service_spec.rb b/spec/services/fetch_oembed_service_spec.rb index 777cbae3fbd1bf..c9f84048b615f4 100644 --- a/spec/services/fetch_oembed_service_spec.rb +++ b/spec/services/fetch_oembed_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -describe FetchOEmbedService, type: :service do +describe FetchOEmbedService do subject { described_class.new } before do diff --git a/spec/services/fetch_remote_status_service_spec.rb b/spec/services/fetch_remote_status_service_spec.rb index 798740c9b31023..a9c61e7b4e54e5 100644 --- a/spec/services/fetch_remote_status_service_spec.rb +++ b/spec/services/fetch_remote_status_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe FetchRemoteStatusService, type: :service do +RSpec.describe FetchRemoteStatusService do let(:account) { Fabricate(:account, domain: 'example.org', uri: 'https://example.org/foo') } let(:prefetched_body) { nil } diff --git a/spec/services/fetch_resource_service_spec.rb b/spec/services/fetch_resource_service_spec.rb index 78037a06ce4fdb..ee4810571bed95 100644 --- a/spec/services/fetch_resource_service_spec.rb +++ b/spec/services/fetch_resource_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe FetchResourceService, type: :service do +RSpec.describe FetchResourceService do describe '#call' do subject { described_class.new.call(url) } diff --git a/spec/services/follow_service_spec.rb b/spec/services/follow_service_spec.rb index b9e0ab625a749d..69986a1b66780b 100644 --- a/spec/services/follow_service_spec.rb +++ b/spec/services/follow_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe FollowService, type: :service do +RSpec.describe FollowService do subject { described_class.new } let(:sender) { Fabricate(:account, username: 'alice') } diff --git a/spec/services/import_service_spec.rb b/spec/services/import_service_spec.rb index 7d005c8a111d1f..90877d99975200 100644 --- a/spec/services/import_service_spec.rb +++ b/spec/services/import_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe ImportService, :sidekiq_inline, type: :service do +RSpec.describe ImportService, :sidekiq_inline do include RoutingHelper let!(:account) { Fabricate(:account, locked: false) } diff --git a/spec/services/mute_service_spec.rb b/spec/services/mute_service_spec.rb index a2ca2ffe135e02..681afc0b16ec39 100644 --- a/spec/services/mute_service_spec.rb +++ b/spec/services/mute_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe MuteService, type: :service do +RSpec.describe MuteService do subject { described_class.new.call(account, target_account) } let(:account) { Fabricate(:account) } diff --git a/spec/services/notify_service_spec.rb b/spec/services/notify_service_spec.rb index 57ff326c732c7c..514f634d7fde5d 100644 --- a/spec/services/notify_service_spec.rb +++ b/spec/services/notify_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe NotifyService, type: :service do +RSpec.describe NotifyService do subject { described_class.new.call(recipient, type, activity) } let(:user) { Fabricate(:user) } diff --git a/spec/services/post_status_service_spec.rb b/spec/services/post_status_service_spec.rb index 659cecb4e0b28b..4111687af3eabe 100644 --- a/spec/services/post_status_service_spec.rb +++ b/spec/services/post_status_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe PostStatusService, type: :service do +RSpec.describe PostStatusService do subject { described_class.new } it 'creates a new status' do @@ -481,7 +481,7 @@ expect do subject.call(account, text: '@alice hm, @bob is really annoying lately', allowed_mentions: [mentioned_account.id]) - end.to raise_error(an_instance_of(PostStatusService::UnexpectedMentionsError).and(having_attributes(accounts: [unexpected_mentioned_account]))) + end.to raise_error(an_instance_of(described_class::UnexpectedMentionsError).and(having_attributes(accounts: [unexpected_mentioned_account]))) end it 'processes duplicate mentions correctly' do diff --git a/spec/services/precompute_feed_service_spec.rb b/spec/services/precompute_feed_service_spec.rb index 663babae8a9c02..9b2c6c280f3a4f 100644 --- a/spec/services/precompute_feed_service_spec.rb +++ b/spec/services/precompute_feed_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe PrecomputeFeedService, type: :service do +RSpec.describe PrecomputeFeedService do subject { described_class.new } describe 'call' do diff --git a/spec/services/process_mentions_service_spec.rb b/spec/services/process_mentions_service_spec.rb index 39bb355577ebf4..7a318faa1e5064 100644 --- a/spec/services/process_mentions_service_spec.rb +++ b/spec/services/process_mentions_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe ProcessMentionsService, type: :service do +RSpec.describe ProcessMentionsService do subject { described_class.new } let(:account) { Fabricate(:account, username: 'alice') } diff --git a/spec/services/purge_domain_service_spec.rb b/spec/services/purge_domain_service_spec.rb index 6d8af14deb78c3..a5c49160db2396 100644 --- a/spec/services/purge_domain_service_spec.rb +++ b/spec/services/purge_domain_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe PurgeDomainService, type: :service do +RSpec.describe PurgeDomainService do subject { described_class.new } let(:domain) { 'obsolete.org' } diff --git a/spec/services/reblog_service_spec.rb b/spec/services/reblog_service_spec.rb index 183e0ffe243a66..8f9d3cdfc964cf 100644 --- a/spec/services/reblog_service_spec.rb +++ b/spec/services/reblog_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe ReblogService, type: :service do +RSpec.describe ReblogService do let(:alice) { Fabricate(:account, username: 'alice') } context 'when creates a reblog with appropriate visibility' do diff --git a/spec/services/reject_follow_service_spec.rb b/spec/services/reject_follow_service_spec.rb index 48316a6c4d9573..98aaf70478539b 100644 --- a/spec/services/reject_follow_service_spec.rb +++ b/spec/services/reject_follow_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe RejectFollowService, type: :service do +RSpec.describe RejectFollowService do subject { described_class.new } let(:sender) { Fabricate(:account, username: 'alice') } diff --git a/spec/services/remove_from_followers_service_spec.rb b/spec/services/remove_from_followers_service_spec.rb index 21da38a97bd208..d6420f76742dfe 100644 --- a/spec/services/remove_from_followers_service_spec.rb +++ b/spec/services/remove_from_followers_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe RemoveFromFollowersService, type: :service do +RSpec.describe RemoveFromFollowersService do subject { described_class.new } let(:bob) { Fabricate(:account, username: 'bob') } diff --git a/spec/services/remove_status_service_spec.rb b/spec/services/remove_status_service_spec.rb index 65ac785c04f1b6..dd92584eb021e5 100644 --- a/spec/services/remove_status_service_spec.rb +++ b/spec/services/remove_status_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe RemoveStatusService, :sidekiq_inline, type: :service do +RSpec.describe RemoveStatusService, :sidekiq_inline do subject { described_class.new } let!(:alice) { Fabricate(:account) } diff --git a/spec/services/report_service_spec.rb b/spec/services/report_service_spec.rb index 5acb2d0c391c44..d77d8904db1436 100644 --- a/spec/services/report_service_spec.rb +++ b/spec/services/report_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe ReportService, type: :service do +RSpec.describe ReportService do subject { described_class.new } let(:source_account) { Fabricate(:account) } diff --git a/spec/services/resolve_account_service_spec.rb b/spec/services/resolve_account_service_spec.rb index 121ac3dcd3b964..9e05eb09af4919 100644 --- a/spec/services/resolve_account_service_spec.rb +++ b/spec/services/resolve_account_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe ResolveAccountService, type: :service do +RSpec.describe ResolveAccountService do subject { described_class.new } before do diff --git a/spec/services/resolve_url_service_spec.rb b/spec/services/resolve_url_service_spec.rb index 5270cc10dd8f12..3d59a55f105855 100644 --- a/spec/services/resolve_url_service_spec.rb +++ b/spec/services/resolve_url_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -describe ResolveURLService, type: :service do +describe ResolveURLService do subject { described_class.new } describe '#call' do diff --git a/spec/services/search_service_spec.rb b/spec/services/search_service_spec.rb index 39adf43876d7a3..394ee7c3a660e7 100644 --- a/spec/services/search_service_spec.rb +++ b/spec/services/search_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -describe SearchService, type: :service do +describe SearchService do subject { described_class.new } describe '#call' do diff --git a/spec/services/software_update_check_service_spec.rb b/spec/services/software_update_check_service_spec.rb index 846cbdb709cb31..c864e3120d0db4 100644 --- a/spec/services/software_update_check_service_spec.rb +++ b/spec/services/software_update_check_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe SoftwareUpdateCheckService, type: :service do +RSpec.describe SoftwareUpdateCheckService do subject { described_class.new } shared_examples 'when the feature is enabled' do diff --git a/spec/services/suspend_account_service_spec.rb b/spec/services/suspend_account_service_spec.rb index 4a5f8a0b6b3d8e..d62f7ef0d60943 100644 --- a/spec/services/suspend_account_service_spec.rb +++ b/spec/services/suspend_account_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe SuspendAccountService, :sidekiq_inline, type: :service do +RSpec.describe SuspendAccountService, :sidekiq_inline do shared_examples 'common behavior' do subject { described_class.new.call(account) } diff --git a/spec/services/tag_search_service_spec.rb b/spec/services/tag_search_service_spec.rb new file mode 100644 index 00000000000000..de42e54071e823 --- /dev/null +++ b/spec/services/tag_search_service_spec.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe TagSearchService do + describe '#call' do + let!(:one) { Fabricate(:tag, name: 'one') } + + before { Fabricate(:tag, name: 'two') } + + it 'runs a search for tags' do + results = subject.call('#one', limit: 5) + + expect(results) + .to have_attributes( + size: 1, + first: eq(one) + ) + end + end +end diff --git a/spec/services/translate_status_service_spec.rb b/spec/services/translate_status_service_spec.rb index 5f6418f5d6f61f..0779fbbe6c52bc 100644 --- a/spec/services/translate_status_service_spec.rb +++ b/spec/services/translate_status_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe TranslateStatusService, type: :service do +RSpec.describe TranslateStatusService do subject(:service) { described_class.new } let(:status) { Fabricate(:status, text: text, spoiler_text: spoiler_text, language: 'en', preloadable_poll: poll, media_attachments: media_attachments) } diff --git a/spec/services/unallow_domain_service_spec.rb b/spec/services/unallow_domain_service_spec.rb index 383977d352a795..caec3d596ff144 100644 --- a/spec/services/unallow_domain_service_spec.rb +++ b/spec/services/unallow_domain_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe UnallowDomainService, type: :service do +RSpec.describe UnallowDomainService do subject { described_class.new } let(:bad_domain) { 'evil.org' } diff --git a/spec/services/unblock_domain_service_spec.rb b/spec/services/unblock_domain_service_spec.rb index 3d6d82ff6823da..289ddfc218bcaa 100644 --- a/spec/services/unblock_domain_service_spec.rb +++ b/spec/services/unblock_domain_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -describe UnblockDomainService, type: :service do +describe UnblockDomainService do subject { described_class.new } describe 'call' do diff --git a/spec/services/unblock_service_spec.rb b/spec/services/unblock_service_spec.rb index 9813c5e7fae087..4c9fcb9aeecdd0 100644 --- a/spec/services/unblock_service_spec.rb +++ b/spec/services/unblock_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe UnblockService, type: :service do +RSpec.describe UnblockService do subject { described_class.new } let(:sender) { Fabricate(:account, username: 'alice') } diff --git a/spec/services/unfollow_service_spec.rb b/spec/services/unfollow_service_spec.rb index 18a25a676ddaec..bba17a8d2709a2 100644 --- a/spec/services/unfollow_service_spec.rb +++ b/spec/services/unfollow_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe UnfollowService, type: :service do +RSpec.describe UnfollowService do subject { described_class.new } let(:sender) { Fabricate(:account, username: 'alice') } diff --git a/spec/services/unsuspend_account_service_spec.rb b/spec/services/unsuspend_account_service_spec.rb index c848767cd1017e..79a4441d3ec9ef 100644 --- a/spec/services/unsuspend_account_service_spec.rb +++ b/spec/services/unsuspend_account_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe UnsuspendAccountService, type: :service do +RSpec.describe UnsuspendAccountService do shared_context 'with common context' do subject { described_class.new.call(account) } diff --git a/spec/services/update_account_service_spec.rb b/spec/services/update_account_service_spec.rb index c9521c69f4206e..f07b1a7c0283a7 100644 --- a/spec/services/update_account_service_spec.rb +++ b/spec/services/update_account_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe UpdateAccountService, type: :service do +RSpec.describe UpdateAccountService do subject { described_class.new } describe 'switching form locked to unlocked accounts', :sidekiq_inline do diff --git a/spec/services/update_status_service_spec.rb b/spec/services/update_status_service_spec.rb index 89184a4f4c5659..2d57c0aedd0b79 100644 --- a/spec/services/update_status_service_spec.rb +++ b/spec/services/update_status_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe UpdateStatusService, type: :service do +RSpec.describe UpdateStatusService do subject { described_class.new } context 'when nothing changes' do diff --git a/spec/services/verify_link_service_spec.rb b/spec/services/verify_link_service_spec.rb index 28950724208013..0ce8c9a9041727 100644 --- a/spec/services/verify_link_service_spec.rb +++ b/spec/services/verify_link_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe VerifyLinkService, type: :service do +RSpec.describe VerifyLinkService do subject { described_class.new } context 'when given a local account' do diff --git a/spec/support/matchers/api_pagination.rb b/spec/support/matchers/api_pagination.rb new file mode 100644 index 00000000000000..81e27e44b80a86 --- /dev/null +++ b/spec/support/matchers/api_pagination.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +RSpec::Matchers.define :include_pagination_headers do |links| + match do |response| + links.map do |key, value| + response.headers['Link'].find_link(['rel', key.to_s]).href == value + end.all? + end + + failure_message do |header| + "expected that #{header} would have the same values as #{links}." + end +end diff --git a/spec/validators/follow_limit_validator_spec.rb b/spec/validators/follow_limit_validator_spec.rb index 51b0683d2708f7..e069b0ed3ab217 100644 --- a/spec/validators/follow_limit_validator_spec.rb +++ b/spec/validators/follow_limit_validator_spec.rb @@ -56,7 +56,7 @@ follow.valid? - expect(follow.errors[:base]).to include(I18n.t('users.follow_limit_reached', limit: FollowLimitValidator::LIMIT)) + expect(follow.errors[:base]).to include(I18n.t('users.follow_limit_reached', limit: described_class::LIMIT)) end end diff --git a/spec/views/statuses/show.html.haml_spec.rb b/spec/views/statuses/show.html.haml_spec.rb index 233965883a1675..92ba678b6d5cd6 100644 --- a/spec/views/statuses/show.html.haml_spec.rb +++ b/spec/views/statuses/show.html.haml_spec.rb @@ -4,7 +4,7 @@ describe 'statuses/show.html.haml', :without_verify_partial_doubles do before do - allow(view).to receive_messages(api_oembed_url: '', show_landing_strip?: true, site_title: 'example site', site_hostname: 'example.com', full_asset_url: '//asset.host/image.svg', current_account: nil, single_user_mode?: false) + allow(view).to receive_messages(api_oembed_url: '', site_title: 'example site', site_hostname: 'example.com', full_asset_url: '//asset.host/image.svg', current_account: nil, single_user_mode?: false) allow(view).to receive(:local_time) allow(view).to receive(:local_time_ago) assign(:instance_presenter, InstancePresenter.new) diff --git a/yarn.lock b/yarn.lock index 5963d7bb116bd9..3f88575a0c5a19 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2341,14 +2341,11 @@ __metadata: "@types/react-helmet": "npm:^6.1.6" "@types/react-immutable-proptypes": "npm:^2.1.0" "@types/react-motion": "npm:^0.0.40" - "@types/react-overlays": "npm:^3.1.0" "@types/react-router": "npm:^5.1.20" "@types/react-router-dom": "npm:^5.3.3" - "@types/react-select": "npm:^5.0.1" "@types/react-sparklines": "npm:^1.7.2" "@types/react-swipeable-views": "npm:^0.13.1" "@types/react-test-renderer": "npm:^18.0.0" - "@types/react-textarea-autosize": "npm:^8.0.0" "@types/react-toggle": "npm:^4.0.3" "@types/redux-immutable": "npm:^4.0.3" "@types/requestidlecallback": "npm:^0.3.5" @@ -2356,7 +2353,7 @@ __metadata: "@typescript-eslint/eslint-plugin": "npm:^7.0.0" "@typescript-eslint/parser": "npm:^7.0.0" arrow-key-navigation: "npm:^1.2.0" - async-mutex: "npm:^0.4.0" + async-mutex: "npm:^0.5.0" autoprefixer: "npm:^10.4.14" axios: "npm:^1.4.0" babel-jest: "npm:^29.5.0" @@ -3227,9 +3224,9 @@ __metadata: linkType: hard "@types/lodash@npm:^4.14.195": - version: 4.14.202 - resolution: "@types/lodash@npm:4.14.202" - checksum: 10c0/6064d43c8f454170841bd67c8266cc9069d9e570a72ca63f06bceb484cb4a3ee60c9c1f305c1b9e3a87826049fd41124b8ef265c4dd08b00f6766609c7fe9973 + version: 4.17.0 + resolution: "@types/lodash@npm:4.17.0" + checksum: 10c0/4c5b41c9a6c41e2c05d08499e96f7940bcf194dcfa84356235b630da920c2a5e05f193618cea76006719bec61c76617dff02defa9d29934f9f6a76a49291bd8f languageName: node linkType: hard @@ -3345,11 +3342,11 @@ __metadata: linkType: hard "@types/react-dom@npm:^18.0.0, @types/react-dom@npm:^18.2.4": - version: 18.2.21 - resolution: "@types/react-dom@npm:18.2.21" + version: 18.2.22 + resolution: "@types/react-dom@npm:18.2.22" dependencies: "@types/react": "npm:*" - checksum: 10c0/a887b4b647071df48173f054854713b68fdacfceeba7fa14f64ba26688d7d43574d7dc88a2a346e28f2e667eeab1b9bdbcad8a54353869835e52638607f61ff5 + checksum: 10c0/cd85b5f402126e44b8c7b573e74737389816abcc931b2b14d8f946ba81cce8637ea490419488fcae842efb1e2f69853bc30522e43fd8359e1007d4d14b8d8146 languageName: node linkType: hard @@ -3381,15 +3378,6 @@ __metadata: languageName: node linkType: hard -"@types/react-overlays@npm:^3.1.0": - version: 3.1.0 - resolution: "@types/react-overlays@npm:3.1.0" - dependencies: - react-overlays: "npm:*" - checksum: 10c0/99a4de7c56a286cf72dbf135ad6f9da7c095483987ab548ba7e63d1d885fd54939e78e8bd3dd3cf275a6f4c3d6bdcd00c6923c92cc6c3a4c9bacf5a55550f18b - languageName: node - linkType: hard - "@types/react-router-dom@npm:^5.3.3": version: 5.3.3 resolution: "@types/react-router-dom@npm:5.3.3" @@ -3411,15 +3399,6 @@ __metadata: languageName: node linkType: hard -"@types/react-select@npm:^5.0.1": - version: 5.0.1 - resolution: "@types/react-select@npm:5.0.1" - dependencies: - react-select: "npm:*" - checksum: 10c0/6ea7f3beaebb38e537e5b742a0d8b49f212bdf1dade9f9ce5e3c91e24aad95284aeda0efc8a235e05a7102748f475c4476fb6830030b5574fdf19c3f1d908027 - languageName: node - linkType: hard - "@types/react-sparklines@npm:^1.7.2": version: 1.7.5 resolution: "@types/react-sparklines@npm:1.7.5" @@ -3447,15 +3426,6 @@ __metadata: languageName: node linkType: hard -"@types/react-textarea-autosize@npm:^8.0.0": - version: 8.0.0 - resolution: "@types/react-textarea-autosize@npm:8.0.0" - dependencies: - react-textarea-autosize: "npm:*" - checksum: 10c0/8d6a40e53aa3452ddda53a2b9eb8668ffdfdabc8133d731a3ea2205309376f66fb7537832170def243520fefec70e02b7f05043cf4fdeac520b5883fbb66dc12 - languageName: node - linkType: hard - "@types/react-toggle@npm:^4.0.3": version: 4.0.5 resolution: "@types/react-toggle@npm:4.0.5" @@ -3475,13 +3445,13 @@ __metadata: linkType: hard "@types/react@npm:*, @types/react@npm:16 || 17 || 18, @types/react@npm:>=16.9.11, @types/react@npm:^18.2.7": - version: 18.2.64 - resolution: "@types/react@npm:18.2.64" + version: 18.2.66 + resolution: "@types/react@npm:18.2.66" dependencies: "@types/prop-types": "npm:*" "@types/scheduler": "npm:*" csstype: "npm:^3.0.2" - checksum: 10c0/ab3ba9597990d08ffd419a5ad28fd22393c7a9a241ae455fb1d5d193d209471aa1909fa7ad016fd8d161eab6d0babba77b013b56a5170bedf78833085b9ee424 + checksum: 10c0/56e4b841f2daf03a0b3268d4f2bcf5841167fe56742b9f1c076fad66587fb59191bdaba4d5727dbfbcff750d5e8797fdd4e57d8d9704b0bfc6ad31ee1e268a70 languageName: node linkType: hard @@ -4607,12 +4577,12 @@ __metadata: languageName: node linkType: hard -"async-mutex@npm:^0.4.0": - version: 0.4.1 - resolution: "async-mutex@npm:0.4.1" +"async-mutex@npm:^0.5.0": + version: 0.5.0 + resolution: "async-mutex@npm:0.5.0" dependencies: tslib: "npm:^2.4.0" - checksum: 10c0/3c412736c0bc4a9a2cfd948276a8caab8686aa615866a5bd20986e616f8945320acb310058a17afa1b31b8de6f634a78b7ec2217a33d7559b38f68bb85a95854 + checksum: 10c0/9096e6ad6b674c894d8ddd5aa4c512b09bb05931b8746ebd634952b05685608b2b0820ed5c406e6569919ff5fe237ab3c491e6f2887d6da6b6ba906db3ee9c32 languageName: node linkType: hard @@ -4706,13 +4676,13 @@ __metadata: linkType: hard "axios@npm:^1.4.0": - version: 1.6.7 - resolution: "axios@npm:1.6.7" + version: 1.6.8 + resolution: "axios@npm:1.6.8" dependencies: - follow-redirects: "npm:^1.15.4" + follow-redirects: "npm:^1.15.6" form-data: "npm:^4.0.0" proxy-from-env: "npm:^1.1.0" - checksum: 10c0/131bf8e62eee48ca4bd84e6101f211961bf6a21a33b95e5dfb3983d5a2fe50d9fffde0b57668d7ce6f65063d3dc10f2212cbcb554f75cfca99da1c73b210358d + checksum: 10c0/0f22da6f490335479a89878bc7d5a1419484fbb437b564a80c34888fc36759ae4f56ea28d55a191695e5ed327f0bad56e7ff60fb6770c14d1be6501505d47ab9 languageName: node linkType: hard @@ -5673,9 +5643,9 @@ __metadata: linkType: hard "cocoon-js-vanilla@npm:^1.3.0": - version: 1.4.0 - resolution: "cocoon-js-vanilla@npm:1.4.0" - checksum: 10c0/3a3976d325d24518317ca38536ad5f4e570c139b86082dd33c64d38c2a4b2c58fa9cc9aac4624d8fd2f4c9f0eafe681bb8872360010e6b36d9974d8abc57f520 + version: 1.5.1 + resolution: "cocoon-js-vanilla@npm:1.5.1" + checksum: 10c0/0449084ef5864fc4159aa127592995657224bfcec6b7fd6270f2f9af545fc711e7ddbeb673a7cafc9dc0985be4c20b76ba413905fcaeddc3c6f6a5397d80cdd6 languageName: node linkType: hard @@ -6265,63 +6235,64 @@ __metadata: languageName: node linkType: hard -"cssnano-preset-default@npm:^6.0.5": - version: 6.0.5 - resolution: "cssnano-preset-default@npm:6.0.5" +"cssnano-preset-default@npm:^6.1.0": + version: 6.1.0 + resolution: "cssnano-preset-default@npm:6.1.0" dependencies: + browserslist: "npm:^4.23.0" css-declaration-sorter: "npm:^7.1.1" - cssnano-utils: "npm:^4.0.1" + cssnano-utils: "npm:^4.0.2" postcss-calc: "npm:^9.0.1" - postcss-colormin: "npm:^6.0.3" - postcss-convert-values: "npm:^6.0.4" - postcss-discard-comments: "npm:^6.0.1" - postcss-discard-duplicates: "npm:^6.0.2" - postcss-discard-empty: "npm:^6.0.2" - postcss-discard-overridden: "npm:^6.0.1" - postcss-merge-longhand: "npm:^6.0.3" - postcss-merge-rules: "npm:^6.0.4" - postcss-minify-font-values: "npm:^6.0.2" - postcss-minify-gradients: "npm:^6.0.2" - postcss-minify-params: "npm:^6.0.3" - postcss-minify-selectors: "npm:^6.0.2" - postcss-normalize-charset: "npm:^6.0.1" - postcss-normalize-display-values: "npm:^6.0.1" - postcss-normalize-positions: "npm:^6.0.1" - postcss-normalize-repeat-style: "npm:^6.0.1" - postcss-normalize-string: "npm:^6.0.1" - postcss-normalize-timing-functions: "npm:^6.0.1" - postcss-normalize-unicode: "npm:^6.0.3" - postcss-normalize-url: "npm:^6.0.1" - postcss-normalize-whitespace: "npm:^6.0.1" - postcss-ordered-values: "npm:^6.0.1" - postcss-reduce-initial: "npm:^6.0.3" - postcss-reduce-transforms: "npm:^6.0.1" - postcss-svgo: "npm:^6.0.2" - postcss-unique-selectors: "npm:^6.0.2" + postcss-colormin: "npm:^6.1.0" + postcss-convert-values: "npm:^6.1.0" + postcss-discard-comments: "npm:^6.0.2" + postcss-discard-duplicates: "npm:^6.0.3" + postcss-discard-empty: "npm:^6.0.3" + postcss-discard-overridden: "npm:^6.0.2" + postcss-merge-longhand: "npm:^6.0.4" + postcss-merge-rules: "npm:^6.1.0" + postcss-minify-font-values: "npm:^6.0.3" + postcss-minify-gradients: "npm:^6.0.3" + postcss-minify-params: "npm:^6.1.0" + postcss-minify-selectors: "npm:^6.0.3" + postcss-normalize-charset: "npm:^6.0.2" + postcss-normalize-display-values: "npm:^6.0.2" + postcss-normalize-positions: "npm:^6.0.2" + postcss-normalize-repeat-style: "npm:^6.0.2" + postcss-normalize-string: "npm:^6.0.2" + postcss-normalize-timing-functions: "npm:^6.0.2" + postcss-normalize-unicode: "npm:^6.1.0" + postcss-normalize-url: "npm:^6.0.2" + postcss-normalize-whitespace: "npm:^6.0.2" + postcss-ordered-values: "npm:^6.0.2" + postcss-reduce-initial: "npm:^6.1.0" + postcss-reduce-transforms: "npm:^6.0.2" + postcss-svgo: "npm:^6.0.3" + postcss-unique-selectors: "npm:^6.0.3" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/b51072bf808ad7af0e7d38eb2490fc9dd27bfa95c0de804f7b5f242a283cedd6446ef55936843e4c7c9856540e225e322a794e70b47ae515b894e84b629a58ea + checksum: 10c0/47b7026b66b80a03f043929f825f48a13ed3a4086a6f335f25312c77fe73977a74cf718a486f91d9513b652e7d34312394380141c3bf6b8c8027ebc96710b6f6 languageName: node linkType: hard -"cssnano-utils@npm:^4.0.1": - version: 4.0.1 - resolution: "cssnano-utils@npm:4.0.1" +"cssnano-utils@npm:^4.0.2": + version: 4.0.2 + resolution: "cssnano-utils@npm:4.0.2" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/20513a393402f283c85c450ece43d1a6a06a9906b524481043ac203a86888a4ca5cbef878c615a58fdd82a9e870ce62c6f3fea9f51814034a084d8980e17cf96 + checksum: 10c0/260b8c8ffa48b908aa77ef129f9b8648ecd92aed405b20e7fe6b8370779dd603530344fc9d96683d53533246e48b36ac9d2aa5a476b4f81c547bbad86d187f35 languageName: node linkType: hard "cssnano@npm:^6.0.1": - version: 6.0.5 - resolution: "cssnano@npm:6.0.5" + version: 6.1.0 + resolution: "cssnano@npm:6.1.0" dependencies: - cssnano-preset-default: "npm:^6.0.5" + cssnano-preset-default: "npm:^6.1.0" lilconfig: "npm:^3.1.1" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/f802b563bf4a3a973d91e0327803536d56c4667138587d84f6341f68862d7514bceb2f1258d7bbf66b2fdedf1e9c1b7fd0b4848bb0069296ecbebbdc70f2ccca + checksum: 10c0/ffe0d8c9110cce01692f51d21ae2fe6d319f2329989d28ef0dddb67a6fba2780c525f00682f0788bdbba380f37893d27ee870b3e99fb97c1fb8edccbd68a1d92 languageName: node linkType: hard @@ -8136,13 +8107,13 @@ __metadata: languageName: node linkType: hard -"follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.15.4": - version: 1.15.4 - resolution: "follow-redirects@npm:1.15.4" +"follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.15.6": + version: 1.15.6 + resolution: "follow-redirects@npm:1.15.6" peerDependenciesMeta: debug: optional: true - checksum: 10c0/5f37ed9170c9eb19448c5418fdb0f2b73f644b5364834e70791a76ecc7db215246f9773bbef4852cfae4067764ffc852e047f744b661b0211532155b73556a6a + checksum: 10c0/9ff767f0d7be6aa6870c82ac79cf0368cd73e01bbc00e9eb1c2a16fbb198ec105e3c9b6628bb98e9f3ac66fe29a957b9645bcb9a490bb7aa0d35f908b6b85071 languageName: node linkType: hard @@ -8890,9 +8861,9 @@ __metadata: linkType: hard "http-link-header@npm:^1.1.1": - version: 1.1.2 - resolution: "http-link-header@npm:1.1.2" - checksum: 10c0/d4ae44b912dd1f5a37c11438878b51635a7a8f9228bf004b2ecf9e1d23a9d912942b02e5f41695bbe9fa93ab380bdd10c58db717c3531c705116e61014aba3f0 + version: 1.1.3 + resolution: "http-link-header@npm:1.1.3" + checksum: 10c0/56698a9d3aee4d5319d1cdfe62ef5d7179f179ec1e6432d23c9e6a0c896be642ba47a4985a45419cff91008032aef920aca9df94ff9e763e646c83bf54b7243d languageName: node linkType: hard @@ -12697,9 +12668,9 @@ __metadata: languageName: node linkType: hard -"postcss-colormin@npm:^6.0.3": - version: 6.0.3 - resolution: "postcss-colormin@npm:6.0.3" +"postcss-colormin@npm:^6.1.0": + version: 6.1.0 + resolution: "postcss-colormin@npm:6.1.0" dependencies: browserslist: "npm:^4.23.0" caniuse-api: "npm:^3.0.0" @@ -12707,55 +12678,55 @@ __metadata: postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/beddf9fd1bda3f456e1235829297341de34ca40f9a2e16f23930e13d9df6b6186ca3717817da0adab266bf5e8fcde7bd056ab54187f959eb53d2bfbde7f441e6 + checksum: 10c0/0802963fa0d8f2fe408b2e088117670f5303c69a58c135f0ecf0e5ceff69e95e87111b22c4e29c9adb2f69aa8d3bc175f4e8e8708eeb99c9ffc36c17064de427 languageName: node linkType: hard -"postcss-convert-values@npm:^6.0.4": - version: 6.0.4 - resolution: "postcss-convert-values@npm:6.0.4" +"postcss-convert-values@npm:^6.1.0": + version: 6.1.0 + resolution: "postcss-convert-values@npm:6.1.0" dependencies: browserslist: "npm:^4.23.0" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/c267ae8f2dbfc7fff5e46cd984bb6191405fe76f1eee04fd10a69fe10065ad7c3b62fa36e4bef3fa3a730284cd7295cb66968afb6cdaad0571a57cfcb25248fc + checksum: 10c0/a80066965cb58fe8fcaf79f306b32c83fc678e1f0678e43f4db3e9fee06eed6db92cf30631ad348a17492769d44757400493c91a33ee865ee8dedea9234a11f5 languageName: node linkType: hard -"postcss-discard-comments@npm:^6.0.1": - version: 6.0.1 - resolution: "postcss-discard-comments@npm:6.0.1" +"postcss-discard-comments@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-discard-comments@npm:6.0.2" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/5e9128ffb8c005081bb0521f5a23cf090e8513d928ed39935504ffde2e335a62a7e1a749c5c7bc2d03f06a8667900d19dd7eed19dfa4273043b5fd760476260d + checksum: 10c0/338a1fcba7e2314d956e5e5b9bd1e12e6541991bf85ac72aed6e229a029bf60edb31f11576b677623576169aa7d9c75e1be259ac7b50d0b735b841b5518f9da9 languageName: node linkType: hard -"postcss-discard-duplicates@npm:^6.0.2": - version: 6.0.2 - resolution: "postcss-discard-duplicates@npm:6.0.2" +"postcss-discard-duplicates@npm:^6.0.3": + version: 6.0.3 + resolution: "postcss-discard-duplicates@npm:6.0.3" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/316b8263c3a06d3303288d99e093ed2922757222fe5ea457b70d8d3fccadf0a1a452a6cc3b8296e749e70b0a231b68a742f9e01c606baa7fe3e14327bae3094b + checksum: 10c0/24d2f00e54668f2837eb38a64b1751d7a4a73b2752f9749e61eb728f1fae837984bc2b339f7f5207aff5f66f72551253489114b59b9ba21782072677a81d7d1b languageName: node linkType: hard -"postcss-discard-empty@npm:^6.0.2": - version: 6.0.2 - resolution: "postcss-discard-empty@npm:6.0.2" +"postcss-discard-empty@npm:^6.0.3": + version: 6.0.3 + resolution: "postcss-discard-empty@npm:6.0.3" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/abae41eecf93ed7b2b34bb77d319d70093e663ee4b23dc0b1e0007044bbf4315d980539bb67466a8ed24a475afdd52bd465f92433466cf3bf2057591c7124ab1 + checksum: 10c0/1af08bb29f18eda41edf3602b257d89a4cf0a16f79fc773cfebd4a37251f8dbd9b77ac18efe55d0677d000b43a8adf2ef9328d31961c810e9433a38494a1fa65 languageName: node linkType: hard -"postcss-discard-overridden@npm:^6.0.1": - version: 6.0.1 - resolution: "postcss-discard-overridden@npm:6.0.1" +"postcss-discard-overridden@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-discard-overridden@npm:6.0.2" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/22f9d56e53b90bc0f8e6d1c24d6da6c7c1a9d757644a128a7a4263a5479aaa8eca4ce3bfe9db10358051635ed40e8778a68c3f1831b7163eae10ced001db4a87 + checksum: 10c0/fda70ef3cd4cb508369c5bbbae44d7760c40ec9f2e65df1cd1b6e0314317fb1d25ae7f64987ca84e66889c1e9d1862487a6ce391c159dfe04d536597bfc5030d languageName: node linkType: hard @@ -12782,77 +12753,77 @@ __metadata: languageName: node linkType: hard -"postcss-merge-longhand@npm:^6.0.3": - version: 6.0.3 - resolution: "postcss-merge-longhand@npm:6.0.3" +"postcss-merge-longhand@npm:^6.0.4": + version: 6.0.4 + resolution: "postcss-merge-longhand@npm:6.0.4" dependencies: postcss-value-parser: "npm:^4.2.0" - stylehacks: "npm:^6.0.3" + stylehacks: "npm:^6.1.0" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/a71758832e198af58a3d1c5013731c8dcd646611bd6ce099a5cbcef4dc2fd7c574e2f28f80bfe67887b046abfacca94bbeb2982bef3b087e9b52bd4acd3d8a38 + checksum: 10c0/6c05cfe60d86cb0b6f40abe4649e1c0c21cf416fbf17aa15f04c315fcef4887827db5ef2593eca27b2b14127f5338ab179b147940c22315b5a9bcb0bdbbfa768 languageName: node linkType: hard -"postcss-merge-rules@npm:^6.0.4": - version: 6.0.4 - resolution: "postcss-merge-rules@npm:6.0.4" +"postcss-merge-rules@npm:^6.1.0": + version: 6.1.0 + resolution: "postcss-merge-rules@npm:6.1.0" dependencies: browserslist: "npm:^4.23.0" caniuse-api: "npm:^3.0.0" - cssnano-utils: "npm:^4.0.1" + cssnano-utils: "npm:^4.0.2" postcss-selector-parser: "npm:^6.0.15" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/57a16817c099dfc644bf2619831208bafcfd91225cccc8f6d2913241fe4a7225b3dc565bc92402902b4271771ad5d56358afd8eb7f709827a6576177e0bf9433 + checksum: 10c0/3ce76c87e29003fe46fbeba64348ed61d50d8966cfd56ec59b70b6fbf2e2ea8866b8399eec09e036fc636c84207ba12037a1dbc1374fd313a885511947699cad languageName: node linkType: hard -"postcss-minify-font-values@npm:^6.0.2": - version: 6.0.2 - resolution: "postcss-minify-font-values@npm:6.0.2" +"postcss-minify-font-values@npm:^6.0.3": + version: 6.0.3 + resolution: "postcss-minify-font-values@npm:6.0.3" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/6a9407441531efd83683d529c9632c5c4ac7d971716dffa708b3775f36382ca9a960372793c4f9df68aaae513213a53400860d9a6bd233da6f68f8fc985efe72 + checksum: 10c0/c1ae31099e3ae79169405d3d46cd49cff35c70c63d1f36f24b16fcce43999c130db396e1fde071a375bd5b4853b14058111034a8da278a3a31f9ca12e091116e languageName: node linkType: hard -"postcss-minify-gradients@npm:^6.0.2": - version: 6.0.2 - resolution: "postcss-minify-gradients@npm:6.0.2" +"postcss-minify-gradients@npm:^6.0.3": + version: 6.0.3 + resolution: "postcss-minify-gradients@npm:6.0.3" dependencies: colord: "npm:^2.9.3" - cssnano-utils: "npm:^4.0.1" + cssnano-utils: "npm:^4.0.2" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/7a72edf3fe0028010d85af77d8c6bfa6147785bc9b3758efb0d09b51a8254ce3f8bc3f67220af6f204bb175e95b9e8355baf29b9c32b1df590506bca835b02f4 + checksum: 10c0/7fcbcec94fe5455b89fe1b424a451198e60e0407c894bbacdc062d9fdef2f8571b483b5c3bb17f22d2f1249431251b2de22e1e4e8b0614d10624f8ee6e71afd2 languageName: node linkType: hard -"postcss-minify-params@npm:^6.0.3": - version: 6.0.3 - resolution: "postcss-minify-params@npm:6.0.3" +"postcss-minify-params@npm:^6.1.0": + version: 6.1.0 + resolution: "postcss-minify-params@npm:6.1.0" dependencies: browserslist: "npm:^4.23.0" - cssnano-utils: "npm:^4.0.1" + cssnano-utils: "npm:^4.0.2" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/65a8bc0f75e7dc8a292797209ec0b1adef52923daf181ad34a7e83cbc974e2192e0e35ce0f35dbcb0177828991f92da8e239564f56588482d99c04a3e0755266 + checksum: 10c0/e5c38c3e5fb42e2ca165764f983716e57d854a63a477f7389ccc94cd2ab8123707006613bd7f29acc6eafd296fff513aa6d869c98ac52590f886d641cb21a59e languageName: node linkType: hard -"postcss-minify-selectors@npm:^6.0.2": - version: 6.0.2 - resolution: "postcss-minify-selectors@npm:6.0.2" +"postcss-minify-selectors@npm:^6.0.3": + version: 6.0.3 + resolution: "postcss-minify-selectors@npm:6.0.3" dependencies: postcss-selector-parser: "npm:^6.0.15" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/5437b586c1237fc442e7e6078d4f23c987efc456366368b07a0da67332b04bd55821cedf0441e73e1209689f63139e272d930508e2963ba6e27c46561a661128 + checksum: 10c0/6abc83edf3fd746979ef709182fd613a764c5c2f68ae20aaa1b38940153a1078c0b270d657fe3bcfe6cda44b61f5af762fe9b31b8b62f63b897bfc2d2bc02b88 languageName: node linkType: hard @@ -12900,136 +12871,136 @@ __metadata: languageName: node linkType: hard -"postcss-normalize-charset@npm:^6.0.1": - version: 6.0.1 - resolution: "postcss-normalize-charset@npm:6.0.1" +"postcss-normalize-charset@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-normalize-charset@npm:6.0.2" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/8c09eedaf8813123875c65ab35120f14a87d6b9e8d6805fa808e3a714a8f868d15123f34f61e2240d89225f2f5c2bdabbcdf6385ce86b2487370d8994a65a857 + checksum: 10c0/af32a3b4cf94163d728b8aa935b2494c9f69fbc96a33b35f67ae15dbdef7fcc8732569df97cbaaf20ca6c0103c39adad0cfce2ba07ffed283796787f6c36f410 languageName: node linkType: hard -"postcss-normalize-display-values@npm:^6.0.1": - version: 6.0.1 - resolution: "postcss-normalize-display-values@npm:6.0.1" +"postcss-normalize-display-values@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-normalize-display-values@npm:6.0.2" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/d08a92c653fb4f2506e029ceb8e3fdae9bc937fb1a7e80ecde759d02f6d15f69211af384d89d8582b160fd129abd9c77c8c64d75379417098ee5a2ba779e33d3 + checksum: 10c0/782761850c7e697fdb6c3ff53076de716a71b60f9e835efb2f7ef238de347c88b5d55f0d43cf5c608e1ee58de65360e3d9fccd5f20774bba08ded7c87d8a5651 languageName: node linkType: hard -"postcss-normalize-positions@npm:^6.0.1": - version: 6.0.1 - resolution: "postcss-normalize-positions@npm:6.0.1" +"postcss-normalize-positions@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-normalize-positions@npm:6.0.2" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/bb0267b13c92791543f5e9f94b119a0540e08aa46f600acd73a692cd38d07d2d2fddb11148a81adb58e3f65671eebb05ea38d2ded48f3202b2582f1199aa848e + checksum: 10c0/9fdd42a47226bbda5f68774f3c4c3a90eb4fa708aef5a997c6a52fe6cac06585c9774038fe3bc1aa86a203c29223b8d8db6ebe7580c1aa293154f2b48db0b038 languageName: node linkType: hard -"postcss-normalize-repeat-style@npm:^6.0.1": - version: 6.0.1 - resolution: "postcss-normalize-repeat-style@npm:6.0.1" +"postcss-normalize-repeat-style@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-normalize-repeat-style@npm:6.0.2" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/f6e943dbbf9341dd6ce2c9fc6820e8ae2a838d1db84f58f75b1e5c1b8b9d6895d17fb30b320e2189b8747f844713ec687540b5b1d52ccd6c9108d6d35328c659 + checksum: 10c0/9133ccbdf1286920c1cd0d01c1c5fa0bd3251b717f2f3e47d691dcc44978ac1dc419d20d9ae5428bd48ee542059e66b823ba699356f5968ccced5606c7c7ca34 languageName: node linkType: hard -"postcss-normalize-string@npm:^6.0.1": - version: 6.0.1 - resolution: "postcss-normalize-string@npm:6.0.1" +"postcss-normalize-string@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-normalize-string@npm:6.0.2" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/afcdd69522fc3ebafc349c2ef4b62f1e734ade9b6148fd20f2b841477808ac6cf6e5bfbb533c492fdc6bb2184b84be8ebb800a6ae174c4313f87fb0695088cc0 + checksum: 10c0/fecc2d52c4029b24fecf2ca2fb45df5dbdf9f35012194ad4ea80bc7be3252cdcb21a0976400902320595aa6178f2cc625cc804c6b6740aef6efa42105973a205 languageName: node linkType: hard -"postcss-normalize-timing-functions@npm:^6.0.1": - version: 6.0.1 - resolution: "postcss-normalize-timing-functions@npm:6.0.1" +"postcss-normalize-timing-functions@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-normalize-timing-functions@npm:6.0.2" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/c1c81d0dcb2f74fbd69cc45b0b6bd6cde390a0c9df602aabbf3eb2149a49da48e808837e811d22a525ffb036e158e63b4b2cf12c94cf28f2c2f6af858876134e + checksum: 10c0/a22af0b3374704e59ae70bbbcc66b7029137e284f04e30a2ad548818d1540d6c1ed748dd8f689b9b6df5c1064085a00ad07b6f7e25ffaad49d4e661b616cdeae languageName: node linkType: hard -"postcss-normalize-unicode@npm:^6.0.3": - version: 6.0.3 - resolution: "postcss-normalize-unicode@npm:6.0.3" +"postcss-normalize-unicode@npm:^6.1.0": + version: 6.1.0 + resolution: "postcss-normalize-unicode@npm:6.1.0" dependencies: browserslist: "npm:^4.23.0" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/9a79ff4fcdfc876e12fa595271f2fca655a5022fd63a202387fa9be1f6705a6e34395d555de8878ffed8b0305281ff452e26045bdc710e161f4103380b1d05d8 + checksum: 10c0/ff5746670d94dd97b49a0955c3c71ff516fb4f54bbae257f877d179bacc44a62e50a0fd6e7ddf959f2ca35c335de4266b0c275d880bb57ad7827189339ab1582 languageName: node linkType: hard -"postcss-normalize-url@npm:^6.0.1": - version: 6.0.1 - resolution: "postcss-normalize-url@npm:6.0.1" +"postcss-normalize-url@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-normalize-url@npm:6.0.2" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/4e3e713a95e01f263feccd041b2b10016a0a09e494c81567f012d1326d9b2d57dc4a68956a820313630370c0ef591bdbb37cc96ed259022559623be179aad436 + checksum: 10c0/4718f1c0657788d2c560b340ee8e0a4eb3eb053eba6fbbf489e9a6e739b4c5f9ce1957f54bd03497c50a1f39962bf6ab9ff6ba4976b69dd160f6afd1670d69b7 languageName: node linkType: hard -"postcss-normalize-whitespace@npm:^6.0.1": - version: 6.0.1 - resolution: "postcss-normalize-whitespace@npm:6.0.1" +"postcss-normalize-whitespace@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-normalize-whitespace@npm:6.0.2" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/259c0b7653f033ed14303602a30e458c37dc63ee55f47226b6379a6ea553ca7c9b971d49715b8f3f36a3a06927f6f87d7997c027ad4664af3bca37a5fe30352e + checksum: 10c0/d5275a88e29a894aeb83a2a833e816d2456dbf3f39961628df596ce205dcc4895186a023812ff691945e0804241ccc53e520d16591b5812288474b474bbaf652 languageName: node linkType: hard -"postcss-ordered-values@npm:^6.0.1": - version: 6.0.1 - resolution: "postcss-ordered-values@npm:6.0.1" +"postcss-ordered-values@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-ordered-values@npm:6.0.2" dependencies: - cssnano-utils: "npm:^4.0.1" + cssnano-utils: "npm:^4.0.2" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/2e71f035c90b26d7a8d31e1b716f977532367f75bc76de3318b6ba7b2e1ec43c011cc09e741f59f7d93dff427b7d90a35db0b460d2f171a6f0c6e8c938ef30ad + checksum: 10c0/aece23a289228aa804217a85f8da198d22b9123f02ca1310b81834af380d6fbe115e4300683599b4a2ab7f1c6a1dbd6789724c47c38e2b0a3774f2ea4b4f0963 languageName: node linkType: hard -"postcss-reduce-initial@npm:^6.0.3": - version: 6.0.3 - resolution: "postcss-reduce-initial@npm:6.0.3" +"postcss-reduce-initial@npm:^6.1.0": + version: 6.1.0 + resolution: "postcss-reduce-initial@npm:6.1.0" dependencies: browserslist: "npm:^4.23.0" caniuse-api: "npm:^3.0.0" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/824813d56f1f0d502b35781de5dd3caa5af71c9652710c95266ef8602a36cd9ea757033fb7206562d0a03e21f7a4198c09538dbf8c7548d014631a64bdcbb406 + checksum: 10c0/a8f28cf51ce9a1b9423cce1a01c1d7cbee90125930ec36435a0073e73aef402d90affe2fd3600c964b679cf738869fda447b95a9acce74414e9d67d5c6ba8646 languageName: node linkType: hard -"postcss-reduce-transforms@npm:^6.0.1": - version: 6.0.1 - resolution: "postcss-reduce-transforms@npm:6.0.1" +"postcss-reduce-transforms@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-reduce-transforms@npm:6.0.2" dependencies: postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/de7631302311071d86622166539162e69df506785e3674afab0602c86ed9aa67799e44405b40327f0011d58089d2dc4e2ae481b21812177818e28f9272d350a5 + checksum: 10c0/755ef27b3d083f586ac831f0c611a66e76f504d27e2100dc7674f6b86afad597901b4520cb889fe58ca70e852aa7fd0c0acb69a63d39dfe6a95860b472394e7c languageName: node linkType: hard @@ -13068,26 +13039,26 @@ __metadata: languageName: node linkType: hard -"postcss-svgo@npm:^6.0.2": - version: 6.0.2 - resolution: "postcss-svgo@npm:6.0.2" +"postcss-svgo@npm:^6.0.3": + version: 6.0.3 + resolution: "postcss-svgo@npm:6.0.3" dependencies: postcss-value-parser: "npm:^4.2.0" svgo: "npm:^3.2.0" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/db607404d09af256c7957a0ace822d651a00a52a1796da603f93ba3f0a095ac7595e1f624b9dc53f362ab10e382845d7873f485980f9c92fcb86256833f5e835 + checksum: 10c0/994b15a88cbb411f32cfa98957faa5623c76f2d75fede51f5f47238f06b367ebe59c204fecbdaf21ccb9e727239a4b290087e04c502392658a0c881ddfbd61f2 languageName: node linkType: hard -"postcss-unique-selectors@npm:^6.0.2": - version: 6.0.2 - resolution: "postcss-unique-selectors@npm:6.0.2" +"postcss-unique-selectors@npm:^6.0.3": + version: 6.0.3 + resolution: "postcss-unique-selectors@npm:6.0.3" dependencies: postcss-selector-parser: "npm:^6.0.15" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/a0fe112d1094f90e1bfcfd2174a74b2fd0630a24449e9942923d02956c7d64ea4add5adede53d9efb3f6d40cd388ac150d032a115f6a46b73d5f3d3d26fa1bb7 + checksum: 10c0/884c5da4c3bfdacf6a61bb3bd23d212e61d2b3e99ba5099d4d646d18970d2c72d8f6bd8f2ab244ee68d7214e576dc3fd9004fc946ff872e745a965da29f7b18b languageName: node linkType: hard @@ -13099,13 +13070,13 @@ __metadata: linkType: hard "postcss@npm:^8.2.15, postcss@npm:^8.4.24, postcss@npm:^8.4.33": - version: 8.4.35 - resolution: "postcss@npm:8.4.35" + version: 8.4.36 + resolution: "postcss@npm:8.4.36" dependencies: nanoid: "npm:^3.3.7" picocolors: "npm:^1.0.0" - source-map-js: "npm:^1.0.2" - checksum: 10c0/e8dd04e48001eb5857abc9475365bf08f4e508ddf9bc0b8525449a95d190f10d025acebc5b56ac2e94b3c7146790e4ae78989bb9633cb7ee20d1cc9b7dc909b2 + source-map-js: "npm:^1.1.0" + checksum: 10c0/e7c834e31d8f4e8dfd0a427df36fdc7bdc58a16e373551618e2c3ac172019eb816b24f1b4709311ebcade8d3ba31b2d75522d28ef45ecbbeb11eb01f265579fb languageName: node linkType: hard @@ -13640,7 +13611,7 @@ __metadata: languageName: node linkType: hard -"react-overlays@npm:*, react-overlays@npm:^5.2.1": +"react-overlays@npm:^5.2.1": version: 5.2.1 resolution: "react-overlays@npm:5.2.1" dependencies: @@ -13779,7 +13750,7 @@ __metadata: languageName: node linkType: hard -"react-select@npm:*, react-select@npm:^5.7.3": +"react-select@npm:^5.7.3": version: 5.8.0 resolution: "react-select@npm:5.8.0" dependencies: @@ -13884,7 +13855,7 @@ __metadata: languageName: node linkType: hard -"react-textarea-autosize@npm:*, react-textarea-autosize@npm:^8.4.1": +"react-textarea-autosize@npm:^8.4.1": version: 8.5.3 resolution: "react-textarea-autosize@npm:8.5.3" dependencies: @@ -14577,15 +14548,15 @@ __metadata: linkType: hard "sass@npm:^1.62.1": - version: 1.71.1 - resolution: "sass@npm:1.71.1" + version: 1.72.0 + resolution: "sass@npm:1.72.0" dependencies: chokidar: "npm:>=3.0.0 <4.0.0" immutable: "npm:^4.0.0" source-map-js: "npm:>=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 10c0/59d79a6e106747746792b0c71908ae0aecdaf9b794d5724ee64e5249412f0d8ebe7ee2bf12946618848f14f949c4f6b530d82da3e62ab31c71198c6f73002130 + checksum: 10c0/7df1bb470648edc4b528976b1b165c78d4c6731f680afac7cdc8324142f1ef4304598d317d98dac747a2ae8eee17271d760def90bba072021a8b19b459336ccd languageName: node linkType: hard @@ -15085,10 +15056,10 @@ __metadata: languageName: node linkType: hard -"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.1, source-map-js@npm:^1.0.2": - version: 1.0.2 - resolution: "source-map-js@npm:1.0.2" - checksum: 10c0/32f2dfd1e9b7168f9a9715eb1b4e21905850f3b50cf02cf476e47e4eebe8e6b762b63a64357896aa29b37e24922b4282df0f492e0d2ace572b43d15525976ff8 +"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.1, source-map-js@npm:^1.1.0": + version: 1.1.0 + resolution: "source-map-js@npm:1.1.0" + checksum: 10c0/d1f016efe4fcf67fd92e36da0670f2889b13a36cc453329758336450e811c61164376eb451b453b4dd4e89a760f841b0a014942d54f240af31a791829bc0e336 languageName: node linkType: hard @@ -15627,15 +15598,15 @@ __metadata: languageName: node linkType: hard -"stylehacks@npm:^6.0.3": - version: 6.0.3 - resolution: "stylehacks@npm:6.0.3" +"stylehacks@npm:^6.1.0": + version: 6.1.0 + resolution: "stylehacks@npm:6.1.0" dependencies: browserslist: "npm:^4.23.0" postcss-selector-parser: "npm:^6.0.15" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/780c147a695d77794f60e993824f3c67f1cde04905163e5a1b50ba8a1715ddda789cfdf86d46711713afe4a38252d5e3f6d79b103dc29d3b6f3749c24749de1d + checksum: 10c0/0e9624d2b12d00d5593e3ef9ef8ed1f4c2029087b4862567cfab9ea3d3fc21efeb9aa00251c13defdfff4481abff8d6e0c48e3e27fac967c959acc7dcb0d5b67 languageName: node linkType: hard @@ -16359,22 +16330,22 @@ __metadata: linkType: hard "typescript@npm:5, typescript@npm:^5.0.4": - version: 5.3.3 - resolution: "typescript@npm:5.3.3" + version: 5.4.2 + resolution: "typescript@npm:5.4.2" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/e33cef99d82573624fc0f854a2980322714986bc35b9cb4d1ce736ed182aeab78e2cb32b385efa493b2a976ef52c53e20d6c6918312353a91850e2b76f1ea44f + checksum: 10c0/583ff68cafb0c076695f72d61df6feee71689568179fb0d3a4834dac343df6b6ed7cf7b6f6c801fa52d43cd1d324e2f2d8ae4497b09f9e6cfe3d80a6d6c9ca52 languageName: node linkType: hard "typescript@patch:typescript@npm%3A5#optional!builtin, typescript@patch:typescript@npm%3A^5.0.4#optional!builtin": - version: 5.3.3 - resolution: "typescript@patch:typescript@npm%3A5.3.3#optional!builtin::version=5.3.3&hash=e012d7" + version: 5.4.2 + resolution: "typescript@patch:typescript@npm%3A5.4.2#optional!builtin::version=5.4.2&hash=5adc0c" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/1d0a5f4ce496c42caa9a30e659c467c5686eae15d54b027ee7866744952547f1be1262f2d40de911618c242b510029d51d43ff605dba8fb740ec85ca2d3f9500 + checksum: 10c0/fcf6658073d07283910d9a0e04b1d5d0ebc822c04dbb7abdd74c3151c7aa92fcddbac7d799404e358197222006ccdc4c0db219d223d2ee4ccd9e2b01333b49be languageName: node linkType: hard