Merge remote-tracking branch 'parent/main' into upstream-20250210

This commit is contained in:
KMY 2025-02-10 09:09:12 +09:00
commit f3f93ba0c6
108 changed files with 1041 additions and 727 deletions

View file

@ -24,8 +24,6 @@ jobs:
uses: ./.github/workflows/build-container-image.yml uses: ./.github/workflows/build-container-image.yml
with: with:
file_to_build: Dockerfile file_to_build: Dockerfile
platforms: linux/amd64,linux/arm64
use_native_arm64_builder: true
cache: false cache: false
push_to_images: | push_to_images: |
tootsuite/mastodon tootsuite/mastodon
@ -46,8 +44,6 @@ jobs:
uses: ./.github/workflows/build-container-image.yml uses: ./.github/workflows/build-container-image.yml
with: with:
file_to_build: streaming/Dockerfile file_to_build: streaming/Dockerfile
platforms: linux/amd64,linux/arm64
use_native_arm64_builder: true
cache: false cache: false
push_to_images: | push_to_images: |
tootsuite/mastodon-streaming tootsuite/mastodon-streaming

View file

@ -67,7 +67,6 @@ jobs:
DB_HOST: localhost DB_HOST: localhost
DB_USER: postgres DB_USER: postgres
DB_PASS: postgres DB_PASS: postgres
DISABLE_SIMPLECOV: true
RAILS_ENV: test RAILS_ENV: test
BUNDLE_CLEAN: true BUNDLE_CLEAN: true
BUNDLE_FROZEN: true BUNDLE_FROZEN: true

View file

@ -110,7 +110,7 @@ jobs:
DB_HOST: localhost DB_HOST: localhost
DB_USER: postgres DB_USER: postgres
DB_PASS: postgres DB_PASS: postgres
DISABLE_SIMPLECOV: ${{ matrix.ruby-version != '.ruby-version' }} COVERAGE: ${{ matrix.ruby-version == '.ruby-version' }}
RAILS_ENV: test RAILS_ENV: test
ALLOW_NOPAM: true ALLOW_NOPAM: true
PAM_ENABLED: true PAM_ENABLED: true
@ -212,7 +212,7 @@ jobs:
DB_HOST: localhost DB_HOST: localhost
DB_USER: postgres DB_USER: postgres
DB_PASS: postgres DB_PASS: postgres
DISABLE_SIMPLECOV: ${{ matrix.ruby-version != '.ruby-version' }} COVERAGE: ${{ matrix.ruby-version == '.ruby-version' }}
RAILS_ENV: test RAILS_ENV: test
ALLOW_NOPAM: true ALLOW_NOPAM: true
PAM_ENABLED: true PAM_ENABLED: true
@ -299,7 +299,6 @@ jobs:
DB_HOST: localhost DB_HOST: localhost
DB_USER: postgres DB_USER: postgres
DB_PASS: postgres DB_PASS: postgres
DISABLE_SIMPLECOV: true
RAILS_ENV: test RAILS_ENV: test
BUNDLE_WITH: test BUNDLE_WITH: test
ES_ENABLED: false ES_ENABLED: false
@ -416,7 +415,6 @@ jobs:
DB_HOST: localhost DB_HOST: localhost
DB_USER: postgres DB_USER: postgres
DB_PASS: postgres DB_PASS: postgres
DISABLE_SIMPLECOV: true
RAILS_ENV: test RAILS_ENV: test
BUNDLE_WITH: test BUNDLE_WITH: test
ES_ENABLED: true ES_ENABLED: true

10
Gemfile
View file

@ -116,7 +116,7 @@ group :opentelemetry do
gem 'opentelemetry-instrumentation-net_http', '~> 0.23.0', require: false gem 'opentelemetry-instrumentation-net_http', '~> 0.23.0', require: false
gem 'opentelemetry-instrumentation-pg', '~> 0.30.0', require: false gem 'opentelemetry-instrumentation-pg', '~> 0.30.0', require: false
gem 'opentelemetry-instrumentation-rack', '~> 0.26.0', require: false gem 'opentelemetry-instrumentation-rack', '~> 0.26.0', require: false
gem 'opentelemetry-instrumentation-rails', '~> 0.35.0', require: false gem 'opentelemetry-instrumentation-rails', '~> 0.36.0', require: false
gem 'opentelemetry-instrumentation-redis', '~> 0.26.0', require: false gem 'opentelemetry-instrumentation-redis', '~> 0.26.0', require: false
gem 'opentelemetry-instrumentation-sidekiq', '~> 0.26.0', require: false gem 'opentelemetry-instrumentation-sidekiq', '~> 0.26.0', require: false
gem 'opentelemetry-sdk', '~> 1.4', require: false gem 'opentelemetry-sdk', '~> 1.4', require: false
@ -156,7 +156,7 @@ group :test do
gem 'shoulda-matchers' gem 'shoulda-matchers'
# Coverage formatter for RSpec test if DISABLE_SIMPLECOV is false # Coverage formatter for RSpec
gem 'simplecov', '~> 0.22', require: false gem 'simplecov', '~> 0.22', require: false
gem 'simplecov-lcov', '~> 0.8', require: false gem 'simplecov-lcov', '~> 0.8', require: false
@ -174,7 +174,7 @@ group :development do
gem 'rubocop-rspec_rails', require: false gem 'rubocop-rspec_rails', require: false
# Annotates modules with schema # Annotates modules with schema
gem 'annotaterb', '~> 4.13' gem 'annotaterb', '~> 4.13', require: false
# Enhanced error message pages for development # Enhanced error message pages for development
gem 'better_errors', '~> 2.9' gem 'better_errors', '~> 2.9'
@ -197,7 +197,7 @@ end
group :development, :test do group :development, :test do
# Interactive Debugging tools # Interactive Debugging tools
gem 'debug', '~> 1.8' gem 'debug', '~> 1.8', require: false
# Generate fake data values # Generate fake data values
gem 'faker', '~> 3.2' gem 'faker', '~> 3.2'
@ -209,7 +209,7 @@ group :development, :test do
gem 'memory_profiler', require: false gem 'memory_profiler', require: false
gem 'ruby-prof', require: false gem 'ruby-prof', require: false
gem 'stackprof', require: false gem 'stackprof', require: false
gem 'test-prof' gem 'test-prof', require: false
# RSpec runner for rails # RSpec runner for rails
gem 'rspec-rails', '~> 7.0' gem 'rspec-rails', '~> 7.0'

View file

@ -220,7 +220,7 @@ GEM
erubi (1.13.1) erubi (1.13.1)
et-orbi (1.2.11) et-orbi (1.2.11)
tzinfo tzinfo
excon (0.112.0) excon (1.2.3)
fabrication (2.31.0) fabrication (2.31.0)
faker (3.5.1) faker (3.5.1)
i18n (>= 1.8.11, < 2) i18n (>= 1.8.11, < 2)
@ -244,15 +244,15 @@ GEM
flatware-rspec (2.3.4) flatware-rspec (2.3.4)
flatware (= 2.3.4) flatware (= 2.3.4)
rspec (>= 3.6) rspec (>= 3.6)
fog-core (2.5.0) fog-core (2.6.0)
builder builder
excon (~> 0.71) excon (~> 1.0)
formatador (>= 0.2, < 2.0) formatador (>= 0.2, < 2.0)
mime-types mime-types
fog-json (1.2.0) fog-json (1.2.0)
fog-core fog-core
multi_json (~> 1.10) multi_json (~> 1.10)
fog-openstack (1.1.3) fog-openstack (1.1.4)
fog-core (~> 2.1) fog-core (~> 2.1)
fog-json (>= 1.0) fog-json (>= 1.0)
formatador (1.1.0) formatador (1.1.0)
@ -273,7 +273,7 @@ GEM
activesupport (>= 5.1) activesupport (>= 5.1)
haml (>= 4.0.6) haml (>= 4.0.6)
railties (>= 5.1) railties (>= 5.1)
haml_lint (0.59.0) haml_lint (0.60.0)
haml (>= 5.0) haml (>= 5.0)
parallel (~> 1.10) parallel (~> 1.10)
rainbow rainbow
@ -350,7 +350,7 @@ GEM
addressable (~> 2.8) addressable (~> 2.8)
bigdecimal (~> 3.1) bigdecimal (~> 3.1)
jsonapi-renderer (0.2.2) jsonapi-renderer (0.2.2)
jwt (2.9.3) jwt (2.10.1)
base64 base64
kaminari (1.2.2) kaminari (1.2.2)
activesupport (>= 4.1.0) activesupport (>= 4.1.0)
@ -407,7 +407,7 @@ GEM
mime-types (3.6.0) mime-types (3.6.0)
logger logger
mime-types-data (~> 3.2015) mime-types-data (~> 3.2015)
mime-types-data (3.2025.0107) mime-types-data (3.2025.0204)
mini_mime (1.1.5) mini_mime (1.1.5)
mini_portile2 (2.8.8) mini_portile2 (2.8.8)
minitest (5.25.4) minitest (5.25.4)
@ -461,7 +461,7 @@ GEM
validate_email validate_email
validate_url validate_url
webfinger (~> 1.2) webfinger (~> 1.2)
openssl (3.2.1) openssl (3.3.0)
openssl-signature_algorithm (1.3.0) openssl-signature_algorithm (1.3.0)
openssl (> 2.0) openssl (> 2.0)
opentelemetry-api (1.4.0) opentelemetry-api (1.4.0)
@ -480,7 +480,7 @@ GEM
opentelemetry-api (~> 1.0) opentelemetry-api (~> 1.0)
opentelemetry-instrumentation-active_support (~> 0.7) opentelemetry-instrumentation-active_support (~> 0.7)
opentelemetry-instrumentation-base (~> 0.23.0) opentelemetry-instrumentation-base (~> 0.23.0)
opentelemetry-instrumentation-action_pack (0.11.0) opentelemetry-instrumentation-action_pack (0.12.0)
opentelemetry-api (~> 1.0) opentelemetry-api (~> 1.0)
opentelemetry-instrumentation-base (~> 0.23.0) opentelemetry-instrumentation-base (~> 0.23.0)
opentelemetry-instrumentation-rack (~> 0.21) opentelemetry-instrumentation-rack (~> 0.21)
@ -498,6 +498,10 @@ GEM
opentelemetry-instrumentation-active_record (0.9.0) opentelemetry-instrumentation-active_record (0.9.0)
opentelemetry-api (~> 1.0) opentelemetry-api (~> 1.0)
opentelemetry-instrumentation-base (~> 0.23.0) opentelemetry-instrumentation-base (~> 0.23.0)
opentelemetry-instrumentation-active_storage (0.1.0)
opentelemetry-api (~> 1.4.0)
opentelemetry-instrumentation-active_support (~> 0.7)
opentelemetry-instrumentation-base (~> 0.23.0)
opentelemetry-instrumentation-active_support (0.8.0) opentelemetry-instrumentation-active_support (0.8.0)
opentelemetry-api (~> 1.0) opentelemetry-api (~> 1.0)
opentelemetry-instrumentation-base (~> 0.23.0) opentelemetry-instrumentation-base (~> 0.23.0)
@ -530,17 +534,18 @@ GEM
opentelemetry-instrumentation-rack (0.26.0) opentelemetry-instrumentation-rack (0.26.0)
opentelemetry-api (~> 1.0) opentelemetry-api (~> 1.0)
opentelemetry-instrumentation-base (~> 0.23.0) opentelemetry-instrumentation-base (~> 0.23.0)
opentelemetry-instrumentation-rails (0.35.1) opentelemetry-instrumentation-rails (0.36.0)
opentelemetry-api (~> 1.0) opentelemetry-api (~> 1.0)
opentelemetry-instrumentation-action_mailer (~> 0.4.0) opentelemetry-instrumentation-action_mailer (~> 0.4.0)
opentelemetry-instrumentation-action_pack (~> 0.11.0) opentelemetry-instrumentation-action_pack (~> 0.12.0)
opentelemetry-instrumentation-action_view (~> 0.9.0) opentelemetry-instrumentation-action_view (~> 0.9.0)
opentelemetry-instrumentation-active_job (~> 0.8.0) opentelemetry-instrumentation-active_job (~> 0.8.0)
opentelemetry-instrumentation-active_record (~> 0.9.0) opentelemetry-instrumentation-active_record (~> 0.9.0)
opentelemetry-instrumentation-active_storage (~> 0.1.0)
opentelemetry-instrumentation-active_support (~> 0.8.0) opentelemetry-instrumentation-active_support (~> 0.8.0)
opentelemetry-instrumentation-base (~> 0.23.0) opentelemetry-instrumentation-base (~> 0.23.0)
opentelemetry-instrumentation-concurrent_ruby (~> 0.22.0) opentelemetry-instrumentation-concurrent_ruby (~> 0.22.0)
opentelemetry-instrumentation-redis (0.26.0) opentelemetry-instrumentation-redis (0.26.1)
opentelemetry-api (~> 1.0) opentelemetry-api (~> 1.0)
opentelemetry-instrumentation-base (~> 0.23.0) opentelemetry-instrumentation-base (~> 0.23.0)
opentelemetry-instrumentation-sidekiq (0.26.0) opentelemetry-instrumentation-sidekiq (0.26.0)
@ -548,7 +553,7 @@ GEM
opentelemetry-instrumentation-base (~> 0.23.0) opentelemetry-instrumentation-base (~> 0.23.0)
opentelemetry-registry (0.3.1) opentelemetry-registry (0.3.1)
opentelemetry-api (~> 1.1) opentelemetry-api (~> 1.1)
opentelemetry-sdk (1.6.0) opentelemetry-sdk (1.7.0)
opentelemetry-api (~> 1.1) opentelemetry-api (~> 1.1)
opentelemetry-common (~> 0.20) opentelemetry-common (~> 0.20)
opentelemetry-registry (~> 0.2) opentelemetry-registry (~> 0.2)
@ -591,7 +596,7 @@ GEM
date date
stringio stringio
public_suffix (6.0.1) public_suffix (6.0.1)
puma (6.5.0) puma (6.6.0)
nio4r (~> 2.0) nio4r (~> 2.0)
pundit (2.4.0) pundit (2.4.0)
activesupport (>= 3.0.0) activesupport (>= 3.0.0)
@ -692,7 +697,7 @@ GEM
rspec-core (~> 3.13.0) rspec-core (~> 3.13.0)
rspec-expectations (~> 3.13.0) rspec-expectations (~> 3.13.0)
rspec-mocks (~> 3.13.0) rspec-mocks (~> 3.13.0)
rspec-core (3.13.2) rspec-core (3.13.3)
rspec-support (~> 3.13.0) rspec-support (~> 3.13.0)
rspec-expectations (3.13.3) rspec-expectations (3.13.3)
diff-lcs (>= 1.2.0, < 2.0) diff-lcs (>= 1.2.0, < 2.0)
@ -702,7 +707,7 @@ GEM
rspec-mocks (3.13.2) rspec-mocks (3.13.2)
diff-lcs (>= 1.2.0, < 2.0) diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0) rspec-support (~> 3.13.0)
rspec-rails (7.1.0) rspec-rails (7.1.1)
actionpack (>= 7.0) actionpack (>= 7.0)
activesupport (>= 7.0) activesupport (>= 7.0)
railties (>= 7.0) railties (>= 7.0)
@ -716,14 +721,14 @@ GEM
rspec-mocks (~> 3.0) rspec-mocks (~> 3.0)
sidekiq (>= 5, < 8) sidekiq (>= 5, < 8)
rspec-support (3.13.2) rspec-support (3.13.2)
rubocop (1.71.0) rubocop (1.71.2)
json (~> 2.3) json (~> 2.3)
language_server-protocol (>= 3.17.0) language_server-protocol (>= 3.17.0)
parallel (~> 1.10) parallel (~> 1.10)
parser (>= 3.3.0.2) parser (>= 3.3.0.2)
rainbow (>= 2.2.2, < 4.0) rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 2.9.3, < 3.0) regexp_parser (>= 2.9.3, < 3.0)
rubocop-ast (>= 1.36.2, < 2.0) rubocop-ast (>= 1.38.0, < 2.0)
ruby-progressbar (~> 1.7) ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 4.0) unicode-display_width (>= 2.4.0, < 4.0)
rubocop-ast (1.38.0) rubocop-ast (1.38.0)
@ -748,7 +753,7 @@ GEM
ruby-saml (1.17.0) ruby-saml (1.17.0)
nokogiri (>= 1.13.10) nokogiri (>= 1.13.10)
rexml rexml
ruby-vips (2.2.2) ruby-vips (2.2.3)
ffi (~> 1.12) ffi (~> 1.12)
logger logger
rubyzip (2.4.1) rubyzip (2.4.1)
@ -763,7 +768,7 @@ GEM
activerecord (>= 4.0.0) activerecord (>= 4.0.0)
railties (>= 4.0.0) railties (>= 4.0.0)
securerandom (0.4.1) securerandom (0.4.1)
selenium-webdriver (4.28.0) selenium-webdriver (4.27.0)
base64 (~> 0.2) base64 (~> 0.2)
logger (~> 1.4) logger (~> 1.4)
rexml (~> 3.2, >= 3.2.5) rexml (~> 3.2, >= 3.2.5)
@ -804,8 +809,8 @@ GEM
stoplight (4.1.0) stoplight (4.1.0)
redlock (~> 1.0) redlock (~> 1.0)
stringio (3.1.2) stringio (3.1.2)
strong_migrations (2.1.0) strong_migrations (2.2.0)
activerecord (>= 6.1) activerecord (>= 7)
swd (1.3.0) swd (1.3.0)
activesupport (>= 3) activesupport (>= 3)
attr_required (>= 0.0.5) attr_required (>= 0.0.5)
@ -818,9 +823,9 @@ GEM
climate_control climate_control
test-prof (1.4.4) test-prof (1.4.4)
thor (1.3.2) thor (1.3.2)
tilt (2.5.0) tilt (2.6.0)
timeout (0.4.3) timeout (0.4.3)
tpm-key_attestation (0.12.1) tpm-key_attestation (0.14.0)
bindata (~> 2.4) bindata (~> 2.4)
openssl (> 2.0) openssl (> 2.0)
openssl-signature_algorithm (~> 1.0) openssl-signature_algorithm (~> 1.0)
@ -855,18 +860,18 @@ GEM
public_suffix public_suffix
warden (1.2.9) warden (1.2.9)
rack (>= 2.0.9) rack (>= 2.0.9)
webauthn (3.2.2) webauthn (3.3.0)
android_key_attestation (~> 0.3.0) android_key_attestation (~> 0.3.0)
bindata (~> 2.4) bindata (~> 2.4)
cbor (~> 0.5.9) cbor (~> 0.5.9)
cose (~> 1.1) cose (~> 1.1)
openssl (>= 2.2) openssl (>= 2.2)
safety_net_attestation (~> 0.4.0) safety_net_attestation (~> 0.4.0)
tpm-key_attestation (~> 0.12.0) tpm-key_attestation (~> 0.14.0)
webfinger (1.2.0) webfinger (1.2.0)
activesupport activesupport
httpclient (>= 2.4) httpclient (>= 2.4)
webmock (3.24.0) webmock (3.25.0)
addressable (>= 2.8.0) addressable (>= 2.8.0)
crack (>= 0.3.2) crack (>= 0.3.2)
hashdiff (>= 0.4.0, < 2.0.0) hashdiff (>= 0.4.0, < 2.0.0)
@ -977,7 +982,7 @@ DEPENDENCIES
opentelemetry-instrumentation-net_http (~> 0.23.0) opentelemetry-instrumentation-net_http (~> 0.23.0)
opentelemetry-instrumentation-pg (~> 0.30.0) opentelemetry-instrumentation-pg (~> 0.30.0)
opentelemetry-instrumentation-rack (~> 0.26.0) opentelemetry-instrumentation-rack (~> 0.26.0)
opentelemetry-instrumentation-rails (~> 0.35.0) opentelemetry-instrumentation-rails (~> 0.36.0)
opentelemetry-instrumentation-redis (~> 0.26.0) opentelemetry-instrumentation-redis (~> 0.26.0)
opentelemetry-instrumentation-sidekiq (~> 0.26.0) opentelemetry-instrumentation-sidekiq (~> 0.26.0)
opentelemetry-sdk (~> 1.4) opentelemetry-sdk (~> 1.4)

View file

@ -7,17 +7,12 @@ module Admin
layout 'admin' layout 'admin'
before_action :set_cache_headers
before_action :set_referrer_policy_header before_action :set_referrer_policy_header
after_action :verify_authorized after_action :verify_authorized
private private
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end
def set_referrer_policy_header def set_referrer_policy_header
response.headers['Referrer-Policy'] = 'same-origin' response.headers['Referrer-Policy'] = 'same-origin'
end end

View file

@ -12,7 +12,6 @@ class Auth::RegistrationsController < Devise::RegistrationsController
before_action :set_sessions, only: [:edit, :update] before_action :set_sessions, only: [:edit, :update]
before_action :set_strikes, only: [:edit, :update] before_action :set_strikes, only: [:edit, :update]
before_action :require_not_suspended!, only: [:update] before_action :require_not_suspended!, only: [:update]
before_action :set_cache_headers, only: [:edit, :update]
before_action :set_rules, only: :new before_action :set_rules, only: :new
before_action :require_rules_acceptance!, only: :new before_action :require_rules_acceptance!, only: :new
before_action :set_registration_form_time, only: :new before_action :set_registration_form_time, only: :new
@ -139,10 +138,6 @@ class Auth::RegistrationsController < Devise::RegistrationsController
set_locale { render :rules } set_locale { render :rules }
end end
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end
def is_flashing_format? # rubocop:disable Naming/PredicateName def is_flashing_format? # rubocop:disable Naming/PredicateName
if params[:action] == 'create' if params[:action] == 'create'
false # Disable flash messages for sign-up false # Disable flash messages for sign-up

View file

@ -8,11 +8,4 @@ class Disputes::BaseController < ApplicationController
skip_before_action :require_functional! skip_before_action :require_functional!
before_action :authenticate_user! before_action :authenticate_user!
before_action :set_cache_headers
private
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end
end end

View file

@ -6,7 +6,6 @@ class Filters::StatusesController < ApplicationController
before_action :authenticate_user! before_action :authenticate_user!
before_action :set_filter before_action :set_filter
before_action :set_status_filters before_action :set_status_filters
before_action :set_cache_headers
PER_PAGE = 20 PER_PAGE = 20
@ -40,8 +39,4 @@ class Filters::StatusesController < ApplicationController
def action_from_button def action_from_button
'remove' if params[:remove] 'remove' if params[:remove]
end end
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end
end end

View file

@ -5,7 +5,6 @@ class FiltersController < ApplicationController
before_action :authenticate_user! before_action :authenticate_user!
before_action :set_filter, only: [:edit, :update, :destroy] before_action :set_filter, only: [:edit, :update, :destroy]
before_action :set_cache_headers
def index def index
@filters = current_account.custom_filters.includes(:keywords, :statuses).order(:phrase) @filters = current_account.custom_filters.includes(:keywords, :statuses).order(:phrase)
@ -50,8 +49,4 @@ class FiltersController < ApplicationController
def resource_params def resource_params
params.expect(custom_filter: [:title, :expires_in, :filter_action, :exclude_follows, :exclude_localusers, :exclude_quote, :exclude_profile, context: [], keywords_attributes: [[:id, :keyword, :whole_word, :_destroy]]]) params.expect(custom_filter: [:title, :expires_in, :filter_action, :exclude_follows, :exclude_localusers, :exclude_quote, :exclude_profile, context: [], keywords_attributes: [[:id, :keyword, :whole_word, :_destroy]]])
end end
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end
end end

View file

@ -6,7 +6,6 @@ class InvitesController < ApplicationController
layout 'admin' layout 'admin'
before_action :authenticate_user! before_action :authenticate_user!
before_action :set_cache_headers
def index def index
authorize :invite, :create? authorize :invite, :create?
@ -45,8 +44,4 @@ class InvitesController < ApplicationController
def resource_params def resource_params
params.expect(invite: [:max_uses, :expires_in, :autofollow, :comment]) params.expect(invite: [:max_uses, :expires_in, :autofollow, :comment])
end end
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end
end end

View file

@ -5,7 +5,6 @@ class Oauth::AuthorizationsController < Doorkeeper::AuthorizationsController
before_action :store_current_location before_action :store_current_location
before_action :authenticate_resource_owner! before_action :authenticate_resource_owner!
before_action :set_cache_headers
content_security_policy do |p| content_security_policy do |p|
p.form_action(false) p.form_action(false)
@ -32,8 +31,4 @@ class Oauth::AuthorizationsController < Doorkeeper::AuthorizationsController
def truthy_param?(key) def truthy_param?(key)
ActiveModel::Type::Boolean.new.cast(params[key]) ActiveModel::Type::Boolean.new.cast(params[key])
end end
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end
end end

View file

@ -6,7 +6,6 @@ class Oauth::AuthorizedApplicationsController < Doorkeeper::AuthorizedApplicatio
before_action :store_current_location before_action :store_current_location
before_action :authenticate_resource_owner! before_action :authenticate_resource_owner!
before_action :require_not_suspended!, only: :destroy before_action :require_not_suspended!, only: :destroy
before_action :set_cache_headers
before_action :set_last_used_at_by_app, only: :index, unless: -> { request.format == :json } before_action :set_last_used_at_by_app, only: :index, unless: -> { request.format == :json }
@ -30,10 +29,6 @@ class Oauth::AuthorizedApplicationsController < Doorkeeper::AuthorizedApplicatio
forbidden if current_account.unavailable? forbidden if current_account.unavailable?
end end
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end
def set_last_used_at_by_app def set_last_used_at_by_app
@last_used_at_by_app = current_resource_owner.applications_last_used @last_used_at_by_app = current_resource_owner.applications_last_used
end end

View file

@ -6,7 +6,6 @@ class RelationshipsController < ApplicationController
before_action :authenticate_user! before_action :authenticate_user!
before_action :set_accounts, only: :show before_action :set_accounts, only: :show
before_action :set_relationships, only: :show before_action :set_relationships, only: :show
before_action :set_cache_headers
helper_method :following_relationship?, :followed_by_relationship?, :mutual_relationship? helper_method :following_relationship?, :followed_by_relationship?, :mutual_relationship?
@ -66,8 +65,4 @@ class RelationshipsController < ApplicationController
'remove_domains_from_followers' 'remove_domains_from_followers'
end end
end end
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end
end end

View file

@ -2,7 +2,6 @@
class Settings::ApplicationsController < Settings::BaseController class Settings::ApplicationsController < Settings::BaseController
before_action :set_application, only: [:show, :update, :destroy, :regenerate] before_action :set_application, only: [:show, :update, :destroy, :regenerate]
before_action :prepare_scopes, only: [:create, :update]
def index def index
@applications = current_user.applications.order(id: :desc).page(params[:page]) @applications = current_user.applications.order(id: :desc).page(params[:page])
@ -60,12 +59,6 @@ class Settings::ApplicationsController < Settings::BaseController
end end
def application_params def application_params
params params.expect(doorkeeper_application: [:name, :redirect_uri, :website, scopes: []])
.expect(doorkeeper_application: [:name, :redirect_uri, :scopes, :website])
end
def prepare_scopes
scopes = application_params.fetch(:doorkeeper_application, {}).fetch(:scopes, nil)
params[:doorkeeper_application][:scopes] = scopes.join(' ') if scopes.is_a? Array
end end
end end

View file

@ -4,14 +4,9 @@ class Settings::BaseController < ApplicationController
layout 'admin' layout 'admin'
before_action :authenticate_user! before_action :authenticate_user!
before_action :set_cache_headers
private private
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end
def require_not_suspended! def require_not_suspended!
forbidden if current_account.unavailable? forbidden if current_account.unavailable?
end end

View file

@ -4,7 +4,6 @@ class SeveredRelationshipsController < ApplicationController
layout 'admin' layout 'admin'
before_action :authenticate_user! before_action :authenticate_user!
before_action :set_cache_headers
before_action :set_event, only: [:following, :followers] before_action :set_event, only: [:following, :followers]
@ -49,8 +48,4 @@ class SeveredRelationshipsController < ApplicationController
def acct(account) def acct(account)
account.local? ? account.local_username_and_domain : account.acct account.local? ? account.local_username_and_domain : account.acct
end end
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end
end end

View file

@ -5,7 +5,6 @@ class StatusesCleanupController < ApplicationController
before_action :authenticate_user! before_action :authenticate_user!
before_action :set_policy before_action :set_policy
before_action :set_cache_headers
def show; end def show; end
@ -30,8 +29,4 @@ class StatusesCleanupController < ApplicationController
def resource_params def resource_params
params.expect(account_statuses_cleanup_policy: [:enabled, :min_status_age, :keep_direct, :keep_pinned, :keep_polls, :keep_media, :keep_self_fav, :keep_self_bookmark, :keep_self_emoji, :min_favs, :min_reblogs, :min_emojis]) params.expect(account_statuses_cleanup_policy: [:enabled, :min_status_age, :keep_direct, :keep_pinned, :keep_polls, :keep_media, :keep_self_fav, :keep_self_bookmark, :keep_self_emoji, :min_favs, :min_reblogs, :min_emojis])
end end
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end
end end

View file

@ -22,23 +22,23 @@ describe('emoji', () => {
it('does unicode', () => { it('does unicode', () => {
expect(emojify('\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66')).toEqual( expect(emojify('\uD83D\uDC69\u200D\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66')).toEqual(
'<picture><img draggable="false" class="emojione" alt="👩‍👩‍👦‍👦" title=":woman-woman-boy-boy:" src="/emoji/1f469-200d-1f469-200d-1f466-200d-1f466.svg"></picture>'); '<img draggable="false" class="emojione" alt="👩‍👩‍👦‍👦" title=":woman-woman-boy-boy:" src="/emoji/1f469-200d-1f469-200d-1f466-200d-1f466.svg">');
expect(emojify('👨‍👩‍👧‍👧')).toEqual( expect(emojify('👨‍👩‍👧‍👧')).toEqual(
'<picture><img draggable="false" class="emojione" alt="👨‍👩‍👧‍👧" title=":man-woman-girl-girl:" src="/emoji/1f468-200d-1f469-200d-1f467-200d-1f467.svg"></picture>'); '<img draggable="false" class="emojione" alt="👨‍👩‍👧‍👧" title=":man-woman-girl-girl:" src="/emoji/1f468-200d-1f469-200d-1f467-200d-1f467.svg">');
expect(emojify('👩‍👩‍👦')).toEqual('<picture><img draggable="false" class="emojione" alt="👩‍👩‍👦" title=":woman-woman-boy:" src="/emoji/1f469-200d-1f469-200d-1f466.svg"></picture>'); expect(emojify('👩‍👩‍👦')).toEqual('<img draggable="false" class="emojione" alt="👩‍👩‍👦" title=":woman-woman-boy:" src="/emoji/1f469-200d-1f469-200d-1f466.svg">');
expect(emojify('\u2757')).toEqual( expect(emojify('\u2757')).toEqual(
'<picture><img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg"></picture>'); '<img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg">');
}); });
it('does multiple unicode', () => { it('does multiple unicode', () => {
expect(emojify('\u2757 #\uFE0F\u20E3')).toEqual( expect(emojify('\u2757 #\uFE0F\u20E3')).toEqual(
'<picture><img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg"></picture> <picture><img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg"></picture>'); '<img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg"> <img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg">');
expect(emojify('\u2757#\uFE0F\u20E3')).toEqual( expect(emojify('\u2757#\uFE0F\u20E3')).toEqual(
'<picture><img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg"></picture><picture><img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg"></picture>'); '<img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg"><img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg">');
expect(emojify('\u2757 #\uFE0F\u20E3 \u2757')).toEqual( expect(emojify('\u2757 #\uFE0F\u20E3 \u2757')).toEqual(
'<picture><img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg"></picture> <picture><img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg"></picture> <picture><img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg"></picture>'); '<img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg"> <img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg"> <img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg">');
expect(emojify('foo \u2757 #\uFE0F\u20E3 bar')).toEqual( expect(emojify('foo \u2757 #\uFE0F\u20E3 bar')).toEqual(
'foo <picture><img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg"></picture> <picture><img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg"></picture> bar'); 'foo <img draggable="false" class="emojione" alt="❗" title=":exclamation:" src="/emoji/2757.svg"> <img draggable="false" class="emojione" alt="#️⃣" title=":hash:" src="/emoji/23-20e3.svg"> bar');
}); });
it('ignores unicode inside of tags', () => { it('ignores unicode inside of tags', () => {
@ -46,16 +46,16 @@ describe('emoji', () => {
}); });
it('does multiple emoji properly (issue 5188)', () => { it('does multiple emoji properly (issue 5188)', () => {
expect(emojify('👌🌈💕')).toEqual('<picture><img draggable="false" class="emojione" alt="👌" title=":ok_hand:" src="/emoji/1f44c.svg"></picture><picture><img draggable="false" class="emojione" alt="🌈" title=":rainbow:" src="/emoji/1f308.svg"></picture><picture><img draggable="false" class="emojione" alt="💕" title=":two_hearts:" src="/emoji/1f495.svg"></picture>'); expect(emojify('👌🌈💕')).toEqual('<img draggable="false" class="emojione" alt="👌" title=":ok_hand:" src="/emoji/1f44c.svg"><img draggable="false" class="emojione" alt="🌈" title=":rainbow:" src="/emoji/1f308.svg"><img draggable="false" class="emojione" alt="💕" title=":two_hearts:" src="/emoji/1f495.svg">');
expect(emojify('👌 🌈 💕')).toEqual('<picture><img draggable="false" class="emojione" alt="👌" title=":ok_hand:" src="/emoji/1f44c.svg"></picture> <picture><img draggable="false" class="emojione" alt="🌈" title=":rainbow:" src="/emoji/1f308.svg"></picture> <picture><img draggable="false" class="emojione" alt="💕" title=":two_hearts:" src="/emoji/1f495.svg"></picture>'); expect(emojify('👌 🌈 💕')).toEqual('<img draggable="false" class="emojione" alt="👌" title=":ok_hand:" src="/emoji/1f44c.svg"> <img draggable="false" class="emojione" alt="🌈" title=":rainbow:" src="/emoji/1f308.svg"> <img draggable="false" class="emojione" alt="💕" title=":two_hearts:" src="/emoji/1f495.svg">');
}); });
it('does an emoji that has no shortcode', () => { it('does an emoji that has no shortcode', () => {
expect(emojify('👁‍🗨')).toEqual('<picture><img draggable="false" class="emojione" alt="👁‍🗨" title="" src="/emoji/1f441-200d-1f5e8.svg"></picture>'); expect(emojify('👁‍🗨')).toEqual('<img draggable="false" class="emojione" alt="👁‍🗨" title="" src="/emoji/1f441-200d-1f5e8.svg">');
}); });
it('does an emoji whose filename is irregular', () => { it('does an emoji whose filename is irregular', () => {
expect(emojify('↙️')).toEqual('<picture><img draggable="false" class="emojione" alt="↙️" title=":arrow_lower_left:" src="/emoji/2199.svg"></picture>'); expect(emojify('↙️')).toEqual('<img draggable="false" class="emojione" alt="↙️" title=":arrow_lower_left:" src="/emoji/2199.svg">');
}); });
it('avoid emojifying on invisible text', () => { it('avoid emojifying on invisible text', () => {
@ -67,11 +67,11 @@ describe('emoji', () => {
it('avoid emojifying on invisible text with nested tags', () => { it('avoid emojifying on invisible text with nested tags', () => {
expect(emojify('<span class="invisible">😄<span class="foo">bar</span>😴</span>😇')) expect(emojify('<span class="invisible">😄<span class="foo">bar</span>😴</span>😇'))
.toEqual('<span class="invisible">😄<span class="foo">bar</span>😴</span><picture><img draggable="false" class="emojione" alt="😇" title=":innocent:" src="/emoji/1f607.svg"></picture>'); .toEqual('<span class="invisible">😄<span class="foo">bar</span>😴</span><img draggable="false" class="emojione" alt="😇" title=":innocent:" src="/emoji/1f607.svg">');
expect(emojify('<span class="invisible">😄<span class="invisible">😕</span>😴</span>😇')) expect(emojify('<span class="invisible">😄<span class="invisible">😕</span>😴</span>😇'))
.toEqual('<span class="invisible">😄<span class="invisible">😕</span>😴</span><picture><img draggable="false" class="emojione" alt="😇" title=":innocent:" src="/emoji/1f607.svg"></picture>'); .toEqual('<span class="invisible">😄<span class="invisible">😕</span>😴</span><img draggable="false" class="emojione" alt="😇" title=":innocent:" src="/emoji/1f607.svg">');
expect(emojify('<span class="invisible">😄<br>😴</span>😇')) expect(emojify('<span class="invisible">😄<br>😴</span>😇'))
.toEqual('<span class="invisible">😄<br>😴</span><picture><img draggable="false" class="emojione" alt="😇" title=":innocent:" src="/emoji/1f607.svg"></picture>'); .toEqual('<span class="invisible">😄<br>😴</span><img draggable="false" class="emojione" alt="😇" title=":innocent:" src="/emoji/1f607.svg">');
}); });
it('does not emojify emojis with textual presentation VS15 character', () => { it('does not emojify emojis with textual presentation VS15 character', () => {
@ -81,17 +81,17 @@ describe('emoji', () => {
it('does a simple emoji properly', () => { it('does a simple emoji properly', () => {
expect(emojify('♀♂')) expect(emojify('♀♂'))
.toEqual('<picture><img draggable="false" class="emojione" alt="♀" title=":female_sign:" src="/emoji/2640.svg"></picture><picture><img draggable="false" class="emojione" alt="♂" title=":male_sign:" src="/emoji/2642.svg"></picture>'); .toEqual('<img draggable="false" class="emojione" alt="♀" title=":female_sign:" src="/emoji/2640.svg"><img draggable="false" class="emojione" alt="♂" title=":male_sign:" src="/emoji/2642.svg">');
}); });
it('does an emoji containing ZWJ properly', () => { it('does an emoji containing ZWJ properly', () => {
expect(emojify('💂‍♀️💂‍♂️')) expect(emojify('💂‍♀️💂‍♂️'))
.toEqual('<picture><img draggable="false" class="emojione" alt="💂\u200D♀" title=":female-guard:" src="/emoji/1f482-200d-2640-fe0f_border.svg"></picture><picture><img draggable="false" class="emojione" alt="💂\u200D♂" title=":male-guard:" src="/emoji/1f482-200d-2642-fe0f_border.svg"></picture>'); .toEqual('<img draggable="false" class="emojione" alt="💂\u200D♀" title=":female-guard:" src="/emoji/1f482-200d-2640-fe0f_border.svg"><img draggable="false" class="emojione" alt="💂\u200D♂" title=":male-guard:" src="/emoji/1f482-200d-2642-fe0f_border.svg">');
}); });
it('keeps ordering as expected (issue fixed by PR 20677)', () => { it('keeps ordering as expected (issue fixed by PR 20677)', () => {
expect(emojify('<p>💕 <a class="hashtag" href="https://example.com/tags/foo" rel="nofollow noopener" target="_blank">#<span>foo</span></a> test: foo.</p>')) expect(emojify('<p>💕 <a class="hashtag" href="https://example.com/tags/foo" rel="nofollow noopener" target="_blank">#<span>foo</span></a> test: foo.</p>'))
.toEqual('<p><picture><img draggable="false" class="emojione" alt="💕" title=":two_hearts:" src="/emoji/1f495.svg"></picture> <a class="hashtag" href="https://example.com/tags/foo" rel="nofollow noopener" target="_blank">#<span>foo</span></a> test: foo.</p>'); .toEqual('<p><img draggable="false" class="emojione" alt="💕" title=":two_hearts:" src="/emoji/1f495.svg"> <a class="hashtag" href="https://example.com/tags/foo" rel="nofollow noopener" target="_blank">#<span>foo</span></a> test: foo.</p>');
}); });
}); });
}); });

View file

@ -97,30 +97,30 @@ const emojifyTextNode = (node, customEmojis) => {
const { filename, shortCode } = unicodeMapping[unicode_emoji]; const { filename, shortCode } = unicodeMapping[unicode_emoji];
const title = shortCode ? `:${shortCode}:` : ''; const title = shortCode ? `:${shortCode}:` : '';
replacement = document.createElement('picture');
const isSystemTheme = !!document.body?.classList.contains('theme-system'); const isSystemTheme = !!document.body?.classList.contains('theme-system');
if(isSystemTheme) { const theme = (isSystemTheme || document.body?.classList.contains('theme-mastodon-light')) ? 'light' : 'dark';
let source = document.createElement('source');
source.setAttribute('media', '(prefers-color-scheme: dark)');
source.setAttribute('srcset', `${assetHost}/emoji/${emojiFilename(filename, "dark")}.svg`);
replacement.appendChild(source);
}
let img = document.createElement('img'); const imageFilename = emojiFilename(filename, theme);
const img = document.createElement('img');
img.setAttribute('draggable', 'false'); img.setAttribute('draggable', 'false');
img.setAttribute('class', 'emojione'); img.setAttribute('class', 'emojione');
img.setAttribute('alt', unicode_emoji); img.setAttribute('alt', unicode_emoji);
img.setAttribute('title', title); img.setAttribute('title', title);
img.setAttribute('src', `${assetHost}/emoji/${imageFilename}.svg`);
let theme = "light"; if (isSystemTheme && imageFilename !== emojiFilename(filename, 'dark')) {
replacement = document.createElement('picture');
if(!isSystemTheme && !document.body?.classList.contains('theme-mastodon-light')) const source = document.createElement('source');
theme = "dark"; source.setAttribute('media', '(prefers-color-scheme: dark)');
source.setAttribute('srcset', `${assetHost}/emoji/${emojiFilename(filename, 'dark')}.svg`);
img.setAttribute('src', `${assetHost}/emoji/${emojiFilename(filename, theme)}.svg`); replacement.appendChild(source);
replacement.appendChild(img); replacement.appendChild(img);
} else {
replacement = img;
}
} }
// Add the processed-up-to-now string and the emoji replacement // Add the processed-up-to-now string and the emoji replacement
@ -135,7 +135,7 @@ const emojifyTextNode = (node, customEmojis) => {
}; };
const emojifyNode = (node, customEmojis) => { const emojifyNode = (node, customEmojis) => {
for (const child of node.childNodes) { for (const child of Array.from(node.childNodes)) {
switch(child.nodeType) { switch(child.nodeType) {
case Node.TEXT_NODE: case Node.TEXT_NODE:
emojifyTextNode(child, customEmojis); emojifyTextNode(child, customEmojis);

View file

@ -86,6 +86,13 @@
"alert.unexpected.message": "Bilinməyən bir xəta baş verdi.", "alert.unexpected.message": "Bilinməyən bir xəta baş verdi.",
"alert.unexpected.title": "Ah!", "alert.unexpected.title": "Ah!",
"alt_text_badge.title": "Alternativ mətn", "alt_text_badge.title": "Alternativ mətn",
"alt_text_modal.add_alt_text": "Alternativ mətn əlavə et",
"alt_text_modal.add_text_from_image": "Şəkildəki mətni əlavə et",
"alt_text_modal.cancel": "İmtina",
"alt_text_modal.change_thumbnail": "Miniatürü dəyişdir",
"alt_text_modal.describe_for_people_with_hearing_impairments": "Eşitmə məhdudiyyətli insanlar üçün bunu izah et…",
"alt_text_modal.describe_for_people_with_visual_impairments": "Görmə məhdudiyyətli insanlar üçün bunu təsvir et…",
"alt_text_modal.done": "Oldu",
"announcement.announcement": "Elan", "announcement.announcement": "Elan",
"annual_report.summary.archetype.booster": "Trend ovçusu", "annual_report.summary.archetype.booster": "Trend ovçusu",
"annual_report.summary.archetype.lurker": "Lurker", "annual_report.summary.archetype.lurker": "Lurker",
@ -211,6 +218,10 @@
"confirmations.logout.confirm": ıxış et", "confirmations.logout.confirm": ıxış et",
"confirmations.logout.message": ıxmaq istədiyinizə əminsiniz?", "confirmations.logout.message": ıxmaq istədiyinizə əminsiniz?",
"confirmations.logout.title": ıxış edilsin?", "confirmations.logout.title": ıxış edilsin?",
"confirmations.missing_alt_text.confirm": "Alternativ mətn əlavə et",
"confirmations.missing_alt_text.message": "Paylaşımınız alternativ mətn ehtiva etmir. Təsvir əlavə etmək onun daha çox insan üçün əlçatan olmasına kömək edir.",
"confirmations.missing_alt_text.secondary": "Yenə də paylaş",
"confirmations.missing_alt_text.title": "Alternativ mətn əlavə edilsin?",
"confirmations.mute.confirm": "Səssizləşdir", "confirmations.mute.confirm": "Səssizləşdir",
"confirmations.redraft.confirm": "Sil və qaralamaya köçür", "confirmations.redraft.confirm": "Sil və qaralamaya köçür",
"confirmations.redraft.message": "Bu paylaşımı silmək və qaralamaya köçürmək istədiyinizə əminsiniz? Bəyənmələr və gücləndirmələr itəcək və orijinal paylaşıma olan cavablar tənha qalacaq.", "confirmations.redraft.message": "Bu paylaşımı silmək və qaralamaya köçürmək istədiyinizə əminsiniz? Bəyənmələr və gücləndirmələr itəcək və orijinal paylaşıma olan cavablar tənha qalacaq.",
@ -241,6 +252,7 @@
"dismissable_banner.dismiss": "Bağla", "dismissable_banner.dismiss": "Bağla",
"dismissable_banner.explore_links": "Bu xəbərlər bu gün fediversedə ən çox paylaşılır. Daha fərqli insanlar tərəfindən dərc edilən daha yeni xəbərlər daha yuxarıda sıralanır.", "dismissable_banner.explore_links": "Bu xəbərlər bu gün fediversedə ən çox paylaşılır. Daha fərqli insanlar tərəfindən dərc edilən daha yeni xəbərlər daha yuxarıda sıralanır.",
"dismissable_banner.explore_statuses": "Fediversedən olan bu paylaşımlar bu gün maraq qazanır. Daha çox gücləndirici və bəyənmə olan daha yeni paylaşımlar daha yuxarıda sıralanır.", "dismissable_banner.explore_statuses": "Fediversedən olan bu paylaşımlar bu gün maraq qazanır. Daha çox gücləndirici və bəyənmə olan daha yeni paylaşımlar daha yuxarıda sıralanır.",
"dismissable_banner.explore_tags": "Bu heşteqlər fediverse-də trend olublar. Daha çox fərqli insanlar tərəfindən istifadə olunan heşteqlər daha yuxarıda sıralanır.",
"domain_block_modal.block_account_instead": "@{name} istifadəçisini blokla", "domain_block_modal.block_account_instead": "@{name} istifadəçisini blokla",
"domain_block_modal.they_can_interact_with_old_posts": "Bu serverdən olan insanlar köhnə paylaşımlarınızla əlaqə qura bilər." "domain_block_modal.they_can_interact_with_old_posts": "Bu serverdən olan insanlar köhnə paylaşımlarınızla əlaqə qura bilər."
} }

View file

@ -218,6 +218,10 @@
"confirmations.logout.confirm": "Излизане", "confirmations.logout.confirm": "Излизане",
"confirmations.logout.message": "Наистина ли искате да излезете?", "confirmations.logout.message": "Наистина ли искате да излезете?",
"confirmations.logout.title": "Излизате ли от системата?", "confirmations.logout.title": "Излизате ли от системата?",
"confirmations.missing_alt_text.confirm": "Добавяне на алтернативен текст",
"confirmations.missing_alt_text.message": "Вашата публикация съдържа мултимедия без алтернативен текст. Добавянето на описание помага да направите съдържанието си по-достъпно за повече хора.",
"confirmations.missing_alt_text.secondary": "Все пак да се публикува",
"confirmations.missing_alt_text.title": "Добавяте ли алтернативен текст?",
"confirmations.mute.confirm": "Заглушаване", "confirmations.mute.confirm": "Заглушаване",
"confirmations.redraft.confirm": "Изтриване и преработване", "confirmations.redraft.confirm": "Изтриване и преработване",
"confirmations.redraft.message": "Наистина ли искате да изтриете тази публикация и да я направите чернова? Означаванията като любими и подсилванията ще се изгубят, а и отговорите към първоначалната публикация ще осиротеят.", "confirmations.redraft.message": "Наистина ли искате да изтриете тази публикация и да я направите чернова? Означаванията като любими и подсилванията ще се изгубят, а и отговорите към първоначалната публикация ще осиротеят.",

View file

@ -180,7 +180,7 @@
"compose.published.open": "Obre", "compose.published.open": "Obre",
"compose.saved.body": "Tut desat.", "compose.saved.body": "Tut desat.",
"compose_form.direct_message_warning_learn_more": "Més informació", "compose_form.direct_message_warning_learn_more": "Més informació",
"compose_form.encryption_warning": "Les publicacions a Mastodon no estant xifrades punt a punt. No comparteixis informació sensible mitjançant Mastodon.", "compose_form.encryption_warning": "Els tuts a Mastodon no estan xifrats punt a punt. No compartiu informació confidencial mitjançant Mastodon.",
"compose_form.hashtag_warning": "Aquest tut no apareixerà a les llistes d'etiquetes perquè no és públic. Només els tuts públics apareixen a les cerques per etiqueta.", "compose_form.hashtag_warning": "Aquest tut no apareixerà a les llistes d'etiquetes perquè no és públic. Només els tuts públics apareixen a les cerques per etiqueta.",
"compose_form.lock_disclaimer": "El teu compte no està {locked}. Tothom pot seguir-te i veure els tuts de només per a seguidors.", "compose_form.lock_disclaimer": "El teu compte no està {locked}. Tothom pot seguir-te i veure els tuts de només per a seguidors.",
"compose_form.lock_disclaimer.lock": "blocat", "compose_form.lock_disclaimer.lock": "blocat",
@ -218,7 +218,7 @@
"confirmations.logout.confirm": "Tanca la sessió", "confirmations.logout.confirm": "Tanca la sessió",
"confirmations.logout.message": "Segur que vols tancar la sessió?", "confirmations.logout.message": "Segur que vols tancar la sessió?",
"confirmations.logout.title": "Tancar la sessió?", "confirmations.logout.title": "Tancar la sessió?",
"confirmations.missing_alt_text.confirm": "Afegiu text alternatiu", "confirmations.missing_alt_text.confirm": "Afegiu un text alternatiu",
"confirmations.missing_alt_text.message": "La vostra publicació té contingut sense text alternatiu. Afegir-hi descripcions la farà accessible a més persones.", "confirmations.missing_alt_text.message": "La vostra publicació té contingut sense text alternatiu. Afegir-hi descripcions la farà accessible a més persones.",
"confirmations.missing_alt_text.secondary": "Publica-la igualment", "confirmations.missing_alt_text.secondary": "Publica-la igualment",
"confirmations.missing_alt_text.title": "Hi voleu afegir text alternatiu?", "confirmations.missing_alt_text.title": "Hi voleu afegir text alternatiu?",

View file

@ -218,6 +218,10 @@
"confirmations.logout.confirm": "Odhlásit se", "confirmations.logout.confirm": "Odhlásit se",
"confirmations.logout.message": "Opravdu se chcete odhlásit?", "confirmations.logout.message": "Opravdu se chcete odhlásit?",
"confirmations.logout.title": "Odhlásit se?", "confirmations.logout.title": "Odhlásit se?",
"confirmations.missing_alt_text.confirm": "Přidat alt text",
"confirmations.missing_alt_text.message": "Váš příspěvek obsahuje média bez alt textu. Přidání popisů pomáhá zpřístupnit váš obsah většímu počtu lidí.",
"confirmations.missing_alt_text.secondary": "Přesto odeslat",
"confirmations.missing_alt_text.title": "Přidat alt text?",
"confirmations.mute.confirm": "Skrýt", "confirmations.mute.confirm": "Skrýt",
"confirmations.redraft.confirm": "Smazat a přepsat", "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.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.",

View file

@ -86,6 +86,13 @@
"alert.unexpected.message": "Digwyddodd gwall annisgwyl.", "alert.unexpected.message": "Digwyddodd gwall annisgwyl.",
"alert.unexpected.title": "Wps!", "alert.unexpected.title": "Wps!",
"alt_text_badge.title": "Testun Amgen", "alt_text_badge.title": "Testun Amgen",
"alt_text_modal.add_alt_text": "Ychwanegu testun amgen",
"alt_text_modal.add_text_from_image": "Ychwanegu testun o'r ddelwedd",
"alt_text_modal.cancel": "Diddymu",
"alt_text_modal.change_thumbnail": "Newid llun bach",
"alt_text_modal.describe_for_people_with_hearing_impairments": "Disgrifiwch hyn ar gyfer pobl â nam ar eu clyw…",
"alt_text_modal.describe_for_people_with_visual_impairments": "Disgrifiwch hyn ar gyfer pobl â nam ar eu golwg…",
"alt_text_modal.done": "Gorffen",
"announcement.announcement": "Cyhoeddiad", "announcement.announcement": "Cyhoeddiad",
"annual_report.summary.archetype.booster": "Y hyrwyddwr", "annual_report.summary.archetype.booster": "Y hyrwyddwr",
"annual_report.summary.archetype.lurker": "Yr arsylwr", "annual_report.summary.archetype.lurker": "Yr arsylwr",
@ -211,6 +218,10 @@
"confirmations.logout.confirm": "Allgofnodi", "confirmations.logout.confirm": "Allgofnodi",
"confirmations.logout.message": "Ydych chi'n siŵr eich bod am allgofnodi?", "confirmations.logout.message": "Ydych chi'n siŵr eich bod am allgofnodi?",
"confirmations.logout.title": "Allgofnodi?", "confirmations.logout.title": "Allgofnodi?",
"confirmations.missing_alt_text.confirm": "Ychwanegu testun amgen",
"confirmations.missing_alt_text.message": "Mae eich postiad yn cynnwys cyfryngau heb destun amgen. Mae ychwanegu disgrifiadau yn helpu i wneud eich cynnwys yn hygyrch i fwy o bobl.",
"confirmations.missing_alt_text.secondary": "Postio beth bynnag",
"confirmations.missing_alt_text.title": "Ychwanegu testun amgen?",
"confirmations.mute.confirm": "Tewi", "confirmations.mute.confirm": "Tewi",
"confirmations.redraft.confirm": "Dileu ac ailddrafftio", "confirmations.redraft.confirm": "Dileu ac ailddrafftio",
"confirmations.redraft.message": "Ydych chi wir eisiau'r dileu'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.redraft.message": "Ydych chi wir eisiau'r dileu'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.",
@ -407,6 +418,8 @@
"ignore_notifications_modal.not_followers_title": "Anwybyddu hysbysiadau gan bobl nad ydynt yn eich dilyn?", "ignore_notifications_modal.not_followers_title": "Anwybyddu hysbysiadau gan bobl nad ydynt yn eich dilyn?",
"ignore_notifications_modal.not_following_title": "Anwybyddu hysbysiadau gan bobl nad ydych yn eu dilyn?", "ignore_notifications_modal.not_following_title": "Anwybyddu hysbysiadau gan bobl nad ydych yn eu dilyn?",
"ignore_notifications_modal.private_mentions_title": "Anwybyddu hysbysiadau o Grybwylliadau Preifat digymell?", "ignore_notifications_modal.private_mentions_title": "Anwybyddu hysbysiadau o Grybwylliadau Preifat digymell?",
"info_button.label": "Cymorth",
"info_button.what_is_alt_text": "<h1>Beth yw testun amgen?</h1><p> Mae Testun Amgen yn darparu disgrifiadau delwedd ar gyfer pobl â nam ar eu golwg, cysylltiadau lled band isel, neu'r rhai sy'n ceisio cyd-destun ychwanegol.</p><p> Gallwch wella hygyrchedd a dealltwriaeth i bawb trwy ysgrifennu testun amgen clir, cryno a gwrthrychol.</p><ul><li> Dal elfennau pwysig</li><li> Crynhoi testun mewn delweddau</li><li> Defnyddiwch strwythur brawddegau rheolaidd</li><li> Osgoi gwybodaeth ddiangen</li><li> Canolbwyntio ar dueddiadau a chanfyddiadau allweddol mewn delweddau cymhleth (fel diagramau neu fapiau)</li></ul>",
"interaction_modal.action.favourite": "I barhau, mae angen i chi hoffi o'ch cyfrif.", "interaction_modal.action.favourite": "I barhau, mae angen i chi hoffi o'ch cyfrif.",
"interaction_modal.action.follow": "I barhau, mae angen i chi ddilyn o'ch cyfrif.", "interaction_modal.action.follow": "I barhau, mae angen i chi ddilyn o'ch cyfrif.",
"interaction_modal.action.reblog": "I barhau, mae angen i chi ail-flogio o'ch cyfrif.", "interaction_modal.action.reblog": "I barhau, mae angen i chi ail-flogio o'ch cyfrif.",

View file

@ -29,7 +29,7 @@
"account.endorse": "Fremhæv på profil", "account.endorse": "Fremhæv på profil",
"account.featured_tags.last_status_at": "Seneste indlæg {date}", "account.featured_tags.last_status_at": "Seneste indlæg {date}",
"account.featured_tags.last_status_never": "Ingen indlæg", "account.featured_tags.last_status_never": "Ingen indlæg",
"account.featured_tags.title": "{name}s fremhævede hashtags", "account.featured_tags.title": "{name}s fremhævede etiketter",
"account.follow": "Følg", "account.follow": "Følg",
"account.follow_back": "Følg tilbage", "account.follow_back": "Følg tilbage",
"account.followers": "Følgere", "account.followers": "Følgere",
@ -39,7 +39,7 @@
"account.following_counter": "{count, plural, one {{counter} følger} other {{counter} følger}}", "account.following_counter": "{count, plural, one {{counter} følger} other {{counter} følger}}",
"account.follows.empty": "Denne bruger følger ikke nogen endnu.", "account.follows.empty": "Denne bruger følger ikke nogen endnu.",
"account.go_to_profile": "Gå til profil", "account.go_to_profile": "Gå til profil",
"account.hide_reblogs": "Skjul boosts fra @{name}", "account.hide_reblogs": "Skjul fremhævelser fra @{name}",
"account.in_memoriam": "Til minde om.", "account.in_memoriam": "Til minde om.",
"account.joined_short": "Oprettet", "account.joined_short": "Oprettet",
"account.languages": "Skift abonnementssprog", "account.languages": "Skift abonnementssprog",
@ -49,9 +49,9 @@
"account.mention": "Nævn @{name}", "account.mention": "Nævn @{name}",
"account.moved_to": "{name} har angivet, at vedkommendes nye konto nu er:", "account.moved_to": "{name} har angivet, at vedkommendes nye konto nu er:",
"account.mute": "Skjul @{name}", "account.mute": "Skjul @{name}",
"account.mute_notifications_short": "Slå lyden fra for notifikationer", "account.mute_notifications_short": "Sluk for notifikationer",
"account.mute_short": "Skjul (mute)", "account.mute_short": "Skjul",
"account.muted": "Skjult (muted)", "account.muted": "Skjult",
"account.mutual": "Fælles", "account.mutual": "Fælles",
"account.no_bio": "Ingen beskrivelse til rådighed.", "account.no_bio": "Ingen beskrivelse til rådighed.",
"account.open_original_page": "Åbn oprindelig side", "account.open_original_page": "Åbn oprindelig side",
@ -63,14 +63,14 @@
"account.share": "Del @{name}s profil", "account.share": "Del @{name}s profil",
"account.show_reblogs": "Vis fremhævelser fra @{name}", "account.show_reblogs": "Vis fremhævelser fra @{name}",
"account.statuses_counter": "{count, plural, one {{counter} indlæg} other {{counter} indlæg}}", "account.statuses_counter": "{count, plural, one {{counter} indlæg} other {{counter} indlæg}}",
"account.unblock": "Afblokér @{name}", "account.unblock": "Fjern blokering af @{name}",
"account.unblock_domain": "Afblokér domænet {domain}", "account.unblock_domain": "Fjern blokering af domænet {domain}",
"account.unblock_short": "Afblokér", "account.unblock_short": "Fjern blokering",
"account.unendorse": "Fjern visning på din profil", "account.unendorse": "Fjern visning på din profil",
"account.unfollow": "Følg ikke længere", "account.unfollow": "Følg ikke længere",
"account.unmute": "Vis @{name} igen (unmute)", "account.unmute": "Vis @{name} igen",
"account.unmute_notifications_short": "Slå lyden fra for notifikationer", "account.unmute_notifications_short": "Tænd for notifikationer",
"account.unmute_short": "Vis igen (unmute)", "account.unmute_short": "Vis igen",
"account_note.placeholder": "Klik for at tilføje notat", "account_note.placeholder": "Klik for at tilføje notat",
"admin.dashboard.daily_retention": "Brugerfastholdelsesrate per dag efter tilmelding", "admin.dashboard.daily_retention": "Brugerfastholdelsesrate per dag efter tilmelding",
"admin.dashboard.monthly_retention": "Brugerfastholdelsesrate per måned efter tilmelding", "admin.dashboard.monthly_retention": "Brugerfastholdelsesrate per måned efter tilmelding",
@ -94,38 +94,38 @@
"alt_text_modal.describe_for_people_with_visual_impairments": "Beskriv dette for personer med nedsat syn…", "alt_text_modal.describe_for_people_with_visual_impairments": "Beskriv dette for personer med nedsat syn…",
"alt_text_modal.done": "Færdig", "alt_text_modal.done": "Færdig",
"announcement.announcement": "Bekendtgørelse", "announcement.announcement": "Bekendtgørelse",
"annual_report.summary.archetype.booster": "Cool-hunter", "annual_report.summary.archetype.booster": "Fremhæveren",
"annual_report.summary.archetype.lurker": "Lurker", "annual_report.summary.archetype.lurker": "Lureren",
"annual_report.summary.archetype.oracle": "Oracle", "annual_report.summary.archetype.oracle": "Oraklet",
"annual_report.summary.archetype.pollster": "Pollster", "annual_report.summary.archetype.pollster": "Afstemningsmageren",
"annual_report.summary.archetype.replier": "Social butterfly", "annual_report.summary.archetype.replier": "Den social sommerfugl",
"annual_report.summary.followers.followers": "følgere", "annual_report.summary.followers.followers": "følgere",
"annual_report.summary.followers.total": "{count} i alt", "annual_report.summary.followers.total": "{count} i alt",
"annual_report.summary.here_it_is": "Her er {year} i sammendrag:", "annual_report.summary.here_it_is": "Her er dit {year} i sammendrag:",
"annual_report.summary.highlighted_post.by_favourites": "mest favoritmarkerede indlæg", "annual_report.summary.highlighted_post.by_favourites": "mest favoritmarkerede indlæg",
"annual_report.summary.highlighted_post.by_reblogs": "mest boostede indlæg", "annual_report.summary.highlighted_post.by_reblogs": "mest fremhævede indlæg",
"annual_report.summary.highlighted_post.by_replies": "indlæg med flest svar", "annual_report.summary.highlighted_post.by_replies": "mest besvarede indlæg",
"annual_report.summary.highlighted_post.possessive": "{name}s", "annual_report.summary.highlighted_post.possessive": "{name}s",
"annual_report.summary.most_used_app.most_used_app": "mest benyttede app", "annual_report.summary.most_used_app.most_used_app": "mest benyttede app",
"annual_report.summary.most_used_hashtag.most_used_hashtag": "mest benyttede hashtag", "annual_report.summary.most_used_hashtag.most_used_hashtag": "mest benyttede etiket",
"annual_report.summary.most_used_hashtag.none": "Intet", "annual_report.summary.most_used_hashtag.none": "Intet",
"annual_report.summary.new_posts.new_posts": "nye indlæg", "annual_report.summary.new_posts.new_posts": "nye indlæg",
"annual_report.summary.percentile.text": "<topLabel>Det betyder, at man er i top</topLabel><percentage></percentage><bottomLabel>af {domain}-brugere.</bottomLabel>", "annual_report.summary.percentile.text": "<topLabel>Det betyder, at man er i top</topLabel><percentage></percentage><bottomLabel>af {domain}-brugere.</bottomLabel>",
"annual_report.summary.percentile.we_wont_tell_bernie": "Vi fortæller det ikke til Bernie.", "annual_report.summary.percentile.we_wont_tell_bernie": "Vi fortæller det ikke til Pernille Skipper.",
"annual_report.summary.thanks": "Tak for at være en del af Mastodon!", "annual_report.summary.thanks": "Tak for at være en del af Mastodon!",
"attachments_list.unprocessed": "(ubehandlet)", "attachments_list.unprocessed": "(ubehandlet)",
"audio.hide": "Skjul lyd", "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.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_less": "Vis færre",
"block_modal.show_more": "Vis flere", "block_modal.show_more": "Vis flere",
"block_modal.they_cant_mention": "Vedkommende kan ikke nævne eller følge dig.", "block_modal.they_cant_mention": "Vedkommende kan ikke omtale 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_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.they_will_know": "Vedkommende kan se den aktive blokering.",
"block_modal.title": "Blokér bruger?", "block_modal.title": "Blokér bruger?",
"block_modal.you_wont_see_mentions": "Du vil ikke se indlæg, som nævner vedkommende.", "block_modal.you_wont_see_mentions": "Du vil ikke se indlæg, som omtaler vedkommende.",
"boost_modal.combo": "Du kan trykke {combo} for at springe dette over næste gang", "boost_modal.combo": "Du kan trykke {combo} for at springe dette over næste gang",
"boost_modal.reblog": "Boost indlæg?", "boost_modal.reblog": "Fremhæv indlæg?",
"boost_modal.undo_reblog": "Fjern boost af indlæg?", "boost_modal.undo_reblog": "Fjern fremhævning af indlæg?",
"bundle_column_error.copy_stacktrace": "Kopiér fejlrapport", "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.", "bundle_column_error.error.body": "Den anmodede side kunne ikke gengives. Dette kan skyldes flere typer fejl.",
"bundle_column_error.error.title": "Åh nej!", "bundle_column_error.error.title": "Åh nej!",
@ -153,12 +153,12 @@
"column.domain_blocks": "Blokerede domæner", "column.domain_blocks": "Blokerede domæner",
"column.edit_list": "Redigér liste", "column.edit_list": "Redigér liste",
"column.favourites": "Favoritter", "column.favourites": "Favoritter",
"column.firehose": "Live feeds", "column.firehose": "Realtids-strømme",
"column.follow_requests": "Følgeanmodninger", "column.follow_requests": "Følgeanmodninger",
"column.home": "Hjem", "column.home": "Hjem",
"column.list_members": "Håndtér listemedlemmer", "column.list_members": "Håndtér listemedlemmer",
"column.lists": "Lister", "column.lists": "Lister",
"column.mutes": "Skjulte brugere (mutede)", "column.mutes": "Skjulte brugere",
"column.notifications": "Notifikationer", "column.notifications": "Notifikationer",
"column.pins": "Fastgjorte indlæg", "column.pins": "Fastgjorte indlæg",
"column.public": "Fælles tidslinje", "column.public": "Fælles tidslinje",
@ -168,7 +168,7 @@
"column_header.moveRight_settings": "Flyt kolonne til højre", "column_header.moveRight_settings": "Flyt kolonne til højre",
"column_header.pin": "Fastgør", "column_header.pin": "Fastgør",
"column_header.show_settings": "Vis indstillinger", "column_header.show_settings": "Vis indstillinger",
"column_header.unpin": "Løsgør", "column_header.unpin": "Frigør",
"column_search.cancel": "Afbryd", "column_search.cancel": "Afbryd",
"column_subheading.settings": "Indstillinger", "column_subheading.settings": "Indstillinger",
"community.column_settings.local_only": "Kun lokalt", "community.column_settings.local_only": "Kun lokalt",
@ -181,7 +181,7 @@
"compose.saved.body": "Indlæg gemt.", "compose.saved.body": "Indlæg gemt.",
"compose_form.direct_message_warning_learn_more": "Få mere at vide", "compose_form.direct_message_warning_learn_more": "Få mere at vide",
"compose_form.encryption_warning": "Indlæg på Mastodon er ikke ende-til-ende-krypteret. Del derfor ikke sensitiv information via Mastodon.", "compose_form.encryption_warning": "Indlæg på Mastodon er ikke ende-til-ende-krypteret. Del derfor ikke sensitiv information via Mastodon.",
"compose_form.hashtag_warning": "Da indlægget ikke er offentligt, vises det ikke under noget hashtag, da kun offentlige indlæg er søgbare via hashtags.", "compose_form.hashtag_warning": "Da indlægget ikke er offentligt, vises det ikke under nogen etiket, da kun offentlige indlæg er søgbare via etiketter.",
"compose_form.lock_disclaimer": "Din konto er ikke {locked}. Enhver kan følge dig og se indlæg kun beregnet for følgere.", "compose_form.lock_disclaimer": "Din konto er ikke {locked}. Enhver kan følge dig og se indlæg kun beregnet for følgere.",
"compose_form.lock_disclaimer.lock": "låst", "compose_form.lock_disclaimer.lock": "låst",
"compose_form.placeholder": "Hvad tænker du på?", "compose_form.placeholder": "Hvad tænker du på?",
@ -196,9 +196,9 @@
"compose_form.publish_form": "Publicér", "compose_form.publish_form": "Publicér",
"compose_form.reply": "Svar", "compose_form.reply": "Svar",
"compose_form.save_changes": "Opdatér", "compose_form.save_changes": "Opdatér",
"compose_form.spoiler.marked": "Fjern indholdsadvarsel", "compose_form.spoiler.marked": "Fjern emnefelt",
"compose_form.spoiler.unmarked": "Tilføj indholdsadvarsel", "compose_form.spoiler.unmarked": "Tilføj emnefelt",
"compose_form.spoiler_placeholder": "Indholdsadvarsel (valgfri)", "compose_form.spoiler_placeholder": "Emnefelt (valgfrit)",
"confirmation_modal.cancel": "Afbryd", "confirmation_modal.cancel": "Afbryd",
"confirmations.block.confirm": "Blokér", "confirmations.block.confirm": "Blokér",
"confirmations.delete.confirm": "Slet", "confirmations.delete.confirm": "Slet",
@ -222,9 +222,9 @@
"confirmations.missing_alt_text.message": "Indlægget indeholder medier uden alt-tekst. Tilføjelse af beskrivelser bidrager til at gøre indholdet tilgængeligt for flere brugere.", "confirmations.missing_alt_text.message": "Indlægget indeholder medier uden alt-tekst. Tilføjelse af beskrivelser bidrager til at gøre indholdet tilgængeligt for flere brugere.",
"confirmations.missing_alt_text.secondary": "Læg op alligevel", "confirmations.missing_alt_text.secondary": "Læg op alligevel",
"confirmations.missing_alt_text.title": "Tilføj alt-tekst?", "confirmations.missing_alt_text.title": "Tilføj alt-tekst?",
"confirmations.mute.confirm": "Skjul (mute)", "confirmations.mute.confirm": "Skjul",
"confirmations.redraft.confirm": "Slet og omformulér", "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.redraft.message": "Sikker på, at dette indlæg skal slettes og omskrives? Favoritter og fremhævelser går tabt, og svar til det oprindelige indlæg mister tilknytningen.",
"confirmations.redraft.title": "Slet og omformulér indlæg?", "confirmations.redraft.title": "Slet og omformulér indlæg?",
"confirmations.reply.confirm": "Svar", "confirmations.reply.confirm": "Svar",
"confirmations.reply.message": "Hvis du svarer nu, vil det overskrive den besked, du er ved at skrive. Fortsæt alligevel?", "confirmations.reply.message": "Hvis du svarer nu, vil det overskrive den besked, du er ved at skrive. Fortsæt alligevel?",
@ -242,7 +242,7 @@
"copy_icon_button.copied": "Kopieret til udklipsholderen", "copy_icon_button.copied": "Kopieret til udklipsholderen",
"copypaste.copied": "Kopieret", "copypaste.copied": "Kopieret",
"copypaste.copy_to_clipboard": "Kopiér til udklipsholder", "copypaste.copy_to_clipboard": "Kopiér til udklipsholder",
"directory.federated": "Fra kendt fedivers", "directory.federated": "Fra kendt fødivers",
"directory.local": "Kun fra {domain}", "directory.local": "Kun fra {domain}",
"directory.new_arrivals": "Nye ankomster", "directory.new_arrivals": "Nye ankomster",
"directory.recently_active": "Aktive for nyligt", "directory.recently_active": "Aktive for nyligt",
@ -250,10 +250,10 @@
"disabled_account_banner.text": "Din konto {disabledAccount} er pt. deaktiveret.", "disabled_account_banner.text": "Din konto {disabledAccount} er pt. deaktiveret.",
"dismissable_banner.community_timeline": "Disse er de seneste offentlige indlæg fra personer med konti hostet af {domain}.", "dismissable_banner.community_timeline": "Disse er de seneste offentlige indlæg fra personer med konti hostet af {domain}.",
"dismissable_banner.dismiss": "Afvis", "dismissable_banner.dismiss": "Afvis",
"dismissable_banner.explore_links": "Disse nyhedshistorier deles mest på fediverset i dag. Nyere nyhedshistorier lagt op af flere forskellige personer rangeres højere.", "dismissable_banner.explore_links": "Disse nyhedshistorier deles mest på fødiverset i dag. Nyere nyhedshistorier lagt op af flere forskellige personer rangeres højere.",
"dismissable_banner.explore_statuses": "Disse indlæg på tværs af fediverset opnår momentum i dag. Nyere indlæg med flere boosts og favoritter rangeres højere.", "dismissable_banner.explore_statuses": "Disse indlæg på tværs af fødiverset opnår momentum i dag. Nyere indlæg med flere fremhævninger og favoritmærker rangeres højere.",
"dismissable_banner.explore_tags": "Disse hashtags opnår momentum på fediverset i dag. Hashtags brugt af flere forskellige personer rangeres højere.", "dismissable_banner.explore_tags": "Disse etiketter opnår momentum på fødiverset i dag. Etiketter brugt af flere forskellige personer rangeres højere.",
"dismissable_banner.public_timeline": "Dette er de seneste offentlige indlæg fra personer på fediverset, som folk på {domain} følger.", "dismissable_banner.public_timeline": "Dette er de seneste offentlige indlæg fra personer på fødiverset, som folk på {domain} følger.",
"domain_block_modal.block": "Blokér server", "domain_block_modal.block": "Blokér server",
"domain_block_modal.block_account_instead": "Blokér i stedet @{name}", "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_can_interact_with_old_posts": "Folk fra denne server kan interagere med de gamle indlæg.",
@ -263,20 +263,20 @@
"domain_block_modal.you_will_lose_num_followers": "Man vil miste {followersCount, plural, one {{followersCountDisplay} følger} other {{followersCountDisplay} følgere}} og {followingCount, plural, one {{followingCountDisplay} person, man følger} other {{followingCountDisplay} personer, man følger}}.", "domain_block_modal.you_will_lose_num_followers": "Man vil miste {followersCount, plural, one {{followersCountDisplay} følger} other {{followersCountDisplay} følgere}} og {followingCount, plural, one {{followingCountDisplay} person, man følger} other {{followingCountDisplay} personer, man følger}}.",
"domain_block_modal.you_will_lose_relationships": "Alle følgere og personer som følges på denne server mistes.", "domain_block_modal.you_will_lose_relationships": "Alle følgere og personer som følges på denne server mistes.",
"domain_block_modal.you_wont_see_posts": "Indlæg eller notifikationer fra brugere på denne server vises ikke.", "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_lets_connect": "Det muliggører at forbinde 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.activitypub_like_language": "ActivityPub er \"sproget\", som Mastodon taler med andre sociale netværk.",
"domain_pill.server": "Server", "domain_pill.server": "Server",
"domain_pill.their_handle": "Vedkommendes handle:", "domain_pill.their_handle": "Deres greb:",
"domain_pill.their_server": "Det digitale hjem, hvor alle indlæggene findes.", "domain_pill.their_server": "Det digitale hjem, hvor alle indlæggene findes.",
"domain_pill.their_username": "Entydig identifikator på denne server. Det er muligt at finde brugere med samme brugernavn på forskellige servere.", "domain_pill.their_username": "Entydig identifikator på denne server. Det er muligt at finde brugere med samme brugernavn på forskellige servere.",
"domain_pill.username": "Brugernavn", "domain_pill.username": "Brugernavn",
"domain_pill.whats_in_a_handle": "Hvad er der i et handle (@brugernavn)?", "domain_pill.whats_in_a_handle": "Hvad er der i et greb?",
"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 <button>ActivityPub-drevne platforme</button>.", "domain_pill.who_they_are": "Da et greb fortæller, hvem nogen er, og hvor de er, kan man interagere med folk på tværs af det sociale net af <button>ActivityPub-drevne platforme</button>.",
"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 <button>ActivityPub-drevne platforme</button>.", "domain_pill.who_you_are": "Da et greb fortæller, hvem man er, og hvor man er, kan man interagere med folk på tværs af det sociale net af <button>ActivityPub-drevne platforme</button>.",
"domain_pill.your_handle": "Dit handle:", "domain_pill.your_handle": "Dit greb:",
"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_server": "Dit digitale hjem, hvor alle dine indlæg lever. Synes ikke om den her server? Du kan til enhver tid rykke over på en anden server og beholde dine følgere.",
"domain_pill.your_username": "Din entydige identifikator på denne server. Det er muligt at finde brugere med samme brugernavn på forskellige servere.", "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.instructions": "Indlejr dette indlæg på din hjemmeside ved at kopiere nedenstående kode.",
"embed.preview": "Sådan kommer det til at se ud:", "embed.preview": "Sådan kommer det til at se ud:",
"emoji_button.activity": "Aktivitet", "emoji_button.activity": "Aktivitet",
"emoji_button.clear": "Ryd", "emoji_button.clear": "Ryd",
@ -295,36 +295,36 @@
"emoji_button.travel": "Rejser og steder", "emoji_button.travel": "Rejser og steder",
"empty_column.account_hides_collections": "Brugeren har valgt ikke at gøre denne information tilgængelig", "empty_column.account_hides_collections": "Brugeren har valgt ikke at gøre denne information tilgængelig",
"empty_column.account_suspended": "Konto suspenderet", "empty_column.account_suspended": "Konto suspenderet",
"empty_column.account_timeline": "Ingen indlæg hér!", "empty_column.account_timeline": "Ingen indlæg her!",
"empty_column.account_unavailable": "Profil utilgængelig", "empty_column.account_unavailable": "Profil utilgængelig",
"empty_column.blocks": "Ingen brugere blokeret endnu.", "empty_column.blocks": "Ingen brugere blokeret endnu.",
"empty_column.bookmarked_statuses": "Du har ingen bogmærkede indlæg endnu. Når du bogmærker ét, vil det dukke op hér.", "empty_column.bookmarked_statuses": "Du har ingen bogmærkede indlæg endnu. Når du bogmærker ét, vil det dukke op hér.",
"empty_column.community": "Den lokale tidslinje er tom. Skriv noget offentligt for at sætte tingene i gang!", "empty_column.community": "Den lokale tidslinje er tom. Skriv noget offentligt for at sætte tingene i gang!",
"empty_column.direct": "Der er endnu ingen private omtaler. Når en sendes eller modtages, dukker den op hér.", "empty_column.direct": "Der er endnu ingen private omtaler. Når en sendes eller modtages, dukker den op her.",
"empty_column.domain_blocks": "Ingen blokerede domæner endnu.", "empty_column.domain_blocks": "Ingen blokerede domæner endnu.",
"empty_column.explore_statuses": "Ingen nye tendenser lige nu. Tjek igen senere!", "empty_column.explore_statuses": "Ingen nye tendenser lige nu. Tjek igen senere!",
"empty_column.favourited_statuses": "Du har endnu ingen favoritindlæg. Når du favoritmarkerer ét, vil det dukke op hér.", "empty_column.favourited_statuses": "Du har endnu ingen favoritindlæg. Når du føjer et opslag til favoritter, vil det dukke op her.",
"empty_column.favourites": "Ingen har endnu gjort dette indlæg til favorit. Når nogen gør dét, vil det dukke op hér.", "empty_column.favourites": "Ingen har endnu føjet dette indlæg til favoritter. Når nogen gør det, vil det dukke op her.",
"empty_column.follow_requests": "Du har endnu ingen følgeanmodninger. Når du modtager én, vil den dukke op hér.", "empty_column.follow_requests": "Du har endnu ingen følgeanmodninger. Når du modtager én, vil den dukke op her.",
"empty_column.followed_tags": "Ingen hashtags følges endnu. Når det sker, vil de fremgå hér.", "empty_column.followed_tags": "Ingen etiketter følges endnu. Når det sker, vil de fremgå her.",
"empty_column.hashtag": "Der er intet med dette hashtag endnu.", "empty_column.hashtag": "Der er intet med denne etiket endnu.",
"empty_column.home": "Din hjemmetidslinje er tom! Følg nogle personer, for at udfylde den. {suggestions}", "empty_column.home": "Din hjemmetidslinje er tom! Følg nogle personer, for at fylde den op.",
"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.list": "Der er ikke noget på denne liste endnu. Når medlemmer af listen udgiver nye indlæg vil de fremgå her.",
"empty_column.mutes": "Du har endnu ikke skjult (muted) nogle brugere.", "empty_column.mutes": "Du har endnu ikke skjult 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.notification_requests": "Alt er klar! Der er intet her. Når der modtages nye notifikationer, fremgår de her jævnfør dine indstillinger.",
"empty_column.notifications": "Du har endnu ingen notifikationer. Når andre interagerer med dig, vil det fremgå hér.", "empty_column.notifications": "Du har endnu ingen notifikationer. Når andre interagerer med dig, vil det fremgå her.",
"empty_column.public": "Der er intet hér! Skriv noget offentligt eller følg manuelt brugere fra andre servere for at se indhold", "empty_column.public": "Der er intet her! 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.", "error.unexpected_crash.explanation": "Grundet en fejl i vores kode, eller en netlæser-kompatibilitetsfejl, kunne siden ikke vises korrekt.",
"error.unexpected_crash.explanation_addons": "Denne side kunne ikke vises korrekt. Fejlen skyldes sandsynligvis en browsertilføjelse eller automatiske oversættelsesværktøjer.", "error.unexpected_crash.explanation_addons": "Denne side kunne ikke vises korrekt. Fejlen skyldes sandsynligvis en browsertilføjelse eller automatiske oversættelsesværktøjer.",
"error.unexpected_crash.next_steps": "Prøv at opfriske siden. Hjælper dette ikke, kan Mastodon muligvis stadig bruges via en anden browser eller app.", "error.unexpected_crash.next_steps": "Prøv at opfriske siden. Hjælper dette ikke, kan Mastodon muligvis stadig bruges via en anden netlæser eller app.",
"error.unexpected_crash.next_steps_addons": "Prøv at deaktivere dem og genindlæse siden. Hvis det ikke hjælper, kan Mastodon muligvis stadig bruges via en anden browser eller app.", "error.unexpected_crash.next_steps_addons": "Prøv at deaktivere dem og genindlæse siden. Hvis det ikke hjælper, kan Mastodon muligvis stadig bruges via en anden netlæser eller app.",
"errors.unexpected_crash.copy_stacktrace": "Kopiér stacktrace til udklipsholderen", "errors.unexpected_crash.copy_stacktrace": "Kopiér stacktrace til udklipsholderen",
"errors.unexpected_crash.report_issue": "Anmeld problem", "errors.unexpected_crash.report_issue": "Anmeld problem",
"explore.suggested_follows": "Personer", "explore.suggested_follows": "Personer",
"explore.title": "Udforsk", "explore.title": "Udforsk",
"explore.trending_links": "Nyheder", "explore.trending_links": "Nyheder",
"explore.trending_statuses": "Indlæg", "explore.trending_statuses": "Indlæg",
"explore.trending_tags": "Hashtags", "explore.trending_tags": "Etiketter",
"filter_modal.added.context_mismatch_explanation": "Denne filterkategori omfatter ikke konteksten, hvorunder dette indlæg er tilgået. Redigér filteret, hvis indlægget også ønskes filtreret i denne kontekst.", "filter_modal.added.context_mismatch_explanation": "Denne filterkategori omfatter ikke konteksten, hvorunder dette indlæg er tilgået. Redigér filteret, hvis indlægget også ønskes filtreret i denne kontekst.",
"filter_modal.added.context_mismatch_title": "Kontekstmisforhold!", "filter_modal.added.context_mismatch_title": "Kontekstmisforhold!",
"filter_modal.added.expired_explanation": "Denne filterkategori er udløbet. Ændr dens udløbsdato, for at anvende den.", "filter_modal.added.expired_explanation": "Denne filterkategori er udløbet. Ændr dens udløbsdato, for at anvende den.",
@ -332,7 +332,7 @@
"filter_modal.added.review_and_configure": "Gå til {settings_link} for at gennemse og yderligere opsætte denne filterkategori.", "filter_modal.added.review_and_configure": "Gå til {settings_link} for at gennemse og yderligere opsætte denne filterkategori.",
"filter_modal.added.review_and_configure_title": "Filterindstillinger", "filter_modal.added.review_and_configure_title": "Filterindstillinger",
"filter_modal.added.settings_link": "indstillingsside", "filter_modal.added.settings_link": "indstillingsside",
"filter_modal.added.short_explanation": "Dette indlæg er nu føjet til flg. filterkategori: {title}.", "filter_modal.added.short_explanation": "Dette indlæg er nu føjet til følgende filterkategori: {title}.",
"filter_modal.added.title": "Filter tilføjet!", "filter_modal.added.title": "Filter tilføjet!",
"filter_modal.select_filter.context_mismatch": "gælder ikke for denne kontekst", "filter_modal.select_filter.context_mismatch": "gælder ikke for denne kontekst",
"filter_modal.select_filter.expired": "udløbet", "filter_modal.select_filter.expired": "udløbet",
@ -365,7 +365,7 @@
"follow_suggestions.similar_to_recently_followed_longer": "Svarende til profiler, som for nylig er fulgt", "follow_suggestions.similar_to_recently_followed_longer": "Svarende til profiler, som for nylig er fulgt",
"follow_suggestions.view_all": "Vis alle", "follow_suggestions.view_all": "Vis alle",
"follow_suggestions.who_to_follow": "Hvem, som skal følges", "follow_suggestions.who_to_follow": "Hvem, som skal følges",
"followed_tags": "Hashtag, som følges", "followed_tags": "Etiketter, som følges",
"footer.about": "Om", "footer.about": "Om",
"footer.directory": "Profiloversigt", "footer.directory": "Profiloversigt",
"footer.get_app": "Hent appen", "footer.get_app": "Hent appen",
@ -381,7 +381,7 @@
"hashtag.column_header.tag_mode.any": "eller {additional}", "hashtag.column_header.tag_mode.any": "eller {additional}",
"hashtag.column_header.tag_mode.none": "uden {additional}", "hashtag.column_header.tag_mode.none": "uden {additional}",
"hashtag.column_settings.select.no_options_message": "Ingen forslag fundet", "hashtag.column_settings.select.no_options_message": "Ingen forslag fundet",
"hashtag.column_settings.select.placeholder": "Angiv hashtags…", "hashtag.column_settings.select.placeholder": "Angiv etiketter…",
"hashtag.column_settings.tag_mode.all": "Alle disse", "hashtag.column_settings.tag_mode.all": "Alle disse",
"hashtag.column_settings.tag_mode.any": "Nogle af disse", "hashtag.column_settings.tag_mode.any": "Nogle af disse",
"hashtag.column_settings.tag_mode.none": "Ingen af disse", "hashtag.column_settings.tag_mode.none": "Ingen af disse",
@ -389,8 +389,8 @@
"hashtag.counter_by_accounts": "{count, plural, one {{counter} deltager} other {{counter} deltagere}}", "hashtag.counter_by_accounts": "{count, plural, one {{counter} deltager} other {{counter} deltagere}}",
"hashtag.counter_by_uses": "{count, plural, one {{counter} indlæg} other {{counter} indlæg}}", "hashtag.counter_by_uses": "{count, plural, one {{counter} indlæg} other {{counter} indlæg}}",
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} indlæg} other {{counter} indlæg}} i dag", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} indlæg} other {{counter} indlæg}} i dag",
"hashtag.follow": "Følg hashtag", "hashtag.follow": "Følg etiket",
"hashtag.unfollow": "Stop med at følge hashtag", "hashtag.unfollow": "Stop med at følge etiket",
"hashtags.and_other": "…og {count, plural, one {}other {# flere}}", "hashtags.and_other": "…og {count, plural, one {}other {# flere}}",
"hints.profiles.followers_may_be_missing": "Der kan mangle følgere for denne profil.", "hints.profiles.followers_may_be_missing": "Der kan mangle følgere for denne profil.",
"hints.profiles.follows_may_be_missing": "Fulgte kan mangle for denne profil.", "hints.profiles.follows_may_be_missing": "Fulgte kan mangle for denne profil.",
@ -400,15 +400,15 @@
"hints.profiles.see_more_posts": "Se flere indlæg på {domain}", "hints.profiles.see_more_posts": "Se flere indlæg på {domain}",
"hints.threads.replies_may_be_missing": "Der kan mangle svar fra andre servere.", "hints.threads.replies_may_be_missing": "Der kan mangle svar fra andre servere.",
"hints.threads.see_more": "Se flere svar på {domain}", "hints.threads.see_more": "Se flere svar på {domain}",
"home.column_settings.show_reblogs": "Vis boosts", "home.column_settings.show_reblogs": "Vis fremhævelser",
"home.column_settings.show_replies": "Vis svar", "home.column_settings.show_replies": "Vis svar",
"home.hide_announcements": "Skjul bekendtgørelser", "home.hide_announcements": "Skjul bekendtgørelser",
"home.pending_critical_update.body": "Opdater din Mastodon-server snarest muligt!", "home.pending_critical_update.body": "Opdatér venligst din Mastodon-server snarest muligt!",
"home.pending_critical_update.link": "Se opdateringer", "home.pending_critical_update.link": "Se opdateringer",
"home.pending_critical_update.title": "Kritisk sikkerhedsopdatering tilgængelig!", "home.pending_critical_update.title": "Kritisk sikkerhedsopdatering tilgængelig!",
"home.show_announcements": "Vis bekendtgørelser", "home.show_announcements": "Vis bekendtgørelser",
"ignore_notifications_modal.disclaimer": "Mastodon kan ikke informere brugere om, at man har ignoreret deres notifikationer. Ignorerer man notifikationer, forhindrer det ikke selve beskedafsendelsen.", "ignore_notifications_modal.disclaimer": "Mastodon kan ikke informere brugere om, at man har ignoreret deres notifikationer. Ignorerer man notifikationer, forhindrer det ikke selve beskedafsendelsen.",
"ignore_notifications_modal.filter_instead": "Filtrer i stedet", "ignore_notifications_modal.filter_instead": "Filtrér i stedet",
"ignore_notifications_modal.filter_to_act_users": "Man vil stadig kunne acceptere, afvise eller anmelde brugere", "ignore_notifications_modal.filter_to_act_users": "Man vil stadig kunne acceptere, afvise eller anmelde brugere",
"ignore_notifications_modal.filter_to_avoid_confusion": "Filtrering medvirker til at undgå potentiel forvirring", "ignore_notifications_modal.filter_to_avoid_confusion": "Filtrering medvirker til at undgå potentiel forvirring",
"ignore_notifications_modal.filter_to_review_separately": "Man kan gennemgå filtrerede notifikationer separat", "ignore_notifications_modal.filter_to_review_separately": "Man kan gennemgå filtrerede notifikationer separat",
@ -420,43 +420,43 @@
"ignore_notifications_modal.private_mentions_title": "Ignorér notifikationer fra uopfordrede Private omtaler?", "ignore_notifications_modal.private_mentions_title": "Ignorér notifikationer fra uopfordrede Private omtaler?",
"info_button.label": "Hjælp", "info_button.label": "Hjælp",
"info_button.what_is_alt_text": "<h1>Hvad er alt-tekst?</h1> <p>Alt-tekst leverer billedbeskrivelser til folk med synsnedsættelser, lav båndbredde-forbindelser eller med ønske om ekstra kontekst.</p> <p>Tilgængelighed og forståelse kan forbedres for alle ved at skrive klar, kortfattet og objektiv alt-tekst.</p> <ul> <li>Fang vigtige elementer</li> <li>Opsummér tekst i billeder</li> <li>Brug almindelig sætningsstruktur</li> <li>Undgå overflødig information</li> <li>Fokusér på tendenser og centrale resultater i kompleks grafik (såsom diagrammer eller kort)</li> </ul>", "info_button.what_is_alt_text": "<h1>Hvad er alt-tekst?</h1> <p>Alt-tekst leverer billedbeskrivelser til folk med synsnedsættelser, lav båndbredde-forbindelser eller med ønske om ekstra kontekst.</p> <p>Tilgængelighed og forståelse kan forbedres for alle ved at skrive klar, kortfattet og objektiv alt-tekst.</p> <ul> <li>Fang vigtige elementer</li> <li>Opsummér tekst i billeder</li> <li>Brug almindelig sætningsstruktur</li> <li>Undgå overflødig information</li> <li>Fokusér på tendenser og centrale resultater i kompleks grafik (såsom diagrammer eller kort)</li> </ul>",
"interaction_modal.action.favourite": "For at fortsætte, skal man vælge Gør til favorit fra sin konto.", "interaction_modal.action.favourite": "For at fortsætte, skal du føje til favoritter fra din konto.",
"interaction_modal.action.follow": "For at fortsætte, skal man vælge Følg fra sin konto.", "interaction_modal.action.follow": "For at fortsætte, skal man vælge Følg fra sin konto.",
"interaction_modal.action.reblog": "For at fortsætte, skal man vælge Genblog fra sin konto.", "interaction_modal.action.reblog": "For at fortsætte, skal man vælge Fremhæv fra sin konto.",
"interaction_modal.action.reply": "For at fortsætte, skal man besvar fra sin konto.", "interaction_modal.action.reply": "For at fortsætte, skal man besvar fra sin konto.",
"interaction_modal.action.vote": "For at fortsætte, skal man stemme fra sin konto.", "interaction_modal.action.vote": "For at fortsætte, skal man stemme fra sin konto.",
"interaction_modal.go": "Gå", "interaction_modal.go": "Gå",
"interaction_modal.no_account_yet": "Har endnu ingen konto?", "interaction_modal.no_account_yet": "Har endnu ingen konto?",
"interaction_modal.on_another_server": "På en anden server", "interaction_modal.on_another_server": "På en anden server",
"interaction_modal.on_this_server": "På denne server", "interaction_modal.on_this_server": "På denne server",
"interaction_modal.title.favourite": "Gør {name}s indlæg til favorit", "interaction_modal.title.favourite": "Føj {name}s indlæg til favoritter",
"interaction_modal.title.follow": "Følg {name}", "interaction_modal.title.follow": "Følg {name}",
"interaction_modal.title.reblog": "Boost {name}s indlæg", "interaction_modal.title.reblog": "Fremhæv {name}s indlæg",
"interaction_modal.title.reply": "Besvar {name}s indlæg", "interaction_modal.title.reply": "Besvar {name}s indlæg",
"interaction_modal.title.vote": "Deltag i {name}s afstemning", "interaction_modal.title.vote": "Stem i {name}s afstemning",
"interaction_modal.username_prompt": "F.eks. {example}", "interaction_modal.username_prompt": "F.eks. {example}",
"intervals.full.days": "{number, plural, one {# dag} other {# dage}}", "intervals.full.days": "{number, plural, one {# dag} other {# dage}}",
"intervals.full.hours": "{number, plural, one {# time} other {# timer}}", "intervals.full.hours": "{number, plural, one {# time} other {# timer}}",
"intervals.full.minutes": "{number, plural, one {# minut} other {# minutter}}", "intervals.full.minutes": "{number, plural, one {# minut} other {# minutter}}",
"keyboard_shortcuts.back": "Gå tilbage", "keyboard_shortcuts.back": "Gå tilbage",
"keyboard_shortcuts.blocked": "Åbn listen over blokerede brugere", "keyboard_shortcuts.blocked": "Åbn listen over blokerede brugere",
"keyboard_shortcuts.boost": "Boost indlæg", "keyboard_shortcuts.boost": "Fremhæv indlæg",
"keyboard_shortcuts.column": "Fokusér kolonne", "keyboard_shortcuts.column": "Fokusér kolonne",
"keyboard_shortcuts.compose": "Fokusér skriveområdet", "keyboard_shortcuts.compose": "Fokusér skriveområdet",
"keyboard_shortcuts.description": "Beskrivelse", "keyboard_shortcuts.description": "Beskrivelse",
"keyboard_shortcuts.direct": "for at åbne kolonnen private omtaler", "keyboard_shortcuts.direct": "for at åbne kolonnen private omtaler",
"keyboard_shortcuts.down": "Flyt nedad på listen", "keyboard_shortcuts.down": "Flyt nedad på listen",
"keyboard_shortcuts.enter": "Åbn indlæg", "keyboard_shortcuts.enter": "Åbn indlæg",
"keyboard_shortcuts.favourite": "Favoritmarkér indlæg", "keyboard_shortcuts.favourite": "Føj indlæg til favoritter",
"keyboard_shortcuts.favourites": "Åbn favoritlisten", "keyboard_shortcuts.favourites": "Åbn favoritlisten",
"keyboard_shortcuts.federated": "Åbn fælles tidslinje", "keyboard_shortcuts.federated": "Åbn fødereret tidslinje",
"keyboard_shortcuts.heading": "Tastaturgenveje", "keyboard_shortcuts.heading": "Tastaturgenveje",
"keyboard_shortcuts.home": "Åbn hjemmetidslinje", "keyboard_shortcuts.home": "Åbn hjemmetidslinje",
"keyboard_shortcuts.hotkey": "Hurtigtast", "keyboard_shortcuts.hotkey": "Hurtigtast",
"keyboard_shortcuts.legend": "Vis dette symbol", "keyboard_shortcuts.legend": "Vis dette symbol",
"keyboard_shortcuts.local": "Åbn lokal tidslinje", "keyboard_shortcuts.local": "Åbn lokal tidslinje",
"keyboard_shortcuts.mention": "Omtal forfatter", "keyboard_shortcuts.mention": "Omtal forfatter",
"keyboard_shortcuts.muted": "Åbn listen over skjulte (mutede) brugere", "keyboard_shortcuts.muted": "Åbn listen over skjulte brugere",
"keyboard_shortcuts.my_profile": "Åbn din profil", "keyboard_shortcuts.my_profile": "Åbn din profil",
"keyboard_shortcuts.notifications": "for at åbne notifikationskolonnen", "keyboard_shortcuts.notifications": "for at åbne notifikationskolonnen",
"keyboard_shortcuts.open_media": "Åbn medier", "keyboard_shortcuts.open_media": "Åbn medier",
@ -465,9 +465,9 @@
"keyboard_shortcuts.reply": "Besvar indlægget", "keyboard_shortcuts.reply": "Besvar indlægget",
"keyboard_shortcuts.requests": "Åbn liste over følgeanmodninger", "keyboard_shortcuts.requests": "Åbn liste over følgeanmodninger",
"keyboard_shortcuts.search": "Fokusér søgebjælke", "keyboard_shortcuts.search": "Fokusér søgebjælke",
"keyboard_shortcuts.spoilers": "Vis/skjul CW-felt", "keyboard_shortcuts.spoilers": "Vis/skjul emnefelt",
"keyboard_shortcuts.start": "Åbn \"komme i gang\"-kolonne", "keyboard_shortcuts.start": "Åbn \"komme i gang\"-kolonne",
"keyboard_shortcuts.toggle_hidden": "Vis/skjul tekst bag CW", "keyboard_shortcuts.toggle_hidden": "Vis/skjul tekst bag emnefelt",
"keyboard_shortcuts.toggle_sensitivity": "Vis/skjul medier", "keyboard_shortcuts.toggle_sensitivity": "Vis/skjul medier",
"keyboard_shortcuts.toot": "Påbegynd nyt indlæg", "keyboard_shortcuts.toot": "Påbegynd nyt indlæg",
"keyboard_shortcuts.translate": "for at oversætte et indlæg", "keyboard_shortcuts.translate": "for at oversætte et indlæg",
@ -515,16 +515,16 @@
"moved_to_account_banner.text": "Din konto {disabledAccount} er pt. deaktiveret, da du flyttede til {movedToAccount}.", "moved_to_account_banner.text": "Din konto {disabledAccount} er pt. deaktiveret, da du flyttede til {movedToAccount}.",
"mute_modal.hide_from_notifications": "Skjul fra notifikationer", "mute_modal.hide_from_notifications": "Skjul fra notifikationer",
"mute_modal.hide_options": "Skjul valgmuligheder", "mute_modal.hide_options": "Skjul valgmuligheder",
"mute_modal.indefinite": "Indtil jeg fjerner tavsgørelsen", "mute_modal.indefinite": "Indtil jeg vælger at se dem igen",
"mute_modal.show_options": "Vis valgmuligheder", "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_can_mention_and_follow": "De kan omtale og følge dig, men du vil ikke se dem.",
"mute_modal.they_wont_know": "Vedkommende ser ikke den aktive tavsgørelse.", "mute_modal.they_wont_know": "De vil ikke vide, at de er blevet skjult.",
"mute_modal.title": "Tavsgør bruger?", "mute_modal.title": "Skjul bruger?",
"mute_modal.you_wont_see_mentions": "Indlæg, som nævner vedkommende, vises ikke.", "mute_modal.you_wont_see_mentions": "Du vil ikke se indlæg som omtaler dem.",
"mute_modal.you_wont_see_posts": "Vedkommende kan stadig se dine indlæg, med vedkommendes vise ikke.", "mute_modal.you_wont_see_posts": "De kan stadig se dine indlæg, men du vil ikke se deres.",
"navigation_bar.about": "Om", "navigation_bar.about": "Om",
"navigation_bar.administration": "Håndtering", "navigation_bar.administration": "Administration",
"navigation_bar.advanced_interface": "Åbn i avanceret webgrænseflade", "navigation_bar.advanced_interface": "Åbn i avanceret netgrænseflade",
"navigation_bar.blocks": "Blokerede brugere", "navigation_bar.blocks": "Blokerede brugere",
"navigation_bar.bookmarks": "Bogmærker", "navigation_bar.bookmarks": "Bogmærker",
"navigation_bar.community_timeline": "Lokal tidslinje", "navigation_bar.community_timeline": "Lokal tidslinje",
@ -534,14 +534,14 @@
"navigation_bar.domain_blocks": "Blokerede domæner", "navigation_bar.domain_blocks": "Blokerede domæner",
"navigation_bar.explore": "Udforsk", "navigation_bar.explore": "Udforsk",
"navigation_bar.favourites": "Favoritter", "navigation_bar.favourites": "Favoritter",
"navigation_bar.filters": "Skjulte ord (mutede)", "navigation_bar.filters": "Skjulte ord",
"navigation_bar.follow_requests": "Følgeanmodninger", "navigation_bar.follow_requests": "Følgeanmodninger",
"navigation_bar.followed_tags": "Hashtag, som følges", "navigation_bar.followed_tags": "Etiketter, som følges",
"navigation_bar.follows_and_followers": "Følges og følgere", "navigation_bar.follows_and_followers": "Følges og følgere",
"navigation_bar.lists": "Lister", "navigation_bar.lists": "Lister",
"navigation_bar.logout": "Log af", "navigation_bar.logout": "Log af",
"navigation_bar.moderation": "Moderering", "navigation_bar.moderation": "Moderering",
"navigation_bar.mutes": "Skjulte brugere (mutede)", "navigation_bar.mutes": "Skjulte brugere",
"navigation_bar.opened_in_classic_interface": "Indlæg, konti og visse andre sider åbnes som standard i den klassiske webgrænseflade.", "navigation_bar.opened_in_classic_interface": "Indlæg, konti og visse andre sider åbnes som standard i den klassiske webgrænseflade.",
"navigation_bar.personal": "Personlig", "navigation_bar.personal": "Personlig",
"navigation_bar.pins": "Fastgjorte indlæg", "navigation_bar.pins": "Fastgjorte indlæg",
@ -559,10 +559,10 @@
"notification.admin.sign_up.name_and_others": "{name} og {count, plural, one {# anden} other {# andre}} tilmeldte sig", "notification.admin.sign_up.name_and_others": "{name} og {count, plural, one {# anden} other {# andre}} tilmeldte sig",
"notification.annual_report.message": "{year} #Wrapstodon venter! Afslør årets højdepunkter og mindeværdige øjeblikke på Mastodon!", "notification.annual_report.message": "{year} #Wrapstodon venter! Afslør årets højdepunkter og mindeværdige øjeblikke på Mastodon!",
"notification.annual_report.view": "Vis #Wrapstodon", "notification.annual_report.view": "Vis #Wrapstodon",
"notification.favourite": "{name} favoritmarkerede dit indlæg", "notification.favourite": "{name} føjede dit indlæg til favoritter",
"notification.favourite.name_and_others_with_link": "{name} og <a>{count, plural, one {# anden} other {# andre}}</a> gjorde dit indlæg til favorit", "notification.favourite.name_and_others_with_link": "{name} og <a>{count, plural, one {# anden} other {# andre}}</a> føjede dit indlæg til favoritter",
"notification.favourite_pm": "{name} favoritmarkerede din private omtale", "notification.favourite_pm": "{name} føjede din private omtale til favoritter",
"notification.favourite_pm.name_and_others_with_link": "{name} og <a>{count, plural, one {# anden} other {# andre}}</a> favoritmarkerede dit indlæg", "notification.favourite_pm.name_and_others_with_link": "{name} og <a>{count, plural, one {# anden} other {# andre}}</a> føjede dit indlæg til favoritter",
"notification.follow": "{name} begyndte at følge dig", "notification.follow": "{name} begyndte at følge dig",
"notification.follow.name_and_others": "{name} og <a>{count, plural, one {# andre} other {# andre}}</a> begyndte at følge dig", "notification.follow.name_and_others": "{name} og <a>{count, plural, one {# andre} other {# andre}}</a> begyndte at følge dig",
"notification.follow_request": "{name} har anmodet om at følge dig", "notification.follow_request": "{name} har anmodet om at følge dig",
@ -570,36 +570,36 @@
"notification.label.mention": "Omtale", "notification.label.mention": "Omtale",
"notification.label.private_mention": "Privat omtale", "notification.label.private_mention": "Privat omtale",
"notification.label.private_reply": "Privat svar", "notification.label.private_reply": "Privat svar",
"notification.label.reply": "Besvar", "notification.label.reply": "Svar",
"notification.mention": "Omtale", "notification.mention": "Omtale",
"notification.mentioned_you": "{name} nævnte dig", "notification.mentioned_you": "{name} omtalte dig",
"notification.moderation-warning.learn_more": "Læs mere", "notification.moderation-warning.learn_more": "Læs mere",
"notification.moderation_warning": "Du er tildelt en moderationsadvarsel", "notification.moderation_warning": "Du har fået en moderationsadvarsel",
"notification.moderation_warning.action_delete_statuses": "Nogle af dine indlæg er blevet fjernet.", "notification.moderation_warning.action_delete_statuses": "Nogle af dine indlæg er blevet fjernet.",
"notification.moderation_warning.action_disable": "Din konto er blevet deaktiveret.", "notification.moderation_warning.action_disable": "Din konto er blevet deaktiveret.",
"notification.moderation_warning.action_mark_statuses_as_sensitive": "Nogle af dine indlæg er blevet markeret som sensitive.", "notification.moderation_warning.action_mark_statuses_as_sensitive": "Nogle af dine indlæg er blevet markeret som følsomme.",
"notification.moderation_warning.action_none": "Din konto er tildelt en moderationsadvarsel.", "notification.moderation_warning.action_none": "Din konto har fået en moderationsadvarsel.",
"notification.moderation_warning.action_sensitive": "Dine indlæg markeres fra nu af som sensitive.", "notification.moderation_warning.action_sensitive": "Dine indlæg markeres fra nu af som følsomme.",
"notification.moderation_warning.action_silence": "Din konto er blevet begrænset.", "notification.moderation_warning.action_silence": "Din konto er blevet begrænset.",
"notification.moderation_warning.action_suspend": "Din konto er suspenderet.", "notification.moderation_warning.action_suspend": "Din konto er suspenderet.",
"notification.own_poll": "Din afstemning er afsluttet", "notification.own_poll": "Din afstemning er afsluttet",
"notification.poll": "En afstemning, hvori du har stemt, er slut", "notification.poll": "En afstemning, hvori du har stemt, er slut",
"notification.reblog": "{name} boostede dit indlæg", "notification.reblog": "{name} fremhævede dit indlæg",
"notification.reblog.name_and_others_with_link": "{name} og <a>{count, plural, one {# anden} other {# andre}}</a> boostede dit indlæg", "notification.reblog.name_and_others_with_link": "{name} og <a>{count, plural, one {# anden} other {# andre}}</a> fremhævede dit indlæg",
"notification.relationships_severance_event": "Mistede forbindelser med {name}", "notification.relationships_severance_event": "Mistede forbindelser med {name}",
"notification.relationships_severance_event.account_suspension": "En admin fra {from} har suspenderet {target}, hvofor opdateringer herfra eller interaktion hermed ikke længer er mulig.", "notification.relationships_severance_event.account_suspension": "En admin fra {from} har suspenderet {target}, så du kan ikke længere få opdateringer fra eller interagere med dem.",
"notification.relationships_severance_event.domain_block": "En admin fra {from} har blokeret {target}, herunder {followersCount} tilhængere og {followingCount, plural, one {# konto, der} other {# konti, som}} følges.", "notification.relationships_severance_event.domain_block": "En admin fra {from} har blokeret {target}, herunder {followersCount} følgere og {followingCount, plural, one {# konto, der} other {# konti, som}} som du følger.",
"notification.relationships_severance_event.learn_more": "Læs mere", "notification.relationships_severance_event.learn_more": "Læs mere",
"notification.relationships_severance_event.user_domain_block": "{target} er blevet blokeret, og {followersCount} tilhængere samt {followingCount, plural, one {# konto, der} other {# konti, som}} følges, er hermed fjernet.", "notification.relationships_severance_event.user_domain_block": "Du har blokeret {target}. {followersCount} af dine følgere samt {followingCount, plural, one {# konto, der} other {# konti, som}} du følger, er hermed fjernet.",
"notification.status": "{name} har netop postet", "notification.status": "{name} har netop slået noget op",
"notification.update": "{name} redigerede et indlæg", "notification.update": "{name} redigerede et indlæg",
"notification_requests.accept": "Acceptér", "notification_requests.accept": "Acceptér",
"notification_requests.accept_multiple": "{count, plural, one {Acceptér # anmodning…} other {Acceptér # anmodninger…}}", "notification_requests.accept_multiple": "{count, plural, one {Acceptér # anmodning…} other {Acceptér # anmodninger…}}",
"notification_requests.confirm_accept_multiple.button": "{count, plural, one {Acceptér anmodning} other {Acceptér anmodninger}}", "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Acceptér anmodning} other {Acceptér anmodninger}}",
"notification_requests.confirm_accept_multiple.message": "{count, plural, one {En notifikationsanmodning} other {# notifikationsanmodninger}} er ved at blive accepteret. Fortsæt, sikker?", "notification_requests.confirm_accept_multiple.message": "{count, plural, one {En notifikationsanmodning} other {# notifikationsanmodninger}} er ved at blive accepteret. Er du sikker på, at du vil fortsætte?",
"notification_requests.confirm_accept_multiple.title": "Acceptér notifikationsanmodninger?", "notification_requests.confirm_accept_multiple.title": "Acceptér notifikationsanmodninger?",
"notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Afvis anmodning} other {Afvis anmodninger}}", "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Afvis anmodning} other {Afvis anmodninger}}",
"notification_requests.confirm_dismiss_multiple.message": "{count, plural, one {En notifikationsanmodning} other {# notifikationsanmodninger}} er ved at blive afvist, hvorfor man ikke nemt vil kunne tilgå {count, plural, one {den} other {dem}} igen. Fortsæt, sikker?", "notification_requests.confirm_dismiss_multiple.message": "{count, plural, one {En notifikationsanmodning} other {# notifikationsanmodninger}} er ved at blive afvist, hvorfor man ikke nemt vil kunne tilgå {count, plural, one {den} other {dem}} igen. Er du sikker på, at du vil fortsætte?",
"notification_requests.confirm_dismiss_multiple.title": "Afvis notifikationsanmodninger?", "notification_requests.confirm_dismiss_multiple.title": "Afvis notifikationsanmodninger?",
"notification_requests.dismiss": "Afvis", "notification_requests.dismiss": "Afvis",
"notification_requests.dismiss_multiple": "{count, plural, one {Afvis # anmodning…} other {Afvis # anmodninger…}}", "notification_requests.dismiss_multiple": "{count, plural, one {Afvis # anmodning…} other {Afvis # anmodninger…}}",
@ -615,7 +615,7 @@
"notifications.clear": "Ryd notifikationer", "notifications.clear": "Ryd notifikationer",
"notifications.clear_confirmation": "Er du sikker på, at du vil rydde alle dine notifikationer permanent?", "notifications.clear_confirmation": "Er du sikker på, at du vil rydde alle dine notifikationer permanent?",
"notifications.clear_title": "Ryd notifikationer?", "notifications.clear_title": "Ryd notifikationer?",
"notifications.column_settings.admin.report": "Nye anmeldelser:", "notifications.column_settings.admin.report": "Nye rapporteringer:",
"notifications.column_settings.admin.sign_up": "Nye tilmeldinger:", "notifications.column_settings.admin.sign_up": "Nye tilmeldinger:",
"notifications.column_settings.alert": "Computernotifikationer", "notifications.column_settings.alert": "Computernotifikationer",
"notifications.column_settings.favourite": "Favoritter:", "notifications.column_settings.favourite": "Favoritter:",
@ -627,7 +627,7 @@
"notifications.column_settings.mention": "Omtaler:", "notifications.column_settings.mention": "Omtaler:",
"notifications.column_settings.poll": "Afstemningsresultater:", "notifications.column_settings.poll": "Afstemningsresultater:",
"notifications.column_settings.push": "Push-notifikationer", "notifications.column_settings.push": "Push-notifikationer",
"notifications.column_settings.reblog": "Boosts:", "notifications.column_settings.reblog": "Fremhævelser:",
"notifications.column_settings.show": "Vis i kolonne", "notifications.column_settings.show": "Vis i kolonne",
"notifications.column_settings.sound": "Afspil lyd", "notifications.column_settings.sound": "Afspil lyd",
"notifications.column_settings.status": "Nye indlæg:", "notifications.column_settings.status": "Nye indlæg:",
@ -635,7 +635,7 @@
"notifications.column_settings.unread_notifications.highlight": "Fremhæv ulæste notifikationer", "notifications.column_settings.unread_notifications.highlight": "Fremhæv ulæste notifikationer",
"notifications.column_settings.update": "Redigeringer:", "notifications.column_settings.update": "Redigeringer:",
"notifications.filter.all": "Alle", "notifications.filter.all": "Alle",
"notifications.filter.boosts": "Boosts", "notifications.filter.boosts": "Fremhævelser",
"notifications.filter.favourites": "Favoritter", "notifications.filter.favourites": "Favoritter",
"notifications.filter.follows": "Følger", "notifications.filter.follows": "Følger",
"notifications.filter.mentions": "Omtaler", "notifications.filter.mentions": "Omtaler",
@ -644,8 +644,8 @@
"notifications.grant_permission": "Tildel tilladelse.", "notifications.grant_permission": "Tildel tilladelse.",
"notifications.group": "{count} notifikationer", "notifications.group": "{count} notifikationer",
"notifications.mark_as_read": "Markér alle notifikationer som læst", "notifications.mark_as_read": "Markér alle notifikationer som læst",
"notifications.permission_denied": "Computernotifikationer er utilgængelige grundet tidligere afvist browsertilladelsesanmodning", "notifications.permission_denied": "Computernotifikationer er utilgængelige grundet tidligere afvist netlæser-tilladelsesanmodning",
"notifications.permission_denied_alert": "Computernotifikationer kan ikke aktiveres, da browsertilladelse tidligere blev nægtet", "notifications.permission_denied_alert": "Computernotifikationer kan ikke aktiveres, da netlæser-tilladelse tidligere blev nægtet",
"notifications.permission_required": "Computernotifikationer er utilgængelige, da den krævede tilladelse ikke er tildelt.", "notifications.permission_required": "Computernotifikationer er utilgængelige, da den krævede tilladelse ikke er tildelt.",
"notifications.policy.accept": "Acceptér", "notifications.policy.accept": "Acceptér",
"notifications.policy.accept_hint": "Vis notifikationer", "notifications.policy.accept_hint": "Vis notifikationer",
@ -674,14 +674,14 @@
"onboarding.follows.title": "Følg folk for at komme i gang", "onboarding.follows.title": "Følg folk for at komme i gang",
"onboarding.profile.discoverable": "Gør min profil synlig", "onboarding.profile.discoverable": "Gør min profil synlig",
"onboarding.profile.discoverable_hint": "Når man vælger at være synlig på Mastodon, kan ens indlæg fremgå i søgeresultater og tendenser, og profilen kan blive foreslået til andre med tilsvarende interesse.", "onboarding.profile.discoverable_hint": "Når man vælger at være synlig på Mastodon, kan ens indlæg fremgå i søgeresultater og tendenser, og profilen kan blive foreslået til andre med tilsvarende interesse.",
"onboarding.profile.display_name": "Visningsnavn", "onboarding.profile.display_name": "Vist navn",
"onboarding.profile.display_name_hint": "Fulde navn eller dit sjove navn…", "onboarding.profile.display_name_hint": "Dit fulde navn eller dit sjove navn…",
"onboarding.profile.note": "Bio", "onboarding.profile.note": "Bio",
"onboarding.profile.note_hint": "Man kan @omtale andre personer eller #hashtags…", "onboarding.profile.note_hint": "Man kan @omtale andre personer eller #etiketter…",
"onboarding.profile.save_and_continue": "Gem og fortsæt", "onboarding.profile.save_and_continue": "Gem og fortsæt",
"onboarding.profile.title": "Profilopsætning", "onboarding.profile.title": "Profilopsætning",
"onboarding.profile.upload_avatar": "Upload profilbillede", "onboarding.profile.upload_avatar": "Upload profilbillede",
"onboarding.profile.upload_header": "Upload profiloverskrift", "onboarding.profile.upload_header": "Upload profilbanner",
"password_confirmation.exceeds_maxlength": "Adgangskodebekræftelse overstiger maks. adgangskodelængde", "password_confirmation.exceeds_maxlength": "Adgangskodebekræftelse overstiger maks. adgangskodelængde",
"password_confirmation.mismatching": "Adgangskodebekræftelse matcher ikke", "password_confirmation.mismatching": "Adgangskodebekræftelse matcher ikke",
"picture_in_picture.restore": "Indsæt det igen", "picture_in_picture.restore": "Indsæt det igen",
@ -696,21 +696,21 @@
"poll_button.add_poll": "Tilføj en afstemning", "poll_button.add_poll": "Tilføj en afstemning",
"poll_button.remove_poll": "Fjern afstemning", "poll_button.remove_poll": "Fjern afstemning",
"privacy.change": "Tilpas indlægsfortrolighed", "privacy.change": "Tilpas indlægsfortrolighed",
"privacy.direct.long": "Alle nævnt i indlægget", "privacy.direct.long": "Alle omtalt i indlægget",
"privacy.direct.short": "Bestemte personer", "privacy.direct.short": "Bestemte personer",
"privacy.private.long": "Kun dine følgere", "privacy.private.long": "Kun dine følgere",
"privacy.private.short": "Følgere", "privacy.private.short": "Følgere",
"privacy.public.long": "Alle på og udenfor Mastodon", "privacy.public.long": "Alle på og udenfor Mastodon",
"privacy.public.short": "Offentlig", "privacy.public.short": "Offentlig",
"privacy.unlisted.additional": "Dette er præcis som offentlig adfærd, dog vises indlægget ikke i live feeds/hashtags, udforsk eller Mastodon-søgning, selv hvis valget gælder hele kontoen.", "privacy.unlisted.additional": "Dette er præcis som offentlig adfærd, dog vises indlægget ikke i realtids-strømme/etiketter, udforsk eller Mastodon-søgning, selv hvis valget gælder hele kontoen.",
"privacy.unlisted.long": "Færre algoritmiske fanfarer", "privacy.unlisted.long": "Færre algoritmiske fanfarer",
"privacy.unlisted.short": "Tavsgøre offentligt", "privacy.unlisted.short": "Stille offentligt",
"privacy_policy.last_updated": "Senest opdateret {date}", "privacy_policy.last_updated": "Senest opdateret {date}",
"privacy_policy.title": "Privatlivspolitik", "privacy_policy.title": "Privatlivspolitik",
"recommended": "Anbefalet", "recommended": "Anbefalet",
"refresh": "Genindlæs", "refresh": "Genindlæs",
"regeneration_indicator.please_stand_by": "Vent venligst.", "regeneration_indicator.please_stand_by": "Vent venligst.",
"regeneration_indicator.preparing_your_home_feed": "Forbereder hjemme-feed'et…", "regeneration_indicator.preparing_your_home_feed": "Forbereder hjemmestrømmen…",
"relative_time.days": "{number}d", "relative_time.days": "{number}d",
"relative_time.full.days": "{number, plural, one {# dag} other {# dage}} siden", "relative_time.full.days": "{number, plural, one {# dag} other {# dage}} siden",
"relative_time.full.hours": "{number, plural, one {# time} other {# timer}} siden", "relative_time.full.hours": "{number, plural, one {# time} other {# timer}} siden",
@ -739,12 +739,12 @@
"report.comment.title": "Er der andet, som vi bør vide?", "report.comment.title": "Er der andet, som vi bør vide?",
"report.forward": "Videresend til {target}", "report.forward": "Videresend til {target}",
"report.forward_hint": "Kontoen er fra en anden server. Send også en anonymiseret kopi af anmeldelsen dertil?", "report.forward_hint": "Kontoen er fra en anden server. Send også en anonymiseret kopi af anmeldelsen dertil?",
"report.mute": "Skjul (mute)", "report.mute": "Skjul",
"report.mute_explanation": "Du vil ikke se vedkommendes indlæg. Vedkommende kan stadig se dine indlæg og følge dig. Vedkommende vil ikke kunne se, at de er blevet skjult.", "report.mute_explanation": "Du vil ikke se deres indlæg. De kan stadig se dine indlæg og følge dig. De vil ikke kunne se, at de er blevet skjult.",
"report.next": "Næste", "report.next": "Næste",
"report.placeholder": "Yderligere kommentarer", "report.placeholder": "Yderligere kommentarer",
"report.reasons.dislike": "Jeg bryder mig ikke om det", "report.reasons.dislike": "Jeg bryder mig ikke om det",
"report.reasons.dislike_description": "Det er ikke noget, man ønsker at se", "report.reasons.dislike_description": "Det er ikke noget, du ønsker at se",
"report.reasons.legal": "Det er ulovligt", "report.reasons.legal": "Det er ulovligt",
"report.reasons.legal_description": "Du mener, at det er i strid med lovgivningen i dit eller serverens land", "report.reasons.legal_description": "Du mener, at det er i strid med lovgivningen i dit eller serverens land",
"report.reasons.other": "Det er noget andet", "report.reasons.other": "Det er noget andet",
@ -764,7 +764,7 @@
"report.thanks.title": "Ønsker ikke at se dette?", "report.thanks.title": "Ønsker ikke at se dette?",
"report.thanks.title_actionable": "Tak for anmeldelsen, der vil blive set nærmere på dette.", "report.thanks.title_actionable": "Tak for anmeldelsen, der vil blive set nærmere på dette.",
"report.unfollow": "Følg ikke længere @{name}", "report.unfollow": "Følg ikke længere @{name}",
"report.unfollow_explanation": "Du følger denne konto. For ikke længere at se vedkommendes indlæg i dit hjemmefeed, kan du stoppe med at følge dem.", "report.unfollow_explanation": "Du følger denne konto. For ikke længere at se vedkommendes indlæg i din hjemmestrøm, kan du stoppe med at følge dem.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} poster}} vedhæftet", "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} poster}} vedhæftet",
"report_notification.categories.legal": "Juridisk", "report_notification.categories.legal": "Juridisk",
"report_notification.categories.legal_sentence": "ikke-tilladt indhold", "report_notification.categories.legal_sentence": "ikke-tilladt indhold",
@ -779,7 +779,7 @@
"search.placeholder": "Søg", "search.placeholder": "Søg",
"search.quick_action.account_search": "Profiler matchende {x}", "search.quick_action.account_search": "Profiler matchende {x}",
"search.quick_action.go_to_account": "Gå til profilen {x}", "search.quick_action.go_to_account": "Gå til profilen {x}",
"search.quick_action.go_to_hashtag": "Gå til hashtagget {x}", "search.quick_action.go_to_hashtag": "Gå til etiketten {x}",
"search.quick_action.open_url": "Åbn URL i Mastodon", "search.quick_action.open_url": "Åbn URL i Mastodon",
"search.quick_action.status_search": "Indlæg matchende {x}", "search.quick_action.status_search": "Indlæg matchende {x}",
"search.search_or_paste": "Søg efter eller angiv URL", "search.search_or_paste": "Søg efter eller angiv URL",
@ -793,19 +793,19 @@
"search_popout.user": "bruger", "search_popout.user": "bruger",
"search_results.accounts": "Profiler", "search_results.accounts": "Profiler",
"search_results.all": "Alle", "search_results.all": "Alle",
"search_results.hashtags": "Hashtags", "search_results.hashtags": "Etiketter",
"search_results.no_results": "Ingen resultater.", "search_results.no_results": "Ingen resultater.",
"search_results.no_search_yet": "Prøv at søge efter indlæg, profiler eller hashtags.", "search_results.no_search_yet": "Prøv at søge efter indlæg, profiler eller etiketter.",
"search_results.see_all": "Vis alle", "search_results.see_all": "Vis alle",
"search_results.statuses": "Indlæg", "search_results.statuses": "Indlæg",
"search_results.title": "Søg efter \"{q}\"", "search_results.title": "Søg efter \"{q}\"",
"server_banner.about_active_users": "Folk, som brugte denne server de seneste 30 dage (månedlige aktive brugere)", "server_banner.about_active_users": "Folk, som brugte denne server de seneste 30 dage (månedlige aktive brugere)",
"server_banner.active_users": "aktive brugere", "server_banner.active_users": "aktive brugere",
"server_banner.administered_by": "Håndteres af:", "server_banner.administered_by": "Håndteres af:",
"server_banner.is_one_of_many": "{domain} er en af de mange uafhængige Mastodon-servere, man kan bruge for at deltage i fediverset.", "server_banner.is_one_of_many": "{domain} er en af de mange uafhængige Mastodon-servere, man kan bruge for at deltage i fødiverset.",
"server_banner.server_stats": "Serverstatstik:", "server_banner.server_stats": "Serverstatstik:",
"sign_in_banner.create_account": "Opret konto", "sign_in_banner.create_account": "Opret konto",
"sign_in_banner.follow_anyone": "Følg alle på tværs af fediverset og se alt i kronologisk rækkefølge. Ingen algoritmer, annoncer eller clickbait i syne.", "sign_in_banner.follow_anyone": "Følg alle på tværs af fødiverset og se alt i kronologisk rækkefølge. Ingen algoritmer, annoncer eller clickbait i syne.",
"sign_in_banner.mastodon_is": "Mastodon er den bedste måde at holde sig ajour med, hvad der sker.", "sign_in_banner.mastodon_is": "Mastodon er den bedste måde at holde sig ajour med, hvad der sker.",
"sign_in_banner.sign_in": "Log ind", "sign_in_banner.sign_in": "Log ind",
"sign_in_banner.sso_redirect": "Log ind eller Tilmeld", "sign_in_banner.sso_redirect": "Log ind eller Tilmeld",
@ -814,7 +814,7 @@
"status.admin_status": "Åbn dette indlæg i modereringsbrugerfladen", "status.admin_status": "Åbn dette indlæg i modereringsbrugerfladen",
"status.block": "Blokér @{name}", "status.block": "Blokér @{name}",
"status.bookmark": "Bogmærk", "status.bookmark": "Bogmærk",
"status.cancel_reblog_private": "Fjern boost", "status.cancel_reblog_private": "Fjern fremhævelse",
"status.cannot_reblog": "Dette indlæg kan ikke fremhæves", "status.cannot_reblog": "Dette indlæg kan ikke fremhæves",
"status.continued_thread": "Fortsat tråd", "status.continued_thread": "Fortsat tråd",
"status.copy": "Kopiér link til indlæg", "status.copy": "Kopiér link til indlæg",
@ -837,24 +837,24 @@
"status.media_hidden": "Medie skjult", "status.media_hidden": "Medie skjult",
"status.mention": "Nævn @{name}", "status.mention": "Nævn @{name}",
"status.more": "Mere", "status.more": "Mere",
"status.mute": "Skjul @{name} (mute)", "status.mute": "Skjul @{name}",
"status.mute_conversation": "Skjul samtale (mute)", "status.mute_conversation": "Skjul samtale",
"status.open": "Udvid dette indlæg", "status.open": "Udvid dette indlæg",
"status.pin": "Fastgør til profil", "status.pin": "Fastgør til profil",
"status.pinned": "Fastgjort indlæg", "status.pinned": "Fastgjort indlæg",
"status.read_more": "Læs mere", "status.read_more": "Læs mere",
"status.reblog": "Fremhæv", "status.reblog": "Fremhæv",
"status.reblog_private": "Boost med oprindelig synlighed", "status.reblog_private": "Fremhæv med oprindelig synlighed",
"status.reblogged_by": "{name} fremhævede", "status.reblogged_by": "{name} fremhævede",
"status.reblogs": "{count, plural, one {# boost} other {# boosts}}", "status.reblogs": "{count, plural, one {# fremhævelse} other {# fremhævelser}}",
"status.reblogs.empty": "Ingen har endnu fremhævet dette indlæg. Når nogen gør, vil det fremgå hér.", "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.redraft": "Slet og omformulér",
"status.remove_bookmark": "Fjern bogmærke", "status.remove_bookmark": "Fjern bogmærke",
"status.remove_favourite": "Fjern fra favoritter", "status.remove_favourite": "Fjern fra favoritter",
"status.replied_in_thread": "Svaret i tråd", "status.replied_in_thread": "Svaret i tråd",
"status.replied_to": "Besvarede {name}", "status.replied_to": "Svarede {name}",
"status.reply": "Besvar", "status.reply": "Besvar",
"status.replyAll": "Besvar alle", "status.replyAll": "Svar alle",
"status.report": "Anmeld @{name}", "status.report": "Anmeld @{name}",
"status.sensitive_warning": "Følsomt indhold", "status.sensitive_warning": "Følsomt indhold",
"status.share": "Del", "status.share": "Del",
@ -903,8 +903,8 @@
"video.expand": "Udvid video", "video.expand": "Udvid video",
"video.fullscreen": "Fuldskærm", "video.fullscreen": "Fuldskærm",
"video.hide": "Skjul video", "video.hide": "Skjul video",
"video.mute": "Sluk lyden", "video.mute": "Sluk for lyden",
"video.pause": "Pausér", "video.pause": "Sæt på pause",
"video.play": "Afspil", "video.play": "Afspil",
"video.unmute": "Tænd for lyden" "video.unmute": "Tænd for lyden"
} }

View file

@ -218,6 +218,10 @@
"confirmations.logout.confirm": "Αποσύνδεση", "confirmations.logout.confirm": "Αποσύνδεση",
"confirmations.logout.message": "Σίγουρα θέλεις να αποσυνδεθείς;", "confirmations.logout.message": "Σίγουρα θέλεις να αποσυνδεθείς;",
"confirmations.logout.title": "Αποσύνδεση;", "confirmations.logout.title": "Αποσύνδεση;",
"confirmations.missing_alt_text.confirm": "Προσθήκη εναλ κειμένου",
"confirmations.missing_alt_text.message": "Η ανάρτησή σου περιέχει πολυμέσα χωρίς εναλλακτικό κείμενο. Η προσθήκη περιγραφών βοηθά να γίνει το περιεχόμενό σου προσβάσιμο σε περισσότερους ανθρώπους.",
"confirmations.missing_alt_text.secondary": "Δημοσίευση όπως και να ΄χει",
"confirmations.missing_alt_text.title": "Προσθήκη alt κειμένου;",
"confirmations.mute.confirm": "Αποσιώπηση", "confirmations.mute.confirm": "Αποσιώπηση",
"confirmations.redraft.confirm": "Διαγραφή & ξαναγράψιμο", "confirmations.redraft.confirm": "Διαγραφή & ξαναγράψιμο",
"confirmations.redraft.message": "Σίγουρα θέλεις να σβήσεις αυτή την ανάρτηση και να την ξαναγράψεις; Οι προτιμήσεις και προωθήσεις θα χαθούν και οι απαντήσεις στην αρχική ανάρτηση θα μείνουν ορφανές.", "confirmations.redraft.message": "Σίγουρα θέλεις να σβήσεις αυτή την ανάρτηση και να την ξαναγράψεις; Οι προτιμήσεις και προωθήσεις θα χαθούν και οι απαντήσεις στην αρχική ανάρτηση θα μείνουν ορφανές.",

View file

@ -218,6 +218,10 @@
"confirmations.logout.confirm": "Log out", "confirmations.logout.confirm": "Log out",
"confirmations.logout.message": "Are you sure you want to log out?", "confirmations.logout.message": "Are you sure you want to log out?",
"confirmations.logout.title": "Log out?", "confirmations.logout.title": "Log out?",
"confirmations.missing_alt_text.confirm": "Add alt text",
"confirmations.missing_alt_text.message": "Your post contains media without alt text. Adding descriptions helps make your content accessible to more people.",
"confirmations.missing_alt_text.secondary": "Post anyway",
"confirmations.missing_alt_text.title": "Add alt text?",
"confirmations.mute.confirm": "Mute", "confirmations.mute.confirm": "Mute",
"confirmations.redraft.confirm": "Delete & redraft", "confirmations.redraft.confirm": "Delete & redraft",
"confirmations.redraft.message": "Are you sure you want to delete this post and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.", "confirmations.redraft.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.",

View file

@ -45,7 +45,7 @@
"account.languages": "Ŝanĝi la abonitajn lingvojn", "account.languages": "Ŝanĝi la abonitajn lingvojn",
"account.link_verified_on": "Propreco de tiu ligilo estis konfirmita je {date}", "account.link_verified_on": "Propreco de tiu ligilo estis konfirmita je {date}",
"account.locked_info": "Tiu konto estas privatigita. La posedanto mane akceptas tiun, kiu povas sekvi rin.", "account.locked_info": "Tiu konto estas privatigita. La posedanto mane akceptas tiun, kiu povas sekvi rin.",
"account.media": "Plurmedio", "account.media": "Aŭdovidaĵoj",
"account.mention": "Mencii @{name}", "account.mention": "Mencii @{name}",
"account.moved_to": "{name} indikis, ke ria nova konto estas nun:", "account.moved_to": "{name} indikis, ke ria nova konto estas nun:",
"account.mute": "Silentigi @{name}", "account.mute": "Silentigi @{name}",
@ -172,7 +172,7 @@
"column_search.cancel": "Nuligi", "column_search.cancel": "Nuligi",
"column_subheading.settings": "Agordoj", "column_subheading.settings": "Agordoj",
"community.column_settings.local_only": "Nur loka", "community.column_settings.local_only": "Nur loka",
"community.column_settings.media_only": "Nur plurmedio", "community.column_settings.media_only": "Nur vidaŭdaĵoj",
"community.column_settings.remote_only": "Nur fora", "community.column_settings.remote_only": "Nur fora",
"compose.language.change": "Ŝanĝi lingvon", "compose.language.change": "Ŝanĝi lingvon",
"compose.language.search": "Serĉi lingvojn...", "compose.language.search": "Serĉi lingvojn...",
@ -208,7 +208,7 @@
"confirmations.delete_list.message": "Ĉu vi certas, ke vi volas porĉiame forigi ĉi tiun liston?", "confirmations.delete_list.message": "Ĉu vi certas, ke vi volas porĉiame forigi ĉi tiun liston?",
"confirmations.delete_list.title": "Ĉu forigi liston?", "confirmations.delete_list.title": "Ĉu forigi liston?",
"confirmations.discard_edit_media.confirm": "Forĵeti", "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.discard_edit_media.message": "Vi havas nekonservitajn ŝanĝojn de la priskribo aŭ la antaŭvidigo de la vidaŭdaĵo, ĉu vi forĵetu ilin malgraŭe?",
"confirmations.edit.confirm": "Redakti", "confirmations.edit.confirm": "Redakti",
"confirmations.edit.message": "Redakti nun anstataŭigos la skribatan afiŝon. Ĉu vi certas, ke vi volas daŭrigi?", "confirmations.edit.message": "Redakti nun anstataŭigos la skribatan afiŝon. Ĉu vi certas, ke vi volas daŭrigi?",
"confirmations.edit.title": "Ĉu superskribi afiŝon?", "confirmations.edit.title": "Ĉu superskribi afiŝon?",
@ -459,7 +459,7 @@
"keyboard_shortcuts.muted": "Malfermu la liston de silentigitaj uzantoj", "keyboard_shortcuts.muted": "Malfermu la liston de silentigitaj uzantoj",
"keyboard_shortcuts.my_profile": "Malfermu vian profilon", "keyboard_shortcuts.my_profile": "Malfermu vian profilon",
"keyboard_shortcuts.notifications": "Malfermu la sciigajn kolumnon", "keyboard_shortcuts.notifications": "Malfermu la sciigajn kolumnon",
"keyboard_shortcuts.open_media": "Malfermu plurmedion", "keyboard_shortcuts.open_media": "Malfermi vidaŭdaĵon",
"keyboard_shortcuts.pinned": "Malfermu alpinglitajn afiŝojn-liston", "keyboard_shortcuts.pinned": "Malfermu alpinglitajn afiŝojn-liston",
"keyboard_shortcuts.profile": "Malfermu la profilon de aŭtoroprofilo", "keyboard_shortcuts.profile": "Malfermu la profilon de aŭtoroprofilo",
"keyboard_shortcuts.reply": "Respondu al afiŝo", "keyboard_shortcuts.reply": "Respondu al afiŝo",
@ -468,7 +468,7 @@
"keyboard_shortcuts.spoilers": "Montri/kaŝi CW-kampon", "keyboard_shortcuts.spoilers": "Montri/kaŝi CW-kampon",
"keyboard_shortcuts.start": "Malfermu \"por komenci\" kolumnon", "keyboard_shortcuts.start": "Malfermu \"por komenci\" kolumnon",
"keyboard_shortcuts.toggle_hidden": "Montri/kaŝi tekston malantaŭ CW", "keyboard_shortcuts.toggle_hidden": "Montri/kaŝi tekston malantaŭ CW",
"keyboard_shortcuts.toggle_sensitivity": "Montri/kaŝi plurmedion", "keyboard_shortcuts.toggle_sensitivity": "Montri/kaŝi vidaŭdaĵojn",
"keyboard_shortcuts.toot": "Komencu novan afiŝon", "keyboard_shortcuts.toot": "Komencu novan afiŝon",
"keyboard_shortcuts.translate": "Traduki afiŝon", "keyboard_shortcuts.translate": "Traduki afiŝon",
"keyboard_shortcuts.unfocus": "Senfokusigi verki tekstareon/serĉon", "keyboard_shortcuts.unfocus": "Senfokusigi verki tekstareon/serĉon",
@ -540,7 +540,7 @@
"navigation_bar.follows_and_followers": "Sekvatoj kaj sekvantoj", "navigation_bar.follows_and_followers": "Sekvatoj kaj sekvantoj",
"navigation_bar.lists": "Listoj", "navigation_bar.lists": "Listoj",
"navigation_bar.logout": "Elsaluti", "navigation_bar.logout": "Elsaluti",
"navigation_bar.moderation": "Modereco", "navigation_bar.moderation": "Reguligo",
"navigation_bar.mutes": "Silentigitaj uzantoj", "navigation_bar.mutes": "Silentigitaj uzantoj",
"navigation_bar.opened_in_classic_interface": "Afiŝoj, kontoj, kaj aliaj specifaj paĝoj kiuj estas malfermititaj defaulta en la klasika reta interfaco.", "navigation_bar.opened_in_classic_interface": "Afiŝoj, kontoj, kaj aliaj specifaj paĝoj kiuj estas malfermititaj defaulta en la klasika reta interfaco.",
"navigation_bar.personal": "Persone", "navigation_bar.personal": "Persone",
@ -574,11 +574,11 @@
"notification.mention": "Mencii", "notification.mention": "Mencii",
"notification.mentioned_you": "{name} menciis vin", "notification.mentioned_you": "{name} menciis vin",
"notification.moderation-warning.learn_more": "Lerni pli", "notification.moderation-warning.learn_more": "Lerni pli",
"notification.moderation_warning": "Vi ricevis moderigan averton", "notification.moderation_warning": "Vi ricevis reguligan averton",
"notification.moderation_warning.action_delete_statuses": "Kelkaj el viaj afiŝoj estis forigitaj.", "notification.moderation_warning.action_delete_statuses": "Kelkaj el viaj afiŝoj estis forigitaj.",
"notification.moderation_warning.action_disable": "Via konto estas malŝaltita.", "notification.moderation_warning.action_disable": "Via konto estas malŝaltita.",
"notification.moderation_warning.action_mark_statuses_as_sensitive": "Kelkaj el viaj afiŝoj estis markitaj kiel sentemaj.", "notification.moderation_warning.action_mark_statuses_as_sensitive": "Kelkaj el viaj afiŝoj estis markitaj kiel sentemaj.",
"notification.moderation_warning.action_none": "Via konto ricevis moderigan averton.", "notification.moderation_warning.action_none": "Via konto ricevis reguligan averton.",
"notification.moderation_warning.action_sensitive": "Viaj afiŝoj estos markitaj kiel sentemaj ekde nun.", "notification.moderation_warning.action_sensitive": "Viaj afiŝoj estos markitaj kiel sentemaj ekde nun.",
"notification.moderation_warning.action_silence": "Via konto estis limigita.", "notification.moderation_warning.action_silence": "Via konto estis limigita.",
"notification.moderation_warning.action_suspend": "Via konto estas malakceptita.", "notification.moderation_warning.action_suspend": "Via konto estas malakceptita.",
@ -605,8 +605,8 @@
"notification_requests.dismiss_multiple": "{count, plural, one {Malakcepti # peton…} other {# Malakcepti # petojn…}}", "notification_requests.dismiss_multiple": "{count, plural, one {Malakcepti # peton…} other {# Malakcepti # petojn…}}",
"notification_requests.edit_selection": "Redakti", "notification_requests.edit_selection": "Redakti",
"notification_requests.exit_selection": "Farita", "notification_requests.exit_selection": "Farita",
"notification_requests.explainer_for_limited_account": "Sciigoj de ĉi tiu konto estis filtritaj ĉar la konto estis limigita de moderanto.", "notification_requests.explainer_for_limited_account": "Sciigoj de ĉi tiu konto estis filtritaj ĉar la konto estis limigita de reguligisto.",
"notification_requests.explainer_for_limited_remote_account": "Sciigoj de ĉi tiu konto estis filtritaj ĉar la konto aŭ ĝia servilo estis limigitaj de moderanto.", "notification_requests.explainer_for_limited_remote_account": "Sciigoj de ĉi tiu konto estis filtritaj ĉar la konto aŭ ĝia servilo estis limigitaj de reguligisto.",
"notification_requests.maximize": "Maksimumigi", "notification_requests.maximize": "Maksimumigi",
"notification_requests.minimize_banner": "Minimumigi filtritajn sciigojn-rubandon", "notification_requests.minimize_banner": "Minimumigi filtritajn sciigojn-rubandon",
"notification_requests.notifications_from": "Sciigoj de {name}", "notification_requests.notifications_from": "Sciigoj de {name}",
@ -653,8 +653,8 @@
"notifications.policy.drop_hint": "Sendi al la malpleno, por neniam esti vidita denove", "notifications.policy.drop_hint": "Sendi al la malpleno, por neniam esti vidita denove",
"notifications.policy.filter": "Filtri", "notifications.policy.filter": "Filtri",
"notifications.policy.filter_hint": "Sendi al filtritaj sciigoj-enirkesto", "notifications.policy.filter_hint": "Sendi al filtritaj sciigoj-enirkesto",
"notifications.policy.filter_limited_accounts_hint": "Limigita de servilaj moderigantoj", "notifications.policy.filter_limited_accounts_hint": "Limigita de servilaj reguligistoj",
"notifications.policy.filter_limited_accounts_title": "Moderigitaj kontoj", "notifications.policy.filter_limited_accounts_title": "Reguligitaj kontoj",
"notifications.policy.filter_new_accounts.hint": "Kreite en la {days, plural, one {lasta tago} other {# lastaj tagoj}}", "notifications.policy.filter_new_accounts.hint": "Kreite en la {days, plural, one {lasta tago} other {# lastaj tagoj}}",
"notifications.policy.filter_new_accounts_title": "Novaj kontoj", "notifications.policy.filter_new_accounts_title": "Novaj kontoj",
"notifications.policy.filter_not_followers_hint": "Inkluzive de homoj, kiuj sekvis vin malpli ol {days, plural, one {unu tago} other {# tagoj}}", "notifications.policy.filter_not_followers_hint": "Inkluzive de homoj, kiuj sekvis vin malpli ol {days, plural, one {unu tago} other {# tagoj}}",
@ -781,7 +781,7 @@
"search.quick_action.go_to_account": "Iri al profilo {x}", "search.quick_action.go_to_account": "Iri al profilo {x}",
"search.quick_action.go_to_hashtag": "Iri al kradvorto {x}", "search.quick_action.go_to_hashtag": "Iri al kradvorto {x}",
"search.quick_action.open_url": "Malfermi URL en Mastodono", "search.quick_action.open_url": "Malfermi URL en Mastodono",
"search.quick_action.status_search": "Afiŝoj kiuj kongruas kun {x}", "search.quick_action.status_search": "Afiŝoj kiuj konformas kun {x}",
"search.search_or_paste": "Serĉu aŭ algluu URL-on", "search.search_or_paste": "Serĉu aŭ algluu URL-on",
"search_popout.full_text_search_disabled_message": "Ne havebla sur {domain}.", "search_popout.full_text_search_disabled_message": "Ne havebla sur {domain}.",
"search_popout.full_text_search_logged_out_message": "Disponebla nur kiam ensalutinte.", "search_popout.full_text_search_logged_out_message": "Disponebla nur kiam ensalutinte.",
@ -796,7 +796,7 @@
"search_results.hashtags": "Kradvortoj", "search_results.hashtags": "Kradvortoj",
"search_results.no_results": "Ne estas rezultoj.", "search_results.no_results": "Ne estas rezultoj.",
"search_results.no_search_yet": "Provu serĉi afiŝojn, profilojn aŭ kradvortojn.", "search_results.no_search_yet": "Provu serĉi afiŝojn, profilojn aŭ kradvortojn.",
"search_results.see_all": "Vidu ĉiujn", "search_results.see_all": "Vidi ĉiujn",
"search_results.statuses": "Afiŝoj", "search_results.statuses": "Afiŝoj",
"search_results.title": "Serĉu \"{q}\"", "search_results.title": "Serĉu \"{q}\"",
"server_banner.about_active_users": "Personoj uzantaj ĉi tiun servilon dum la lastaj 30 tagoj (Aktivaj Uzantoj Monate)", "server_banner.about_active_users": "Personoj uzantaj ĉi tiun servilon dum la lastaj 30 tagoj (Aktivaj Uzantoj Monate)",
@ -809,9 +809,9 @@
"sign_in_banner.mastodon_is": "Mastodon estas la plej bona maniero resti ĝisdata pri aktualaĵoj.", "sign_in_banner.mastodon_is": "Mastodon estas la plej bona maniero resti ĝisdata pri aktualaĵoj.",
"sign_in_banner.sign_in": "Ensaluti", "sign_in_banner.sign_in": "Ensaluti",
"sign_in_banner.sso_redirect": "Ensalutu aŭ Registriĝi", "sign_in_banner.sso_redirect": "Ensalutu aŭ Registriĝi",
"status.admin_account": "Malfermi fasadon de moderigado por @{name}", "status.admin_account": "Malfermi fasadon de la reguligado por @{name}",
"status.admin_domain": "Malfermu moderigan interfacon por {domain}", "status.admin_domain": "Malfermi fasadon de la reguligado por {domain}",
"status.admin_status": "Malfermi ĉi tiun afiŝon en la kontrola interfaco", "status.admin_status": "Malfermi ĉi tiun afiŝon en la fasado de la reguligado",
"status.block": "Bloki @{name}", "status.block": "Bloki @{name}",
"status.bookmark": "Aldoni al la legosignoj", "status.bookmark": "Aldoni al la legosignoj",
"status.cancel_reblog_private": "Ne plu diskonigi", "status.cancel_reblog_private": "Ne plu diskonigi",
@ -834,7 +834,7 @@
"status.load_more": "Ŝargi pli", "status.load_more": "Ŝargi pli",
"status.media.open": "Alklaki por malfermi", "status.media.open": "Alklaki por malfermi",
"status.media.show": "Alklaki por montri", "status.media.show": "Alklaki por montri",
"status.media_hidden": "Plurmedio kaŝita", "status.media_hidden": "Vidaŭdaĵo kaŝita",
"status.mention": "Mencii @{name}", "status.mention": "Mencii @{name}",
"status.more": "Pli", "status.more": "Pli",
"status.mute": "Silentigi @{name}", "status.mute": "Silentigi @{name}",

View file

@ -218,10 +218,10 @@
"confirmations.logout.confirm": "Cerrar sesión", "confirmations.logout.confirm": "Cerrar sesión",
"confirmations.logout.message": "¿Estás seguro que querés cerrar la sesión?", "confirmations.logout.message": "¿Estás seguro que querés cerrar la sesión?",
"confirmations.logout.title": "¿Cerrar sesión?", "confirmations.logout.title": "¿Cerrar sesión?",
"confirmations.missing_alt_text.confirm": "Añadir texto alternativo", "confirmations.missing_alt_text.confirm": "Agregar texto alternativo",
"confirmations.missing_alt_text.message": "Tu publicación contiene medios sin texto alternativo. Añadir descripciones ayuda a que tu contenido sea accesible para más personas.", "confirmations.missing_alt_text.message": "Tu mensaje contiene medios sin texto alternativo. Agregar descripciones ayuda a que tu contenido sea accesible para más personas.",
"confirmations.missing_alt_text.secondary": "Publicar de todos modos", "confirmations.missing_alt_text.secondary": "Enviar de todos modos",
"confirmations.missing_alt_text.title": "¿Deseas añadir texto alternativo?", "confirmations.missing_alt_text.title": "¿Agregar texto alternativo?",
"confirmations.mute.confirm": "Silenciar", "confirmations.mute.confirm": "Silenciar",
"confirmations.redraft.confirm": "Eliminar mensaje original y editarlo", "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.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.",

View file

@ -208,6 +208,9 @@
"confirmations.logout.confirm": "Amaitu saioa", "confirmations.logout.confirm": "Amaitu saioa",
"confirmations.logout.message": "Ziur saioa amaitu nahi duzula?", "confirmations.logout.message": "Ziur saioa amaitu nahi duzula?",
"confirmations.logout.title": "Itxi saioa?", "confirmations.logout.title": "Itxi saioa?",
"confirmations.missing_alt_text.confirm": "Gehitu testu alternatiboa",
"confirmations.missing_alt_text.secondary": "Bidali edonola ere",
"confirmations.missing_alt_text.title": "Testu alternatiboa gehitu?",
"confirmations.mute.confirm": "Mututu", "confirmations.mute.confirm": "Mututu",
"confirmations.redraft.confirm": "Ezabatu eta berridatzi", "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.redraft.message": "Ziur argitalpen hau ezabatu eta zirriborroa berriro egitea nahi duzula? Gogokoak eta bultzadak galduko dira, eta jatorrizko argitalpenaren erantzunak zurtz geratuko dira.",

View file

@ -218,6 +218,10 @@
"confirmations.logout.confirm": "Se déconnecter", "confirmations.logout.confirm": "Se déconnecter",
"confirmations.logout.message": "Voulez-vous vraiment vous déconnecter?", "confirmations.logout.message": "Voulez-vous vraiment vous déconnecter?",
"confirmations.logout.title": "Se déconnecter ?", "confirmations.logout.title": "Se déconnecter ?",
"confirmations.missing_alt_text.confirm": "Ajouter un texte alternatif",
"confirmations.missing_alt_text.message": "Votre post contient des médias sans texte alternatif. Ajouter des descriptions rend votre contenu accessible à un plus grand nombre de personnes.",
"confirmations.missing_alt_text.secondary": "Publier quand-même",
"confirmations.missing_alt_text.title": "Ajouter un texte alternatif?",
"confirmations.mute.confirm": "Masquer", "confirmations.mute.confirm": "Masquer",
"confirmations.redraft.confirm": "Supprimer et réécrire", "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.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.",

View file

@ -218,6 +218,10 @@
"confirmations.logout.confirm": "Se déconnecter", "confirmations.logout.confirm": "Se déconnecter",
"confirmations.logout.message": "Voulez-vous vraiment vous déconnecter ?", "confirmations.logout.message": "Voulez-vous vraiment vous déconnecter ?",
"confirmations.logout.title": "Se déconnecter ?", "confirmations.logout.title": "Se déconnecter ?",
"confirmations.missing_alt_text.confirm": "Ajouter un texte alternatif",
"confirmations.missing_alt_text.message": "Votre post contient des médias sans texte alternatif. Ajouter des descriptions rend votre contenu accessible à un plus grand nombre de personnes.",
"confirmations.missing_alt_text.secondary": "Publier quand-même",
"confirmations.missing_alt_text.title": "Ajouter un texte alternatif?",
"confirmations.mute.confirm": "Masquer", "confirmations.mute.confirm": "Masquer",
"confirmations.redraft.confirm": "Supprimer et ré-écrire", "confirmations.redraft.confirm": "Supprimer et ré-écrire",
"confirmations.redraft.message": "Voulez-vous vraiment supprimer le message pour le réécrire? Ses partages ainsi que ses mises en favori seront perdues, et ses réponses seront orphelines.", "confirmations.redraft.message": "Voulez-vous vraiment supprimer le message pour le réécrire? Ses partages ainsi que ses mises en favori seront perdues, et ses réponses seront orphelines.",

View file

@ -86,6 +86,13 @@
"alert.unexpected.message": "Tharla earráid gan choinne.", "alert.unexpected.message": "Tharla earráid gan choinne.",
"alert.unexpected.title": "Hiúps!", "alert.unexpected.title": "Hiúps!",
"alt_text_badge.title": "Téacs alt", "alt_text_badge.title": "Téacs alt",
"alt_text_modal.add_alt_text": "Cuir téacs alt leis",
"alt_text_modal.add_text_from_image": "Cuir téacs ón íomhá leis",
"alt_text_modal.cancel": "Cealaigh",
"alt_text_modal.change_thumbnail": "Athraigh mionsamhail",
"alt_text_modal.describe_for_people_with_hearing_impairments": "Déan cur síos air seo do dhaoine le lagú éisteachta…",
"alt_text_modal.describe_for_people_with_visual_impairments": "Déan cur síos air seo do dhaoine a bhfuil lagú amhairc orthu…",
"alt_text_modal.done": "Déanta",
"announcement.announcement": "Fógra", "announcement.announcement": "Fógra",
"annual_report.summary.archetype.booster": "An sealgair fionnuar", "annual_report.summary.archetype.booster": "An sealgair fionnuar",
"annual_report.summary.archetype.lurker": "An lurker", "annual_report.summary.archetype.lurker": "An lurker",
@ -211,6 +218,10 @@
"confirmations.logout.confirm": "Logáil amach", "confirmations.logout.confirm": "Logáil amach",
"confirmations.logout.message": "An bhfuil tú cinnte gur mhaith leat logáil amach?", "confirmations.logout.message": "An bhfuil tú cinnte gur mhaith leat logáil amach?",
"confirmations.logout.title": "Logáil Amach?", "confirmations.logout.title": "Logáil Amach?",
"confirmations.missing_alt_text.confirm": "Cuir téacs alt leis",
"confirmations.missing_alt_text.message": "Tá meáin gan alt téacs i do phostáil. Má chuirtear tuairiscí leis, cabhraíonn sé seo leat dinneachar a rochtain do níos mó daoine.",
"confirmations.missing_alt_text.secondary": "Post ar aon nós",
"confirmations.missing_alt_text.title": "Cuir téacs alt leis?",
"confirmations.mute.confirm": "Balbhaigh", "confirmations.mute.confirm": "Balbhaigh",
"confirmations.redraft.confirm": "Scrios ⁊ athdhréachtaigh", "confirmations.redraft.confirm": "Scrios ⁊ athdhréachtaigh",
"confirmations.redraft.message": "An bhfuil tú cinnte gur mhaith leat an postáil seo a scriosadh agus é a athdhréachtú? Caillfear ceanáin agus treisithe, agus dílleachtaí freagraí ar an mbunphostála.", "confirmations.redraft.message": "An bhfuil tú cinnte gur mhaith leat an postáil seo a scriosadh agus é a athdhréachtú? Caillfear ceanáin agus treisithe, agus dílleachtaí freagraí ar an mbunphostála.",
@ -407,6 +418,8 @@
"ignore_notifications_modal.not_followers_title": "An dtugann tú aird ar fhógraí ó dhaoine nach leanann tú?", "ignore_notifications_modal.not_followers_title": "An dtugann tú aird ar fhógraí ó dhaoine nach leanann tú?",
"ignore_notifications_modal.not_following_title": "An ndéanann tú neamhaird de fhógraí ó dhaoine nach leanann tú?", "ignore_notifications_modal.not_following_title": "An ndéanann tú neamhaird de fhógraí ó dhaoine nach leanann tú?",
"ignore_notifications_modal.private_mentions_title": "An dtugann tú aird ar fhógraí ó Luaintí Príobháideacha gan iarraidh?", "ignore_notifications_modal.private_mentions_title": "An dtugann tú aird ar fhógraí ó Luaintí Príobháideacha gan iarraidh?",
"info_button.label": "Cabhrú",
"info_button.what_is_alt_text": "<h1>Cad is téacs altach ann?</h1> <p>Soláthraíonn téacs Alt cur síos ar íomhánna do dhaoine le lagú radhairc, naisc íseal-bandaleithead, nó daoine atá ag lorg comhthéacs breise.</p> <p>Is féidir leat inrochtaineacht agus tuiscint a fheabhsú do chách trí théacs alt soiléir, gonta, oibiachtúil a scríobh.</p> <ul> <li>Glac gnéithe tábhachtacha</li> <li>Déan achoimre ar théacs in íomhánna</li> <li>Úsáid struchtúr abairtí rialta</li> li> <li>Seachain faisnéis iomarcach</li> <li>Fócas ar threochtaí agus ar phríomhthorthaí i bhfíseanna casta (amhail léaráidí nó léarscáileanna)</li> </ul>",
"interaction_modal.action.favourite": "Chun leanúint ar aghaidh, ní mór duit an ceann is fearr leat ó do chuntas.", "interaction_modal.action.favourite": "Chun leanúint ar aghaidh, ní mór duit an ceann is fearr leat ó do chuntas.",
"interaction_modal.action.follow": "Chun leanúint ar aghaidh, ní mór duit leanúint ó do chuntas.", "interaction_modal.action.follow": "Chun leanúint ar aghaidh, ní mór duit leanúint ó do chuntas.",
"interaction_modal.action.reblog": "Chun leanúint ar aghaidh, ní mór duit athbhlagáil ó do chuntas.", "interaction_modal.action.reblog": "Chun leanúint ar aghaidh, ní mór duit athbhlagáil ó do chuntas.",

View file

@ -86,9 +86,12 @@
"alert.unexpected.message": "Un error inexpectate ha occurrite.", "alert.unexpected.message": "Un error inexpectate ha occurrite.",
"alert.unexpected.title": "Ups!", "alert.unexpected.title": "Ups!",
"alt_text_badge.title": "Texto alternative", "alt_text_badge.title": "Texto alternative",
"alt_text_modal.add_alt_text": "Adder texto alternative",
"alt_text_modal.add_text_from_image": "Adder texto ab imagine", "alt_text_modal.add_text_from_image": "Adder texto ab imagine",
"alt_text_modal.cancel": "Cancellar", "alt_text_modal.cancel": "Cancellar",
"alt_text_modal.change_thumbnail": "Cambiar le miniatura", "alt_text_modal.change_thumbnail": "Cambiar le miniatura",
"alt_text_modal.describe_for_people_with_hearing_impairments": "Describe isto pro personas con impedimentos auditive…",
"alt_text_modal.describe_for_people_with_visual_impairments": "Describe isto pro personas con impedimentos visual…",
"alt_text_modal.done": "Preste", "alt_text_modal.done": "Preste",
"announcement.announcement": "Annuncio", "announcement.announcement": "Annuncio",
"annual_report.summary.archetype.booster": "Le impulsator", "annual_report.summary.archetype.booster": "Le impulsator",
@ -215,6 +218,10 @@
"confirmations.logout.confirm": "Clauder session", "confirmations.logout.confirm": "Clauder session",
"confirmations.logout.message": "Es tu secur que tu vole clauder le session?", "confirmations.logout.message": "Es tu secur que tu vole clauder le session?",
"confirmations.logout.title": "Clauder session?", "confirmations.logout.title": "Clauder session?",
"confirmations.missing_alt_text.confirm": "Adder texto alternative",
"confirmations.missing_alt_text.message": "Tu message contine multimedia sin texto alternative. Adder descriptiones adjuta a render tu contento accessibile a plus personas.",
"confirmations.missing_alt_text.secondary": "Publicar totevia",
"confirmations.missing_alt_text.title": "Adder texto alternative?",
"confirmations.mute.confirm": "Silentiar", "confirmations.mute.confirm": "Silentiar",
"confirmations.redraft.confirm": "Deler e rescriber", "confirmations.redraft.confirm": "Deler e rescriber",
"confirmations.redraft.message": "Es tu secur de voler deler iste message e rescriber lo? Le favorites e le impulsos essera perdite, e le responsas al message original essera orphanate.", "confirmations.redraft.message": "Es tu secur de voler deler iste message e rescriber lo? Le favorites e le impulsos essera perdite, e le responsas al message original essera orphanate.",
@ -411,6 +418,8 @@
"ignore_notifications_modal.not_followers_title": "Ignorar notificationes de personas qui non te seque?", "ignore_notifications_modal.not_followers_title": "Ignorar notificationes de personas qui non te seque?",
"ignore_notifications_modal.not_following_title": "Ignorar notificationes de personas que tu non seque?", "ignore_notifications_modal.not_following_title": "Ignorar notificationes de personas que tu non seque?",
"ignore_notifications_modal.private_mentions_title": "Ignorar notificationes de mentiones private non requestate?", "ignore_notifications_modal.private_mentions_title": "Ignorar notificationes de mentiones private non requestate?",
"info_button.label": "Adjuta",
"info_button.what_is_alt_text": "<h1>Que es texto alternative?</h1><p>Le texto alternative forni descriptiones de imagines a personas con impedimentos visual, con connexiones lente, o qui cerca contexto additional.</p><p>Tu pote meliorar le accessibilitate e le comprension pro totes scribente un texto alternative clar, concise e objective.</p><ul><li>Captura le elementos importante</li><li>Summarisa texto in imagines</li><li>Usa le structura de phrase normal</li><li>Evita information redundante</li><li>In figuras complexe (como diagrammas o mappas), concentra te sur le tendentias e punctos clave</li></ul>",
"interaction_modal.action.favourite": "Per favor reveni a tu conto pro marcar isto como favorite.", "interaction_modal.action.favourite": "Per favor reveni a tu conto pro marcar isto como favorite.",
"interaction_modal.action.follow": "Per favor reveni a tu conto pro sequer.", "interaction_modal.action.follow": "Per favor reveni a tu conto pro sequer.",
"interaction_modal.action.reblog": "Per favor reveni a tu conto pro impulsar.", "interaction_modal.action.reblog": "Per favor reveni a tu conto pro impulsar.",
@ -825,7 +834,7 @@
"status.load_more": "Cargar plus", "status.load_more": "Cargar plus",
"status.media.open": "Clicca pro aperir", "status.media.open": "Clicca pro aperir",
"status.media.show": "Clicca pro monstrar", "status.media.show": "Clicca pro monstrar",
"status.media_hidden": "Medios celate", "status.media_hidden": "Contento multimedial celate",
"status.mention": "Mentionar @{name}", "status.mention": "Mentionar @{name}",
"status.more": "Plus", "status.more": "Plus",
"status.mute": "Silentiar @{name}", "status.mute": "Silentiar @{name}",

View file

@ -218,6 +218,10 @@
"confirmations.logout.confirm": "Disconnettiti", "confirmations.logout.confirm": "Disconnettiti",
"confirmations.logout.message": "Sei sicuro di volerti disconnettere?", "confirmations.logout.message": "Sei sicuro di volerti disconnettere?",
"confirmations.logout.title": "Uscire?", "confirmations.logout.title": "Uscire?",
"confirmations.missing_alt_text.confirm": "Aggiungi testo alternativo",
"confirmations.missing_alt_text.message": "Il tuo post contiene media senza testo alternativo. L'aggiunta di descrizioni aiuta a rendere i tuoi contenuti accessibili a più persone.",
"confirmations.missing_alt_text.secondary": "Pubblica comunque",
"confirmations.missing_alt_text.title": "Aggiungere testo alternativo?",
"confirmations.mute.confirm": "Silenzia", "confirmations.mute.confirm": "Silenzia",
"confirmations.redraft.confirm": "Elimina e riscrivi", "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.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.",

View file

@ -99,8 +99,11 @@
"alert.unexpected.title": "エラー!", "alert.unexpected.title": "エラー!",
"alt_text_badge.title": "代替テキスト", "alt_text_badge.title": "代替テキスト",
"alt_text_modal.add_alt_text": "代替テキストを追加", "alt_text_modal.add_alt_text": "代替テキストを追加",
"alt_text_modal.add_text_from_image": "画像からテキストを追加",
"alt_text_modal.cancel": "キャンセル", "alt_text_modal.cancel": "キャンセル",
"alt_text_modal.change_thumbnail": "サムネイルを変更", "alt_text_modal.change_thumbnail": "サムネイルを変更",
"alt_text_modal.describe_for_people_with_hearing_impairments": "耳の不自由な方のために説明してください…",
"alt_text_modal.describe_for_people_with_visual_impairments": "目が不自由な方のために説明してください…",
"alt_text_modal.done": "完了", "alt_text_modal.done": "完了",
"announcement.announcement": "お知らせ", "announcement.announcement": "お知らせ",
"annual_report.summary.archetype.booster": "トレンドハンター", "annual_report.summary.archetype.booster": "トレンドハンター",
@ -334,6 +337,10 @@
"confirmations.logout.confirm": "ログアウト", "confirmations.logout.confirm": "ログアウト",
"confirmations.logout.message": "本当にログアウトしますか?", "confirmations.logout.message": "本当にログアウトしますか?",
"confirmations.logout.title": "ログアウトしようとしています", "confirmations.logout.title": "ログアウトしようとしています",
"confirmations.missing_alt_text.confirm": "代替テキストを追加",
"confirmations.missing_alt_text.message": "あなたの投稿には大体テキストのないメディアが含まれています。説明文を追加することで、より多くの人がコンテンツにアクセスできるようになります。",
"confirmations.missing_alt_text.secondary": "そのまま投稿する",
"confirmations.missing_alt_text.title": "代替テキストを追加しますか?",
"confirmations.mute.confirm": "ミュート", "confirmations.mute.confirm": "ミュート",
"confirmations.redraft.confirm": "削除して下書きに戻す", "confirmations.redraft.confirm": "削除して下書きに戻す",
"confirmations.redraft.message": "投稿を削除して下書きに戻します。この投稿へのお気に入り登録やブーストは失われ、返信は孤立することになります。よろしいですか?", "confirmations.redraft.message": "投稿を削除して下書きに戻します。この投稿へのお気に入り登録やブーストは失われ、返信は孤立することになります。よろしいですか?",
@ -590,6 +597,7 @@
"keyboard_shortcuts.toggle_hidden": "CWで隠れた文を見る/隠す", "keyboard_shortcuts.toggle_hidden": "CWで隠れた文を見る/隠す",
"keyboard_shortcuts.toggle_sensitivity": "非表示のメディアを見る/隠す", "keyboard_shortcuts.toggle_sensitivity": "非表示のメディアを見る/隠す",
"keyboard_shortcuts.toot": "新規投稿", "keyboard_shortcuts.toot": "新規投稿",
"keyboard_shortcuts.translate": "投稿を翻訳する",
"keyboard_shortcuts.unfocus": "投稿の入力欄・検索欄から離れる", "keyboard_shortcuts.unfocus": "投稿の入力欄・検索欄から離れる",
"keyboard_shortcuts.up": "カラム内一つ上に移動", "keyboard_shortcuts.up": "カラム内一つ上に移動",
"lightbox.close": "閉じる", "lightbox.close": "閉じる",

View file

@ -218,6 +218,10 @@
"confirmations.logout.confirm": "로그아웃", "confirmations.logout.confirm": "로그아웃",
"confirmations.logout.message": "정말로 로그아웃 하시겠습니까?", "confirmations.logout.message": "정말로 로그아웃 하시겠습니까?",
"confirmations.logout.title": "로그아웃 할까요?", "confirmations.logout.title": "로그아웃 할까요?",
"confirmations.missing_alt_text.confirm": "대체 텍스트 추가",
"confirmations.missing_alt_text.message": "대체 텍스트가 없는 미디어를 포함하고 있습니다. 설명을 추가하면 더 많은 사람들이 내 콘텐츠에 접근할 수 있습니다.",
"confirmations.missing_alt_text.secondary": "그냥 게시하기",
"confirmations.missing_alt_text.title": "대체 텍스트를 추가할까요?",
"confirmations.mute.confirm": "뮤트", "confirmations.mute.confirm": "뮤트",
"confirmations.redraft.confirm": "삭제하고 다시 쓰기", "confirmations.redraft.confirm": "삭제하고 다시 쓰기",
"confirmations.redraft.message": "정말로 이 게시물을 삭제하고 다시 쓰시겠습니까? 해당 게시물에 대한 부스트와 좋아요를 잃게 되고 원본에 대한 답장은 연결 되지 않습니다.", "confirmations.redraft.message": "정말로 이 게시물을 삭제하고 다시 쓰시겠습니까? 해당 게시물에 대한 부스트와 좋아요를 잃게 되고 원본에 대한 답장은 연결 되지 않습니다.",
@ -415,6 +419,7 @@
"ignore_notifications_modal.not_following_title": "내가 팔로우하지 않는 사람들의 알림을 무시할까요?", "ignore_notifications_modal.not_following_title": "내가 팔로우하지 않는 사람들의 알림을 무시할까요?",
"ignore_notifications_modal.private_mentions_title": "요청하지 않은 개인 멘션 알림을 무시할까요?", "ignore_notifications_modal.private_mentions_title": "요청하지 않은 개인 멘션 알림을 무시할까요?",
"info_button.label": "도움말", "info_button.label": "도움말",
"info_button.what_is_alt_text": "<h1>대체 텍스트가 무었인가요?</h1> <p>대체 텍스트는 저시력자, 낮은 인터넷 대역폭 사용자, 더 자세한 문맥을 위해 이미지에 대한 설명을 제공하는 것입니다.</p> <p>깔끔하고 간결하고 객관적인 대체 텍스트를 작성해 모두가 이해하기 쉽게 만들고 접근성이 높아질 수 있습니다.</p><ul><li>중요한 요소에 중점을 두세요</li> <li>이미지 안의 글자를 요약하세요</li> <li>정형화된 문장 구조를 사용하세요</li> <li>중복된 정보를 피하세요</li> <li>복잡한 시각자료(도표나 지도 같은)에선 추세와 주요 결과에 중점을 두세요</li> </ul>",
"interaction_modal.action.favourite": "계속하려면 내 계정으로 즐겨찾기해야 합니다.", "interaction_modal.action.favourite": "계속하려면 내 계정으로 즐겨찾기해야 합니다.",
"interaction_modal.action.follow": "계속하려면 내 계정으로 팔로우해야 합니다.", "interaction_modal.action.follow": "계속하려면 내 계정으로 팔로우해야 합니다.",
"interaction_modal.action.reblog": "계속하려면 내 계정으로 리블로그해야 합니다.", "interaction_modal.action.reblog": "계속하려면 내 계정으로 리블로그해야 합니다.",

View file

@ -218,6 +218,10 @@
"confirmations.logout.confirm": "Atsijungti", "confirmations.logout.confirm": "Atsijungti",
"confirmations.logout.message": "Ar tikrai nori atsijungti?", "confirmations.logout.message": "Ar tikrai nori atsijungti?",
"confirmations.logout.title": "Atsijungti?", "confirmations.logout.title": "Atsijungti?",
"confirmations.missing_alt_text.confirm": "Pridėti alternatyvųjį tekstą",
"confirmations.missing_alt_text.message": "Jūsų įrašas turi mediją be alternatyvaus teksto. Pridėjus aprašymus, jūsų turinys taps pasiekiamas daugeliui asmenų.",
"confirmations.missing_alt_text.secondary": "Siųsti vis tiek",
"confirmations.missing_alt_text.title": "Pridėti alternatyvųjį tekstą?",
"confirmations.mute.confirm": "Nutildyti", "confirmations.mute.confirm": "Nutildyti",
"confirmations.redraft.confirm": "Ištrinti ir iš naujo parengti", "confirmations.redraft.confirm": "Ištrinti ir iš naujo parengti",
"confirmations.redraft.message": "Ar tikrai nori ištrinti šį įrašą ir parengti jį iš naujo? Bus prarasti mėgstami ir pasidalinimai, o atsakymai į originalų įrašą bus panaikinti.", "confirmations.redraft.message": "Ar tikrai nori ištrinti šį įrašą ir parengti jį iš naujo? Bus prarasti mėgstami ir pasidalinimai, o atsakymai į originalų įrašą bus panaikinti.",

View file

@ -86,6 +86,13 @@
"alert.unexpected.message": "發生意外ê錯誤。.", "alert.unexpected.message": "發生意外ê錯誤。.",
"alert.unexpected.title": "Ai-ioh!", "alert.unexpected.title": "Ai-ioh!",
"alt_text_badge.title": "替代文字", "alt_text_badge.title": "替代文字",
"alt_text_modal.add_alt_text": "加添說明文字",
"alt_text_modal.add_text_from_image": "Tuì圖加說明文字",
"alt_text_modal.cancel": "取消",
"alt_text_modal.change_thumbnail": "改縮小圖",
"alt_text_modal.describe_for_people_with_hearing_impairments": "請替聽有困難ê敘述tsit ê內容…",
"alt_text_modal.describe_for_people_with_visual_impairments": "請替看有困難ê敘述tsit ê內容…",
"alt_text_modal.done": "做好ah",
"announcement.announcement": "公告", "announcement.announcement": "公告",
"annual_report.summary.archetype.booster": "追求趣味ê", "annual_report.summary.archetype.booster": "追求趣味ê",
"annual_report.summary.archetype.lurker": "有讀無PO ê", "annual_report.summary.archetype.lurker": "有讀無PO ê",
@ -182,7 +189,52 @@
"compose_form.poll.multiple": "Tsē選擇", "compose_form.poll.multiple": "Tsē選擇",
"compose_form.poll.option_placeholder": "選項 {number}", "compose_form.poll.option_placeholder": "選項 {number}",
"compose_form.poll.single": "單選擇", "compose_form.poll.single": "單選擇",
"compose_form.poll.switch_to_multiple": "Kā投票改做ē當選tsē-tsē ê。",
"compose_form.poll.switch_to_single": "Kā投票改做kan-ta通選tsi̍t-ê",
"compose_form.poll.type": "投票ê方法",
"compose_form.publish": "PO文",
"compose_form.publish_form": "PO出去",
"compose_form.reply": "回應",
"compose_form.save_changes": "更新",
"compose_form.spoiler.marked": "Thâi掉內容警告",
"compose_form.spoiler.unmarked": "加添內容警告",
"compose_form.spoiler_placeholder": "內容警告m̄是必要",
"confirmation_modal.cancel": "取消",
"confirmations.block.confirm": "封鎖",
"confirmations.delete.confirm": "Thâi掉",
"confirmations.delete.message": "Lí kám確定beh thâi掉tsit ê PO文",
"confirmations.delete.title": "Kám beh thâi掉tsit ê PO文",
"confirmations.delete_list.confirm": "Thâi掉",
"confirmations.delete_list.message": "Lí kám確定beh永永thâi掉tsit ê列單?",
"confirmations.delete_list.title": "Kám beh thâi掉tsit ê列單?",
"confirmations.discard_edit_media.confirm": "棄sak",
"confirmations.discard_edit_media.message": "Lí佇媒體敘述á是先看māi ê所在有iáu buē儲存ê改變kám beh kā in棄sak",
"confirmations.edit.confirm": "編輯",
"confirmations.edit.message": "Tsit-má編輯ē khàm掉lí tng-leh編寫ê訊息lí kám beh繼續án-ne做",
"confirmations.edit.title": "Kám beh khàm掉PO文",
"confirmations.follow_to_list.confirm": "跟tuè加入kàu列單", "confirmations.follow_to_list.confirm": "跟tuè加入kàu列單",
"confirmations.follow_to_list.message": "Beh kā {name} 加添kàu列單lí tio̍h先跟tuè伊。",
"confirmations.follow_to_list.title": "Kám beh跟tuè tsit ê用者?",
"confirmations.logout.confirm": "登出",
"confirmations.logout.message": "Lí kám確定beh登出",
"confirmations.logout.title": "Lí kám beh登出",
"confirmations.missing_alt_text.confirm": "加添說明文字",
"confirmations.missing_alt_text.message": "Lí ê PO文包含無說明文字ê媒體。加添敘述ē幫tsān lí ê內容hōo khah tsē lâng接近使用。",
"confirmations.missing_alt_text.secondary": "就按呢PO出去",
"confirmations.missing_alt_text.title": "Kám beh加添說明文字",
"confirmations.mute.confirm": "消音",
"confirmations.redraft.confirm": "Thâi掉了後重寫",
"confirmations.redraft.message": "Lí kám確定behthâi掉tsit篇PO文了後koh重寫收藏kap轉PO ē無去,而且原底ê PO文ê回應ē變孤立。",
"confirmations.redraft.title": "Kám beh thâi掉koh重寫PO文",
"confirmations.reply.confirm": "回應",
"confirmations.reply.message": "Tsit-má回應ē khàm掉lí tng-leh編寫ê訊息。Lí kám確定beh繼續án-ne做",
"confirmations.reply.title": "Kám beh khàm掉PO文",
"confirmations.unfollow.confirm": "取消跟tuè",
"confirmations.unfollow.message": "Lí kám確定無愛跟tuè {name}",
"confirmations.unfollow.title": "Kám beh取消跟tuè tsit ê用者?",
"content_warning.hide": "Am-khàm PO文",
"emoji_button.label": "加入繪文字(emoji)",
"emoji_button.nature": "自然",
"notification.favourite_pm": "{name} kah意lí ê私人提起", "notification.favourite_pm": "{name} kah意lí ê私人提起",
"notification.favourite_pm.name_and_others_with_link": "{name} kap<a>{count, plural, other {另外 # ê lâng}}</a>kah意lí ê私人提起", "notification.favourite_pm.name_and_others_with_link": "{name} kap<a>{count, plural, other {另外 # ê lâng}}</a>kah意lí ê私人提起",
"search_popout.language_code": "ISO語言代碼", "search_popout.language_code": "ISO語言代碼",

View file

@ -39,7 +39,7 @@
"account.no_bio": "ਕੋਈ ਵਰਣਨ ਨਹੀਂ ਦਿੱਤਾ।", "account.no_bio": "ਕੋਈ ਵਰਣਨ ਨਹੀਂ ਦਿੱਤਾ।",
"account.open_original_page": "ਅਸਲ ਸਫ਼ੇ ਨੂੰ ਖੋਲ੍ਹੋ", "account.open_original_page": "ਅਸਲ ਸਫ਼ੇ ਨੂੰ ਖੋਲ੍ਹੋ",
"account.posts": "ਪੋਸਟਾਂ", "account.posts": "ਪੋਸਟਾਂ",
"account.posts_with_replies": "ਪੋਸਾਂ ਅਤੇ ਜਵਾਬ", "account.posts_with_replies": "ਪੋਸਾਂ ਅਤੇ ਜਵਾਬ",
"account.report": "{name} ਬਾਰੇ ਰਿਪੋਰਟ ਕਰੋ", "account.report": "{name} ਬਾਰੇ ਰਿਪੋਰਟ ਕਰੋ",
"account.requested": "ਮਨਜ਼ੂਰੀ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ। ਫ਼ਾਲੋ ਬੇਨਤੀਆਂ ਨੂੰ ਰੱਦ ਕਰਨ ਲਈ ਕਲਿੱਕ ਕਰੋ", "account.requested": "ਮਨਜ਼ੂਰੀ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ। ਫ਼ਾਲੋ ਬੇਨਤੀਆਂ ਨੂੰ ਰੱਦ ਕਰਨ ਲਈ ਕਲਿੱਕ ਕਰੋ",
"account.requested_follow": "{name} ਨੇ ਤੁਹਾਨੂੰ ਫ਼ਾਲੋ ਕਰਨ ਦੀ ਬੇਨਤੀ ਕੀਤੀ ਹੈ", "account.requested_follow": "{name} ਨੇ ਤੁਹਾਨੂੰ ਫ਼ਾਲੋ ਕਰਨ ਦੀ ਬੇਨਤੀ ਕੀਤੀ ਹੈ",
@ -57,6 +57,8 @@
"admin.dashboard.retention.cohort_size": "ਨਵੇਂ ਵਰਤੋਂਕਾਰ", "admin.dashboard.retention.cohort_size": "ਨਵੇਂ ਵਰਤੋਂਕਾਰ",
"alert.unexpected.title": "ਓਹੋ!", "alert.unexpected.title": "ਓਹੋ!",
"alt_text_badge.title": "ਬਦਲੀ ਲਿਖਤ", "alt_text_badge.title": "ਬਦਲੀ ਲਿਖਤ",
"alt_text_modal.cancel": "ਰੱਦ ਕਰੋ",
"alt_text_modal.done": "ਮੁਕੰਮਲ",
"announcement.announcement": "ਹੋਕਾ", "announcement.announcement": "ਹੋਕਾ",
"annual_report.summary.followers.followers": "ਫ਼ਾਲੋਅਰ", "annual_report.summary.followers.followers": "ਫ਼ਾਲੋਅਰ",
"annual_report.summary.followers.total": "{count} ਕੁੱਲ", "annual_report.summary.followers.total": "{count} ਕੁੱਲ",
@ -73,6 +75,7 @@
"block_modal.show_more": "ਵੱਧ ਦਿਖਾਓ", "block_modal.show_more": "ਵੱਧ ਦਿਖਾਓ",
"block_modal.title": "ਵਰਤੋਂਕਾਰ ਉੱਤੇ ਪਾਬੰਦੀ ਲਾਉਣੀ ਹੈ?", "block_modal.title": "ਵਰਤੋਂਕਾਰ ਉੱਤੇ ਪਾਬੰਦੀ ਲਾਉਣੀ ਹੈ?",
"boost_modal.reblog": "ਪੋਸਟ ਨੂੰ ਬੂਸਟ ਕਰਨਾ ਹੈ?", "boost_modal.reblog": "ਪੋਸਟ ਨੂੰ ਬੂਸਟ ਕਰਨਾ ਹੈ?",
"bundle_column_error.copy_stacktrace": "ਗਲਤੀ ਰਿਪੋਰਟ ਨੂੰ ਕਾਪੀ ਕਰੋ",
"bundle_column_error.error.title": "ਓਹ ਹੋ!", "bundle_column_error.error.title": "ਓਹ ਹੋ!",
"bundle_column_error.network.title": "ਨੈੱਟਵਰਕ ਦੀ ਸਮੱਸਿਆ", "bundle_column_error.network.title": "ਨੈੱਟਵਰਕ ਦੀ ਸਮੱਸਿਆ",
"bundle_column_error.retry": "ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਕਰੋ", "bundle_column_error.retry": "ਮੁੜ-ਕੋਸ਼ਿਸ਼ ਕਰੋ",
@ -106,6 +109,7 @@
"column_header.pin": "ਟੰਗੋ", "column_header.pin": "ਟੰਗੋ",
"column_header.show_settings": "ਸੈਟਿੰਗਾਂ ਦਿਖਾਓ", "column_header.show_settings": "ਸੈਟਿੰਗਾਂ ਦਿਖਾਓ",
"column_header.unpin": "ਲਾਹੋ", "column_header.unpin": "ਲਾਹੋ",
"column_search.cancel": "ਰੱਦ ਕਰੋ",
"column_subheading.settings": "ਸੈਟਿੰਗਾਂ", "column_subheading.settings": "ਸੈਟਿੰਗਾਂ",
"community.column_settings.local_only": "ਸਿਰਫ ਲੋਕਲ ਹੀ", "community.column_settings.local_only": "ਸਿਰਫ ਲੋਕਲ ਹੀ",
"community.column_settings.media_only": "ਸਿਰਫ ਮੀਡੀਆ ਹੀ", "community.column_settings.media_only": "ਸਿਰਫ ਮੀਡੀਆ ਹੀ",
@ -141,9 +145,12 @@
"confirmations.delete_list.title": "ਸੂਚੀ ਨੂੰ ਹਟਾਉਣਾ ਹੈ?", "confirmations.delete_list.title": "ਸੂਚੀ ਨੂੰ ਹਟਾਉਣਾ ਹੈ?",
"confirmations.discard_edit_media.confirm": "ਰੱਦ ਕਰੋ", "confirmations.discard_edit_media.confirm": "ਰੱਦ ਕਰੋ",
"confirmations.edit.confirm": "ਸੋਧ", "confirmations.edit.confirm": "ਸੋਧ",
"confirmations.follow_to_list.confirm": "ਫ਼ਾਲੋ ਕਰੋ ਅਤੇ ਲਿਸਟ 'ਚ ਜੋੜੋ",
"confirmations.follow_to_list.title": "ਵਰਤੋਂਕਾਰ ਨੂੰ ਫ਼ਾਲੋ ਕਰਨਾ ਹੈ?",
"confirmations.logout.confirm": "ਬਾਹਰ ਹੋਵੋ", "confirmations.logout.confirm": "ਬਾਹਰ ਹੋਵੋ",
"confirmations.logout.message": "ਕੀ ਤੁਸੀਂ ਲਾਗ ਆਉਟ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?", "confirmations.logout.message": "ਕੀ ਤੁਸੀਂ ਲਾਗ ਆਉਟ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?",
"confirmations.logout.title": "ਲਾਗ ਆਉਟ ਕਰਨਾ ਹੈ?", "confirmations.logout.title": "ਲਾਗ ਆਉਟ ਕਰਨਾ ਹੈ?",
"confirmations.missing_alt_text.secondary": "ਕਿਵੇਂ ਵੀ ਪੋਸਟ ਕਰੋ",
"confirmations.mute.confirm": "ਮੌਨ ਕਰੋ", "confirmations.mute.confirm": "ਮੌਨ ਕਰੋ",
"confirmations.redraft.confirm": "ਹਟਾਓ ਤੇ ਮੁੜ-ਡਰਾਫਟ", "confirmations.redraft.confirm": "ਹਟਾਓ ਤੇ ਮੁੜ-ਡਰਾਫਟ",
"confirmations.reply.confirm": "ਜਵਾਬ ਦੇਵੋ", "confirmations.reply.confirm": "ਜਵਾਬ ਦੇਵੋ",
@ -209,9 +216,12 @@
"filter_modal.select_filter.expired": "ਮਿਆਦ ਪੁੱਗੀ", "filter_modal.select_filter.expired": "ਮਿਆਦ ਪੁੱਗੀ",
"filter_modal.select_filter.prompt_new": "ਨਵੀਂ ਕੈਟਾਗਰੀ: {name}", "filter_modal.select_filter.prompt_new": "ਨਵੀਂ ਕੈਟਾਗਰੀ: {name}",
"filter_modal.select_filter.search": "ਖੋਜੋ ਜਾਂ ਬਣਾਓ", "filter_modal.select_filter.search": "ਖੋਜੋ ਜਾਂ ਬਣਾਓ",
"filter_modal.select_filter.title": "ਇਸ ਪੋਸਟ ਨੂੰ ਫਿਲਟਰ ਕਰੋ",
"filter_modal.title.status": "ਇੱਕ ਪੋਸਟ ਨੂੰ ਫਿਲਟਰ ਕਰੋ",
"firehose.all": "ਸਭ", "firehose.all": "ਸਭ",
"firehose.local": "ਇਹ ਸਰਵਰ", "firehose.local": "ਇਹ ਸਰਵਰ",
"firehose.remote": "ਹੋਰ ਸਰਵਰ", "firehose.remote": "ਹੋਰ ਸਰਵਰ",
"follow_request.authorize": "ਪਰਮਾਣਿਤ",
"follow_request.reject": "ਰੱਦ ਕਰੋ", "follow_request.reject": "ਰੱਦ ਕਰੋ",
"follow_suggestions.dismiss": "ਮੁੜ ਨਾ ਵੇਖਾਓ", "follow_suggestions.dismiss": "ਮੁੜ ਨਾ ਵੇਖਾਓ",
"follow_suggestions.personalized_suggestion": "ਨਿੱਜੀ ਸੁਝਾਅ", "follow_suggestions.personalized_suggestion": "ਨਿੱਜੀ ਸੁਝਾਅ",
@ -227,6 +237,7 @@
"footer.privacy_policy": "ਪਰਦੇਦਾਰੀ ਨੀਤੀ", "footer.privacy_policy": "ਪਰਦੇਦਾਰੀ ਨੀਤੀ",
"footer.source_code": "ਸਰੋਤ ਕੋਡ ਵੇਖੋ", "footer.source_code": "ਸਰੋਤ ਕੋਡ ਵੇਖੋ",
"footer.status": "ਹਾਲਤ", "footer.status": "ਹਾਲਤ",
"footer.terms_of_service": "ਸੇਵਾ ਦੀਆਂ ਸ਼ਰਤਾਂ",
"generic.saved": "ਸਾਂਭੀ ਗਈ", "generic.saved": "ਸਾਂਭੀ ਗਈ",
"getting_started.heading": "ਸ਼ੁਰੂ ਕਰੀਏ", "getting_started.heading": "ਸ਼ੁਰੂ ਕਰੀਏ",
"hashtag.column_header.tag_mode.all": "ਅਤੇ {additional}", "hashtag.column_header.tag_mode.all": "ਅਤੇ {additional}",
@ -243,11 +254,15 @@
"hints.profiles.see_more_followers": "{domain} ਉੱਤੇ ਹੋਰ ਫ਼ਾਲੋਅਰ ਵੇਖੋ", "hints.profiles.see_more_followers": "{domain} ਉੱਤੇ ਹੋਰ ਫ਼ਾਲੋਅਰ ਵੇਖੋ",
"hints.profiles.see_more_follows": "{domain} ਉੱਤੇ ਹੋਰ ਫ਼ਾਲੋ ਨੂੰ ਵੇਖੋ", "hints.profiles.see_more_follows": "{domain} ਉੱਤੇ ਹੋਰ ਫ਼ਾਲੋ ਨੂੰ ਵੇਖੋ",
"hints.profiles.see_more_posts": "{domain} ਉੱਤੇ ਹੋਰ ਪੋਸਟਾਂ ਨੂੰ ਵੇਖੋ", "hints.profiles.see_more_posts": "{domain} ਉੱਤੇ ਹੋਰ ਪੋਸਟਾਂ ਨੂੰ ਵੇਖੋ",
"hints.threads.see_more": "{domain} ਤੋਂ ਹੋਰ ਜਵਾਬਾਂ ਨੂੰ ਵੇਖੋ",
"home.column_settings.show_reblogs": "ਬੂਸਟਾਂ ਨੂੰ ਵੇਖੋ", "home.column_settings.show_reblogs": "ਬੂਸਟਾਂ ਨੂੰ ਵੇਖੋ",
"home.column_settings.show_replies": "ਜਵਾਬਾਂ ਨੂੰ ਵੇਖੋ", "home.column_settings.show_replies": "ਜਵਾਬਾਂ ਨੂੰ ਵੇਖੋ",
"home.hide_announcements": "ਐਲਾਨਾਂ ਨੂੰ ਓਹਲੇ ਕਰੋ", "home.hide_announcements": "ਐਲਾਨਾਂ ਨੂੰ ਓਹਲੇ ਕਰੋ",
"home.pending_critical_update.link": "ਅੱਪਡੇਟ ਵੇਖੋ", "home.pending_critical_update.link": "ਅੱਪਡੇਟ ਵੇਖੋ",
"ignore_notifications_modal.ignore": "ਨੋਟਫਿਕੇਸ਼ਨਾਂ ਨੂੰ ਅਣਡਿੱਠਾ ਕਰੋ", "ignore_notifications_modal.ignore": "ਨੋਟਫਿਕੇਸ਼ਨਾਂ ਨੂੰ ਅਣਡਿੱਠਾ ਕਰੋ",
"info_button.label": "ਮਦਦ",
"interaction_modal.go": "ਜਾਓ",
"interaction_modal.no_account_yet": "ਹਾਲੇ ਖਾਤਾ ਨਹੀਂ ਹੈ?",
"interaction_modal.on_another_server": "ਵੱਖਰੇ ਸਰਵਰ ਉੱਤੇ", "interaction_modal.on_another_server": "ਵੱਖਰੇ ਸਰਵਰ ਉੱਤੇ",
"interaction_modal.on_this_server": "ਇਸ ਸਰਵਰ ਉੱਤੇ", "interaction_modal.on_this_server": "ਇਸ ਸਰਵਰ ਉੱਤੇ",
"interaction_modal.title.favourite": "{name} ਦੀ ਪੋਸਟ ਨੂੰ ਪਸੰਦ ਕਰੋ", "interaction_modal.title.favourite": "{name} ਦੀ ਪੋਸਟ ਨੂੰ ਪਸੰਦ ਕਰੋ",
@ -255,6 +270,7 @@
"interaction_modal.title.reblog": "{name} ਦੀ ਪੋਸਟ ਨੂੰ ਬੂਸਟ ਕਰੋ", "interaction_modal.title.reblog": "{name} ਦੀ ਪੋਸਟ ਨੂੰ ਬੂਸਟ ਕਰੋ",
"interaction_modal.title.reply": "{name} ਦੀ ਪੋਸਟ ਦਾ ਜਵਾਬ ਦਿਓ", "interaction_modal.title.reply": "{name} ਦੀ ਪੋਸਟ ਦਾ ਜਵਾਬ ਦਿਓ",
"interaction_modal.title.vote": "{name} ਦੀ ਚੋਣ ਵਾਸਤੇ ਵੋਟ ਪਾਓ", "interaction_modal.title.vote": "{name} ਦੀ ਚੋਣ ਵਾਸਤੇ ਵੋਟ ਪਾਓ",
"interaction_modal.username_prompt": "ਜਿਵੇਂ {example}",
"intervals.full.days": "{number, plural, one {# ਦਿਨ} other {# ਦਿਨ}}", "intervals.full.days": "{number, plural, one {# ਦਿਨ} other {# ਦਿਨ}}",
"intervals.full.hours": "{number, plural, one {# ਘੰਟਾ} other {# ਘੰਟੇ}}", "intervals.full.hours": "{number, plural, one {# ਘੰਟਾ} other {# ਘੰਟੇ}}",
"intervals.full.minutes": "{number, plural, one {# ਮਿੰਟ} other {# ਮਿੰਟ}}", "intervals.full.minutes": "{number, plural, one {# ਮਿੰਟ} other {# ਮਿੰਟ}}",
@ -268,6 +284,7 @@
"keyboard_shortcuts.down": "ਸੂਚੀ ਵਿੱਚ ਹੇਠਾਂ ਭੇਜੋ", "keyboard_shortcuts.down": "ਸੂਚੀ ਵਿੱਚ ਹੇਠਾਂ ਭੇਜੋ",
"keyboard_shortcuts.enter": "ਪੋਸਟ ਨੂੰ ਖੋਲ੍ਹੋ", "keyboard_shortcuts.enter": "ਪੋਸਟ ਨੂੰ ਖੋਲ੍ਹੋ",
"keyboard_shortcuts.favourite": "ਪੋਸਟ ਨੂੰ ਪਸੰਦ ਕਰੋ", "keyboard_shortcuts.favourite": "ਪੋਸਟ ਨੂੰ ਪਸੰਦ ਕਰੋ",
"keyboard_shortcuts.favourites": "ਮਨਪਸੰਦ ਸੂਚੀ ਨੂੰ ਖੋਲ੍ਹੋ",
"keyboard_shortcuts.federated": "", "keyboard_shortcuts.federated": "",
"keyboard_shortcuts.heading": "ਕੀਬੋਰਡ ਸ਼ਾਰਟਕੱਟ", "keyboard_shortcuts.heading": "ਕੀਬੋਰਡ ਸ਼ਾਰਟਕੱਟ",
"keyboard_shortcuts.home": "ਮੁੱਖ-ਸਫ਼ਾ ਟਾਈਮ-ਲਾਈਨ ਨੂੰ ਖੋਲ੍ਹੋ", "keyboard_shortcuts.home": "ਮੁੱਖ-ਸਫ਼ਾ ਟਾਈਮ-ਲਾਈਨ ਨੂੰ ਖੋਲ੍ਹੋ",
@ -288,11 +305,13 @@
"keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW", "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
"keyboard_shortcuts.toggle_sensitivity": "ਮੀਡੀਆ ਦਿਖਾਉਣ/ਲੁਕਾਉਣ ਲਈ", "keyboard_shortcuts.toggle_sensitivity": "ਮੀਡੀਆ ਦਿਖਾਉਣ/ਲੁਕਾਉਣ ਲਈ",
"keyboard_shortcuts.toot": "ਨਵੀਂ ਪੋਸਟ ਸ਼ੁਰੂ ਕਰੋ", "keyboard_shortcuts.toot": "ਨਵੀਂ ਪੋਸਟ ਸ਼ੁਰੂ ਕਰੋ",
"keyboard_shortcuts.translate": "ਪੋਸਟ ਨੂੰ ਅਨੁਵਾਦ ਕਰਨ ਲਈ",
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search", "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "ਸੂਚੀ ਵਿੱਚ ਉੱਤੇ ਭੇਜੋ", "keyboard_shortcuts.up": "ਸੂਚੀ ਵਿੱਚ ਉੱਤੇ ਭੇਜੋ",
"lightbox.close": "ਬੰਦ ਕਰੋ", "lightbox.close": "ਬੰਦ ਕਰੋ",
"lightbox.next": "ਅਗਲੀ", "lightbox.next": "ਅਗਲੀ",
"lightbox.previous": "ਪਿਛਲੀ", "lightbox.previous": "ਪਿਛਲੀ",
"limited_account_hint.action": "ਪਰੋਫਾਈਲ ਨੂੰ ਕਿਵੇਂ ਵੀ ਵੇਖਾਓ",
"link_preview.author": "{name} ਵਲੋਂ", "link_preview.author": "{name} ਵਲੋਂ",
"link_preview.more_from_author": "{name} ਵਲੋਂ ਹੋਰ", "link_preview.more_from_author": "{name} ਵਲੋਂ ਹੋਰ",
"link_preview.shares": "{count, plural, one {{counter} ਪੋਸਟ} other {{counter} ਪੋਸਟਾਂ}}", "link_preview.shares": "{count, plural, one {{counter} ਪੋਸਟ} other {{counter} ਪੋਸਟਾਂ}}",
@ -309,13 +328,17 @@
"lists.list_name": "ਸੂਚੀ ਦਾ ਨਾਂ", "lists.list_name": "ਸੂਚੀ ਦਾ ਨਾਂ",
"lists.new_list_name": "ਨਵੀਂ ਸੂਚੀਂ ਦਾ ਨਾਂ", "lists.new_list_name": "ਨਵੀਂ ਸੂਚੀਂ ਦਾ ਨਾਂ",
"lists.no_lists_yet": "ਹਾਲੇ ਕੋਈ ਵੀ ਸੂਚੀ ਨਹੀਂ ਹੈ।", "lists.no_lists_yet": "ਹਾਲੇ ਕੋਈ ਵੀ ਸੂਚੀ ਨਹੀਂ ਹੈ।",
"lists.no_members_yet": "ਹਾਲੇ ਮੈਂਬਰ ਨਹੀਂ ਹਨ।",
"lists.no_results_found": "ਕੋਈ ਨਤੀਜਾ ਨਹੀਂ ਮਿਲਿਆ।",
"lists.remove_member": "ਹਟਾਓ", "lists.remove_member": "ਹਟਾਓ",
"lists.replies_policy.followed": "ਕੋਈ ਵੀ ਫ਼ਾਲੋ ਕੀਤਾ ਵਰਤੋਂਕਾਰ", "lists.replies_policy.followed": "ਕੋਈ ਵੀ ਫ਼ਾਲੋ ਕੀਤਾ ਵਰਤੋਂਕਾਰ",
"lists.replies_policy.list": "ਸੂਚੀ ਦੇ ਮੈਂਬਰ", "lists.replies_policy.list": "ਸੂਚੀ ਦੇ ਮੈਂਬਰ",
"lists.replies_policy.none": "ਕੋਈ ਨਹੀਂ", "lists.replies_policy.none": "ਕੋਈ ਨਹੀਂ",
"lists.save": "ਸੰਭਾਲੋ", "lists.save": "ਸੰਭਾਲੋ",
"lists.search": "ਖੋਜੋ",
"loading_indicator.label": "ਲੋਡ ਹੋ ਰਿਹਾ ਹੈ…", "loading_indicator.label": "ਲੋਡ ਹੋ ਰਿਹਾ ਹੈ…",
"media_gallery.hide": "ਲੁਕਾਓ", "media_gallery.hide": "ਲੁਕਾਓ",
"mute_modal.hide_from_notifications": "ਨੋਟੀਫਿਕੇਸ਼ਨਾਂ ਵਿੱਚੋਂ ਲੁਕਾਓ",
"mute_modal.show_options": "ਚੋਣਾਂ ਨੂੰ ਵੇਖਾਓ", "mute_modal.show_options": "ਚੋਣਾਂ ਨੂੰ ਵੇਖਾਓ",
"navigation_bar.about": "ਇਸ ਬਾਰੇ", "navigation_bar.about": "ਇਸ ਬਾਰੇ",
"navigation_bar.administration": "ਪਰਸ਼ਾਸ਼ਨ", "navigation_bar.administration": "ਪਰਸ਼ਾਸ਼ਨ",
@ -354,6 +377,8 @@
"notification.mentioned_you": "{name} ਨੇ ਤੁਹਾਡਾ ਜ਼ਿਕਰ ਕੀਤਾ", "notification.mentioned_you": "{name} ਨੇ ਤੁਹਾਡਾ ਜ਼ਿਕਰ ਕੀਤਾ",
"notification.moderation-warning.learn_more": "ਹੋਰ ਜਾਣੋ", "notification.moderation-warning.learn_more": "ਹੋਰ ਜਾਣੋ",
"notification.moderation_warning.action_disable": "ਤੁਹਾਡੇ ਖਾਤੇ ਨੂੰਅਸਮਰੱਥ ਕੀਤਾ ਹੈ।", "notification.moderation_warning.action_disable": "ਤੁਹਾਡੇ ਖਾਤੇ ਨੂੰਅਸਮਰੱਥ ਕੀਤਾ ਹੈ।",
"notification.moderation_warning.action_silence": "ਤੁਹਾਡੇ ਖਾਤੇ ਨੂੰ ਸੀਮਿਤ ਕੀਤਾ ਗਿਆ ਹੈ।",
"notification.moderation_warning.action_suspend": "ਤੁਹਾਡੇ ਖਾਤੇ ਨੂੰ ਮੁਅੱਤਲ ਕੀਤਾ ਗਿਆ ਹੈ।",
"notification.reblog": "{name} boosted your status", "notification.reblog": "{name} boosted your status",
"notification.relationships_severance_event.learn_more": "ਹੋਰ ਜਾਣੋ", "notification.relationships_severance_event.learn_more": "ਹੋਰ ਜਾਣੋ",
"notification.status": "{name} ਨੇ ਹੁਣੇ ਪੋਸਟ ਕੀਤਾ", "notification.status": "{name} ਨੇ ਹੁਣੇ ਪੋਸਟ ਕੀਤਾ",
@ -393,6 +418,14 @@
"notifications.policy.accept": "ਮਨਜ਼ੂਰ", "notifications.policy.accept": "ਮਨਜ਼ੂਰ",
"notifications.policy.accept_hint": "ਨੋਟੀਫਿਕੇਸ਼ਨਾਂ ਵਿੱਚ ਵੇਖਾਓ", "notifications.policy.accept_hint": "ਨੋਟੀਫਿਕੇਸ਼ਨਾਂ ਵਿੱਚ ਵੇਖਾਓ",
"notifications.policy.drop": "ਅਣਡਿੱਠਾ", "notifications.policy.drop": "ਅਣਡਿੱਠਾ",
"notifications.policy.filter": "ਫਿਲਟਰ",
"notifications.policy.filter_new_accounts_title": "ਨਵੇਂ ਖਾਤੇ",
"notifications.policy.filter_not_followers_title": "ਲੋਕ ਤੁਹਾਨੂੰ ਫ਼ਾਲੋ ਨਹੀਂ ਕਰਦੇ",
"notifications.policy.filter_not_following_hint": "ਜਦ ਤੱਕ ਤੁਸੀਂ ਉਹਨਾਂ ਨੂੰ ਖੁਦ ਮਨਜ਼ੂਰੀ ਨਹੀਂ ਦਿੰਦੇ",
"notifications_permission_banner.enable": "ਡੈਸਕਟਾਪ ਸੂਚਨਾਵਾਂ ਸਮਰੱਥ ਕਰੋ",
"onboarding.follows.back": "ਪਿੱਛੇ",
"onboarding.follows.done": "ਮੁਕੰਮਲ",
"onboarding.follows.search": "ਖੋਜੋ",
"onboarding.profile.note": "ਜਾਣਕਾਰੀ", "onboarding.profile.note": "ਜਾਣਕਾਰੀ",
"onboarding.profile.save_and_continue": "ਸੰਭਾਲੋ ਅਤੇ ਜਾਰੀ ਰੱਖੋ", "onboarding.profile.save_and_continue": "ਸੰਭਾਲੋ ਅਤੇ ਜਾਰੀ ਰੱਖੋ",
"onboarding.profile.title": "ਪਰੋਫਾਈਲ ਸੈਟਅੱਪ", "onboarding.profile.title": "ਪਰੋਫਾਈਲ ਸੈਟਅੱਪ",
@ -403,11 +436,16 @@
"poll.vote": "ਵੋਟ ਪਾਓ", "poll.vote": "ਵੋਟ ਪਾਓ",
"poll.voted": "ਤੁਸੀਂ ਇਸ ਜਵਾਬ ਲਈ ਵੋਟ ਕੀਤਾ", "poll.voted": "ਤੁਸੀਂ ਇਸ ਜਵਾਬ ਲਈ ਵੋਟ ਕੀਤਾ",
"privacy.change": "ਪੋਸਟ ਦੀ ਪਰਦੇਦਾਰੀ ਨੂੰ ਬਦਲੋ", "privacy.change": "ਪੋਸਟ ਦੀ ਪਰਦੇਦਾਰੀ ਨੂੰ ਬਦਲੋ",
"privacy.direct.long": "ਪੋਸਟ ਵਿੱਚ ਜ਼ਿਕਰ ਕੀਤੇ ਹਰ ਕੋਈ",
"privacy.direct.short": "ਖਾਸ ਲੋਕ",
"privacy.private.long": "ਸਿਰਫ਼ ਤੁਹਾਡੇ ਫ਼ਾਲੋਅਰ ਹੀ",
"privacy.private.short": "ਫ਼ਾਲੋਅਰ", "privacy.private.short": "ਫ਼ਾਲੋਅਰ",
"privacy.public.short": "ਜਨਤਕ", "privacy.public.short": "ਜਨਤਕ",
"privacy_policy.last_updated": "ਆਖਰੀ ਵਾਰ {date} ਨੂੰ ਅੱਪਡੇਟ ਕੀਤਾ",
"privacy_policy.title": "ਪਰਦੇਦਾਰੀ ਨੀਤੀ", "privacy_policy.title": "ਪਰਦੇਦਾਰੀ ਨੀਤੀ",
"recommended": "ਸਿਫ਼ਾਰਸ਼ੀ", "recommended": "ਸਿਫ਼ਾਰਸ਼ੀ",
"refresh": "ਤਾਜ਼ਾ ਕਰੋ", "refresh": "ਤਾਜ਼ਾ ਕਰੋ",
"regeneration_indicator.please_stand_by": "ਕਿਰਪਾ ਕਰਕੇ ਉਡੀਕੋ।",
"relative_time.days": "{number}ਦਿਨ", "relative_time.days": "{number}ਦਿਨ",
"relative_time.full.days": "{number, plural, one {# ਦਿਨ} other {# ਦਿਨ}} ਪਹਿਲਾਂ", "relative_time.full.days": "{number, plural, one {# ਦਿਨ} other {# ਦਿਨ}} ਪਹਿਲਾਂ",
"relative_time.full.hours": "{number, plural, one {# ਘੰਟਾ} other {# ਘੰਟੇ}} ਪਹਿਲਾਂ", "relative_time.full.hours": "{number, plural, one {# ਘੰਟਾ} other {# ਘੰਟੇ}} ਪਹਿਲਾਂ",
@ -431,9 +469,16 @@
"report.next": "ਅਗਲੀ", "report.next": "ਅਗਲੀ",
"report.placeholder": "ਵਧੀਕ ਟਿੱਪਣੀਆਂ", "report.placeholder": "ਵਧੀਕ ਟਿੱਪਣੀਆਂ",
"report.reasons.dislike": "ਮੈਨੂੰ ਇਹ ਪਸੰਦ ਨਹੀਂ ਹੈ", "report.reasons.dislike": "ਮੈਨੂੰ ਇਹ ਪਸੰਦ ਨਹੀਂ ਹੈ",
"report.reasons.legal": "ਇਹ ਗ਼ੈਰ-ਕਨੂੰਨੀ ਹੈ",
"report.reasons.other": "ਇਹ ਕੁਝ ਹੋਰ ਹੈ",
"report.reasons.spam": "ਇਹ ਸਪੈਮ ਹੈ", "report.reasons.spam": "ਇਹ ਸਪੈਮ ਹੈ",
"report.rules.subtitle": "ਲਾਗੂ ਹੋਣ ਵਾਲੇ ਸਾਰੇ ਚੁਣੋ",
"report.rules.title": "ਕਿਹੜੇ ਨਿਯਮਾਂ ਦਾ ਉਲੰਘਣ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ?",
"report.statuses.subtitle": "ਲਾਗੂ ਹੋਣ ਵਾਲੇ ਸਾਰੇ ਚੁਣੋ",
"report.submit": "ਭੇਜੋ", "report.submit": "ਭੇਜੋ",
"report.target": "{target} ਰਿਪੋਰਟ", "report.target": "{target} ਰਿਪੋਰਟ",
"report.thanks.title": "ਇਸ ਨੂੰ ਵੇਖਣਾ ਨਹੀਂ ਚਾਹੁੰਦੇ ਹੋ?",
"report.thanks.title_actionable": "ਰਿਪੋਰਟ ਕਰਨ ਲਈ ਧੰਨਵਾਦ ਹੈ। ਅਸੀਂ ਇਸ ਦੀ ਛਾਣਬੀਣ ਕਰਾਂਗੇ।",
"report.unfollow": "@{name} ਨੂੰ ਅਣ-ਫ਼ਾਲੋ ਕਰੋ", "report.unfollow": "@{name} ਨੂੰ ਅਣ-ਫ਼ਾਲੋ ਕਰੋ",
"report_notification.attached_statuses": "{count, plural, one {# post} other {# posts}} attached", "report_notification.attached_statuses": "{count, plural, one {# post} other {# posts}} attached",
"report_notification.categories.legal": "ਕਨੂੰਨੀ", "report_notification.categories.legal": "ਕਨੂੰਨੀ",
@ -444,6 +489,7 @@
"report_notification.categories.violation": "ਨਿਯਮ ਦੀ ਉਲੰਘਣਾ", "report_notification.categories.violation": "ਨਿਯਮ ਦੀ ਉਲੰਘਣਾ",
"report_notification.categories.violation_sentence": "ਨਿਯਮ ਦੀ ਉਲੰਘਣਾ", "report_notification.categories.violation_sentence": "ਨਿਯਮ ਦੀ ਉਲੰਘਣਾ",
"report_notification.open": "ਰਿਪੋਰਟ ਨੂੰ ਖੋਲ੍ਹੋ", "report_notification.open": "ਰਿਪੋਰਟ ਨੂੰ ਖੋਲ੍ਹੋ",
"search.no_recent_searches": "ਕੋਈ ਸੱਜਰੀ ਖੋਜ ਨਹੀਂ ਹੈ",
"search.placeholder": "ਖੋਜੋ", "search.placeholder": "ਖੋਜੋ",
"search.quick_action.go_to_account": "ਪਰੋਫਾਈਲ {x} ਉੱਤੇ ਜਾਓ", "search.quick_action.go_to_account": "ਪਰੋਫਾਈਲ {x} ਉੱਤੇ ਜਾਓ",
"search.quick_action.go_to_hashtag": "ਹੈਸ਼ਟੈਗ {x} ਉੱਤੇ ਜਾਓ", "search.quick_action.go_to_hashtag": "ਹੈਸ਼ਟੈਗ {x} ਉੱਤੇ ਜਾਓ",
@ -456,6 +502,7 @@
"search_results.accounts": "ਪਰੋਫਾਈਲ", "search_results.accounts": "ਪਰੋਫਾਈਲ",
"search_results.all": "ਸਭ", "search_results.all": "ਸਭ",
"search_results.hashtags": "ਹੈਸ਼ਟੈਗ", "search_results.hashtags": "ਹੈਸ਼ਟੈਗ",
"search_results.no_results": "ਕੋਈ ਨਤੀਜੇ ਨਹੀਂ ਹਨ।",
"search_results.see_all": "ਸਭ ਵੇਖੋ", "search_results.see_all": "ਸਭ ਵੇਖੋ",
"search_results.statuses": "ਪੋਸਟਾਂ", "search_results.statuses": "ਪੋਸਟਾਂ",
"server_banner.active_users": "ਸਰਗਰਮ ਵਰਤੋਂਕਾਰ", "server_banner.active_users": "ਸਰਗਰਮ ਵਰਤੋਂਕਾਰ",
@ -478,31 +525,49 @@
"status.load_more": "ਹੋਰ ਦਿਖਾਓ", "status.load_more": "ਹੋਰ ਦਿਖਾਓ",
"status.media.open": "ਖੋਲ੍ਹਣ ਲਈ ਕਲਿੱਕ ਕਰੋ", "status.media.open": "ਖੋਲ੍ਹਣ ਲਈ ਕਲਿੱਕ ਕਰੋ",
"status.media.show": "ਵੇਖਾਉਣ ਲਈ ਕਲਿੱਕ ਕਰੋ", "status.media.show": "ਵੇਖਾਉਣ ਲਈ ਕਲਿੱਕ ਕਰੋ",
"status.media_hidden": "ਮੀਡਿਆ ਲੁਕਵਾਂ ਹੈ",
"status.mention": "@{name} ਦਾ ਜ਼ਿਕਰ", "status.mention": "@{name} ਦਾ ਜ਼ਿਕਰ",
"status.more": "ਹੋਰ", "status.more": "ਹੋਰ",
"status.mute": "@{name} ਨੂੰ ਮੌਨ ਕਰੋ",
"status.mute_conversation": "ਗੱਲਬਾਤ ਨੂੰ ਮੌਨ ਕਰੋ",
"status.open": "ਇਹ ਪੋਸਟ ਨੂੰ ਫੈਲਾਓ", "status.open": "ਇਹ ਪੋਸਟ ਨੂੰ ਫੈਲਾਓ",
"status.pin": "ਪਰੋਫਾਈਲ ਉੱਤੇ ਟੰਗੋ", "status.pin": "ਪਰੋਫਾਈਲ ਉੱਤੇ ਟੰਗੋ",
"status.pinned": "ਟੰਗੀ ਹੋਈ ਪੋਸਟ", "status.pinned": "ਟੰਗੀ ਹੋਈ ਪੋਸਟ",
"status.read_more": "ਹੋਰ ਪੜ੍ਹੋ", "status.read_more": "ਹੋਰ ਪੜ੍ਹੋ",
"status.reblog": "ਵਧਾਓ", "status.reblog": "ਵਧਾਓ",
"status.reblogged_by": "{name} ਨੇ ਬੂਸਟ ਕੀਤਾ",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "ਹਟਾਓ ਤੇ ਮੁੜ-ਡਰਾਫਟ",
"status.remove_bookmark": "ਬੁੱਕਮਾਰਕ ਨੂੰ ਹਟਾਓ",
"status.remove_favourite": "ਮਨਪਸੰਦ ਵਿੱਚੋਂ ਹਟਾਓ",
"status.replied_in_thread": "ਮਾਮਲੇ ਵਿੱਚ ਜਵਾਬ ਦਿਓ",
"status.replied_to": "{name} ਨੂੰ ਜਵਾਬ ਦਿੱਤਾ", "status.replied_to": "{name} ਨੂੰ ਜਵਾਬ ਦਿੱਤਾ",
"status.reply": "ਜਵਾਬ ਦੇਵੋ", "status.reply": "ਜਵਾਬ ਦੇਵੋ",
"status.replyAll": "ਮਾਮਲੇ ਨੂੰ ਜਵਾਬ ਦਿਓ", "status.replyAll": "ਮਾਮਲੇ ਨੂੰ ਜਵਾਬ ਦਿਓ",
"status.report": "@{name} ਦੀ ਰਿਪੋਰਟ ਕਰੋ", "status.report": "@{name} ਦੀ ਰਿਪੋਰਟ ਕਰੋ",
"status.sensitive_warning": "ਸੰਵੇਦਨਸ਼ੀਲ ਸਮੱਗਰੀ", "status.sensitive_warning": "ਸੰਵੇਦਨਸ਼ੀਲ ਸਮੱਗਰੀ",
"status.share": "ਸਾਂਝਾ ਕਰੋ", "status.share": "ਸਾਂਝਾ ਕਰੋ",
"status.show_less_all": "ਸਭ ਲਈ ਘੱਟ ਵੇਖਾਓ",
"status.show_more_all": "ਸਭ ਲਈ ਵੱਧ ਵੇਖਾਓ",
"status.show_original": "ਅਸਲ ਨੂੰ ਵੇਖਾਓ",
"status.title.with_attachments": "{user} ਨੇ {attachmentCount, plural,one {ਅਟੈਚਮੈਂਟ} other {{attachmentCount}ਅਟੈਚਮੈਂਟਾਂ}} ਪੋਸਟ ਕੀਤੀਆਂ", "status.title.with_attachments": "{user} ਨੇ {attachmentCount, plural,one {ਅਟੈਚਮੈਂਟ} other {{attachmentCount}ਅਟੈਚਮੈਂਟਾਂ}} ਪੋਸਟ ਕੀਤੀਆਂ",
"status.translate": "ਉਲੱਥਾ ਕਰੋ", "status.translate": "ਉਲੱਥਾ ਕਰੋ",
"status.translated_from_with": "{provider} ਵਰਤ ਕੇ {lang} ਤੋਂ ਅਨੁਵਾਦ ਕੀਤਾ",
"status.uncached_media_warning": "ਝਲਕ ਮੌਜੂਦ ਨਹੀਂ ਹੈ",
"status.unpin": "ਪਰੋਫਾਈਲ ਤੋਂ ਲਾਹੋ", "status.unpin": "ਪਰੋਫਾਈਲ ਤੋਂ ਲਾਹੋ",
"subscribed_languages.save": "ਤਬਦੀਲੀਆਂ ਸੰਭਾਲੋ", "subscribed_languages.save": "ਤਬਦੀਲੀਆਂ ਸੰਭਾਲੋ",
"tabs_bar.home": "ਘਰ", "tabs_bar.home": "ਘਰ",
"tabs_bar.notifications": "ਸੂਚਨਾਵਾਂ", "tabs_bar.notifications": "ਸੂਚਨਾਵਾਂ",
"terms_of_service.title": "ਸੇਵਾ ਦੀਆਂ ਸ਼ਰਤਾਂ",
"time_remaining.days": "{number, plural, one {# ਦਿਨ} other {# ਦਿਨ}} ਬਾਕੀ",
"time_remaining.hours": "{number, plural, one {# ਘੰਟਾ} other {# ਘੰਟੇ}} ਬਾਕੀ",
"time_remaining.minutes": "{number, plural, one {# ਮਿੰਟ} other {# ਮਿੰਟ}} ਬਾਕੀ",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}", "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"trends.trending_now": "ਹੁਣ ਰੁਝਾਨ ਵਿੱਚ", "trends.trending_now": "ਹੁਣ ਰੁਝਾਨ ਵਿੱਚ",
"units.short.billion": "{count}ਿਬ", "units.short.billion": "{count}ਿਬ",
"units.short.million": "{count}ਮਿ", "units.short.million": "{count}ਮਿ",
"units.short.thousand": "{count}ਹਜ਼ਾਰ", "units.short.thousand": "{count}ਹਜ਼ਾਰ",
"upload_button.label": "ਚਿੱਤਰ, ਵੀਡੀਓ ਜਾਂ ਆਡੀਓ ਫਾਇਲ ਨੂੰ ਜੋੜੋ",
"upload_form.edit": "ਸੋਧ", "upload_form.edit": "ਸੋਧ",
"upload_progress.label": "ਅੱਪਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ...", "upload_progress.label": "ਅੱਪਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ...",
"upload_progress.processing": "ਕਾਰਵਾਈ ਚੱਲ ਰਹੀ ਹੈ…", "upload_progress.processing": "ਕਾਰਵਾਈ ਚੱਲ ਰਹੀ ਹੈ…",
@ -513,6 +578,8 @@
"video.expand": "ਵੀਡੀਓ ਨੂੰ ਫੈਲਾਓ", "video.expand": "ਵੀਡੀਓ ਨੂੰ ਫੈਲਾਓ",
"video.fullscreen": "ਪੂਰੀ ਸਕਰੀਨ", "video.fullscreen": "ਪੂਰੀ ਸਕਰੀਨ",
"video.hide": "ਵੀਡੀਓ ਨੂੰ ਲੁਕਾਓ", "video.hide": "ਵੀਡੀਓ ਨੂੰ ਲੁਕਾਓ",
"video.mute": "ਆਵਾਜ਼ ਨੂੰ ਬੰਦ ਕਰੋ",
"video.pause": "ਠਹਿਰੋ", "video.pause": "ਠਹਿਰੋ",
"video.play": "ਚਲਾਓ" "video.play": "ਚਲਾਓ",
"video.unmute": "ਆਵਾਜ਼ ਨੂੰ ਸੁਣਾਓ"
} }

View file

@ -218,6 +218,7 @@
"confirmations.logout.confirm": "Wyloguj", "confirmations.logout.confirm": "Wyloguj",
"confirmations.logout.message": "Czy na pewno chcesz się wylogować?", "confirmations.logout.message": "Czy na pewno chcesz się wylogować?",
"confirmations.logout.title": "Wylogować?", "confirmations.logout.title": "Wylogować?",
"confirmations.missing_alt_text.message": "Twój wpis zawiera treści graficzne bez opisu pomocniczego. Dodając opis, sprawisz, że będzie on bardziej dostępny dla większej liczby osób.",
"confirmations.mute.confirm": "Wycisz", "confirmations.mute.confirm": "Wycisz",
"confirmations.redraft.confirm": "Usuń i przeredaguj", "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.redraft.message": "Czy na pewno chcesz usunąć i przeredagować ten wpis? Polubienia i podbicia zostaną utracone, a odpowiedzi do oryginalnego wpisu zostaną osierocone.",
@ -414,6 +415,8 @@
"ignore_notifications_modal.not_followers_title": "Ignoruj powiadomienia od użytkowników którzy cię nie obserwują?", "ignore_notifications_modal.not_followers_title": "Ignoruj powiadomienia od użytkowników którzy cię nie obserwują?",
"ignore_notifications_modal.not_following_title": "Ignoruj powiadomienia od użytkowników których nie obserwujesz?", "ignore_notifications_modal.not_following_title": "Ignoruj powiadomienia od użytkowników których nie obserwujesz?",
"ignore_notifications_modal.private_mentions_title": "Ignoruj powiadomienia o nieproszonych wzmiankach prywatnych?", "ignore_notifications_modal.private_mentions_title": "Ignoruj powiadomienia o nieproszonych wzmiankach prywatnych?",
"info_button.label": "Pomoc",
"info_button.what_is_alt_text": "<h1>Czym jest tekst pomocniczy obrazków?</h1><p> Tekst pomocniczy zapewnia osobom z zaburzeniem widzenia, słabym łączem internetowym oraz tym, którzy szukają dodatkowego kontekstu opis grafik i zdjęć.</p>\n<p>Możesz zwiększyć jego dostępność i zrozumienie poprzez jasne, zwięzłe i obiektywne sformułowanie tekstu pomocniczego.</p>\n<ul>\n<li>Uchwyć ważne elementy</li>\n<li>Streść tekst na obrazkach</li>\n<li>Używaj standardowej składni zdań</li>\n<li>Unikaj wprowadzania zbędnych informacji</li>\n<li>Skup się na głównych trendach i kluczowych informacjach w skomplikowanych materiałach (tkaich jak wykresy czy mapy)</li>\n</ul>",
"interaction_modal.action.favourite": "Aby kontynuować, musisz dodać do ulubionych na swoim koncie.", "interaction_modal.action.favourite": "Aby kontynuować, musisz dodać do ulubionych na swoim koncie.",
"interaction_modal.action.follow": "Aby kontynuować, musisz obserwować ze swojego konta.", "interaction_modal.action.follow": "Aby kontynuować, musisz obserwować ze swojego konta.",
"interaction_modal.action.reblog": "Aby kontynuować, musisz podać dalej ze swojego konta.", "interaction_modal.action.reblog": "Aby kontynuować, musisz podać dalej ze swojego konta.",

View file

@ -42,7 +42,7 @@
"account.hide_reblogs": "Esconder partilhas impulsionadas de @{name}", "account.hide_reblogs": "Esconder partilhas impulsionadas de @{name}",
"account.in_memoriam": "Em Memória.", "account.in_memoriam": "Em Memória.",
"account.joined_short": "Juntou-se a", "account.joined_short": "Juntou-se a",
"account.languages": "Alterar línguas subscritas", "account.languages": "Alterar idiomas subscritos",
"account.link_verified_on": "O proprietário desta hiperligação foi verificado em {date}", "account.link_verified_on": "O proprietário desta hiperligação foi verificado em {date}",
"account.locked_info": "Esta conta é privada. O proprietário revê manualmente quem o pode seguir.", "account.locked_info": "Esta conta é privada. O proprietário revê manualmente quem o pode seguir.",
"account.media": "Multimédia", "account.media": "Multimédia",
@ -219,7 +219,7 @@
"confirmations.logout.message": "Tens a certeza de que queres terminar a sessão?", "confirmations.logout.message": "Tens a certeza de que queres terminar a sessão?",
"confirmations.logout.title": "Terminar sessão?", "confirmations.logout.title": "Terminar sessão?",
"confirmations.missing_alt_text.confirm": "Adicionar texto alternativo", "confirmations.missing_alt_text.confirm": "Adicionar texto alternativo",
"confirmations.missing_alt_text.message": "A sua publicação contém elementos gráficos sem texto alternativo. Adicionar descrições ajuda a tornar o seu conteúdo acessível a mais pessoas.", "confirmations.missing_alt_text.message": "A tua publicação contém multimédia sem texto alternativo. A adição de descrições ajuda a tornar o conteúdo acessível a mais pessoas.",
"confirmations.missing_alt_text.secondary": "Publicar mesmo assim", "confirmations.missing_alt_text.secondary": "Publicar mesmo assim",
"confirmations.missing_alt_text.title": "Adicionar texto alternativo?", "confirmations.missing_alt_text.title": "Adicionar texto alternativo?",
"confirmations.mute.confirm": "Ocultar", "confirmations.mute.confirm": "Ocultar",
@ -817,7 +817,7 @@
"status.cancel_reblog_private": "Retirar impulso", "status.cancel_reblog_private": "Retirar impulso",
"status.cannot_reblog": "Esta publicação não pode ser impulsionada", "status.cannot_reblog": "Esta publicação não pode ser impulsionada",
"status.continued_thread": "Continuação da conversa", "status.continued_thread": "Continuação da conversa",
"status.copy": "Copiar hiperligação para a publicação", "status.copy": "Copiar hiperligação da publicação",
"status.delete": "Eliminar", "status.delete": "Eliminar",
"status.detailed_status": "Vista pormenorizada da conversa", "status.detailed_status": "Vista pormenorizada da conversa",
"status.direct": "Mencionar @{name} em privado", "status.direct": "Mencionar @{name} em privado",

View file

@ -86,6 +86,13 @@
"alert.unexpected.message": "Произошла непредвиденная ошибка.", "alert.unexpected.message": "Произошла непредвиденная ошибка.",
"alert.unexpected.title": "Ой!", "alert.unexpected.title": "Ой!",
"alt_text_badge.title": "Альтернативный текст", "alt_text_badge.title": "Альтернативный текст",
"alt_text_modal.add_alt_text": "Альтернативный текст",
"alt_text_modal.add_text_from_image": "Добавить текст из изображения",
"alt_text_modal.cancel": "Отмена",
"alt_text_modal.change_thumbnail": "Изменить обложку",
"alt_text_modal.describe_for_people_with_hearing_impairments": "Опишите то, что слышите, для людей с нарушениями слуха…",
"alt_text_modal.describe_for_people_with_visual_impairments": "Опишите то, что видите, для людей с нарушениями зрения…",
"alt_text_modal.done": "Готово",
"announcement.announcement": "Объявление", "announcement.announcement": "Объявление",
"annual_report.summary.archetype.booster": "Репостер", "annual_report.summary.archetype.booster": "Репостер",
"annual_report.summary.archetype.lurker": "Молчун", "annual_report.summary.archetype.lurker": "Молчун",
@ -211,6 +218,10 @@
"confirmations.logout.confirm": "Выйти", "confirmations.logout.confirm": "Выйти",
"confirmations.logout.message": "Вы уверены, что хотите выйти?", "confirmations.logout.message": "Вы уверены, что хотите выйти?",
"confirmations.logout.title": "Выйти?", "confirmations.logout.title": "Выйти?",
"confirmations.missing_alt_text.confirm": "Добавить",
"confirmations.missing_alt_text.message": "Ваш пост содержит медиафайлы без альтернативного текста. Добавляя описания, вы делаете ваш контент доступным для более широкого круга людей.",
"confirmations.missing_alt_text.secondary": "Опубликовать",
"confirmations.missing_alt_text.title": "Добавить альтернативный текст?",
"confirmations.mute.confirm": "Игнорировать", "confirmations.mute.confirm": "Игнорировать",
"confirmations.redraft.confirm": "Удалить и исправить", "confirmations.redraft.confirm": "Удалить и исправить",
"confirmations.redraft.message": "Вы уверены, что хотите удалить и переписать этот пост? Отметки «избранного», продвижения и ответы к оригинальному посту будут потеряны.", "confirmations.redraft.message": "Вы уверены, что хотите удалить и переписать этот пост? Отметки «избранного», продвижения и ответы к оригинальному посту будут потеряны.",
@ -407,6 +418,8 @@
"ignore_notifications_modal.not_followers_title": "Игнорировать уведомления от людей, которые не следят за вами?", "ignore_notifications_modal.not_followers_title": "Игнорировать уведомления от людей, которые не следят за вами?",
"ignore_notifications_modal.not_following_title": "Игнорировать уведомления от людей, за которыми вы не следите?", "ignore_notifications_modal.not_following_title": "Игнорировать уведомления от людей, за которыми вы не следите?",
"ignore_notifications_modal.private_mentions_title": "Игнорировать уведомления о нежелательных личных сообщениях?", "ignore_notifications_modal.private_mentions_title": "Игнорировать уведомления о нежелательных личных сообщениях?",
"info_button.label": "Помощь",
"info_button.what_is_alt_text": "<h1>Что это такое?</h1> <p>Альтернативный текст содержит описание изображения для людей с ограничениями зрения, медленным интернетом и для тех, кому нужен дополнительный контекст.</p> <p>Вы можете улучшить доступность и понимание для всех, написав четкий, краткий и объективный альтернативный текст.</p> <ul> <li>Уловите важные элементы</li> <li>Перескажите текстовую информацию на изображении</li> <li>Используйте правильную структуру предложений</li> <li>Избегайте избыточной информации</li> <li>Сосредоточьтесь на тенденциях и ключевых выводах при описании сложных визуализаций (таких как диаграммы или карты)</li> </ul>",
"interaction_modal.action.favourite": "Вы можете добавить этот пост в избранное со своей учётной записью.", "interaction_modal.action.favourite": "Вы можете добавить этот пост в избранное со своей учётной записью.",
"interaction_modal.action.follow": "Вы можете подписаться со своей учётной записью.", "interaction_modal.action.follow": "Вы можете подписаться со своей учётной записью.",
"interaction_modal.action.reblog": "Вы можете продвинуть этот пост со своей учётной записью.", "interaction_modal.action.reblog": "Вы можете продвинуть этот пост со своей учётной записью.",
@ -457,6 +470,7 @@
"keyboard_shortcuts.toggle_hidden": "показать/скрыть текст за предупреждением", "keyboard_shortcuts.toggle_hidden": "показать/скрыть текст за предупреждением",
"keyboard_shortcuts.toggle_sensitivity": "показать/скрыть медиафайлы", "keyboard_shortcuts.toggle_sensitivity": "показать/скрыть медиафайлы",
"keyboard_shortcuts.toot": "начать писать новый пост", "keyboard_shortcuts.toot": "начать писать новый пост",
"keyboard_shortcuts.translate": "перевести пост",
"keyboard_shortcuts.unfocus": "убрать фокус с поля ввода/поиска", "keyboard_shortcuts.unfocus": "убрать фокус с поля ввода/поиска",
"keyboard_shortcuts.up": "вверх по списку", "keyboard_shortcuts.up": "вверх по списку",
"lightbox.close": "Закрыть", "lightbox.close": "Закрыть",
@ -836,6 +850,7 @@
"status.reblogs.empty": "Никто ещё не продвинул этот пост. Как только кто-то это сделает, они появятся здесь.", "status.reblogs.empty": "Никто ещё не продвинул этот пост. Как только кто-то это сделает, они появятся здесь.",
"status.redraft": "Создать заново", "status.redraft": "Создать заново",
"status.remove_bookmark": "Убрать из закладок", "status.remove_bookmark": "Убрать из закладок",
"status.remove_favourite": "Убрать из избранного",
"status.replied_in_thread": "Ответил в теме", "status.replied_in_thread": "Ответил в теме",
"status.replied_to": "Ответил(а) {name}", "status.replied_to": "Ответил(а) {name}",
"status.reply": "Ответить", "status.reply": "Ответить",

View file

@ -205,6 +205,7 @@
"confirmations.logout.confirm": "Odhlásiť sa", "confirmations.logout.confirm": "Odhlásiť sa",
"confirmations.logout.message": "Určite sa chcete odhlásiť?", "confirmations.logout.message": "Určite sa chcete odhlásiť?",
"confirmations.logout.title": "Odhlásiť sa?", "confirmations.logout.title": "Odhlásiť sa?",
"confirmations.missing_alt_text.secondary": "Odošli aj tak",
"confirmations.mute.confirm": "Stíšiť", "confirmations.mute.confirm": "Stíšiť",
"confirmations.redraft.confirm": "Vymazať a prepísať", "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.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é.",
@ -319,6 +320,7 @@
"follow_requests.unlocked_explanation": "Aj keď váš účet nie je uzamknutý, tím domény {domain} si myslel, že môžete chcieť skontrolovať žiadosti o sledovanie z týchto účtov manuálne.", "follow_requests.unlocked_explanation": "Aj keď váš účet nie je uzamknutý, tím domény {domain} si myslel, že môžete chcieť skontrolovať žiadosti o sledovanie z týchto účtov manuálne.",
"follow_suggestions.curated_suggestion": "Výber redakcie", "follow_suggestions.curated_suggestion": "Výber redakcie",
"follow_suggestions.dismiss": "Znova nezobrazovať", "follow_suggestions.dismiss": "Znova nezobrazovať",
"follow_suggestions.featured_longer": "Ručne vybrané tímom {domain}",
"follow_suggestions.friends_of_friends_longer": "Populárne medzi ľudmi ktorých nasleduješ", "follow_suggestions.friends_of_friends_longer": "Populárne medzi ľudmi ktorých nasleduješ",
"follow_suggestions.hints.featured": "Tento profil bol ručne zvolený tímom domény {domain}.", "follow_suggestions.hints.featured": "Tento profil bol ručne zvolený tímom domény {domain}.",
"follow_suggestions.hints.friends_of_friends": "Tento profil je obľúbený medzi účtami, ktoré sledujete.", "follow_suggestions.hints.friends_of_friends": "Tento profil je obľúbený medzi účtami, ktoré sledujete.",
@ -452,6 +454,8 @@
"lists.delete": "Vymazať zoznam", "lists.delete": "Vymazať zoznam",
"lists.done": "Hotovo", "lists.done": "Hotovo",
"lists.edit": "Upraviť zoznam", "lists.edit": "Upraviť zoznam",
"lists.exclusive": "Skryť členov na Domovskej osi",
"lists.exclusive_hint": "Ak je niekto na tomto zozname, skry ich na tvojej Domácej osi, aby si ich príspevky nevidel/a dvakrát.",
"lists.find_users_to_add": "Nájdi užívateľov na pridanie", "lists.find_users_to_add": "Nájdi užívateľov na pridanie",
"lists.list_members": "Členovia zoznamu", "lists.list_members": "Členovia zoznamu",
"lists.list_name": "Názov zoznamu", "lists.list_name": "Názov zoznamu",
@ -465,6 +469,7 @@
"lists.replies_policy.none": "Nikomu", "lists.replies_policy.none": "Nikomu",
"lists.save": "Ulož", "lists.save": "Ulož",
"lists.search": "Hľadaj", "lists.search": "Hľadaj",
"lists.show_replies_to": "Zahrnúť odpovede od členov zoznamu na",
"load_pending": "{count, plural, one {# nová položka} few {# nové položky} many {# nových položiek} other {# nových položiek}}", "load_pending": "{count, plural, one {# nová položka} few {# nové položky} many {# nových položiek} other {# nových položiek}}",
"loading_indicator.label": "Načítavanie…", "loading_indicator.label": "Načítavanie…",
"media_gallery.hide": "Skryť", "media_gallery.hide": "Skryť",
@ -598,6 +603,7 @@
"onboarding.follows.done": "Hotovo", "onboarding.follows.done": "Hotovo",
"onboarding.follows.empty": "Žiaľ, momentálne sa nedajú zobraziť žiadne výsledky. Môžete skúsiť použiť vyhľadávanie alebo navštíviť stránku objavovania a nájsť ľudí, ktorých chcete sledovať, alebo to skúste znova neskôr.", "onboarding.follows.empty": "Žiaľ, momentálne sa nedajú zobraziť žiadne výsledky. Môžete skúsiť použiť vyhľadávanie alebo navštíviť stránku objavovania a nájsť ľudí, ktorých chcete sledovať, alebo to skúste znova neskôr.",
"onboarding.follows.search": "Hľadať", "onboarding.follows.search": "Hľadať",
"onboarding.follows.title": "Pre začiatok nasleduj ľudí",
"onboarding.profile.discoverable": "Nastavte svoj profil ako objaviteľný", "onboarding.profile.discoverable": "Nastavte svoj profil ako objaviteľný",
"onboarding.profile.discoverable_hint": "Keď si na Mastodone zapnete objaviteľnosť, vaše príspevky sa môžu zobrazovať vo výsledkoch vyhľadávania a v populárnych. Váš profil môže byť navyše navrhovaný ľuďom, s ktorými máte podobné záujmy.", "onboarding.profile.discoverable_hint": "Keď si na Mastodone zapnete objaviteľnosť, vaše príspevky sa môžu zobrazovať vo výsledkoch vyhľadávania a v populárnych. Váš profil môže byť navyše navrhovaný ľuďom, s ktorými máte podobné záujmy.",
"onboarding.profile.display_name": "Používateľské meno", "onboarding.profile.display_name": "Používateľské meno",

View file

@ -86,6 +86,13 @@
"alert.unexpected.message": "Ett oväntat fel uppstod.", "alert.unexpected.message": "Ett oväntat fel uppstod.",
"alert.unexpected.title": "Hoppsan!", "alert.unexpected.title": "Hoppsan!",
"alt_text_badge.title": "Alt-Text", "alt_text_badge.title": "Alt-Text",
"alt_text_modal.add_alt_text": "Lägg till alt-text",
"alt_text_modal.add_text_from_image": "Lägg till text från bild",
"alt_text_modal.cancel": "Avbryt",
"alt_text_modal.change_thumbnail": "Ändra miniatyr",
"alt_text_modal.describe_for_people_with_hearing_impairments": "Beskriv detta för personer med hörselnedsättning…",
"alt_text_modal.describe_for_people_with_visual_impairments": "Beskriv detta för personer med synnedsättning…",
"alt_text_modal.done": "Klar",
"announcement.announcement": "Meddelande", "announcement.announcement": "Meddelande",
"annual_report.summary.archetype.booster": "Häftighetsjägaren", "annual_report.summary.archetype.booster": "Häftighetsjägaren",
"annual_report.summary.archetype.lurker": "Smygaren", "annual_report.summary.archetype.lurker": "Smygaren",
@ -211,6 +218,7 @@
"confirmations.logout.confirm": "Logga ut", "confirmations.logout.confirm": "Logga ut",
"confirmations.logout.message": "Är du säker på att du vill logga ut?", "confirmations.logout.message": "Är du säker på att du vill logga ut?",
"confirmations.logout.title": "Logga ut?", "confirmations.logout.title": "Logga ut?",
"confirmations.missing_alt_text.confirm": "Lägg till alt-text",
"confirmations.mute.confirm": "Tysta", "confirmations.mute.confirm": "Tysta",
"confirmations.redraft.confirm": "Radera & gör om", "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.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.",
@ -220,7 +228,7 @@
"confirmations.reply.title": "Skriva över inlägget?", "confirmations.reply.title": "Skriva över inlägget?",
"confirmations.unfollow.confirm": "Avfölj", "confirmations.unfollow.confirm": "Avfölj",
"confirmations.unfollow.message": "Är du säker på att du vill avfölja {name}?", "confirmations.unfollow.message": "Är du säker på att du vill avfölja {name}?",
"confirmations.unfollow.title": "Avfölj %s?", "confirmations.unfollow.title": "Avfölj användare?",
"content_warning.hide": "Dölj inlägg", "content_warning.hide": "Dölj inlägg",
"content_warning.show": "Visa ändå", "content_warning.show": "Visa ändå",
"content_warning.show_more": "Visa mer", "content_warning.show_more": "Visa mer",
@ -407,6 +415,7 @@
"ignore_notifications_modal.not_followers_title": "Vill du ignorera aviseringar från personer som inte följer dig?", "ignore_notifications_modal.not_followers_title": "Vill du ignorera aviseringar från personer som inte följer dig?",
"ignore_notifications_modal.not_following_title": "Vill du blockera aviseringar från personer som du inte följer dig?", "ignore_notifications_modal.not_following_title": "Vill du blockera aviseringar från personer som du inte följer dig?",
"ignore_notifications_modal.private_mentions_title": "Vill du ignorera aviseringar från oombedda privata omnämnanden?", "ignore_notifications_modal.private_mentions_title": "Vill du ignorera aviseringar från oombedda privata omnämnanden?",
"info_button.label": "Hjälp",
"interaction_modal.action.favourite": "För att fortsätta, måste du favoritmarkera från ditt konto.", "interaction_modal.action.favourite": "För att fortsätta, måste du favoritmarkera från ditt konto.",
"interaction_modal.action.follow": "För att fortsätta, måste du följa från ditt konto.", "interaction_modal.action.follow": "För att fortsätta, måste du följa från ditt konto.",
"interaction_modal.action.reblog": "För att fortsätta, måste du boosta från ditt konto.", "interaction_modal.action.reblog": "För att fortsätta, måste du boosta från ditt konto.",

View file

@ -219,6 +219,7 @@
"confirmations.logout.message": "Ви впевнені, що хочете вийти?", "confirmations.logout.message": "Ви впевнені, що хочете вийти?",
"confirmations.logout.title": "Вийти?", "confirmations.logout.title": "Вийти?",
"confirmations.missing_alt_text.confirm": "Додати альтернативний текст", "confirmations.missing_alt_text.confirm": "Додати альтернативний текст",
"confirmations.missing_alt_text.message": "У вашому дописі є медіа без альтернативного тексту. Додавання опису допоможе зробити ваші матеріали доступними для більшої кількості людей.",
"confirmations.missing_alt_text.secondary": "Все одно опублікувати", "confirmations.missing_alt_text.secondary": "Все одно опублікувати",
"confirmations.missing_alt_text.title": "Додати альтернативний текст?", "confirmations.missing_alt_text.title": "Додати альтернативний текст?",
"confirmations.mute.confirm": "Приховати", "confirmations.mute.confirm": "Приховати",

View file

@ -218,6 +218,10 @@
"confirmations.logout.confirm": "Đăng xuất", "confirmations.logout.confirm": "Đăng xuất",
"confirmations.logout.message": "Bạn có chắc muốn thoát?", "confirmations.logout.message": "Bạn có chắc muốn thoát?",
"confirmations.logout.title": "Đăng xuất", "confirmations.logout.title": "Đăng xuất",
"confirmations.missing_alt_text.confirm": "Thêm văn bản thay thế",
"confirmations.missing_alt_text.message": "Tút của bạn chứa media không có văn bản thay thế. Thêm mô tả giúp nội dung của bạn dễ tiếp cận với nhiều người hơn.",
"confirmations.missing_alt_text.secondary": "Đăng luôn",
"confirmations.missing_alt_text.title": "Thêm văn bản thay thế?",
"confirmations.mute.confirm": "Ẩn", "confirmations.mute.confirm": "Ẩn",
"confirmations.redraft.confirm": "Xóa & viết lại", "confirmations.redraft.confirm": "Xóa & viết lại",
"confirmations.redraft.message": "Điều này sẽ khiến những lượt thích và đăng lại của tút bị mất, cũng như những trả lời sẽ không còn nội dung gốc.", "confirmations.redraft.message": "Điều này sẽ khiến những lượt thích và đăng lại của tút bị mất, cũng như những trả lời sẽ không còn nội dung gốc.",
@ -414,6 +418,8 @@
"ignore_notifications_modal.not_followers_title": "Bỏ qua thông báo từ những người chưa theo dõi bạn?", "ignore_notifications_modal.not_followers_title": "Bỏ qua thông báo từ những người chưa theo dõi bạn?",
"ignore_notifications_modal.not_following_title": "Bỏ qua thông báo từ những người bạn không theo dõi?", "ignore_notifications_modal.not_following_title": "Bỏ qua thông báo từ những người bạn không theo dõi?",
"ignore_notifications_modal.private_mentions_title": "Bỏ qua thông báo từ những lượt Nhắn Riêng không mong muốn?", "ignore_notifications_modal.private_mentions_title": "Bỏ qua thông báo từ những lượt Nhắn Riêng không mong muốn?",
"info_button.label": "Trợ giúp",
"info_button.what_is_alt_text": "<h1>Văn bản thay thế là gì?</h1> <p>Văn bản thay thế giúp mô tả hình ảnh cho những người khiếm thị, kết nối mạng chậm hoặc những người muốn biết ngữ cảnh bổ sung.</p> <p>Bạn có thể cải thiện khả năng tiếp cận và giải thích kỹ hơn cho mọi người bằng cách viết văn bản thay thế rõ ràng, ngắn gọn và khách quan.</p> <ul> <li>Nắm bắt thành phần quan trọng</li> <li>Tóm tắt văn bản trong hình</li> <li>Dùng cấu trúc câu đơn</li> <li>Tránh giải thích rối rắmn</li> <li>Tập trung vào các xu hướng và phát hiện chính trong hình ảnh phức tạp (như biểu đồ hoặc bản đồ)</li> </ul>",
"interaction_modal.action.favourite": "Để thích, bạn cần dùng tài khoản của bạn.", "interaction_modal.action.favourite": "Để thích, bạn cần dùng tài khoản của bạn.",
"interaction_modal.action.follow": "Để theo dõi, bạn cần dùng tài khoản của bạn.", "interaction_modal.action.follow": "Để theo dõi, bạn cần dùng tài khoản của bạn.",
"interaction_modal.action.reblog": "Để đăng lại, bạn cần dùng tài khoản của bạn.", "interaction_modal.action.reblog": "Để đăng lại, bạn cần dùng tài khoản của bạn.",

View file

@ -76,7 +76,7 @@ class Admin::SystemCheck::MediaPrivacyCheck < Admin::SystemCheck::BaseCheck
def media_attachment def media_attachment
@media_attachment ||= begin @media_attachment ||= begin
attachment = Account.representative.media_attachments.first attachment = Account.representative.media_attachments.take
if attachment.present? if attachment.present?
attachment.touch attachment.touch
attachment attachment

View file

@ -32,6 +32,15 @@ class FeedManager
"feed:#{type}:#{id}:#{subtype}" "feed:#{type}:#{id}:#{subtype}"
end end
# The number of items in the given timeline
# @param [Symbol] type
# @param [Integer] id
# @param [Symbol] subtype
# @return [Integer]
def timeline_size(type, id, subtype = nil)
redis.zcard(key(type, id, subtype))
end
# The filter result of the status to a particular feed # The filter result of the status to a particular feed
# @param [Symbol] timeline_type # @param [Symbol] timeline_type
# @param [Status] status # @param [Status] status
@ -42,7 +51,7 @@ class FeedManager
when :home when :home
filter_from_home(status, receiver.id, build_crutches(receiver.id, [status]), :home) filter_from_home(status, receiver.id, build_crutches(receiver.id, [status]), :home)
when :list when :list
(filter_from_list?(status, receiver) ? :filter : nil) || filter_from_home(status, receiver.account_id, build_crutches(receiver.account_id, [status]), :list, stl_home: stl_home) (filter_from_list?(status, receiver) ? :filter : nil) || filter_from_home(status, receiver.account_id, build_crutches(receiver.account_id, [status], list: receiver), :list, stl_home: stl_home)
when :mentions when :mentions
filter_from_mentions?(status, receiver.id) ? :filter : nil filter_from_mentions?(status, receiver.id) ? :filter : nil
when :tags when :tags
@ -136,7 +145,7 @@ class FeedManager
timeline_key = key(:home, into_account.id) timeline_key = key(:home, into_account.id)
aggregate = into_account.user&.aggregates_reblogs? aggregate = into_account.user&.aggregates_reblogs?
query = from_account.statuses.list_eligible_visibility.includes(:preloadable_poll, :media_attachments, reblog: :account).limit(FeedManager::MAX_ITEMS / 4) query = from_account.statuses.list_eligible_visibility.includes(reblog: :account).limit(FeedManager::MAX_ITEMS / 4)
if redis.zcard(timeline_key) >= FeedManager::MAX_ITEMS / 4 if redis.zcard(timeline_key) >= FeedManager::MAX_ITEMS / 4
oldest_home_score = redis.zrange(timeline_key, 0, 0, with_scores: true).first.last.to_i oldest_home_score = redis.zrange(timeline_key, 0, 0, with_scores: true).first.last.to_i
@ -164,7 +173,7 @@ class FeedManager
timeline_key = key(:list, list.id) timeline_key = key(:list, list.id)
aggregate = list.account.user&.aggregates_reblogs? aggregate = list.account.user&.aggregates_reblogs?
query = from_account.statuses.list_eligible_visibility.includes(:preloadable_poll, :media_attachments, reblog: :account).limit(FeedManager::MAX_ITEMS / 4) query = from_account.statuses.list_eligible_visibility.includes(reblog: :account).limit(FeedManager::MAX_ITEMS / 4)
if redis.zcard(timeline_key) >= FeedManager::MAX_ITEMS / 4 if redis.zcard(timeline_key) >= FeedManager::MAX_ITEMS / 4
oldest_home_score = redis.zrange(timeline_key, 0, 0, with_scores: true).first.last.to_i oldest_home_score = redis.zrange(timeline_key, 0, 0, with_scores: true).first.last.to_i
@ -172,10 +181,10 @@ class FeedManager
end end
statuses = query.to_a statuses = query.to_a
crutches = build_crutches(list.account_id, statuses) crutches = build_crutches(list.account_id, statuses, list: list)
statuses.each do |status| statuses.each do |status|
next if filter_from_home(status, list.account_id, crutches) || filter_from_list?(status, list) next if filter_from_home(status, list.account_id, crutches, :list)
add_to_feed(:list, list.id, status, aggregate_reblogs: aggregate) add_to_feed(:list, list.id, status, aggregate_reblogs: aggregate)
end end
@ -309,23 +318,32 @@ class FeedManager
limit = FeedManager::MAX_ITEMS / 2 limit = FeedManager::MAX_ITEMS / 2
aggregate = account.user&.aggregates_reblogs? aggregate = account.user&.aggregates_reblogs?
timeline_key = key(:home, account.id) timeline_key = key(:home, account.id)
over_limit = false
account.statuses.limit(limit).each do |status| account.statuses.limit(limit).each do |status|
add_to_feed(:home, account.id, status, aggregate_reblogs: aggregate) add_to_feed(:home, account.id, status, aggregate_reblogs: aggregate)
end end
account.following.includes(:account_stat).reorder(nil).find_each do |target_account| account.following.includes(:account_stat).reorder(nil).find_each do |target_account|
if redis.zcard(timeline_key) >= limit query = target_account.statuses.list_eligible_visibility.includes(reblog: :account).limit(limit)
over_limit ||= redis.zcard(timeline_key) >= limit
if over_limit
oldest_home_score = redis.zrange(timeline_key, 0, 0, with_scores: true).first.last.to_i oldest_home_score = redis.zrange(timeline_key, 0, 0, with_scores: true).first.last.to_i
last_status_score = Mastodon::Snowflake.id_at(target_account.last_status_at) last_status_score = Mastodon::Snowflake.id_at(target_account.last_status_at, with_random: false)
# If the feed is full and this account has not posted more recently # If the feed is full and this account has not posted more recently
# than the last item on the feed, then we can skip the whole account # than the last item on the feed, then we can skip the whole account
# because none of its statuses would stay on the feed anyway # because none of its statuses would stay on the feed anyway
next if last_status_score < oldest_home_score next if last_status_score < oldest_home_score
# No need to get older statuses
query = query.where(id: oldest_home_score...)
end end
statuses = target_account.statuses.list_eligible_visibility.includes(:preloadable_poll, :media_attachments, :account, reblog: :account).limit(limit) statuses = query.to_a
next if statuses.empty?
crutches = build_crutches(account.id, statuses) crutches = build_crutches(account.id, statuses)
statuses.each do |status| statuses.each do |status|
@ -345,23 +363,32 @@ class FeedManager
limit = FeedManager::MAX_ITEMS / 2 limit = FeedManager::MAX_ITEMS / 2
aggregate = list.account.user&.aggregates_reblogs? aggregate = list.account.user&.aggregates_reblogs?
timeline_key = key(:list, list.id) timeline_key = key(:list, list.id)
over_limit = false
list.active_accounts.includes(:account_stat).reorder(nil).find_each do |target_account| list.active_accounts.includes(:account_stat).reorder(nil).find_each do |target_account|
if redis.zcard(timeline_key) >= limit query = target_account.statuses.list_eligible_visibility.includes(reblog: :account).limit(limit)
over_limit ||= redis.zcard(timeline_key) >= limit
if over_limit
oldest_home_score = redis.zrange(timeline_key, 0, 0, with_scores: true).first.last.to_i oldest_home_score = redis.zrange(timeline_key, 0, 0, with_scores: true).first.last.to_i
last_status_score = Mastodon::Snowflake.id_at(target_account.last_status_at) last_status_score = Mastodon::Snowflake.id_at(target_account.last_status_at, with_random: false)
# If the feed is full and this account has not posted more recently # If the feed is full and this account has not posted more recently
# than the last item on the feed, then we can skip the whole account # than the last item on the feed, then we can skip the whole account
# because none of its statuses would stay on the feed anyway # because none of its statuses would stay on the feed anyway
next if last_status_score < oldest_home_score next if last_status_score < oldest_home_score
# No need to get older statuses
query = query.where(id: oldest_home_score...)
end end
statuses = target_account.statuses.list_eligible_visibility.includes(:preloadable_poll, :media_attachments, :account, reblog: :account).limit(limit) statuses = query.to_a
crutches = build_crutches(list.account_id, statuses) next if statuses.empty?
crutches = build_crutches(list.account_id, statuses, list: list)
statuses.each do |status| statuses.each do |status|
next if filter_from_home(status, list.account_id, crutches) || filter_from_list?(status, list) next if filter_from_home(status, list.account_id, crutches, :list)
add_to_feed(:list, list.id, status, aggregate_reblogs: aggregate) add_to_feed(:list, list.id, status, aggregate_reblogs: aggregate)
end end
@ -632,8 +659,9 @@ class FeedManager
# are going to be checked by the filtering methods # are going to be checked by the filtering methods
# @param [Integer] receiver_id # @param [Integer] receiver_id
# @param [Array<Status>] statuses # @param [Array<Status>] statuses
# @param [List] list
# @return [Hash] # @return [Hash]
def build_crutches(receiver_id, statuses) # rubocop:disable Metrics/AbcSize def build_crutches(receiver_id, statuses, list: nil)
crutches = {} crutches = {}
crutches[:active_mentions] = crutches_active_mentions(statuses) crutches[:active_mentions] = crutches_active_mentions(statuses)
@ -650,25 +678,43 @@ class FeedManager
arr arr
end end
lists = List.where(account_id: receiver_id, exclusive: true) crutches[:following] = crutches_following(receiver_id, statuses, list)
antennas = Antenna.where(list: lists, insert_feeds: true)
replied_accounts = statuses.filter_map(&:in_reply_to_account_id)
replied_accounts += statuses.filter { |status| status.limited_visibility? && status.thread.present? }.map { |status| status.thread.account_id }
crutches[:following] = Follow.where(account_id: receiver_id, target_account_id: replied_accounts).pluck(:target_account_id).index_with(true)
crutches[:languages] = Follow.where(account_id: receiver_id, target_account_id: statuses.map(&:account_id)).pluck(:target_account_id, :languages).to_h crutches[:languages] = Follow.where(account_id: receiver_id, target_account_id: statuses.map(&:account_id)).pluck(:target_account_id, :languages).to_h
crutches[:hiding_reblogs] = Follow.where(account_id: receiver_id, target_account_id: statuses.filter_map { |s| s.account_id if s.reblog? }, show_reblogs: false).pluck(:target_account_id).index_with(true) crutches[:hiding_reblogs] = Follow.where(account_id: receiver_id, target_account_id: statuses.filter_map { |s| s.account_id if s.reblog? }, show_reblogs: false).pluck(:target_account_id).index_with(true)
crutches[:blocking] = Block.where(account_id: receiver_id, target_account_id: check_for_blocks).pluck(:target_account_id).index_with(true) crutches[:blocking] = Block.where(account_id: receiver_id, target_account_id: check_for_blocks).pluck(:target_account_id).index_with(true)
crutches[:muting] = Mute.where(account_id: receiver_id, target_account_id: check_for_blocks).pluck(:target_account_id).index_with(true) crutches[:muting] = Mute.where(account_id: receiver_id, target_account_id: check_for_blocks).pluck(:target_account_id).index_with(true)
crutches[:domain_blocking] = AccountDomainBlock.where(account_id: receiver_id, domain: statuses.flat_map { |s| [s.account.domain, s.reblog&.account&.domain] }.compact).pluck(:domain).index_with(true) crutches[:domain_blocking] = AccountDomainBlock.where(account_id: receiver_id, domain: statuses.flat_map { |s| [s.account.domain, s.reblog&.account&.domain] }.compact).pluck(:domain).index_with(true)
crutches[:blocked_by] = Block.where(target_account_id: receiver_id, account_id: statuses.map { |s| [s.account_id, s.reblog&.account_id] }.flatten.compact).pluck(:account_id).index_with(true) crutches[:blocked_by] = Block.where(target_account_id: receiver_id, account_id: statuses.map { |s| [s.account_id, s.reblog&.account_id] }.flatten.compact).pluck(:account_id).index_with(true)
crutches[:exclusive_list_users] = ListAccount.where(list: lists, account_id: statuses.map(&:account_id)).pluck(:account_id).index_with(true) crutches[:exclusive_list_users] = crutches_exclusive_list_users(receiver_id, statuses) if list.blank?
crutches[:exclusive_antenna_users] = AntennaAccount.where(antenna: antennas, account_id: statuses.map(&:account_id)).pluck(:account_id).index_with(true) crutches[:exclusive_antenna_users] = crutches_exclusive_antenna_users(receiver_id, statuses)
crutches crutches
end end
def crutches_exclusive_list_users(recipient_id, statuses)
lists = List.where(account_id: recipient_id, exclusive: true)
ListAccount.where(list: lists, account_id: statuses.map(&:account_id)).pluck(:account_id).index_with(true)
end
def crutches_exclusive_antenna_users(recipient_id, statuses)
lists = List.where(account_id: recipient_id, exclusive: true)
antennas = Antenna.where(list: lists, insert_feeds: true)
AntennaAccount.where(antenna: antennas, account_id: statuses.map(&:account_id)).pluck(:account_id).index_with(true)
end
def crutches_following(recipient_id, statuses, list)
if list.blank? || list.show_followed?
replied_accounts = statuses.filter_map(&:in_reply_to_account_id)
replied_accounts += statuses.filter { |status| status.limited_visibility? && status.thread.present? }.map { |status| status.thread.account_id }
Follow.where(account_id: recipient_id, target_account_id: replied_accounts).pluck(:target_account_id).index_with(true)
elsif list.show_list?
ListAccount.where(list_id: list.id, account_id: statuses.filter_map(&:in_reply_to_account_id)).pluck(:account_id).index_with(true)
else
{}
end
end
def crutches_active_mentions(statuses) def crutches_active_mentions(statuses)
Mention Mention
.active .active

View file

@ -3,13 +3,21 @@
class PrecomputeFeedService < BaseService class PrecomputeFeedService < BaseService
include Redisable include Redisable
def call(account) def call(account, skip_filled_timelines: false)
FeedManager.instance.populate_home(account) @skip_filled_timelines = skip_filled_timelines
FeedManager.instance.populate_home(account) unless skip_timeline?(:home, account.id)
account.owned_lists.each do |list| account.owned_lists.each do |list|
FeedManager.instance.populate_list(list) FeedManager.instance.populate_list(list) unless skip_timeline?(:list, list.id)
end end
ensure ensure
redis.del("account:#{account.id}:regeneration") redis.del("account:#{account.id}:regeneration")
end end
private
def skip_timeline?(type, id)
@skip_filled_timelines && FeedManager.instance.timeline_size(type, id) * 2 > FeedManager::MAX_ITEMS
end
end end

View file

@ -2,6 +2,7 @@
if ENV['MASTODON_PROMETHEUS_EXPORTER_ENABLED'] == 'true' if ENV['MASTODON_PROMETHEUS_EXPORTER_ENABLED'] == 'true'
if ENV['MASTODON_PROMETHEUS_EXPORTER_LOCAL'] == 'true' if ENV['MASTODON_PROMETHEUS_EXPORTER_LOCAL'] == 'true'
require 'prometheus_exporter'
require 'prometheus_exporter/server' require 'prometheus_exporter/server'
require 'prometheus_exporter/client' require 'prometheus_exporter/client'

View file

@ -23,6 +23,8 @@ ru:
models: models:
account: account:
attributes: attributes:
fields:
fields_with_values_missing_labels: содержит значения с отсутствующими ключами
username: username:
invalid: только буквы, цифры и символ подчёркивания invalid: только буквы, цифры и символ подчёркивания
reserved: зарезервировано reserved: зарезервировано

View file

@ -1200,6 +1200,7 @@ bg:
too_fast: Образецът подаден пребързо, опитайте пак. too_fast: Образецът подаден пребързо, опитайте пак.
use_security_key: Употреба на ключ за сигурност use_security_key: Употреба на ключ за сигурност
user_agreement_html: Прочетох и се съгласявам с <a href="%{terms_of_service_path}" target="_blank">условията на услугата</a> и <a href="%{privacy_policy_path}" target="_blank">политиката за поверителност</a> user_agreement_html: Прочетох и се съгласявам с <a href="%{terms_of_service_path}" target="_blank">условията на услугата</a> и <a href="%{privacy_policy_path}" target="_blank">политиката за поверителност</a>
user_privacy_agreement_html: Прочетох и има съгласието ми за <a href="%{privacy_policy_path}" target="_blank">политиката за поверителност</a>
author_attribution: author_attribution:
example_title: Примерен текст example_title: Примерен текст
hint_html: Пишете ли новинарски статии или блогове извън Mastodon? Управлявайте как ви приписват авторството, когато са споделени в Mastodon. hint_html: Пишете ли новинарски статии или блогове извън Mastodon? Управлявайте как ви приписват авторството, когато са споделени в Mastodon.

View file

@ -948,6 +948,9 @@ ca:
preview: preview:
explanation_html: 'Aquest correu-e s''enviarà a <strong>%{display_count} usuaris</strong> que han signat abans de %{date}. S''hi inclourà aquest text:' explanation_html: 'Aquest correu-e s''enviarà a <strong>%{display_count} usuaris</strong> que han signat abans de %{date}. S''hi inclourà aquest text:'
send_preview: Envia una vista prèvia a %{email} send_preview: Envia una vista prèvia a %{email}
send_to_all:
one: Envia %{display_count} correu-e
other: Envia %{display_count} correus-e
title: Vista prèvia de la notificació de les condicions de servei title: Vista prèvia de la notificació de les condicions de servei
publish: Publica publish: Publica
published_on_html: Publicada el %{date} published_on_html: Publicada el %{date}
@ -1411,6 +1414,22 @@ ca:
merge_long: Mantenir els registres existents i afegir-ne de nous merge_long: Mantenir els registres existents i afegir-ne de nous
overwrite: Sobreescriu overwrite: Sobreescriu
overwrite_long: Reemplaça els registres actuals amb els nous overwrite_long: Reemplaça els registres actuals amb els nous
overwrite_preambles:
blocking_html:
one: Esteu a punt de <strong>reemplaçar la vostra llista de blocats</strong> amb fins a <strong>%{count} compte</strong> des de <strong>%{filename}</strong>.
other: Esteu a punt de <strong>reemplaçar la vostra llista de blocats</strong> amb fins a <strong>%{count} comptes</strong> des de <strong>%{filename}</strong>.
bookmarks_html:
one: Esteu a punt de <strong>reemplaçar els vostres marcadors</strong> amb fins a <strong>%{count} publicació</strong> des de <strong>%{filename}</strong>.
other: Esteu a punt de <strong>reemplaçar els vostres marcadors</strong> amb fins a <strong>%{count} publicacions</strong> des de <strong>%{filename}</strong>.
domain_blocking_html:
one: Esteu a punt de <strong>reemplaçar la vostra llista de dominis blocats</strong> amb fins a <strong>%{count} domini</strong> des de <strong>%{filename}</strong>.
other: Esteu a punt de <strong>reemplaçar la vostra llista de dominis blocats</strong> amb fins a <strong>%{count} dominis</strong> des de <strong>%{filename}</strong>.
following_html:
one: Esteu a punt de <strong>seguir</strong> fins a <strong>%{count} compte</strong> des de <strong>%{filename}</strong> i <strong>deixar de seguir la resta</strong>.
other: Esteu a punt de <strong>seguir</strong> fins a <strong>%{count} comptes</strong> des de <strong>%{filename}</strong> i <strong>deixar de seguir la resta</strong>.
lists_html:
one: Esteu a punt de <strong>reemplaçar les vostres llistes</strong> amb contactes de <strong>%{filename}</strong>. S'afegirà <strong>%{count} compte</strong> a les noves llistes.
other: Esteu a punt de <strong>reemplaçar les vostres llistes</strong> amb contactes de <strong>%{filename}</strong>. S'afegiran fins a <strong>%{count} comptes</strong> a les noves llistes.
preface: Pots importar algunes les dades que has exportat des d'un altre servidor, com ara el llistat de les persones que estàs seguint o bloquejant. preface: Pots importar algunes les dades que has exportat des d'un altre servidor, com ara el llistat de les persones que estàs seguint o bloquejant.
recent_imports: Importacions recents recent_imports: Importacions recents
states: states:

View file

@ -1285,6 +1285,7 @@ cy:
too_fast: Cafodd y ffurflen ei chyflwyno'n rhy gyflym, ceisiwch eto. too_fast: Cafodd y ffurflen ei chyflwyno'n rhy gyflym, ceisiwch eto.
use_security_key: Defnyddiwch allwedd diogelwch use_security_key: Defnyddiwch allwedd diogelwch
user_agreement_html: Rwyf wedi darllen ac yn cytuno i <a href="%{terms_of_service_path}" target="_blank">delerau gwasanaeth</a> a'r <a href="%{privacy_policy_path}" target="_blank">polisi preifatrwydd</a> user_agreement_html: Rwyf wedi darllen ac yn cytuno i <a href="%{terms_of_service_path}" target="_blank">delerau gwasanaeth</a> a'r <a href="%{privacy_policy_path}" target="_blank">polisi preifatrwydd</a>
user_privacy_agreement_html: Rwyf wedi darllen ac yn cytuno i'r <a href="%{privacy_policy_path}" target="_blank">polisi preifatrwydd</a>
author_attribution: author_attribution:
example_title: Testun enghreifftiol example_title: Testun enghreifftiol
hint_html: Ydych chi'n ysgrifennu erthyglau newyddion neu flog y tu allan i Mastodon? Rheolwch sut y byddwch yn cael eich cydnabod pan fyddan nhw'n cael eu rhannu ar Mastodon. hint_html: Ydych chi'n ysgrifennu erthyglau newyddion neu flog y tu allan i Mastodon? Rheolwch sut y byddwch yn cael eich cydnabod pan fyddan nhw'n cael eu rhannu ar Mastodon.

View file

@ -9,12 +9,12 @@ da:
accounts: accounts:
followers: followers:
one: Følger one: Følger
other: tilhængere other: Følgere
following: Følger following: Følger
instance_actor_flash: Denne konto er en virtuel aktør repræsenterende selve serveren og ikke en individuel bruger. Den anvendes til fællesformål og bør ikke suspenderes. instance_actor_flash: Denne konto er en virtuel aktør repræsenterende selve serveren og ikke en individuel bruger. Den anvendes til fællesformål og bør ikke suspenderes.
last_active: senest aktiv last_active: senest aktiv
link_verified_on: Ejerskab af dette link blev tjekket %{date} link_verified_on: Ejerskab af dette link blev tjekket %{date}
nothing_here: Der er intet hér! nothing_here: Der er intet her!
pin_errors: pin_errors:
following: Man skal allerede følge den person, man ønsker at støtte following: Man skal allerede følge den person, man ønsker at støtte
posts: posts:
@ -108,11 +108,11 @@ da:
not_subscribed: Abonnerer ikke not_subscribed: Abonnerer ikke
pending: Afventende vurdering pending: Afventende vurdering
perform_full_suspension: Suspendér perform_full_suspension: Suspendér
previous_strikes: Tidligere anmeldelser (strikes) previous_strikes: Tidligere anmeldelser
previous_strikes_description_html: previous_strikes_description_html:
one: Denne konto har <strong>en</strong> anmeldelse. one: Denne konto har <strong>en</strong> anmeldelse.
other: Denne konto har <strong>%{count}</strong> anmeldelser. other: Denne konto har <strong>%{count}</strong> anmeldelser.
promote: Fremhæv promote: Forfrem
protocol: Protokol protocol: Protokol
public: Offentlig public: Offentlig
push_subscription_expires: PuSH-abonnement udløber push_subscription_expires: PuSH-abonnement udløber
@ -123,9 +123,9 @@ da:
remote_suspension_irreversible: Denne kontos data er slettet permanent. remote_suspension_irreversible: Denne kontos data er slettet permanent.
remote_suspension_reversible_hint_html: Kontoen er suspenderet på den pågældende server, og kontodata fjernes fuldstændig pr. %{date}. Indtil da vil fjernserveren kunne foretage en komplet reetablering af kontoen. Ønskes alle kontodata fjernet straks, kan dette gøres nedenfor. remote_suspension_reversible_hint_html: Kontoen er suspenderet på den pågældende server, og kontodata fjernes fuldstændig pr. %{date}. Indtil da vil fjernserveren kunne foretage en komplet reetablering af kontoen. Ønskes alle kontodata fjernet straks, kan dette gøres nedenfor.
remove_avatar: Fjern profilbillede remove_avatar: Fjern profilbillede
remove_header: Fjern overskrift remove_header: Fjern banner
removed_avatar_msg: "%{username}s profilbillede fjernet" removed_avatar_msg: "%{username}s profilbillede fjernet"
removed_header_msg: "%{username}s overskriftsbillede fjernet" removed_header_msg: "%{username}s banner fjernet"
resend_confirmation: resend_confirmation:
already_confirmed: Denne bruger er allerede bekræftet already_confirmed: Denne bruger er allerede bekræftet
send: Gensend bekræftelseslink send: Gensend bekræftelseslink
@ -141,8 +141,8 @@ da:
security_measures: security_measures:
only_password: Kun adgangskode only_password: Kun adgangskode
password_and_2fa: Adgangskode og 2FA password_and_2fa: Adgangskode og 2FA
sensitive: Gennemtving sensitiv sensitive: Gennemtving følsom
sensitized: Markeret som sensitiv sensitized: Markeret som følsom
shared_inbox_url: Delt indbakke-URL shared_inbox_url: Delt indbakke-URL
show: show:
created_reports: Indsendte anmeldelser created_reports: Indsendte anmeldelser
@ -160,7 +160,7 @@ da:
unblock_email: Afblokér e-mailadresse unblock_email: Afblokér e-mailadresse
unblocked_email_msg: "%{username}s e-mail-adresse afblokeret" unblocked_email_msg: "%{username}s e-mail-adresse afblokeret"
unconfirmed_email: Ubekræftet e-mail unconfirmed_email: Ubekræftet e-mail
undo_sensitized: Fortryd gennemtving sensitiv undo_sensitized: Fortryd gennemtving-følsom
undo_silenced: Fortryd begrænsning undo_silenced: Fortryd begrænsning
undo_suspension: Fortryd suspendering undo_suspension: Fortryd suspendering
unsilenced_msg: "%{username}s kontobegrænsning er fjernet" unsilenced_msg: "%{username}s kontobegrænsning er fjernet"
@ -169,8 +169,8 @@ da:
username: Brugernavn username: Brugernavn
view_domain: Vis domæneoversigt view_domain: Vis domæneoversigt
warn: Advar warn: Advar
web: Web web: Net
whitelisted: Tilladt for federering whitelisted: Tilladt for føderation
action_logs: action_logs:
action_types: action_types:
approve_appeal: Godkend appel approve_appeal: Godkend appel
@ -225,8 +225,8 @@ da:
sensitive_account: Gennemtving sensitiv konto sensitive_account: Gennemtving sensitiv konto
silence_account: Begræns konto silence_account: Begræns konto
suspend_account: Suspendér konto suspend_account: Suspendér konto
unassigned_report: Fjer anmeldelsestildeling unassigned_report: Fjern anmeldelsestildeling
unblock_email_account: Afblokér e-mailadresse unblock_email_account: Fjern blokering af e-mailadresse
unsensitive_account: Fjern Gennemtving sensitiv konto unsensitive_account: Fjern Gennemtving sensitiv konto
unsilence_account: Fjern kontobegrænselse unsilence_account: Fjern kontobegrænselse
unsuspend_account: Afsuspendér konto unsuspend_account: Afsuspendér konto
@ -374,7 +374,7 @@ da:
other: "<strong>%{count}</strong> verserende anmeldelser" other: "<strong>%{count}</strong> verserende anmeldelser"
pending_tags_html: pending_tags_html:
one: "<strong>%{count}</strong> afventende hashtag" one: "<strong>%{count}</strong> afventende hashtag"
other: "<strong>%{count}</strong> afventende hashtags" other: "<strong>%{count}</strong> afventende etiketter"
pending_users_html: pending_users_html:
one: "<strong>%{count}</strong> afventende bruger" one: "<strong>%{count}</strong> afventende bruger"
other: "<strong>%{count}</strong> afventende brugere" other: "<strong>%{count}</strong> afventende brugere"
@ -735,7 +735,7 @@ da:
manage_settings: Håndtere indstillinger manage_settings: Håndtere indstillinger
manage_settings_description: Tillader brugere at ændre webstedsindstillinger manage_settings_description: Tillader brugere at ændre webstedsindstillinger
manage_taxonomies: Håndtere taksonomier manage_taxonomies: Håndtere taksonomier
manage_taxonomies_description: Tillader brugere at gennemse tenderende indhold og opdatere hashtag-indstillinger manage_taxonomies_description: Tillader brugere at gennemse tenderende indhold og opdatere etiket-indstillinger
manage_user_access: Håndtere brugeradgang manage_user_access: Håndtere brugeradgang
manage_user_access_description: Tillader brugere at deaktivere andre brugeres tofaktorgodkendelse, skifte deres e-mailadresse og nulstille deres adgangskode manage_user_access_description: Tillader brugere at deaktivere andre brugeres tofaktorgodkendelse, skifte deres e-mailadresse og nulstille deres adgangskode
manage_users: Håndtere brugere manage_users: Håndtere brugere
@ -925,7 +925,7 @@ da:
reset: Nulstil reset: Nulstil
review: Gennmgangsstatus review: Gennmgangsstatus
search: Søg search: Søg
title: Hashtags title: Etiketter
updated_msg: Hashtag-indstillinger opdateret updated_msg: Hashtag-indstillinger opdateret
terms_of_service: terms_of_service:
back: Tilbage til Tjenestevilkår back: Tilbage til Tjenestevilkår
@ -1014,14 +1014,14 @@ da:
tag_servers_dimension: Topservere tag_servers_dimension: Topservere
tag_servers_measure: forskellige servere tag_servers_measure: forskellige servere
tag_uses_measure: anvendelser i alt tag_uses_measure: anvendelser i alt
description_html: Disse er hashtags, som pt. vises i en masse indlæg, som serveren ser. Det kan hjælpe brugerne til at finde ud af, hvad folk taler mest om pt. Ingen hashtags vises offentligt, før man godkender dem. description_html: Disse er etiketter, som pt. vises i en masse indlæg, som serveren ser. Det kan hjælpe brugerne til at finde ud af, hvad folk taler mest om pt. Ingen etiketter vises offentligt, før man godkender dem.
listable: Kan foreslås listable: Kan foreslås
no_tag_selected: Intet tag ændret (da intet var valgt) no_tag_selected: Intet tag ændret (da intet var valgt)
not_listable: Foreslås ikke not_listable: Foreslås ikke
not_trendable: Vises ikke under tendenser not_trendable: Vises ikke under tendenser
not_usable: Kan ikke anvendes not_usable: Kan ikke anvendes
peaked_on_and_decaying: Toppede pr. %{date}, nu for nedadgående peaked_on_and_decaying: Toppede pr. %{date}, nu for nedadgående
title: Populære hashtags title: Populære etiketter
trendable: Kan vises under tendenser trendable: Kan vises under tendenser
trending_rank: 'Populær #%{rank}' trending_rank: 'Populær #%{rank}'
usable: Kan anvendes usable: Kan anvendes
@ -1093,7 +1093,7 @@ da:
new_trending_statuses: new_trending_statuses:
title: Populære opslag title: Populære opslag
new_trending_tags: new_trending_tags:
title: Populære hashtags title: Populære etiketter
subject: Nye tendenser klar til gennemgang på %{instance} subject: Nye tendenser klar til gennemgang på %{instance}
aliases: aliases:
add_new: Opret alias add_new: Opret alias
@ -1104,7 +1104,7 @@ da:
remove: Fjern aliaslinkning remove: Fjern aliaslinkning
appearance: appearance:
advanced_web_interface: Avanceret webgrænseflade advanced_web_interface: Avanceret webgrænseflade
advanced_web_interface_hint: 'Ønsker du udnytte hele skærmbredden, lader den avancerede webgrænseflade dig opsætte mange forskellige kolonner for at se så meget information på samme tid som ønsket: Hjem, notifikationer, federeret tidslinje, et hvilket som helst antal lister og hashtags.' advanced_web_interface_hint: 'Ønsker du udnytte hele skærmbredden, lader den avancerede netgrænseflade dig opsætte mange forskellige kolonner for at se så meget information på samme tid som ønsket: Hjem, notifikationer, fødereret tidslinje, et hvilket som helst antal lister og etiketter.'
animations_and_accessibility: Animationer og tilgængelighed animations_and_accessibility: Animationer og tilgængelighed
confirmation_dialogs: Bekræftelsesdialoger confirmation_dialogs: Bekræftelsesdialoger
discovery: Opdagelse discovery: Opdagelse
@ -1326,13 +1326,13 @@ da:
csv: CSV csv: CSV
domain_blocks: Domæneblokeringer domain_blocks: Domæneblokeringer
lists: Lister lists: Lister
mutes: Du tavsgør mutes: Du skjuler
storage: Medielagerplads storage: Medielagerplads
featured_tags: featured_tags:
add_new: Tilføj nyt add_new: Tilføj nyt
errors: errors:
limit: Det maksimale antal hashtags er allerede fremhævet limit: Det maksimale antal etiketter er allerede fremhævet
hint_html: "<strong>Hvad er fremhævede hashtags?</strong> De vises i en fremtrædende position på din offentlige profil og giver folk mulighed for at gennemse dine offentlige indlæg specifikt under disse hashtags. De er et fantastisk værktøj til at holde styr på kreative værker eller langsigtede projekter." hint_html: "<strong>Hvad er fremhævede etiketter?</strong> De vises i en fremtrædende position på din offentlige profil og giver folk mulighed for at gennemse dine offentlige indlæg specifikt under disse etiketter. De er et fantastisk værktøj til at holde styr på kreative værker eller langsigtede projekter."
filters: filters:
contexts: contexts:
account: Profiler account: Profiler
@ -1432,7 +1432,7 @@ da:
other: Man er ved at <strong>erstatte sine lister</strong> med indhold fra <strong>%{filename}</strong>. Op til <strong>%{count} konti</strong> føjes til nye lister. other: Man er ved at <strong>erstatte sine lister</strong> med indhold fra <strong>%{filename}</strong>. Op til <strong>%{count} konti</strong> føjes til nye lister.
muting_html: muting_html:
one: Man er ved at <strong>sin liste over en tavsgjort konto</strong> med <strong>%{count} konto</strong> fra <strong>%{filename}</strong>. one: Man er ved at <strong>sin liste over en tavsgjort konto</strong> med <strong>%{count} konto</strong> fra <strong>%{filename}</strong>.
other: Man er ved at <strong>sin liste over tavsgjorte konti</strong> med op til <strong>%{count} konti</strong> fra <strong>%{filename}</strong>. other: Du er ved at <strong>erstatte din liste over skjulte kontoer</strong> med op til <strong>%{count} kontoer</strong> fra <strong>%{filename}</strong>.
preambles: preambles:
blocking_html: blocking_html:
one: Man er ved at <strong>blokere</strong> <strong>%{count} konto</strong> fra <strong>%{filename}</strong>. one: Man er ved at <strong>blokere</strong> <strong>%{count} konto</strong> fra <strong>%{filename}</strong>.
@ -1451,7 +1451,7 @@ da:
other: Man er ved at tilføje <strong>%{count} konti</strong> fra <strong>%{filename}</strong> til sine <strong>lister</strong>. Nye lister oprettes, hvis der ikke findes nogen liste at tilføje til. other: Man er ved at tilføje <strong>%{count} konti</strong> fra <strong>%{filename}</strong> til sine <strong>lister</strong>. Nye lister oprettes, hvis der ikke findes nogen liste at tilføje til.
muting_html: muting_html:
one: Man er ved at <strong>tavsgøre</strong> <strong>%{count} konto</strong> fra <strong>%{filename}</strong>. one: Man er ved at <strong>tavsgøre</strong> <strong>%{count} konto</strong> fra <strong>%{filename}</strong>.
other: Man er ved at <strong>tavsgøre</strong> op til <strong>%{count} konto</strong> fra <strong>%{filename}</strong>. other: Du er ved at <strong>skjule</strong> op til <strong>%{count} kontoer</strong> fra <strong>%{filename}</strong>.
preface: Du kan importere data, du har eksporteret fra en anden server, såsom en liste over folk du følger eller blokerer. preface: Du kan importere data, du har eksporteret fra en anden server, såsom en liste over folk du følger eller blokerer.
recent_imports: Seneste importer recent_imports: Seneste importer
states: states:
@ -1468,11 +1468,11 @@ da:
domain_blocking: Importerer blokerede konti domain_blocking: Importerer blokerede konti
following: Importerer fulgte konti following: Importerer fulgte konti
lists: Import af lister lists: Import af lister
muting: Importerer tavsgjorte konti muting: Importerer skjulte kontoer
type: Importtype type: Importtype
type_groups: type_groups:
constructive: Følger og Bogmærker constructive: Følger og Bogmærker
destructive: Blokeringer og tavsgjorte destructive: Blokerede og skjulte kontoer
types: types:
blocking: Blokeringsliste blocking: Blokeringsliste
bookmarks: Bogmærker bookmarks: Bogmærker
@ -1529,7 +1529,7 @@ da:
follow: e-mailnotifikationer om nye følgere follow: e-mailnotifikationer om nye følgere
follow_request: e-mailnotifikationer om følgeanmodninger follow_request: e-mailnotifikationer om følgeanmodninger
mention: e-mailnotifikationer om omtaler mention: e-mailnotifikationer om omtaler
reblog: e-mailnotifikationer om boosts reblog: e-mailnotifikationer om fremhævelser
resubscribe_html: Har man afmeldt sig ved en fejl, kan man gentilmelde sig via <a href="%{settings_path}">indstillingerne E-mailnotifikationer</a>. resubscribe_html: Har man afmeldt sig ved en fejl, kan man gentilmelde sig via <a href="%{settings_path}">indstillingerne E-mailnotifikationer</a>.
success_html: Man vil ikke længere modtage %{type} for Mastodon på %{domain} til e-mailen %{email}. success_html: Man vil ikke længere modtage %{type} for Mastodon på %{domain} til e-mailen %{email}.
title: Opsig abonnement title: Opsig abonnement
@ -1574,7 +1574,7 @@ da:
title: Moderation title: Moderation
move_handler: move_handler:
carry_blocks_over_text: Denne bruger er flyttet fra %{acct}, som du har haft blokeret. carry_blocks_over_text: Denne bruger er flyttet fra %{acct}, som du har haft blokeret.
carry_mutes_over_text: Denne bruger er flyttet fra %{acct}, som du har haft tavsgjort. carry_mutes_over_text: Denne bruger er flyttet fra %{acct}, som du har haft skjult.
copy_account_note_text: 'Denne bruger er flyttet fra %{acct}, hvor dine tidligere noter om dem var:' copy_account_note_text: 'Denne bruger er flyttet fra %{acct}, hvor dine tidligere noter om dem var:'
navigation: navigation:
toggle_menu: Åbn/luk menu toggle_menu: Åbn/luk menu
@ -1605,9 +1605,9 @@ da:
poll: poll:
subject: En afstemning fra %{name} er afsluttet subject: En afstemning fra %{name} er afsluttet
reblog: reblog:
body: 'Dit indlæg blev boostet af %{name}:' body: 'Dit indlæg blev fremhævet af %{name}:'
subject: "%{name} boostede dit indlæg" subject: "%{name} fremhævede dit indlæg"
title: Nyt boost title: Ny fremhævelse
status: status:
subject: "%{name} har netop postet" subject: "%{name} har netop postet"
update: update:
@ -1704,7 +1704,7 @@ da:
content_warning: 'Indholdsadvarsel:' content_warning: 'Indholdsadvarsel:'
descriptions: descriptions:
account: Offentlige indlæg fra @%{acct} account: Offentlige indlæg fra @%{acct}
tag: 'Offentlige indlæg tagget #%{hashtag}' tag: 'Offentlige indlæg etiketteret #%{hashtag}'
scheduled_statuses: scheduled_statuses:
over_daily_limit: Den daglige grænse på %{limit} planlagte indlæg er nået over_daily_limit: Den daglige grænse på %{limit} planlagte indlæg er nået
over_total_limit: Grænsen på %{limit} planlagte indlæg er nået over_total_limit: Grænsen på %{limit} planlagte indlæg er nået
@ -1769,7 +1769,7 @@ da:
development: Udvikling development: Udvikling
edit_profile: Redigér profil edit_profile: Redigér profil
export: Eksport export: Eksport
featured_tags: Udvalgte hashtags featured_tags: Udvalgte etiketter
import: Import import: Import
import_and_export: Import og eksport import_and_export: Import og eksport
migrate: Kontomigrering migrate: Kontomigrering
@ -1805,12 +1805,12 @@ da:
video: video:
one: "%{count} video" one: "%{count} video"
other: "%{count} videoer" other: "%{count} videoer"
boosted_from_html: Boostet fra %{acct_link} boosted_from_html: Fremhævet fra %{acct_link}
content_warning: 'Indholdsadvarsel: %{warning}' content_warning: 'Indholdsadvarsel: %{warning}'
default_language: Samme som UI-sproget default_language: Samme som UI-sproget
disallowed_hashtags: disallowed_hashtags:
one: 'indeholdte et ikke tilladt hashtag: %{tags}' one: 'indeholdte en ikke tilladt etiket: %{tags}'
other: 'indeholdte de ikke tilladte hashtags: %{tags}' other: 'indeholdte de ikke tilladte etiketter: %{tags}'
edited_at_html: Redigeret %{date} edited_at_html: Redigeret %{date}
errors: errors:
in_reply_not_found: Indlægget, der forsøges besvaret, ser ikke ud til at eksistere. in_reply_not_found: Indlægget, der forsøges besvaret, ser ikke ud til at eksistere.
@ -1819,7 +1819,7 @@ da:
direct: Indlæg, som kun kan ses af omtalte brugere, kan ikke fastgøres direct: Indlæg, som kun kan ses af omtalte brugere, kan ikke fastgøres
limit: Maksimalt antal indlæg allerede fastgjort limit: Maksimalt antal indlæg allerede fastgjort
ownership: Andres indlæg kan ikke fastgøres ownership: Andres indlæg kan ikke fastgøres
reblog: Et boost kan ikke fastgøres reblog: En fremhævelse kan ikke fastgøres
title: '%{name}: "%{quote}"' title: '%{name}: "%{quote}"'
visibilities: visibilities:
direct: Direkte direct: Direkte
@ -1835,9 +1835,9 @@ da:
exceptions: Undtagelser exceptions: Undtagelser
explanation: Sletning af indlæg er en ressourcekrævende operation, hvorfor dette sker gradvist over tid, når serveren ellers ikke er optaget. Indlæg kan derfor blive slettet efter, at de reelt har passeret aldersgrænsen. explanation: Sletning af indlæg er en ressourcekrævende operation, hvorfor dette sker gradvist over tid, når serveren ellers ikke er optaget. Indlæg kan derfor blive slettet efter, at de reelt har passeret aldersgrænsen.
ignore_favs: Ignorér favoritter ignore_favs: Ignorér favoritter
ignore_reblogs: Ignorér boosts ignore_reblogs: Ignorér fremhævelser
interaction_exceptions: Undtagelser baseret på interaktioner interaction_exceptions: Undtagelser baseret på interaktioner
interaction_exceptions_explanation: Bemærk, at det ikke garanteres, at indlæg slettes, hvis de når under favorit- eller boost-tærsklerne efter én gang at været nået over dem. interaction_exceptions_explanation: Bemærk, at det ikke garanteres, at indlæg slettes, hvis de når under favorit- eller fremhævelses-tærsklerne efter én gang at været nået over dem.
keep_direct: Behold direkte besked keep_direct: Behold direkte besked
keep_direct_hint: Sletter ingen af dine direkte beskeder keep_direct_hint: Sletter ingen af dine direkte beskeder
keep_media: Behold indlæg med medievedhæftninger keep_media: Behold indlæg med medievedhæftninger
@ -1862,8 +1862,8 @@ da:
min_age_label: Alderstærskel min_age_label: Alderstærskel
min_favs: Behold indlæg favoritmarkeret mindst min_favs: Behold indlæg favoritmarkeret mindst
min_favs_hint: Sletter ingen egne indlæg, som har modtaget minimum dette antal favoritmarkeringer. Lad stå tomt for at slette indlæg uanset favoritmarkeringer min_favs_hint: Sletter ingen egne indlæg, som har modtaget minimum dette antal favoritmarkeringer. Lad stå tomt for at slette indlæg uanset favoritmarkeringer
min_reblogs: Behold indlæg boostet mindst min_reblogs: Behold indlæg fremhævet mindst
min_reblogs_hint: Sletter ingen egne indlæg, som er boostet flere end dette antal gange. Lad stå tomt for at ignorere denne tærskel under sletning min_reblogs_hint: Sletter ingen af egne indlæg, som er fremhævet flere end dette antal gange. Lad stå tomt for at ignorere denne tærskel under sletning
stream_entries: stream_entries:
sensitive_content: Sensitivt indhold sensitive_content: Sensitivt indhold
strikes: strikes:
@ -2003,8 +2003,8 @@ da:
one: "%{people} person de seneste 2 dage" one: "%{people} person de seneste 2 dage"
other: "%{people} personer de seneste 2 dage" other: "%{people} personer de seneste 2 dage"
hashtags_subtitle: Udforsk de seneste 2 dages tendenser hashtags_subtitle: Udforsk de seneste 2 dages tendenser
hashtags_title: Populære hashtags hashtags_title: Populære etiketter
hashtags_view_more: Se flere populære hashtags hashtags_view_more: Se flere populære etiketter
post_action: Skriv post_action: Skriv
post_step: Sig hej til verden med tekst, fotos, videoer eller afstemninger. post_step: Sig hej til verden med tekst, fotos, videoer eller afstemninger.
post_title: Opret det første indlæg post_title: Opret det første indlæg

View file

@ -130,11 +130,11 @@ da:
crypto: Ende-til-ende kryptering crypto: Ende-til-ende kryptering
favourites: Favoritter favourites: Favoritter
filters: Filtre filters: Filtre
follow: Følger, Tavsgør og Blokerer follow: Fulgte, skjjulte og blokerede kontoer
follows: Følger follows: Følger
lists: Lister lists: Lister
media: Medievedhæftninger media: Medievedhæftninger
mutes: Tavsgørelser mutes: Skjulte kontoer
notifications: Notifikationer notifications: Notifikationer
profile: Din Mastodon-profil profile: Din Mastodon-profil
push: Push-notifikationer push: Push-notifikationer
@ -177,7 +177,7 @@ da:
read:filters: se dine filtre read:filters: se dine filtre
read:follows: se dine følger read:follows: se dine følger
read:lists: se dine lister read:lists: se dine lister
read:mutes: se dine tavsgørelser read:mutes: se dine skjulte kontoer
read:notifications: se dine notifikationer read:notifications: se dine notifikationer
read:reports: se dine anmeldelser read:reports: se dine anmeldelser
read:search: søg på dine vegne read:search: søg på dine vegne
@ -186,13 +186,13 @@ da:
write:accounts: ændre din profil write:accounts: ændre din profil
write:blocks: blokere konti og domæner write:blocks: blokere konti og domæner
write:bookmarks: bogmærke indlæg write:bookmarks: bogmærke indlæg
write:conversations: tavsgøre og slette konversationer write:conversations: skjul og slet samtaler
write:favourites: favoritmarkere indlæg write:favourites: favoritmarkere indlæg
write:filters: oprette filtre write:filters: oprette filtre
write:follows: følge personer write:follows: følge personer
write:lists: oprette lister write:lists: oprette lister
write:media: uploade mediefiler write:media: uploade mediefiler
write:mutes: tavsgøre personer og konversationer write:mutes: skjul personer og samtaler
write:notifications: rydde dine notifikationer write:notifications: rydde dine notifikationer
write:reports: anmelde personer write:reports: anmelde personer
write:statuses: udgive indlæg write:statuses: udgive indlæg

View file

@ -191,7 +191,7 @@ eo:
write:filters: krei filtrilojn write:filters: krei filtrilojn
write:follows: sekvi homojn write:follows: sekvi homojn
write:lists: krei listojn write:lists: krei listojn
write:media: alŝuti plurmediojn write:media: alŝuti aŭdovidaĵojn
write:mutes: silentigi homojn kaj konversaciojn write:mutes: silentigi homojn kaj konversaciojn
write:notifications: forigi viajn sciigojn write:notifications: forigi viajn sciigojn
write:reports: signali aliajn homojn write:reports: signali aliajn homojn

View file

@ -363,7 +363,7 @@ eo:
dashboard: dashboard:
active_users: aktivaj uzantoj active_users: aktivaj uzantoj
interactions: interago interactions: interago
media_storage: Konservo de plurmedioj media_storage: Konservo de aŭdovidaĵoj
new_users: novaj uzantoj new_users: novaj uzantoj
opened_reports: raportoj malfermitaj opened_reports: raportoj malfermitaj
pending_appeals_html: pending_appeals_html:
@ -508,7 +508,7 @@ eo:
description_html: Vi povas difini enhavopolitikojn al la ĉiuj kontoj. description_html: Vi povas difini enhavopolitikojn al la ĉiuj kontoj.
limited_federation_mode_description_html: Vi povas elekti, ĉu permesi federacion kun tiu domajno. limited_federation_mode_description_html: Vi povas elekti, ĉu permesi federacion kun tiu domajno.
policies: policies:
reject_media: Malakcepti plurmediojn reject_media: Malakcepti la vidaŭdaĵojn
reject_reports: Malakcepti raportojn reject_reports: Malakcepti raportojn
silence: Kaŝu silence: Kaŝu
suspend: Suspendi suspend: Suspendi

View file

@ -1266,6 +1266,7 @@ ga:
too_fast: Cuireadh an fhoirm isteach róthapa, triail arís. too_fast: Cuireadh an fhoirm isteach róthapa, triail arís.
use_security_key: Úsáid eochair shlándála use_security_key: Úsáid eochair shlándála
user_agreement_html: Léigh mé agus aontaím leis na <a href="%{terms_of_service_path}" target="_blank">téarmaí seirbhíse</a> agus <a href="%{privacy_policy_path}" target="_blank">polasaí príobháideachais</a> user_agreement_html: Léigh mé agus aontaím leis na <a href="%{terms_of_service_path}" target="_blank">téarmaí seirbhíse</a> agus <a href="%{privacy_policy_path}" target="_blank">polasaí príobháideachais</a>
user_privacy_agreement_html: Léigh mé agus aontaím leis an <a href="%{privacy_policy_path}" target="_blank">polasaí príobháideachais</a>
author_attribution: author_attribution:
example_title: Téacs samplach example_title: Téacs samplach
hint_html: An bhfuil tú ag scríobh altanna nuachta nó blag lasmuigh de Mastodon? Rialú conas a gheobhaidh tú creidmheas nuair a roinntear iad ar Mastodon. hint_html: An bhfuil tú ag scríobh altanna nuachta nó blag lasmuigh de Mastodon? Rialú conas a gheobhaidh tú creidmheas nuair a roinntear iad ar Mastodon.

View file

@ -1209,6 +1209,7 @@ ia:
too_fast: Formulario inviate troppo rapidemente. Tenta lo de novo. too_fast: Formulario inviate troppo rapidemente. Tenta lo de novo.
use_security_key: Usar clave de securitate use_security_key: Usar clave de securitate
user_agreement_html: Io ha legite e accepta le <a href="%{terms_of_service_path}" target="_blank">conditiones de servicio</a> e le <a href="%{privacy_policy_path}" target="_blank">politica de confidentialitate</a> user_agreement_html: Io ha legite e accepta le <a href="%{terms_of_service_path}" target="_blank">conditiones de servicio</a> e le <a href="%{privacy_policy_path}" target="_blank">politica de confidentialitate</a>
user_privacy_agreement_html: Io ha legite e io accepta le <a href="%{privacy_policy_path}" target="_blank">politica de confidentialitate</a>
author_attribution: author_attribution:
example_title: Texto de exemplo example_title: Texto de exemplo
hint_html: Scribe tu articulos de novas o de blog foras de Mastodon? Controla le maniera in que tu recipe attribution quando on los condivide sur Mastodon. hint_html: Scribe tu articulos de novas o de blog foras de Mastodon? Controla le maniera in que tu recipe attribution quando on los condivide sur Mastodon.

View file

@ -1673,7 +1673,7 @@ ko:
over_total_limit: 예약 게시물 제한 %{limit}을 초과합니다 over_total_limit: 예약 게시물 제한 %{limit}을 초과합니다
too_soon: 미래의 날짜여야 합니다 too_soon: 미래의 날짜여야 합니다
self_destruct: self_destruct:
lead_html: 안타깝게도, <strong>%{domain}</strong> 도메인을 영구히 폐쇄합니다. 이곳의 계정을 가졌다면, 이제 이용할 수 없으며, 당분간 백업 데이터를 요청할 수 있습니다. lead_html: 안타깝게도, <strong>%{domain}</strong>은 영구적으로 폐쇄됩니다. 이곳의 계정을 가지고 있었다면, 이제 이용할 수 없지만 백업 데이터는 요청할 수 있습니다.
title: 이 서버는 폐쇄중입니다 title: 이 서버는 폐쇄중입니다
sessions: sessions:
activity: 최근 활동 activity: 최근 활동

View file

@ -1247,6 +1247,7 @@ pl:
too_fast: Zbyt szybko przesłano formularz, spróbuj ponownie. too_fast: Zbyt szybko przesłano formularz, spróbuj ponownie.
use_security_key: Użyj klucza bezpieczeństwa use_security_key: Użyj klucza bezpieczeństwa
user_agreement_html: Przeczytałem i akceptuję <a href="%{terms_of_service_path}" target="_blank">warunki korzystania z usługi</a> oraz <a href="%{privacy_policy_path}" target="_blank">politykę prywatności</a> user_agreement_html: Przeczytałem i akceptuję <a href="%{terms_of_service_path}" target="_blank">warunki korzystania z usługi</a> oraz <a href="%{privacy_policy_path}" target="_blank">politykę prywatności</a>
user_privacy_agreement_html: Przeczytałem/am/o i akceptuję <a href="%{privacy_policy_path}" target="_blank">politykę prywatności</a>
author_attribution: author_attribution:
example_title: Przykładowy tekst example_title: Przykładowy tekst
hint_html: Piszesz wiadomości albo bloga poza Mastodonem? Kontroluj jak będą ci przypisywane podczas dizielenia się nimi na Mastodonie. hint_html: Piszesz wiadomości albo bloga poza Mastodonem? Kontroluj jak będą ci przypisywane podczas dizielenia się nimi na Mastodonie.

View file

@ -1247,6 +1247,7 @@ ru:
too_fast: Форма отправлена слишком быстро, попробуйте еще раз. too_fast: Форма отправлена слишком быстро, попробуйте еще раз.
use_security_key: Использовать ключ безопасности use_security_key: Использовать ключ безопасности
user_agreement_html: Мной прочитаны и приняты<a href="%{terms_of_service_path}" target="_blank">пользовательское соглашение</a> и <a href="%{privacy_policy_path}" target="_blank">политика конфиденциальности</a> user_agreement_html: Мной прочитаны и приняты<a href="%{terms_of_service_path}" target="_blank">пользовательское соглашение</a> и <a href="%{privacy_policy_path}" target="_blank">политика конфиденциальности</a>
user_privacy_agreement_html: Мной прочитана и принята <a href="%{privacy_policy_path}" target="_blank">политика конфиденциальности</a>
author_attribution: author_attribution:
example_title: Образец текста example_title: Образец текста
hint_html: Публикуете ли вы свои статьи где-либо ещё кроме Mastodon? Если да, то ваше авторство может быть упомянуто, когда ими делятся в Mastodon. hint_html: Публикуете ли вы свои статьи где-либо ещё кроме Mastodon? Если да, то ваше авторство может быть упомянуто, когда ими делятся в Mastodon.

View file

@ -233,6 +233,7 @@ cs:
setting_display_media_show_all: Zobrazit vše setting_display_media_show_all: Zobrazit vše
setting_expand_spoilers: Vždy rozbalit příspěvky označené varováními o obsahu setting_expand_spoilers: Vždy rozbalit příspěvky označené varováními o obsahu
setting_hide_network: Skrýt mou síť setting_hide_network: Skrýt mou síť
setting_missing_alt_text_modal: Zobrazit potvrzovací dialog před odesláním médií bez alt textu
setting_reduce_motion: Omezit pohyb v animacích setting_reduce_motion: Omezit pohyb v animacích
setting_system_font_ui: Použít výchozí písmo systému setting_system_font_ui: Použít výchozí písmo systému
setting_system_scrollbars_ui: Použít výchozí posuvník systému setting_system_scrollbars_ui: Použít výchozí posuvník systému

View file

@ -3,6 +3,7 @@ cy:
simple_form: simple_form:
hints: hints:
account: account:
attribution_domains: Un i bob llinell. Yn amddiffyn rhag priodoli ffug.
discoverable: Mae'n bosibl y bydd eich postiadau cyhoeddus a'ch proffil yn cael sylw neu'n cael eu hargymell mewn gwahanol feysydd o Mastodon ac efallai y bydd eich proffil yn cael ei awgrymu i ddefnyddwyr eraill. discoverable: Mae'n bosibl y bydd eich postiadau cyhoeddus a'ch proffil yn cael sylw neu'n cael eu hargymell mewn gwahanol feysydd o Mastodon ac efallai y bydd eich proffil yn cael ei awgrymu i ddefnyddwyr eraill.
display_name: Eich enw llawn neu'ch enw hwyl. display_name: Eich enw llawn neu'ch enw hwyl.
fields: Eich tudalen cartref, rhagenwau, oed, neu unrhyw beth. fields: Eich tudalen cartref, rhagenwau, oed, neu unrhyw beth.
@ -155,6 +156,7 @@ cy:
url: I ble bydd digwyddiadau'n cael eu hanfon url: I ble bydd digwyddiadau'n cael eu hanfon
labels: labels:
account: account:
attribution_domains: Gwefannau sy'n cael caniatâd i'ch cydnabod chi
discoverable: Proffil nodwedd a phostiadau mewn algorithmau darganfod discoverable: Proffil nodwedd a phostiadau mewn algorithmau darganfod
fields: fields:
name: Label name: Label
@ -231,6 +233,7 @@ cy:
setting_display_media_show_all: Dangos popeth setting_display_media_show_all: Dangos popeth
setting_expand_spoilers: Dangos postiadau wedi'u marcio â rhybudd cynnwys bob tro setting_expand_spoilers: Dangos postiadau wedi'u marcio â rhybudd cynnwys bob tro
setting_hide_network: Cuddio eich graff cymdeithasol setting_hide_network: Cuddio eich graff cymdeithasol
setting_missing_alt_text_modal: Dangos deialog cadarnhau cyn postio cyfrwng heb destun amgen
setting_reduce_motion: Lleihau mudiant mewn animeiddiadau setting_reduce_motion: Lleihau mudiant mewn animeiddiadau
setting_system_font_ui: Defnyddio ffont rhagosodedig y system setting_system_font_ui: Defnyddio ffont rhagosodedig y system
setting_system_scrollbars_ui: Defnyddiwch far sgrolio rhagosodedig y system setting_system_scrollbars_ui: Defnyddiwch far sgrolio rhagosodedig y system

View file

@ -8,7 +8,7 @@ da:
display_name: Dit fulde navn eller dit sjove navn. display_name: Dit fulde navn eller dit sjove navn.
fields: Din hjemmeside, dine pronominer, din alder, eller hvad du har lyst til. fields: Din hjemmeside, dine pronominer, din alder, eller hvad du har lyst til.
indexable: Dine offentlige indlæg vil kunne vises i Mastodon-søgeresultater. Folk, som har interageret med dem, vil kunne finde dem uanset. indexable: Dine offentlige indlæg vil kunne vises i Mastodon-søgeresultater. Folk, som har interageret med dem, vil kunne finde dem uanset.
note: 'Du kan @omtale andre personer eller #hashtags.' note: 'Du kan @omtale andre personer eller #etiketter.'
show_collections: Folk vil ikke kunne tjekke dine Følger og Følgere. Folk, du selv følger, vil stadig kunne se dette. show_collections: Folk vil ikke kunne tjekke dine Følger og Følgere. Folk, du selv følger, vil stadig kunne se dette.
unlocked: Man vil kunne følges af folk uden først at godkende dem. Ønsker man at gennemgå Følg-anmodninger og individuelt acceptere/afvise nye følgere, så fjern markeringen. unlocked: Man vil kunne følges af folk uden først at godkende dem. Ønsker man at gennemgå Følg-anmodninger og individuelt acceptere/afvise nye følgere, så fjern markeringen.
account_alias: account_alias:
@ -16,7 +16,7 @@ da:
account_migration: account_migration:
acct: Angiv brugernavn@domain for den konto, hvortil du vil flytte acct: Angiv brugernavn@domain for den konto, hvortil du vil flytte
account_warning_preset: account_warning_preset:
text: Du kan bruge indlægssyntaks, såsom URL'er, hashtags og omtaler text: Du kan bruge indlægssyntaks, såsom URL'er, etiketter og omtaler
title: Valgfri. Ikke synlig for modtageren title: Valgfri. Ikke synlig for modtageren
admin_account_action: admin_account_action:
include_statuses: Brugeren vil se, hvilke indlæg, som har forårsaget modereringen/advarslen include_statuses: Brugeren vil se, hvilke indlæg, som har forårsaget modereringen/advarslen
@ -54,7 +54,7 @@ da:
password: Brug mindst 8 tegn password: Brug mindst 8 tegn
phrase: Matches uanset uanset brug af store/små bogstaver i teksten eller indholdsadvarsel for et indlæg phrase: Matches uanset uanset brug af store/små bogstaver i teksten eller indholdsadvarsel for et indlæg
scopes: De API'er, som applikationen vil kunne tilgå. Vælges en topniveaudstrækning, vil detailvalg være unødvendige. scopes: De API'er, som applikationen vil kunne tilgå. Vælges en topniveaudstrækning, vil detailvalg være unødvendige.
setting_aggregate_reblogs: Vis ikke nye boosts for nyligt boostede indlæg (påvirker kun nyligt modtagne boosts) setting_aggregate_reblogs: Vis ikke nye fremhævelser for nyligt fremhævede indlæg (påvirker kun nyligt modtagne fremhævelser)
setting_always_send_emails: Normalt sendes ingen e-mailnotifikationer under aktivt brug af Mastodon setting_always_send_emails: Normalt sendes ingen e-mailnotifikationer under aktivt brug af Mastodon
setting_default_sensitive: Sensitive medier er som standard skjult og kan vises med et klik setting_default_sensitive: Sensitive medier er som standard skjult og kan vises med et klik
setting_display_media_default: Skjul medier med sensitiv-markering setting_display_media_default: Skjul medier med sensitiv-markering
@ -71,7 +71,7 @@ da:
domain: Dette kan være domænenavnet vist i den benyttede i e-mailadresse eller MX-post. Begge tjekkes under tilmelding. domain: Dette kan være domænenavnet vist i den benyttede i e-mailadresse eller MX-post. Begge tjekkes under tilmelding.
with_dns_records: Et forsøg på at opløse det givne domænes DNS-poster foretages, og resultaterne blokeres ligeledes with_dns_records: Et forsøg på at opløse det givne domænes DNS-poster foretages, og resultaterne blokeres ligeledes
featured_tag: featured_tag:
name: 'Her er nogle af dine hyppigst brugte hashtags:' name: 'Her er nogle af dine hyppigst brugte etiketter:'
filters: filters:
action: Vælg handlingen til eksekvering, når et indlæg matcher filteret action: Vælg handlingen til eksekvering, når et indlæg matcher filteret
actions: actions:
@ -83,7 +83,7 @@ da:
backups_retention_period: Brugere har mulighed for at generere arkiver af deres indlæg til senere downloade. Når sat til positiv værdi, vil disse arkiver automatisk blive slettet fra lagerpladsen efter det angivne antal dage. backups_retention_period: Brugere har mulighed for at generere arkiver af deres indlæg til senere downloade. Når sat til positiv værdi, vil disse arkiver automatisk blive slettet fra lagerpladsen efter det angivne antal dage.
bootstrap_timeline_accounts: Disse konti fastgøres øverst på nye brugeres følg-anbefalinger. bootstrap_timeline_accounts: Disse konti fastgøres øverst på nye brugeres følg-anbefalinger.
closed_registrations_message: Vises, når tilmeldinger er lukket closed_registrations_message: Vises, når tilmeldinger er lukket
content_cache_retention_period: Alle indlæg fra andre servere (herunder boosts og besvarelser) slettes efter det angivne antal dage uden hensyn til lokal brugerinteraktion med disse indlæg. Dette omfatter indlæg, hvor en lokal bruger har markeret dem som bogmærker eller favoritter. Private omtaler mellem brugere fra forskellige instanser vil også være tabt og umulige at gendanne. Brugen af denne indstilling er beregnet til særlige formål instanser og bryder mange brugerforventninger ved implementering til almindelig brug. content_cache_retention_period: Alle indlæg fra andre servere (herunder fremhævelser og besvarelser) slettes efter det angivne antal dage uden hensyn til lokal brugerinteraktion med disse indlæg. Dette omfatter indlæg, hvor en lokal bruger har markeret dem som bogmærker eller favoritter. Private omtaler mellem brugere fra forskellige instanser vil også være tabt og umulige at gendanne. Brugen af denne indstilling er beregnet til særlige formål instanser og bryder mange brugerforventninger ved implementering til almindelig brug.
custom_css: Man kan anvende tilpassede stilarter på Mastodon-webversionen. custom_css: Man kan anvende tilpassede stilarter på Mastodon-webversionen.
favicon: WEBP, PNG, GIF eller JPG. Tilsidesætter standard Mastodon favikonet på mobilenheder med et tilpasset ikon. favicon: WEBP, PNG, GIF eller JPG. Tilsidesætter standard Mastodon favikonet på mobilenheder med et tilpasset ikon.
mascot: Tilsidesætter illustrationen i den avancerede webgrænseflade. mascot: Tilsidesætter illustrationen i den avancerede webgrænseflade.
@ -102,7 +102,7 @@ da:
thumbnail: Et ca. 2:1 billede vist sammen med serveroplysningerne. thumbnail: Et ca. 2:1 billede vist sammen med serveroplysningerne.
timeline_preview: Udloggede besøgende kan gennemse serverens seneste offentlige indlæg. timeline_preview: Udloggede besøgende kan gennemse serverens seneste offentlige indlæg.
trendable_by_default: Spring manuel gennemgang af trendindhold over. Individuelle elementer kan stadig fjernes fra trends efter kendsgerningen. trendable_by_default: Spring manuel gennemgang af trendindhold over. Individuelle elementer kan stadig fjernes fra trends efter kendsgerningen.
trends: Tendenser viser, hvilke indlæg, hashtags og nyheder opnår momentum på serveren. trends: Tendenser viser, hvilke indlæg, etiketter og nyheder opnår momentum på serveren.
trends_as_landing_page: Vis tendensindhold til udloggede brugere og besøgende i stedet for en beskrivelse af denne server. Kræver, at tendenser er aktiveret. trends_as_landing_page: Vis tendensindhold til udloggede brugere og besøgende i stedet for en beskrivelse af denne server. Kræver, at tendenser er aktiveret.
form_challenge: form_challenge:
current_password: Du bevæger dig ind på et sikkert område current_password: Du bevæger dig ind på et sikkert område
@ -217,10 +217,10 @@ da:
password: Adgangskode password: Adgangskode
phrase: Nøgleord/-sætning phrase: Nøgleord/-sætning
setting_advanced_layout: Aktivér avanceret webgrænseflade setting_advanced_layout: Aktivér avanceret webgrænseflade
setting_aggregate_reblogs: Gruppér boosts på tidslinjer setting_aggregate_reblogs: Gruppér fremhævelser på tidslinjer
setting_always_send_emails: Send altid e-mailnotifikationer setting_always_send_emails: Send altid e-mailnotifikationer
setting_auto_play_gif: Autoafspil animerede GIF'er setting_auto_play_gif: Autoafspil animerede GIF'er
setting_boost_modal: Vis bekræftelsesdialog inden boosting setting_boost_modal: Vis bekræftelsesdialog inden fremhævelse
setting_default_language: Sprog for indlæg setting_default_language: Sprog for indlæg
setting_default_privacy: Fortrolighed for indlæg setting_default_privacy: Fortrolighed for indlæg
setting_default_sensitive: Markér altid medier som sensitive setting_default_sensitive: Markér altid medier som sensitive
@ -311,7 +311,7 @@ da:
follow_request: Nogen anmodede om at følge dig follow_request: Nogen anmodede om at følge dig
mention: Nogen omtalte dig mention: Nogen omtalte dig
pending_account: Ny konto kræver gennemgang pending_account: Ny konto kræver gennemgang
reblog: Nogen boostede dit indlæg reblog: Nogen fremhævede dit indlæg
report: Ny anmeldelse indsendt report: Ny anmeldelse indsendt
software_updates: software_updates:
all: Notificér ved alle opdateringer all: Notificér ved alle opdateringer
@ -327,10 +327,10 @@ da:
indexable: Inkludér profilside i søgemaskiner indexable: Inkludér profilside i søgemaskiner
show_application: Vis, fra hvilken app et indlæg er sendt show_application: Vis, fra hvilken app et indlæg er sendt
tag: tag:
listable: Tillad visning af dette hashtag i søgninger og forslag listable: Tillad visning af denne etiket i søgninger og forslag
name: Hashtag name: Hashtag
trendable: Tillad visning af dette hashtag under trends trendable: Tillad visning af denne etiket under tendenser
usable: Tillad indlæg at benytte dette hashtag lokalt usable: Tillad indlæg at benytte denne etiket lokalt
terms_of_service: terms_of_service:
changelog: Hvad der er ændret? changelog: Hvad der er ændret?
text: Tjenestevilkår text: Tjenestevilkår

View file

@ -233,6 +233,7 @@ en-GB:
setting_display_media_show_all: Show all setting_display_media_show_all: Show all
setting_expand_spoilers: Always expand posts marked with content warnings setting_expand_spoilers: Always expand posts marked with content warnings
setting_hide_network: Hide your social graph setting_hide_network: Hide your social graph
setting_missing_alt_text_modal: Show confirmation dialogue before posting media without alt text
setting_reduce_motion: Reduce motion in animations setting_reduce_motion: Reduce motion in animations
setting_system_font_ui: Use system's default font setting_system_font_ui: Use system's default font
setting_system_scrollbars_ui: Use system's default scrollbar setting_system_scrollbars_ui: Use system's default scrollbar

View file

@ -56,10 +56,10 @@ eo:
scopes: Kiujn API-ojn la aplikaĵo permesiĝos atingi. Se vi elektas supran amplekson, vi ne bezonas elekti la individuajn. scopes: Kiujn API-ojn la aplikaĵo permesiĝos atingi. Se vi elektas supran amplekson, vi ne bezonas elekti la individuajn.
setting_aggregate_reblogs: Ne montri novajn plusendojn de mesaĝoj lastatempe plusenditaj (nur efikas al nove ricevitaj plusendoj) setting_aggregate_reblogs: Ne montri novajn plusendojn de mesaĝoj lastatempe plusenditaj (nur efikas al nove ricevitaj plusendoj)
setting_always_send_emails: Normale, la sciigoj per retpoŝto ne estos senditaj kiam vi uzas Mastodon aktive setting_always_send_emails: Normale, la sciigoj per retpoŝto ne estos senditaj kiam vi uzas Mastodon aktive
setting_default_sensitive: Tiklaj plurmedioj estas kaŝitaj implicite, kaj povas esti montritaj per klako setting_default_sensitive: Tiklaj vidaŭdaĵoj estas kaŝitaj implicite, kaj povas esti montritaj per klako
setting_display_media_default: Kaŝi plurmediojn markitajn kiel tiklaj setting_display_media_default: Kaŝi plurmediojn markitajn kiel tiklaj
setting_display_media_hide_all: Ĉiam kaŝi la plurmediojn setting_display_media_hide_all: Ĉiam kaŝi la vidaŭdaĵojn
setting_display_media_show_all: Ĉiam montri la plurmediojn setting_display_media_show_all: Ĉiam montri la vidaŭdaĵojn
setting_system_scrollbars_ui: Aplikas nur por surtablaj retumiloj baziĝas de Safari kaj Chrome setting_system_scrollbars_ui: Aplikas nur por surtablaj retumiloj baziĝas de Safari kaj Chrome
setting_use_blurhash: Transirojn estas bazita sur la koloroj de la kaŝitaj aŭdovidaĵoj sed ne montri iun ajn detalon setting_use_blurhash: Transirojn estas bazita sur la koloroj de la kaŝitaj aŭdovidaĵoj sed ne montri iun ajn detalon
setting_use_pending_items: Kaŝi tempoliniajn ĝisdatigojn malantaŭ klako anstataŭ aŭtomate rulumi la fluon setting_use_pending_items: Kaŝi tempoliniajn ĝisdatigojn malantaŭ klako anstataŭ aŭtomate rulumi la fluon
@ -223,11 +223,11 @@ eo:
setting_boost_modal: Montri konfirman fenestron antaŭ ol diskonigi mesaĝon setting_boost_modal: Montri konfirman fenestron antaŭ ol diskonigi mesaĝon
setting_default_language: Publikada lingvo setting_default_language: Publikada lingvo
setting_default_privacy: Privateco de afiŝado setting_default_privacy: Privateco de afiŝado
setting_default_sensitive: Ĉiam marki plurmediojn kiel tiklaj setting_default_sensitive: Ĉiam marki la vidaŭdaĵojn kiel tiklaj
setting_delete_modal: Montri konfirman fenestron antaŭ ol forigi mesaĝon setting_delete_modal: Montri konfirman fenestron antaŭ ol forigi mesaĝon
setting_disable_hover_cards: Malebligi profilan antaŭmontron kiam oni musumas setting_disable_hover_cards: Malebligi profilan antaŭmontron kiam oni musumas
setting_disable_swiping: Malebligi svingajn movojn setting_disable_swiping: Malebligi svingajn movojn
setting_display_media: Montrado de plurmedioj setting_display_media: Vidigo de vidaŭdaĵoj
setting_display_media_default: Implicita setting_display_media_default: Implicita
setting_display_media_hide_all: Kaŝi ĉiujn setting_display_media_hide_all: Kaŝi ĉiujn
setting_display_media_show_all: Montri ĉiujn setting_display_media_show_all: Montri ĉiujn

View file

@ -233,7 +233,7 @@ es-AR:
setting_display_media_show_all: Mostrar todo setting_display_media_show_all: Mostrar todo
setting_expand_spoilers: Siempre expandir los mensajes marcados con advertencias de contenido setting_expand_spoilers: Siempre expandir los mensajes marcados con advertencias de contenido
setting_hide_network: Ocultá tu gráfica social setting_hide_network: Ocultá tu gráfica social
setting_missing_alt_text_modal: Mostrar diálogo de confirmación antes de publicar medios sin texto alternativo setting_missing_alt_text_modal: Mostrar diálogo de confirmación antes de enviar medios sin texto alternativo
setting_reduce_motion: Reducir el movimiento de las animaciones setting_reduce_motion: Reducir el movimiento de las animaciones
setting_system_font_ui: Utilizar la tipografía predeterminada del sistema setting_system_font_ui: Utilizar la tipografía predeterminada del sistema
setting_system_scrollbars_ui: Usar la barra de desplazamiento predeterminada del sistema operativo setting_system_scrollbars_ui: Usar la barra de desplazamiento predeterminada del sistema operativo

View file

@ -233,6 +233,7 @@ fr-CA:
setting_display_media_show_all: Montrer tout setting_display_media_show_all: Montrer tout
setting_expand_spoilers: Toujours déplier les messages marqués dun avertissement de contenu setting_expand_spoilers: Toujours déplier les messages marqués dun avertissement de contenu
setting_hide_network: Cacher votre réseau setting_hide_network: Cacher votre réseau
setting_missing_alt_text_modal: Afficher une fenêtre de confirmation avant de poster un média sans texte alternatif
setting_reduce_motion: Réduire la vitesse des animations setting_reduce_motion: Réduire la vitesse des animations
setting_system_font_ui: Utiliser la police par défaut du système setting_system_font_ui: Utiliser la police par défaut du système
setting_system_scrollbars_ui: Utiliser la barre de défilement par défaut du système setting_system_scrollbars_ui: Utiliser la barre de défilement par défaut du système

View file

@ -233,6 +233,7 @@ fr:
setting_display_media_show_all: Montrer tout setting_display_media_show_all: Montrer tout
setting_expand_spoilers: Toujours déplier les messages marqués dun avertissement de contenu setting_expand_spoilers: Toujours déplier les messages marqués dun avertissement de contenu
setting_hide_network: Cacher votre réseau setting_hide_network: Cacher votre réseau
setting_missing_alt_text_modal: Afficher une fenêtre de confirmation avant de poster un média sans texte alternatif
setting_reduce_motion: Réduire la vitesse des animations setting_reduce_motion: Réduire la vitesse des animations
setting_system_font_ui: Utiliser la police par défaut du système setting_system_font_ui: Utiliser la police par défaut du système
setting_system_scrollbars_ui: Utiliser la barre de défilement par défaut du système setting_system_scrollbars_ui: Utiliser la barre de défilement par défaut du système

View file

@ -3,6 +3,7 @@ ga:
simple_form: simple_form:
hints: hints:
account: account:
attribution_domains: Ceann in aghaidh an líne. Cosnaíonn sé ó sannadh bréagach.
discoverable: Seans go mbeidh do phostálacha poiblí agus do phróifíl le feiceáil nó molta i réimsí éagsúla de Mastodon agus is féidir do phróifíl a mholadh dúsáideoirí eile. discoverable: Seans go mbeidh do phostálacha poiblí agus do phróifíl le feiceáil nó molta i réimsí éagsúla de Mastodon agus is féidir do phróifíl a mholadh dúsáideoirí eile.
display_name: D'ainm iomlán nó d'ainm spraoi. display_name: D'ainm iomlán nó d'ainm spraoi.
fields: Do leathanach baile, forainmneacha, aois, rud ar bith is mian leat. fields: Do leathanach baile, forainmneacha, aois, rud ar bith is mian leat.
@ -155,6 +156,7 @@ ga:
url: An áit a seolfar imeachtaí chuig url: An áit a seolfar imeachtaí chuig
labels: labels:
account: account:
attribution_domains: Tá cead ag suíomhanna Gréasáin creidmheas a thabhairt duit
discoverable: Próifíl gné agus postálacha in halgartaim fionnachtana discoverable: Próifíl gné agus postálacha in halgartaim fionnachtana
fields: fields:
name: Lipéad name: Lipéad
@ -231,6 +233,7 @@ ga:
setting_display_media_show_all: Taispeáin uile setting_display_media_show_all: Taispeáin uile
setting_expand_spoilers: Méadaigh postálacha atá marcáilte le rabhaidh inneachair i gcónaí setting_expand_spoilers: Méadaigh postálacha atá marcáilte le rabhaidh inneachair i gcónaí
setting_hide_network: Folaigh do ghraf sóisialta setting_hide_network: Folaigh do ghraf sóisialta
setting_missing_alt_text_modal: Taispeáin dialóg deimhnithe sula bpostálann tú meán gan alt téacs
setting_reduce_motion: Laghdú ar an tairiscint i beochan setting_reduce_motion: Laghdú ar an tairiscint i beochan
setting_system_font_ui: Úsáid cló réamhshocraithe an chórais setting_system_font_ui: Úsáid cló réamhshocraithe an chórais
setting_system_scrollbars_ui: Bain úsáid as scrollbharra réamhshocraithe an chórais setting_system_scrollbars_ui: Bain úsáid as scrollbharra réamhshocraithe an chórais

View file

@ -58,8 +58,8 @@ ia:
setting_always_send_emails: Normalmente, le notificationes de e-mail non es inviate quando tu activemente usa Mastodon setting_always_send_emails: Normalmente, le notificationes de e-mail non es inviate quando tu activemente usa Mastodon
setting_default_sensitive: Le medios sensibile es celate de ordinario e pote esser revelate con un clic setting_default_sensitive: Le medios sensibile es celate de ordinario e pote esser revelate con un clic
setting_display_media_default: Celar le medios marcate como sensibile setting_display_media_default: Celar le medios marcate como sensibile
setting_display_media_hide_all: Sempre celar le medios setting_display_media_hide_all: Sempre celar contento multimedial
setting_display_media_show_all: Sempre monstrar le medios setting_display_media_show_all: Sempre monstrar contento multimedial
setting_system_scrollbars_ui: Se applica solmente al navigatores de scriptorio basate sur Safari e Chrome setting_system_scrollbars_ui: Se applica solmente al navigatores de scriptorio basate sur Safari e Chrome
setting_use_blurhash: Le imagines degradate se basa sur le colores del visuales celate, ma illos offusca tote le detalios setting_use_blurhash: Le imagines degradate se basa sur le colores del visuales celate, ma illos offusca tote le detalios
setting_use_pending_items: Requirer un clic pro monstrar nove messages in vice de rolar automaticamente le fluxo setting_use_pending_items: Requirer un clic pro monstrar nove messages in vice de rolar automaticamente le fluxo
@ -233,6 +233,7 @@ ia:
setting_display_media_show_all: Monstrar toto setting_display_media_show_all: Monstrar toto
setting_expand_spoilers: Sempre expander messages marcate con avisos de contento setting_expand_spoilers: Sempre expander messages marcate con avisos de contento
setting_hide_network: Cela tu rete social setting_hide_network: Cela tu rete social
setting_missing_alt_text_modal: Monstrar un dialogo de confirmation ante de publicar multimedia sin texto alternative
setting_reduce_motion: Reducer movimento in animationes setting_reduce_motion: Reducer movimento in animationes
setting_system_font_ui: Usar typo de litteras predefinite del systema setting_system_font_ui: Usar typo de litteras predefinite del systema
setting_system_scrollbars_ui: Usar le barra de rolamento predefinite del systema setting_system_scrollbars_ui: Usar le barra de rolamento predefinite del systema

View file

@ -233,6 +233,7 @@ it:
setting_display_media_show_all: Mostra tutti setting_display_media_show_all: Mostra tutti
setting_expand_spoilers: Espandi sempre post con content warning setting_expand_spoilers: Espandi sempre post con content warning
setting_hide_network: Nascondi la tua rete setting_hide_network: Nascondi la tua rete
setting_missing_alt_text_modal: Chiedi di confermare prima di pubblicare media senza testo alternativo
setting_reduce_motion: Riduci movimento nelle animazioni setting_reduce_motion: Riduci movimento nelle animazioni
setting_system_font_ui: Usa il carattere predefinito del sistema setting_system_font_ui: Usa il carattere predefinito del sistema
setting_system_scrollbars_ui: Utilizza la barra di scorrimento predefinita del sistema setting_system_scrollbars_ui: Utilizza la barra di scorrimento predefinita del sistema

View file

@ -219,11 +219,11 @@ ko:
setting_aggregate_reblogs: 타임라인의 부스트를 그룹화 setting_aggregate_reblogs: 타임라인의 부스트를 그룹화
setting_always_send_emails: 항상 이메일 알림 보내기 setting_always_send_emails: 항상 이메일 알림 보내기
setting_auto_play_gif: 애니메이션 GIF를 자동 재생 setting_auto_play_gif: 애니메이션 GIF를 자동 재생
setting_boost_modal: 부스트 전 확인 창을 표시 setting_boost_modal: 부스트 전 확인창을 띄웁니다
setting_default_language: 게시물 언어 setting_default_language: 게시물 언어
setting_default_privacy: 게시물 프라이버시 setting_default_privacy: 게시물 프라이버시
setting_default_sensitive: 미디어를 언제나 민감한 콘텐츠로 설정 setting_default_sensitive: 미디어를 언제나 민감한 콘텐츠로 설정
setting_delete_modal: 게시물 삭제 전 확인 창을 표시 setting_delete_modal: 게시물 삭제 전 확인창을 띄웁니다
setting_disable_hover_cards: 호버시 프로필 미리보기를 비활성화 setting_disable_hover_cards: 호버시 프로필 미리보기를 비활성화
setting_disable_swiping: 스와이프 모션 비활성화 setting_disable_swiping: 스와이프 모션 비활성화
setting_display_media: 미디어 표시 setting_display_media: 미디어 표시
@ -232,6 +232,7 @@ ko:
setting_display_media_show_all: 모두 보이기 setting_display_media_show_all: 모두 보이기
setting_expand_spoilers: 내용 경고로 표시된 게시물을 항상 펼치기 setting_expand_spoilers: 내용 경고로 표시된 게시물을 항상 펼치기
setting_hide_network: 내 인맥 숨기기 setting_hide_network: 내 인맥 숨기기
setting_missing_alt_text_modal: 대체 텍스트 없이 미디어를 게시하려고 할 때 확인창을 띄웁니다
setting_reduce_motion: 애니메이션 줄이기 setting_reduce_motion: 애니메이션 줄이기
setting_system_font_ui: 시스템의 기본 글꼴을 사용 setting_system_font_ui: 시스템의 기본 글꼴을 사용
setting_system_scrollbars_ui: 시스템 기본 스크롤바 사용 setting_system_scrollbars_ui: 시스템 기본 스크롤바 사용

View file

@ -160,6 +160,7 @@ lt:
setting_display_media_show_all: Rodyti viską setting_display_media_show_all: Rodyti viską
setting_expand_spoilers: Visada išplėsti įrašus, pažymėtus turinio įspėjimais setting_expand_spoilers: Visada išplėsti įrašus, pažymėtus turinio įspėjimais
setting_hide_network: Slėpti savo socialinę diagramą setting_hide_network: Slėpti savo socialinę diagramą
setting_missing_alt_text_modal: Rodyti patvirtinimo dialogo langą prieš skelbiant mediją be alternatyvaus teksto.
setting_reduce_motion: Sumažinti judėjimą animacijose setting_reduce_motion: Sumažinti judėjimą animacijose
setting_system_font_ui: Naudoti numatytąjį sistemos šriftą setting_system_font_ui: Naudoti numatytąjį sistemos šriftą
setting_system_scrollbars_ui: Naudoti numatytąją sistemos slankjuostę setting_system_scrollbars_ui: Naudoti numatytąją sistemos slankjuostę

View file

@ -137,6 +137,10 @@ pl:
admin_email: Zawiadomienia prawne obejmują środki zapobiegawcze, nakazy sądowe, wnioski o popełnienie sprawy oraz wnioski organów ścigania. admin_email: Zawiadomienia prawne obejmują środki zapobiegawcze, nakazy sądowe, wnioski o popełnienie sprawy oraz wnioski organów ścigania.
arbitration_address: Może być taki sam jak adres fizyczny powyżej lub „N/A” jeśli używasz adresu e-mail arbitration_address: Może być taki sam jak adres fizyczny powyżej lub „N/A” jeśli używasz adresu e-mail
arbitration_website: Może być formularzem internetowym lub „N/A”, jeśli używasz adresu e-mail arbitration_website: Może być formularzem internetowym lub „N/A”, jeśli używasz adresu e-mail
dmca_address: W przypadku operatorów z USA należy użyć adresu zarejestrowanego w DMCA Designated Agent Directory. Lista skrytek pocztowych dostępna jest na bezpośrednią prośbę użytkownika. Użyj DMCA Agent Post Office Box Waiver Request, aby wysłać email do Copyright Office z informacją, że jesteś domowym administratorm treści i z powodu obawy o zemstę lub odwetu za swoje działania, musisz użyć skrytki pocztowej, żeby usunąć swój adres domowy z dostępu publicznego.
dmca_email: Adres email może być taki sam jak wcześniejszy "adres e-mail przeznaczony do celów prawnych"
domain: Unikalny numer identyfikacji świadczonej przez Ciebie usługi online.
jurisdiction: Wymień państwo, w którym mieszkają osoby płacące rachunki. Jeżeli jest to spółka lub inny zarejestrowany podmiot, w zależności od przypadku podaj państwo, w którym jest zarejestrowany, a także miasto, region czy województwo.
user: user:
chosen_languages: Jeżeli zaznaczone, tylko wpisy w wybranych językach będą wyświetlane na publicznych osiach czasu chosen_languages: Jeżeli zaznaczone, tylko wpisy w wybranych językach będą wyświetlane na publicznych osiach czasu
role: Rola kontroluje uprawnienia użytkownika. role: Rola kontroluje uprawnienia użytkownika.
@ -152,6 +156,7 @@ pl:
url: Dokąd będą wysłane zdarzenia url: Dokąd będą wysłane zdarzenia
labels: labels:
account: account:
attribution_domains: Strony które mogą ci przypisywać autorstwo
discoverable: Udostępniaj profil i wpisy funkcjom odkrywania discoverable: Udostępniaj profil i wpisy funkcjom odkrywania
fields: fields:
name: Nazwa name: Nazwa
@ -228,6 +233,7 @@ pl:
setting_display_media_show_all: Pokaż wszystko setting_display_media_show_all: Pokaż wszystko
setting_expand_spoilers: Zawsze rozwijaj wpisy oznaczone ostrzeżeniem o zawartości setting_expand_spoilers: Zawsze rozwijaj wpisy oznaczone ostrzeżeniem o zawartości
setting_hide_network: Ukryj swoją sieć setting_hide_network: Ukryj swoją sieć
setting_missing_alt_text_modal: Pokaż okno potwierdzenia przed opublikowaniem materiałów bez pomocniczego opisu obrazów
setting_reduce_motion: Ogranicz ruch w animacjach setting_reduce_motion: Ogranicz ruch w animacjach
setting_system_font_ui: Używaj domyślnej czcionki systemu setting_system_font_ui: Używaj domyślnej czcionki systemu
setting_system_scrollbars_ui: Używaj domyślnego paska przewijania systemu setting_system_scrollbars_ui: Używaj domyślnego paska przewijania systemu
@ -329,6 +335,7 @@ pl:
changelog: Co się zmieniło? changelog: Co się zmieniło?
text: Warunki korzystania z usługi text: Warunki korzystania z usługi
terms_of_service_generator: terms_of_service_generator:
admin_email: Adres e-mail przeznaczony do celów prawnych
arbitration_address: Adres fizyczny powiadomień arbitrażowych arbitration_address: Adres fizyczny powiadomień arbitrażowych
arbitration_website: Strona internetowa do składania zgłoszeń arbitrażowych arbitration_website: Strona internetowa do składania zgłoszeń arbitrażowych
dmca_address: Adres fizyczny dla zgłoszeń naruszenia DMCA/praw autorskich dmca_address: Adres fizyczny dla zgłoszeń naruszenia DMCA/praw autorskich

View file

@ -233,7 +233,7 @@ pt-PT:
setting_display_media_show_all: Mostrar todos setting_display_media_show_all: Mostrar todos
setting_expand_spoilers: Expandir sempre as publicações marcadas com avisos de conteúdo setting_expand_spoilers: Expandir sempre as publicações marcadas com avisos de conteúdo
setting_hide_network: Esconder a tua rede setting_hide_network: Esconder a tua rede
setting_missing_alt_text_modal: Mostrar janela de confirmação antes de publicar elementos gráficos sem texto alternativo setting_missing_alt_text_modal: Mostrar janela de confirmação antes de publicar multimédia sem texto alternativo
setting_reduce_motion: Reduzir movimento em animações setting_reduce_motion: Reduzir movimento em animações
setting_system_font_ui: Usar o tipo de letra padrão do sistema setting_system_font_ui: Usar o tipo de letra padrão do sistema
setting_system_scrollbars_ui: Utilizar a barra de deslocação predefinida do sistema setting_system_scrollbars_ui: Utilizar a barra de deslocação predefinida do sistema

View file

@ -3,6 +3,7 @@ ru:
simple_form: simple_form:
hints: hints:
account: account:
attribution_domains: По одному на строку. Защищает от ложных атрибуций.
discoverable: Ваши публичные сообщения и профиль могут быть показаны или рекомендованы в различных разделах Mastodon, и ваш профиль может быть предложен другим пользователям. discoverable: Ваши публичные сообщения и профиль могут быть показаны или рекомендованы в различных разделах Mastodon, и ваш профиль может быть предложен другим пользователям.
display_name: Ваше полное имя или псевдоним. display_name: Ваше полное имя или псевдоним.
fields: Ваша домашняя страница, местоимения, возраст - все, что угодно. fields: Ваша домашняя страница, местоимения, возраст - все, что угодно.
@ -155,6 +156,7 @@ ru:
url: Куда события будут отправляться url: Куда события будут отправляться
labels: labels:
account: account:
attribution_domains: Веб-сайты, которым разрешено ссылаться на вас
discoverable: Профиль и сообщения в алгоритмах обнаружения discoverable: Профиль и сообщения в алгоритмах обнаружения
fields: fields:
name: Пункт name: Пункт
@ -231,6 +233,7 @@ ru:
setting_display_media_show_all: Показывать все setting_display_media_show_all: Показывать все
setting_expand_spoilers: Всегда раскрывать посты, имеющие предупреждение о содержании setting_expand_spoilers: Всегда раскрывать посты, имеющие предупреждение о содержании
setting_hide_network: Скрыть свои связи setting_hide_network: Скрыть свои связи
setting_missing_alt_text_modal: Всегда спрашивать перед публикацией медиафайлов без альтернативного текста
setting_reduce_motion: Уменьшить движение в анимации setting_reduce_motion: Уменьшить движение в анимации
setting_system_font_ui: Использовать шрифт системы по умолчанию setting_system_font_ui: Использовать шрифт системы по умолчанию
setting_system_scrollbars_ui: Использовать системные полосы прокрутки setting_system_scrollbars_ui: Использовать системные полосы прокрутки

View file

@ -232,6 +232,7 @@ uk:
setting_display_media_show_all: Показати всі setting_display_media_show_all: Показати всі
setting_expand_spoilers: Завжди розгортати дописи з попередженнями про вміст setting_expand_spoilers: Завжди розгортати дописи з попередженнями про вміст
setting_hide_network: Сховати вашу мережу setting_hide_network: Сховати вашу мережу
setting_missing_alt_text_modal: Запитувати перед розміщенням медіа без альтернативного тексту
setting_reduce_motion: Менше руху в анімаціях setting_reduce_motion: Менше руху в анімаціях
setting_system_font_ui: Використовувати типовий системний шрифт setting_system_font_ui: Використовувати типовий системний шрифт
setting_system_scrollbars_ui: Використовувати системну панель гортання setting_system_scrollbars_ui: Використовувати системну панель гортання

View file

@ -233,6 +233,7 @@ vi:
setting_display_media_show_all: Hiện toàn bộ setting_display_media_show_all: Hiện toàn bộ
setting_expand_spoilers: Luôn mở rộng tút chứa nội dung ẩn setting_expand_spoilers: Luôn mở rộng tút chứa nội dung ẩn
setting_hide_network: Ẩn quan hệ của bạn setting_hide_network: Ẩn quan hệ của bạn
setting_missing_alt_text_modal: Hiện xác nhận trước khi đăng media không có văn bản thay thế
setting_reduce_motion: Giảm chuyển động ảnh GIF setting_reduce_motion: Giảm chuyển động ảnh GIF
setting_system_font_ui: Dùng phông chữ mặc định hệ thống setting_system_font_ui: Dùng phông chữ mặc định hệ thống
setting_system_scrollbars_ui: Dùng scrollbar mặc định hệ thống setting_system_scrollbars_ui: Dùng scrollbar mặc định hệ thống

View file

@ -391,6 +391,7 @@ sk:
email_domain_blocks: email_domain_blocks:
add_new: Pridaj nový add_new: Pridaj nový
allow_registrations_with_approval: Povoľ registrovanie so schválením allow_registrations_with_approval: Povoľ registrovanie so schválením
created_msg: Úspešne zablokovaná emailová doména
delete: Vymaž delete: Vymaž
dns: dns:
types: types:
@ -399,6 +400,7 @@ sk:
new: new:
create: Pridaj doménu create: Pridaj doménu
resolve: Preveď doménu resolve: Preveď doménu
title: Blokovať novú emailovú doménu
not_permitted: Nepovolená not_permitted: Nepovolená
resolved_through_html: Prevedená cez %{domain} resolved_through_html: Prevedená cez %{domain}
title: Blokované e-mailové domény title: Blokované e-mailové domény
@ -1365,6 +1367,7 @@ sk:
explanation: Tu nájdeš nejaké tipy do začiatku explanation: Tu nájdeš nejaké tipy do začiatku
feature_action: Zisti viac feature_action: Zisti viac
follow_action: Nasleduj follow_action: Nasleduj
follow_title: Prispôsob svoj domáci kanál
follows_title: Koho nasledovať follows_title: Koho nasledovať
post_title: Vytvor svoj prvý príspevok post_title: Vytvor svoj prvý príspevok
share_action: Zdieľaj share_action: Zdieľaj

View file

@ -1190,6 +1190,7 @@ vi:
too_fast: Nghi vấn đăng ký spam, xin thử lại. too_fast: Nghi vấn đăng ký spam, xin thử lại.
use_security_key: Dùng khóa bảo mật use_security_key: Dùng khóa bảo mật
user_agreement_html: Tôi đã đọc và đồng ý với <a href="%{terms_of_service_path}" target="_blank">điều khoản dịch vụ</a> và <a href="%{privacy_policy_path}" target="_blank">chính sách bảo mật</a> user_agreement_html: Tôi đã đọc và đồng ý với <a href="%{terms_of_service_path}" target="_blank">điều khoản dịch vụ</a> và <a href="%{privacy_policy_path}" target="_blank">chính sách bảo mật</a>
user_privacy_agreement_html: Tôi đã đọc và đồng ý <a href="%{privacy_policy_path}" target="_blank">chính sách bảo mật</a>
author_attribution: author_attribution:
example_title: Văn bản mẫu example_title: Văn bản mẫu
hint_html: Bạn là nhà báo hoặc blogger bên ngoài Mastodon? Kiểm soát cách bài viết của bạn được ghi nhận khi chia sẻ trên Mastodon. hint_html: Bạn là nhà báo hoặc blogger bên ngoài Mastodon? Kiểm soát cách bài viết của bạn được ghi nhận khi chia sẻ trên Mastodon.

View file

@ -13,8 +13,8 @@ default: &default
# ['app/assets', 'engine/foo/app/assets'] # ['app/assets', 'engine/foo/app/assets']
resolved_paths: [] resolved_paths: []
# Reload manifest.json on all requests so we reload latest compiled packs # Cache manifest.json for performance
cache_manifest: false cache_manifest: true
# Extract and emit a css file # Extract and emit a css file
extract_css: true extract_css: true
@ -55,6 +55,9 @@ development:
compile: true compile: true
# Reload manifest in development environment so we pick up changes
cache_manifest: false
# Reference: https://webpack.js.org/configuration/dev-server/ # Reference: https://webpack.js.org/configuration/dev-server/
dev_server: dev_server:
https: false https: false
@ -89,6 +92,3 @@ production:
# Production depends on precompilation of packs prior to booting for performance. # Production depends on precompilation of packs prior to booting for performance.
compile: false compile: false
# Cache manifest.json for performance
cache_manifest: true

View file

@ -0,0 +1,9 @@
# frozen_string_literal: true
class AddNewPublicIndexToStatuses < ActiveRecord::Migration[8.0]
disable_ddl_transaction!
def change
add_index :statuses, [:id, :language, :account_id], name: :index_statuses_public_20250210, algorithm: :concurrently, order: { id: :desc }, where: 'deleted_at IS NULL AND visibility IN (0, 10, 11) AND reblog_of_id IS NULL AND ((NOT reply) OR (in_reply_to_account_id = account_id))' # rubocop:disable Naming/VariableNumber
end
end

View file

@ -0,0 +1,9 @@
# frozen_string_literal: true
class RemoveOldPublicIndexToStatuses < ActiveRecord::Migration[8.0]
disable_ddl_transaction!
def change
remove_index :statuses, [:id, :account_id], name: :index_statuses_public_20231213, algorithm: :concurrently, order: { id: :desc }, where: 'deleted_at IS NULL AND visibility IN (0, 10, 11) AND reblog_of_id IS NULL AND ((NOT reply) OR (in_reply_to_account_id = account_id))' # rubocop:disable Naming/VariableNumber
end
end

View file

@ -1425,7 +1425,7 @@ ActiveRecord::Schema[8.0].define(version: 2025_01_30_232529) do
t.index ["conversation_id"], name: "index_statuses_on_conversation_id" t.index ["conversation_id"], name: "index_statuses_on_conversation_id"
t.index ["deleted_at"], name: "index_statuses_on_deleted_at", where: "(deleted_at IS NOT NULL)" t.index ["deleted_at"], name: "index_statuses_on_deleted_at", where: "(deleted_at IS NOT NULL)"
t.index ["id", "account_id"], name: "index_statuses_local_20231213", order: { id: :desc }, where: "((local OR (uri IS NULL)) AND (deleted_at IS NULL) AND (visibility = ANY (ARRAY[0, 10, 11])) AND (reblog_of_id IS NULL) AND ((NOT reply) OR (in_reply_to_account_id = account_id)))" t.index ["id", "account_id"], name: "index_statuses_local_20231213", order: { id: :desc }, where: "((local OR (uri IS NULL)) AND (deleted_at IS NULL) AND (visibility = ANY (ARRAY[0, 10, 11])) AND (reblog_of_id IS NULL) AND ((NOT reply) OR (in_reply_to_account_id = account_id)))"
t.index ["id", "account_id"], name: "index_statuses_public_20231213", order: { id: :desc }, where: "((deleted_at IS NULL) AND (visibility = ANY (ARRAY[0, 10, 11])) AND (reblog_of_id IS NULL) AND ((NOT reply) OR (in_reply_to_account_id = account_id)))" t.index ["id", "language", "account_id"], name: "index_statuses_public_20250210", order: { id: :desc }, where: "((deleted_at IS NULL) AND (visibility = ANY (ARRAY[0, 10, 11])) AND (reblog_of_id IS NULL) AND ((NOT reply) OR (in_reply_to_account_id = account_id)))"
t.index ["in_reply_to_account_id"], name: "index_statuses_on_in_reply_to_account_id", where: "(in_reply_to_account_id IS NOT NULL)" t.index ["in_reply_to_account_id"], name: "index_statuses_on_in_reply_to_account_id", where: "(in_reply_to_account_id IS NOT NULL)"
t.index ["in_reply_to_id"], name: "index_statuses_on_in_reply_to_id", where: "(in_reply_to_id IS NOT NULL)" t.index ["in_reply_to_id"], name: "index_statuses_on_in_reply_to_id", where: "(in_reply_to_id IS NOT NULL)"
t.index ["quote_of_id", "account_id"], name: "index_statuses_on_quote_of_id_and_account_id" t.index ["quote_of_id", "account_id"], name: "index_statuses_on_quote_of_id_and_account_id"

View file

@ -11,17 +11,21 @@ module Mastodon::CLI
option :concurrency, type: :numeric, default: 5, aliases: [:c] option :concurrency, type: :numeric, default: 5, aliases: [:c]
option :verbose, type: :boolean, aliases: [:v] option :verbose, type: :boolean, aliases: [:v]
option :dry_run, type: :boolean, default: false option :dry_run, type: :boolean, default: false
option :skip_filled_timelines
desc 'build [USERNAME]', 'Build home and list feeds for one or all users' desc 'build [USERNAME]', 'Build home and list feeds for one or all users'
long_desc <<-LONG_DESC long_desc <<-LONG_DESC
Build home and list feeds that are stored in Redis from the database. Build home and list feeds that are stored in Redis from the database.
With the --skip-filled-timelines, timelines which contain more than half
the maximum number of posts will be skipped.
With the --all option, all active users will be processed. With the --all option, all active users will be processed.
Otherwise, a single user specified by USERNAME. Otherwise, a single user specified by USERNAME.
LONG_DESC LONG_DESC
def build(username = nil) def build(username = nil)
if options[:all] || username.nil? if options[:all] || username.nil?
processed, = parallelize_with_progress(active_user_accounts) do |account| processed, = parallelize_with_progress(active_user_accounts) do |account|
PrecomputeFeedService.new.call(account) unless dry_run? PrecomputeFeedService.new.call(account, skip_filled_timelines: options[:skip_filled_timelines]) unless dry_run?
end end
say("Regenerated feeds for #{processed} accounts #{dry_run_mode_suffix}", :green, true) say("Regenerated feeds for #{processed} accounts #{dry_run_mode_suffix}", :green, true)
@ -30,7 +34,7 @@ module Mastodon::CLI
fail_with_message 'No such account' if account.nil? fail_with_message 'No such account' if account.nil?
PrecomputeFeedService.new.call(account) unless dry_run? PrecomputeFeedService.new.call(account, skip_filled_timelines: options[:skip_filled_timelines]) unless dry_run?
say("OK #{dry_run_mode_suffix}", :green, true) say("OK #{dry_run_mode_suffix}", :green, true)
else else

View file

@ -200,9 +200,9 @@ namespace :dangerous do
ActiveRecord::Base.connection.execute('UPDATE custom_filters SET action = 0 WHERE action = 2') ActiveRecord::Base.connection.execute('UPDATE custom_filters SET action = 0 WHERE action = 2')
ActiveRecord::Base.connection.execute('UPDATE account_warnings SET action = 1250 WHERE action = 1200') ActiveRecord::Base.connection.execute('UPDATE account_warnings SET action = 1250 WHERE action = 1200')
ActiveRecord::Base.connection.execute('CREATE INDEX IF NOT EXISTS index_statuses_local_20190824 ON statuses USING btree (id DESC, account_id) WHERE (local OR (uri IS NULL)) AND deleted_at IS NULL AND visibility = 0 AND reblog_of_id IS NULL AND ((NOT reply) OR (in_reply_to_account_id = account_id))') ActiveRecord::Base.connection.execute('CREATE INDEX IF NOT EXISTS index_statuses_local_20190824 ON statuses USING btree (id DESC, account_id) WHERE (local OR (uri IS NULL)) AND deleted_at IS NULL AND visibility = 0 AND reblog_of_id IS NULL AND ((NOT reply) OR (in_reply_to_account_id = account_id))')
ActiveRecord::Base.connection.execute('CREATE INDEX IF NOT EXISTS index_statuses_public_20200119 ON statuses USING btree (id DESC, account_id) WHERE deleted_at IS NULL AND visibility = 0 AND reblog_of_id IS NULL AND ((NOT reply) OR (in_reply_to_account_id = account_id))') ActiveRecord::Base.connection.execute('CREATE INDEX IF NOT EXISTS index_statuses_public_20250129 ON statuses USING btree (id DESC, language, account_id) WHERE deleted_at IS NULL AND visibility = 0 AND reblog_of_id IS NULL AND ((NOT reply) OR (in_reply_to_account_id = account_id))')
ActiveRecord::Base.connection.execute('DROP INDEX IF EXISTS index_statuses_local_20231213') ActiveRecord::Base.connection.execute('DROP INDEX IF EXISTS index_statuses_local_20231213')
ActiveRecord::Base.connection.execute('DROP INDEX IF EXISTS index_statuses_public_20231213') ActiveRecord::Base.connection.execute('DROP INDEX IF EXISTS index_statuses_public_20250210')
ActiveRecord::Base.connection.execute('ALTER TABLE ONLY custom_filter_keywords ALTER COLUMN whole_word SET DEFAULT true') ActiveRecord::Base.connection.execute('ALTER TABLE ONLY custom_filter_keywords ALTER COLUMN whole_word SET DEFAULT true')
prompt.ok 'Proceed' prompt.ok 'Proceed'

View file

@ -1,125 +0,0 @@
# frozen_string_literal: true
require 'rails_helper'
RSpec.describe Admin::ReportsController do
render_views
let(:user) { Fabricate(:admin_user) }
before do
sign_in user, scope: :user
end
describe 'GET #index' do
it 'returns http success with no filters' do
specified = Fabricate(:report, action_taken_at: nil, comment: 'First report')
other = Fabricate(:report, action_taken_at: Time.now.utc, comment: 'Second report')
get :index
expect(response).to have_http_status(200)
expect(response.body)
.to include(specified.comment)
.and not_include(other.comment)
end
it 'returns http success with resolved filter' do
specified = Fabricate(:report, action_taken_at: Time.now.utc, comment: 'First report')
other = Fabricate(:report, action_taken_at: nil, comment: 'Second report')
get :index, params: { resolved: '1' }
expect(response).to have_http_status(200)
expect(response.body)
.to include(specified.comment)
.and not_include(other.comment)
end
end
describe 'GET #show' do
it 'renders report' do
report = Fabricate(:report, comment: 'A big problem')
get :show, params: { id: report }
expect(response).to have_http_status(200)
expect(response.body)
.to include(report.comment)
end
describe 'account moderation notes' do
let(:report) { Fabricate(:report) }
it 'includes moderation notes' do
note1 = Fabricate(:report_note, report: report)
note2 = Fabricate(:report_note, report: report)
get :show, params: { id: report }
expect(response).to have_http_status(200)
report_notes = assigns(:report_notes).to_a
expect(report_notes.size).to be 2
expect(report_notes).to eq [note1, note2]
end
end
end
describe 'POST #resolve' do
it 'resolves the report' do
report = Fabricate(:report)
put :resolve, params: { id: report }
expect(response).to redirect_to(admin_reports_path)
report.reload
expect(report.action_taken_by_account).to eq user.account
expect(report.action_taken?).to be true
expect(last_action_log.target).to eq(report)
end
end
describe 'POST #reopen' do
it 'reopens the report' do
report = Fabricate(:report, action_taken_at: 3.days.ago)
put :reopen, params: { id: report }
expect(response).to redirect_to(admin_report_path(report))
report.reload
expect(report.action_taken_by_account).to be_nil
expect(report.action_taken?).to be false
expect(last_action_log.target).to eq(report)
end
end
describe 'POST #assign_to_self' do
it 'reopens the report' do
report = Fabricate(:report)
put :assign_to_self, params: { id: report }
expect(response).to redirect_to(admin_report_path(report))
report.reload
expect(report.assigned_account).to eq user.account
expect(last_action_log.target).to eq(report)
end
end
describe 'POST #unassign' do
it 'reopens the report' do
report = Fabricate(:report, assigned_account_id: Account.last.id)
put :unassign, params: { id: report }
expect(response).to redirect_to(admin_report_path(report))
report.reload
expect(report.assigned_account).to be_nil
expect(last_action_log.target).to eq(report)
end
end
private
def last_action_log
Admin::ActionLog.last
end
end

View file

@ -1,102 +0,0 @@
# frozen_string_literal: true
require 'rails_helper'
RSpec.describe Auth::PasswordsController do
include Devise::Test::ControllerHelpers
describe 'GET #new' do
it 'returns http success' do
request.env['devise.mapping'] = Devise.mappings[:user]
get :new
expect(response).to have_http_status(200)
end
end
describe 'GET #edit' do
let(:user) { Fabricate(:user) }
before do
request.env['devise.mapping'] = Devise.mappings[:user]
end
context 'with valid reset_password_token' do
it 'returns http success' do
token = user.send_reset_password_instructions
get :edit, params: { reset_password_token: token }
expect(response).to have_http_status(200)
end
end
context 'with invalid reset_password_token' do
it 'redirects to #new' do
get :edit, params: { reset_password_token: 'some_invalid_value' }
expect(response).to redirect_to subject.new_password_path(subject.send(:resource_name))
end
end
end
describe 'POST #update' do
let(:user) { Fabricate(:user) }
let(:password) { 'reset0password' }
before do
request.env['devise.mapping'] = Devise.mappings[:user]
end
context 'with valid reset_password_token' do
let!(:session_activation) { Fabricate(:session_activation, user: user) }
let!(:access_token) { Fabricate(:access_token, resource_owner_id: user.id) }
let!(:web_push_subscription) { Fabricate(:web_push_subscription, access_token: access_token) }
before do
token = user.send_reset_password_instructions
post :update, params: { user: { password: password, password_confirmation: password, reset_password_token: token } }
end
it 'resets the password' do
expect(response)
.to redirect_to '/auth/sign_in'
# Change password
expect(User.find(user.id))
.to be_present
.and be_valid_password(password)
# Deactivate session
expect(user.session_activations.count)
.to eq 0
expect { session_activation.reload }
.to raise_error(ActiveRecord::RecordNotFound)
# Revoke tokens
expect(Doorkeeper::AccessToken.active_for(user).count)
.to eq 0
# Remove push subs
expect(Web::PushSubscription.where(user: user).or(Web::PushSubscription.where(access_token: access_token)).count)
.to eq 0
expect { web_push_subscription.reload }
.to raise_error(ActiveRecord::RecordNotFound)
end
end
context 'with invalid reset_password_token' do
before do
post :update, params: { user: { password: password, password_confirmation: password, reset_password_token: 'some_invalid_value' } }
end
it 'renders reset password and retains password' do
expect(response)
.to render_template(:new)
expect(User.find(user.id))
.to be_present
.and be_external_or_valid_password(user.password)
end
end
end
end

View file

@ -40,15 +40,11 @@ RSpec.describe Api::RateLimitHeaders do
end end
end end
it 'applies rate limiting limit header' do it 'provides rate limit information in headers' do
expect(response.headers['X-RateLimit-Limit']).to eq '100' expect(response.headers['X-RateLimit-Limit']).to eq '100'
end
it 'applies rate limiting remaining header' do
expect(response.headers['X-RateLimit-Remaining']).to eq '80' expect(response.headers['X-RateLimit-Remaining']).to eq '80'
end
it 'applies rate limiting reset header' do
expect(response.headers['X-RateLimit-Reset']).to eq (start_time + 10.seconds).iso8601(6) expect(response.headers['X-RateLimit-Reset']).to eq (start_time + 10.seconds).iso8601(6)
end end
end end

View file

@ -23,11 +23,9 @@ RSpec.describe Filters::StatusesController do
get :index, params: { filter_id: filter } get :index, params: { filter_id: filter }
end end
it 'returns http success' do it 'returns http success and private cache control headers' do
expect(response).to have_http_status(200) expect(response).to have_http_status(200)
end
it 'returns private cache control headers' do
expect(response.headers['Cache-Control']).to include('private, no-store') expect(response.headers['Cache-Control']).to include('private, no-store')
end end
end end

View file

@ -14,11 +14,9 @@ RSpec.describe RelationshipsController do
get :show, params: { page: 2, relationship: 'followed_by' } get :show, params: { page: 2, relationship: 'followed_by' }
end end
it 'returns http success' do it 'returns http success and private cache control headers' do
expect(response).to have_http_status(200) expect(response).to have_http_status(200)
end
it 'returns private cache control headers' do
expect(response.headers['Cache-Control']).to include('private, no-store') expect(response.headers['Cache-Control']).to include('private, no-store')
end end
end end

View file

@ -3,7 +3,7 @@
if defined?(Flatware) if defined?(Flatware)
Flatware.configure do |config| Flatware.configure do |config|
config.after_fork do |test_env_number| config.after_fork do |test_env_number|
unless ENV.fetch('DISABLE_SIMPLECOV', nil) == 'true' if ENV.fetch('COVERAGE', false)
require 'simplecov' require 'simplecov'
SimpleCov.at_fork.call(test_env_number) # Combines parallel coverage results SimpleCov.at_fork.call(test_env_number) # Combines parallel coverage results
end end

View file

@ -233,6 +233,28 @@ RSpec.describe FeedManager do
end end
end end
context 'with list feed' do
let(:list) { Fabricate(:list, account: bob) }
before do
bob.follow!(alice)
list.list_accounts.create!(account: alice)
end
it "returns false for followee's status" do
status = Fabricate(:status, text: 'Hello world', account: alice)
expect(subject.filter?(:list, status, list)).to be false
end
it 'returns false for reblog by followee' do
status = Fabricate(:status, text: 'Hello world', account: jeff)
reblog = Fabricate(:status, reblog: status, account: alice)
expect(subject.filter?(:list, reblog, list)).to be false
end
end
context 'with mentions feed' do context 'with mentions feed' do
it 'returns true for status that mentions blocked account' do it 'returns true for status that mentions blocked account' do
bob.block!(jeff) bob.block!(jeff)

View file

@ -2,7 +2,7 @@
ENV['RAILS_ENV'] ||= 'test' ENV['RAILS_ENV'] ||= 'test'
unless ENV['DISABLE_SIMPLECOV'] == 'true' if ENV.fetch('COVERAGE', false)
require 'simplecov' require 'simplecov'
SimpleCov.start 'rails' do SimpleCov.start 'rails' do

View file

@ -0,0 +1,34 @@
# frozen_string_literal: true
require 'rails_helper'
RSpec.describe 'Auth Passwords' do
describe 'GET /auth/password/edit' do
context 'with invalid reset_password_token' do
it 'redirects to #new' do
get edit_user_password_path, params: { reset_password_token: 'some_invalid_value' }
expect(response)
.to redirect_to new_user_password_path
end
end
end
describe 'PUT /auth/password' do
let(:user) { Fabricate(:user) }
let(:password) { 'reset0password' }
context 'with invalid reset_password_token' do
it 'renders reset password and retains password' do
put user_password_path, params: { user: { password: password, password_confirmation: password, reset_password_token: 'some_invalid_value' } }
expect(response.body)
.to include(I18n.t('auth.set_new_password'))
expect(User.find(user.id))
.to be_present
.and be_external_or_valid_password(user.password)
end
end
end
end

Some files were not shown because too many files have changed in this diff Show more