~cytrogen/masto-fe

9af24835f6f7ecc6e71c9767562d78bd4d90dcac — Claire 2 years ago ebd2017 + 967bd54
Merge pull request #2434 from ClearlyClaire/glitch-soc/merge-upstream

Merge upstream changes up to 640421f661ee4d7e76a2aab607e7b15687940b6f
157 files changed, 2201 insertions(+), 1980 deletions(-)

D .bundler-audit.yml
M .devcontainer/docker-compose.yml
M .github/workflows/test-ruby.yml
M .gitignore
M .haml-lint_todo.yml
M .nvmrc
M .prettierignore
M .rubocop.yml
M .rubocop_todo.yml
D Capfile
M Dockerfile
M Gemfile
M Gemfile.lock
M SECURITY.md
M app/controllers/about_controller.rb
M app/controllers/auth/registrations_controller.rb
M app/controllers/auth/sessions_controller.rb
M app/controllers/concerns/account_controller_concern.rb
M app/controllers/concerns/web_app_controller_concern.rb
M app/controllers/follower_accounts_controller.rb
M app/controllers/following_accounts_controller.rb
M app/controllers/home_controller.rb
M app/controllers/privacy_controller.rb
M app/controllers/statuses_controller.rb
M app/controllers/tags_controller.rb
A app/helpers/admin/announcements_helper.rb
A app/helpers/invites_helper.rb
M app/helpers/languages_helper.rb
M app/helpers/mascot_helper.rb
M app/helpers/routing_helper.rb
M app/helpers/settings_helper.rb
M app/javascript/flavours/glitch/components/admin/Retention.jsx
M app/javascript/flavours/glitch/components/scrollable_list.jsx
M app/javascript/flavours/glitch/features/home_timeline/index.jsx
M app/javascript/flavours/glitch/features/ui/components/link_footer.jsx
M app/javascript/flavours/glitch/styles/components/about.scss
M app/javascript/mastodon/actions/search.js
M app/javascript/mastodon/components/__tests__/hashtag_bar.tsx
M app/javascript/mastodon/components/admin/Retention.jsx
M app/javascript/mastodon/components/column.jsx
M app/javascript/mastodon/components/hashtag_bar.tsx
M app/javascript/mastodon/components/scrollable_list.jsx
M app/javascript/mastodon/features/explore/index.jsx
M app/javascript/mastodon/features/explore/links.jsx
M app/javascript/mastodon/features/explore/results.jsx
M app/javascript/mastodon/features/explore/suggestions.jsx
M app/javascript/mastodon/features/explore/tags.jsx
M app/javascript/mastodon/features/firehose/index.jsx
M app/javascript/mastodon/features/home_timeline/index.jsx
M app/javascript/mastodon/features/ui/components/link_footer.jsx
M app/javascript/mastodon/locales/bn.json
M app/javascript/mastodon/locales/de.json
M app/javascript/mastodon/locales/fa.json
M app/javascript/mastodon/locales/fi.json
M app/javascript/mastodon/locales/fr-QC.json
M app/javascript/mastodon/locales/hy.json
M app/javascript/mastodon/locales/ja.json
M app/javascript/mastodon/locales/lv.json
M app/javascript/mastodon/locales/ms.json
M app/javascript/mastodon/locales/ru.json
M app/javascript/mastodon/locales/si.json
M app/javascript/mastodon/locales/sk.json
M app/javascript/mastodon/locales/sr-Latn.json
M app/javascript/mastodon/locales/sr.json
M app/javascript/mastodon/locales/zh-TW.json
M app/javascript/styles/mastodon/components.scss
M app/lib/account_statuses_filter.rb
M app/lib/activitypub/case_transform.rb
M app/lib/admin/metrics/dimension/software_versions_dimension.rb
M app/lib/admin/metrics/dimension/space_usage_dimension.rb
M app/lib/admin/system_check/elasticsearch_check.rb
M app/lib/importer/base_importer.rb
M app/models/account.rb
M app/models/admin/action_log_filter.rb
M app/models/form/import.rb
M app/models/relationship_filter.rb
M app/models/report_filter.rb
M app/policies/backup_policy.rb
M app/serializers/manifest_serializer.rb
M app/services/software_update_check_service.rb
M app/views/admin/accounts/show.html.haml
M app/views/admin/announcements/edit.html.haml
M app/views/admin/announcements/new.html.haml
M app/views/admin/invites/index.html.haml
M app/views/admin/reports/actions/preview.html.haml
M app/views/admin/roles/_form.html.haml
M app/views/admin/roles/edit.html.haml
M app/views/admin/roles/new.html.haml
M app/views/admin/statuses/show.html.haml
M app/views/admin/tags/show.html.haml
M app/views/admin/webhooks/_form.html.haml
M app/views/admin/webhooks/edit.html.haml
M app/views/admin/webhooks/new.html.haml
M app/views/auth/registrations/new.html.haml
M app/views/disputes/strikes/show.html.haml
M app/views/invites/_form.html.haml
M app/views/invites/index.html.haml
M app/views/settings/preferences/appearance/show.html.haml
M app/views/shared/_og.html.haml
M app/views/statuses/_detailed_status.html.haml
M app/views/user_mailer/warning.html.haml
M app/workers/account_deletion_worker.rb
M app/workers/activitypub/synchronize_featured_collection_worker.rb
M app/workers/activitypub/synchronize_featured_tags_collection_worker.rb
M app/workers/activitypub/update_distribution_worker.rb
M app/workers/admin/account_deletion_worker.rb
M app/workers/admin/domain_purge_worker.rb
M app/workers/import/row_worker.rb
M app/workers/publish_scheduled_status_worker.rb
M app/workers/resolve_account_worker.rb
M app/workers/scheduler/indexing_scheduler.rb
M app/workers/scheduler/scheduled_statuses_scheduler.rb
M app/workers/scheduler/trends/refresh_scheduler.rb
M app/workers/verify_account_links_worker.rb
M config/application.rb
M config/environments/production.rb
M config/initializers/3_omniauth.rb
M config/initializers/content_security_policy.rb
M config/initializers/cors.rb
M config/initializers/rack_attack.rb
M config/initializers/session_store.rb
M config/locales/activerecord.hr.yml
M config/locales/de.yml
M config/locales/devise.en-GB.yml
M config/locales/devise.fi.yml
M config/locales/devise.si.yml
M config/locales/doorkeeper.fa.yml
M config/locales/doorkeeper.fi.yml
M config/locales/doorkeeper.si.yml
M config/locales/en-GB.yml
M config/locales/eu.yml
M config/locales/fi.yml
M config/locales/hr.yml
M config/locales/hy.yml
M config/locales/ja.yml
M config/locales/ko.yml
M config/locales/lv.yml
M config/locales/si.yml
M config/locales/simple_form.cy.yml
M config/locales/simple_form.en-GB.yml
M config/locales/simple_form.fi.yml
M config/locales/simple_form.hy.yml
M config/locales/simple_form.si.yml
M config/routes.rb
M lib/mastodon/cli/upgrade.rb
M lib/mastodon/migration_helpers.rb
M lib/mastodon/version.rb
M package.json
M spec/helpers/languages_helper_spec.rb
R spec/{models => lib}/account_statuses_filter_spec.rb
M spec/lib/cache_buster_spec.rb
M spec/models/account_spec.rb
M spec/models/relationship_filter_spec.rb
M spec/requests/cache_spec.rb
M spec/serializers/activitypub/note_serializer_spec.rb
M streaming/index.js
M yarn.lock
D .bundler-audit.yml => .bundler-audit.yml +0 -4
@@ 1,4 0,0 @@
---
ignore:
  # Sidekiq security issue, fixes in the latest Sidekiq 7 but we can not upgrade. Will be fixed in Sidekiq 6.5.10
  - CVE-2023-26141

M .devcontainer/docker-compose.yml => .devcontainer/docker-compose.yml +1 -1
@@ 70,7 70,7 @@ services:
        hard: -1

  libretranslate:
    image: libretranslate/libretranslate:v1.3.11
    image: libretranslate/libretranslate:v1.3.12
    restart: unless-stopped
    volumes:
      - lt-data:/home/libretranslate/.local

M .github/workflows/test-ruby.yml => .github/workflows/test-ruby.yml +7 -2
@@ 282,8 282,8 @@ jobs:
        ports:
          - 6379:6379

      elasticsearch:
        image: docker.elastic.co/elasticsearch/elasticsearch:7.17.13
      search:
        image: ${{ matrix.search-image }}
        env:
          discovery.type: single-node
          xpack.security.enabled: false


@@ 313,6 313,11 @@ jobs:
          - '3.0'
          - '3.1'
          - '.ruby-version'
        search-image:
          - docker.elastic.co/elasticsearch/elasticsearch:7.17.13
        include:
          - ruby-version: '.ruby-version'
            search-image: docker.elastic.co/elasticsearch/elasticsearch:8.10.2

    steps:
      - uses: actions/checkout@v4

M .gitignore => .gitignore +0 -3
@@ 31,9 31,6 @@
# Ignore Vagrant files
.vagrant/

# Ignore Capistrano customizations
/config/deploy/*

# Ignore IDE files
.vscode/
.idea/

M .haml-lint_todo.yml => .haml-lint_todo.yml +5 -11
@@ 1,13 1,13 @@
# This configuration was generated by
# `haml-lint --auto-gen-config`
# on 2023-07-20 09:47:50 -0400 using Haml-Lint version 0.48.0.
# on 2023-10-03 08:32:28 -0400 using Haml-Lint version 0.51.0.
# The point is for the user to remove these configuration records
# one by one as the lints are removed from the code base.
# Note that changes in the inspected code, or installation of new
# versions of Haml-Lint, may require this file to be generated again.

linters:
  # Offense count: 951
  # Offense count: 944
  LineLength:
    enabled: false



@@ 15,7 15,7 @@ linters:
  UnnecessaryStringOutput:
    enabled: false

  # Offense count: 57
  # Offense count: 44
  RuboCop:
    enabled: false



@@ 26,22 26,16 @@ linters:
      - 'app/views/admin/reports/show.html.haml'
      - 'app/views/disputes/strikes/show.html.haml'

  # Offense count: 32
  # Offense count: 15
  InstanceVariables:
    exclude:
      - 'app/views/admin/reports/_actions.html.haml'
      - 'app/views/admin/roles/_form.html.haml'
      - 'app/views/admin/webhooks/_form.html.haml'
      - 'app/views/auth/registrations/_status.html.haml'
      - 'app/views/auth/sessions/two_factor/_otp_authentication_form.html.haml'
      - 'app/views/authorize_interactions/_post_follow_actions.html.haml'
      - 'app/views/invites/_form.html.haml'
      - 'app/views/relationships/_account.html.haml'
      - 'app/views/shared/_og.html.haml'

  # Offense count: 3
  # Offense count: 2
  IdNames:
    exclude:
      - 'app/views/authorize_interactions/error.html.haml'
      - 'app/views/oauth/authorizations/error.html.haml'
      - 'app/views/shared/_error_messages.html.haml'

M .nvmrc => .nvmrc +1 -1
@@ 1,1 1,1 @@
20.7
20.8

M .prettierignore => .prettierignore +0 -3
@@ 31,9 31,6 @@
# Ignore Vagrant files
.vagrant/

# Ignore Capistrano customizations
/config/deploy/*

# Ignore IDE files
.vscode/
.idea/

M .rubocop.yml => .rubocop.yml +1 -6
@@ 28,6 28,7 @@ AllCops:
    - 'Vagrantfile'
    - 'vendor/**/*'
    - 'lib/json_ld/*' # Generated files
    - 'lib/mastodon/migration_helpers.rb' # Vendored from GitLab
    - 'lib/templates/**/*'

# Reason: Prefer Hashes without extreme indentation


@@ 75,12 76,6 @@ Metrics/AbcSize:
    - 'lib/mastodon/cli/*.rb'
    - db/*migrate/**/*

# Reason:
# https://docs.rubocop.org/rubocop/cops_metrics.html#metricsblocknesting
Metrics/BlockNesting:
  Exclude:
    - 'lib/mastodon/cli/*.rb'

# Reason: Currently disabled in .rubocop_todo.yml
# https://docs.rubocop.org/rubocop/cops_metrics.html#metricscyclomaticcomplexity
Metrics/CyclomaticComplexity:

M .rubocop_todo.yml => .rubocop_todo.yml +0 -39
@@ 14,46 14,12 @@ Bundler/OrderedGems:
    - 'Gemfile'

# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle, IndentationWidth.
# SupportedStyles: with_first_argument, with_fixed_indentation
Layout/ArgumentAlignment:
  Exclude:
    - 'config/initializers/cors.rb'
    - 'config/initializers/session_store.rb'

# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: AllowMultipleStyles, EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle.
# SupportedHashRocketStyles: key, separator, table
# SupportedColonStyles: key, separator, table
# SupportedLastArgumentHashStyles: always_inspect, always_ignore, ignore_implicit, ignore_explicit
Layout/HashAlignment:
  Exclude:
    - 'config/environments/production.rb'
    - 'config/initializers/rack_attack.rb'
    - 'config/routes.rb'

# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: AllowDoxygenCommentStyle, AllowGemfileRubyComment.
Layout/LeadingCommentSpace:
  Exclude:
    - 'config/application.rb'
    - 'config/initializers/3_omniauth.rb'

# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: Max, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns.
# URISchemes: http, https
Layout/LineLength:
  Exclude:
    - 'app/models/account.rb'

# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle.
# SupportedStyles: require_no_space, require_space
Layout/SpaceInLambdaLiteral:
  Exclude:
    - 'config/environments/production.rb'
    - 'config/initializers/content_security_policy.rb'

# Configuration parameters: AllowComments, AllowEmptyLambdas.
Lint/EmptyBlock:
  Exclude:


@@ 291,10 257,6 @@ RSpec/MultipleMemoizedHelpers:
RSpec/NestedGroups:
  Max: 6

RSpec/PendingWithoutReason:
  Exclude:
    - 'spec/models/account_spec.rb'

# This cop supports unsafe autocorrection (--autocorrect-all).
Rails/ApplicationController:
  Exclude:


@@ 844,6 806,5 @@ Style/TrailingCommaInHashLiteral:
Style/WordArray:
  Exclude:
    - 'app/helpers/languages_helper.rb'
    - 'config/initializers/cors.rb'
    - 'spec/controllers/settings/imports_controller_spec.rb'
    - 'spec/models/form/import_spec.rb'

D Capfile => Capfile +0 -15
@@ 1,15 0,0 @@
# frozen_string_literal: true

require 'capistrano/setup'
require 'capistrano/deploy'
require 'capistrano/scm/git'

install_plugin Capistrano::SCM::Git

require 'capistrano/rbenv'
require 'capistrano/bundler'
require 'capistrano/yarn'
require 'capistrano/rails/assets'
require 'capistrano/rails/migrations'

Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }

M Dockerfile => Dockerfile +1 -1
@@ 1,6 1,6 @@
# syntax=docker/dockerfile:1.4
# This needs to be bookworm-slim because the Ruby image is built on bookworm-slim
ARG NODE_VERSION="20.7-bookworm-slim"
ARG NODE_VERSION="20.8-bookworm-slim"

FROM ghcr.io/moritzheiber/ruby-jemalloc:3.2.2-slim as ruby
FROM node:${NODE_VERSION} as build

M Gemfile => Gemfile +0 -6
@@ 170,12 170,6 @@ group :development do
  # Linter CLI for HAML files
  gem 'haml_lint', require: false

  # Deployment automation
  gem 'capistrano', '~> 3.17'
  gem 'capistrano-rails', '~> 1.6'
  gem 'capistrano-rbenv', '~> 2.2'
  gem 'capistrano-yarn', '~> 2.0'

  # Validate missing i18n keys
  gem 'i18n-tasks', '~> 1.0', require: false
end

M Gemfile.lock => Gemfile.lock +10 -37
@@ 84,9 84,9 @@ GEM
      erubi (~> 1.4)
      rails-dom-testing (~> 2.0)
      rails-html-sanitizer (~> 1.1, >= 1.2.0)
    active_model_serializers (0.10.13)
      actionpack (>= 4.1, < 7.1)
      activemodel (>= 4.1, < 7.1)
    active_model_serializers (0.10.14)
      actionpack (>= 4.1)
      activemodel (>= 4.1)
      case_transform (>= 0.2)
      jsonapi-renderer (>= 0.1.1.beta1, < 0.3)
    activejob (7.0.8)


@@ 112,8 112,6 @@ GEM
    addressable (2.8.5)
      public_suffix (>= 2.0.2, < 6.0)
    aes_key_wrap (1.1.0)
    airbrussh (1.4.1)
      sshkit (>= 1.6.1, != 1.7.0)
    android_key_attestation (0.3.0)
    annotate (3.2.0)
      activerecord (>= 3.2, < 8.0)


@@ 175,21 173,6 @@ GEM
    bundler-audit (0.9.1)
      bundler (>= 1.2.0, < 3)
      thor (~> 1.0)
    capistrano (3.17.3)
      airbrussh (>= 1.0.0)
      i18n
      rake (>= 10.0.0)
      sshkit (>= 1.9.0)
    capistrano-bundler (2.1.0)
      capistrano (~> 3.1)
    capistrano-rails (1.6.3)
      capistrano (~> 3.1)
      capistrano-bundler (>= 1.1, < 3)
    capistrano-rbenv (2.2.0)
      capistrano (~> 3.1)
      sshkit (~> 1.3)
    capistrano-yarn (2.0.2)
      capistrano (~> 3.0)
    capybara (3.39.2)
      addressable
      matrix


@@ 324,7 307,7 @@ GEM
      ruby-progressbar (~> 1.4)
    globalid (1.1.0)
      activesupport (>= 5.0)
    haml (6.1.2)
    haml (6.2.0)
      temple (>= 0.8.2)
      thor
      tilt


@@ 333,8 316,8 @@ GEM
      activesupport (>= 5.1)
      haml (>= 4.0.6)
      railties (>= 5.1)
    haml_lint (0.50.0)
      haml (>= 4.0, < 6.2)
    haml_lint (0.51.0)
      haml (>= 4.0)
      parallel (~> 1.10)
      rainbow
      rubocop (>= 1.0)


@@ 473,11 456,8 @@ GEM
      net-protocol
    net-protocol (0.2.1)
      timeout
    net-scp (4.0.0)
      net-ssh (>= 2.6.5, < 8.0.0)
    net-smtp (0.3.3)
      net-protocol
    net-ssh (7.1.0)
    nio4r (2.5.9)
    nokogiri (1.15.4)
      mini_portile2 (~> 2.8.2)


@@ 640,7 620,7 @@ GEM
      sidekiq (>= 5, < 8)
    rspec-support (3.12.1)
    rspec_chunked (0.6)
    rubocop (1.56.3)
    rubocop (1.56.4)
      base64 (~> 0.1.1)
      json (~> 2.3)
      language_server-protocol (>= 3.17.0)


@@ 691,7 671,7 @@ GEM
      rubyzip (>= 1.2.2, < 3.0)
      websocket (~> 1.0)
    semantic_range (3.0.0)
    sidekiq (6.5.9)
    sidekiq (6.5.10)
      connection_pool (>= 2.2.5, < 3)
      rack (~> 2.0)
      redis (>= 4.5.0, < 5)


@@ 726,9 706,6 @@ GEM
      actionpack (>= 5.2)
      activesupport (>= 5.2)
      sprockets (>= 3.0.0)
    sshkit (1.21.5)
      net-scp (>= 1.1.2)
      net-ssh (>= 2.8.0)
    stackprof (0.2.25)
    statsd-ruby (1.5.0)
    stoplight (3.0.2)


@@ 747,7 724,7 @@ GEM
      climate_control (>= 0.0.3, < 1.0)
    test-prof (1.2.3)
    thor (1.2.2)
    tilt (2.2.0)
    tilt (2.3.0)
    timeout (0.4.0)
    tpm-key_attestation (0.12.0)
      bindata (~> 2.4)


@@ 773,7 750,7 @@ GEM
    unf (0.1.4)
      unf_ext
    unf_ext (0.0.8.2)
    unicode-display_width (2.4.2)
    unicode-display_width (2.5.0)
    uri (0.12.2)
    validate_email (0.1.6)
      activemodel (>= 3.0)


@@ 829,10 806,6 @@ DEPENDENCIES
  brakeman (~> 6.0)
  browser
  bundler-audit (~> 0.9)
  capistrano (~> 3.17)
  capistrano-rails (~> 1.6)
  capistrano-rbenv (~> 2.2)
  capistrano-yarn (~> 2.0)
  capybara (~> 3.39)
  charlock_holmes (~> 0.7.7)
  chewy (~> 7.3)

M SECURITY.md => SECURITY.md +1 -0
@@ 15,6 15,7 @@ A "vulnerability in Mastodon" is a vulnerability in the code distributed through

| Version | Supported        |
| ------- | ---------------- |
| 4.2.x   | Yes              |
| 4.1.x   | Yes              |
| 4.0.x   | Until 2023-10-31 |
| 3.5.x   | Until 2023-12-31 |

M app/controllers/about_controller.rb => app/controllers/about_controller.rb +0 -8
@@ 5,15 5,7 @@ class AboutController < ApplicationController

  skip_before_action :require_functional!

  before_action :set_instance_presenter

  def show
    expires_in(15.seconds, public: true, stale_while_revalidate: 30.seconds, stale_if_error: 1.day) unless user_signed_in?
  end

  private

  def set_instance_presenter
    @instance_presenter = InstancePresenter.new
  end
end

M app/controllers/auth/registrations_controller.rb => app/controllers/auth/registrations_controller.rb +0 -5
@@ 11,7 11,6 @@ class Auth::RegistrationsController < Devise::RegistrationsController
  before_action :set_pack
  before_action :set_sessions, only: [:edit, :update]
  before_action :set_strikes, only: [:edit, :update]
  before_action :set_instance_presenter, only: [:new, :create, :update]
  before_action :set_body_classes, only: [:new, :create, :edit, :update]
  before_action :require_not_suspended!, only: [:update]
  before_action :set_cache_headers, only: [:edit, :update]


@@ 112,10 111,6 @@ class Auth::RegistrationsController < Devise::RegistrationsController
    use_pack %w(edit update).include?(action_name) ? 'admin' : 'auth'
  end

  def set_instance_presenter
    @instance_presenter = InstancePresenter.new
  end

  def set_body_classes
    @body_classes = %w(edit update).include?(action_name) ? 'admin' : 'lighter'
  end

M app/controllers/auth/sessions_controller.rb => app/controllers/auth/sessions_controller.rb +0 -5
@@ 12,7 12,6 @@ class Auth::SessionsController < Devise::SessionsController

  include TwoFactorAuthenticationConcern

  before_action :set_instance_presenter, only: [:new]
  before_action :set_body_classes

  content_security_policy only: :new do |p|


@@ 104,10 103,6 @@ class Auth::SessionsController < Devise::SessionsController
    use_pack 'auth'
  end

  def set_instance_presenter
    @instance_presenter = InstancePresenter.new
  end

  def set_body_classes
    @body_classes = 'lighter'
  end

M app/controllers/concerns/account_controller_concern.rb => app/controllers/concerns/account_controller_concern.rb +0 -6
@@ 9,17 9,11 @@ module AccountControllerConcern
  FOLLOW_PER_PAGE = 12

  included do
    before_action :set_instance_presenter

    after_action :set_link_headers, if: -> { request.format.nil? || request.format == :html }
  end

  private

  def set_instance_presenter
    @instance_presenter = InstancePresenter.new
  end

  def set_link_headers
    response.headers['Link'] = LinkHeader.new(
      [

M app/controllers/concerns/web_app_controller_concern.rb => app/controllers/concerns/web_app_controller_concern.rb +6 -4
@@ 4,11 4,11 @@ module WebAppControllerConcern
  extend ActiveSupport::Concern

  included do
    prepend_before_action :redirect_unauthenticated_to_permalinks!
    vary_by 'Accept, Accept-Language, Cookie'

    before_action :redirect_unauthenticated_to_permalinks!
    before_action :set_pack
    before_action :set_app_body_class

    vary_by 'Accept, Accept-Language, Cookie'
  end

  def skip_csrf_meta_tags?


@@ 23,8 23,10 @@ module WebAppControllerConcern
    return if user_signed_in? # NOTE: Different from upstream because we allow moved users to log in

    redirect_path = PermalinkRedirector.new(request.path).redirect_path
    return if redirect_path.blank?

    redirect_to(redirect_path) if redirect_path.present?
    expires_in(15.seconds, public: true, stale_while_revalidate: 30.seconds, stale_if_error: 1.day) unless user_signed_in?
    redirect_to(redirect_path)
  end

  def set_pack

M app/controllers/follower_accounts_controller.rb => app/controllers/follower_accounts_controller.rb +0 -1
@@ 3,7 3,6 @@
class FollowerAccountsController < ApplicationController
  include AccountControllerConcern
  include SignatureVerification
  include WebAppControllerConcern

  vary_by -> { public_fetch_mode? ? 'Accept, Accept-Language, Cookie' : 'Accept, Accept-Language, Cookie, Signature' }


M app/controllers/following_accounts_controller.rb => app/controllers/following_accounts_controller.rb +0 -1
@@ 3,7 3,6 @@
class FollowingAccountsController < ApplicationController
  include AccountControllerConcern
  include SignatureVerification
  include WebAppControllerConcern

  vary_by -> { public_fetch_mode? ? 'Accept, Accept-Language, Cookie' : 'Accept, Accept-Language, Cookie, Signature' }


M app/controllers/home_controller.rb => app/controllers/home_controller.rb +0 -8
@@ 3,15 3,7 @@
class HomeController < ApplicationController
  include WebAppControllerConcern

  before_action :set_instance_presenter

  def index
    expires_in(15.seconds, public: true, stale_while_revalidate: 30.seconds, stale_if_error: 1.day) unless user_signed_in?
  end

  private

  def set_instance_presenter
    @instance_presenter = InstancePresenter.new
  end
end

M app/controllers/privacy_controller.rb => app/controllers/privacy_controller.rb +0 -8
@@ 5,15 5,7 @@ class PrivacyController < ApplicationController

  skip_before_action :require_functional!

  before_action :set_instance_presenter

  def show
    expires_in(15.seconds, public: true, stale_while_revalidate: 30.seconds, stale_if_error: 1.day) unless user_signed_in?
  end

  private

  def set_instance_presenter
    @instance_presenter = InstancePresenter.new
  end
end

M app/controllers/statuses_controller.rb => app/controllers/statuses_controller.rb +0 -5
@@ 10,7 10,6 @@ class StatusesController < ApplicationController

  before_action :require_account_signature!, only: [:show, :activity], if: -> { request.format == :json && authorized_fetch_mode? }
  before_action :set_status
  before_action :set_instance_presenter
  before_action :redirect_to_original, only: :show
  before_action :set_body_classes, only: :embed



@@ 68,10 67,6 @@ class StatusesController < ApplicationController
    not_found
  end

  def set_instance_presenter
    @instance_presenter = InstancePresenter.new
  end

  def redirect_to_original
    redirect_to(ActivityPub::TagManager.instance.url_for(@status.reblog), allow_other_host: true) if @status.reblog?
  end

M app/controllers/tags_controller.rb => app/controllers/tags_controller.rb +0 -5
@@ 14,7 14,6 @@ class TagsController < ApplicationController
  before_action :set_local
  before_action :set_tag
  before_action :set_statuses, if: -> { request.format == :rss }
  before_action :set_instance_presenter

  skip_before_action :require_functional!, unless: :limited_federation_mode?



@@ 49,10 48,6 @@ class TagsController < ApplicationController
    @statuses = cache_collection(TagFeed.new(@tag, nil, local: @local).get(limit_param), Status)
  end

  def set_instance_presenter
    @instance_presenter = InstancePresenter.new
  end

  def limit_param
    params[:limit].present? ? [params[:limit].to_i, PAGE_SIZE_MAX].min : PAGE_SIZE
  end

A app/helpers/admin/announcements_helper.rb => app/helpers/admin/announcements_helper.rb +11 -0
@@ 0,0 1,11 @@
# frozen_string_literal: true

module Admin::AnnouncementsHelper
  def datetime_pattern
    '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}(:[0-9]{2}){1,2}'
  end

  def datetime_placeholder
    Time.zone.now.strftime('%FT%R')
  end
end

A app/helpers/invites_helper.rb => app/helpers/invites_helper.rb +11 -0
@@ 0,0 1,11 @@
# frozen_string_literal: true

module InvitesHelper
  def invites_max_uses_options
    [1, 5, 10, 25, 50, 100]
  end

  def invites_expires_options
    [30.minutes, 1.hour, 6.hours, 12.hours, 1.day, 1.week]
  end
end

M app/helpers/languages_helper.rb => app/helpers/languages_helper.rb +19 -0
@@ 230,6 230,24 @@ module LanguagesHelper
    'sr-Latn': 'Srpski (latinica)',
  }.freeze

  # Helper for self.sorted_locale_keys
  private_class_method def self.locale_name_for_sorting(locale)
    if locale.blank? || locale == 'und'
      '000'
    elsif (supported_locale = SUPPORTED_LOCALES[locale.to_sym])
      ASCIIFolding.new.fold(supported_locale[1]).downcase
    elsif (regional_locale = REGIONAL_LOCALE_NAMES[locale.to_sym])
      ASCIIFolding.new.fold(regional_locale).downcase
    else
      locale
    end
  end

  # Sort locales by native name for dropdown menus
  def self.sorted_locale_keys(locale_keys)
    locale_keys.sort_by { |key, _| locale_name_for_sorting(key) }
  end

  def native_locale_name(locale)
    if locale.blank? || locale == 'und'
      I18n.t('generic.none')


@@ 254,6 272,7 @@ module LanguagesHelper

  def valid_locale_or_nil(str)
    return if str.blank?
    return str if valid_locale?(str)

    code, = str.to_s.split(/[_-]/) # Strip out the region from e.g. en_US or ja-JP


M app/helpers/mascot_helper.rb => app/helpers/mascot_helper.rb +0 -2
@@ 5,8 5,6 @@ module MascotHelper
    full_asset_url(instance_presenter.mascot&.file&.url || asset_pack_path('media/images/elephant_ui_plane.svg'))
  end

  private

  def instance_presenter
    @instance_presenter ||= InstancePresenter.new
  end

M app/helpers/routing_helper.rb => app/helpers/routing_helper.rb +2 -1
@@ 3,11 3,12 @@
module RoutingHelper
  extend ActiveSupport::Concern

  include Rails.application.routes.url_helpers
  include ActionView::Helpers::AssetTagHelper
  include Webpacker::Helper

  included do
    include Rails.application.routes.url_helpers

    def default_url_options
      ActionMailer::Base.default_url_options
    end

M app/helpers/settings_helper.rb => app/helpers/settings_helper.rb +5 -1
@@ 2,7 2,11 @@

module SettingsHelper
  def filterable_languages
    LanguagesHelper::SUPPORTED_LOCALES.keys
    LanguagesHelper.sorted_locale_keys(LanguagesHelper::SUPPORTED_LOCALES.keys)
  end

  def ui_languages
    LanguagesHelper.sorted_locale_keys(I18n.available_locales)
  end

  def session_device_icon(session)

M app/javascript/flavours/glitch/components/admin/Retention.jsx => app/javascript/flavours/glitch/components/admin/Retention.jsx +3 -2
@@ 9,11 9,12 @@ import api from 'flavours/glitch/api';
import { roundTo10 } from 'flavours/glitch/utils/numbers';

const dateForCohort = cohort => {
  const timeZone = 'UTC';
  switch(cohort.frequency) {
  case 'day':
    return <FormattedDate value={cohort.period} month='long' day='2-digit' />;
    return <FormattedDate value={cohort.period} month='long' day='2-digit' timeZone={timeZone} />;
  default:
    return <FormattedDate value={cohort.period} month='long' year='numeric' />;
    return <FormattedDate value={cohort.period} month='long' year='numeric' timeZone={timeZone} />;
  }
};


M app/javascript/flavours/glitch/components/scrollable_list.jsx => app/javascript/flavours/glitch/components/scrollable_list.jsx +1 -1
@@ 78,7 78,7 @@ class ScrollableList extends PureComponent {
      const clientHeight = this.getClientHeight();
      const offset = scrollHeight - scrollTop - clientHeight;

      if (400 > offset && this.props.onLoadMore && this.props.hasMore && !this.props.isLoading) {
      if (scrollTop > 0 && offset < 400 && this.props.onLoadMore && this.props.hasMore && !this.props.isLoading) {
        this.props.onLoadMore();
      }


M app/javascript/flavours/glitch/features/home_timeline/index.jsx => app/javascript/flavours/glitch/features/home_timeline/index.jsx +11 -2
@@ 39,8 39,17 @@ const getHomeFeedSpeed = createSelector([
], (statusIds, pendingStatusIds, statusMap) => {
  const recentStatusIds = pendingStatusIds.size > 0 ? pendingStatusIds : statusIds;
  const statuses = recentStatusIds.filter(id => id !== null).map(id => statusMap.get(id)).filter(status => status?.get('account') !== me).take(20);
  const oldest = new Date(statuses.getIn([statuses.size - 1, 'created_at'], 0));
  const newest = new Date(statuses.getIn([0, 'created_at'], 0));

  if (statuses.isEmpty()) {
    return {
      gap: 0,
      newest: new Date(0),
    };
  }

  const datetimes = statuses.map(status => status.get('created_at', 0));
  const oldest = new Date(datetimes.min());
  const newest = new Date(datetimes.max());
  const averageGap = (newest - oldest) / (1000 * (statuses.size + 1)); // Average gap between posts on first page in seconds

  return {

M app/javascript/flavours/glitch/features/ui/components/link_footer.jsx => app/javascript/flavours/glitch/features/ui/components/link_footer.jsx +1 -1
@@ 100,7 100,7 @@ class LinkFooter extends PureComponent {
          {DividingCircle}
          <a href={source_url} rel='noopener noreferrer' target='_blank'><FormattedMessage id='footer.source_code' defaultMessage='View source code' /></a>
          {DividingCircle}
          v{version}
          <span class='version'>v{version}</span>
        </p>
      </div>
    );

M app/javascript/flavours/glitch/styles/components/about.scss => app/javascript/flavours/glitch/styles/components/about.scss +4 -0
@@ 41,6 41,10 @@
    color: $dark-text-color;
    margin-bottom: 20px;

    .version {
      white-space: nowrap;
    }

    strong {
      font-weight: 500;
    }

M app/javascript/mastodon/actions/search.js => app/javascript/mastodon/actions/search.js +4 -0
@@ 147,6 147,10 @@ export const openURL = (value, history, onFailure) => (dispatch, getState) => {
  const signedIn = !!getState().getIn(['meta', 'me']);

  if (!signedIn) {
    if (onFailure) {
      onFailure();
    }

    return;
  }


M app/javascript/mastodon/components/__tests__/hashtag_bar.tsx => app/javascript/mastodon/components/__tests__/hashtag_bar.tsx +15 -0
@@ 45,6 45,21 @@ describe('computeHashtagBarForStatus', () => {
    );
  });

  it('does not truncate the contents when the last child is a text node', () => {
    const status = createStatus(
      'this is a #<a class="zrl" href="https://example.com/search?tag=test">test</a>. Some more text',
      ['test'],
    );

    const { hashtagsInBar, statusContentProps } =
      computeHashtagBarForStatus(status);

    expect(hashtagsInBar).toEqual([]);
    expect(statusContentProps.statusContent).toMatchInlineSnapshot(
      `"this is a #<a class="zrl" href="https://example.com/search?tag=test">test</a>. Some more text"`,
    );
  });

  it('extract tags from the last line', () => {
    const status = createStatus(
      '<p>Simple text</p><p><a href="test">#hashtag</a></p>',

M app/javascript/mastodon/components/admin/Retention.jsx => app/javascript/mastodon/components/admin/Retention.jsx +3 -2
@@ 9,11 9,12 @@ import api from 'mastodon/api';
import { roundTo10 } from 'mastodon/utils/numbers';

const dateForCohort = cohort => {
  const timeZone = 'UTC';
  switch(cohort.frequency) {
  case 'day':
    return <FormattedDate value={cohort.period} month='long' day='2-digit' />;
    return <FormattedDate value={cohort.period} month='long' day='2-digit' timeZone={timeZone} />;
  default:
    return <FormattedDate value={cohort.period} month='long' year='numeric' />;
    return <FormattedDate value={cohort.period} month='long' year='numeric' timeZone={timeZone} />;
  }
};


M app/javascript/mastodon/components/column.jsx => app/javascript/mastodon/components/column.jsx +0 -6
@@ 22,12 22,6 @@ export default class Column extends PureComponent {
      scrollable = document.scrollingElement;
    } else {
      scrollable = this.node.querySelector('.scrollable');

      // Some columns have nested `.scrollable` containers, with the outer one
      // being a wrapper while the actual scrollable content is deeper.
      if (scrollable.classList.contains('scrollable--flex')) {
        scrollable = scrollable?.querySelector('.scrollable') || scrollable;
      }
   }

    if (!scrollable) {

M app/javascript/mastodon/components/hashtag_bar.tsx => app/javascript/mastodon/components/hashtag_bar.tsx +1 -1
@@ 109,7 109,7 @@ export function computeHashtagBarForStatus(status: StatusLike): {

  const lastChild = template.content.lastChild;

  if (!lastChild) return defaultResult;
  if (!lastChild || lastChild.nodeType === Node.TEXT_NODE) return defaultResult;

  template.content.removeChild(lastChild);
  const contentWithoutLastLine = template;

M app/javascript/mastodon/components/scrollable_list.jsx => app/javascript/mastodon/components/scrollable_list.jsx +1 -1
@@ 78,7 78,7 @@ class ScrollableList extends PureComponent {
      const clientHeight = this.getClientHeight();
      const offset = scrollHeight - scrollTop - clientHeight;

      if (400 > offset && this.props.onLoadMore && this.props.hasMore && !this.props.isLoading) {
      if (scrollTop > 0 && offset < 400 && this.props.onLoadMore && this.props.hasMore && !this.props.isLoading) {
        this.props.onLoadMore();
      }


M app/javascript/mastodon/features/explore/index.jsx => app/javascript/mastodon/features/explore/index.jsx +38 -40
@@ 67,47 67,45 @@ class Explore extends PureComponent {
          <Search />
        </div>

        <div className='scrollable scrollable--flex' data-nosnippet>
          {isSearching ? (
            <SearchResults />
          ) : (
            <>
              <div className='account__section-headline'>
                <NavLink exact to='/explore'>
                  <FormattedMessage tagName='div' id='explore.trending_statuses' defaultMessage='Posts' />
        {isSearching ? (
          <SearchResults />
        ) : (
          <>
            <div className='account__section-headline'>
              <NavLink exact to='/explore'>
                <FormattedMessage tagName='div' id='explore.trending_statuses' defaultMessage='Posts' />
              </NavLink>

              <NavLink exact to='/explore/tags'>
                <FormattedMessage tagName='div' id='explore.trending_tags' defaultMessage='Hashtags' />
              </NavLink>

              {signedIn && (
                <NavLink exact to='/explore/suggestions'>
                  <FormattedMessage tagName='div' id='explore.suggested_follows' defaultMessage='People' />
                </NavLink>

                <NavLink exact to='/explore/tags'>
                  <FormattedMessage tagName='div' id='explore.trending_tags' defaultMessage='Hashtags' />
                </NavLink>

                {signedIn && (
                  <NavLink exact to='/explore/suggestions'>
                    <FormattedMessage tagName='div' id='explore.suggested_follows' defaultMessage='People' />
                  </NavLink>
                )}

                <NavLink exact to='/explore/links'>
                  <FormattedMessage tagName='div' id='explore.trending_links' defaultMessage='News' />
                </NavLink>
              </div>

              <Switch>
                <Route path='/explore/tags' component={Tags} />
                <Route path='/explore/links' component={Links} />
                <Route path='/explore/suggestions' component={Suggestions} />
                <Route exact path={['/explore', '/explore/posts', '/search']}>
                  <Statuses multiColumn={multiColumn} />
                </Route>
              </Switch>

              <Helmet>
                <title>{intl.formatMessage(messages.title)}</title>
                <meta name='robots' content={isSearching ? 'noindex' : 'all'} />
              </Helmet>
            </>
          )}
        </div>
              )}

              <NavLink exact to='/explore/links'>
                <FormattedMessage tagName='div' id='explore.trending_links' defaultMessage='News' />
              </NavLink>
            </div>

            <Switch>
              <Route path='/explore/tags' component={Tags} />
              <Route path='/explore/links' component={Links} />
              <Route path='/explore/suggestions' component={Suggestions} />
              <Route exact path={['/explore', '/explore/posts', '/search']}>
                <Statuses multiColumn={multiColumn} />
              </Route>
            </Switch>

            <Helmet>
              <title>{intl.formatMessage(messages.title)}</title>
              <meta name='robots' content={isSearching ? 'noindex' : 'all'} />
            </Helmet>
          </>
        )}
      </Column>
    );
  }

M app/javascript/mastodon/features/explore/links.jsx => app/javascript/mastodon/features/explore/links.jsx +1 -1
@@ 52,7 52,7 @@ class Links extends PureComponent {
    }

    return (
      <div className='explore__links'>
      <div className='explore__links scrollable' data-nosnippet>
        {banner}

        {isLoading ? (<LoadingIndicator />) : links.map((link, i) => (

M app/javascript/mastodon/features/explore/results.jsx => app/javascript/mastodon/features/explore/results.jsx +1 -1
@@ 204,7 204,7 @@ class Results extends PureComponent {
          <button onClick={this.handleSelectStatuses} className={type === 'statuses' ? 'active' : undefined}><FormattedMessage id='search_results.statuses' defaultMessage='Posts' /></button>
        </div>

        <div className='explore__search-results'>
        <div className='explore__search-results' data-nosnippet>
          <ScrollableList
            scrollKey='search-results'
            isLoading={isLoading}

M app/javascript/mastodon/features/explore/suggestions.jsx => app/javascript/mastodon/features/explore/suggestions.jsx +1 -1
@@ 42,7 42,7 @@ class Suggestions extends PureComponent {
    }

    return (
      <div className='explore__suggestions'>
      <div className='explore__suggestions scrollable' data-nosnippet>
        {isLoading ? <LoadingIndicator /> : suggestions.map(suggestion => (
          <AccountCard key={suggestion.get('account')} id={suggestion.get('account')} />
        ))}

M app/javascript/mastodon/features/explore/tags.jsx => app/javascript/mastodon/features/explore/tags.jsx +1 -1
@@ 51,7 51,7 @@ class Tags extends PureComponent {
    }

    return (
      <div className='explore__links'>
      <div className='scrollable explore__links' data-nosnippet>
        {banner}

        {isLoading ? (<LoadingIndicator />) : hashtags.map(hashtag => (

M app/javascript/mastodon/features/firehose/index.jsx => app/javascript/mastodon/features/firehose/index.jsx +22 -24
@@ 169,32 169,30 @@ const Firehose = ({ feedType, multiColumn }) => {
        <ColumnSettings />
      </ColumnHeader>

      <div className='scrollable scrollable--flex'>
        <div className='account__section-headline'>
          <NavLink exact to='/public/local'>
            <FormattedMessage tagName='div' id='firehose.local' defaultMessage='This server' />
          </NavLink>

          <NavLink exact to='/public/remote'>
            <FormattedMessage tagName='div' id='firehose.remote' defaultMessage='Other servers' />
          </NavLink>

          <NavLink exact to='/public'>
            <FormattedMessage tagName='div' id='firehose.all' defaultMessage='All' />
          </NavLink>
        </div>

        <StatusListContainer
          prepend={prependBanner}
          timelineId={`${feedType}${onlyMedia ? ':media' : ''}`}
          onLoadMore={handleLoadMore}
          trackScroll
          scrollKey='firehose'
          emptyMessage={emptyMessage}
          bindToDocument={!multiColumn}
        />
      <div className='account__section-headline'>
        <NavLink exact to='/public/local'>
          <FormattedMessage tagName='div' id='firehose.local' defaultMessage='This server' />
        </NavLink>

        <NavLink exact to='/public/remote'>
          <FormattedMessage tagName='div' id='firehose.remote' defaultMessage='Other servers' />
        </NavLink>

        <NavLink exact to='/public'>
          <FormattedMessage tagName='div' id='firehose.all' defaultMessage='All' />
        </NavLink>
      </div>

      <StatusListContainer
        prepend={prependBanner}
        timelineId={`${feedType}${onlyMedia ? ':media' : ''}`}
        onLoadMore={handleLoadMore}
        trackScroll
        scrollKey='firehose'
        emptyMessage={emptyMessage}
        bindToDocument={!multiColumn}
      />

      <Helmet>
        <title>{intl.formatMessage(messages.title)}</title>
        <meta name='robots' content='noindex' />

M app/javascript/mastodon/features/home_timeline/index.jsx => app/javascript/mastodon/features/home_timeline/index.jsx +11 -2
@@ 39,8 39,17 @@ const getHomeFeedSpeed = createSelector([
], (statusIds, pendingStatusIds, statusMap) => {
  const recentStatusIds = pendingStatusIds.size > 0 ? pendingStatusIds : statusIds;
  const statuses = recentStatusIds.filter(id => id !== null).map(id => statusMap.get(id)).filter(status => status?.get('account') !== me).take(20);
  const oldest = new Date(statuses.getIn([statuses.size - 1, 'created_at'], 0));
  const newest = new Date(statuses.getIn([0, 'created_at'], 0));

  if (statuses.isEmpty()) {
    return {
      gap: 0,
      newest: new Date(0),
    };
  }

  const datetimes = statuses.map(status => status.get('created_at', 0));
  const oldest = new Date(datetimes.min());
  const newest = new Date(datetimes.max());
  const averageGap = (newest - oldest) / (1000 * (statuses.size + 1)); // Average gap between posts on first page in seconds

  return {

M app/javascript/mastodon/features/ui/components/link_footer.jsx => app/javascript/mastodon/features/ui/components/link_footer.jsx +1 -1
@@ 100,7 100,7 @@ class LinkFooter extends PureComponent {
          {DividingCircle}
          <a href={source_url} rel='noopener noreferrer' target='_blank'><FormattedMessage id='footer.source_code' defaultMessage='View source code' /></a>
          {DividingCircle}
          v{version}
          <span class='version'>v{version}</span>
        </p>
      </div>
    );

M app/javascript/mastodon/locales/bn.json => app/javascript/mastodon/locales/bn.json +1 -0
@@ 190,6 190,7 @@
  "conversation.open": "কথপোকথন দেখান",
  "conversation.with": "{names} এর সঙ্গে",
  "copypaste.copied": "অনুলিপিকৃত",
  "copypaste.copy_to_clipboard": "ক্লিপবোর্ডে কপি করুন",
  "directory.federated": "পরিচিত ফেডিভারসের থেকে",
  "directory.local": "শুধু {domain} থেকে",
  "directory.new_arrivals": "নতুন আগত",

M app/javascript/mastodon/locales/de.json => app/javascript/mastodon/locales/de.json +1 -1
@@ 383,7 383,7 @@
  "lists.new.create": "Neue Liste erstellen",
  "lists.new.title_placeholder": "Titel der neuen Liste",
  "lists.replies_policy.followed": "Alle folgenden Profile",
  "lists.replies_policy.list": "Mitglieder*innen der Liste",
  "lists.replies_policy.list": "Mitglieder der Liste",
  "lists.replies_policy.none": "Niemanden",
  "lists.replies_policy.title": "Antworten anzeigen für:",
  "lists.search": "Suche nach Leuten, denen du folgst",

M app/javascript/mastodon/locales/fa.json => app/javascript/mastodon/locales/fa.json +1 -1
@@ 338,7 338,7 @@
  "keyboard_shortcuts.column": "برای تمرکز روی یک فرسته در یکی از ستون‌ها",
  "keyboard_shortcuts.compose": "تمرکز روی محیط نوشتن",
  "keyboard_shortcuts.description": "توضیح",
  "keyboard_shortcuts.direct": "باز کردن ستون اشاره‌های خصوصی",
  "keyboard_shortcuts.direct": "برای گشودن ستون اشاره‌های خصوصی",
  "keyboard_shortcuts.down": "پایین بردن در سیاهه",
  "keyboard_shortcuts.enter": "گشودن فرسته",
  "keyboard_shortcuts.favourite": "پسندیدن فرسته",

M app/javascript/mastodon/locales/fi.json => app/javascript/mastodon/locales/fi.json +130 -130
@@ 1,9 1,9 @@
{
  "about.blocks": "Moderoidut palvelimet",
  "about.contact": "Yhteystiedot:",
  "about.blocks": "Valvotut palvelimet",
  "about.contact": "Yhteydenotto:",
  "about.disclaimer": "Mastodon on vapaa avoimen lähdekoodin ohjelmisto ja Mastodon gGmbH:n tavaramerkki.",
  "about.domain_blocks.no_reason_available": "Syytä ei ole ilmoitettu",
  "about.domain_blocks.preamble": "Yleisesti Mastodonin avulla voidaan tarkastella minkä tahansa muun fediverse-palvelinten sisältöä ja vuorovaikuttaa eri palvelinten käyttäjien kanssa. Nämä ovat tälle palvelimelle määritetyt poikkeukset.",
  "about.domain_blocks.preamble": "Mastodonin avulla voidaan yleensä tarkastella minkä tahansa fediversumiin kuuluvan palvelimen sisältöä ja vuorovaikuttaa eri palvelinten käyttäjien kanssa. Nämä ovat tälle palvelimelle määritetyt poikkeukset.",
  "about.domain_blocks.silenced.explanation": "Et yleensä näe tämän palvelimen profiileja ja sisältöä, jollet erityisesti etsi juuri sitä tai liity siihen seuraamalla.",
  "about.domain_blocks.silenced.title": "Rajoitettu",
  "about.domain_blocks.suspended.explanation": "Mitään tämän palvelimen tietoja ei käsitellä, tallenneta tai vaihdeta, mikä tekee vuorovaikutuksesta ja viestinnästä sen käyttäjien kanssa mahdotonta.",


@@ 16,7 16,7 @@
  "account.badges.bot": "Botti",
  "account.badges.group": "Ryhmä",
  "account.block": "Estä @{name}",
  "account.block_domain": "Estä palvelu {domain}",
  "account.block_domain": "Estä verkkotunnus {domain}",
  "account.block_short": "Estä",
  "account.blocked": "Estetty",
  "account.browse_more_on_origin_server": "Selaile lisää alkuperäisellä palvelimella",


@@ 25,11 25,11 @@
  "account.disable_notifications": "Lopeta ilmoittamasta minulle, kun @{name} julkaisee",
  "account.domain_blocked": "Verkkotunnus estetty",
  "account.edit_profile": "Muokkaa profiilia",
  "account.enable_notifications": "Ilmoita kun käyttäjä @{name} julkaisee viestin",
  "account.enable_notifications": "Ilmoita minulle, kun @{name} julkaisee",
  "account.endorse": "Suosittele profiilissasi",
  "account.featured_tags.last_status_at": "Viimeisin viesti {date}",
  "account.featured_tags.last_status_never": "Ei viestejä",
  "account.featured_tags.title": "Käyttäjän {name} esillä olevat aihetunnisteet",
  "account.featured_tags.last_status_at": "Viimeisin julkaisu {date}",
  "account.featured_tags.last_status_never": "Ei julkaisuja",
  "account.featured_tags.title": "Käyttäjän {name} esille nostetut aihetunnisteet",
  "account.follow": "Seuraa",
  "account.followers": "seuraaja(t)",
  "account.followers.empty": "Kukaan ei seuraa tätä käyttäjää vielä.",


@@ 54,21 54,21 @@
  "account.muted": "Mykistetty",
  "account.no_bio": "Kuvausta ei ole annettu.",
  "account.open_original_page": "Avaa alkuperäinen sivu",
  "account.posts": "viesti(t)",
  "account.posts_with_replies": "Viestit ja vastaukset",
  "account.posts": "Julkaisut",
  "account.posts_with_replies": "Julkaisut ja vastaukset",
  "account.report": "Raportoi @{name}",
  "account.requested": "Odottaa hyväksyntää. Peruuta seuraamispyyntö klikkaamalla",
  "account.requested": "Odottaa hyväksyntää. Peruuta seuraamispyyntö napsauttamalla",
  "account.requested_follow": "{name} on pyytänyt lupaa seurata sinua",
  "account.share": "Jaa käyttäjän @{name} profiili",
  "account.show_reblogs": "Näytä tehostukset käyttäjältä @{name}",
  "account.statuses_counter": "{count, plural, one {{counter} viesti} other {{counter} viestiä}}",
  "account.show_reblogs": "Näytä käyttäjän @{name} tehostukset",
  "account.statuses_counter": "{count, plural, one {{counter} julkaisu} other {{counter} julkaisua}}",
  "account.unblock": "Poista esto: @{name}",
  "account.unblock_domain": "Salli palvelu {domain}",
  "account.unblock_short": "Poista esto",
  "account.unendorse": "Poista suosittelu profiilistasi",
  "account.unfollow": "Lopeta seuraaminen",
  "account.unmute": "Poista käyttäjän @{name} mykistys",
  "account.unmute_notifications_short": "Kumoa ilmoitusten mykistys",
  "account.unmute_notifications_short": "Poista ilmoitusten mykistys",
  "account.unmute_short": "Poista mykistys",
  "account_note.placeholder": "Lisää muistiinpano napsauttamalla",
  "admin.dashboard.daily_retention": "Käyttäjän säilyminen rekisteröitymisen jälkeiseen päivään mennessä",


@@ 112,7 112,7 @@
  "column.community": "Paikallinen aikajana",
  "column.direct": "Yksityiset maininnat",
  "column.directory": "Selaa profiileja",
  "column.domain_blocks": "Estetyt palvelut",
  "column.domain_blocks": "Estetyt verkkotunnukset",
  "column.favourites": "Suosikit",
  "column.firehose": "Live-syötteet",
  "column.follow_requests": "Seuraamispyynnöt",


@@ 120,7 120,7 @@
  "column.lists": "Listat",
  "column.mutes": "Mykistetyt käyttäjät",
  "column.notifications": "Ilmoitukset",
  "column.pins": "Kiinnitetyt viestit",
  "column.pins": "Kiinnitetyt julkaisut",
  "column.public": "Yleinen aikajana",
  "column_back_button.label": "Takaisin",
  "column_header.hide_settings": "Piilota asetukset",


@@ 128,7 128,7 @@
  "column_header.moveRight_settings": "Siirrä saraketta oikealle",
  "column_header.pin": "Kiinnitä",
  "column_header.show_settings": "Näytä asetukset",
  "column_header.unpin": "Poista kiinnitys",
  "column_header.unpin": "Irrota",
  "column_subheading.settings": "Asetukset",
  "community.column_settings.local_only": "Vain paikalliset",
  "community.column_settings.media_only": "Vain media",


@@ 137,13 137,13 @@
  "compose.language.search": "Hae kieliä...",
  "compose.published.body": "Julkaisusi julkaistiin.",
  "compose.published.open": "Avaa",
  "compose.saved.body": "Viesti tallennettu.",
  "compose.saved.body": "Julkaisu tallennettu.",
  "compose_form.direct_message_warning_learn_more": "Lisätietoja",
  "compose_form.encryption_warning": "Mastodonin viestit eivät ole päästä päähän salattuja. Älä jaa arkaluonteisia tietoja Mastodonissa.",
  "compose_form.encryption_warning": "Mastodonin julkaisut eivät ole päästä päähän salattuja. Älä jaa arkaluonteisia tietoja Mastodonissa.",
  "compose_form.hashtag_warning": "Tätä julkaisua ei voi liittää aihetunnisteisiin, koska se ei ole julkinen. Vain näkyvyydeltään julkisiksi määritettyjä julkaisuja voidaan hakea aihetunnisteiden avulla.",
  "compose_form.lock_disclaimer": "Tilisi ei ole {locked}. Kuka tahansa voi seurata tiliäsi ja nähdä vain seuraajille rajaamasi julkaisut.",
  "compose_form.lock_disclaimer.lock": "lukittu",
  "compose_form.placeholder": "Mitä sinulla on mielessäsi?",
  "compose_form.placeholder": "Mitä mietit?",
  "compose_form.poll.add_option": "Lisää valinta",
  "compose_form.poll.duration": "Äänestyksen kesto",
  "compose_form.poll.option_placeholder": "Valinta {number}",


@@ 167,24 167,24 @@
  "confirmations.cancel_follow_request.confirm": "Peruuta pyyntö",
  "confirmations.cancel_follow_request.message": "Haluatko varmasti peruuttaa pyyntösi seurata profiilia {name}?",
  "confirmations.delete.confirm": "Poista",
  "confirmations.delete.message": "Haluatko varmasti poistaa tämän viestin?",
  "confirmations.delete.message": "Haluatko varmasti poistaa tämän julkaisun?",
  "confirmations.delete_list.confirm": "Poista",
  "confirmations.delete_list.message": "Haluatko varmasti poistaa tämän listan kokonaan?",
  "confirmations.delete_list.message": "Haluatko varmasti poistaa tämän listan pysyvästi?",
  "confirmations.discard_edit_media.confirm": "Hylkää",
  "confirmations.discard_edit_media.message": "Sinulla on tallentamattomia muutoksia median kuvaukseen tai esikatseluun, hylätäänkö ne silti?",
  "confirmations.domain_block.confirm": "Estä koko verkkotunnus",
  "confirmations.domain_block.message": "Haluatko aivan varmasti estää palvelun {domain} täysin? Useimmiten muutama kohdistettu esto tai mykistys on riittävä ja suositeltava toimenpide. Et näe kyseisen sisältöä kyseiseltä verkkoalueelta missään julkisissa aikajanoissa tai ilmoituksissa. Tälle verkkoalueelle kuuluvat seuraajasi poistetaan.",
  "confirmations.domain_block.message": "Haluatko aivan varmasti estää koko verkkotunnuksen {domain}? Useimmiten muutama kohdistettu esto tai mykistys on riittävä ja suositeltava toimi. Et näe sisältöä tästä verkkotunnuksesta millään julkisilla aikajanoilla tai ilmoituksissa. Tähän verkkotunnukseen kuuluvat seuraajasi poistetaan.",
  "confirmations.edit.confirm": "Muokkaa",
  "confirmations.edit.message": "Muokkaaminen nyt korvaa viestin, jota paraikaa työstät. Haluatko varmasti jatkaa?",
  "confirmations.edit.message": "Jos muokkaat viestiä nyt, se korvaa parhaillaan työstämäsi viestin. Haluatko varmasti jatkaa?",
  "confirmations.logout.confirm": "Kirjaudu ulos",
  "confirmations.logout.message": "Haluatko varmasti kirjautua ulos?",
  "confirmations.mute.confirm": "Mykistä",
  "confirmations.mute.explanation": "Tämä toiminto piilottaa heidän julkaisunsa sinulta – mukaan lukien ne, joissa heidät mainitaan – sallien heidän yhä nähdä julkaisusi ja seurata sinua.",
  "confirmations.mute.message": "Haluatko varmasti mykistää profiilin {name}?",
  "confirmations.mute.message": "Haluatko varmasti mykistää käyttäjän {name}?",
  "confirmations.redraft.confirm": "Poista & palauta muokattavaksi",
  "confirmations.redraft.message": "Haluatko varmasti poistaa viestin ja tehdä siitä luonnoksen? Suosikiksi lisäykset sekä tehostukset menetään, ja vastaukset alkuperäisviestiisi jäävät orvoiksi.",
  "confirmations.redraft.message": "Haluatko varmasti poistaa julkaisun ja tehdä siitä luonnoksen? Suosikit ja tehostukset menetetään, ja alkuperäisen julkaisun vastaukset jäävät orvoiksi.",
  "confirmations.reply.confirm": "Vastaa",
  "confirmations.reply.message": "Jos vastaat nyt, vastaus korvaa tällä hetkellä työstämäsi viestin. Oletko varma, että haluat jatkaa?",
  "confirmations.reply.message": "Jos vastaat nyt, vastaus korvaa parhaillaan työstämäsi viestin. Haluatko varmasti jatkaa?",
  "confirmations.unfollow.confirm": "Lopeta seuraaminen",
  "confirmations.unfollow.message": "Haluatko varmasti lakata seuraamasta profiilia {name}?",
  "conversation.delete": "Poista keskustelu",


@@ 193,20 193,20 @@
  "conversation.with": "{names} kanssa",
  "copypaste.copied": "Kopioitu",
  "copypaste.copy_to_clipboard": "Kopioi leikepöydälle",
  "directory.federated": "Koko tunnettu fediverse",
  "directory.federated": "Koko tunnettu fediversumi",
  "directory.local": "Vain palvelusta {domain}",
  "directory.new_arrivals": "Äskettäin saapuneet",
  "directory.recently_active": "Hiljattain aktiiviset",
  "disabled_account_banner.account_settings": "Tilin asetukset",
  "disabled_account_banner.text": "Tilisi {disabledAccount} on tällä hetkellä poissa käytöstä.",
  "dismissable_banner.community_timeline": "Nämä ovat uusimmat julkiset julkaisut käyttäjiltä, joiden tilejä isännöi {domain}.",
  "dismissable_banner.community_timeline": "Nämä ovat viimeisimpiä julkaisuja käyttäjiltä, joiden tili sijaitsee palvelimella {domain}.",
  "dismissable_banner.dismiss": "Hylkää",
  "dismissable_banner.explore_links": "Näistä uutisista puhutaan juuri nyt tällä ja muilla hajautetun verkon palvelimilla.",
  "dismissable_banner.explore_statuses": "Nämä ovat tänään huomiota keräävimpiä sosiaalisen verkon julkaisuja. Tuoreimmat, tehostetuimmat sekä suosikeiksi merkityimmät sijoitetaan listauksessa korkeammalle.",
  "dismissable_banner.explore_tags": "Nämä aihetunnisteet saavat juuri nyt vetovoimaa tällä ja muilla hajautetun verkon palvelimilla olevien ihmisten keskuudessa.",
  "dismissable_banner.public_timeline": "Nämä ovat viimeisimpiä julkaisuja sosiaalisen verkon käyttäjiltä, joita seurataan palvelussa {domain}.",
  "dismissable_banner.explore_links": "Näitä uutisia jaetaan tänään sosiaalisessa verkossa eniten. Uusimmat ja eri käyttäjien eniten lähettämät uutiset nousevat listauksessa korkeimmalle.",
  "dismissable_banner.explore_statuses": "Nämä sosiaalisen verkon julkaisut keräävät tänään eniten huomiota. Uusimmat, tehostetuimmat ja suosikiksi lisätyimmät nousevat listauksessa korkeimmalle.",
  "dismissable_banner.explore_tags": "Nämä sosiaalisen verkon aihetunnisteet keräävät tänään eniten huomiota. Useimman käyttäjän käyttämät aihetunnisteet nousevat listauksessa korkeimmalle.",
  "dismissable_banner.public_timeline": "Nämä ovat viimeisimpiä julkaisuja sosiaalisen verkon käyttäjiltä, joita seurataan palvelimella {domain}.",
  "embed.instructions": "Upota julkaisu verkkosivullesi kopioimalla alla oleva koodi.",
  "embed.preview": "Se tulee näyttämään tältä:",
  "embed.preview": "Tältä se näyttää:",
  "emoji_button.activity": "Aktiviteetit",
  "emoji_button.clear": "Tyhjennä",
  "emoji_button.custom": "Mukautetut",


@@ 218,7 218,7 @@
  "emoji_button.objects": "Esineet",
  "emoji_button.people": "Ihmiset",
  "emoji_button.recent": "Usein käytetyt",
  "emoji_button.search": "Etsi...",
  "emoji_button.search": "Hae...",
  "emoji_button.search_results": "Hakutulokset",
  "emoji_button.symbols": "Symbolit",
  "emoji_button.travel": "Matkailu ja paikat",


@@ 226,25 226,25 @@
  "empty_column.account_timeline": "Ei viestejä täällä.",
  "empty_column.account_unavailable": "Profiilia ei löydy",
  "empty_column.blocks": "Et ole estänyt käyttäjiä.",
  "empty_column.bookmarked_statuses": "Et ole vielä lisännyt viestejä kirjanmerkkeihisi. Kun lisäät yhden, se näkyy tässä.",
  "empty_column.bookmarked_statuses": "Et ole vielä lisännyt julkaisuja kirjanmerkkeihisi. Kun lisäät yhden, se näkyy tässä.",
  "empty_column.community": "Paikallinen aikajana on tyhjä. Kirjoita jotain julkista, niin homma lähtee käyntiin!",
  "empty_column.direct": "Yksityisiä mainintoja ei vielä ole. Jos lähetät tai sinulle lähetetään sellaisia, näet ne täällä.",
  "empty_column.domain_blocks": "Palveluita ei ole vielä estetty.",
  "empty_column.explore_statuses": "Mikään ei trendaa nyt. Tarkista myöhemmin uudelleen!",
  "empty_column.favourited_statuses": "Sinulla ei ole vielä yhtään suosikkiviestiä. Kun lisäät yhden, näkyy se tässä.",
  "empty_column.favourites": "Kukaan ei ole vielä merkinnyt tätä viestiä suosikiksi. Kun joku tekee niin, näkyy asia täällä.",
  "empty_column.follow_requests": "Et ole vielä vastaanottanut seurauspyyntöjä. Saamasi pyynnöt näytetään täällä.",
  "empty_column.followed_tags": "Et ole vielä ottanut yhtään aihetunnistetta seurattavaksesi. Jos tai kun sitten teet niin, ne listautuvat tänne.",
  "empty_column.favourited_statuses": "Sinulla ei ole vielä yhtään suosikkijulkaisua. Kun lisäät sellaisen, näkyy se tässä.",
  "empty_column.favourites": "Kukaan ei ole vielä lisännyt tätä julkaisua suosikkeihinsa. Kun joku tekee niin, tulee hän tähän näkyviin.",
  "empty_column.follow_requests": "Et ole vielä vastaanottanut seuraamispyyntöjä. Saamasi pyynnöt näkyvät täällä.",
  "empty_column.followed_tags": "Et seuraa vielä yhtäkään aihetunnistetta. Kun alat seurata, ne tulevat tähän näkyviin.",
  "empty_column.hashtag": "Tällä aihetunnisteella ei ole vielä mitään.",
  "empty_column.home": "Kotiaikajanasi on tyhjä! Seuraa useampia henkilöjä, niin näet enemmän sisältöä.",
  "empty_column.list": "Tässä luettelossa ei ole vielä mitään. Kun tämän luettelon jäsenet julkaisevat uusia viestejä, ne näkyvät täällä.",
  "empty_column.list": "Tällä listalla ei ole vielä mitään. Kun tämän listan jäsenet lähettävät uusia julkaisuja, ne näkyvät tässä.",
  "empty_column.lists": "Sinulla ei ole vielä yhtään listaa. Kun luot sellaisen, näkyy se tässä.",
  "empty_column.mutes": "Et ole mykistänyt vielä yhtään käyttäjää.",
  "empty_column.notifications": "Sinulla ei ole vielä ilmoituksia. Kun keskustelet muille, näet sen täällä.",
  "empty_column.public": "Täällä ei ole mitään! Kirjoita jotain julkisesti. Voit myös seurata muiden palvelimien käyttäjiä",
  "error.unexpected_crash.explanation": "Sivua ei voi näyttää oikein, johtuen bugista tai ongelmasta selaimen yhteensopivuudessa.",
  "error.unexpected_crash.explanation_addons": "Sivua ei voitu näyttää oikein. Tämä virhe johtuu todennäköisesti selaimen lisäosasta tai automaattisista käännöstyökaluista.",
  "error.unexpected_crash.next_steps": "Kokeile sivun päivitystä. Jos se ei auta, voi Mastodonin käyttö silti olla mahdollista eri selaimella tai natiivilla sovelluksella.",
  "error.unexpected_crash.next_steps": "Kokeile päivittää sivu. Jos se ei auta, voi Mastodonin käyttö ehkä onnistua eri selaimella tai natiivisovelluksella.",
  "error.unexpected_crash.next_steps_addons": "Yritä poistaa ne käytöstä ja päivittää sivu. Jos se ei auta, voit silti käyttää Mastodonia eri selaimen tai sovelluksen kautta.",
  "errors.unexpected_crash.copy_stacktrace": "Kopioi pinon jäljitys leikepöydälle",
  "errors.unexpected_crash.report_issue": "Ilmoita ongelmasta",


@@ 254,28 254,28 @@
  "explore.trending_links": "Uutiset",
  "explore.trending_statuses": "Julkaisut",
  "explore.trending_tags": "Aihetunnisteet",
  "filter_modal.added.context_mismatch_explanation": "Tämä suodatinluokka ei koske asiayhteyttä, jossa olet käyttänyt tätä viestiä. Jos haluat, että viesti suodatetaan myös tässä yhteydessä, sinun on muokattava suodatinta.",
  "filter_modal.added.context_mismatch_title": "Asiayhteys ei täsmää!",
  "filter_modal.added.expired_explanation": "Tämä suodatinluokka on vanhentunut ja sinun on muutettava viimeistä voimassaolon päivää, jotta sitä voidaan käyttää.",
  "filter_modal.added.context_mismatch_explanation": "Tämä suodatinluokka ei koske kontekstia, jossa olet tarkastellut tätä julkaisua. Jos haluat, että julkaisu suodatetaan myös tässä kontekstissa, sinun pitää muokata suodatinta.",
  "filter_modal.added.context_mismatch_title": "Konteksti ei täsmää!",
  "filter_modal.added.expired_explanation": "Tämä suodatinluokka on vanhentunut, joten sinun on muutettava viimeistä voimassaolopäivää, jotta suodatin on voimassa.",
  "filter_modal.added.expired_title": "Vanhentunut suodatin!",
  "filter_modal.added.review_and_configure": "Voit tarkastella tätä suodatinluokkaa ja määrittää sen tarkemmin siirtymällä {settings_link}.",
  "filter_modal.added.review_and_configure": "Voit tarkastella tätä suodatinluokkaa ja määrittää sen tarkemmin kohdassa {settings_link}.",
  "filter_modal.added.review_and_configure_title": "Suodattimen asetukset",
  "filter_modal.added.settings_link": "asetukset-sivulle",
  "filter_modal.added.short_explanation": "Tämä viesti on lisätty seuraavaan suodatinluokkaan: {title}.",
  "filter_modal.added.short_explanation": "Tämä julkaisu on lisätty seuraavaan suodatinluokkaan: {title}.",
  "filter_modal.added.title": "Suodatin lisätty!",
  "filter_modal.select_filter.context_mismatch": "ei sovellu tähän asiayhteyteen",
  "filter_modal.select_filter.context_mismatch": "ei sovellu tähän kontekstiin",
  "filter_modal.select_filter.expired": "vanhentunut",
  "filter_modal.select_filter.prompt_new": "Uusi luokka: {name}",
  "filter_modal.select_filter.search": "Etsi tai luo",
  "filter_modal.select_filter.subtitle": "Käytä olemassa olevaa luokkaa tai luo uusi luokka",
  "filter_modal.select_filter.title": "Suodata tämä viesti",
  "filter_modal.title.status": "Suodata viesti",
  "filter_modal.select_filter.subtitle": "Käytä olemassa olevaa luokkaa tai luo uusi",
  "filter_modal.select_filter.title": "Suodata tämä julkaisu",
  "filter_modal.title.status": "Suodata julkaisu",
  "firehose.all": "Kaikki",
  "firehose.local": "Tämä palvelin",
  "firehose.remote": "Muut palvelimet",
  "follow_request.authorize": "Valtuuta",
  "follow_request.reject": "Hylkää",
  "follow_requests.unlocked_explanation": "Vaikkei tiliäsi ole lukittu, on palvelun {domain} ylläpito arvioinut, että saatat olla halukas tarkistamaan nämä seurauspyynnöt erikseen.",
  "follow_requests.unlocked_explanation": "Vaikkei tiliäsi ole lukittu, palvelimen {domain} ylläpito on arvioinut, että saatat olla halukas tarkistamaan nämä seuraamispyynnöt erikseen.",
  "followed_tags": "Seuratut aihetunnisteet",
  "footer.about": "Tietoja",
  "footer.directory": "Profiilihakemisto",


@@ 307,34 307,34 @@
  "home.column_settings.basic": "Perusasetukset",
  "home.column_settings.show_reblogs": "Näytä tehostukset",
  "home.column_settings.show_replies": "Näytä vastaukset",
  "home.explore_prompt.body": "Kotisyötteesi on sekoitus seuraamistasi aihetunnisteista ja käyttäjistä sekä heidän tehostamistaan viesteistä. Jos se näyttää tällä hetkellä turhan hiljaiselta, saatat haluta:",
  "home.explore_prompt.body": "Kotisyötteesi on sekoitus seuraamiasi aihetunnisteita ja käyttäjiä sekä heidän tehostamiaan julkaisuja. Jos se tuntuu liian hiljaiselta, saatat haluta:",
  "home.explore_prompt.title": "Tämä on tukikohtasi Mastodonissa.",
  "home.hide_announcements": "Piilota ilmoitukset",
  "home.hide_announcements": "Piilota tiedotteet",
  "home.pending_critical_update.body": "Päivitäthän Mastodon-palvelimen mahdollisimman pian!",
  "home.pending_critical_update.link": "Tutustu päivityssisältöihin",
  "home.pending_critical_update.title": "Kriittinen tietoturvapäivitys saatavilla!",
  "home.show_announcements": "Näytä ilmoitukset",
  "interaction_modal.description.favourite": "Mastodon-tilisi myötä voit merkitä julkaisuja suosikeiksi, jolloin osoitat julkaisijoille arvostavasi sisältöä, ja tallennat sitä myös helpommin saatavillesi jatkossa.",
  "interaction_modal.description.follow": "Kun sinulla on Mastodon-tili, voit seurata käyttäjää {name} nähdäksesi hänen viestinsä kotisyötteessäsi.",
  "interaction_modal.description.reblog": "Kun sinulla on tili Mastodonissa, voit tehostaa viestiä ja jakaa sen omien seuraajiesi kanssa.",
  "interaction_modal.description.reply": "Kun sinulla on tili Mastodonissa, voit vastata tähän viestiin.",
  "interaction_modal.login.action": "Palaa aloitussivulle",
  "interaction_modal.login.prompt": "Kotipalvelimesi verkkotunnus (kuten mastodon.social)",
  "home.show_announcements": "Näytä tiedotteet",
  "interaction_modal.description.favourite": "Mastodon-tilillä voit lisätä tämän julkaisun suosikkeihisi osoittaaksesi kirjoittajalle arvostavasi sitä ja tallentaaksesi sen tulevaa käyttöä varten.",
  "interaction_modal.description.follow": "Mastodon-tilillä voit seurata käyttäjää {name} saadaksesi hänen julkaisunsa kotisyötteeseesi.",
  "interaction_modal.description.reblog": "Mastodon-tilillä voit tehostaa tätä julkaisua jakaaksesi sen seuraajiesi kanssa.",
  "interaction_modal.description.reply": "Mastodon-tilillä voit vastata tähän julkaisuun.",
  "interaction_modal.login.action": "Siirry kotiin",
  "interaction_modal.login.prompt": "Kotipalvelimesi verkkotunnus, kuten mastodon.social",
  "interaction_modal.no_account_yet": "Etkö ole vielä Mastodonissa?",
  "interaction_modal.on_another_server": "Toisella palvelimella",
  "interaction_modal.on_this_server": "Tällä palvelimella",
  "interaction_modal.sign_in": "Et ole kirjautunut tälle palvelimelle. Millä palvelimella tilisi sijaitsee?",
  "interaction_modal.sign_in_hint": "Vihje: Se on sama verkkosivusto, jolla loit tilisi. Jos et muista, etsi tervetuliaissähköpostia saapuneista viesteistäsi. Voit myös syöttää koko käyttäjätunnuksesi! (Esimerkki: @Mastodon@mastodon.social)",
  "interaction_modal.sign_in_hint": "Vihje: Se on sama verkkosivusto, jolle rekisteröidyit. Jos et muista, etsi tervetulosähköposti saapuneista viesteistäsi. Voit myös syöttää koko käyttäjätunnuksesi! (Esimerkki: @Mastodon@Mastodon.social)",
  "interaction_modal.title.favourite": "Lisää käyttäjän {name} julkaisu suosikkeihin",
  "interaction_modal.title.follow": "Seuraa {name}",
  "interaction_modal.title.reblog": "Tehosta käyttäjän {name} viestiä",
  "interaction_modal.title.reply": "Vastaa käyttäjän {name} viestiin",
  "interaction_modal.title.follow": "Seuraa käyttäjää {name}",
  "interaction_modal.title.reblog": "Tehosta käyttäjän {name} julkaisua",
  "interaction_modal.title.reply": "Vastaa käyttäjän {name} julkaisuun",
  "intervals.full.days": "{number, plural, one {# päivä} other {# päivää}}",
  "intervals.full.hours": "{number, plural, one {# tunti} other {# tuntia}}",
  "intervals.full.minutes": "{number, plural, one {# minuutti} other {# minuuttia}}",
  "keyboard_shortcuts.back": "Siirry takaisin",
  "keyboard_shortcuts.blocked": "Avaa estettyjen käyttäjien luettelo",
  "keyboard_shortcuts.boost": "Tehosta viestiä",
  "keyboard_shortcuts.boost": "Tehosta julkaisua",
  "keyboard_shortcuts.column": "Kohdista sarakkeeseen",
  "keyboard_shortcuts.compose": "siirry tekstinsyöttöön",
  "keyboard_shortcuts.description": "Kuvaus",


@@ 342,7 342,7 @@
  "keyboard_shortcuts.down": "Siirry listassa alaspäin",
  "keyboard_shortcuts.enter": "Avaa julkaisu",
  "keyboard_shortcuts.favourite": "Lisää julkaisu suosikkeihin",
  "keyboard_shortcuts.favourites": "Avaa suosikkilista",
  "keyboard_shortcuts.favourites": "Avaa suosikkiluettelo",
  "keyboard_shortcuts.federated": "Avaa yleinen aikajana",
  "keyboard_shortcuts.heading": "Pikanäppäimet",
  "keyboard_shortcuts.home": "Avaa kotiaikajana",


@@ 354,16 354,16 @@
  "keyboard_shortcuts.my_profile": "Avaa profiilisi",
  "keyboard_shortcuts.notifications": "Avaa ilmoitukset-valikko",
  "keyboard_shortcuts.open_media": "Avaa media",
  "keyboard_shortcuts.pinned": "Avaa lista kiinnitetyistä viesteistä",
  "keyboard_shortcuts.pinned": "Avaa kiinnitettyjen julkaisujen luettelo",
  "keyboard_shortcuts.profile": "Avaa kirjoittajan profiili",
  "keyboard_shortcuts.reply": "Vastaa viestiin",
  "keyboard_shortcuts.requests": "Avaa lista seurauspyynnöistä",
  "keyboard_shortcuts.reply": "Vastaa julkaisuun",
  "keyboard_shortcuts.requests": "Avaa seuraamispyyntöjen luettelo",
  "keyboard_shortcuts.search": "siirry hakukenttään",
  "keyboard_shortcuts.spoilers": "Näytä/piilota sisältövaroituskenttä",
  "keyboard_shortcuts.start": "avaa \"Aloitus\"",
  "keyboard_shortcuts.toggle_hidden": "näytä/piilota sisältövaroituksella merkitty teksti",
  "keyboard_shortcuts.toggle_sensitivity": "näytä/piilota media",
  "keyboard_shortcuts.toot": "Luo uusi viesti",
  "keyboard_shortcuts.toot": "Luo uusi julkaisu",
  "keyboard_shortcuts.unfocus": "Poistu teksti-/hakukentästä",
  "keyboard_shortcuts.up": "Siirry listassa ylöspäin",
  "lightbox.close": "Sulje",


@@ 372,19 372,19 @@
  "lightbox.next": "Seuraava",
  "lightbox.previous": "Edellinen",
  "limited_account_hint.action": "Näytä profiili joka tapauksessa",
  "limited_account_hint.title": "Palvelun {domain} ylläpito on piilottanut tämän profiilin.",
  "limited_account_hint.title": "Palvelun {domain} valvojat ovat piilottaneet tämän profiilin.",
  "link_preview.author": "Julkaissut {name}",
  "lists.account.add": "Lisää listaan",
  "lists.account.remove": "Poista listasta",
  "lists.account.add": "Lisää listalle",
  "lists.account.remove": "Poista listalta",
  "lists.delete": "Poista lista",
  "lists.edit": "Muokkaa listaa",
  "lists.edit.submit": "Vaihda otsikko",
  "lists.exclusive": "Piilota nämä julkaisut kotiaikajanaltasi",
  "lists.edit.submit": "Vaihda nimi",
  "lists.exclusive": "Piilota nämä julkaisut kotisyötteestä",
  "lists.new.create": "Lisää lista",
  "lists.new.title_placeholder": "Uuden listan nimi",
  "lists.replies_policy.followed": "Jokainen seurattu käyttäjä",
  "lists.replies_policy.list": "Listan jäsenet",
  "lists.replies_policy.none": "Ei kukaan",
  "lists.replies_policy.followed": "Jokaiselle seuratulle käyttäjälle",
  "lists.replies_policy.list": "Listan jäsenille",
  "lists.replies_policy.none": "Ei kellekään",
  "lists.replies_policy.title": "Näytä vastaukset:",
  "lists.search": "Etsi seuraamistasi henkilöistä",
  "lists.subheading": "Omat listasi",


@@ 400,23 400,23 @@
  "navigation_bar.blocks": "Estetyt käyttäjät",
  "navigation_bar.bookmarks": "Kirjanmerkit",
  "navigation_bar.community_timeline": "Paikallinen aikajana",
  "navigation_bar.compose": "Julkaise",
  "navigation_bar.compose": "Kirjoita uusi julkaisu",
  "navigation_bar.direct": "Yksityiset maininnat",
  "navigation_bar.discover": "Löydä uutta",
  "navigation_bar.domain_blocks": "Estetyt palvelut",
  "navigation_bar.domain_blocks": "Estetyt verkkotunnukset",
  "navigation_bar.edit_profile": "Muokkaa profiilia",
  "navigation_bar.explore": "Selaa",
  "navigation_bar.favourites": "Suosikit",
  "navigation_bar.filters": "Mykistetyt sanat",
  "navigation_bar.follow_requests": "Seuraamispyynnöt",
  "navigation_bar.followed_tags": "Seuratut aihetunnisteet",
  "navigation_bar.follows_and_followers": "Seurattavat ja seuraajat",
  "navigation_bar.follows_and_followers": "Seuratut ja seuraajat",
  "navigation_bar.lists": "Listat",
  "navigation_bar.logout": "Kirjaudu ulos",
  "navigation_bar.mutes": "Mykistetyt käyttäjät",
  "navigation_bar.opened_in_classic_interface": "Julkaisut, profiilit sekä tietyt muut sivut avataan oletuksena perinteisessä käyttöliittymässä.",
  "navigation_bar.opened_in_classic_interface": "Julkaisut, profiilit ja tietyt muut sivut avautuvat oletuksena perinteiseen web-käyttöliittymään.",
  "navigation_bar.personal": "Henkilökohtainen",
  "navigation_bar.pins": "Kiinnitetyt viestit",
  "navigation_bar.pins": "Kiinnitetyt julkaisut",
  "navigation_bar.preferences": "Asetukset",
  "navigation_bar.public_timeline": "Yleinen aikajana",
  "navigation_bar.search": "Haku",


@@ 430,9 430,9 @@
  "notification.mention": "{name} mainitsi sinut",
  "notification.own_poll": "Äänestyksesi on päättynyt",
  "notification.poll": "Äänestys, johon osallistuit, on päättynyt",
  "notification.reblog": "{name} tehosti viestiäsi",
  "notification.status": "{name} julkaisi juuri viestin",
  "notification.update": "{name} muokkasi viestiä",
  "notification.reblog": "{name} tehosti julkaisuasi",
  "notification.status": "{name} julkaisi juuri",
  "notification.update": "{name} muokkasi julkaisua",
  "notifications.clear": "Tyhjennä ilmoitukset",
  "notifications.clear_confirmation": "Haluatko varmasti poistaa kaikki ilmoitukset pysyvästi?",
  "notifications.column_settings.admin.report": "Uudet ilmoitukset:",


@@ 446,7 446,7 @@
  "notifications.column_settings.follow_request": "Uudet seuraamispyynnöt:",
  "notifications.column_settings.mention": "Maininnat:",
  "notifications.column_settings.poll": "Äänestyksen tulokset:",
  "notifications.column_settings.push": "Push-ilmoitukset",
  "notifications.column_settings.push": "Puskuilmoitukset",
  "notifications.column_settings.reblog": "Tehostukset:",
  "notifications.column_settings.show": "Näytä sarakkeessa",
  "notifications.column_settings.sound": "Äänimerkki",


@@ 473,11 473,11 @@
  "onboarding.action.back": "Palaa takaisin",
  "onboarding.actions.back": "Palaa takaisin",
  "onboarding.actions.go_to_explore": "Siirry suosituimpien aiheiden syötteeseen",
  "onboarding.actions.go_to_home": "Siirry kotisyötteeseen",
  "onboarding.actions.go_to_home": "Siirry kotisyötteeseeni",
  "onboarding.compose.template": "Tervehdys #Mastodon!",
  "onboarding.follows.empty": "Valitettavasti tuloksia ei voida näyttää juuri nyt. Voit kokeilla hakua tai selata tutustumissivua löytääksesi seurattavaa, tai yrittää myöhemmin uudelleen.",
  "onboarding.follows.lead": "Kokoat oman kotisyötteesi itse. Mitä enemmän ihmisiä seuraat, sitä aktiivisempi ja kiinnostavampi syöte on. Nämä profiilit voivat olla alkuun hyvä lähtökohta — voit aina lopettaa niiden seuraamisen myöhemmin!",
  "onboarding.follows.title": "Suosittua Mastodonissa",
  "onboarding.follows.title": "Mukauta kotisyötettäsi",
  "onboarding.share.lead": "Kerro ihmisille, kuinka he voivat löytää sinut Mastodonista!",
  "onboarding.share.message": "Olen {username} #Mastodon'issa! Seuraa minua osoitteessa {url}",
  "onboarding.share.next_steps": "Mahdolliset seuraavat vaiheet:",


@@ 493,10 493,10 @@
  "onboarding.steps.setup_profile.title": "Mukauta profiiliasi",
  "onboarding.steps.share_profile.body": "Kerro kavereillesi, kuinka sinut löytää Mastodonista",
  "onboarding.steps.share_profile.title": "Jaa Mastodon-profiilisi",
  "onboarding.tips.2fa": "<strong>Tiesitkö?</strong> Voit lisäsuojata tiliäsi ottamalla kaksivaiheisen todennuksen käyttöön palvelun tiliasetuksista. Ominaisuus toimii haluamasi TOTP-todennussovelluksen avulla, eikä käyttö edellytä puhelinnumeron antamista!",
  "onboarding.tips.accounts_from_other_servers": "<strong>Tiesitkö?</strong> Koska Mastodon kuuluu hajautettuun verkkoon, osa kohtaamistasi profiileista sijaitsee muilla palvelimilla kuin sinun. Voit silti viestiä saumattomasti heidän kanssaan! Heidän palvelimensa ilmaistaan käyttäjänimen perässä!",
  "onboarding.tips.2fa": "<strong>Tiesitkö?</strong> Voit suojata tilisi ottamalla kaksivaiheisen todennuksen käyttöön tilisi asetuksista. Se toimii millä tahansa TOTP-sovelluksella, eikä sen käyttö edellytä puhelinnumeroa!",
  "onboarding.tips.accounts_from_other_servers": "<strong>Tiesitkö?</strong> Koska Mastodon on hajautettu, osa kohtaamistasi profiileista sijaitsee muilla kuin sinun palvelimellasi. Voit silti viestiä saumattomasti heidän kanssaan! Heidän palvelimensa mainitaan käyttäjänimen jälkiosassa!",
  "onboarding.tips.migration": "<strong>Tiesitkö?</strong> Jos koet, ettei {domain} ole jatkossa itsellesi hyvä palvelinvalinta, voit siirtyä toiselle Mastodon-palvelimelle menettämättä seuraajiasi. Voit jopa isännöidä omaa palvelintasi!",
  "onboarding.tips.verification": "<strong>Tiesitkö?</strong> Voit vahvistaa tilisi lisäämällä omalle verkkosivustollesi linkin Mastodon-profiiliisi, ja lisäämällä sitten verkkosivustosi osoitteen Mastodon-profiilisi tietoihin. Tämä ei maksa mitään, eikä sinun tarvitse lähetellä mitään asiakirjoja!",
  "onboarding.tips.verification": "<strong>Tiesitkö?</strong> Voit vahvistaa tilisi lisäämällä omalle verkkosivustollesi linkin Mastodon-profiiliisi ja lisäämällä sitten verkkosivustosi osoitteen Mastodon-profiilisi lisäkenttään. Tämä ei maksa mitään, eikä sinun tarvitse lähetellä asiakirjoja!",
  "password_confirmation.exceeds_maxlength": "Salasanan vahvistus ylittää salasanan enimmäispituuden",
  "password_confirmation.mismatching": "Salasanan vahvistus ei täsmää",
  "picture_in_picture.restore": "Laita se takaisin",


@@ 510,15 510,15 @@
  "poll.votes": "{votes, plural, one {# ääni} other {# ääntä}}",
  "poll_button.add_poll": "Lisää äänestys",
  "poll_button.remove_poll": "Poista äänestys",
  "privacy.change": "Muuta viestin näkyvyyttä",
  "privacy.direct.long": "Näkyvissä vain mainituille käyttäjille",
  "privacy.direct.short": "Vain mainitut henkilöt",
  "privacy.private.long": "Näkyvissä vain seuraajille",
  "privacy.change": "Muuta julkaisun näkyvyyttä",
  "privacy.direct.long": "Näkyy vain mainituille käyttäjille",
  "privacy.direct.short": "Vain mainitut käyttäjät",
  "privacy.private.long": "Näkyy vain seuraajille",
  "privacy.private.short": "Vain seuraajat",
  "privacy.public.long": "Näkyvissä kaikille",
  "privacy.public.long": "Näkyy kaikille",
  "privacy.public.short": "Julkinen",
  "privacy.unlisted.long": "Näkyvissä kaikille, mutta jättäen pois hakemisen mahdollisuus",
  "privacy.unlisted.short": "Listaamaton julkinen",
  "privacy.unlisted.long": "Näkyy kaikille, mutta jää pois löytämisominaisuuksista",
  "privacy.unlisted.short": "Listaamaton",
  "privacy_policy.last_updated": "Viimeksi päivitetty {date}",
  "privacy_policy.title": "Tietosuojakäytäntö",
  "refresh": "Päivitä",


@@ 539,11 539,11 @@
  "report.block": "Estä",
  "report.block_explanation": "Et näe hänen viestejään, eikä hän voi nähdä viestejäsi tai seurata sinua. Hän näkevät, että olet estänyt hänet.",
  "report.categories.legal": "Lakiasiat",
  "report.categories.other": "muu",
  "report.categories.other": "Muu",
  "report.categories.spam": "Roskaposti",
  "report.categories.violation": "Sisältö rikkoo yhtä tai useampaa palvelimen sääntöä",
  "report.category.subtitle": "Valitse se, mikä sopii parhaiten",
  "report.category.title": "Kerro meille miksi tämä {type} pitää raportoida",
  "report.category.subtitle": "Valitse sopivin",
  "report.category.title": "Kerro meille, miksi tämä {type} pitää raportoida",
  "report.category.title_account": "profiili",
  "report.category.title_status": "julkaisu",
  "report.close": "Valmis",


@@ 551,7 551,7 @@
  "report.forward": "Välitä kohteeseen {target}",
  "report.forward_hint": "Tämä tili on toisella palvelimella. Haluatko lähettää nimettömän raportin myös sinne?",
  "report.mute": "Mykistä",
  "report.mute_explanation": "Et näe hänen viestejään. Hän voi silti seurata sinua ja nähdä viestisi. Hän ei tiedä, että on mykistetty.",
  "report.mute_explanation": "Et näe hänen julkaisujaan. Hän voi silti seurata sinua ja nähdä julkaisusi. Hän ei tiedä, että hänet on mykistetty.",
  "report.next": "Seuraava",
  "report.placeholder": "Lisäkommentit",
  "report.reasons.dislike": "En pidä siitä",


@@ 564,10 564,10 @@
  "report.reasons.spam_description": "Haitalliset linkit, väärennetyt sitoutumiset tai toistuvat vastaukset",
  "report.reasons.violation": "Se rikkoo palvelimen sääntöjä",
  "report.reasons.violation_description": "Tiedät, että se rikkoo tiettyjä sääntöjä",
  "report.rules.subtitle": "Valitse kaikki jotka sopivat",
  "report.rules.subtitle": "Valitse kaikki sopivat",
  "report.rules.title": "Mitä sääntöjä rikotaan?",
  "report.statuses.subtitle": "Valitse kaikki sopivat",
  "report.statuses.title": "Onko olemassa yhtään viestiä, jotka tukevat tätä raporttia?",
  "report.statuses.title": "Onko julkaisuja, jotka tukevat tätä raporttia?",
  "report.submit": "Lähetä",
  "report.target": "Raportoidaan {target}",
  "report.thanks.take_action": "Tässä on vaihtoehtosi hallita näkemääsi Mastodonissa:",


@@ 576,7 576,7 @@
  "report.thanks.title_actionable": "Kiitos raportista, tutkimme asiaa.",
  "report.unfollow": "Lopeta käyttäjän @{name} seuraaminen",
  "report.unfollow_explanation": "Seuraat tätä tiliä. Estääksesi tilin viestejä näykymästä kotisyötteessäsi, lopeta sen seuraaminen.",
  "report_notification.attached_statuses": "{count, plural, one {{count} viesti} other {{count} viestiä}} liitteenä",
  "report_notification.attached_statuses": "{count, plural, one {{count} julkaisu} other {{count} julkaisua}} liitteenä",
  "report_notification.categories.legal": "Laillinen",
  "report_notification.categories.other": "Muu",
  "report_notification.categories.spam": "Roskaposti",


@@ 588,7 588,7 @@
  "search.quick_action.go_to_account": "Avaa profiili {x}",
  "search.quick_action.go_to_hashtag": "Siirry aihetunnisteeseen {x}",
  "search.quick_action.open_url": "Avaa URL-osoite Mastodonissa",
  "search.quick_action.status_search": "Julkaisut, jotka vastaavat hakua {x}",
  "search.quick_action.status_search": "Julkaisut haulla {x}",
  "search.search_or_paste": "Etsi tai kirjoita URL-osoite",
  "search_popout.full_text_search_disabled_message": "Ei saatavilla palvelimella {domain}.",
  "search_popout.language_code": "ISO-kielikoodi",


@@ 602,8 602,8 @@
  "search_results.hashtags": "Aihetunnisteet",
  "search_results.nothing_found": "Näille hakusanoille ei löytynyt mitään",
  "search_results.see_all": "Näytä kaikki",
  "search_results.statuses": "Viestit",
  "search_results.title": "Etsi {q}",
  "search_results.statuses": "Julkaisut",
  "search_results.title": "Hae {q}",
  "server_banner.about_active_users": "Palvelinta käyttäneet ihmiset viimeisen 30 päivän aikana (kuukauden aktiiviset käyttäjät)",
  "server_banner.active_users": "aktiivista käyttäjää",
  "server_banner.administered_by": "Ylläpitäjä:",


@@ 613,15 613,15 @@
  "sign_in_banner.create_account": "Luo tili",
  "sign_in_banner.sign_in": "Kirjaudu",
  "sign_in_banner.sso_redirect": "Kirjaudu tai rekisteröidy",
  "sign_in_banner.text": "Kirjaudu sisään seurataksesi profiileja tai aihetunnisteita, merkitäksesi julkaisuja suosikeiksi, julkaistaksesi sekä vastataksesi julkaisuihin. Voit vuorovaikuttaa myös eri palvelimella sijaitsevalta tililtäsi.",
  "status.admin_account": "Avaa moderaattorinäkymä tilistä @{name}",
  "status.admin_domain": "Avaa palvelimen {domain} moderointitoiminnot",
  "status.admin_status": "Avaa viesti moderointinäkymässä",
  "sign_in_banner.text": "Kirjaudu sisään, niin voit seurata profiileja tai aihetunnisteita, lisätä julkaisuja suosikkeihin, jakaa julkaisuja ja vastata niihin. Voit olla vuorovaikutuksessa myös eri palvelimella olevalta tililtäsi.",
  "status.admin_account": "Avaa tilin @{name} valvontanäkymä",
  "status.admin_domain": "Avaa palvelimen {domain} valvontanäkymä",
  "status.admin_status": "Avaa julkaisu valvontanäkymässä",
  "status.block": "Estä @{name}",
  "status.bookmark": "Tallenna kirjanmerkki",
  "status.bookmark": "Lisää kirjanmerkki",
  "status.cancel_reblog_private": "Peru tehostus",
  "status.cannot_reblog": "Tätä viestiä ei voi tehostaa",
  "status.copy": "Kopioi linkki viestiin",
  "status.cannot_reblog": "Tätä julkaisua ei voi tehostaa",
  "status.copy": "Kopioi julkaisun linkki",
  "status.delete": "Poista",
  "status.detailed_status": "Yksityiskohtainen keskustelunäkymä",
  "status.direct": "Mainitse @{name} yksityisesti",


@@ 630,8 630,8 @@
  "status.edited": "Muokattu {date}",
  "status.edited_x_times": "Muokattu {count, plural, one {{count} kerran} other {{count} kertaa}}",
  "status.embed": "Upota",
  "status.favourite": "Merkitse suosikiksi",
  "status.filter": "Suodata tämä viesti",
  "status.favourite": "Suosikki",
  "status.filter": "Suodata tämä julkaisu",
  "status.filtered": "Suodatettu",
  "status.hide": "Piilota julkaisu",
  "status.history.created": "{name} luotu {date}",


@@ 644,27 644,27 @@
  "status.more": "Lisää",
  "status.mute": "Mykistä @{name}",
  "status.mute_conversation": "Mykistä keskustelu",
  "status.open": "Laajenna viesti",
  "status.open": "Laajenna julkaisu",
  "status.pin": "Kiinnitä profiiliin",
  "status.pinned": "Kiinnitetty julkaisu",
  "status.read_more": "Näytä enemmän",
  "status.reblog": "Tehosta",
  "status.reblog_private": "Tehosta alkuperäiselle yleisölle",
  "status.reblogged_by": "{name} tehosti",
  "status.reblogs.empty": "Kukaan ei ole vielä tehostanut tätä viestiä. Kun joku tekee niin, näkyy kyseinen henkilö tässä.",
  "status.reblogs.empty": "Kukaan ei ole vielä tehostanut tätä julkaisua. Kun joku tekee niin, tulee hän tähän näkyviin.",
  "status.redraft": "Poista ja palauta muokattavaksi",
  "status.remove_bookmark": "Poista kirjanmerkki",
  "status.replied_to": "Vastattu {name}",
  "status.reply": "Vastaa",
  "status.replyAll": "Vastaa ketjuun",
  "status.report": "Raportoi @{name}",
  "status.sensitive_warning": "Arkaluontoista sisältöä",
  "status.sensitive_warning": "Arkaluonteista sisältöä",
  "status.share": "Jaa",
  "status.show_filter_reason": "Näytä joka tapauksessa",
  "status.show_less": "Näytä vähemmän",
  "status.show_less_all": "Näytä vähemmän kaikista",
  "status.show_less_all": "Näytä kaikista vähemmän",
  "status.show_more": "Näytä lisää",
  "status.show_more_all": "Näytä lisää kaikista",
  "status.show_more_all": "Näytä kaikista enemmän",
  "status.show_original": "Näytä alkuperäinen",
  "status.title.with_attachments": "{user} liitti {attachmentCount, plural, one {{attachmentCount} tiedoston} other {{attachmentCount} tiedostoa}}",
  "status.translate": "Käännä",


@@ 672,7 672,7 @@
  "status.uncached_media_warning": "Esikatselu ei ole käytettävissä",
  "status.unmute_conversation": "Poista keskustelun mykistys",
  "status.unpin": "Irrota profiilista",
  "subscribed_languages.lead": "Vain valituilla kielillä julkaistut viestit näkyvät etusivullasi ja aikajanalla muutoksen jälkeen. Valitse ei mitään, jos haluat vastaanottaa viestejä kaikilla kielillä.",
  "subscribed_languages.lead": "Vain valituilla kielillä kirjoitetut julkaisut näkyvät koti- ja lista-aikajanoillasi muutoksen jälkeen. Älä valitse mitään, jos haluat nähdä julkaisuja kaikilla kielillä.",
  "subscribed_languages.save": "Tallenna muutokset",
  "subscribed_languages.target": "Vaihda tilatut kielet {target}",
  "tabs_bar.home": "Koti",


@@ 685,8 685,8 @@
  "timeline_hint.remote_resource_not_displayed": "{resource} muilta palvelimilta ei näytetä.",
  "timeline_hint.resources.followers": "Seuraajat",
  "timeline_hint.resources.follows": "seurattua",
  "timeline_hint.resources.statuses": "Vanhemmat viestit",
  "trends.counter_by_accounts": "{count, plural, one {{counter} henkilö} other {{counter} henkilöä}} viimeisten {days, plural, one {päivän} other {{days} päivän}}",
  "timeline_hint.resources.statuses": "Vanhemmat julkaisut",
  "trends.counter_by_accounts": "{count, plural, one {{counter} henkilö} other {{counter} henkilöä}} {days, plural, one {viimeisen päivän} other {viimeisten {days} päivän}} aikana",
  "trends.trending_now": "Suosittua nyt",
  "ui.beforeunload": "Luonnos häviää, jos poistut Mastodonista.",
  "units.short.billion": "{count} mrd.",


@@ 711,11 711,11 @@
  "upload_modal.detect_text": "Tunnista teksti kuvasta",
  "upload_modal.edit_media": "Muokkaa mediaa",
  "upload_modal.hint": "Klikkaa tai vedä ympyrä esikatselussa valitaksesi keskipiste, joka näkyy aina pienoiskuvissa.",
  "upload_modal.preparing_ocr": "Valmistellaan OCR…",
  "upload_modal.preparing_ocr": "Valmistellaan tekstintunnistusta…",
  "upload_modal.preview_label": "Esikatselu ({ratio})",
  "upload_progress.label": "Ladataan...",
  "upload_progress.processing": "Käsitellään…",
  "username.taken": "Kyseinen käyttäjätunnus on jo käytössä. Kokeile eri tunnusta",
  "username.taken": "Käyttäjätunnus on jo varattu. Kokeile toista",
  "video.close": "Sulje video",
  "video.download": "Lataa tiedosto",
  "video.exit_fullscreen": "Poistu koko näytön tilasta",


@@ 725,5 725,5 @@
  "video.mute": "Mykistä ääni",
  "video.pause": "Keskeytä",
  "video.play": "Toista",
  "video.unmute": "Poista äänen mykistys"
  "video.unmute": "Palauta ääni"
}

M app/javascript/mastodon/locales/fr-QC.json => app/javascript/mastodon/locales/fr-QC.json +1 -1
@@ 308,7 308,7 @@
  "home.column_settings.show_reblogs": "Afficher boosts",
  "home.column_settings.show_replies": "Afficher réponses",
  "home.explore_prompt.body": "Votre fil d'actualité aura un mélange de messages depuis les hashtags que vous avez choisi de suivre, les personnes que vous avez choisi de suivre, et les messages qu'ils boostent. Si ça vous semble trop calme à votre goût, n’hésitez pas à :",
  "home.explore_prompt.title": "C'est chez vous dans Mastadon.",
  "home.explore_prompt.title": "C'est votre page d'accueil dans Mastodon.",
  "home.hide_announcements": "Masquer les annonces",
  "home.pending_critical_update.body": "Veuillez mettre à jour votre serveur Mastodon dès que possible !",
  "home.pending_critical_update.link": "Voir les mises à jour",

M app/javascript/mastodon/locales/hy.json => app/javascript/mastodon/locales/hy.json +15 -0
@@ 17,6 17,7 @@
  "account.blocked": "Արգելափակուած է",
  "account.browse_more_on_origin_server": "Դիտել աւելին իրական պրոֆիլում",
  "account.cancel_follow_request": "Withdraw follow request",
  "account.direct": "Մասնաւոր յիշատակում @{name}",
  "account.disable_notifications": "Ծանուցումները անջատել @{name} գրառումների համար",
  "account.domain_blocked": "Տիրոյթը արգելափակուած է",
  "account.edit_profile": "Խմբագրել հաշիւը",


@@ 85,9 86,11 @@
  "column.blocks": "Արգելափակուած օգտատէրեր",
  "column.bookmarks": "Էջանիշեր",
  "column.community": "Տեղական հոսք",
  "column.direct": "Մասնաւոր յիշատակումներ",
  "column.directory": "Զննել անձնական էջերը",
  "column.domain_blocks": "Թաքցուած տիրոյթները",
  "column.favourites": "Հաւանածներ",
  "column.firehose": "Հոսքեր",
  "column.follow_requests": "Հետեւելու հայցեր",
  "column.home": "Հիմնական",
  "column.lists": "Ցանկեր",


@@ 135,6 138,7 @@
  "confirmations.block.block_and_report": "Արգելափակել եւ բողոքել",
  "confirmations.block.confirm": "Արգելափակել",
  "confirmations.block.message": "Վստա՞հ ես, որ ուզում ես արգելափակել {name}֊ին։",
  "confirmations.cancel_follow_request.confirm": "Կասեցնել հայցը",
  "confirmations.delete.confirm": "Ջնջել",
  "confirmations.delete.message": "Վստա՞հ ես, որ ուզում ես ջնջել այս գրառումը։",
  "confirmations.delete_list.confirm": "Ջնջել",


@@ 216,6 220,8 @@
  "filter_modal.select_filter.search": "Որոնել կամ ստեղծել",
  "filter_modal.select_filter.title": "Զտել այս գրառումը",
  "firehose.all": "Բոլորը",
  "firehose.local": "Այս հանգոյցը",
  "firehose.remote": "Այլ հանգոյցներ",
  "follow_request.authorize": "Վաւերացնել",
  "follow_request.reject": "Մերժել",
  "follow_requests.unlocked_explanation": "Այս հարցումը ուղարկուած է հաշուից, որի համար {domain}-ի անձնակազմը միացրել է ձեռքով ստուգում։",


@@ 246,6 252,8 @@
  "home.column_settings.show_replies": "Ցուցադրել պատասխանները",
  "home.hide_announcements": "Թաքցնել յայտարարութիւնները",
  "home.show_announcements": "Ցուցադրել յայտարարութիւնները",
  "interaction_modal.on_another_server": "Այլ հանգոյցում",
  "interaction_modal.on_this_server": "Այս հանգոյցում",
  "interaction_modal.title.favourite": "Հաւանել {name}-ի գրառումը",
  "interaction_modal.title.follow": "Հետեւել {name}-ին",
  "interaction_modal.title.reblog": "Տարածել {name}-ի գրառումը",


@@ 316,6 324,7 @@
  "navigation_bar.bookmarks": "Էջանիշեր",
  "navigation_bar.community_timeline": "Տեղական հոսք",
  "navigation_bar.compose": "Ստեղծել նոր գրառում",
  "navigation_bar.direct": "Մասնաւոր յիշատակումներ",
  "navigation_bar.discover": "Բացայայտել",
  "navigation_bar.domain_blocks": "Թաքցուած տիրոյթներ",
  "navigation_bar.edit_profile": "Խմբագրել հաշիւը",


@@ 451,11 460,15 @@
  "report_notification.attached_statuses": "{count, plural, one {# post} other {# posts}} attached",
  "report_notification.categories.other": "Այլ",
  "report_notification.categories.spam": "Սպամ",
  "search.no_recent_searches": "Որոնման պատմութիւն չկայ",
  "search.placeholder": "Փնտրել",
  "search.search_or_paste": "Որոնել կամ դնել URL",
  "search_popout.options": "Որոնման տեսակները",
  "search_popout.recent": "Վերջին որոնումները",
  "search_results.accounts": "Հաշիւներ",
  "search_results.all": "Բոլորը",
  "search_results.hashtags": "Պիտակներ",
  "search_results.see_all": "Տեսնել բոլորը",
  "search_results.statuses": "Գրառումներ",
  "search_results.title": "Որոնել {q}-ն",
  "server_banner.active_users": "ակտիւ մարդիկ",


@@ 475,6 488,8 @@
  "status.copy": "Պատճէնել գրառման յղումը",
  "status.delete": "Ջնջել",
  "status.detailed_status": "Շղթայի ընդլայնուած դիտում",
  "status.direct": "Մասնաւոր յիշատակում @{name}",
  "status.direct_indicator": "Մասնաւոր յիշատակում",
  "status.edit": "Խմբագրել",
  "status.edited": "Խմբագրուել է՝ {date}",
  "status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}",

M app/javascript/mastodon/locales/ja.json => app/javascript/mastodon/locales/ja.json +8 -8
@@ 1,13 1,13 @@
{
  "about.blocks": "制限中のサーバー",
  "about.contact": "連絡先",
  "about.disclaimer": "Mastodonは自由なオープンソースソフトウェアでMastodon gGmbHの商標です。",
  "about.domain_blocks.no_reason_available": "制限理由",
  "about.domain_blocks.preamble": "Mastodonでは連合先のどのようなサーバーのユーザーとも交流できます。ただし次のサーバーには例外が設定されています。",
  "about.disclaimer": "Mastodonは自由なオープンソースソフトウェアであり、Mastodon gGmbHの商標です。",
  "about.domain_blocks.no_reason_available": "理由未記載",
  "about.domain_blocks.preamble": "Mastodonでは原則的にあらゆるサーバー同士で交流したり、互いの投稿を読んだりできますが、当サーバーでは例外的に次のような制限を設けています。",
  "about.domain_blocks.silenced.explanation": "このサーバーのプロフィールやコンテンツは、明示的に検索したり、フォローでオプトインしない限り、通常は表示されません。",
  "about.domain_blocks.silenced.title": "制限",
  "about.domain_blocks.suspended.explanation": "これらのサーバーからのデータは処理されず、保存や変換もされません。該当するユーザーとの交流もできません。",
  "about.domain_blocks.suspended.title": "停止済み",
  "about.domain_blocks.suspended.title": "停止中",
  "about.not_available": "この情報はこのサーバーでは利用できません。",
  "about.powered_by": "{mastodon}による分散型ソーシャルメディア",
  "about.rules": "サーバーのルール",


@@ 301,7 301,7 @@
  "hashtag.counter_by_uses_today": "今日{count, plural, other {{counter}件}}",
  "hashtag.follow": "ハッシュタグをフォローする",
  "hashtag.unfollow": "ハッシュタグのフォローを解除",
  "hashtags.and_other": "+{count, plural, other {#件}}",
  "hashtags.and_other": "ほか{count, plural, other {#個}}",
  "home.actions.go_to_explore": "話題をさがす",
  "home.actions.go_to_suggestions": "フォローするユーザーを検索",
  "home.column_settings.basic": "基本設定",


@@ 405,7 405,7 @@
  "navigation_bar.discover": "見つける",
  "navigation_bar.domain_blocks": "ブロックしたドメイン",
  "navigation_bar.edit_profile": "プロフィールを編集",
  "navigation_bar.explore": "エクスプローラー",
  "navigation_bar.explore": "探索する",
  "navigation_bar.favourites": "お気に入り",
  "navigation_bar.filters": "フィルター設定",
  "navigation_bar.follow_requests": "フォローリクエスト",


@@ 424,7 424,7 @@
  "not_signed_in_indicator.not_signed_in": "この機能を使うにはログインする必要があります。",
  "notification.admin.report": "{name}さんが{target}さんを通報しました",
  "notification.admin.sign_up": "{name}さんがサインアップしました",
  "notification.favourite": "{name}さんがあなたの投稿をお気に入りに追加しました。",
  "notification.favourite": "{name}さんがお気に入りしました",
  "notification.follow": "{name}さんにフォローされました",
  "notification.follow_request": "{name}さんがあなたにフォローリクエストしました",
  "notification.mention": "{name}さんがあなたに返信しました",


@@ 518,7 518,7 @@
  "privacy.public.long": "誰でも閲覧可",
  "privacy.public.short": "公開",
  "privacy.unlisted.long": "誰でも閲覧可、サイレント",
  "privacy.unlisted.short": "未収載",
  "privacy.unlisted.short": "非収載",
  "privacy_policy.last_updated": "{date}に更新",
  "privacy_policy.title": "プライバシーポリシー",
  "refresh": "更新",

M app/javascript/mastodon/locales/lv.json => app/javascript/mastodon/locales/lv.json +39 -39
@@ 13,7 13,7 @@
  "about.rules": "Servera noteikumi",
  "account.account_note_header": "Piezīme",
  "account.add_or_remove_from_list": "Pievienot vai Noņemt no sarakstiem",
  "account.badges.bot": "Robots",
  "account.badges.bot": "Automatizēts",
  "account.badges.group": "Grupa",
  "account.block": "Bloķēt @{name}",
  "account.block_domain": "Bloķēt domēnu {domain}",


@@ 26,7 26,7 @@
  "account.domain_blocked": "Domēns ir bloķēts",
  "account.edit_profile": "Rediģēt profilu",
  "account.enable_notifications": "Paziņot man, kad @{name} publicē ierakstu",
  "account.endorse": "Izcelt profilā",
  "account.endorse": "Izcelts profilā",
  "account.featured_tags.last_status_at": "Beidzamā ziņa {date}",
  "account.featured_tags.last_status_never": "Ierakstu nav",
  "account.featured_tags.title": "{name} izceltie tēmturi",


@@ 102,7 102,7 @@
  "bundle_modal_error.message": "Kaut kas nogāja greizi, ielādējot šo komponenti.",
  "bundle_modal_error.retry": "Mēģināt vēlreiz",
  "closed_registrations.other_server_instructions": "Tā kā Mastodon ir decentralizēts, tu vari izveidot kontu citā serverī un joprojām mijiedarboties ar šo.",
  "closed_registrations_modal.description": "Pašlaik nav iespējams izveidot kontu domēnā {domain}, taču ņem vērā, ka tev nav nepieciešams konts tieši domēnā {domain}, lai izmantotu Mastodon.",
  "closed_registrations_modal.description": "Pašlaik nav iespējams izveidot kontu domēnā {domain}, taču ņem vērā, ka tev nav nepieciešams konts tieši {domain}, lai lietotu Mastodon.",
  "closed_registrations_modal.find_another_server": "Atrast citu serveri",
  "closed_registrations_modal.preamble": "Mastodon ir decentralizēts, tāpēc neatkarīgi no tā, kur tu izveido savu kontu, varēsi sekot līdzi un sazināties ar ikvienu šajā serverī. Tu pat vari vadīt to pats!",
  "closed_registrations_modal.title": "Reģistrēšanās Mastodon",


@@ 113,7 113,7 @@
  "column.direct": "Privāti pieminēti",
  "column.directory": "Pārlūkot profilus",
  "column.domain_blocks": "Bloķētie domēni",
  "column.favourites": "Iecienīti",
  "column.favourites": "Iecienītie",
  "column.firehose": "Tiešraides plūsmas",
  "column.follow_requests": "Sekošanas pieprasījumi",
  "column.home": "Sākums",


@@ 151,7 151,7 @@
  "compose_form.poll.switch_to_multiple": "Mainīt aptaujas veidu, lai atļautu vairākas izvēles",
  "compose_form.poll.switch_to_single": "Mainīt aptaujas veidu, lai atļautu vienu izvēli",
  "compose_form.publish": "Publicēt",
  "compose_form.publish_form": "Publicēt",
  "compose_form.publish_form": "Jauns ieraksts",
  "compose_form.publish_loud": "{publish}!",
  "compose_form.save_changes": "Saglabāt izmaiņas",
  "compose_form.sensitive.hide": "{count, plural, one {Atzīmēt multividi kā sensitīvu} other {Atzīmēt multivides kā sensitīvas}}",


@@ 161,13 161,13 @@
  "compose_form.spoiler.unmarked": "Pievienot satura brīdinājumu",
  "compose_form.spoiler_placeholder": "Ieraksti savu brīdinājumu šeit",
  "confirmation_modal.cancel": "Atcelt",
  "confirmations.block.block_and_report": "Bloķēt un sūdzēties",
  "confirmations.block.block_and_report": "Bloķēt un ziņot",
  "confirmations.block.confirm": "Bloķēt",
  "confirmations.block.message": "Vai tiešām vēlies bloķēt {name}?",
  "confirmations.cancel_follow_request.confirm": "Atsaukt pieprasījumu",
  "confirmations.cancel_follow_request.message": "Vai tiešām vēlies atsaukt pieprasījumu sekot {name}?",
  "confirmations.delete.confirm": "Dzēst",
  "confirmations.delete.message": "Vai tiešām vēlies dzēst šo ziņu?",
  "confirmations.delete.message": "Vai tiešām vēlies dzēst šo ierakstu?",
  "confirmations.delete_list.confirm": "Dzēst",
  "confirmations.delete_list.message": "Vai tiešam vēlies neatgriezeniski dzēst šo sarakstu?",
  "confirmations.discard_edit_media.confirm": "Atmest",


@@ 202,7 202,7 @@
  "dismissable_banner.community_timeline": "Šīs ir jaunākās publiskās ziņas no personām, kuru kontus mitina {domain}.",
  "dismissable_banner.dismiss": "Atcelt",
  "dismissable_banner.explore_links": "Par šiem jaunumiem šobrīd runā cilvēki šajā un citos decentralizētā tīkla serveros.",
  "dismissable_banner.explore_statuses": "Šīs ir ziņas no visa sociālā tīkla, kas šodien kļūst arvien populārākas. Jaunākas ziņas ar vairāk uzlabojumiem un iecienītākajām ziņām tiek novērtētas augstāk.",
  "dismissable_banner.explore_statuses": "Ieraksti, kas šobrīd gūst arvien lielāku ievērību visā sociālajā tīklā. Augstāk tiek kārtoti neseni ieraksti, kas pastiprināti un pievienoti izlasēm.",
  "dismissable_banner.explore_tags": "Šie tēmturi šobrīd kļūst arvien populārāki cilvēku vidū šajā un citos decentralizētā tīkla serveros.",
  "dismissable_banner.public_timeline": "Šīs ir jaunākās publiskās ziņas no lietotājiem sociālajā tīmeklī, kurām seko lietotāji domēnā {domain}.",
  "embed.instructions": "Iestrādā šo ziņu savā mājaslapā, kopējot zemāk redzamo kodu.",


@@ 236,7 236,7 @@
  "empty_column.follow_requests": "Šobrīd tev nav sekošanas pieprasījumu. Kad kāds pieteiksies tev sekot, pieprasījums parādīsies šeit.",
  "empty_column.followed_tags": "Tu vēl neesi sekojis nevienam tēmturim. Kad to izdarīsi, tie tiks parādīti šeit.",
  "empty_column.hashtag": "Ar šo tēmturi nekas nav atrodams.",
  "empty_column.home": "Tava mājas laika līnija ir tukša! Lai to aizpildītu, pieseko vairāk cilvēkiem. {suggestions}",
  "empty_column.home": "Tava mājas laikrinda ir tukša! Lai to aizpildītu, pieseko vairāk cilvēkiem.",
  "empty_column.list": "Šis saraksts pašreiz ir tukšs. Kad šī saraksta dalībnieki publicēs jaunas ziņas, tās parādīsies šeit.",
  "empty_column.lists": "Pašreiz tev nav neviena saraksta. Kad tādu izveidosi, tas parādīsies šeit.",
  "empty_column.mutes": "Neviens lietotājs vēl nav apklusināts.",


@@ 309,11 309,11 @@
  "home.column_settings.show_replies": "Rādīt atbildes",
  "home.explore_prompt.body": "Tavā mājas plūsmā būs dažādu ziņu sajaukums no atsaucēm, kurām esi izvēlējies sekot, personām, kurām esi izvēlējies sekot, un ziņām, kuras tās izceļ. Ja tas šķiet pārāk kluss, iespējams, vēlēsies:",
  "home.explore_prompt.title": "Šī ir tava Mastodon mājvieta.",
  "home.hide_announcements": "Slēpt anonsus",
  "home.hide_announcements": "Slēpt paziņojumus",
  "home.pending_critical_update.body": "Lūdzu, pēc iespējas ātrāk atjaunini savu Mastodon serveri!",
  "home.pending_critical_update.link": "Skatīt jauninājumus",
  "home.pending_critical_update.title": "Pieejams kritisks drošības jauninājums!",
  "home.show_announcements": "Rādīt anonsus",
  "home.show_announcements": "Rādīt paziņojumus",
  "interaction_modal.description.favourite": "Ar Mastodon kontu tu vari pievienot šo ziņu izlasei, lai informētu autoru, ka to novērtē, un saglabātu to vēlākai lasīšanai.",
  "interaction_modal.description.follow": "Ar Mastodon kontu tu vari sekot {name}, lai saņemtu viņu ziņas savā mājas plūsmā.",
  "interaction_modal.description.reblog": "Izmantojot kontu Mastodon, tu vari izcelt šo ziņu, lai kopīgotu to ar saviem sekotājiem.",


@@ 369,7 369,7 @@
  "lightbox.close": "Aizvērt",
  "lightbox.compress": "Saspiest attēla skata lodziņu",
  "lightbox.expand": "Izvērst attēla skata lodziņu",
  "lightbox.next": "Nākamais",
  "lightbox.next": "Tālāk",
  "lightbox.previous": "Iepriekšējais",
  "limited_account_hint.action": "Tik un tā rādīt profilu",
  "limited_account_hint.title": "{domain} moderatori ir paslēpuši šo profilu.",


@@ 422,8 422,8 @@
  "navigation_bar.search": "Meklēt",
  "navigation_bar.security": "Drošība",
  "not_signed_in_indicator.not_signed_in": "Lai piekļūtu šim resursam, tev ir jāpierakstās.",
  "notification.admin.report": "{name} sūdzējās par {target}",
  "notification.admin.sign_up": "{name} pierakstījās",
  "notification.admin.report": "{name} ziņoja par {target}",
  "notification.admin.sign_up": "{name} ir pierakstījies",
  "notification.favourite": "{name} pievienoja tavu ziņu izlasei",
  "notification.follow": "{name} uzsāka tev sekot",
  "notification.follow_request": "{name} nosūtīja tev sekošanas pieprasījumu",


@@ 435,7 435,7 @@
  "notification.update": "{name} rediģēja ierakstu",
  "notifications.clear": "Notīrīt paziņojumus",
  "notifications.clear_confirmation": "Vai tiešām vēlies neatgriezeniski notīrīt visus savus paziņojumus?",
  "notifications.column_settings.admin.report": "Jaunas sūdzības:",
  "notifications.column_settings.admin.report": "Jauni ziņojumi:",
  "notifications.column_settings.admin.sign_up": "Jaunas pierakstīšanās:",
  "notifications.column_settings.alert": "Darbvirsmas paziņojumi",
  "notifications.column_settings.favourite": "Izlase:",


@@ 445,7 445,7 @@
  "notifications.column_settings.follow": "Jauni sekotāji:",
  "notifications.column_settings.follow_request": "Jauni sekošanas pieprasījumi:",
  "notifications.column_settings.mention": "Pieminējumi:",
  "notifications.column_settings.poll": "Aptauju rezultāti:",
  "notifications.column_settings.poll": "Aptaujas rezultāti:",
  "notifications.column_settings.push": "Uznirstošie paziņojumi",
  "notifications.column_settings.reblog": "Pastiprinātie ieraksti:",
  "notifications.column_settings.show": "Rādīt kolonnā",


@@ 457,13 457,13 @@
  "notifications.filter.all": "Visi",
  "notifications.filter.boosts": "Pastiprinātie ieraksti",
  "notifications.filter.favourites": "Izlases",
  "notifications.filter.follows": "Sekošana",
  "notifications.filter.follows": "Seko",
  "notifications.filter.mentions": "Pieminējumi",
  "notifications.filter.polls": "Aptauju rezultāti",
  "notifications.filter.polls": "Aptaujas rezultāti",
  "notifications.filter.statuses": "Jaunumi no cilvēkiem, kuriem tu seko",
  "notifications.grant_permission": "Piešķirt atļauju.",
  "notifications.group": "{count} paziņojumi",
  "notifications.mark_as_read": "Atzīmēt visus paziņojumus kā izlasītus",
  "notifications.mark_as_read": "Atzīmēt katru paziņojumu kā izlasītu",
  "notifications.permission_denied": "Darbvirsmas paziņojumi nav pieejami, jo iepriekš tika noraidīts pārlūka atļauju pieprasījums",
  "notifications.permission_denied_alert": "Darbvirsmas paziņojumus nevar iespējot, jo pārlūkprogrammai atļauja tika iepriekš atteikta",
  "notifications.permission_required": "Darbvirsmas paziņojumi nav pieejami, jo nav piešķirta nepieciešamā atļauja.",


@@ 476,23 476,23 @@
  "onboarding.actions.go_to_home": "Dodieties uz manu mājas plūsmu",
  "onboarding.compose.template": "Sveiki, #Mastodon!",
  "onboarding.follows.empty": "Diemžēl pašlaik nevar parādīt rezultātus. Vari mēģināt izmantot meklēšanu vai pārlūkot izpētes lapu, lai atrastu personas, kurām sekot, vai mēģināt vēlreiz vēlāk.",
  "onboarding.follows.lead": "Savu mājas plūsmu veido tu pats. Jo vairāk cilvēkiem tu sekosi, jo aktīvāk un interesantāk viss būs. Šie profili var būt labs sākumpunkts — vēlāk vienmēr varēsi pārstāt sekot!",
  "onboarding.follows.lead": "Tava mājas plūsma ir galvenais veids, kā izbaudīt Mastodon. Jo vairāk cilvēku sekosi, jo aktīvāk un interesantāk tas būs. Lai sāktu, šeit ir daži ieteikumi:",
  "onboarding.follows.title": "Populārs Mastodon",
  "onboarding.share.lead": "Paziņo citiem, kā viņi tevi var atrast Mastodon!",
  "onboarding.share.message": "Es esmu {username} #Mastodon! Nāc sekot man uz {url}",
  "onboarding.share.next_steps": "Iespējamie nākamie soļi:",
  "onboarding.share.title": "Kopīgo savu profilu",
  "onboarding.start.lead": "Tavs jaunais Mastodon konts ir gatavs lietošanai. Lūk, kā tu vari to pilnīgāk izmantot:",
  "onboarding.start.skip": "Vai vēlies izlaist tieši uz priekšu?",
  "onboarding.start.lead": "Tagad tu esat daļa no Mastodon — unikālas, decentralizētas sociālo mediju platformas, kurā tu, nevis algoritms, veido savu pieredzi. Sāksim darbu šajā jaunajā sociālajā jomā:",
  "onboarding.start.skip": "Nav nepieciešama palīdzība darba sākšanai?",
  "onboarding.start.title": "Tev tas izdevās!",
  "onboarding.steps.follow_people.body": "Tu pats veido savu plūsmu. Piepildīsim to ar interesantiem cilvēkiem.",
  "onboarding.steps.follow_people.title": "Sekot {count, plural, one {one person} other {# cilvēkiem}}",
  "onboarding.steps.publish_status.body": "Sveicini pasauli.",
  "onboarding.steps.publish_status.body": "Sveicini pasauli ar tekstu, fotoattēliem, video, vai aptaujām {emoji}",
  "onboarding.steps.publish_status.title": "Izveido savu pirmo ziņu",
  "onboarding.steps.setup_profile.body": "Citi, visticamāk, sazināsies ar tevi, izmantojot aizpildītu profilu.",
  "onboarding.steps.setup_profile.title": "Pielāgo savu profilu",
  "onboarding.steps.share_profile.body": "Paziņo saviem draugiem, kā tevi atrast Mastodon!",
  "onboarding.steps.share_profile.title": "Kopīgo savu profilu",
  "onboarding.steps.share_profile.title": "Kopīgo savu Mastodon profilu",
  "onboarding.tips.2fa": "<strong>Vai zināji?</strong> Tu vari aizsargāt savu kontu, konta iestatījumos iestatot divu faktoru autentifikāciju. Tas darbojas ar jebkuru tevis izvēlētu TOTP lietotni, nav nepieciešams tālruņa numurs!",
  "onboarding.tips.accounts_from_other_servers": "<strong>Vai zināji?</strong> Tā kā Mastodon ir decentralizēts, daži profili, ar kuriem saskaraties, tiks mitināti citos, nevis tavos serveros. Un tomēr tu varat sazināties ar viņiem nevainojami! Viņu serveris atrodas viņu lietotājvārda otrajā pusē!",
  "onboarding.tips.migration": "<strong>Vai zināji?</strong> Ja uzskati, ka {domain} nākotnē nav lieliska servera izvēle, vari pāriet uz citu Mastodon serveri, nezaudējot savus sekotājus. Tu pat vari mitināt savu personīgo serveri!",


@@ 518,7 518,7 @@
  "privacy.public.long": "Redzams visiem",
  "privacy.public.short": "Publiska",
  "privacy.unlisted.long": "Redzams visiem, bet izslēgts no satura atklāšanas funkcijām",
  "privacy.unlisted.short": "Nerindota",
  "privacy.unlisted.short": "Neiekļautie",
  "privacy_policy.last_updated": "Pēdējo reizi atjaunināta {date}",
  "privacy_policy.title": "Privātuma politika",
  "refresh": "Atsvaidzināt",


@@ 563,25 563,25 @@
  "report.reasons.spam": "Tas ir spams",
  "report.reasons.spam_description": "Ļaunprātīgas saites, viltus iesaistīšana vai atkārtotas atbildes",
  "report.reasons.violation": "Tas pārkāpj servera noteikumus",
  "report.reasons.violation_description": "Tu zini, ka tas pārkāpj konkrētus noteikumus",
  "report.reasons.violation_description": "Tu zini, ka tas pārkāpj īpašus noteikumus",
  "report.rules.subtitle": "Atlasi visus atbilstošos",
  "report.rules.title": "Kuri noteikumi tiek pārkāpti?",
  "report.statuses.subtitle": "Atlasi visus atbilstošos",
  "report.statuses.title": "Vai ir kādi ieraksti, kas atbalsta šo sūdzību?",
  "report.submit": "Iesniegt",
  "report.target": "Sūdzība par {target}",
  "report.thanks.take_action": "Vari veikt šīs darbības, lai kontrolētu Mastodon redzamo saturu:",
  "report.target": "Ziņošana par: {target}",
  "report.thanks.take_action": "Tālāk ir norādītas iespējas, kā kontrolēt Mastodon redzamo saturu:",
  "report.thanks.take_action_actionable": "Kamēr mēs to izskatām, tu vari veikt darbības pret @{name}:",
  "report.thanks.title": "Vai nevēlies to redzēt?",
  "report.thanks.title_actionable": "Paldies, ka ziņoji, mēs to izskatīsim.",
  "report.unfollow": "Pārtraukt sekot @{name}",
  "report.unfollow_explanation": "Tu seko šim kontam. Lai vairs neredzētu viņu ziņas savā mājas plūsmā, pārtrauc viņiem sekot.",
  "report_notification.attached_statuses": "{count, plural, one {Pievienots {count} ieraksts} other {Pievienoti {count} ieraksti}}",
  "report_notification.attached_statuses": "Pievienoti {count, plural,one {{count} sūtījums} other {{count} sūtījumi}}",
  "report_notification.categories.legal": "Tiesisks",
  "report_notification.categories.other": "Cita",
  "report_notification.categories.spam": "Spams",
  "report_notification.categories.violation": "Noteikumu pārkāpums",
  "report_notification.open": "Atvērt sūdzību",
  "report_notification.open": "Atvērt ziņojumu",
  "search.no_recent_searches": "Nav nesen veiktu meklējumu",
  "search.placeholder": "Meklēšana",
  "search.quick_action.account_search": "Profili atbilst {x}",


@@ 628,7 628,7 @@
  "status.direct_indicator": "Pieminēts privāti",
  "status.edit": "Rediģēt",
  "status.edited": "Rediģēts {date}",
  "status.edited_x_times": "Rediģēts {count, plural, one {{count} reizi} other {{count} reizes}}",
  "status.edited_x_times": "Rediģēts {count, plural, one {{count} reize} other {{count} reizes}}",
  "status.embed": "Iestrādāt",
  "status.favourite": "Iecienīts",
  "status.filter": "Filtrē šo ziņu",


@@ 656,8 656,8 @@
  "status.remove_bookmark": "Noņemt grāmatzīmi",
  "status.replied_to": "Atbildēja {name}",
  "status.reply": "Atbildēt",
  "status.replyAll": "Atbildēt uz pavedienu",
  "status.report": "Sūdzēties par @{name}",
  "status.replyAll": "Atbildēt uz tematu",
  "status.report": "Ziņot par @{name}",
  "status.sensitive_warning": "Sensitīvs saturs",
  "status.share": "Kopīgot",
  "status.show_filter_reason": "Tomēr rādīt",


@@ 668,7 668,7 @@
  "status.show_original": "Rādīt oriģinālu",
  "status.title.with_attachments": "{user} publicējis {attachmentCount, plural, one {pielikumu} other {{attachmentCount} pielikumus}}",
  "status.translate": "Tulkot",
  "status.translated_from_with": "Tulkots no {lang}, izmantojot {provider}",
  "status.translated_from_with": "Tulkots no {lang} izmantojot {provider}",
  "status.uncached_media_warning": "Priekšskatījums nav pieejams",
  "status.unmute_conversation": "Noņemt sarunas apklusinājumu",
  "status.unpin": "Noņemt profila piespraudumu",


@@ 681,16 681,16 @@
  "time_remaining.hours": "{number, plural, one {Atlikusi # stunda} other {Atlikušas # stundas}}",
  "time_remaining.minutes": "{number, plural, one {Atlikusi # minūte} other {Atlikušas # minūtes}}",
  "time_remaining.moments": "Atlikuši daži mirkļi",
  "time_remaining.seconds": "{number, plural, one {Atlikusi # sekunde} other {Atlikušas # sekundes}}",
  "time_remaining.seconds": "Atlikušas {number, plural, one {# sekunde} other {# sekundes}}",
  "timeline_hint.remote_resource_not_displayed": "{resource} no citiem serveriem nav parādīti.",
  "timeline_hint.resources.followers": "Sekotāji",
  "timeline_hint.resources.follows": "Sekojošie",
  "timeline_hint.resources.follows": "Seko",
  "timeline_hint.resources.statuses": "Vecāki ieraksti",
  "trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} cilvēki}} par {days, plural, one {# dienu} other {{days} dienām}}",
  "trends.trending_now": "Aktuālās tendences",
  "ui.beforeunload": "Ja pametīsiet Mastodon, jūsu melnraksts tiks zaudēts.",
  "ui.beforeunload": "Ja pametīsit Mastodonu, jūsu melnraksts tiks zaudēts.",
  "units.short.billion": "{count}Mjd",
  "units.short.million": "{count}Mjn",
  "units.short.million": "{count}M",
  "units.short.thousand": "{count}Tk",
  "upload_area.title": "Velc un nomet, lai augšupielādētu",
  "upload_button.label": "Pievienot bildi, video vai audio datni",


@@ 707,7 707,7 @@
  "upload_modal.apply": "Pielietot",
  "upload_modal.applying": "Pielieto…",
  "upload_modal.choose_image": "Izvēlēties attēlu",
  "upload_modal.description_placeholder": "Raibais runcis Rīgā ratu rumbā rūc",
  "upload_modal.description_placeholder": "Raibais runcis rīgā ratu rumbā rūc",
  "upload_modal.detect_text": "Noteikt tekstu no attēla",
  "upload_modal.edit_media": "Rediģēt multividi",
  "upload_modal.hint": "Noklikšķini vai velc apli priekšskatījumā, lai izvēlētos fokusa punktu, kas vienmēr būs redzams visos sīktēlos.",

M app/javascript/mastodon/locales/ms.json => app/javascript/mastodon/locales/ms.json +1 -0
@@ 593,6 593,7 @@
  "search_results.all": "Semua",
  "search_results.hashtags": "Tanda pagar",
  "search_results.nothing_found": "Tidak dapat menemui apa-apa untuk istilah carian tersebut",
  "search_results.see_all": "Lihat semua",
  "search_results.statuses": "Hantaran",
  "search_results.title": "Mencari {q}",
  "server_banner.about_active_users": "Pengguna pelayan ini sepanjang 30 hari yang lalu (Pengguna Aktif Bulanan)",

M app/javascript/mastodon/locales/ru.json => app/javascript/mastodon/locales/ru.json +1 -1
@@ 537,7 537,7 @@
  "relative_time.today": "сегодня",
  "reply_indicator.cancel": "Отмена",
  "report.block": "Заблокировать",
  "report.block_explanation": "В перестаните видеть посты этого пользователя, а он(а) больше не сможет подписаться на вас и читать ваши посты. Он(а) сможет понять что вы заблокировали его/её.",
  "report.block_explanation": "Вы перестанете видеть посты этого пользователя, и он(а) больше не сможет подписаться на вас и читать ваши посты. Он(а) сможет понять, что вы заблокировали его/её.",
  "report.categories.legal": "Правовая информация",
  "report.categories.other": "Другое",
  "report.categories.spam": "Спам",

M app/javascript/mastodon/locales/si.json => app/javascript/mastodon/locales/si.json +152 -189
@@ 1,79 1,79 @@
{
  "about.blocks": "මැදිහත්කරණ සේවාදායක",
  "about.contact": "සබඳතාව:",
  "about.disclaimer": "මාස්ටඩන් යනු නිදහස් විවෘත මූලාශ්‍ර මෘදුකාංගයකි. එය මාස්ටඩන් gGmbH හි වෙළඳ නාමයකි.",
  "about.domain_blocks.suspended.title": "අත්හිටුවා ඇත",
  "about.rules": "සේවාදායකයේ නීති",
  "account.account_note_header": "සටහන",
  "account.add_or_remove_from_list": "ලැයිස්තු වලින් එකතු හෝ ඉවත් කරන්න",
  "account.badges.bot": "ස්වයං ක්‍රමලේඛය",
  "account.badges.group": "සමූහය",
  "account.block": "@{name} අවහිර කරන්න",
  "account.block_domain": "{domain} වසම අවහිර කරන්න",
  "account.block_short": "අවහිර",
  "account.blocked": "අවහිර කර ඇත",
  "account.browse_more_on_origin_server": "මුල් පැතිකඩෙහි තවත් පිරික්සන්න",
  "account.cancel_follow_request": "Withdraw follow request",
  "account.disable_notifications": "@{name} පළ කරන විට මට දැනුම් නොදෙන්න",
  "account.domain_blocked": "වසම අවහිර කර ඇත",
  "account.edit_profile": "පැතිකඩ සංස්කරණය",
  "account.enable_notifications": "@{name} පළ කරන විට මට දැනුම් දෙන්න",
  "account.endorse": "පැතිකඩෙහි විශේෂාංගය",
  "account.featured_tags.last_status_never": "ලිපි නැත",
  "account.follow": "අනුගමනය",
  "account.followers": "අනුගාමිකයින්",
  "account.followers.empty": "කිසිවෙක් අනුගමනය කර නැත.",
  "account.followers_counter": "{count, plural, one {{counter} අනුගාමිකයෙක්} other {{counter} අනුගාමිකයින්}}",
  "account.following": "අනුගමනය",
  "account.following_counter": "{count, plural, one {අනුගාමිකයින් {counter}} other {අනුගාමිකයින් {counter}}}",
  "account.follows.empty": "තවමත් කිසිවෙක් අනුගමනය නොකරයි.",
  "account.follows_you": "ඔබව අනුගමනය කරයි",
  "account.hide_reblogs": "@{name}සිට බූස්ට් සඟවන්න",
  "account.go_to_profile": "පැතිකඩට යන්න",
  "account.joined_short": "එක් වූ දිනය",
  "account.link_verified_on": "මෙම සබැඳියේ අයිතිය {date} දී පරීක්‍ෂා කෙරිණි",
  "account.locked_info": "මෙම ගිණුමේ රහස්‍යතා තත්ත්වය අගුලු දමා ඇත. හිමිකරු ඔවුන් අනුගමනය කළ හැක්කේ කාටදැයි හස්තීයව සමාලෝචනය කරයි.",
  "account.media": "මාධ්‍යය",
  "account.mention": "@{name} සැඳහුම",
  "account.mention": "@{name} සඳහන් කරන්ක",
  "account.mute": "@{name} නිහඬ කරන්න",
  "account.mute_short": "නිහඬ",
  "account.muted": "නිහඬ කළා",
  "account.posts": "ලිපි",
  "account.posts_with_replies": "ටූට්ස් සහ පිළිතුරු",
  "account.posts_with_replies": "ලිපි සහ පිළිතුරු",
  "account.report": "@{name} වාර්තා කරන්න",
  "account.requested": "අනුමැතිය බලාපොරොත්තුවෙන්",
  "account.share": "@{name} ගේ පැතිකඩ බෙදාගන්න",
  "account.show_reblogs": "@{name}සිට බූස්ට් පෙන්වන්න",
  "account.statuses_counter": "{count, plural, one {{counter} ටූට්} other {{counter} ටූට්ස්}}",
  "account.unblock": "@{name} අනවහිර කරන්න",
  "account.unblock_domain": "{domain} වසම අනවහිර කරන්න",
  "account.unblock_short": "අනවහිර",
  "account.unendorse": "පැතිකඩෙහි විශේෂාංග නොකරන්න",
  "account.unfollow": "අනුගමනය නොකරන්න",
  "account.unmute": "@{name}නිහඬ නොකරන්න",
  "account.unmute_short": "නොනිහඬ",
  "account_note.placeholder": "සටහන යෙදීමට ඔබන්න",
  "admin.dashboard.daily_retention": "ලියාපදිංචි වීමෙන් පසු දිනකට පරිශීලක රඳවා ගැනීමේ අනුපාතය",
  "admin.dashboard.monthly_retention": "ලියාපදිංචි වීමෙන් පසු මාසය අනුව පරිශීලක රඳවා ගැනීමේ අනුපාතය",
  "admin.dashboard.retention.average": "සාමාන්යය",
  "admin.dashboard.retention.cohort": "ලියාපදිංචි වීමේ මාසය",
  "admin.dashboard.retention.cohort": "ලියාපදිංචි මාසය",
  "admin.dashboard.retention.cohort_size": "නව පරිශ්‍රීලකයින්",
  "alert.rate_limited.message": "{retry_time, time, medium} කට පසුව උත්සාහ කරන්න.",
  "alert.rate_limited.title": "මිල සීමා සහිතයි",
  "alert.unexpected.message": "අනපේක්ෂිත දෝෂයක් ඇතිවුනා.",
  "alert.rate_limited.title": "අනුපාතනය වී ඇත",
  "alert.unexpected.message": "අනපේක්‍ෂිත දෝෂයක් සිදු විය.",
  "alert.unexpected.title": "අපොයි!",
  "announcement.announcement": "නිවේදනය",
  "attachments_list.unprocessed": "(සැකසුම් නොකළ)",
  "audio.hide": "හඬපටය සඟවන්න",
  "autosuggest_hashtag.per_week": "සතියකට {count}",
  "boost_modal.combo": "ඊළඟ වතාවේ මෙය මඟ හැරීමට ඔබට {combo} එබිය හැක",
  "boost_modal.combo": "ඊළඟ වතාවේ මෙය මඟ හැරීමට {combo} එබීමට හැකිය",
  "bundle_column_error.retry": "නැවත උත්සාහ කරන්න",
  "bundle_modal_error.close": "වසන්න",
  "bundle_modal_error.message": "මෙම සංරචකය පූරණය කිරීමේදී යම් දෙයක් වැරදී ඇත.",
  "bundle_modal_error.message": "මෙම සංරචකය පූරණයේ දී යම් දෙයක් වැරදී ඇත.",
  "bundle_modal_error.retry": "නැවත උත්සාහ කරන්න",
  "closed_registrations_modal.find_another_server": "වෙනත් සේවාදායක",
  "column.about": "පිලිබඳව",
  "column.blocks": "අවහිර කළ අය",
  "column.bookmarks": "පොත් යොමු",
  "column.community": "දේශීය කාලරේඛාව",
  "column.bookmarks": "පොත්යොමු",
  "column.community": "ස්ථානීය කාලරේඛාව",
  "column.direct": "පෞද්ගලික සැඳහුම්",
  "column.directory": "පැතිකඩ පිරික්සන්න",
  "column.domain_blocks": "අවහිර කළ වසම්",
  "column.favourites": "ප්‍රියතමයන්",
  "column.firehose": "සජීව සංග්‍රහ",
  "column.follow_requests": "අනුගමන ඉල්ලීම්",
  "column.home": "මුල් පිටුව",
  "column.lists": "ලේඛන",
  "column.lists": "ලැයිස්තු",
  "column.mutes": "නිහඬ කළ අය",
  "column.notifications": "දැනුම්දීම්",
  "column.pins": "ඇමිණූ ලිපි",
  "column.public": "ෆෙඩරේටඩ් කාලරේඛාව",
  "column.public": "ඒකාබද්ධ කාලරේඛාව",
  "column_back_button.label": "ආපසු",
  "column_header.hide_settings": "සැකසුම් සඟවන්න",
  "column_header.moveLeft_settings": "තීරුව වමට ගෙනයන්න",


@@ 87,70 87,62 @@
  "community.column_settings.remote_only": "දුරස්ථව පමණයි",
  "compose.language.change": "භාෂාව සංශෝධනය",
  "compose.language.search": "භාෂා සොයන්න...",
  "compose.published.body": "ලිපිය පළ විය.",
  "compose.published.open": "අරින්න",
  "compose.saved.body": "ලිපිය සුරැකිණි.",
  "compose_form.direct_message_warning_learn_more": "තව දැනගන්න",
  "compose_form.encryption_warning": "Mastodon හි පළ කිරීම් අන්තයේ සිට අවසානය දක්වා සංකේතනය කර නොමැත. Mastodon හරහා කිසිදු සංවේදී තොරතුරක් බෙදා නොගන්න.",
  "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
  "compose_form.lock_disclaimer": "ඔබගේ ගිණුම {locked}නොවේ. ඔබගේ අනුගාමිකයින්ට පමණක් පළ කිරීම් බැලීමට ඕනෑම කෙනෙකුට ඔබව අනුගමනය කළ හැක.",
  "compose_form.encryption_warning": "මාස්ටඩන් වෙත පළ කරන දෑ අන්ත සංකේතනයෙන් ආරක්‍ෂා නොවේ. මාස්ටඩන් හරහා කිසිදු සංවේදී තොරතුරක් බෙදා නොගන්න.",
  "compose_form.lock_disclaimer.lock": "අගුළු දමා ඇත",
  "compose_form.placeholder": "ඔබගේ සිතුවිලි මොනවාද?",
  "compose_form.poll.add_option": "තේරීමක් යොදන්න",
  "compose_form.poll.duration": "මත විමසීමේ කාලය",
  "compose_form.poll.option_placeholder": "තේරීම {number}",
  "compose_form.poll.remove_option": "මෙම ඉවත් කරන්න",
  "compose_form.poll.switch_to_multiple": "තේරීම් කිහිපයක් ඉඩ දීම සඳහා මත විමසුම වෙනස් කරන්න",
  "compose_form.poll.switch_to_single": "තනි තේරීමකට ඉඩ දීම සඳහා මත විමසුම වෙනස් කරන්න",
  "compose_form.poll.switch_to_multiple": "තේරීම් කිහිපයකට මත විමසුම වෙනස් කරන්න",
  "compose_form.poll.switch_to_single": "තනි තේරීමකට මත විමසුම වෙනස් කරන්න",
  "compose_form.publish": "ප්‍රකාශනය",
  "compose_form.publish_form": "Publish",
  "compose_form.publish_form": "නව ලිපිය",
  "compose_form.publish_loud": "{publish}!",
  "compose_form.save_changes": "වෙනස්කම් සුරකින්න",
  "compose_form.sensitive.hide": "{count, plural, one {මාධ්ය සංවේදී ලෙස සලකුණු කරන්න} other {මාධ්ය සංවේදී ලෙස සලකුණු කරන්න}}",
  "compose_form.sensitive.marked": "{count, plural, one {මාධ්‍ය සංවේදී ලෙස සලකුණු කර ඇත} other {මාධ්‍ය සංවේදී ලෙස සලකුණු කර ඇත}}",
  "compose_form.sensitive.unmarked": "{count, plural, one {මාධ්‍ය සංවේදී ලෙස සලකුණු කර නැත} other {මාධ්‍ය සංවේදී ලෙස සලකුණු කර නැත}}",
  "compose_form.spoiler.marked": "අනතුරු ඇඟවීම පිටුපස පෙළ සඟවා ඇත",
  "compose_form.spoiler.unmarked": "ප්‍රයෝජනය සඟවා නැත",
  "compose_form.spoiler.marked": "අන්තර්ගත අවවාදය ඉවත් කරන්න",
  "compose_form.spoiler.unmarked": "අන්තර්ගත අවවාදයක් එක් කරන්න",
  "compose_form.spoiler_placeholder": "අවවාදය මෙහි ලියන්න",
  "confirmation_modal.cancel": "අවලංගු",
  "confirmations.block.block_and_report": "අවහිර කර වාර්තා කරන්න",
  "confirmations.block.confirm": "අවහිර",
  "confirmations.block.message": "ඔබට {name} අවහිර කිරීමට වුවමනා ද?",
  "confirmations.delete.confirm": "මකන්න",
  "confirmations.delete.message": "ඔබට මෙම තත්ත්වය මැකීමට අවශ්‍ය බව විශ්වාසද?",
  "confirmations.delete.message": "ඔබට මෙම ලිපිය මැකීමට වුවමනා ද?",
  "confirmations.delete_list.confirm": "මකන්න",
  "confirmations.delete_list.message": "ඔබට මෙම ලැයිස්තුව ස්ථිරවම මැකීමට අවශ්‍ය බව විශ්වාසද?",
  "confirmations.delete_list.message": "ඔබට මෙම ලැයිස්තුව සදහටම මැකීමට වුවමනා ද?",
  "confirmations.discard_edit_media.confirm": "ඉවත ලන්න",
  "confirmations.discard_edit_media.message": "ඔබට මාධ්‍ය විස්තරයට හෝ පෙරදසුනට නොසුරකින ලද වෙනස්කම් තිබේ, කෙසේ වෙතත් ඒවා ඉවත දමන්නද?",
  "confirmations.domain_block.confirm": "සම්පූර්ණ වසම අවහිර කරන්න",
  "confirmations.domain_block.message": "ඔබට සම්පූර්ණ {domain}අවහිර කිරීමට අවශ්‍ය බව ඔබට සැබවින්ම විශ්වාසද? බොහෝ අවස්ථාවලදී ඉලක්කගත බ්ලොක් හෝ නිශ්ශබ්ද කිරීම් කිහිපයක් ප්රමාණවත් වන අතර වඩාත් යෝග්ය වේ. ඔබ කිසිදු පොදු කාලරාමුවක හෝ ඔබගේ දැනුම්දීම් වල එම වසමේ අන්තර්ගතය නොදකිනු ඇත. එම වසමෙන් ඔබගේ අනුගාමිකයින් ඉවත් කරනු ලැබේ.",
  "confirmations.edit.confirm": "සංස්කරණය",
  "confirmations.logout.confirm": "නික්මෙන්න",
  "confirmations.logout.message": "ඔබට නික්මෙන්න අවශ්‍ය බව විශ්වාසද?",
  "confirmations.mute.confirm": "නිශ්ශබ්ද",
  "confirmations.mute.explanation": "මෙය ඔවුන්ගෙන් පළ කිරීම් සහ ඒවා සඳහන් කරන පළ කිරීම් සඟවයි, නමුත් එය ඔවුන්ට ඔබේ පළ කිරීම් බැලීමට සහ ඔබව අනුගමනය කිරීමට තවමත් ඉඩ ලබා දේ.",
  "confirmations.mute.message": "ඔබට {name} නිශ්ශබ්ද කිරීමට අවශ්‍ය බව විශ්වාසද?",
  "confirmations.redraft.confirm": "මකන්න සහ නැවත කෙටුම්පත් කරන්න",
  "confirmations.mute.message": "{name} නිහඬ කිරීමට වුවමනා ද?",
  "confirmations.reply.confirm": "පිළිතුර",
  "confirmations.reply.message": "දැන් පිළිතුරු දීම ඔබ දැනට රචනා කරන පණිවිඩය උඩින් ලියයි. ඔබට ඉදිරියට යාමට අවශ්‍ය බව විශ්වාසද?",
  "confirmations.unfollow.confirm": "අනුගමනය නොකරන්න",
  "confirmations.unfollow.message": "ඔබට {name}අනුගමනය නොකිරීමට අවශ්‍ය බව විශ්වාසද?",
  "conversation.delete": "සංවාදය මකන්න",
  "conversation.mark_as_read": "කියවූ බව යොදන්න",
  "conversation.open": "සංවාදය බලන්න",
  "conversation.with": "{names} සමඟ",
  "copypaste.copied": "පිටපත් විය",
  "directory.federated": "දන්නා fediverse වලින්",
  "copypaste.copy_to_clipboard": "පසුරුපුවරුවට පිටපතක්",
  "directory.federated": "දන්නා ෆෙඩිවර්ස් වෙතින්",
  "directory.local": "{domain} වෙතින් පමණි",
  "directory.new_arrivals": "නව පැමිණීම්",
  "directory.recently_active": "මෑත දී සක්‍රියයි",
  "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
  "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
  "embed.instructions": "පහත කේතය පිටපත් කිරීමෙන් මෙම තත්ත්වය ඔබේ වෙබ් අඩවියට ඇතුළත් කරන්න.",
  "embed.preview": "එය පෙනෙන්නේ කෙසේද යන්න මෙන්න:",
  "disabled_account_banner.account_settings": "ගිණුමේ සැකසුම්",
  "embed.instructions": "පහත කේතය පිටපත් කිරීමෙන් මෙම ලිපිය ඔබගේ අඩවියට කාවද්දන්න.",
  "embed.preview": "මෙන්න එය පෙනෙන අන්දම:",
  "emoji_button.activity": "ක්‍රියාකාරකම",
  "emoji_button.clear": "මකන්න",
  "emoji_button.custom": "අභිරුචි",
  "emoji_button.flags": "කොඩි",
  "emoji_button.food": "ආහාර සහ පාන",
  "emoji_button.label": "ඉමොජි යොදන්න",
  "emoji_button.nature": "ස්වභාවික",
  "emoji_button.nature": "සොබාදහම",
  "emoji_button.not_found": "ගැළපෙන ඉමෝජි හමු නොවිණි",
  "emoji_button.objects": "වස්තූන්",
  "emoji_button.people": "මිනිසුන්",


@@ 160,158 152,149 @@
  "emoji_button.symbols": "සංකේත",
  "emoji_button.travel": "චාරිකා සහ ස්ථාන",
  "empty_column.account_suspended": "ගිණුම අත්හිටුවා ඇත",
  "empty_column.account_timeline": "මෙහි දත් නැත!",
  "empty_column.account_timeline": "මෙහි ලිපි නැත!",
  "empty_column.account_unavailable": "පැතිකඩ නොතිබේ",
  "empty_column.blocks": "කිසිදු පරිශීලකයෙකු අවහිර කර නැත.",
  "empty_column.bookmarked_statuses": "ඔබට තවමත් පිටු සලකුණු කළ මෙවලම් කිසිවක් නොමැත. ඔබ එකක් පිටු සලකුණු කළ විට, එය මෙහි පෙන්වනු ඇත.",
  "empty_column.community": "දේශීය කාලරේඛාව හිස් ය. පන්දුව පෙරළීමට ප්‍රසිද්ධියේ යමක් ලියන්න!",
  "empty_column.bookmarked_statuses": "ඔබ සතුව පොත්යොමු තබන ලද ලිපි කිසිවක් නැත. ඔබ පොත්යොමුවක් තබන විට, එය මෙහි දිස්වනු ඇත.",
  "empty_column.domain_blocks": "අවහිර කරන ලද වසම් නැත.",
  "empty_column.explore_statuses": "දැන් කිසිවක් නැඹුරු නොවේ. පසුව නැවත පරීක්ෂා කරන්න!",
  "empty_column.follow_requests": "ඔබට තවමත් අනුගමනය කිරීමේ ඉල්ලීම් කිසිවක් නොමැත. ඔබට එකක් ලැබුණු විට, එය මෙහි පෙන්වනු ඇත.",
  "empty_column.hashtag": "මෙම හැෂ් ටැග් එකේ තවම කිසිවක් නොමැත.",
  "empty_column.home": "ඔබගේ නිවසේ කාලරේඛාව හිස්ය! එය පිරවීම සඳහා තවත් පුද්ගලයින් අනුගමනය කරන්න. {suggestions}",
  "empty_column.list": "මෙම ලැයිස්තුවේ තවමත් කිසිවක් නොමැත. මෙම ලැයිස්තුවේ සාමාජිකයන් නව තත්ව පළ කරන විට, ඔවුන් මෙහි දිස් වනු ඇත.",
  "empty_column.follow_requests": "ඔබට තවමත් අනුගමන ඉල්ලීම් ලැබී නැත. ඉල්ලීමක් ලැබුණු විට, එය මෙහි පෙන්වනු ඇත.",
  "empty_column.home": "ඔබගේ මුල් පිටුව හිස් ය! මෙය පිරවීමට බොහෝ පුද්ගලයින් අනුගමනය කරන්න.",
  "empty_column.lists": "ඔබට තවමත් ලැයිස්තු කිසිවක් නැත. ඔබ එකක් සාදන විට, එය මෙහි පෙන්වනු ඇත.",
  "empty_column.mutes": "ඔබ තවමත් කිසිදු පරිශීලකයෙකු නිහඬ කර නැත.",
  "empty_column.notifications": "ඔබට තවම දැනුම්දීම් කිසිවක් නැත. වෙනත් පුද්ගලයින් ඔබ සමඟ අන්තර් ක්‍රියා කරන විට, ඔබ එය මෙහි දකිනු ඇත.",
  "empty_column.public": "මෙහි කිසිවක් නැත! යමක් ප්‍රසිද්ධියේ ලියන්න, නැතහොත් එය පිරවීම සඳහා වෙනත් සේවාදායකයන්ගෙන් පරිශීලකයන් හස්තීයව අනුගමනය කරන්න",
  "empty_column.notifications": "ඔබට දැනුම්දීම් ලැබී නැත. අන් අය සහ ඔබ අතර අන්‍යෝන්‍ය බලපවත්වන දෑ මෙහි දිස්වනු ඇත.",
  "error.unexpected_crash.explanation": "අපගේ කේතයේ දෝෂයක් හෝ බ්‍රවුසර ගැළපුම් ගැටලුවක් හේතුවෙන්, මෙම පිටුව නිවැරදිව ප්‍රදර්ශනය කළ නොහැක.",
  "error.unexpected_crash.explanation_addons": "මෙම පිටුව නිවැරදිව ප්‍රදර්ශනය කළ නොහැක. මෙම දෝෂය බ්‍රවුසර ඇඩෝනයක් හෝ ස්වයංක්‍රීය පරිවර්තන මෙවලම් නිසා ඇති විය හැක.",
  "error.unexpected_crash.next_steps": "පිටුව නැවුම් කිරීමට උත්සාහ කරන්න. එය උදව් නොකළහොත්, ඔබට තවමත් වෙනත් බ්‍රවුසරයක් හෝ ස්වදේශීය යෙදුමක් හරහා Mastodon භාවිත කිරීමට හැකි වේ.",
  "error.unexpected_crash.next_steps_addons": "ඒවා අක්‍රිය කර පිටුව නැවුම් කිරීමට උත්සාහ කරන්න. එය උදව් නොකළහොත්, ඔබට තවමත් වෙනත් බ්‍රවුසරයක් හෝ ස්වදේශීය යෙදුමක් හරහා Mastodon භාවිත කිරීමට හැකි වේ.",
  "errors.unexpected_crash.copy_stacktrace": "ස්ටැක්ට්රේස් පසුරු පුවරුවට පිටපත් කරන්න",
  "error.unexpected_crash.next_steps": "පිටුව නැවුම් කර බලන්න. එයින් ඵලක් නොවේ නම්, වෙනත් අතිරික්සුවක් හෝ නිසග යෙදුමක් හරහා මාස්ටඩන් භාවිතා කරන්න.",
  "error.unexpected_crash.next_steps_addons": "ඒවා අබල කර පිටුව නැවුම් කරන්න. එයින් ඵලක් නොවේ නම්, වෙනත් අතිරික්සුවක් හෝ නිසග යෙදුමක් හරහා මාස්ටඩන් භාවිතා කරන්න.",
  "errors.unexpected_crash.report_issue": "ගැටළුව වාර්තාව",
  "explore.search_results": "සෙවුම් ප්‍රතිඵල",
  "explore.title": "ගවේශණය",
  "explore.suggested_follows": "පුද්ගලයින්",
  "explore.title": "ගවේශනය",
  "explore.trending_links": "පුවත්",
  "explore.trending_statuses": "ලිපි",
  "filter_modal.added.expired_title": "පෙරහන ඉකුත්ය!",
  "filter_modal.added.review_and_configure_title": "පෙරහන් සැකසුම්",
  "filter_modal.added.settings_link": "සැකසුම් පිටුව",
  "filter_modal.added.title": "පෙරහන එක් කළා!",
  "filter_modal.select_filter.expired": "ඉකුත්ය",
  "filter_modal.select_filter.prompt_new": "නව ප්‍රවර්ගය: {name}",
  "filter_modal.select_filter.search": "සොයන්න හෝ සාදන්න",
  "follow_request.authorize": "අවසරලත්",
  "filter_modal.select_filter.title": "මෙම ලිපිය පෙරන්න",
  "filter_modal.title.status": "ලිපියක් පෙරන්න",
  "firehose.local": "මෙම සේවාදායකය",
  "firehose.remote": "වෙනත් සේවාදායක",
  "follow_request.reject": "ප්‍රතික්‍ෂේප",
  "follow_requests.unlocked_explanation": "ඔබගේ ගිණුම අගුලු දමා නොතිබුණද, {domain} කාර්ය මණ්ඩලය සිතුවේ ඔබට මෙම ගිණුම් වලින් ලැබෙන ඉල්ලීම් හස්තීයව සමාලෝචනය කිරීමට අවශ්‍ය විය හැකි බවයි.",
  "footer.about": "පිළිබඳව",
  "footer.directory": "පැතිකඩ නාමාවලිය",
  "footer.get_app": "යෙදුම ගන්න",
  "footer.invite": "ආරාධනා කරන්න",
  "footer.keyboard_shortcuts": "යතුරුපුවරුවේ කෙටිමං",
  "footer.privacy_policy": "රහස්‍යතා ප්‍රතිපත්තිය",
  "footer.source_code": "මූලාශ්‍ර කේතය බලන්න",
  "footer.status": "තත්‍වය",
  "generic.saved": "සුරැකිණි",
  "getting_started.heading": "පටන් ගන්න",
  "hashtag.column_header.tag_mode.all": "සහ {additional}",
  "hashtag.column_header.tag_mode.any": "හෝ {additional}",
  "hashtag.column_header.tag_mode.none": "{additional}නොමැතිව",
  "hashtag.column_settings.select.no_options_message": "යෝජනා හමු නොවිණි",
  "hashtag.column_settings.select.placeholder": "හැෂ් ටැග්…ඇතුලත් කරන්න",
  "hashtag.column_settings.tag_mode.all": "මේ සියල්ලම",
  "hashtag.column_settings.tag_mode.any": "ඇතුළත් එකක්",
  "hashtag.column_settings.tag_mode.none": "මේ කිසිවක් නැත",
  "hashtag.column_settings.tag_toggle": "මෙම තීරුවේ අමතර ටැග් ඇතුළත් කරන්න",
  "home.actions.go_to_explore": "නැගී එන දෑ බලන්න",
  "home.actions.go_to_suggestions": "පුද්ගලයින් සොයන්න",
  "home.column_settings.basic": "මූලික",
  "home.column_settings.show_reblogs": "බූස්ට් පෙන්වන්න",
  "home.column_settings.show_replies": "පිළිතුරු පෙන්වන්න",
  "home.explore_prompt.title": "මෙය ඔබගේ මාස්ටඩන් මුල් පිටුවයි.",
  "home.hide_announcements": "නිවේදන සඟවන්න",
  "home.pending_critical_update.link": "යාවත්කාල බලන්න",
  "home.show_announcements": "නිවේදන පෙන්වන්න",
  "intervals.full.days": "{number, plural, one {# දින} other {# දින}}",
  "intervals.full.hours": "{number, plural, one {# පැය} other {# පැය}}",
  "intervals.full.minutes": "{number, plural, one {විනාඩි #} other {# මිනිත්තු}}",
  "interaction_modal.on_this_server": "මෙම සේවාදායකයෙහි",
  "intervals.full.days": "{number, plural, one {දවස් #} other {දවස් #}}",
  "intervals.full.hours": "{number, plural, one {පැය #} other {පැය #}}",
  "intervals.full.minutes": "{number, plural, one {විනාඩි #} other {විනාඩි #}}",
  "keyboard_shortcuts.back": "ආපසු යාත්‍රණය",
  "keyboard_shortcuts.blocked": "අවහිර කළ පරිශීලක ලැයිස්තුව විවෘත කිරීමට",
  "keyboard_shortcuts.boost": "වැඩි කිරීමට",
  "keyboard_shortcuts.column": "එක් තීරුවක තත්ත්වය නාභිගත කිරීමට",
  "keyboard_shortcuts.compose": "රචනා පාඨ ප්‍රදේශය නාභිගත කිරීමට",
  "keyboard_shortcuts.description": "සවිස්තරය",
  "keyboard_shortcuts.direct": "to open direct messages column",
  "keyboard_shortcuts.down": "ලැයිස්තුවේ පහළට ගමන් කිරීමට",
  "keyboard_shortcuts.down": "ලැයිස්තුවේ පහළට ගෙනයන්න",
  "keyboard_shortcuts.enter": "ලිපිය අරින්න",
  "keyboard_shortcuts.favourites": "ප්‍රියතමයන් ලැයිස්තුව අරින්න",
  "keyboard_shortcuts.federated": "ෆෙඩරේටඩ් කාලරාමුව විවෘත කිරීමට",
  "keyboard_shortcuts.heading": "යතුරුපුවරු කෙටිමං",
  "keyboard_shortcuts.home": "නිවසේ කාලරේඛාව විවෘත කිරීමට",
  "keyboard_shortcuts.hotkey": "උණු යතුර",
  "keyboard_shortcuts.legend": "මෙම පුරාවෘත්තය ප්රදර්ශනය කිරීමට",
  "keyboard_shortcuts.local": "දේශීය කාලරේඛාව විවෘත කිරීමට",
  "keyboard_shortcuts.mention": "කතුවරයා සඳහන් කිරීමට",
  "keyboard_shortcuts.muted": "නිශ්ශබ්ද පරිශීලක ලැයිස්තුව විවෘත කිරීමට",
  "keyboard_shortcuts.muted": "නිහඬ කළ අය පෙන්වන්න",
  "keyboard_shortcuts.my_profile": "ඔබගේ පැතිකඩ අරින්න",
  "keyboard_shortcuts.notifications": "දැනුම්දීම් තීරුව විවෘත කිරීමට",
  "keyboard_shortcuts.open_media": "මාධ්‍ය අරින්න",
  "keyboard_shortcuts.pinned": "ඇමිණූ ලිපි ලේඛනය අරින්න",
  "keyboard_shortcuts.pinned": "ඇමිණූ ලිපි ලැයිස්තුව අරින්න",
  "keyboard_shortcuts.profile": "කතෘගේ පැතිකඩ අරින්න",
  "keyboard_shortcuts.reply": "පිළිතුරු දීමට",
  "keyboard_shortcuts.requests": "පහත ඉල්ලීම් ලැයිස්තුව විවෘත කිරීමට",
  "keyboard_shortcuts.search": "සෙවුම් අවධානය යොමු කිරීමට",
  "keyboard_shortcuts.spoilers": "CW ක්ෂේත්‍රය පෙන්වීමට/සැඟවීමට",
  "keyboard_shortcuts.spoilers": "CW ක්‍ෂේත්‍රය පෙන්වන්න/සඟවන්න",
  "keyboard_shortcuts.start": "\"පටන් ගන්න\" තීරුව අරින්න",
  "keyboard_shortcuts.toggle_hidden": "CW පිටුපස පෙළ පෙන්වීමට/සැඟවීමට",
  "keyboard_shortcuts.toggle_sensitivity": "මාධ්‍ය පෙන්වන්න/සඟවන්න",
  "keyboard_shortcuts.toot": "අලුත්ම ටූට් එකක් පටන් ගන්න",
  "keyboard_shortcuts.unfocus": "අවධානය යොමු නොකිරීමට textarea/search රචනා කරන්න",
  "keyboard_shortcuts.up": "ලැයිස්තුවේ ඉහළට යාමට",
  "keyboard_shortcuts.toot": "නව ලිපියක් අරඹන්න",
  "keyboard_shortcuts.up": "ලැයිස්තුවේ ඉහළට ගෙනයන්න",
  "lightbox.close": "වසන්න",
  "lightbox.compress": "රූප බැලීමේ කොටුව සම්පීඩනය කරන්න",
  "lightbox.expand": "රූප දර්ශන පෙට්ටිය දිග හරින්න",
  "lightbox.next": "ඊළඟ",
  "lightbox.previous": "පෙර",
  "limited_account_hint.action": "කෙසේ හෝ පැතිකඩ පෙන්වන්න",
  "lists.account.add": "ලේඛනයට දමන්න",
  "lists.account.remove": "ලේඛනයෙන් ඉවතලන්න",
  "lists.delete": "ලේඛනය මකන්න",
  "lists.edit": "ලේඛනය සංස්කරණය",
  "lists.edit.submit": "මාතෘකාව වෙනස් කරන්න",
  "lists.new.create": "ලැයිස්තුව එකතු කරන්න",
  "lists.new.title_placeholder": "නව ලැයිස්තු මාතෘකාව",
  "lists.replies_policy.followed": "අනුගමනය කරන ඕනෑම පරිශීලකයෙක්",
  "lists.replies_policy.list": "ලැයිස්තුවේ සාමාජිකයන්",
  "lists.account.add": "ලැයිස්තුවට දමන්න",
  "lists.account.remove": "ලැයිස්තුවෙන් ඉවතලන්න",
  "lists.delete": "ලැයිස්තුව මකන්න",
  "lists.edit": "ලැයිස්තුව සංස්කරණය",
  "lists.edit.submit": "සිරැසිය සංශෝධනය",
  "lists.new.title_placeholder": "නව ලැයිස්තුවේ සිරැසිය",
  "lists.replies_policy.list": "ලැයිස්තුවේ සාමාජිකයින්",
  "lists.replies_policy.none": "කිසිවෙක් නැත",
  "lists.replies_policy.title": "පිළිතුරු පෙන්වන්න:",
  "lists.search": "ඔබ අනුගමනය කරන පුද්ගලයින් අතර සොයන්න",
  "lists.subheading": "ඔබගේ ලේඛන",
  "load_pending": "{count, plural, one {# නව අයිතමයක්} other {නව අයිතම #ක්}}",
  "lists.subheading": "ඔබගේ ලැයිස්තු",
  "loading_indicator.label": "පූරණය වෙමින්...",
  "media_gallery.toggle_visible": "{number, plural, one {රූපය සඟවන්න} other {පින්තූර සඟවන්න}}",
  "mute_modal.duration": "පරාසය",
  "mute_modal.hide_notifications": "මෙම පරිශීලකයාගෙන් දැනුම්දීම් සඟවන්නද?",
  "mute_modal.indefinite": "අවිනිශ්චිත",
  "mute_modal.hide_notifications": "මෙම පුද්ගලයාගේ දැනුම්දීම් සඟවන්නද?",
  "navigation_bar.about": "පිළිබඳව",
  "navigation_bar.blocks": "අවහිර කළ අය",
  "navigation_bar.bookmarks": "පොත්යොමු",
  "navigation_bar.community_timeline": "දේශීය කාලරේඛාව",
  "navigation_bar.compose": "නව ටූට් සාදන්න",
  "navigation_bar.discover": "සොයා ගන්න",
  "navigation_bar.community_timeline": "ස්ථානීය කාලරේඛාව",
  "navigation_bar.compose": "නව ලිපියක් ලියන්න",
  "navigation_bar.direct": "පෞද්ගලික සැඳහුම්",
  "navigation_bar.domain_blocks": "අවහිර කළ වසම්",
  "navigation_bar.edit_profile": "පැතිකඩ සංස්කරණය",
  "navigation_bar.explore": "ගවේෂණය කරන්න",
  "navigation_bar.explore": "ගවේශනය",
  "navigation_bar.favourites": "ප්‍රියතමයන්",
  "navigation_bar.filters": "නිහඬ කළ වචන",
  "navigation_bar.follow_requests": "අනුගමන ඉල්ලීම්",
  "navigation_bar.follows_and_followers": "අනුගමනය හා අනුගාමිකයින්",
  "navigation_bar.lists": "ලේඛන",
  "navigation_bar.lists": "ලැයිස්තු",
  "navigation_bar.logout": "නික්මෙන්න",
  "navigation_bar.mutes": "නිහඬ කළ අය",
  "navigation_bar.personal": "පුද්ගලික",
  "navigation_bar.pins": "ඇමිණූ ලිපි",
  "navigation_bar.preferences": "අභිප්‍රේත",
  "navigation_bar.public_timeline": "ෆෙඩරේටඩ් කාලරේඛාව",
  "navigation_bar.public_timeline": "ඒකාබද්ධ කාලරේඛාව",
  "navigation_bar.search": "සොයන්න",
  "navigation_bar.security": "ආරක්ෂාව",
  "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
  "notification.admin.report": "{name} වාර්තා {target}",
  "notification.admin.sign_up": "{name} අත්සන් කර ඇත",
  "notification.follow": "{name} ඔබව අනුගමනය කළා",
  "notification.follow_request": "{name} ඔබව අනුගමනය කිරීමට ඉල්ලා ඇත",
  "notification.mention": "{name} ඔබව සඳහන් කර ඇත",
  "notification.own_poll": "ඔබගේ මත විමසුම නිමයි",
  "notification.poll": "ඔබ ඡන්දය දුන් මත විමසුමක් නිමයි",
  "notification.reblog": "{name} ඔබේ තත්ත්වය ඉහළ නැංවීය",
  "notification.status": "{name} දැන් පළ කළා",
  "notification.update": "{name} පළ කිරීමක් සංස්කරණය කළා",
  "notification.update": "{name} ලිපියක් සංස්කරණය කළා",
  "notifications.clear": "දැනුම්දීම් මකන්න",
  "notifications.clear_confirmation": "ඔබට ඔබගේ සියලු දැනුම්දීම් ස්ථිරවම හිස් කිරීමට අවශ්‍ය බව විශ්වාසද?",
  "notifications.clear_confirmation": "දැනුම්දීම් සියල්ල හිස් කිරීමට වුවමනා ද?",
  "notifications.column_settings.admin.report": "නව වාර්තා:",
  "notifications.column_settings.admin.sign_up": "නව ලියාපදිංචි:",
  "notifications.column_settings.alert": "වැඩතල දැනුම්දීම්",
  "notifications.column_settings.favourite": "ප්‍රියතමයන්:",
  "notifications.column_settings.filter_bar.advanced": "සියළු ප්‍රවර්ග පෙන්වන්න",
  "notifications.column_settings.filter_bar.category": "ඉක්මන් පෙරහන් තීරුව",
  "notifications.column_settings.filter_bar.show_bar": "පෙරහන් තීරුව පෙන්වන්න",
  "notifications.column_settings.follow": "නව අනුගාමිකයින්:",
  "notifications.column_settings.follow_request": "නව අනුගමන ඉල්ලීම්:",
  "notifications.column_settings.mention": "සැඳහුම්:",
  "notifications.column_settings.poll": "ඡන්ද ප්‍රතිඵල:",
  "notifications.column_settings.poll": "මත විමසුමේ ප්‍රතිඵල:",
  "notifications.column_settings.push": "තල්ලු දැනුම්දීම්",
  "notifications.column_settings.reblog": "තල්ලු කිරීම්:",
  "notifications.column_settings.show": "තීරුවෙහි පෙන්වන්න",
  "notifications.column_settings.sound": "ශබ්දය වාදනය",
  "notifications.column_settings.status": "නව ලිපි:",


@@ 319,42 302,26 @@
  "notifications.column_settings.unread_notifications.highlight": "නොකියවූ දැනුම්දීම් ඉස්මතු කරන්න",
  "notifications.column_settings.update": "සංශෝධන:",
  "notifications.filter.all": "සියල්ල",
  "notifications.filter.boosts": "බූස්ට් කරයි",
  "notifications.filter.favourites": "ප්‍රියතමයන්",
  "notifications.filter.follows": "අනුගමනය",
  "notifications.filter.mentions": "සැඳහුම්",
  "notifications.filter.polls": "ඡන්ද ප්‍රතිඵල",
  "notifications.filter.statuses": "ඔබ අනුගමනය කරන පුද්ගලයින්ගෙන් යාවත්කාලීන",
  "notifications.grant_permission": "අවසර දෙන්න.",
  "notifications.filter.polls": "මත විමසුමේ ප්‍රතිඵල",
  "notifications.group": "දැනුම්දීම් {count}",
  "notifications.mark_as_read": "සියළු දැනුම්දීම් කියවූ බව යොදන්න",
  "notifications.permission_denied": "කලින් ප්‍රතික්ෂේප කළ බ්‍රවුසර අවසර ඉල්ලීම හේතුවෙන් ඩෙස්ක්ටොප් දැනුම්දීම් නොමැත",
  "notifications.permission_denied_alert": "බ්‍රවුසර අවසරය පෙර ප්‍රතික්ෂේප කර ඇති බැවින්, ඩෙස්ක්ටොප් දැනුම්දීම් සබල කළ නොහැක",
  "notifications.permission_required": "අවශ්‍ය අවසරය ලබා දී නොමැති නිසා ඩෙස්ක්ටොප් දැනුම්දීම් නොමැත.",
  "notifications_permission_banner.enable": "වැඩතල දැනුම්දීම් සබල කරන්න",
  "notifications_permission_banner.how_to_control": "Mastodon විවෘතව නොමැති විට දැනුම්දීම් ලබා ගැනීමට, ඩෙස්ක්ටොප් දැනුම්දීම් සබල කරන්න. ඔබට ඒවා සක්‍රිය කළ පසු ඉහත {icon} බොත්තම හරහා ඩෙස්ක්ටොප් දැනුම්දීම් ජනනය කරන්නේ කුමන ආකාරයේ අන්තර්ක්‍රියාද යන්න නිවැරදිව පාලනය කළ හැක.",
  "notifications_permission_banner.title": "කිසිම දෙයක් අතපසු කරන්න එපා",
  "onboarding.actions.go_to_explore": "See what's trending",
  "onboarding.actions.go_to_home": "Go to your home feed",
  "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
  "onboarding.follows.title": "Popular on Mastodon",
  "onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:",
  "onboarding.start.skip": "Want to skip right ahead?",
  "onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.",
  "onboarding.steps.follow_people.title": "Follow {count, plural, one {one person} other {# people}}",
  "onboarding.steps.publish_status.body": "Say hello to the world.",
  "onboarding.steps.setup_profile.body": "Others are more likely to interact with you with a filled out profile.",
  "onboarding.steps.setup_profile.title": "Customize your profile",
  "onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
  "onboarding.steps.share_profile.title": "Share your profile",
  "picture_in_picture.restore": "ආපහු දාන්න",
  "notifications_permission_banner.title": "කිසිවක් අතපසු නොකරන්න",
  "onboarding.compose.template": "ආයුබෝ #මාස්ටඩන්!",
  "onboarding.share.title": "ඔබගේ පැතිකඩ බෙදාගන්න",
  "onboarding.steps.publish_status.title": "පළමු ලිපිය පළ කරන්න",
  "onboarding.steps.setup_profile.title": "ඔබගේ පැතිකඩ අභිරුචිකරණය",
  "onboarding.steps.share_profile.body": "මාස්ටඩන් හි ඔබව සොයා ගන්නේ කෙසේදැයි යහළුවන්ට දන්වන්න",
  "onboarding.steps.share_profile.title": "ඔබගේ පැතිකඩ බෙදාගන්න",
  "poll.closed": "වසා ඇත",
  "poll.refresh": "නැවුම් කරන්න",
  "poll.total_people": "{count, plural, one {# පුද්ගලයා} other {# මහජන}}",
  "poll.total_votes": "{count, plural, one {# ඡන්දය} other {ඡන්ද #}}",
  "poll.reveal": "ප්‍රතිඵල බලන්න",
  "poll.vote": "ඡන්දය",
  "poll.voted": "ඔබ මෙම පිළිතුරට ඡන්දය දුන්නා",
  "poll.votes": "{votes, plural, one {# ඡන්දය} other {ඡන්ද #}}",
  "poll_button.add_poll": "මත විමසුමක් යොදන්න",
  "poll.voted": "ඔබ මෙම උත්තරයට ඡන්දය දී ඇත",
  "poll_button.add_poll": "මත විමසුමක් අරඹන්න",
  "poll_button.remove_poll": "මත විමසුම ඉවතලන්න",
  "privacy.change": "ලිපියේ රහස්‍යතාව සංශෝධනය",
  "privacy.direct.long": "සඳහන් කළ අයට දිස්වෙයි",


@@ 363,13 330,11 @@
  "privacy.private.short": "අනුගාමිකයින් පමණි",
  "privacy.public.long": "සැමට දිස්වෙයි",
  "privacy.public.short": "ප්‍රසිද්ධ",
  "privacy.unlisted.long": "සැමට දෘශ්‍යමාන, නමුත් සොයාගැනීමේ විශේෂාංග වලින් ඉවත් විය",
  "privacy.unlisted.short": "ලැයිස්තුගත නොකළ",
  "privacy_policy.title": "රහස්‍යතා ප්‍රතිපත්තිය",
  "refresh": "නැවුම් කරන්න",
  "regeneration_indicator.label": "පූරණය වෙමින්…",
  "regeneration_indicator.sublabel": "ඔබේ නිවසේ පෝෂණය සූදානම් වෙමින් පවතී!",
  "relative_time.days": "ද. {number}",
  "relative_time.full.days": "{number, plural, one {# දින} other {# දින}} පෙර",
  "relative_time.full.days": "{number, plural, one {දවස් #} other {දවස් #}} කට පෙර",
  "relative_time.full.hours": "{number, plural, one {පැය #} other {පැය #}} කට පෙර",
  "relative_time.full.just_now": "මේ දැන්",
  "relative_time.full.minutes": "{number, plural, one {විනාඩි #} other {විනාඩි #}} කට පෙර",


@@ 381,25 346,23 @@
  "relative_time.today": "අද",
  "reply_indicator.cancel": "අවලංගු කරන්න",
  "report.block": "අවහිර",
  "report.block_explanation": "ඔබට ඔවුන්ගේ පෝස්ට් නොපෙනේ. ඔවුන්ට ඔබේ පළ කිරීම් බැලීමට හෝ ඔබව අනුගමනය කිරීමට නොහැකි වනු ඇත. ඔවුන් අවහිර කර ඇති බව ඔවුන්ට පැවසිය හැකිය.",
  "report.categories.other": "වෙනත්",
  "report.categories.spam": "ආයාචිත",
  "report.categories.violation": "අන්තර්ගතය සේවාදායක නීති එකක් හෝ කිහිපයක් උල්ලංඝනය කරයි",
  "report.category.subtitle": "හොඳම ගැලපීම තෝරන්න",
  "report.categories.violation": "අන්තර්ගතය නිසා සේවාදායකයේ නීතියක් හෝ කිහිපයක් කඩ වේ",
  "report.category.title": "මෙම {type}සමඟ සිදුවන්නේ කුමක්දැයි අපට කියන්න",
  "report.category.title_account": "පැතිකඩ",
  "report.category.title_status": "තැපැල්",
  "report.category.title_status": "ලිපිය",
  "report.close": "අහවරයි",
  "report.comment.title": "අප දැනගත යුතු යැයි ඔබ සිතන තවත් යමක් තිබේද?",
  "report.forward": "{target} වෙත හරවන්න",
  "report.forward_hint": "ගිණුම වෙනත් සේවාදායකයකින්. වාර්තාවේ නිර්නාමික පිටපතක් එතනටත් එවන්න?",
  "report.mute": "නිහඬ",
  "report.mute_explanation": "ඔබට ඔවුන්ගේ පෝස්ට් නොපෙනේ. ඔවුන්ට තවමත් ඔබව අනුගමනය කිරීමට සහ ඔබේ පළ කිරීම් දැකීමට හැකි අතර ඒවා නිශ්ශබ්ද කර ඇති බව නොදැනේ.",
  "report.mute_explanation": "ඔබ ඔවුන්ගේ ලිපි නොදකිනු ඇත. ඔවුන්ට තවමත් ඔබව අනුගමනයට සහ ඔබගේ ලිපි දැකීමට හැකි අතර ඔවුන්ව නිහඬ කර ඇති බව දැන ගැනීමට නොහැකිය.",
  "report.next": "ඊළඟ",
  "report.placeholder": "අමතර අදහස්",
  "report.reasons.dislike": "මම එයට අකැමතියි",
  "report.reasons.dislike_description": "ඒක බලන්න ඕන දෙයක් නෙවෙයි",
  "report.reasons.other": "ඒක වෙන දෙයක්",
  "report.reasons.other": "එය වෙනත් දෙයක්",
  "report.reasons.other_description": "ගැටළුව වෙනත් වර්ග වලට නොගැලපේ",
  "report.reasons.spam": "එය අයාචිතයි",
  "report.reasons.spam_description": "අනිෂ්ට සබැඳි, ව්‍යාජ නියැලීම, හෝ පුනරාවර්තන පිළිතුරු",


@@ 408,44 371,48 @@
  "report.rules.subtitle": "අදාළ සියල්ල තෝරන්න",
  "report.rules.title": "කුමන නීති උල්ලංඝනය කරන්නේද?",
  "report.statuses.subtitle": "අදාළ සියල්ල තෝරන්න",
  "report.statuses.title": "මෙම වාර්තාව උපස්ථ කරන පෝස්ට් තිබේද?",
  "report.statuses.title": "මෙම වාර්තාව උපස්ථ කළ ලිපි තිබේ ද?",
  "report.submit": "යොමන්න",
  "report.target": "වාර්තාව {target}",
  "report.thanks.take_action": "Mastodon හි ඔබ දකින දේ පාලනය කිරීම සඳහා ඔබේ විකල්ප මෙන්න:",
  "report.target": "{target} වාර්තා කිරීම",
  "report.thanks.take_action": "මාස්ටඩන් හි ඔබ දකින දෑ පාලනයට තිබෙන විකල්ප:",
  "report.thanks.take_action_actionable": "අපි මෙය සමාලෝචනය කරන අතරතුර, ඔබට @{name}ට එරෙහිව පියවර ගත හැක:",
  "report.thanks.title": "මෙය නොපෙන්විය යුතුද?",
  "report.thanks.title_actionable": "වාර්තා කිරීමට ස්තූතියි, අපි මේ ගැන සොයා බලමු.",
  "report.unfollow": "@{name}අනුගමනය නොකරන්න",
  "report.unfollow_explanation": "ඔබ මෙම ගිණුම අනුගමනය කරයි. ඔබේ නිවසේ සංග්‍රහයේ ඔවුන්ගේ පළ කිරීම් තවදුරටත් නොදැකීමට, ඒවා අනුගමනය නොකරන්න.",
  "report.unfollow_explanation": "ඔබ මෙම ගිණුම අනුගමනය කරයි. ඔබගේ මුල් පිටුවේ ඔවුන්ගේ ලිපි නොදැකීමට, ඔවුන්ව තවදුරටත් අනුගමනය නොකරන්න.",
  "report_notification.attached_statuses": "{count, plural, one {ලිපි {count}} other {ලිපි {count} ක්}} අමුණා ඇත",
  "report_notification.categories.other": "වෙනත්",
  "report_notification.categories.spam": "ආයාචිත",
  "report_notification.categories.violation": "නීතිය කඩ කිරීම",
  "report_notification.open": "විවෘත වාර්තාව",
  "search.placeholder": "සොයන්න",
  "search.quick_action.open_url": "ලිපිනය මාස්ටඩන්හි අරින්න",
  "search.search_or_paste": "සොයන්න හෝ ඒ.ස.නි. අලවන්න",
  "search_results.all": "සියල්ල",
  "search_results.hashtags": "හැෂ් ටැග්",
  "search_results.nothing_found": "මෙම සෙවුම් පද සඳහා කිසිවක් සොයාගත නොහැකි විය",
  "search_results.see_all": "සියල්ල බලන්න",
  "search_results.statuses": "ලිපි",
  "sign_in_banner.sign_in": "Sign in",
  "status.admin_account": "@{name}සඳහා මධ්‍යස්ථ අතුරුමුහුණත විවෘත කරන්න",
  "status.admin_status": "මධ්‍යස්ථ අතුරුමුහුණතෙහි මෙම තත්ත්වය විවෘත කරන්න",
  "search_results.title": "{q} සොයන්න",
  "server_banner.learn_more": "තව දැනගන්න",
  "sign_in_banner.create_account": "ගිණුමක් සාදන්න",
  "sign_in_banner.sign_in": "පිවිසෙන්න",
  "status.admin_status": "මෙම ලිපිය මැදිහත්කරණ අතුරුමුහුණතෙහි අරින්න",
  "status.block": "@{name} අවහිර",
  "status.bookmark": "පොත්යොමුවක්",
  "status.cannot_reblog": "මෙම තනතුර වැඩි කළ නොහැක",
  "status.copy": "තත්වයට සබැඳිය පිටපත් කරන්න",
  "status.delete": "මකන්න",
  "status.detailed_status": "විස්තරාත්මක සංවාද දැක්ම",
  "status.edit": "සංස්කරණය",
  "status.edited": "සංශෝධිතයි {date}",
  "status.edited_x_times": "සංශෝධිතයි {count, plural, one {වාර {count}} other {වාර {count}}}",
  "status.embed": "කාවැද්දූ",
  "status.filter": "මෙම ලිපිය පෙරන්න",
  "status.filtered": "පෙරන ලද",
  "status.hide": "ලිපිය සඟවන්න",
  "status.history.created": "{name} නිර්මාණය {date}",
  "status.history.edited": "{name} සංස්කරණය {date}",
  "status.load_more": "තව පූරණය",
  "status.media_hidden": "මාධ්‍ය සඟවා ඇත",
  "status.mention": "@{name} සැඳහුම",
  "status.mention": "@{name} සඳහන් කරන්ක",
  "status.more": "තව",
  "status.mute": "@{name} නිහඬව",
  "status.mute_conversation": "සංවාදය නිහඬව",


@@ 453,15 420,10 @@
  "status.pin": "පැතිකඩට අමුණන්න",
  "status.pinned": "ඇමිණූ ලිපියකි",
  "status.read_more": "තව කියවන්න",
  "status.reblog": "බූස්ට් කරන්න",
  "status.reblog_private": "මුල් දෘශ්‍යතාව සමඟ වැඩි කරන්න",
  "status.reblogged_by": "{name} වැඩි කරන ලදී",
  "status.reblogs.empty": "තාම කවුරුත් මේ toot එක boost කරලා නැහැ. යමෙකු එසේ කළ විට, ඔවුන් මෙහි පෙන්වනු ඇත.",
  "status.redraft": "මකන්න සහ නැවත කෙටුම්පත",
  "status.remove_bookmark": "පොත්යොමුව ඉවතලන්න",
  "status.reply": "පිළිතුරු",
  "status.replyAll": "ත්‍රෙඩ් එකට පිළිතුරු දෙන්න",
  "status.report": "@{name} වාර්තාව",
  "status.replyAll": "නූලට පිළිතුරු දෙන්න",
  "status.report": "@{name} වාර්තා කරන්න",
  "status.sensitive_warning": "සංවේදී අන්තර්ගතයකි",
  "status.share": "බෙදාගන්න",
  "status.show_filter_reason": "කෙසේ වුවද පෙන්වන්න",


@@ 469,29 431,29 @@
  "status.show_less_all": "සියල්ල අඩුවෙන් පෙන්වන්න",
  "status.show_more": "තවත් පෙන්වන්න",
  "status.show_more_all": "සියල්ල වැඩියෙන් පෙන්වන්න",
  "status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
  "status.translate": "පරිවර්තනය",
  "status.translated_from_with": "{provider} මගින් {lang} භාෂාවෙන් පරිවර්තනය කර ඇත",
  "status.uncached_media_warning": "පෙරදසුන නැත",
  "status.unmute_conversation": "සංවාදය නොනිහඬ",
  "status.unpin": "පැතිකඩෙන් ගළවන්න",
  "subscribed_languages.save": "වෙනස්කම් සුරකින්න",
  "tabs_bar.home": "මුල් පිටුව",
  "tabs_bar.notifications": "දැනුම්දීම්",
  "time_remaining.days": "{number, plural, one {# දින} other {# දින}} අත්හැරියා",
  "time_remaining.hours": "{number, plural, one {# පැය} other {# පැය}} අත්හැරියා",
  "time_remaining.minutes": "{number, plural, one {විනාඩි #} other {# මිනිත්තු}} අත්හැරියා",
  "time_remaining.moments": "ඉතිරිව ඇති මොහොත",
  "time_remaining.seconds": "{number, plural, one {# දෙවැනි} other {# තත්පර}} අත්හැරියා",
  "time_remaining.days": "{number, plural, one {දවස් #} other {දවස් #}} ක් ඉතිරිය",
  "time_remaining.hours": "{number, plural, one {පැය #} other {පැය #}} ක් ඉතිරිය",
  "time_remaining.minutes": "{number, plural, one {විනාඩි #} other {විනාඩි #}} ක් ඉතිරිය",
  "time_remaining.seconds": "{number, plural, one {තත්පර #} other {තත්පර #}} ක් ඉතිරිය",
  "timeline_hint.remote_resource_not_displayed": "වෙනත් සේවාදායකයන්ගෙන් {resource} දර්ශනය නොවේ.",
  "timeline_hint.resources.followers": "අනුගාමිකයින්",
  "timeline_hint.resources.follows": "අනුගමනය",
  "timeline_hint.resources.statuses": "පරණ ලිපි",
  "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
  "trends.trending_now": "දැන් ප්‍රවණතාවය",
  "trends.trending_now": "දැන් නැගී එන",
  "ui.beforeunload": "ඔබ මාස්ටඩන් හැර ගියහොත් කටුපිටපත අහිමි වේ.",
  "units.short.billion": "{count}බී",
  "units.short.million": "ද.ල. {count}",
  "units.short.thousand": "{count}කි",
  "upload_area.title": "උඩුගතයට ඇද දමන්න",
  "upload_button.label": "රූප, දෘශ්‍යක හෝ හඬපට යොදන්න",
  "upload_button.label": "රූප, දෘශ්‍යක හෝ හඬපට අමුණන්න",
  "upload_error.limit": "සීමාව ඉක්මවා ඇත.",
  "upload_error.poll": "මත විමසුම් සමඟ ගොනු යෙදීමට ඉඩ නොදේ.",
  "upload_form.audio_description": "නොඇසෙන අය සඳහා විස්තර කරන්න",


@@ 508,10 470,11 @@
  "upload_modal.description_placeholder": "කඩිසර දුඹුරු හිවලෙක් කම්මැලි බල්ලා මතින් පනී",
  "upload_modal.detect_text": "රූපයෙහි පෙළ අනාවරණය",
  "upload_modal.edit_media": "මාධ්‍ය සංස්කරණය",
  "upload_modal.hint": "සියලුම සිඟිති රූ මත සැම විටම දර්ශනය වන නාභි ලක්ෂ්‍යය තේරීමට පෙරදසුනෙහි රවුම ක්ලික් කරන්න හෝ අදින්න.",
  "upload_modal.preparing_ocr": "OCR…සූදානම් කරමින්",
  "upload_modal.preparing_ocr": "OCR සඳහා සැරසෙමින්…",
  "upload_modal.preview_label": "පෙරදසුන ({ratio})",
  "upload_progress.label": "උඩුගත වෙමින්...",
  "upload_progress.processing": "සැකසෙමින්…",
  "username.taken": "නම දැනටමත් අරගෙන ඇත",
  "video.close": "දෘශ්‍යකය වසන්න",
  "video.download": "ගොනුව බාගන්න",
  "video.exit_fullscreen": "පූර්ණ තිරයෙන් පිටවන්න",

M app/javascript/mastodon/locales/sk.json => app/javascript/mastodon/locales/sk.json +68 -41
@@ 12,53 12,53 @@
  "about.powered_by": "Decentralizované sociálne médiá poháňané technológiou {mastodon}",
  "about.rules": "Pravidlá servera",
  "account.account_note_header": "Poznámka",
  "account.add_or_remove_from_list": "Pridaj do, alebo odober zo zoznamov",
  "account.add_or_remove_from_list": "Pridaj alebo odober zo zoznamov",
  "account.badges.bot": "Bot",
  "account.badges.group": "Skupina",
  "account.block": "Blokuj @{name}",
  "account.block_domain": "Ukry všetko z {domain}",
  "account.block_domain": "Skry všetko z {domain}",
  "account.block_short": "Blokuj",
  "account.blocked": "Blokovaný/á",
  "account.browse_more_on_origin_server": "Prehľadávaj viac na pôvodnom profile",
  "account.cancel_follow_request": "Stiahni žiadosť o nasledovanie",
  "account.direct": "Spomeň @{name} v súkromí",
  "account.disable_notifications": "Prestaň ma oboznamovať, keď má @{name} príspevky",
  "account.domain_blocked": "Doména ukrytá",
  "account.cancel_follow_request": "Zruš žiadosť o sledovanie",
  "account.direct": "Spomeň @{name} súkromne",
  "account.disable_notifications": "Prestaň mi oznamovať, keď má @{name} príspevky",
  "account.domain_blocked": "Doména skrytá",
  "account.edit_profile": "Uprav profil",
  "account.enable_notifications": "Oboznamuj ma, keď má @{name} príspevky",
  "account.enable_notifications": "Oznamuj mi, keď má @{name} príspevky",
  "account.endorse": "Zobrazuj na profile",
  "account.featured_tags.last_status_at": "Posledný príspevok dňa {date}",
  "account.featured_tags.last_status_never": "Žiadne príspevky",
  "account.featured_tags.title": "Odporúčané hashtagy používateľa {name}",
  "account.follow": "Nasleduj",
  "account.followers": "Nasledovatelia",
  "account.follow": "Sleduj",
  "account.followers": "Sledovatelia",
  "account.followers.empty": "Tohto používateľa ešte nikto nenasleduje.",
  "account.followers_counter": "{count, plural, one {{counter} Sledujúci} few {{counter} Sledujúci} many {{counter} Sledujúci} other {{counter} Sledujúci}}",
  "account.following": "Nasledujem",
  "account.followers_counter": "{count, plural, one {{counter} Sledujúci} few {{counter} Sledujúci} many {{counter} Sledujúcich} other {{counter} Sledujúcich}}",
  "account.following": "Sledujem",
  "account.following_counter": "{count, plural, one {{counter} Sledovaných} other {{counter} Sledujúcich}}",
  "account.follows.empty": "Tento používateľ ešte nikoho nenasleduje.",
  "account.follows_you": "Nasleduje ťa",
  "account.follows.empty": "Tento používateľ ešte nikoho nesleduje.",
  "account.follows_you": "Sleduje ťa",
  "account.go_to_profile": "Prejdi na profil",
  "account.hide_reblogs": "Skry vyzdvihnutia od @{name}",
  "account.hide_reblogs": "Skry zdieľania od @{name}",
  "account.in_memoriam": "In Memoriam.",
  "account.joined_short": "Pridal/a sa",
  "account.languages": "Zmeniť odoberané jazyky",
  "account.link_verified_on": "Vlastníctvo tohto odkazu bolo skontrolované {date}",
  "account.locked_info": "Stav súkromia pre tento účet je nastavený na zamknutý. Jeho vlastník sám prehodnocuje, kto ho môže sledovať.",
  "account.locked_info": "Stav súkromia pre tento účet je nastavený na zamknutý. Jeho vlastník sa sám rozhoduje, kto ho môže sledovať.",
  "account.media": "Médiá",
  "account.mention": "Spomeň @{name}",
  "account.moved_to": "{name} uvádza, že jeho/jej nový účet je teraz:",
  "account.mute": "Nevšímaj si @{name}",
  "account.mute_notifications_short": "Stíš oboznámenia",
  "account.mute_short": "Nevšímaj si",
  "account.muted": "Nevšímaný/á",
  "account.no_bio": "Nieje uvedený žiadny popis.",
  "account.mute": "Stíš @{name}",
  "account.mute_notifications_short": "Stíš oznámenia",
  "account.mute_short": "Stíš",
  "account.muted": "Stíšený",
  "account.no_bio": "Nie je uvedený žiadny popis.",
  "account.open_original_page": "Otvor pôvodnú stránku",
  "account.posts": "Príspevky",
  "account.posts_with_replies": "Príspevky a odpovede",
  "account.report": "Nahlás @{name}",
  "account.requested": "Čaká na schválenie. Klikni pre zrušenie žiadosti",
  "account.requested_follow": "{name} ťa žiada nasledovať",
  "account.requested_follow": "{name} ti poslal žiadosť na sledovanie",
  "account.share": "Zdieľaj @{name} profil",
  "account.show_reblogs": "Ukáž vyzdvihnutia od @{name}",
  "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",


@@ 84,7 84,7 @@
  "alert.rate_limited.title": "Tempo obmedzené",
  "alert.unexpected.message": "Vyskytla sa nečakaná chyba.",
  "alert.unexpected.title": "Ups!",
  "announcement.announcement": "Oboznámenie",
  "announcement.announcement": "Oznámenie",
  "attachments_list.unprocessed": "(nespracované)",
  "audio.hide": "Skry zvuk",
  "autosuggest_hashtag.per_week": "{count} týždenne",


@@ 119,7 119,7 @@
  "column.home": "Domov",
  "column.lists": "Zoznamy",
  "column.mutes": "Nevšímaní užívatelia",
  "column.notifications": "Oboznámenia",
  "column.notifications": "Oznámenia",
  "column.pins": "Pripnuté príspevky",
  "column.public": "Federovaná časová os",
  "column_back_button.label": "Späť",


@@ 185,7 185,7 @@
  "confirmations.redraft.message": "Ste si istý, že chcete premazať a prepísať tento príspevok? Jeho nadobudnuté vyzdvihnutia a obľúbenia, ale i odpovede na pôvodný príspevok budú odlúčené.",
  "confirmations.reply.confirm": "Odpovedz",
  "confirmations.reply.message": "Odpovedaním akurát teraz prepíšeš správu, ktorú máš práve rozpísanú. Si si istý/á, že chceš pokračovať?",
  "confirmations.unfollow.confirm": "Nesleduj",
  "confirmations.unfollow.confirm": "Prestaň sledovať",
  "confirmations.unfollow.message": "Naozaj chceš prestať sledovať {name}?",
  "conversation.delete": "Vymaž konverzáciu",
  "conversation.mark_as_read": "Označ za prečítané",


@@ 223,7 223,7 @@
  "emoji_button.symbols": "Symboly",
  "emoji_button.travel": "Cestovanie a miesta",
  "empty_column.account_suspended": "Účet bol vylúčený",
  "empty_column.account_timeline": "Niesu tu žiadne príspevky!",
  "empty_column.account_timeline": "Nie sú tu žiadne príspevky!",
  "empty_column.account_unavailable": "Profil nedostupný",
  "empty_column.blocks": "Ešte si nikoho nezablokoval/a.",
  "empty_column.bookmarked_statuses": "Ešte nemáš žiadné záložky. Keď si pridáš príspevok k záložkám, zobrazí sa tu.",


@@ 296,19 296,24 @@
  "hashtag.column_settings.tag_mode.any": "Hociktorý z týchto",
  "hashtag.column_settings.tag_mode.none": "Žiaden z týchto",
  "hashtag.column_settings.tag_toggle": "Vlož dodatočné haštagy pre tento stĺpec",
  "hashtag.follow": "Nasleduj haštag",
  "hashtag.counter_by_accounts": "{count, plural, one {{counter} sledujúci} few {{counter} sledujúci} many {{counter} sledujúcich} other {{counter} sledujúcich}}",
  "hashtag.counter_by_uses": "{count, plural, one {{counter} príspevok} few {{counter} príspevky} many {{counter} príspevkov} other {{counter} príspevkov}}",
  "hashtag.counter_by_uses_today": "{count, plural, one {{counter} príspevok} few {{counter} príspevky} many {{counter} príspevkov} other {{counter} príspevkov}} dnes",
  "hashtag.follow": "Sleduj haštag",
  "hashtag.unfollow": "Nesleduj haštag",
  "hashtags.and_other": "…a {count, plural, one {} few {# ďalšie} many {# ďalších}other {# ďalších}}",
  "home.actions.go_to_explore": "Pozrieť, čo je trendy",
  "home.actions.go_to_suggestions": "Nájdi ľudí na sledovanie",
  "home.column_settings.basic": "Základné",
  "home.column_settings.show_reblogs": "Ukáž vyzdvihnuté",
  "home.column_settings.show_replies": "Ukáž odpovede",
  "home.explore_prompt.body": "Váš domovský informačný kanál bude obsahovať mix príspevkov z mriežok, ktoré ste sa rozhodli sledovať, ľudí, ktorých ste sa rozhodli sledovať, a príspevkov, ktoré preferujú. Ak sa vám to zdá príliš málo, možno budete chcieť:",
  "home.explore_prompt.title": "Toto je tvoja domovina v rámci Mastodonu.",
  "home.hide_announcements": "Skry oboznámenia",
  "home.hide_announcements": "Skry oznámenia",
  "home.pending_critical_update.body": "Prosím aktualizuj si svoj Mastodon server, ako náhle to bude možné!",
  "home.pending_critical_update.link": "Pozri aktualizácie",
  "home.pending_critical_update.title": "Je dostupná kritická bezpečnostná aktualizácia!",
  "home.show_announcements": "Ukáž oboznámenia",
  "home.show_announcements": "Ukáž oznámenia",
  "interaction_modal.description.favourite": "S účtom na Mastodone si môžeš tento príspevok obľúbiť, aby si dal/a autorovi vedieť, že ho oceňuješ, a uložiť si ho na neskôr.",
  "interaction_modal.description.follow": "Ak máte konto na Mastodone, môžete sledovať {name} a dostávať príspevky do svojho domovského kanála.",
  "interaction_modal.description.reblog": "Ak máte účet na Mastodone, môžete tento príspevok posilniť a zdieľať ho s vlastnými sledovateľmi.",


@@ 319,6 324,7 @@
  "interaction_modal.on_another_server": "Na inom serveri",
  "interaction_modal.on_this_server": "Na tomto serveri",
  "interaction_modal.sign_in": "Nie si prihláseý/á na tomto serveri. Kde je tvoj účet hostovaný?",
  "interaction_modal.sign_in_hint": "Tip: Toto je webová stránka, na ktorej ste sa zaregistrovali. Ak si nepamätáte, pohľadajte uvítací e-mail vo svojej schránke. Môžete tiež zadať svoje celé používateľské meno! (napr. @Mastodon@mastodon.social)",
  "interaction_modal.title.favourite": "Obľúb si {name} ov/in príspevok",
  "interaction_modal.title.follow": "Nasleduj {name}",
  "interaction_modal.title.reblog": "Vyzdvihni {name}ov/in príspevok",


@@ 346,7 352,7 @@
  "keyboard_shortcuts.mention": "spomeň autora",
  "keyboard_shortcuts.muted": "otvor zoznam stíšených užívateľov",
  "keyboard_shortcuts.my_profile": "otvor svoj profil",
  "keyboard_shortcuts.notifications": "otvor panel oboznámení",
  "keyboard_shortcuts.notifications": "Otvor panel oznámení",
  "keyboard_shortcuts.open_media": "na otvorenie médií",
  "keyboard_shortcuts.pinned": "otvor zoznam pripnutých príspevkov",
  "keyboard_shortcuts.profile": "otvor autorov profil",


@@ 373,6 379,7 @@
  "lists.delete": "Vymaž list",
  "lists.edit": "Uprav zoznam",
  "lists.edit.submit": "Zmeň názov",
  "lists.exclusive": "Skryť tieto príspevky z domovskej stránky",
  "lists.new.create": "Pridaj zoznam",
  "lists.new.title_placeholder": "Názov nového zoznamu",
  "lists.replies_policy.followed": "Akýkoľvek nasledovaný užívateľ",


@@ 426,11 433,11 @@
  "notification.reblog": "{name} zdieľal/a tvoj príspevok",
  "notification.status": "{name} práve uverejnil/a",
  "notification.update": "{name} upravil/a príspevok",
  "notifications.clear": "Vyčisti oboznámenia",
  "notifications.clear_confirmation": "Naozaj chceš nenávratne prečistiť všetky tvoje oboznámenia?",
  "notifications.clear": "Vyčisti oznámenia",
  "notifications.clear_confirmation": "Naozaj chceš nenávratne odstrániť všetky tvoje oznámenia?",
  "notifications.column_settings.admin.report": "Nové hlásenia:",
  "notifications.column_settings.admin.sign_up": "Nové registrácie:",
  "notifications.column_settings.alert": "Oboznámenia na ploche",
  "notifications.column_settings.alert": "Oznámenia na ploche",
  "notifications.column_settings.favourite": "Obľúbené:",
  "notifications.column_settings.filter_bar.advanced": "Zobraz všetky kategórie",
  "notifications.column_settings.filter_bar.category": "Rýchle triedenie",


@@ 444,8 451,8 @@
  "notifications.column_settings.show": "Ukáž v stĺpci",
  "notifications.column_settings.sound": "Prehraj zvuk",
  "notifications.column_settings.status": "Nové príspevky:",
  "notifications.column_settings.unread_notifications.category": "Neprečítané oboznámenia",
  "notifications.column_settings.unread_notifications.highlight": "Zdôrazni neprečítané oboznámenia",
  "notifications.column_settings.unread_notifications.category": "Neprečítané oznámenia",
  "notifications.column_settings.unread_notifications.highlight": "Zdôrazni neprečítané oznámenia",
  "notifications.column_settings.update": "Úpravy:",
  "notifications.filter.all": "Všetky",
  "notifications.filter.boosts": "Vyzdvihnutia",


@@ 455,12 462,12 @@
  "notifications.filter.polls": "Výsledky ankiet",
  "notifications.filter.statuses": "Aktualizácie od ľudí, ktorých nasleduješ",
  "notifications.grant_permission": "Udeľ povolenie.",
  "notifications.group": "{count} oboznámení",
  "notifications.mark_as_read": "Označ každé oboznámenie za prečítané",
  "notifications.permission_denied": "Oboznámenia na plochu sú nedostupné, kvôli predtým zamietnutej požiadavke prehliadača",
  "notifications.permission_denied_alert": "Oboznámenia na ploche nemôžu byť zapnuté, pretože požiadavka prehliadača o to, bola už skôr zamietnutá",
  "notifications.permission_required": "Oboznámenia na ploche sú nedostupné, pretože potrebné povolenia neboli udelené.",
  "notifications_permission_banner.enable": "Povoliť oboznámenia na plochu",
  "notifications.group": "{count} Oznámení",
  "notifications.mark_as_read": "Označ každé oznámenie za prečítané",
  "notifications.permission_denied": "Oznámenia na ploche sú nedostupné, kvôli predtým zamietnutej požiadavke prehliadača",
  "notifications.permission_denied_alert": "Oznámenia na ploche nemôžu byť zapnuté, pretože požiadavka prehliadača bola už skôr zamietnutá",
  "notifications.permission_required": "Oznámenia na ploche sú nedostupné, pretože potrebné povolenia neboli udelené.",
  "notifications_permission_banner.enable": "Povoliť oznámenia na ploche",
  "notifications_permission_banner.how_to_control": "Ak chcete dostávať upozornenia, keď Mastodon nie je otvorený, povoľte upozornenia na ploche. Po ich zapnutí môžete presne kontrolovať, ktoré typy interakcií generujú upozornenia na ploche, a to prostredníctvom tlačidla {icon} vyššie.",
  "notifications_permission_banner.title": "Nikdy nezmeškaj jedinú vec",
  "onboarding.action.back": "Vziať ma späť",


@@ 468,6 475,7 @@
  "onboarding.actions.go_to_explore": "See what's trending",
  "onboarding.actions.go_to_home": "Go to your home feed",
  "onboarding.compose.template": "Nazdar #Mastodon!",
  "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.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
  "onboarding.follows.title": "Popular on Mastodon",
  "onboarding.share.lead": "Daj ľudom vedieť, ako ťa môžu na Mastodone nájsť!",


@@ 476,6 484,7 @@
  "onboarding.share.title": "Zdieľaj svoj profil",
  "onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:",
  "onboarding.start.skip": "Want to skip right ahead?",
  "onboarding.start.title": "Zvládli ste to!",
  "onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.",
  "onboarding.steps.follow_people.title": "Follow {count, plural, one {one person} other {# people}}",
  "onboarding.steps.publish_status.body": "Say hello to the world.",


@@ 484,6 493,12 @@
  "onboarding.steps.setup_profile.title": "Customize your profile",
  "onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
  "onboarding.steps.share_profile.title": "Share your profile",
  "onboarding.tips.2fa": "<strong>Vedeli ste?</strong> Svoj účet môžete zabezpečiť nastavením dvojfaktorového overenia v nastaveniach účtu. Funguje to s akoukoľvek aplikáciou TOTP podľa vášho výberu, nie je potrebné žiadne telefónne číslo!",
  "onboarding.tips.accounts_from_other_servers": "<strong>Vedeli ste?</strong> Keďže Mastodon je decentralizovaný, niektoré profily, s ktorými sa stretnete, budú na iných serveroch, ako je váš. Aj napriek tomu s nimi môžete bezproblémovo komunikovať! Ich server je v druhej časti ich používateľského mena!",
  "onboarding.tips.migration": "<strong>Vedeli ste?</strong> Ak máte pocit, že doména {domain} pre vás v budúcnosti nebude skvelou voľbou, môžete prejsť na iný server Mastodon bez straty svojich sledovateľov. Môžete dokonca hostovať svoj vlastný server!",
  "onboarding.tips.verification": "<strong>Vedeli ste?</strong> Svoj účet môžete overiť umiestnením odkazu na svoj profil Mastodon na svoju vlastnú webovú lokalitu a pridaním webovej lokality do svojho profilu. Nie sú potrebné žiadne poplatky ani doklady!",
  "password_confirmation.exceeds_maxlength": "Potvrdené heslo presahuje maximálnu dĺžku hesla",
  "password_confirmation.mismatching": "Zadané heslá sa nezhodujú",
  "picture_in_picture.restore": "Vrátiť späť",
  "poll.closed": "Uzatvorená",
  "poll.refresh": "Obnoviť",


@@ 542,6 557,7 @@
  "report.reasons.dislike": "Nepáči sa mi",
  "report.reasons.dislike_description": "Nieje to niečo, čo chceš vidieť",
  "report.reasons.legal": "Je to nelegálne",
  "report.reasons.legal_description": "Domnievate sa, že porušuje zákony vašej krajiny alebo krajiny servera",
  "report.reasons.other": "Je to niečo iné",
  "report.reasons.other_description": "Tento problém nepatrí do iných kategórií",
  "report.reasons.spam": "Je to spam",


@@ 559,6 575,7 @@
  "report.thanks.title": "Nechceš to vidieť?",
  "report.thanks.title_actionable": "Vďaka za nahlásenie, pozrieme sa na to.",
  "report.unfollow": "Nesleduj @{name}",
  "report.unfollow_explanation": "Tento účet sledujete. Ak už nechcete vidieť jeho príspevky vo svojom domovskom kanáli, zrušte jeho sledovanie.",
  "report_notification.attached_statuses": "{count, plural, one {# post} other {# posts}} attached",
  "report_notification.categories.legal": "Právne ujednania",
  "report_notification.categories.other": "Ostatné",


@@ 573,6 590,8 @@
  "search.quick_action.open_url": "Otvor URL v rámci Mastodonu",
  "search.quick_action.status_search": "Príspevky zodpovedajúce {x}",
  "search.search_or_paste": "Hľadaj, alebo vlož URL adresu",
  "search_popout.full_text_search_disabled_message": "Nie je k dispozícii v doméne {domain}.",
  "search_popout.language_code": "ISO kód jazyka",
  "search_popout.options": "Možnosti vyhľadávania",
  "search_popout.quick_actions": "Rýchle akcie",
  "search_popout.recent": "Nedávne vyhľadávania",


@@ 585,14 604,18 @@
  "search_results.see_all": "Ukáž všetky",
  "search_results.statuses": "Príspevky",
  "search_results.title": "Hľadaj {q}",
  "server_banner.about_active_users": "Ľudia používajúci tento server za posledných 30 dní (Aktívni používatelia za mesiac)",
  "server_banner.active_users": "aktívni užívatelia",
  "server_banner.administered_by": "Správcom je:",
  "server_banner.introduction": "{domain} je súčasťou decentralizovanej sociálnej siete využívajúcej technológiu {mastodon}.",
  "server_banner.learn_more": "Zisti viac",
  "server_banner.server_stats": "Serverové štatistiky:",
  "sign_in_banner.create_account": "Vytvor účet",
  "sign_in_banner.sign_in": "Prihlás sa",
  "sign_in_banner.sso_redirect": "Prihlás sa, alebo zaregistruj",
  "sign_in_banner.text": "Prihláste sa, aby ste mohli sledovať profily alebo haštagy, obľúbené veci, zdieľať ich a odpovedať na príspevky. Môžete tiež komunikovať zo svojho účtu na inom serveri.",
  "status.admin_account": "Otvor moderovacie rozhranie užívateľa @{name}",
  "status.admin_domain": "Otvor rozhranie na moderovanie domény {domain}",
  "status.admin_status": "Otvor tento príspevok v moderovacom rozhraní",
  "status.block": "Blokuj @{name}",
  "status.bookmark": "Záložka",


@@ 649,9 672,11 @@
  "status.uncached_media_warning": "Náhľad nie je k dispozícii",
  "status.unmute_conversation": "Prestaň si nevšímať konverzáciu",
  "status.unpin": "Odopni z profilu",
  "subscribed_languages.lead": "Po zmene sa na vašej domovskej stránke a časovej osi zoznamu zobrazia iba príspevky vo vybraných jazykoch. Ak chcete dostávať príspevky vo všetkých jazykoch, vyberte možnosť žiadne.",
  "subscribed_languages.save": "Ulož zmeny",
  "subscribed_languages.target": "Zmeniť prihlásené jazyky pre {target}",
  "tabs_bar.home": "Domov",
  "tabs_bar.notifications": "Oboznámenia",
  "tabs_bar.notifications": "Oznámenia",
  "time_remaining.days": "Ostáva {number, plural, one {# deň} few {# dní} many {# dní} other {# dní}}",
  "time_remaining.hours": "Ostáva {number, plural, one {# hodina} few {# hodín} many {# hodín} other {# hodiny}}",
  "time_remaining.minutes": "Ostáva {number, plural, one {# minúta} few {# minút} many {# minút} other {# minúty}}",


@@ 680,6 705,7 @@
  "upload_form.video_description": "Popíš, pre ľudí so stratou sluchu, alebo očným znevýhodnením",
  "upload_modal.analyzing_picture": "Analyzujem obrázok…",
  "upload_modal.apply": "Použi",
  "upload_modal.applying": "Nastavovanie…",
  "upload_modal.choose_image": "Vyber obrázok",
  "upload_modal.description_placeholder": "Rýchla hnedá líška skáče ponad lenivého psa",
  "upload_modal.detect_text": "Rozpoznaj text z obrázka",


@@ 689,6 715,7 @@
  "upload_modal.preview_label": "Náhľad ({ratio})",
  "upload_progress.label": "Nahráva sa...",
  "upload_progress.processing": "Spracovávanie…",
  "username.taken": "Používateľské meno je obsadené. Skúste iné",
  "video.close": "Zavri video",
  "video.download": "Stiahni súbor",
  "video.exit_fullscreen": "Vypni zobrazenie na celú obrazovku",

M app/javascript/mastodon/locales/sr-Latn.json => app/javascript/mastodon/locales/sr-Latn.json +1 -1
@@ 514,7 514,7 @@
  "privacy.direct.long": "Vidljivo samo pomenutim korisnicima",
  "privacy.direct.short": "Samo pomenute osobe",
  "privacy.private.long": "Vidljivo samo pratiocima",
  "privacy.private.short": "Samo pratiocima",
  "privacy.private.short": "Samo pratioci",
  "privacy.public.long": "Vidljivo za sve",
  "privacy.public.short": "Javno",
  "privacy.unlisted.long": "Vidljivo svima, ali isključeno iz funkcija otkrivanja",

M app/javascript/mastodon/locales/sr.json => app/javascript/mastodon/locales/sr.json +1 -1
@@ 514,7 514,7 @@
  "privacy.direct.long": "Видљиво само поменутим корисницима",
  "privacy.direct.short": "Само поменуте особе",
  "privacy.private.long": "Видљиво само пратиоцима",
  "privacy.private.short": "Само пратиоцима",
  "privacy.private.short": "Само пратиоци",
  "privacy.public.long": "Видљиво за све",
  "privacy.public.short": "Јавно",
  "privacy.unlisted.long": "Видљиво свима, али искључено из функција откривања",

M app/javascript/mastodon/locales/zh-TW.json => app/javascript/mastodon/locales/zh-TW.json +1 -1
@@ 373,7 373,7 @@
  "lightbox.previous": "上一步",
  "limited_account_hint.action": "一律顯示個人檔案",
  "limited_account_hint.title": "此個人檔案已被 {domain} 的管理員隱藏。",
  "link_preview.author": "按照 {name}",
  "link_preview.author": "由 {name} 提供",
  "lists.account.add": "新增至列表",
  "lists.account.remove": "從列表中移除",
  "lists.delete": "刪除列表",

M app/javascript/styles/mastodon/components.scss => app/javascript/styles/mastodon/components.scss +12 -2
@@ 8279,6 8279,9 @@ noscript {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  background: $ui-base-color;
  border-bottom-left-radius: 4px;
  border-bottom-right-radius: 4px;
}

.story {


@@ 9009,6 9012,10 @@ noscript {
    color: $dark-text-color;
    margin-bottom: 20px;

    .version {
      white-space: nowrap;
    }

    strong {
      font-weight: 500;
    }


@@ 9284,14 9291,17 @@ noscript {
    0 10px 15px -3px rgba($base-shadow-color, 0.25),
    0 4px 6px -4px rgba($base-shadow-color, 0.25);
  cursor: default;
  transition: 0.5s cubic-bezier(0.89, 0.01, 0.5, 1.1);
  transform: translateZ(0);
  font-size: 15px;
  line-height: 21px;

  &.notification-bar-active {
    inset-inline-start: 1rem;
  }

  .no-reduce-motion & {
    transition: 0.5s cubic-bezier(0.89, 0.01, 0.5, 1.1);
    transform: translateZ(0);
  }
}

.notification-bar-title {

M app/lib/account_statuses_filter.rb => app/lib/account_statuses_filter.rb +5 -1
@@ 60,8 60,12 @@ class AccountStatusesFilter
      .where(reblog_of_id: nil)
      .or(
        scope
          # This is basically `Status.not_domain_blocked_by_account(current_account)`
          # and `Status.not_excluded_by_account(current_account)` but on the
          # `reblog` association. Unfortunately, there seem to be no clean way
          # to re-use those scopes in our case.
          .where(reblog: { accounts: { domain: nil } }).or(scope.where.not(reblog: { accounts: { domain: current_account.excluded_from_timeline_domains } }))
          .where.not(reblog: { account_id: current_account.excluded_from_timeline_account_ids })
          .where.not(reblog: { accounts: { domain: current_account.excluded_from_timeline_domains } })
      )
  end


M app/lib/activitypub/case_transform.rb => app/lib/activitypub/case_transform.rb +2 -0
@@ 14,6 14,8 @@ module ActivityPub::CaseTransform
      when String
        camel_lower_cache[value] ||= if value.start_with?('_:')
                                       "_:#{value.delete_prefix('_:').underscore.camelize(:lower)}"
                                     elsif LanguagesHelper::ISO_639_1_REGIONAL.key?(value.to_sym)
                                       value
                                     else
                                       value.underscore.camelize(:lower)
                                     end

M app/lib/admin/metrics/dimension/software_versions_dimension.rb => app/lib/admin/metrics/dimension/software_versions_dimension.rb +2 -1
@@ 25,7 25,8 @@ class Admin::Metrics::Dimension::SoftwareVersionsDimension < Admin::Metrics::Dim
  end

  def ruby_version
    value = "#{RUBY_VERSION}p#{RUBY_PATCHLEVEL}"
    yjit = defined?(RubyVM::YJIT) && RubyVM::YJIT.enabled?
    value = "#{RUBY_VERSION}p#{RUBY_PATCHLEVEL}#{yjit ? ' +YJIT' : ''}"

    {
      key: 'ruby',

M app/lib/admin/metrics/dimension/space_usage_dimension.rb => app/lib/admin/metrics/dimension/space_usage_dimension.rb +19 -1
@@ 11,7 11,7 @@ class Admin::Metrics::Dimension::SpaceUsageDimension < Admin::Metrics::Dimension
  protected

  def perform_query
    [postgresql_size, redis_size, media_size]
    [postgresql_size, redis_size, media_size, search_size].compact
  end

  def postgresql_size


@@ 65,4 65,22 @@ class Admin::Metrics::Dimension::SpaceUsageDimension < Admin::Metrics::Dimension
                      redis.info
                    end
  end

  def search_size
    return unless Chewy.enabled?

    client_info = Chewy.client.info

    value = Chewy.client.indices.stats['indices'].values.sum { |index_data| index_data['primaries']['store']['size_in_bytes'] }

    {
      key: 'search',
      human_key: client_info.dig('version', 'distribution') == 'opensearch' ? 'OpenSearch' : 'Elasticsearch',
      value: value.to_s,
      unit: 'bytes',
      human_value: number_to_human_size(value),
    }
  rescue Faraday::ConnectionFailed, Elasticsearch::Transport::Transport::Error
    nil
  end
end

M app/lib/admin/system_check/elasticsearch_check.rb => app/lib/admin/system_check/elasticsearch_check.rb +25 -4
@@ 76,14 76,35 @@ class Admin::SystemCheck::ElasticsearchCheck < Admin::SystemCheck::BaseCheck
  end

  def compatible_version?
    return false if running_version.nil?

    Gem::Version.new(running_version) >= Gem::Version.new(required_version) ||
      Gem::Version.new(compatible_wire_version) >= Gem::Version.new(required_version)
    running_version_ok? || compatible_wire_version_ok?
  rescue ArgumentError
    false
  end

  def running_version_ok?
    return false if running_version.blank?

    gem_version_running >= gem_version_required
  end

  def compatible_wire_version_ok?
    return false if compatible_wire_version.blank?

    gem_version_compatible_wire >= gem_version_required
  end

  def gem_version_running
    Gem::Version.new(running_version)
  end

  def gem_version_required
    Gem::Version.new(required_version)
  end

  def gem_version_compatible_wire
    Gem::Version.new(compatible_wire_version)
  end

  def mismatched_indexes
    @mismatched_indexes ||= INDEXES.filter_map do |klass|
      klass.base_name if Chewy.client.indices.get_mapping[klass.index_name]&.deep_symbolize_keys != klass.mappings_hash

M app/lib/importer/base_importer.rb => app/lib/importer/base_importer.rb +3 -1
@@ 34,7 34,9 @@ class Importer::BaseImporter
  # Estimate the amount of documents that would be indexed. Not exact!
  # @returns [Integer]
  def estimate!
    ActiveRecord::Base.connection_pool.with_connection { |connection| connection.select_one("SELECT reltuples AS estimate FROM pg_class WHERE relname = '#{index.adapter.target.table_name}'")['estimate'].to_i }
    reltuples = ActiveRecord::Base.connection_pool.with_connection { |connection| connection.select_one("SELECT reltuples FROM pg_class WHERE relname = '#{index.adapter.target.table_name}'")['reltuples'].to_i }
    # If the table has never yet been vacuumed or analyzed, reltuples contains -1
    [reltuples, 0].max
  end

  # Import data from the database into the index

M app/models/account.rb => app/models/account.rb +2 -2
@@ 66,7 66,7 @@ class Account < ApplicationRecord
  BACKGROUND_REFRESH_INTERVAL = 1.week.freeze

  USERNAME_RE   = /[a-z0-9_]+([a-z0-9_.-]+[a-z0-9_]+)?/i
  MENTION_RE    = %r{(?<=^|[^/[:word:]])@((#{USERNAME_RE})(?:@[[:word:].-]+[[:word:]]+)?)}i
  MENTION_RE    = %r{(?<![=/[:word:]])@((#{USERNAME_RE})(?:@[[:word:].-]+[[:word:]]+)?)}i
  URL_PREFIX_RE = %r{\Ahttp(s?)://[^/]+}
  USERNAME_ONLY_RE = /\A#{USERNAME_RE}\z/i



@@ 131,7 131,7 @@ class Account < ApplicationRecord
  scope :searchable, -> { without_unapproved.without_suspended.where(moved_to_account_id: nil) }
  scope :discoverable, -> { searchable.without_silenced.where(discoverable: true).joins(:account_stat) }
  scope :followable_by, ->(account) { joins(arel_table.join(Follow.arel_table, Arel::Nodes::OuterJoin).on(arel_table[:id].eq(Follow.arel_table[:target_account_id]).and(Follow.arel_table[:account_id].eq(account.id))).join_sources).where(Follow.arel_table[:id].eq(nil)).joins(arel_table.join(FollowRequest.arel_table, Arel::Nodes::OuterJoin).on(arel_table[:id].eq(FollowRequest.arel_table[:target_account_id]).and(FollowRequest.arel_table[:account_id].eq(account.id))).join_sources).where(FollowRequest.arel_table[:id].eq(nil)) }
  scope :by_recent_status, -> { order(Arel.sql('account_stats.last_status_at DESC NULLS LAST')) }
  scope :by_recent_status, -> { includes(:account_stat).merge(AccountStat.order('last_status_at DESC NULLS LAST')).references(:account_stat) }
  scope :by_recent_sign_in, -> { order(Arel.sql('users.current_sign_in_at DESC NULLS LAST')) }
  scope :popular, -> { order('account_stats.followers_count desc') }
  scope :by_domain_and_subdomains, ->(domain) { where(domain: Instance.by_domain_and_subdomains(domain).select(:domain)) }

M app/models/admin/action_log_filter.rb => app/models/admin/action_log_filter.rb +1 -1
@@ 38,7 38,7 @@ class Admin::ActionLogFilter
    destroy_status: { target_type: 'Status', action: 'destroy' }.freeze,
    destroy_user_role: { target_type: 'UserRole', action: 'destroy' }.freeze,
    destroy_canonical_email_block: { target_type: 'CanonicalEmailBlock', action: 'destroy' }.freeze,
    disable_2fa_user: { target_type: 'User', action: 'disable' }.freeze,
    disable_2fa_user: { target_type: 'User', action: 'disable_2fa' }.freeze,
    disable_custom_emoji: { target_type: 'CustomEmoji', action: 'disable' }.freeze,
    disable_user: { target_type: 'User', action: 'disable' }.freeze,
    enable_custom_emoji: { target_type: 'CustomEmoji', action: 'enable' }.freeze,

M app/models/form/import.rb => app/models/form/import.rb +16 -8
@@ 43,14 43,14 @@ class Form::Import
  validate :validate_data

  def guessed_type
    return :muting if csv_data.headers.include?('Hide notifications')
    return :following if csv_data.headers.include?('Show boosts') || csv_data.headers.include?('Notify on new posts') || csv_data.headers.include?('Languages')
    return :following if data.original_filename&.start_with?('follows') || data.original_filename&.start_with?('following_accounts')
    return :blocking if data.original_filename&.start_with?('blocks') || data.original_filename&.start_with?('blocked_accounts')
    return :muting if data.original_filename&.start_with?('mutes') || data.original_filename&.start_with?('muted_accounts')
    return :domain_blocking if data.original_filename&.start_with?('domain_blocks') || data.original_filename&.start_with?('blocked_domains')
    return :bookmarks if data.original_filename&.start_with?('bookmarks')
    return :lists if data.original_filename&.start_with?('lists')
    return :muting if csv_headers_match?('Hide notifications')
    return :following if csv_headers_match?('Show boosts') || csv_headers_match?('Notify on new posts') || csv_headers_match?('Languages')
    return :following if file_name_matches?('follows') || file_name_matches?('following_accounts')
    return :blocking if file_name_matches?('blocks') || file_name_matches?('blocked_accounts')
    return :muting if file_name_matches?('mutes') || file_name_matches?('muted_accounts')
    return :domain_blocking if file_name_matches?('domain_blocks') || file_name_matches?('blocked_domains')
    return :bookmarks if file_name_matches?('bookmarks')
    return :lists if file_name_matches?('lists')
  end

  # Whether the uploaded CSV file seems to correspond to a different import type than the one selected


@@ 79,6 79,14 @@ class Form::Import

  private

  def file_name_matches?(string)
    data.original_filename&.start_with?(string)
  end

  def csv_headers_match?(string)
    csv_data.headers.include?(string)
  end

  def default_csv_headers
    case type.to_sym
    when :following, :blocking, :muting

M app/models/relationship_filter.rb => app/models/relationship_filter.rb +1 -1
@@ 114,7 114,7 @@ class RelationshipFilter
  def activity_scope(value)
    case value
    when 'dormant'
      AccountStat.where(last_status_at: nil).or(AccountStat.where(AccountStat.arel_table[:last_status_at].lt(1.month.ago)))
      Account.joins(:account_stat).where(account_stat: { last_status_at: [nil, ...1.month.ago] })
    else
      raise Mastodon::InvalidParameterError, "Unknown activity: #{value}"
    end

M app/models/report_filter.rb => app/models/report_filter.rb +1 -1
@@ 19,7 19,7 @@ class ReportFilter
    scope = Report.unresolved

    params.each do |key, value|
      scope = scope.merge scope_for(key, value), rewhere: true
      scope = scope.merge scope_for(key, value)
    end

    scope

M app/policies/backup_policy.rb => app/policies/backup_policy.rb +1 -1
@@ 1,7 1,7 @@
# frozen_string_literal: true

class BackupPolicy < ApplicationPolicy
  MIN_AGE = 1.week
  MIN_AGE = 6.days

  def create?
    user_signed_in? && current_user.backups.where('created_at >= ?', MIN_AGE.ago).count.zero?

M app/serializers/manifest_serializer.rb => app/serializers/manifest_serializer.rb +4 -0
@@ 84,6 84,10 @@ class ManifestSerializer < ActiveModel::Serializer
        name: 'Notifications',
        url: '/notifications',
      },
      {
        name: 'Explore',
        url: '/explore',
      },
    ]
  end
end

M app/services/software_update_check_service.rb => app/services/software_update_check_service.rb +3 -1
@@ 35,11 35,13 @@ class SoftwareUpdateCheckService < BaseService
  end

  def process_update_notices!(update_notices)
    return if update_notices.blank? || update_notices['updatesAvailable'].blank?
    return if update_notices.blank? || update_notices['updatesAvailable'].nil?

    # Clear notices that are not listed by the update server anymore
    SoftwareUpdate.where.not(version: update_notices['updatesAvailable'].pluck('version')).delete_all

    return if update_notices['updatesAvailable'].blank?

    # Check if any of the notices is new, and issue notifications
    known_versions = SoftwareUpdate.where(version: update_notices['updatesAvailable'].pluck('version')).pluck(:version)
    new_update_notices = update_notices['updatesAvailable'].filter { |notice| known_versions.exclude?(notice['version']) }

M app/views/admin/accounts/show.html.haml => app/views/admin/accounts/show.html.haml +1 -1
@@ 72,7 72,7 @@
      .dashboard__counters__label= t 'admin.accounts.login_status'

- if @account.local? && @account.user.nil?
  = link_to t('admin.accounts.unblock_email'), unblock_email_admin_account_path(@account.id), method: :post, class: 'button' if can?(:unblock_email, @account) && CanonicalEmailBlock.where(reference_account_id: @account.id).exists?
  = link_to t('admin.accounts.unblock_email'), unblock_email_admin_account_path(@account.id), method: :post, class: 'button' if can?(:unblock_email, @account) && CanonicalEmailBlock.exists?(reference_account_id: @account.id)
- else
  .table-wrapper
    %table.table.inline-table

M app/views/admin/announcements/edit.html.haml => app/views/admin/announcements/edit.html.haml +3 -3
@@ 5,8 5,8 @@
  = render 'shared/error_messages', object: @announcement

  .fields-group
    = f.input :starts_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}(:[0-9]{2}){1,2}', placeholder: Time.now.strftime('%FT%R') }
    = f.input :ends_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}(:[0-9]{2}){1,2}', placeholder: Time.now.strftime('%FT%R') }
    = f.input :starts_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: datetime_pattern, placeholder: datetime_placeholder }
    = f.input :ends_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: datetime_pattern, placeholder: datetime_placeholder }

  .fields-group
    = f.input :all_day, as: :boolean, wrapper: :with_label


@@ 16,7 16,7 @@

  - unless @announcement.published?
    .fields-group
      = f.input :scheduled_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}(:[0-9]{2}){1,2}', placeholder: Time.now.strftime('%FT%R') }
      = f.input :scheduled_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: datetime_pattern, placeholder: datetime_placeholder }

  .actions
    = f.button :button, t('generic.save_changes'), type: :submit

M app/views/admin/announcements/new.html.haml => app/views/admin/announcements/new.html.haml +3 -3
@@ 5,8 5,8 @@
  = render 'shared/error_messages', object: @announcement

  .fields-group
    = f.input :starts_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}(:[0-9]{2}){1,2}', placeholder: Time.now.strftime('%FT%R') }
    = f.input :ends_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}(:[0-9]{2}){1,2}', placeholder: Time.now.strftime('%FT%R') }
    = f.input :starts_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: datetime_pattern, placeholder: datetime_placeholder }
    = f.input :ends_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: datetime_pattern, placeholder: datetime_placeholder }

  .fields-group
    = f.input :all_day, as: :boolean, wrapper: :with_label


@@ 15,7 15,7 @@
    = f.input :text, wrapper: :with_block_label

  .fields-group
    = f.input :scheduled_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}(:[0-9]{2}){1,2}', placeholder: Time.now.strftime('%FT%R') }
    = f.input :scheduled_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: datetime_pattern, placeholder: datetime_placeholder }

  .actions
    = f.button :button, t('.create'), type: :submit

M app/views/admin/invites/index.html.haml => app/views/admin/invites/index.html.haml +2 -1
@@ 14,7 14,8 @@
- if policy(:invite).create?
  %p= t('invites.prompt')

  = render 'invites/form'
  = simple_form_for(@invite, url: admin_invites_path) do |form|
    = render partial: 'invites/form', object: form

  %hr.spacer/


M app/views/admin/reports/actions/preview.html.haml => app/views/admin/reports/actions/preview.html.haml +1 -1
@@ 61,7 61,7 @@
                      = fa_icon 'link'
                      = media_attachment.file_file_name
                .strike-card__statuses-list__item__meta
                  = link_to ActivityPub::TagManager.instance.url_for(status), target: '_blank' do
                  = link_to ActivityPub::TagManager.instance.url_for(status), target: '_blank', rel: 'noopener noreferrer' do
                    %time.formatted{ datetime: status.created_at.iso8601, title: l(status.created_at) }= l(status.created_at)
                  - unless status.application.nil?
                    ·

M app/views/admin/roles/_form.html.haml => app/views/admin/roles/_form.html.haml +24 -28
@@ 1,40 1,36 @@
= simple_form_for @role, url: @role.new_record? ? admin_roles_path : admin_role_path(@role) do |f|
  = render 'shared/error_messages', object: @role
= render 'shared/error_messages', object: form.object

  - if @role.everyone?
    .flash-message.info
      = t('admin.roles.everyone_full_description_html')
  - else
    .fields-group
      = f.input :name, wrapper: :with_label

    - unless current_user.role.id == @role.id
      .fields-group
        = f.input :position, wrapper: :with_label, input_html: { max: current_user.role.position - 1 }
- if form.object.everyone?
  .flash-message.info
    = t('admin.roles.everyone_full_description_html')
- else
  .fields-group
    = form.input :name, wrapper: :with_label

  - unless current_user.role == form.object
    .fields-group
      = f.input :color, wrapper: :with_label, input_html: { placeholder: '#000000', type: 'color' }
      = form.input :position, wrapper: :with_label, input_html: { max: current_user.role.position - 1 }

    %hr.spacer/
  .fields-group
    = form.input :color, wrapper: :with_label, input_html: { placeholder: '#000000', type: 'color' }

    .fields-group
      = f.input :highlighted, wrapper: :with_label
  %hr.spacer/

    %hr.spacer/
  .fields-group
    = form.input :highlighted, wrapper: :with_label

  - unless current_user.role.id == @role.id
  %hr.spacer/

    .field-group
      .input.with_block_label
        %label= t('simple_form.labels.user_role.permissions_as_keys')
        %span.hint= t('simple_form.hints.user_role.permissions_as_keys')
- unless current_user.role == form.object

      - (@role.everyone? ? UserRole::Flags::CATEGORIES.slice(:invites) : UserRole::Flags::CATEGORIES).each do |category, permissions|
        %h4= t(category, scope: 'admin.roles.categories')
  .field-group
    .input.with_block_label
      %label= t('simple_form.labels.user_role.permissions_as_keys')
      %span.hint= t('simple_form.hints.user_role.permissions_as_keys')

        = f.input :permissions_as_keys, collection: permissions, wrapper: :with_block_label, include_blank: false, label_method: ->(privilege) { safe_join([t("admin.roles.privileges.#{privilege}"), content_tag(:span, t("admin.roles.privileges.#{privilege}_description"), class: 'hint')]) }, required: false, as: :check_boxes, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', label: false, hint: false, disabled: permissions.filter { |privilege| UserRole::FLAGS[privilege] & current_user.role.computed_permissions == 0 }
    - (form.object.everyone? ? UserRole::Flags::CATEGORIES.slice(:invites) : UserRole::Flags::CATEGORIES).each do |category, permissions|
      %h4= t(category, scope: 'admin.roles.categories')

    %hr.spacer/
      = form.input :permissions_as_keys, collection: permissions, wrapper: :with_block_label, include_blank: false, label_method: ->(privilege) { safe_join([t("admin.roles.privileges.#{privilege}"), content_tag(:span, t("admin.roles.privileges.#{privilege}_description"), class: 'hint')]) }, required: false, as: :check_boxes, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', label: false, hint: false, disabled: permissions.filter { |privilege| UserRole::FLAGS[privilege] & current_user.role.computed_permissions == 0 }

  .actions
    = f.button :button, @role.new_record? ? t('admin.roles.add_new') : t('generic.save_changes'), type: :submit
  %hr.spacer/

M app/views/admin/roles/edit.html.haml => app/views/admin/roles/edit.html.haml +4 -1
@@ 4,4 4,7 @@
- content_for :heading_actions do
  = link_to t('admin.roles.delete'), admin_role_path(@role), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') }, class: 'button button--destructive' if can?(:destroy, @role)

= render partial: 'form'
= simple_form_for @role, url: admin_role_path(@role) do |form|
  = render partial: 'form', object: form
  .actions
    = form.button :button, t('generic.save_changes'), type: :submit

M app/views/admin/roles/new.html.haml => app/views/admin/roles/new.html.haml +4 -1
@@ 1,4 1,7 @@
- content_for :page_title do
  = t('admin.roles.add_new')

= render partial: 'form'
= simple_form_for @role, url: admin_roles_path do |form|
  = render partial: 'form', object: form
  .actions
    = form.button :button, t('admin.roles.add_new'), type: :submit

M app/views/admin/statuses/show.html.haml => app/views/admin/statuses/show.html.haml +1 -1
@@ 2,7 2,7 @@
  = t('statuses.title', name: display_name(@account), quote: truncate(@status.spoiler_text.presence || @status.text, length: 50, omission: '…', escape: false))

- content_for :heading_actions do
  = link_to t('admin.statuses.open'), ActivityPub::TagManager.instance.url_for(@status), class: 'button', target: '_blank'
  = link_to t('admin.statuses.open'), ActivityPub::TagManager.instance.url_for(@status), class: 'button', target: '_blank', rel: 'noopener noreferrer'

%h3= t('admin.statuses.metadata')


M app/views/admin/tags/show.html.haml => app/views/admin/tags/show.html.haml +1 -1
@@ 9,7 9,7 @@

  .dashboard
    .dashboard__item
      = react_admin_component :counter, measure: 'tag_accounts', start_at: @time_period.first, end_at: @time_period.last, params: { id: @tag.id }, label: t('admin.trends.tags.dashboard.tag_accounts_measure'), href: tag_url(@tag), target: '_blank'
      = react_admin_component :counter, measure: 'tag_accounts', start_at: @time_period.first, end_at: @time_period.last, params: { id: @tag.id }, label: t('admin.trends.tags.dashboard.tag_accounts_measure'), href: tag_url(@tag), target: '_blank', rel: 'noopener noreferrer'
    .dashboard__item
      = react_admin_component :counter, measure: 'tag_uses', start_at: @time_period.first, end_at: @time_period.last, params: { id: @tag.id }, label: t('admin.trends.tags.dashboard.tag_uses_measure')
    .dashboard__item

M app/views/admin/webhooks/_form.html.haml => app/views/admin/webhooks/_form.html.haml +7 -11
@@ 1,14 1,10 @@
= simple_form_for @webhook, url: @webhook.new_record? ? admin_webhooks_path : admin_webhook_path(@webhook) do |f|
  = render 'shared/error_messages', object: @webhook
= render 'shared/error_messages', object: form.object

  .fields-group
    = f.input :url, wrapper: :with_block_label, input_html: { placeholder: 'https://' }
.fields-group
  = form.input :url, wrapper: :with_block_label, input_html: { placeholder: 'https://' }

  .fields-group
    = f.input :events, collection: Webhook::EVENTS, wrapper: :with_block_label, include_blank: false, as: :check_boxes, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', disabled: Webhook::EVENTS.filter { |event| !current_user.role.can?(Webhook.permission_for_event(event)) }
.fields-group
  = form.input :events, collection: Webhook::EVENTS, wrapper: :with_block_label, include_blank: false, as: :check_boxes, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', disabled: Webhook::EVENTS.filter { |event| !current_user.role.can?(Webhook.permission_for_event(event)) }

  .fields-group
    = f.input :template, wrapper: :with_block_label, input_html: { placeholder: '{ "content": "Hello {{object.username}}" }' }

  .actions
    = f.button :button, @webhook.new_record? ? t('admin.webhooks.add_new') : t('generic.save_changes'), type: :submit
.fields-group
  = form.input :template, wrapper: :with_block_label, input_html: { placeholder: '{ "content": "Hello {{object.username}}" }' }

M app/views/admin/webhooks/edit.html.haml => app/views/admin/webhooks/edit.html.haml +4 -1
@@ 1,4 1,7 @@
- content_for :page_title do
  = t('admin.webhooks.edit')

= render partial: 'form'
= simple_form_for @webhook, url: admin_webhook_path(@webhook) do |form|
  = render partial: 'form', object: form
  .actions
    = form.button :button, t('generic.save_changes'), type: :submit

M app/views/admin/webhooks/new.html.haml => app/views/admin/webhooks/new.html.haml +4 -1
@@ 1,4 1,7 @@
- content_for :page_title do
  = t('admin.webhooks.new')

= render partial: 'form'
= simple_form_for @webhook, url: admin_webhooks_path do |form|
  = render partial: 'form', object: form
  .actions
    = form.button :button, t('admin.webhooks.add_new'), type: :submit

M app/views/auth/registrations/new.html.haml => app/views/auth/registrations/new.html.haml +1 -1
@@ 26,7 26,7 @@
    = f.input :confirm_password, as: :string, placeholder: t('simple_form.labels.defaults.honeypot', label: t('simple_form.labels.defaults.password')), required: false, input_html: { 'aria-label': t('simple_form.labels.defaults.honeypot', label: t('simple_form.labels.defaults.password')), autocomplete: 'off' }, hint: false
    = f.input :website, as: :url, wrapper: :with_label, label: t('simple_form.labels.defaults.honeypot', label: 'Website'), required: false, input_html: { 'aria-label': t('simple_form.labels.defaults.honeypot', label: 'Website'), autocomplete: 'off' }

  - if approved_registrations? && !@invite.present?
  - if approved_registrations? && @invite.blank?
    %p.lead= t('auth.sign_up.manual_review', domain: site_hostname)

    .fields-group

M app/views/disputes/strikes/show.html.haml => app/views/disputes/strikes/show.html.haml +2 -2
@@ 25,7 25,7 @@
      - unless @strike.none_action?
        %p= t "user_mailer.warning.explanation.#{@strike.action}", instance: Rails.configuration.x.local_domain

      - unless @strike.text.blank?
      - if @strike.text.present?
        = linkify(@strike.text)

      - if @strike.report && !@strike.report.other?


@@ 57,7 57,7 @@
                      = fa_icon 'link'
                      = media_attachment.file_file_name
                .strike-card__statuses-list__item__meta
                  = link_to ActivityPub::TagManager.instance.url_for(status), target: '_blank' do
                  = link_to ActivityPub::TagManager.instance.url_for(status), target: '_blank', rel: 'noopener noreferrer' do
                    %time.formatted{ datetime: status.created_at.iso8601, title: l(status.created_at) }= l(status.created_at)
                  - unless status.application.nil?
                    ·

M app/views/invites/_form.html.haml => app/views/invites/_form.html.haml +10 -11
@@ 1,14 1,13 @@
= simple_form_for(@invite, url: controller.is_a?(Admin::InvitesController) ? admin_invites_path : invites_path) do |f|
  = render 'shared/error_messages', object: @invite
= render 'shared/error_messages', object: form.object

  .fields-row
    .fields-row__column.fields-row__column-6.fields-group
      = f.input :max_uses, wrapper: :with_label, collection: [1, 5, 10, 25, 50, 100], label_method: ->(num) { I18n.t('invites.max_uses', count: num) }, prompt: I18n.t('invites.max_uses_prompt')
    .fields-row__column.fields-row__column-6.fields-group
      = f.input :expires_in, wrapper: :with_label, collection: [30.minutes, 1.hour, 6.hours, 12.hours, 1.day, 1.week].map(&:to_i), label_method: ->(i) { I18n.t("invites.expires_in.#{i}") }, prompt: I18n.t('invites.expires_in_prompt')
.fields-row
  .fields-row__column.fields-row__column-6.fields-group
    = form.input :max_uses, wrapper: :with_label, collection: invites_max_uses_options, label_method: ->(num) { I18n.t('invites.max_uses', count: num) }, prompt: I18n.t('invites.max_uses_prompt')
  .fields-row__column.fields-row__column-6.fields-group
    = form.input :expires_in, wrapper: :with_label, collection: invites_expires_options.map(&:to_i), label_method: ->(i) { I18n.t("invites.expires_in.#{i}") }, prompt: I18n.t('invites.expires_in_prompt')

  .fields-group
    = f.input :autofollow, wrapper: :with_label
.fields-group
  = form.input :autofollow, wrapper: :with_label

  .actions
    = f.button :button, t('invites.generate'), type: :submit
.actions
  = form.button :button, t('invites.generate'), type: :submit

M app/views/invites/index.html.haml => app/views/invites/index.html.haml +2 -1
@@ 4,7 4,8 @@
- if policy(:invite).create?
  %p= t('invites.prompt')

  = render 'form'
  = simple_form_for(@invite, url: invites_path) do |form|
    = render partial: 'form', object: form

  %hr.spacer/


M app/views/settings/preferences/appearance/show.html.haml => app/views/settings/preferences/appearance/show.html.haml +1 -2
@@ 7,8 7,7 @@
= simple_form_for current_user, url: settings_preferences_appearance_path, html: { method: :put, id: 'edit_user' } do |f|
  .fields-row
    .fields-group.fields-row__column.fields-row__column-6
      = f.input :locale, collection: I18n.available_locales, wrapper: :with_label, include_blank: false, label_method: ->(locale) { native_locale_name(locale) }, selected: I18n.locale, hint: false

      = f.input :locale, collection: ui_languages, wrapper: :with_label, include_blank: false, label_method: ->(locale) { native_locale_name(locale) }, selected: I18n.locale, hint: false
    .fields-group.fields-row__column.fields-row__column-6
      = f.input :time_zone, wrapper: :with_label, collection: ActiveSupport::TimeZone.all.map { |tz| ["(GMT#{tz.formatted_offset}) #{tz.name}", tz.tzinfo.name] }, hint: false


M app/views/shared/_og.html.haml => app/views/shared/_og.html.haml +3 -3
@@ 1,12 1,12 @@
- thumbnail     = @instance_presenter.thumbnail
- description ||= @instance_presenter.description.presence || strip_tags(t('about.about_mastodon_html'))
- thumbnail     = instance_presenter.thumbnail
- description ||= instance_presenter.description.presence || strip_tags(t('about.about_mastodon_html'))

%meta{ name: 'description', content: description }/

= opengraph 'og:site_name', t('about.hosted_on', domain: site_hostname)
= opengraph 'og:url', url_for(only_path: false)
= opengraph 'og:type', 'website'
= opengraph 'og:title', @instance_presenter.title
= opengraph 'og:title', instance_presenter.title
= opengraph 'og:description', description
= opengraph 'og:image', full_asset_url(thumbnail&.file&.url(:'@1x') || asset_pack_path('media/images/preview.png', protocol: :request))
= opengraph 'og:image:width', thumbnail ? thumbnail.meta['width'] : '1200'

M app/views/statuses/_detailed_status.html.haml => app/views/statuses/_detailed_status.html.haml +1 -1
@@ 77,4 77,4 @@

    - if user_signed_in?
      ·
      = link_to t('statuses.open_in_web'), web_url("@#{status.account.pretty_acct}/#{status.id}"), class: 'detailed-status__application', target: '_blank'
      = link_to t('statuses.open_in_web'), web_url("@#{status.account.pretty_acct}/#{status.id}"), class: 'detailed-status__application', target: '_blank', rel: 'noopener noreferrer'

M app/views/user_mailer/warning.html.haml => app/views/user_mailer/warning.html.haml +2 -2
@@ 39,7 39,7 @@
                              - unless @warning.none_action?
                                %p= t "user_mailer.warning.explanation.#{@warning.action}", instance: @instance

                              - unless @warning.text.blank?
                              - if @warning.text.present?
                                = linkify(@warning.text)

                              - if @warning.report && !@warning.report.other?


@@ 68,7 68,7 @@
          %table.content-section{ cellspacing: 0, cellpadding: 0 }
            %tbody
              %tr
                %td.content-cell{ class: @statuses.nil? || @statuses.empty? ? '' : 'content-start' }
                %td.content-cell{ class: @statuses.blank? ? '' : 'content-start' }
                  %table.column{ cellspacing: 0, cellpadding: 0 }
                    %tbody
                      %tr

M app/workers/account_deletion_worker.rb => app/workers/account_deletion_worker.rb +1 -1
@@ 3,7 3,7 @@
class AccountDeletionWorker
  include Sidekiq::Worker

  sidekiq_options queue: 'pull', lock: :until_executed
  sidekiq_options queue: 'pull', lock: :until_executed, lock_ttl: 1.week.to_i

  def perform(account_id, options = {})
    account = Account.find(account_id)

M app/workers/activitypub/synchronize_featured_collection_worker.rb => app/workers/activitypub/synchronize_featured_collection_worker.rb +1 -1
@@ 3,7 3,7 @@
class ActivityPub::SynchronizeFeaturedCollectionWorker
  include Sidekiq::Worker

  sidekiq_options queue: 'pull', lock: :until_executed
  sidekiq_options queue: 'pull', lock: :until_executed, lock_ttl: 1.day.to_i

  def perform(account_id, options = {})
    options = { note: true, hashtag: false }.deep_merge(options.deep_symbolize_keys)

M app/workers/activitypub/synchronize_featured_tags_collection_worker.rb => app/workers/activitypub/synchronize_featured_tags_collection_worker.rb +1 -1
@@ 3,7 3,7 @@
class ActivityPub::SynchronizeFeaturedTagsCollectionWorker
  include Sidekiq::Worker

  sidekiq_options queue: 'pull', lock: :until_executed
  sidekiq_options queue: 'pull', lock: :until_executed, lock_ttl: 1.day.to_i

  def perform(account_id, url)
    ActivityPub::FetchFeaturedTagsCollectionService.new.call(Account.find(account_id), url)

M app/workers/activitypub/update_distribution_worker.rb => app/workers/activitypub/update_distribution_worker.rb +1 -1
@@ 1,7 1,7 @@
# frozen_string_literal: true

class ActivityPub::UpdateDistributionWorker < ActivityPub::RawDistributionWorker
  sidekiq_options queue: 'push', lock: :until_executed
  sidekiq_options queue: 'push', lock: :until_executed, lock_ttl: 1.day.to_i

  # Distribute an profile update to servers that might have a copy
  # of the account in question

M app/workers/admin/account_deletion_worker.rb => app/workers/admin/account_deletion_worker.rb +1 -1
@@ 3,7 3,7 @@
class Admin::AccountDeletionWorker
  include Sidekiq::Worker

  sidekiq_options queue: 'pull', lock: :until_executed
  sidekiq_options queue: 'pull', lock: :until_executed, lock_ttl: 1.week.to_i

  def perform(account_id)
    DeleteAccountService.new.call(Account.find(account_id), reserve_username: true, reserve_email: true)

M app/workers/admin/domain_purge_worker.rb => app/workers/admin/domain_purge_worker.rb +1 -1
@@ 3,7 3,7 @@
class Admin::DomainPurgeWorker
  include Sidekiq::Worker

  sidekiq_options queue: 'pull', lock: :until_executed
  sidekiq_options queue: 'pull', lock: :until_executed, lock_ttl: 1.week.to_i

  def perform(domain)
    PurgeDomainService.new.call(domain)

M app/workers/import/row_worker.rb => app/workers/import/row_worker.rb +1 -1
@@ 8,7 8,7 @@ class Import::RowWorker
  sidekiq_retries_exhausted do |msg, _exception|
    ActiveRecord::Base.connection_pool.with_connection do
      # Increment the total number of processed items, and bump the state of the import if needed
      bulk_import_id = BulkImportRow.where(id: msg['args'][0]).pick(:id)
      bulk_import_id = BulkImportRow.where(id: msg['args'][0]).pick(:bulk_import_id)
      BulkImport.progress!(bulk_import_id) unless bulk_import_id.nil?
    end
  end

M app/workers/publish_scheduled_status_worker.rb => app/workers/publish_scheduled_status_worker.rb +1 -1
@@ 3,7 3,7 @@
class PublishScheduledStatusWorker
  include Sidekiq::Worker

  sidekiq_options lock: :until_executed
  sidekiq_options lock: :until_executed, lock_ttl: 1.hour.to_i

  def perform(scheduled_status_id)
    scheduled_status = ScheduledStatus.find(scheduled_status_id)

M app/workers/resolve_account_worker.rb => app/workers/resolve_account_worker.rb +1 -1
@@ 3,7 3,7 @@
class ResolveAccountWorker
  include Sidekiq::Worker

  sidekiq_options queue: 'pull', lock: :until_executed
  sidekiq_options queue: 'pull', lock: :until_executed, lock_ttl: 1.day.to_i

  def perform(uri)
    ResolveAccountService.new.call(uri)

M app/workers/scheduler/indexing_scheduler.rb => app/workers/scheduler/indexing_scheduler.rb +1 -1
@@ 5,7 5,7 @@ class Scheduler::IndexingScheduler
  include Redisable
  include DatabaseHelper

  sidekiq_options retry: 0, lock: :until_executed, lock_ttl: 1.day.to_i
  sidekiq_options retry: 0, lock: :until_executed, lock_ttl: 30.minutes.to_i

  IMPORT_BATCH_SIZE = 1000
  SCAN_BATCH_SIZE = 10 * IMPORT_BATCH_SIZE

M app/workers/scheduler/scheduled_statuses_scheduler.rb => app/workers/scheduler/scheduled_statuses_scheduler.rb +1 -1
@@ 3,7 3,7 @@
class Scheduler::ScheduledStatusesScheduler
  include Sidekiq::Worker

  sidekiq_options retry: 0, lock: :until_executed, lock_ttl: 1.day.to_i
  sidekiq_options retry: 0, lock: :until_executed, lock_ttl: 1.hour.to_i

  def perform
    publish_scheduled_statuses!

M app/workers/scheduler/trends/refresh_scheduler.rb => app/workers/scheduler/trends/refresh_scheduler.rb +1 -1
@@ 3,7 3,7 @@
class Scheduler::Trends::RefreshScheduler
  include Sidekiq::Worker

  sidekiq_options retry: 0
  sidekiq_options retry: 0, lock: :until_executed, lock_ttl: 30.minutes.to_i

  def perform
    Trends.refresh!

M app/workers/verify_account_links_worker.rb => app/workers/verify_account_links_worker.rb +1 -1
@@ 3,7 3,7 @@
class VerifyAccountLinksWorker
  include Sidekiq::Worker

  sidekiq_options queue: 'default', retry: false, lock: :until_executed
  sidekiq_options queue: 'default', retry: false, lock: :until_executed, lock_ttl: 1.hour.to_i

  def perform(account_id)
    account = Account.find(account_id)

M config/application.rb => config/application.rb +5 -5
@@ 5,15 5,15 @@ require_relative 'boot'
require 'rails'

require 'active_record/railtie'
#require 'active_storage/engine'
# require 'active_storage/engine'
require 'action_controller/railtie'
require 'action_view/railtie'
require 'action_mailer/railtie'
require 'active_job/railtie'
#require 'action_cable/engine'
#require 'action_mailbox/engine'
#require 'action_text/engine'
#require 'rails/test_unit/railtie'
# require 'action_cable/engine'
# require 'action_mailbox/engine'
# require 'action_text/engine'
# require 'rails/test_unit/railtie'
require 'sprockets/railtie'

# Used to be implicitly required in action_mailbox/engine

M config/environments/production.rb => config/environments/production.rb +6 -6
@@ 44,7 44,7 @@ Rails.application.configure do
  config.force_ssl = true
  config.ssl_options = {
    redirect: {
      exclude: -> request { request.path.start_with?('/health') || request.headers["Host"].end_with?('.onion') || request.headers["Host"].end_with?('.i2p') }
      exclude: ->request { request.path.start_with?('/health') || request.headers["Host"].end_with?('.onion') || request.headers["Host"].end_with?('.i2p') }
    }
  }



@@ 148,12 148,12 @@ Rails.application.configure do
  config.action_mailer.delivery_method = ENV.fetch('SMTP_DELIVERY_METHOD', 'smtp').to_sym

  config.action_dispatch.default_headers = {
    'Server'                 => 'Mastodon',
    'X-Frame-Options'        => 'DENY',
    'Server' => 'Mastodon',
    'X-Frame-Options' => 'DENY',
    'X-Content-Type-Options' => 'nosniff',
    'X-XSS-Protection'       => '0',
    'X-Clacks-Overhead'      => 'GNU Natalie Nguyen',
    'Referrer-Policy'        => 'same-origin',
    'X-XSS-Protection' => '0',
    'X-Clacks-Overhead' => 'GNU Natalie Nguyen',
    'Referrer-Policy' => 'same-origin',
  }

  config.x.otp_secret = ENV.fetch('OTP_SECRET')

M config/initializers/3_omniauth.rb => config/initializers/3_omniauth.rb +25 -25
@@ 76,35 76,35 @@ Devise.setup do |config|
  # OpenID Connect Strategy
  if ENV['OIDC_ENABLED'] == 'true'
    oidc_options = {}
    oidc_options[:display_name] = ENV['OIDC_DISPLAY_NAME'] #OPTIONAL
    oidc_options[:issuer] = ENV['OIDC_ISSUER'] if ENV['OIDC_ISSUER'] #NEED
    oidc_options[:discovery] = ENV['OIDC_DISCOVERY'] == 'true' if ENV['OIDC_DISCOVERY'] #OPTIONAL (default: false)
    oidc_options[:client_auth_method] = ENV['OIDC_CLIENT_AUTH_METHOD'] if ENV['OIDC_CLIENT_AUTH_METHOD'] #OPTIONAL (default: basic)
    scope_string = ENV['OIDC_SCOPE'] if ENV['OIDC_SCOPE'] #NEED
    oidc_options[:display_name] = ENV['OIDC_DISPLAY_NAME'] # OPTIONAL
    oidc_options[:issuer] = ENV['OIDC_ISSUER'] if ENV['OIDC_ISSUER'] # NEED
    oidc_options[:discovery] = ENV['OIDC_DISCOVERY'] == 'true' if ENV['OIDC_DISCOVERY'] # OPTIONAL (default: false)
    oidc_options[:client_auth_method] = ENV['OIDC_CLIENT_AUTH_METHOD'] if ENV['OIDC_CLIENT_AUTH_METHOD'] # OPTIONAL (default: basic)
    scope_string = ENV['OIDC_SCOPE'] if ENV['OIDC_SCOPE'] # NEED
    scopes = scope_string.split(',')
    oidc_options[:scope] = scopes.map { |x| x.to_sym }
    oidc_options[:response_type] = ENV['OIDC_RESPONSE_TYPE'] if ENV['OIDC_RESPONSE_TYPE'] #OPTIONAL (default: code)
    oidc_options[:response_mode] = ENV['OIDC_RESPONSE_MODE'] if ENV['OIDC_RESPONSE_MODE'] #OPTIONAL (default: query)
    oidc_options[:display] = ENV['OIDC_DISPLAY'] if ENV['OIDC_DISPLAY'] #OPTIONAL (default: page)
    oidc_options[:prompt] = ENV['OIDC_PROMPT'] if ENV['OIDC_PROMPT'] #OPTIONAL
    oidc_options[:send_nonce] = ENV['OIDC_SEND_NONCE'] == 'true' if ENV['OIDC_SEND_NONCE'] #OPTIONAL (default: true)
    oidc_options[:send_scope_to_token_endpoint] = ENV['OIDC_SEND_SCOPE_TO_TOKEN_ENDPOINT'] == 'true' if ENV['OIDC_SEND_SCOPE_TO_TOKEN_ENDPOINT'] #OPTIONAL (default: true)
    oidc_options[:post_logout_redirect_uri] = ENV['OIDC_IDP_LOGOUT_REDIRECT_URI'] if ENV['OIDC_IDP_LOGOUT_REDIRECT_URI'] #OPTIONAL
    oidc_options[:uid_field] = ENV['OIDC_UID_FIELD'] if ENV['OIDC_UID_FIELD'] #NEED
    oidc_options[:response_type] = ENV['OIDC_RESPONSE_TYPE'] if ENV['OIDC_RESPONSE_TYPE'] # OPTIONAL (default: code)
    oidc_options[:response_mode] = ENV['OIDC_RESPONSE_MODE'] if ENV['OIDC_RESPONSE_MODE'] # OPTIONAL (default: query)
    oidc_options[:display] = ENV['OIDC_DISPLAY'] if ENV['OIDC_DISPLAY'] # OPTIONAL (default: page)
    oidc_options[:prompt] = ENV['OIDC_PROMPT'] if ENV['OIDC_PROMPT'] # OPTIONAL
    oidc_options[:send_nonce] = ENV['OIDC_SEND_NONCE'] == 'true' if ENV['OIDC_SEND_NONCE'] # OPTIONAL (default: true)
    oidc_options[:send_scope_to_token_endpoint] = ENV['OIDC_SEND_SCOPE_TO_TOKEN_ENDPOINT'] == 'true' if ENV['OIDC_SEND_SCOPE_TO_TOKEN_ENDPOINT'] # OPTIONAL (default: true)
    oidc_options[:post_logout_redirect_uri] = ENV['OIDC_IDP_LOGOUT_REDIRECT_URI'] if ENV['OIDC_IDP_LOGOUT_REDIRECT_URI'] # OPTIONAL
    oidc_options[:uid_field] = ENV['OIDC_UID_FIELD'] if ENV['OIDC_UID_FIELD'] # NEED
    oidc_options[:client_options] = {}
    oidc_options[:client_options][:identifier] = ENV['OIDC_CLIENT_ID'] if ENV['OIDC_CLIENT_ID'] #NEED
    oidc_options[:client_options][:secret] = ENV['OIDC_CLIENT_SECRET'] if ENV['OIDC_CLIENT_SECRET'] #NEED
    oidc_options[:client_options][:redirect_uri] = ENV['OIDC_REDIRECT_URI'] if ENV['OIDC_REDIRECT_URI'] #NEED
    oidc_options[:client_options][:scheme] = ENV['OIDC_HTTP_SCHEME'] if ENV['OIDC_HTTP_SCHEME'] #OPTIONAL (default: https)
    oidc_options[:client_options][:host] = ENV['OIDC_HOST'] if ENV['OIDC_HOST'] #OPTIONAL
    oidc_options[:client_options][:port] = ENV['OIDC_PORT'] if ENV['OIDC_PORT'] #OPTIONAL
    oidc_options[:client_options][:authorization_endpoint] = ENV['OIDC_AUTH_ENDPOINT'] if ENV['OIDC_AUTH_ENDPOINT'] #NEED when discovery != true
    oidc_options[:client_options][:token_endpoint] = ENV['OIDC_TOKEN_ENDPOINT'] if ENV['OIDC_TOKEN_ENDPOINT'] #NEED when discovery != true
    oidc_options[:client_options][:userinfo_endpoint] = ENV['OIDC_USER_INFO_ENDPOINT'] if ENV['OIDC_USER_INFO_ENDPOINT'] #NEED when discovery != true
    oidc_options[:client_options][:jwks_uri] = ENV['OIDC_JWKS_URI'] if ENV['OIDC_JWKS_URI'] #NEED when discovery != true
    oidc_options[:client_options][:end_session_endpoint] = ENV['OIDC_END_SESSION_ENDPOINT'] if ENV['OIDC_END_SESSION_ENDPOINT'] #OPTIONAL
    oidc_options[:client_options][:identifier] = ENV['OIDC_CLIENT_ID'] if ENV['OIDC_CLIENT_ID'] # NEED
    oidc_options[:client_options][:secret] = ENV['OIDC_CLIENT_SECRET'] if ENV['OIDC_CLIENT_SECRET'] # NEED
    oidc_options[:client_options][:redirect_uri] = ENV['OIDC_REDIRECT_URI'] if ENV['OIDC_REDIRECT_URI'] # NEED
    oidc_options[:client_options][:scheme] = ENV['OIDC_HTTP_SCHEME'] if ENV['OIDC_HTTP_SCHEME'] # OPTIONAL (default: https)
    oidc_options[:client_options][:host] = ENV['OIDC_HOST'] if ENV['OIDC_HOST'] # OPTIONAL
    oidc_options[:client_options][:port] = ENV['OIDC_PORT'] if ENV['OIDC_PORT'] # OPTIONAL
    oidc_options[:client_options][:authorization_endpoint] = ENV['OIDC_AUTH_ENDPOINT'] if ENV['OIDC_AUTH_ENDPOINT'] # NEED when discovery != true
    oidc_options[:client_options][:token_endpoint] = ENV['OIDC_TOKEN_ENDPOINT'] if ENV['OIDC_TOKEN_ENDPOINT'] # NEED when discovery != true
    oidc_options[:client_options][:userinfo_endpoint] = ENV['OIDC_USER_INFO_ENDPOINT'] if ENV['OIDC_USER_INFO_ENDPOINT'] # NEED when discovery != true
    oidc_options[:client_options][:jwks_uri] = ENV['OIDC_JWKS_URI'] if ENV['OIDC_JWKS_URI'] # NEED when discovery != true
    oidc_options[:client_options][:end_session_endpoint] = ENV['OIDC_END_SESSION_ENDPOINT'] if ENV['OIDC_END_SESSION_ENDPOINT'] # OPTIONAL
    oidc_options[:security] = {}
    oidc_options[:security][:assume_email_is_verified] = ENV['OIDC_SECURITY_ASSUME_EMAIL_IS_VERIFIED'] == 'true' #OPTIONAL
    oidc_options[:security][:assume_email_is_verified] = ENV['OIDC_SECURITY_ASSUME_EMAIL_IS_VERIFIED'] == 'true' # OPTIONAL
    config.omniauth :openid_connect, oidc_options
  end
end

M config/initializers/content_security_policy.rb => config/initializers/content_security_policy.rb +1 -1
@@ 75,7 75,7 @@ end
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only
# Rails.application.config.content_security_policy_report_only = true

Rails.application.config.content_security_policy_nonce_generator = -> request { SecureRandom.base64(16) }
Rails.application.config.content_security_policy_nonce_generator = ->request { SecureRandom.base64(16) }

Rails.application.config.content_security_policy_nonce_directives = %w(style-src)


M config/initializers/cors.rb => config/initializers/cors.rb +11 -25
@@ 11,30 11,16 @@ Rails.application.config.middleware.insert_before 0, Rack::Cors do
  allow do
    origins '*'

    resource '/.well-known/*',
      headers: :any,
      methods: [:get],
      credentials: false
    resource '/@:username',
      headers: :any,
      methods: [:get],
      credentials: false
    resource '/users/:username',
      headers: :any,
      methods: [:get],
      credentials: false
    resource '/api/*',
      headers: :any,
      methods: [:post, :put, :delete, :get, :patch, :options],
      credentials: false,
      expose: ['Link', 'X-RateLimit-Reset', 'X-RateLimit-Limit', 'X-RateLimit-Remaining', 'X-Request-Id']
    resource '/oauth/token',
      headers: :any,
      methods: [:post],
      credentials: false
    resource '/assets/*', headers: :any, methods: [:get, :head, :options]
    resource '/stylesheets/*', headers: :any, methods: [:get, :head, :options]
    resource '/javascripts/*', headers: :any, methods: [:get, :head, :options]
    resource '/packs/*', headers: :any, methods: [:get, :head, :options]
    with_options headers: :any, credentials: false do
      with_options methods: [:get] do
        resource '/.well-known/*'
        resource '/@:username'
        resource '/users/:username'
      end
      resource '/api/*',
               expose: %w(Link X-RateLimit-Reset X-RateLimit-Limit X-RateLimit-Remaining X-Request-Id),
               methods: %i(post put delete get patch options)
      resource '/oauth/token', methods: [:post]
    end
  end
end

M config/initializers/rack_attack.rb => config/initializers/rack_attack.rb +3 -3
@@ 142,10 142,10 @@ class Rack::Attack
    match_data = request.env['rack.attack.match_data']

    headers = {
      'Content-Type'          => 'application/json',
      'X-RateLimit-Limit'     => match_data[:limit].to_s,
      'Content-Type' => 'application/json',
      'X-RateLimit-Limit' => match_data[:limit].to_s,
      'X-RateLimit-Remaining' => '0',
      'X-RateLimit-Reset'     => (now + (match_data[:period] - (now.to_i % match_data[:period]))).iso8601(6),
      'X-RateLimit-Reset' => (now + (match_data[:period] - (now.to_i % match_data[:period]))).iso8601(6),
    }

    [429, headers, [{ error: I18n.t('errors.429') }.to_json]]

M config/initializers/session_store.rb => config/initializers/session_store.rb +7 -4
@@ 2,7 2,10 @@

# Be sure to restart your server when you modify this file.

Rails.application.config.session_store :cookie_store,
  key: '_mastodon_session',
  secure: false, # All cookies have their secure flag set by the force_ssl option in production
  same_site: :lax
Rails
  .application
  .config
  .session_store :cookie_store,
                 key: '_mastodon_session',
                 secure: false, # All cookies have their secure flag set by the force_ssl option in production
                 same_site: :lax

M config/locales/activerecord.hr.yml => config/locales/activerecord.hr.yml +13 -0
@@ 5,3 5,16 @@ hr:
      poll:
        expires_at: Krajnji rok
        options: Opcije
      user:
        email: E-mail adresa
        password: Lozinka
      user/account:
        username: Korisničko ime
      user/invite_request:
        text: Razlog
    errors:
      models:
        account:
          attributes:
            username:
              invalid: mora sadržavati samo slova, brojeve i _

M config/locales/de.yml => config/locales/de.yml +1 -1
@@ 1069,7 1069,7 @@ de:
      cas: CAS
      saml: SAML
    register: Registrieren
    registration_closed: "%{instance} akzeptiert keine neuen Mitglieder*innen"
    registration_closed: "%{instance} akzeptiert keine neuen Mitglieder"
    resend_confirmation: Bestätigungslink erneut zusenden
    reset_password: Passwort zurücksetzen
    rules:

M config/locales/devise.en-GB.yml => config/locales/devise.en-GB.yml +12 -12
@@ 6,22 6,22 @@ en-GB:
      send_instructions: You will receive an email with instructions for how to confirm your email address in a few minutes. Please check your spam folder if you didn't receive this email.
      send_paranoid_instructions: If your email address exists in our database, you will receive an email with instructions for how to confirm your email address in a few minutes. Please check your spam folder if you didn't receive this email.
    failure:
      already_authenticated: You are already signed in.
      already_authenticated: You are already logged in.
      inactive: Your account is not activated yet.
      invalid: Invalid %{authentication_keys} or password.
      last_attempt: You have one more attempt before your account is locked.
      locked: Your account is locked.
      not_found_in_database: Invalid %{authentication_keys} or password.
      pending: Your account is still under review.
      timeout: Your session expired. Please sign in again to continue.
      unauthenticated: You need to sign in or sign up before continuing.
      timeout: Your session expired. Please log in again to continue.
      unauthenticated: You need to log in or sign up before continuing.
      unconfirmed: You have to confirm your email address before continuing.
    mailer:
      confirmation_instructions:
        action: Verify email address
        action_with_app: Confirm and return to %{app}
        explanation: You have created an account on %{host} with this email address. You are one click away from activating it. If this wasn't you, please ignore this email.
        explanation_when_pending: You applied for an invite to %{host} with this email address. Once you confirm your e-mail address, we will review your application. You can login to change your details or delete your account, but you cannot access most of the functions until your account is approved. If your application is rejected, your data will be removed, so no further action will be required from you. If this wasn't you, please ignore this email.
        explanation_when_pending: You applied for an invite to %{host} with this email address. Once you confirm your e-mail address, we will review your application. You can log in to change your details or delete your account, but you cannot access most of the functions until your account is approved. If your application is rejected, your data will be removed, so no further action will be required from you. If this wasn't you, please ignore this email.
        extra_html: Please also check out <a href="%{terms_path}">the rules of the server</a> and <a href="%{policy_path}">our terms of service</a>.
        subject: 'Mastodon: Confirmation instructions for %{instance}'
        title: Verify email address


@@ 84,28 84,28 @@ en-GB:
      no_token: You can't access this page without coming from a password reset email. If you do come from a password reset email, please make sure you used the full URL provided.
      send_instructions: If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes. Please check your spam folder if you didn't receive this email.
      send_paranoid_instructions: If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes. Please check your spam folder if you didn't receive this email.
      updated: Your password has been changed successfully. You are now signed in.
      updated: Your password has been changed successfully. You are now logged in.
      updated_not_active: Your password has been changed successfully.
    registrations:
      destroyed: Bye! Your account has been successfully cancelled. We hope to see you again soon.
      signed_up: Welcome! You have signed up successfully.
      signed_up_but_inactive: You have signed up successfully. However, we could not sign you in because your account is not yet activated.
      signed_up_but_locked: You have signed up successfully. However, we could not sign you in because your account is locked.
      signed_up_but_inactive: You have signed up successfully. However, we could not log you in because your account is not yet activated.
      signed_up_but_locked: You have signed up successfully. However, we could not log you in because your account is locked.
      signed_up_but_pending: A message with a confirmation link has been sent to your email address. After you click the link, we will review your application. You will be notified if it is approved.
      signed_up_but_unconfirmed: A message with a confirmation link has been sent to your email address. Please follow the link to activate your account. Please check your spam folder if you didn't receive this email.
      update_needs_confirmation: You updated your account successfully, but we need to verify your new email address. Please check your email and follow the confirm link to confirm your new email address. Please check your spam folder if you didn't receive this email.
      updated: Your account has been updated successfully.
    sessions:
      already_signed_out: Signed out successfully.
      signed_in: Signed in successfully.
      signed_out: Signed out successfully.
      already_signed_out: Logged out successfully.
      signed_in: Logged in successfully.
      signed_out: Logged out successfully.
    unlocks:
      send_instructions: You will receive an email with instructions for how to unlock your account in a few minutes. Please check your spam folder if you didn't receive this email.
      send_paranoid_instructions: If your account exists, you will receive an email with instructions for how to unlock it in a few minutes. Please check your spam folder if you didn't receive this email.
      unlocked: Your account has been unlocked successfully. Please sign in to continue.
      unlocked: Your account has been unlocked successfully. Please log in to continue.
  errors:
    messages:
      already_confirmed: was already confirmed, please try signing in
      already_confirmed: was already confirmed, please try logging in
      confirmation_period_expired: needs to be confirmed within %{period}, please request a new one
      expired: has expired, please request a new one
      not_found: not found

M config/locales/devise.fi.yml => config/locales/devise.fi.yml +7 -7
@@ 27,12 27,12 @@ fi:
        title: Vahvista sähköpostiosoite
      email_changed:
        explanation: 'Tilin sähköpostiosoitteeksi vaihdetaan:'
        extra: Jos et vaihtanut sähköpostiosoitettasi, joku muu on todennäköisesti päässyt käyttämään tiliäsi. Vaihda salasanasi viipymättä. Jos et pääse kirjautumaan tilillesi, ota yhteyttä instanssin ylläpitäjään.
        extra: Jos et vaihtanut sähköpostiosoitettasi, joku muu on todennäköisesti päässyt käyttämään tiliäsi. Vaihda salasanasi viipymättä, tai ota yhteyttä palvelimen ylläpitäjään, jos et pääse kirjautumaan tilillesi.
        subject: 'Mastodon: Sähköpostiosoite vaihdettu'
        title: Uusi sähköpostiosoite
      password_change:
        explanation: Tilisi salasana on vaihdettu.
        extra: Jos et vaihtanut salasanaasi, joku muu on todennäköisesti päässyt käyttämään tiliäsi. Vaihda salasanasi viipymättä. Jos et pääse kirjautumaan tilillesi, ota yhteyttä instanssin ylläpitäjään.
        extra: Jos et vaihtanut salasanaasi, joku muu on todennäköisesti päässyt käyttämään tiliäsi. Vaihda salasanasi viipymättä, tai ota yhteyttä palvelimen ylläpitäjään, jos et pääse kirjautumaan tilillesi.
        subject: 'Mastodon: salasana vaihdettu'
        title: Salasana vaihdettu
      reconfirmation_instructions:


@@ 47,11 47,11 @@ fi:
        subject: 'Mastodon: ohjeet salasanan vaihtoon'
        title: Salasanan vaihto
      two_factor_disabled:
        explanation: Kaksivaiheinen todennus tilillesi poistettiin käytöstä. Kirjautuminen onnistuu nyt käyttäen pelkkää sähköpostiosoitetta ja salasanaa.
        explanation: Tilisi kaksivaiheinen todennus poistettiin käytöstä. Kirjautuminen onnistuu nyt pelkällä sähköpostiosoitella ja salasanalla.
        subject: 'Mastodon: kaksivaiheinen todennus poistettu käytöstä'
        title: 2-vaiheinen todennus pois käytöstä
      two_factor_enabled:
        explanation: Kaksivaiheinen tunnistus on otettu käyttöön tilillesi. Kaksivaiheisen tunnistuksen sovelluksesta saatu koodi tarvitaan kirjautumiseen.
        explanation: Kaksivaiheinen todennus on otettu käyttöön tilillesi. Kirjautumiseen tarvitaan kaksivaiheisen todennuksen sovelluksesta saatu koodi.
        subject: 'Mastodon: kaksivaiheinen todennus otettu käyttöön'
        title: 2-vaiheinen todennus käytössä
      two_factor_recovery_codes_changed:


@@ 70,11 70,11 @@ fi:
          subject: 'Mastodon: suojausavain poistettu'
          title: Yksi suojausavaimistasi on poistettu
      webauthn_disabled:
        explanation: Suojausavaimilla todennus on poistettu käytöstä tililtäsi. Kirjautuminen on nyt mahdollista käyttämällä vain paritetun TOTP-sovelluksen luomaa tokenia.
        subject: 'Mastodon: Todennus suoja-avaimilla poistettu käytöstä'
        explanation: Suojausavaimilla todennus on poistettu käytöstä tililtäsi. Kirjautuminen on nyt mahdollista vain paritetun TOTP-sovelluksen luomaa koodia käyttämällä.
        subject: 'Mastodon: Todennus suojausavaimilla poistettu käytöstä'
        title: Suojausavaimet poistettu käytöstä
      webauthn_enabled:
        explanation: Todennus suojausavaimella on otettu käyttöön tililläsi. Suojausavaintasi voidaan nyt käyttää kirjautumiseen.
        explanation: Todennus suojausavaimella on otettu käyttöön tilillesi. Suojausavaintasi voidaan nyt käyttää kirjautumiseen.
        subject: 'Mastodon: Todennus suojausavaimella on otettu käyttöön'
        title: Suojausavaimet käytössä
    omniauth_callbacks:

M config/locales/devise.si.yml => config/locales/devise.si.yml +5 -13
@@ 23,7 23,6 @@ si:
        explanation: ඔබ මෙම ඊමේල් ලිපිනය සමඟ %{host} හි ගිණුමක් සාදා ඇත. ඔබ එය සක්‍රිය කිරීමට එක ක්ලික් කිරීමක් ඇත. මේ ඔබ නොවේ නම්, කරුණාකර මෙම විද්‍යුත් තැපෑල නොසලකා හරින්න.
        explanation_when_pending: ඔබ මෙම විද්‍යුත් තැපැල් ලිපිනය සමඟ %{host} වෙත ආරාධනාවක් සඳහා ඉල්ලුම් කළා. ඔබ ඔබගේ විද්‍යුත් තැපැල් ලිපිනය තහවුරු කළ පසු, අපි ඔබගේ අයදුම්පත සමාලෝචනය කරන්නෙමු. ඔබගේ විස්තර වෙනස් කිරීමට හෝ ඔබගේ ගිණුම මකා දැමීමට ඔබට පුරනය විය හැක, නමුත් ඔබගේ ගිණුම අනුමත වන තුරු ඔබට බොහෝ කාර්යයන් වෙත ප්‍රවේශ විය නොහැක. ඔබගේ අයදුම්පත ප්‍රතික්ෂේප කළහොත්, ඔබගේ දත්ත ඉවත් කරනු ඇත, එබැවින් ඔබෙන් වැඩිදුර ක්‍රියාමාර්ග අවශ්‍ය නොවනු ඇත. මේ ඔබ නොවේ නම්, කරුණාකර මෙම විද්‍යුත් තැපෑල නොසලකා හරින්න.
        extra_html: කරුණාකර <a href="%{terms_path}">සේවාදායකයේ නීති</a> සහ <a href="%{policy_path}">අපගේ සේවා කොන්දේසි</a>ද පරීක්ෂා කරන්න.
        subject: 'Mastodon: %{instance}සඳහා තහවුරු කිරීමේ උපදෙස්'
        title: වි. තැපෑල තහවුරු කරන්න
      email_changed:
        explanation: 'ඔබගේ ගිණුම සඳහා ඊමේල් ලිපිනය වෙනස් වෙමින් පවතී:'


@@ 33,30 32,26 @@ si:
      password_change:
        explanation: ඔබගේ ගිණුම සඳහා මුරපදය වෙනස් කර ඇත.
        extra: ඔබ ඔබගේ මුරපදය වෙනස් නොකළේ නම්, යමෙකු ඔබගේ ගිණුමට ප්‍රවේශය ලබා ගෙන ඇති බව පෙනෙන්නට තිබේ. ඔබගේ ගිණුමෙන් අගුලු දමා ඇත්නම් කරුණාකර ඔබගේ මුරපදය වහාම වෙනස් කරන්න හෝ සේවාදායක පරිපාලක අමතන්න.
        subject: 'Mastodon: මුරපදය වෙනස් විය'
        subject: 'මාස්ටඩන්: මුරපදය වෙනස් විය'
        title: මුරපදය වෙනස් විය
      reconfirmation_instructions:
        explanation: ඔබගේ ඊමේල් වෙනස් කිරීමට නව ලිපිනය තහවුරු කරන්න.
        extra: මෙම වෙනස ඔබ විසින් ආරම්භ කරන ලද්දක් නොවේ නම්, කරුණාකර මෙම විද්‍යුත් තැපෑල නොසලකා හරින්න. ඔබ ඉහත සබැඳියට ප්‍රවේශ වන තෙක් Mastodon ගිණුම සඳහා ඊමේල් ලිපිනය වෙනස් නොවේ.
        subject: 'Mastodon: %{instance}සඳහා විද්‍යුත් තැපෑල තහවුරු කරන්න'
        title: වි-තැපෑල තහවුරු කරන්න
      reset_password_instructions:
        action: මුරපදය වෙනස් කරන්න
        explanation: ඔබ ඔබගේ ගිණුම සඳහා නව මුරපදයක් ඉල්ලා ඇත.
        extra: ඔබ මෙය ඉල්ලා නොසිටියේ නම්, කරුණාකර මෙම විද්‍යුත් තැපෑල නොසලකා හරින්න. ඔබ ඉහත සබැඳියට ප්‍රවේශ වී අලුත් එකක් සාදන තෙක් ඔබේ මුරපදය වෙනස් නොවනු ඇත.
        subject: 'Mastodon: මුරපද උපදෙස් යළි පිහිටුවන්න'
        subject: 'මාස්ටඩන්: මුරපදය යළි සැකසීමේ උපදෙස්'
        title: මුරපදය යළි සැකසීම
      two_factor_disabled:
        explanation: ඔබගේ ගිණුම සඳහා ද්වි-සාධක සත්‍යාපනය අබල කර ඇත. විද්‍යුත් තැපැල් ලිපිනය සහ මුරපදය පමණක් භාවිතයෙන් දැන් පුරනය විය හැක.
        subject: 'Mastodon: ද්වි සාධක සත්‍යාපනය අක්‍රීය කර ඇත'
        title: ද්විපියවර අබලයි
      two_factor_enabled:
        explanation: ඔබගේ ගිණුම සඳහා ද්වි-සාධක සත්‍යාපනය සක්‍රීය කර ඇත. යුගල කළ TOTP යෙදුම මගින් ජනනය කරන ලද ටෝකනයක් පුරනය වීමට අවශ්‍ය වනු ඇත.
        subject: 'Mastodon: ද්වි සාධක සත්‍යාපනය සක්‍රීය කර ඇත'
        title: ද්විපියවර සබලයි
      two_factor_recovery_codes_changed:
        explanation: පෙර ප්‍රතිසාධන කේත අවලංගු කර නව ඒවා උත්පාදනය කර ඇත.
        subject: 'Mastodon: ද්වි-සාධක ප්‍රතිසාධන කේත නැවත උත්පාදනය කරන ලදී'
        subject: 'මාස්ටඩන්: ද්වි-සාධක ප්‍රතිසාධන කේත නැවත උත්පාදනය කෙරිණි'
        title: ද්විපියවර ප්‍රතිසාධන කේත වෙනස් විය
      unlock_instructions:
        subject: 'මාස්ටඩන්: අගුළු හැරීමේ උපදේශ'


@@ 67,15 62,13 @@ si:
          title: ආරක්‍ෂණ යතුරක් එකතු කර ඇත
        deleted:
          explanation: පහත ආරක්ෂක යතුර ඔබගේ ගිණුමෙන් මකා ඇත
          subject: 'Mastodon: ආරක්ෂක යතුර මකා ඇත'
          subject: 'මාස්ටඩන්: ආරක්‍ෂණ යතුර මකා ඇත'
          title: ඔබගේ ආරක්ෂක යතුරු වලින් එකක් මකා ඇත
      webauthn_disabled:
        explanation: ඔබගේ ගිණුම සඳහා ආරක්ෂක යතුරු සමඟ සත්‍යාපනය අබල කර ඇත. යුගල කළ TOTP යෙදුම මගින් ජනනය කරන ලද ටෝකනය පමණක් භාවිතයෙන් දැන් පුරනය විය හැක.
        subject: 'Mastodon: ආරක්ෂක යතුරු සමඟ සත්‍යාපනය අක්‍රිය කර ඇත'
        title: ආරක්‍ෂණ යතුරු අබල කර ඇත
      webauthn_enabled:
        explanation: ඔබගේ ගිණුම සඳහා ආරක්ෂක යතුරු සත්‍යාපනය සක්‍රීය කර ඇත. ඔබගේ ආරක්ෂක යතුර දැන් පුරනය වීම සඳහා භාවිතා කළ හැක.
        subject: 'Mastodon: ආරක්ෂක යතුරු සත්‍යාපනය සක්‍රීය කර ඇත'
        title: ආරක්‍ෂණ යතුරු සබල කර ඇත
    omniauth_callbacks:
      failure: '"%{reason}" නිසා %{kind} සිට ඔබව සත්‍යාපනය කළ නොහැක.'


@@ 108,8 101,7 @@ si:
      already_confirmed: දැනටමත් තහවුරු කර ඇත, කරුණාකර පුරනය වීමට උත්සාහ කරන්න
      confirmation_period_expired: "%{period}තුළ තහවුරු කළ යුතුය, කරුණාකර අලුත් එකක් ඉල්ලන්න"
      expired: කල් ඉකුත් වී ඇත, කරුණාකර අලුත් එකක් ඉල්ලන්න
      not_found: හමු වුණේ නැහැ
      not_locked: අගුලු දමා නොතිබුණි
      not_found: හමු නොවිණි
      not_saved:
        one: '1 දෝෂයක් මෙම %{resource} සුරැකීම තහනම් කර ඇත:'
        other: 'දෝෂ %{count} කින් මෙම %{resource} සුරැකීම තහනම් කර ඇත:'

M config/locales/doorkeeper.fa.yml => config/locales/doorkeeper.fa.yml +2 -0
@@ 149,6 149,7 @@ fa:
    scopes:
      admin:read: خواندن تمام داده‌ها روی کارساز
      admin:read:accounts: خواندن اطّلاعات حساس از همهٔ حساب‌ها
      admin:read:canonical_email_blocks: خواندن اطّلاعات حسّاس از همهٔ انسدادهای رایانامهٔ متعارف
      admin:read:domain_allows: خواندن اطّلاعات حساس از همهٔ دامنه ها اجازه داده شد
      admin:read:domain_blocks: خواندن اطّلاعات حساس از همهٔ دامنه های مسدودشده
      admin:read:email_domain_blocks: خواندن اطّلاعات حساس از همهٔ دامنه های رایانامه های مسدودشده


@@ 156,6 157,7 @@ fa:
      admin:read:reports: خواندن اطّلاعات حساس از همهٔ گزارش‌ها و حساب‌های گزارش‌شده
      admin:write: تغییر تمام داده‌ها روی کارساز
      admin:write:accounts: انجام کنش مدیریتی روی حساب‌ها
      admin:write:canonical_email_blocks: انجام کنش‌های نظارتی روی همهٔ انسدادهای رایانامهٔ متعارف
      admin:write:domain_allows: انجام کنش مدیریتی روی اجازه‌های دامنه
      admin:write:domain_blocks: انجام کنش مدیریتی روی انسدادهای دامنه
      admin:write:email_domain_blocks: انجام کنش مدیریتی روی انسدادهای دامنهٔ رایانامه

M config/locales/doorkeeper.fi.yml => config/locales/doorkeeper.fi.yml +47 -47
@@ 6,7 6,7 @@ fi:
        name: Sovelluksen nimi
        redirect_uri: Uudelleenohjauksen URI
        scopes: Oikeudet
        website: Sovelluksen verkkosivu
        website: Sovelluksen verkkosivusto
    errors:
      models:
        doorkeeper/application:


@@ 67,13 67,13 @@ fi:
        title: Kopioi tämä valtuutuskoodi ja liitä se sovellukseen.
    authorized_applications:
      buttons:
        revoke: Peru
        revoke: Hylkää
      confirmations:
        revoke: Oletko varma?
      index:
        authorized_at: Valtuutettu %{date}
        description_html: Nämä ovat sovelluksia, jotka voivat käyttää tiliäsi käyttäen API. Jos et tunnista sitä tai sovellus toimii väärin, voit peruuttaa sen käyttöoikeuden.
        last_used_at: Viimeksi käytetty %{date}
        description_html: Nämä sovellukset voivat käyttää tiliäsi ohjelmointirajapinnan kautta. Jos tässä on sovelluksia, joita et tunnista, tai sovellus toimii väärin, voit peruuttaa sen käyttöoikeuden.
        last_used_at: Käytetty viimeksi %{date}
        never_used: Ei käytetty
        scopes: Oikeudet
        superapp: Sisäinen


@@ 114,7 114,7 @@ fi:
          notice: Sovellus poistettu.
    grouped_scopes:
      access:
        read: Vain luku
        read: Vain lukuoikeus
        read/write: Luku- ja kirjoitusoikeudet
        write: Vain kirjoitusoikeus
      title:


@@ 135,7 135,7 @@ fi:
        media: Medialiitteet
        mutes: Mykistykset
        notifications: Ilmoitukset
        push: Push-ilmoitukset
        push: Puskuilmoitukset
        reports: Raportit
        search: Hae
        statuses: Viestit


@@ 147,49 147,49 @@ fi:
      application:
        title: OAuth-valtuutus tarvitaan
    scopes:
      admin:read: lukea kaikkia tietoja palvelimelta
      admin:read:accounts: lue arkaluontoinen sisältö kaikilta tileiltä
      admin:read:canonical_email_blocks: lue arkaluonteisia tietoja kaikista kanonisesti sallituista sähköpostiosoitteista
      admin:read: lue kaikkia palvelimen tietoja
      admin:read:accounts: lue arkaluonteisia tietoja kaikista tileistä
      admin:read:canonical_email_blocks: lue arkaluonteisia tietoja kaikista estetyistä kanonisista sähköpostiosoitteista
      admin:read:domain_allows: lue arkaluonteisia tietoja kaikista sallituista verkkotunnuksista
      admin:read:domain_blocks: lue arkaluonteisia tietoja kaikista estetyistä verkkotunnuksista
      admin:read:email_domain_blocks: lue arkaluonteisia tietoja kaikista estetyistä sähköpostiverkkotunnuksista
      admin:read:ip_blocks: lue arkaluonteisia tietoja kaikista estetyistä IP-osoitteista
      admin:read:reports: lue arkaluonteiset tiedot kaikista raporteista ja raportoiduista tileistä
      admin:write: muokata kaikkia tietoja palvelimella
      admin:write:accounts: suorita moderointitoiminnot tileillä
      admin:write:canonical_email_blocks: toteuta moderointitoimenpiteitä kanonisille sähköpostiosoite-estoille
      admin:write:domain_allows: toteuta moderointitoimenpiteitä sallituille verkkotunnuksille
      admin:write:domain_blocks: toteuta moderointitoimenpiteitä estetyille verkkotunnuksille
      admin:write:email_domain_blocks: toteuta moderointitoimenpiteitä estetyille sähköpostiverkkotunnuksille
      admin:write:ip_blocks: toteuta moderointitoimenpiteitä estetyille IP-osoitteille
      admin:write:reports: suorita moderointitoiminnot raporteissa
      crypto: käytä päästä päähän salausta
      follow: seurata, estää, perua eston ja lopettaa tilien seuraaminen
      push: vastaanottaa push-ilmoituksesi
      read: lukea tilin tietoja
      read:accounts: nähdä tilin tiedot
      read:blocks: katso lohkosi
      read:bookmarks: katso kirjanmerkkisi
      read:favourites: näytä suosikkisi
      read:filters: katso suodattimesi
      read:follows: katso ketä seuraat
      read:lists: katso listasi
      read:mutes: katso mykistyksesi
      read:notifications: katso ilmoitukset
      read:reports: katso raporttisi
      read:search: haku sinun puolesta
      read:statuses: katso kaikki viestit
      write: julkaista puolestasi
      write:accounts: muokata profiiliasi
      write:blocks: estää tilit ja palvelimet
      write:bookmarks: kirjanmerkki viestit
      write:conversations: mykistä ja poistaa keskustelut
      admin:read:reports: lue arkaluonteisia tietoja kaikista raporteista ja raportoiduista tileistä
      admin:write: muokkaa kaikkia palvelimen tietoja
      admin:write:accounts: suorita valvontatoimia tileille
      admin:write:canonical_email_blocks: suorita valvontatoimia estetyille kanonisille sähköpostiosoitteille
      admin:write:domain_allows: suorita valvontatoimia sallituille verkkotunnuksille
      admin:write:domain_blocks: suorita valvontatoimia estetyille verkkotunnuksille
      admin:write:email_domain_blocks: suorita valvontatoimia estetyille sähköpostiverkkotunnuksille
      admin:write:ip_blocks: suorita valvontatoimia estetyille IP-osoitteille
      admin:write:reports: suorita valvontatoimia raporteille
      crypto: käytä päästä päähän -salausta
      follow: muokkaa tilin suhteita
      push: vastaanota puskuilmoituksiasi
      read: lue kaikkia tilin tietoja
      read:accounts: katso tilien tietoja
      read:blocks: katso estojasi
      read:bookmarks: katso kirjanmerkkejäsi
      read:favourites: katso suosikkejasi
      read:filters: katso suodattimiasi
      read:follows: katso seurattujasi
      read:lists: katso listojasi
      read:mutes: katso mykistyksiäsi
      read:notifications: katso ilmoituksiasi
      read:reports: katso raporttejasi
      read:search: hae puolestasi
      read:statuses: katso kaikkia julkaisujasi
      write: muokkaa kaikkia tilisi tietoja
      write:accounts: muokkaa profiiliasi
      write:blocks: estä tilejä ja verkkotunnuksia
      write:bookmarks: lisää julkaisuja kirjanmerkkeihin
      write:conversations: mykistä ja poista keskusteluja
      write:favourites: suosikkijulkaisut
      write:filters: luoda suodattimia
      write:follows: seurata ihmisiä
      write:lists: luoda listoja
      write:media: lähettää mediatiedostoja
      write:mutes: mykistää ihmisiä ja keskusteluja
      write:notifications: tyhjentää ilmoituksesi
      write:reports: raportoi muille ihmisille
      write:statuses: julkaise viestejä
      write:filters: luo suodattimia
      write:follows: seuraa käyttäjiä
      write:lists: luo listoja
      write:media: lähetä mediatiedostoja
      write:mutes: mykistä käyttäjiä ja keskusteluja
      write:notifications: tyhjennä ilmoituksesi
      write:reports: raportoi muita käyttäjiä
      write:statuses: julkaise julkaisuja

M config/locales/doorkeeper.si.yml => config/locales/doorkeeper.si.yml +41 -39
@@ 58,10 58,10 @@ si:
        authorize: සත්‍යාපනය
        deny: ප්‍රතික්ෂේප කරන්න
      error:
        title: දෝෂයක් සිදුවී ඇත
        title: දෝෂයක් සිදු වී ඇත
      new:
        prompt_html: "%{client_name} ඔබගේ ගිණුමට ප්‍රවේශ වීමට අවසර ලබා ගැනීමට කැමති වේ. එය තෙවන පාර්ශවීය යෙදුමකි. <strong>ඔබ එය විශ්වාස නොකරන්නේ නම්, ඔබ එයට අවසර නොදිය යුතුය.</strong>"
        review_permissions: අවසර සමාලෝචනය කරන්න
        review_permissions: අවසර සමාලෝචනය
        title: බලය පැවරීමේ අවශ්ය
      show:
        title: මෙම අවසර කේතය පිටපත් කර එය යෙදුමට අලවන්න.


@@ 73,11 73,11 @@ si:
      index:
        authorized_at: "%{date}මත අවසර දී ඇත"
        description_html: මේවා API භාවිතයෙන් ඔබගේ ගිණුමට ප්‍රවේශ විය හැකි යෙදුම් වේ. ඔබ මෙහි හඳුනා නොගත් යෙදුම් තිබේ නම්, හෝ යෙදුමක් වැරදි ලෙස හැසිරෙන්නේ නම්, ඔබට එහි ප්‍රවේශය අවලංගු කළ හැක.
        last_used_at: අවසන් වරට භාවිතා කළේ %{date}
        never_used: කවදාවත් පාවිච්චි කළේ නැහැ
        last_used_at: අන්තිම භාවිතය %{date}
        never_used: භාවිතා කර නැත
        scopes: අවසර
        superapp: අභ්යන්තර
        title: ඔබගේ බලයලත් අයදුම්පත්
        superapp: අභ්‍යන්තර
        title: ඔබගේ බලයලත් යෙදුම්
    errors:
      messages:
        access_denied: සම්පත් හිමිකරු හෝ අවසර සේවාදායකය ඉල්ලීම ප්‍රතික්ෂේප කළේය.


@@ 104,33 104,34 @@ si:
    flash:
      applications:
        create:
          notice: යෙදුම නිර්මාණය කරන ලදී.
          notice: යෙදුම සෑදිණි.
        destroy:
          notice: යෙදුම මකා ඇත.
          notice: යෙදුම මැකිණි.
        update:
          notice: යෙදුම යාවත්කාලීන කරන ලදී.
          notice: යෙදුම යාවත්කාල විය.
      authorized_applications:
        destroy:
          notice: අයදුම්පත අවලංගු කරන ලදී.
    grouped_scopes:
      access:
        read: කියවීමට පමණක් ප්‍රවේශය
        read/write: කියවීමට සහ ලිවීමට ප්‍රවේශය
        write: ලිවීමට පමණක් ප්‍රවේශය
        read: ප්‍රවේශය කියවීමට පමණි
        read/write: කියවීමට හා ලිවීමට ප්‍රවේශය
        write: ප්‍රවේශය ලිවීමට පමණි
      title:
        accounts: ගිණුම්
        admin/accounts: ගිණුම් පරිපාලනය
        admin/accounts: ගිණුම් කළමනාකරණය
        admin/all: සියලුම පරිපාලන කාර්යයන්
        admin/reports: වාර්තා පරිපාලනය
        all: ඔබගේ මාස්ටඩන් ගිණුමට පූර්ණ ප්‍රවේශය
        blocks: කුට්ටි
        bookmarks: පිටු සලකුණු
        bookmarks: පොත්යොමු
        conversations: සංවාද
        crypto: අන්ත සංකේතනය
        favourites: ප්‍රියතමයන්
        filters: පෙරහන්
        follows: පහත සඳහන්
        lists: ලැයිස්තු
        media: මාධ්ය ඇමුණුම්
        mutes: නිහඬ කරයි
        media: මාධ්‍ය ඇමුණුම්
        notifications: දැනුම්දීම්
        push: තල්ලු දැනුම්දීම්
        reports: වාර්තා


@@ 142,39 143,40 @@ si:
          applications: යෙදුම්
          oauth2_provider: වි.සත්‍යා.2 (OAuth) සැපයුම්කරු
      application:
        title: වි.සත්යා. (OAuth) තොරතුරු අවශ්‍යයි
        title: වි.සත්‍යා. (OAuth) අනුමැතිය අවශ්‍යයයි
    scopes:
      admin:read: සේවාදායකයේ ඇති සියලුම දත්ත කියවන්න
      admin:read:accounts: සියලුම ගිණුම් වල සංවේදී තොරතුරු කියවන්න
      admin:read:reports: සියලුම වාර්තා සහ වාර්තා කළ ගිණුම් වල සංවේදී තොරතුරු කියවන්න
      admin:write: සේවාදායකයේ සියලුම දත්ත වෙනස් කරන්න
      admin:write:accounts: ගිණුම් මත මධ්‍යස්ථ ක්‍රියා සිදු කරන්න
      admin:write:reports: වාර්තා මත මධ්‍යස්ථ ක්‍රියා සිදු කරන්න
      crypto: end-to-end encryption භාවිතා කරන්න
      admin:read: සේවාදායකයේ ඇති සියලුම දත්ත කියවයි
      admin:read:accounts: සියලුම ගිණුම් වල සංවේදී තොරතුරු කියවයි
      admin:read:reports: සියලුම වාර්තා සහ වාර්තා කළ ගිණුම් වල සංවේදී තොරතුරු කියවයි
      admin:write: සේවාදායකයේ සියලුම දත්ත සංශෝධනය කරයි
      admin:write:accounts: ගිණුම් සඳහා මැදිහත්කරණ ක්‍රියාමාර්ග ගනියි
      admin:write:reports: වාර්තා සඳහා මැදිහත්කරණ ක්‍රියාමාර්ග ගනියි
      crypto: අන්ත සංකේතනය භාවිතා කරයි
      follow: ගිණුම් සබඳතා වෙනස් කරන්න
      push: ඔබගේ තල්ලු දැනුම්දීම් ලබා ගන්න
      read: ඔබගේ ගිණුමේ සියලුම දත්ත කියවන්න
      read:accounts: ගිණුම් තොරතුරු බලන්න
      push: ඔබගේ තල්ලු දැනුම්දීම් ලබන්න
      read: ඔබගේ ගිණුමේ සියලුම දත්ත කියවයි
      read:accounts: ගිණුම්වල තොරතුරු දකියි
      read:blocks: ඔබගේ වාරණ බලන්න
      read:bookmarks: ඔබගේ පිටු සලකුණු බලන්න
      read:bookmarks: ඔබගේ පොත්යොමු දකියි
      read:favourites: ඔබගේ ප්‍රියතමයන් බලන්න
      read:filters: ඔබගේ පෙරහන් බලන්න
      read:follows: ඔබගේ පහත සඳහන් බලන්න
      read:lists: ඔබගේ ලැයිස්තු බලන්න
      read:mutes: ඔබේ ගොළු බලන්න
      read:notifications: ඔබගේ දැනුම්දීම් බලන්න
      read:notifications: ඔබගේ දැනුම්දීම් බලයි
      read:reports: ඔබගේ වාර්තා බලන්න
      read:search: ඔබ වෙනුවෙන් සොයන්න
      read:statuses: සියලුම පෝස්ට් බලන්න
      read:search: ඔබ වෙනුවෙන් සොයයි
      read:statuses: සියලු ලිපි බලයි
      write: ඔබගේ ගිණුමේ සියලුම දත්ත වෙනස් කරන්න
      write:accounts: ඔබගේ පැතිකඩ වෙනස් කරන්න
      write:blocks: ගිණුම් සහ වසම් අවහිර කරන්න
      write:bookmarks: පිටු සලකුණු සටහන්
      write:blocks: ගිණුම් සහ වසම් අවහිර කරයි
      write:bookmarks: ලිපි වලට පොත්යොමු තබයි
      write:conversations: සංවාද නිහඬ කිරීම සහ මකා දැමීම
      write:filters: පෙරහන් කරන්න
      write:favourites: ප්‍රියතම ලිපි
      write:filters: පෙරහන් සාදයි
      write:follows: මිනිසුන් අනුගමනය කරන්න
      write:lists: ලැයිස්තු සාදන්න
      write:media: මාධ්‍ය ගොනු උඩුගත කරන්න
      write:mutes: මිනිසුන් සහ සංවාද කරන්න
      write:notifications: ඔබගේ දැනුම්දීම් හිස්කරන්න
      write:reports: වෙනත් පුද්ගලයින් වාර්තා කරන්න
      write:statuses: පළ කිරීම් පළ කරන්න
      write:media: මාධ්‍ය ගොනු උඩුගත කරයි
      write:mutes: සංවාද හා පුද්ගලයින් නිහඬ කරයි
      write:notifications: ඔබගේ දැනුම්දීම් හිස් කරයි
      write:statuses: ලිපි පළ කරයි

M config/locales/en-GB.yml => config/locales/en-GB.yml +11 -11
@@ 1028,7 1028,7 @@ en-GB:
  applications:
    created: Application successfully created
    destroyed: Application successfully deleted
    logout: Logout
    logout: Log out
    regenerate_token: Regenerate access token
    token_regenerated: Access token successfully regenerated
    warning: Be very careful with this data. Never share it with anyone!


@@ 1055,7 1055,7 @@ en-GB:
    link_to_webauth: Use your security key device
    log_in_with: Log in with
    login: Log in
    logout: Logout
    logout: Log out
    migrate_account: Move to a different account
    migrate_account_html: If you wish to redirect this account to a different one, you can <a href="%{path}">configure it here</a>.
    or_log_in_with: Or log in with


@@ 1089,8 1089,8 @@ en-GB:
      new_confirmation_instructions_sent: You will receive a new e-mail with the confirmation link in a few minutes!
      title: Check your inbox
    sign_in:
      preamble_html: Sign in with your <strong>%{domain}</strong> credentials. If your account is hosted on a different server, you will not be able to log in here.
      title: Sign in to %{domain}
      preamble_html: Log in with your <strong>%{domain}</strong> credentials. If your account is hosted on a different server, you will not be able to log in here.
      title: Log in to %{domain}
    sign_up:
      manual_review: Sign-ups on %{domain} go through manual review by our moderators. To help us process your registration, write a bit about yourself and why you want an account on %{domain}.
      preamble: With an account on this Mastodon server, you'll be able to follow any other person on the network, regardless of where their account is hosted.


@@ 1379,8 1379,8 @@ en-GB:
      webauthn: security keys
    description_html: If you see activity that you don't recognise, consider changing your password and enabling two-factor authentication.
    empty: No authentication history available
    failed_sign_in_html: Failed sign-in attempt with %{method} from %{ip} (%{browser})
    successful_sign_in_html: Successful sign-in with %{method} from %{ip} (%{browser})
    failed_sign_in_html: Failed login attempt with %{method} from %{ip} (%{browser})
    successful_sign_in_html: Successful login with %{method} from %{ip} (%{browser})
    title: Authentication history
  mail_subscriptions:
    unsubscribe:


@@ 1773,11 1773,11 @@ en-GB:
      title: Archive takeout
    suspicious_sign_in:
      change_password: change your password
      details: 'Here are details of the sign-in:'
      explanation: We've detected a sign-in to your account from a new IP address.
      details: 'Here are details of the login:'
      explanation: We've detected a login to your account from a new IP address.
      further_actions_html: If this wasn't you, we recommend that you %{action} immediately and enable two-factor authentication to keep your account secure.
      subject: Your account has been accessed from a new IP address
      title: A new sign-in
      title: A new login
    warning:
      appeal: Submit an appeal
      appeal_description: If you believe this is an error, you can submit an appeal to the staff of %{instance}.


@@ 1790,7 1790,7 @@ en-GB:
        mark_statuses_as_sensitive: Some of your posts have been marked as sensitive by the moderators of %{instance}. This means that people will need to tap the media in the posts before a preview is displayed. You can mark media as sensitive yourself when posting in the future.
        sensitive: From now on, all your uploaded media files will be marked as sensitive and hidden behind a click-through warning.
        silence: You can still use your account but only people who are already following you will see your posts on this server, and you may be excluded from various discovery features. However, others may still manually follow you.
        suspend: You can no longer use your account, and your profile and other data are no longer accessible. You can still login to request a backup of your data until the data is fully removed in about 30 days, but we will retain some basic data to prevent you from evading the suspension.
        suspend: You can no longer use your account, and your profile and other data are no longer accessible. You can still log in to request a backup of your data until the data is fully removed in about 30 days, but we will retain some basic data to prevent you from evading the suspension.
      reason: 'Reason:'
      statuses: 'Posts cited:'
      subject:


@@ 1825,7 1825,7 @@ en-GB:
    invalid_otp_token: Invalid two-factor code
    otp_lost_help_html: If you lost access to both, you may get in touch with %{email}
    seamless_external_login: You are logged in via an external service, so password and e-mail settings are not available.
    signed_in_as: 'Signed in as:'
    signed_in_as: 'Logged in as:'
  verification:
    extra_instructions_html: <strong>Tip:</strong> The link on your website can be invisible. The important part is <code>rel="me"</code> which prevents impersonation on websites with user-generated content. You can even use a <code>link</code> tag in the header of the page instead of <code>a</code>, but the HTML must be accessible without executing JavaScript.
    here_is_how: Here's how

M config/locales/eu.yml => config/locales/eu.yml +3 -0
@@ 785,6 785,9 @@ eu:
      release_notes: Bertsio oharrak
      title: Eguneraketak eskuragarri
      type: Mota
      types:
        major: Argitalpen handia
        minor: Argitalpen txikia
      version: Bertsioa
    statuses:
      account: Egilea

M config/locales/fi.yml => config/locales/fi.yml +347 -347
@@ 1,7 1,7 @@
---
fi:
  about:
    about_mastodon_html: 'Tulevaisuuden sosiaalinen verkosto: Ei mainoksia, ei valvontaa, toteutettu avoimilla protokollilla ja hajautettu! Pidä tietosi ominasi Mastodonilla!'
    about_mastodon_html: 'Tulevaisuuden sosiaalinen verkosto: ei mainoksia, ei valvontaa, toteutettu avoimilla protokollilla ja hajautettu rakenne! Pidä tietosi ominasi Mastodonin avulla!'
    contact_missing: Ei asetettu
    contact_unavailable: Ei saatavilla
    hosted_on: Mastodon palvelimella %{domain}


@@ 12,24 12,24 @@ fi:
      one: seuraaja
      other: seuraajaa
    following: seurattu(a)
    instance_actor_flash: Tämä on virtuaalitili, jota käytetään edustamaan itse palvelinta eikä yksittäistä käyttäjää. Sitä käytetään yhdistämistarkoituksiin, eikä sitä tule jäädyttää.
    instance_actor_flash: Tämä tili on virtuaalinen toimija, jota käytetään edustamaan itse palvelinta eikä yksittäistä käyttäjää. Sitä käytetään federointitarkoituksiin, eikä sitä tule jäädyttää.
    last_active: viimeksi aktiivinen
    link_verified_on: Tämän linkin omistus on tarkastettu %{date}
    nothing_here: Täällä ei ole mitään!
    pin_errors:
      following: Sinun täytyy seurata henkilöä jota haluat tukea
    posts:
      one: viesti
      one: Julkaisu
      other: viestiä
    posts_tab_heading: Viestit
    posts_tab_heading: Julkaisut
  admin:
    account_actions:
      action: Suorita toimenpide
      title: Suorita moderointitoiminto %{acct}
      title: Suorita valvontatoimi käyttäjälle %{acct}
    account_moderation_notes:
      create: Jätä muistiinpano
      created_msg: Moderointimerkinnän luonti onnistui!
      destroyed_msg: Moderointimerkinnän poisto onnistui!
      created_msg: Valvontamerkinnän luonti onnistui!
      destroyed_msg: Valvontamerkinnän poisto onnistui!
    accounts:
      add_email_domain_block: Estä sähköpostidomain
      approve: Hyväksy


@@ 48,7 48,7 @@ fi:
        changed_msg: Rooli vaihdettu onnistuneesti!
        label: Vaihda roolia
        no_role: Ei roolia
        title: Vaihda roolia käyttäjälle %{username}
        title: Vaihda käyttäjän %{username} roolia
      confirm: Vahvista
      confirmed: Vahvistettu
      confirming: Vahvistetaan


@@ 61,7 61,7 @@ fi:
      disable_sign_in_token_auth: Poista sähköpostitunnuksen todennus käytöstä
      disable_two_factor_authentication: Poista 2FA käytöstä
      disabled: Poistettu käytöstä
      display_name: Nimimerkki
      display_name: Näyttönimi
      domain: Verkkotunnus
      edit: Muokkaa
      email: Sähköposti


@@ 71,12 71,12 @@ fi:
      enabled: Käytössä
      enabled_msg: Käyttäjän %{username} tili palautettu onnistuneesti käyttöön
      followers: Seuraajat
      follows: Seuraa
      follows: Seuratut
      header: Otsakekuva
      inbox_url: Saapuvan postilaatikon osoite
      invite_request_text: Syitä liittymiseen
      invited_by: Kutsuja
      ip: IP
      ip: IP-osoite
      joined: Liittynyt
      location:
        all: Kaikki


@@ 94,9 94,9 @@ fi:
        disabled: Ei käytössä
        pending: Odottavat
        silenced: Rajoitettu
        suspended: Jäähyllä
        title: Moderointi
      moderation_notes: Moderointimerkinnät
        suspended: Jäädytetty
        title: Valvonta
      moderation_notes: Valvontamerkinnät
      most_recent_activity: Viimeisin toiminta
      most_recent_ip: Viimeisin IP
      no_account_selected: Yhtään tiliä ei muutettu, koska mitään ei valittu


@@ 104,7 104,7 @@ fi:
      no_role_assigned: Roolia ei ole määritetty
      not_subscribed: Ei tilaaja
      pending: Odottaa tarkistusta
      perform_full_suspension: Siirrä kokonaan jäähylle
      perform_full_suspension: Jäädytä
      previous_strikes: Aiemmat varoitukset
      previous_strikes_description_html:
        one: Tällä tilillä on <strong>yksi</strong> varoitus.


@@ 118,7 118,7 @@ fi:
      reject: Hylkää
      rejected_msg: Käyttäjän %{username} rekisteröitymishakemus hylättiin
      remote_suspension_irreversible: Tämän tilin tiedot on poistettu peruuttamattomasti.
      remote_suspension_reversible_hint_html: Tili on jäädytetty heidän palvelimellaan, ja tilin kaikki tiedot poistetaan %{date}. Ennen tätä ajankohtaa on kyseessä olevan palvelimen ylläpidolla mahdollisuus palauttaa tili ongelmitta. Jos puolestaan haluat poistaa tilin tietoineen heti, onnistuu se alta.
      remote_suspension_reversible_hint_html: Tili on jäädytetty heidän palvelimellaan, ja kaikki tiedot poistetaan %{date}. Sitä ennen etäpalvelin voi palauttaa tilin ongelmitta. Jos haluat poistaa kaikki tilin tiedot heti, onnistuu se alta.
      remove_avatar: Poista profiilikuva
      remove_header: Poista otsakekuva
      removed_avatar_msg: Käyttäjän %{username} avatar-kuva poistettu onnistuneesti


@@ 144,21 144,21 @@ fi:
      show:
        created_reports: Tämän tilin luomat raportit
        targeted_reports: Tästä tilistä tehdyt raportit
      silence: Hiljennä
      silenced: Mykistetty
      statuses: Viestit
      silence: Rajoita
      silenced: Rajoitettu
      statuses: Julkaisut
      strikes: Aiemmat varoitukset
      subscribe: Tilaa
      suspend: Jäädytä
      suspended: Jäähyllä
      suspension_irreversible: Tämän tilin tiedot on poistettu peruuttamattomasti. Voit peruuttaa tilin jäädyttämisen, jolloin siitä tulee käyttökelpoinen, mutta toiminto ei palauta sillä aiemmin olleita tietoja.
      suspension_reversible_hint_html: Tili on jäädytetty, ja tiedot poistetaan kokonaan %{date}. Siihen asti tili voidaan palauttaa ilman haitallisia vaikutuksia. Jos haluat poistaa kaikki tilin tiedot välittömästi, voit tehdä sen alla.
      suspended: Jäädytetty
      suspension_irreversible: Tämän tilin tiedot on poistettu peruuttamattomasti. Voit kumota tilin jäädytyksen, jolloin siitä tulee käyttökelpoinen, mutta toiminto ei palauta sillä aiemmin olleita tietoja.
      suspension_reversible_hint_html: Tili on jäädytetty, ja tiedot poistetaan kokonaan %{date}. Siihen asti tili voidaan palauttaa ongelmitta. Jos haluat poistaa kaikki tilin tiedot heti, onnistuu se alta.
      title: Tilit
      unblock_email: Poista sähköpostiosoitteen esto
      unblocked_email_msg: Käyttäjän %{username} sähköpostiosoitteen esto kumottiin
      unconfirmed_email: Sähköpostia ei vahvistettu
      undo_sensitized: Kumoa pakotus arkaluonteiseksi tiliksi
      undo_silenced: Peru hiljennys
      undo_silenced: Kumoa rajoitus
      undo_suspension: Peru jäähy
      unsilenced_msg: Tilin %{username} rajoituksen kumoaminen onnistui
      unsubscribe: Lopeta tilaus


@@ 167,7 167,7 @@ fi:
      view_domain: Näytä verkkotunnuksen yhteenveto
      warn: Varoita
      web: Verkko
      whitelisted: Sallittu federaatioon
      whitelisted: Sallittu federoimaan
    action_logs:
      action_types:
        approve_appeal: Hyväksy valitus


@@ 177,7 177,7 @@ fi:
        change_role_user: Muuta käyttäjän roolia
        confirm_user: Vahvista käyttäjä
        create_account_warning: Luo varoitus
        create_announcement: Luo ilmoitus
        create_announcement: Luo tiedote
        create_canonical_email_block: Luo sähköpostin esto
        create_custom_emoji: Luo mukautettu emoji
        create_domain_allow: Luo verkkotunnuksen salliminen


@@ 187,7 187,7 @@ fi:
        create_unavailable_domain: Luo ei-saatavilla oleva verkkotunnus
        create_user_role: Luo rooli
        demote_user: Alenna käyttäjä
        destroy_announcement: Poista ilmoitus
        destroy_announcement: Poista tiedote
        destroy_canonical_email_block: Poista sähköpostin esto
        destroy_custom_emoji: Poista mukautettu emoji
        destroy_domain_allow: Poista verkkotunnuksen salliminen


@@ 195,7 195,7 @@ fi:
        destroy_email_domain_block: Poista sähköpostin verkkotunnuksen esto
        destroy_instance: Tyhjennä verkkotunnus
        destroy_ip_block: Poista IP-sääntö
        destroy_status: Poista viesti
        destroy_status: Poista julkaisu
        destroy_unavailable_domain: Poista ei-saatavilla oleva verkkotunnus
        destroy_user_role: Hävitä rooli
        disable_2fa_user: Poista kaksivaiheinen tunnistautuminen käytöstä


@@ 215,77 215,77 @@ fi:
        reset_password_user: Nollaa salasana
        resolve_report: Selvitä raportti
        sensitive_account: Pakotus arkaluontoiseksi tiliksi
        silence_account: Hiljennä tili
        silence_account: Rajoita tiliä
        suspend_account: Jäädytä tili
        unassigned_report: Peruuta raportin määritys
        unblock_email_account: Poista sähköpostiosoitteen esto
        unsensitive_account: Kumoa pakotus arkaluontoiseksi tiliksi
        unsilence_account: Peruuta tilin rajoitus
        unsuspend_account: Peruuta tilin jäädytys
        update_announcement: Päivitä ilmoitus
        update_custom_emoji: Päivitä muokattu emoji
        unsilence_account: Kumoa tilin rajoitus
        unsuspend_account: Kumoa tilin jäädytys
        update_announcement: Päivitä tiedote
        update_custom_emoji: Päivitä mukautettu emoji
        update_domain_block: Päivitä verkkotunnuksen esto
        update_ip_block: Päivitä IP-sääntö
        update_status: Päivitä viesti
        update_status: Päivitä julkaisu
        update_user_role: Päivitä rooli
      actions:
        approve_appeal_html: "%{name} hyväksyi moderointipäätöksen muutoksenhaun lähettäjältä %{target}"
        approve_appeal_html: "%{name} hyväksyi valvontapäätöksen valituksen käyttäjältä %{target}"
        approve_user_html: "%{name} hyväksyi käyttäjän rekisteröitymisen kohteesta %{target}"
        assigned_to_self_report_html: "%{name} otti raportin %{target} tehtäväkseen"
        change_email_user_html: "%{name} vaihtoi käyttäjän %{target} sähköpostiosoitteen"
        change_role_user_html: "%{name} muutti käyttäjän %{target} roolia"
        confirm_user_html: "%{name} vahvisti käyttäjän %{target} sähköpostiosoitteen"
        create_account_warning_html: "%{name} lähetti varoituksen käyttäjälle %{target}"
        create_announcement_html: "%{name} loi uuden ilmoituksen %{target}"
        create_announcement_html: "%{name} loi uuden tiedotteen %{target}"
        create_canonical_email_block_html: "%{name} esti sähköpostin hashilla %{target}"
        create_custom_emoji_html: "%{name} lähetti uuden emojin %{target}"
        create_domain_allow_html: "%{name} salli federaation verkkotunnuksella %{target}"
        create_domain_allow_html: "%{name} salli federoinnin verkkotunnuksen %{target} kanssa"
        create_domain_block_html: "%{name} esti verkkotunnuksen %{target}"
        create_email_domain_block_html: "%{name} esti sähköpostin %{target}"
        create_ip_block_html: "%{name} loi IP-säännön %{target}"
        create_unavailable_domain_html: "%{name} pysäytti toimituksen verkkotunnukseen %{target}"
        create_user_role_html: "%{name} loi roolin %{target}"
        demote_user_html: "%{name} alensi käyttäjän %{target}"
        destroy_announcement_html: "%{name} poisti ilmoituksen %{target}"
        destroy_announcement_html: "%{name} poisti tiedotteen %{target}"
        destroy_canonical_email_block_html: "%{name} poisti sähköpostieston hashilla %{target}"
        destroy_custom_emoji_html: "%{name} poisti emojin %{target}"
        destroy_domain_allow_html: "%{name} esti federaation verkkotunnuksella %{target}"
        destroy_domain_allow_html: "%{name} kielsi federoinnin verkkotunnuksen %{target} kanssa"
        destroy_domain_block_html: "%{name} poisti verkkotunnuksen %{target} eston"
        destroy_email_domain_block_html: "%{name} poisti sähköpostin verkkotunnuksen %{target} eston"
        destroy_instance_html: "%{name} tyhjensi verkkotunnuksen %{target}"
        destroy_ip_block_html: "%{name} poisti IP-säännön %{target}"
        destroy_status_html: "%{name} poisti käyttäjän %{target} viestin"
        destroy_status_html: "%{name} poisti käyttäjän %{target} julkaisun"
        destroy_unavailable_domain_html: "%{name} jatkoi toimitusta verkkotunnukseen %{target}"
        destroy_user_role_html: "%{name} poisti roolin %{target}"
        disable_2fa_user_html: "%{name} poisti käyttäjältä %{target} vaatimuksen kaksivaiheisen todentamiseen"
        disable_custom_emoji_html: "%{name} poisti käytöstä emojin %{target}"
        disable_sign_in_token_auth_user_html: "%{name} poisti sähköpostitunnuksen %{target} todennuksen käytöstä"
        disable_user_html: "%{name} poisti kirjautumisen käyttäjältä %{target}"
        enable_custom_emoji_html: "%{name} salli emojin %{target}"
        enable_sign_in_token_auth_user_html: "%{name} aktivoi sähköpostitunnuksen käyttäjälle %{target}"
        enable_user_html: "%{name} salli kirjautumisen käyttäjälle %{target}"
        enable_custom_emoji_html: "%{name} otti käyttöön emojin %{target}"
        enable_sign_in_token_auth_user_html: "%{name} otti todennuksen sähköpostivaltuutuksella käyttöön käyttäjälle %{target}"
        enable_user_html: "%{name} otti kirjautumisen käyttöön käyttäjälle %{target}"
        memorialize_account_html: "%{name} muutti käyttäjän %{target} tilin muistosivuksi"
        promote_user_html: "%{name} ylensi käyttäjän %{target}"
        reject_appeal_html: "%{name} hylkäsi moderointipäätöksen muutoksenhaun %{target}"
        reject_appeal_html: "%{name} hylkäsi valvontapäätöksen valituksen käyttäjältä %{target}"
        reject_user_html: "%{name} hylkäsi käyttäjän rekisteröitymisen kohteesta %{target}"
        remove_avatar_user_html: "%{name} poisti käyttäjän %{target} profiilikuvan"
        reopen_report_html: "%{name} avasi uudelleen raportin %{target}"
        resend_user_html: "%{name} lähetti vahvistusviestin sähköpostitse käyttäjälle %{target}"
        resend_user_html: "%{name} lähetti vahvistussähköpostiviestin uudelleen käyttäjälle %{target}"
        reset_password_user_html: "%{name} palautti käyttäjän %{target} salasanan"
        resolve_report_html: "%{name} ratkaisi raportin %{target}"
        sensitive_account_html: "%{name} merkitsi käyttäjän %{target} median arkaluonteiseksi"
        silence_account_html: "%{name} rajoitti käyttäjän %{target} tilin"
        suspend_account_html: "%{name} siirsi käyttäjän %{target} jäähylle"
        silence_account_html: "%{name} rajoitti käyttäjän %{target} tiliä"
        suspend_account_html: "%{name} jäädytti käyttäjän %{target} tilin"
        unassigned_report_html: "%{name} peruutti raportin määrityksen %{target}"
        unblock_email_account_html: "%{name} poisti käyttäjän %{target} sähköpostiosoitteen eston"
        unsensitive_account_html: "%{name} poisti käyttäjän %{target} median arkaluonteisen merkinnän"
        unsilence_account_html: "%{name} ei tehnyt rajoitusta %{target} tilille"
        unsuspend_account_html: "%{name} perui käyttäjän %{target} jäähyn"
        update_announcement_html: "%{name} päivitti ilmoituksen %{target}"
        unsilence_account_html: "%{name} kumosi käyttäjän %{target} rajoituksen"
        unsuspend_account_html: "%{name} kumosi käyttäjän %{target} tilin jäädytyksen"
        update_announcement_html: "%{name} päivitti tiedotteen %{target}"
        update_custom_emoji_html: "%{name} päivitti emojin %{target}"
        update_domain_block_html: "%{name} päivitti verkkotunnuksen %{target} eston"
        update_ip_block_html: "%{name} muutti sääntöä IP-osoitteelle %{target}"
        update_status_html: "%{name} päivitti viestin %{target}"
        update_status_html: "%{name} päivitti käyttäjän %{target} julkaisun"
        update_user_role_html: "%{name} muutti roolia %{target}"
      deleted_account: poisti tilin
      empty: Lokeja ei löytynyt.


@@ 293,43 293,43 @@ fi:
      filter_by_user: Suodata käyttäjän mukaan
      title: Auditointiloki
    announcements:
      destroyed_msg: Ilmoitus poistettu onnistuneesti!
      destroyed_msg: Tiedote poistettu onnistuneesti!
      edit:
        title: Muokkaa ilmoitusta
      empty: Yhtään ilmoitusta ei löytynyt.
      live: Suora
        title: Muokkaa tiedotetta
      empty: Tiedotteita ei löytynyt.
      live: Julki
      new:
        create: Luo ilmoitus
        title: Uusi ilmoitus
        create: Luo tiedote
        title: Uusi tiedote
      publish: Julkaise
      published_msg: Ilmoitus julkaistu onnistuneesti!
      scheduled_for: Ajastettu %{time}
      scheduled_msg: Ilmoitus on ajastettu julkaisua varten!
      title: Ilmoitukset
      published_msg: Tiedote julkaistu onnistuneesti!
      scheduled_for: Ajoitettu %{time}
      scheduled_msg: Tiedotteen julkaisu ajoitettu!
      title: Tiedotteet
      unpublish: Lopeta julkaisu
      unpublished_msg: Ilmoituksen julkaisu lopetettu!
      updated_msg: Ilmoitus päivitetty onnistuneesti!
      unpublished_msg: Tiedotteen julkaisu lopetettu onnistuneesti!
      updated_msg: Tiedote päivitetty onnistuneesti!
    critical_update_pending: Kriittinen päivitys odottaa
    custom_emojis:
      assign_category: Aseta kategoria
      assign_category: Aseta luokka
      by_domain: Verkkotunnus
      copied_msg: Emojin paikallisen kopion luonti onnistui
      copy: Kopioi
      copy_failed_msg: Emojista ei voitu tehdä paikallista kopiota
      create_new_category: Luo uusi kategoria
      created_msg: Emojin luotu!
      create_new_category: Luo uusi luokka
      created_msg: Emojin luonti onnistui!
      delete: Poista
      destroyed_msg: Emojo poistettu!
      destroyed_msg: Emojon poisto onnistui!
      disable: Poista käytöstä
      disabled: Ei käytössä
      disabled_msg: Emojin poisto käytöstä onnistui
      disabled_msg: Emojin käytöstäpoisto onnistui
      emoji: Emoji
      enable: Ota käyttöön
      enabled: Käytössä
      enabled_msg: Emojin käyttöönotto onnistui
      image_hint: PNG tai GIF, enintään %{size}
      list: Listaa
      listed: Listassa
      list: Lisää listalle
      listed: Listalla
      new:
        title: Lisää uusi mukautettu emoji
      no_emoji_selected: Emojeita ei muutettu, koska yhtään ei valittu


@@ 340,7 340,7 @@ fi:
      title: Mukautetut emojit
      uncategorized: Luokittelemattomat
      unlist: Poista listalta
      unlisted: Ei listassa
      unlisted: Ei listalla
      update_failed_msg: Emojin päivitys epäonnistui
      updated_msg: Emojin päivitys onnistui!
      upload: Lähetä


@@ 349,26 349,26 @@ fi:
      interactions: vuorovaikutukset
      media_storage: Median tallennustila
      new_users: uudet käyttäjät
      opened_reports: raportit avattu
      opened_reports: avatut raportit
      pending_appeals_html:
        one: "<strong>%{count}</strong> vireillä oleva valitus"
        other: "<strong>%{count}</strong> vireillä olevat valitukset"
        other: "<strong>%{count}</strong> vireillä olevaa valitusta"
      pending_reports_html:
        one: "<strong>%{count}</strong> odottava raportti"
        other: "<strong>%{count}</strong> odottavat raportit"
        other: "<strong>%{count}</strong> odottavaa raporttia"
      pending_tags_html:
        one: "<strong>%{count}</strong> odottava hashtagi"
        one: "<strong>%{count}</strong> odottava aihetunniste"
        other: "<strong>%{count}</strong> odottavaa aihetunnistetta"
      pending_users_html:
        one: "<strong>%{count}</strong> odottava käyttäjä"
        other: "<strong>%{count}</strong> odottavat käyttäjät"
      resolved_reports: raportit ratkaistu
        other: "<strong>%{count}</strong> odottavaa käyttäjää"
      resolved_reports: ratkaistut raportit
      software: Ohjelmisto
      sources: Rekisteröitymisen lähteet
      space: Tilankäyttö
      title: Hallintapaneeli
      top_languages: Aktiiviset kielet
      top_servers: Aktiiviset palvelimet
      top_languages: Aktiivisimmat kielet
      top_servers: Aktiivisimmat palvelimet
      website: Sivusto
    disputes:
      appeals:


@@ 376,8 376,8 @@ fi:
        title: Valitukset
    domain_allows:
      add_new: Salli liitto verkkotunnuksella
      created_msg: Verkkotunnus on onnistuneesti sallittu federaatiolle
      destroyed_msg: Verkkotunnus on estetty federaatiossa
      created_msg: Verkkotunnus on onnistuneesti sallittu federoinnille
      destroyed_msg: Verkkotunnusta on kielletty federoimasta
      export: Vie
      import: Tuo
      undo: Estä liitto verkkotunnukselle


@@ 389,34 389,34 @@ fi:
        permanent_action: Jäädytyksen kumoaminen ei palauta mitään tietoja tai suhteita.
        preamble_html: Olet jäädyttämässä verkkotunnuksen <strong>%{domain}</strong> ja sen aliverkkotunnukset.
        remove_all_data: Tämä toiminto poistaa palvelimeltasi kaiken sisällön, median ja profiilitiedot tämän palvelun tileiltä.
        stop_communication: Palvelimesi lopettaa näiden palvelinten viestinnän.
        stop_communication: Palvelimesi lopettaa viestinnän näiden palvelinten kanssa.
        title: Vahvista verkkotunnuksen %{domain} esto
        undo_relationships: Tämä kumoaa näiden palvelimien ja sinun tilien välisen seurannan.
      created_msg: Verkkotunnuksen estoa käsitellään
      destroyed_msg: Verkkotunnuksen esto on peruttu
      domain: Verkkotunnus
      edit: Muokkaa verkkotunnuksen estoa
      existing_domain_block: Olet jo asettanut tiukemmat rajoitukset %{name}.
      existing_domain_block_html: Olet jo asettanut %{name} tiukemmat rajat ja sinun täytyy <a href="%{unblock_url}">poistaa se</a> ensin.
      existing_domain_block: Olet jo asettanut tiukemmat rajoitukset käyttäjälle %{name}.
      existing_domain_block_html: Olet jo asettanut tiukemmat rajoitukset käyttäjälle %{name}, joten sinun täytyy <a href="%{unblock_url}">poistaa sen esto</a> ensin.
      export: Vie
      import: Tuo
      new:
        create: Luo esto
        hint: Verkkotunnuksen esto ei estä tilien luomista ja lisäämistä tietokantaan, mutta se soveltaa näihin tileihin automaattisesti määrättyjä moderointitoimia tilin luomisen jälkeen.
        hint: Verkkotunnuksen esto ei estä tilien lisäämistä tietokantaan, mutta se soveltaa näihin tileihin takautuvasti ja automaattisesti tiettyjä valvontatoimia.
        severity:
          desc_html: "<strong>Rajoita</strong> -valinta piilottaa tämän verkkoalueen tilien julkaisut heiltä, jotka eivät seuraa kyseisiä tilejä. <strong>Lopeta</strong> poistaa kaiken sisällön, median ja profiilien tiedot tämän verkkotunnuksen tileiltä palvelimellasi. Käytä valintaa <strong>Ei mitään</strong>, jos haluat vain estää mediatiedostojen julkaisemisen."
          desc_html: Valinta <strong>Rajoita</strong> piilottaa tässä verkkotunnuksessa sijaitsevien tilien julkaisut kaikilta, jotka eivät seuraa näitä tilejä. Valinta <strong>Jäädytä</strong> poistaa palvelimeltasi kaikkien tässä verkkotunnuksessa sijaitsevien tilien sisällön, median ja profiilitiedot. Käytä valintaa <strong>Ei mitään</strong>, jos haluat vain hylätä mediatiedostot.
          noop: Ei mitään
          silence: Rajoita
          suspend: Jäähy
          suspend: Jäädytä
        title: Uusi verkkotunnuksen esto
      no_domain_block_selected: Verkkoalue-estoihin ei tehty muutoksia, koska valintoja ei tehty
      not_permitted: Nykyiset käyttöoikeutesi eivät kata tätä toimintoa
      obfuscate: Peitä verkkotunnuksen nimi
      obfuscate_hint: Peitä verkkotunnus osittain luettelossa, jos verkkotunnuksen rajoitusten luettelo on käytössä
      obfuscate_hint: Peitä verkkotunnus osittain luettelossa, jos julkinen verkkotunnusten rajoitusluettelo on käytössä
      private_comment: Yksityinen kommentti
      private_comment_hint: Kommentoi tätä verkkotunnuksen rajoitusta, valvojien sisäiseen käyttöön.
      public_comment: Julkinen kommentti
      public_comment_hint: Kommentoi tätä verkkotunnukselle koskevaa rajoitusta suurelle yleisölle, jos verkkotunnusten luettelon mainonta on käytössä.
      public_comment_hint: Kommentoi tätä verkkotunnuksen rajoitusta suurelle yleisölle, jos julkinen verkkotunnusten rajoitusluettelo on käytössä.
      reject_media: Hylkää mediatiedostot
      reject_media_hint: Poistaa paikallisesti tallennetut mediatiedostot eikä lataa niitä enää jatkossa. Ei merkitystä jäähyn kohdalla
      reject_reports: Hylkää raportit


@@ 449,7 449,7 @@ fi:
      no_file: Yhtäkään tiedostoa ei ole valittu
    export_domain_blocks:
      import:
        description_html: Olet tuomassa järjestelmään luetteloa verkkoalue-estoista. Tarkista luettelo huolella – etenkin, ellet ole itse tehnyt listausta.
        description_html: Olet tuomassa verkkotunnusten estoluetteloa. Tarkista luettelo huolella – etenkin, jos et ole laatinut sitä itse.
        existing_relationships_warning: Olemassa olevat seuraussuhteet
        private_comment_description_html: 'Tuodun estolistan alkuperän selvillä pitämiseksi, lisätään tietojen yhteyteen seuraava yksityinen kommentti: <q>%{comment}</q>'
        private_comment_template: Tuotu lähteestä %{source}, pvm %{date}


@@ 459,13 459,13 @@ fi:
        title: Tuo luettelo verkkoalue-estoista
      no_file: Yhtäkään tiedostoa ei ole valittu
    follow_recommendations:
      description_html: "<strong>Suositusten noudattaminen auttaa uusia käyttäjiä löytämään nopeasti mielenkiintoista sisältöä.</strong>. Jos käyttäjä ei ole ollut vuorovaikutuksessa tarpeeksi muiden kanssa luodakseen henkilökohtaisia seuraajia, näitä muita tilejä suositellaan sen sijaan. Ne lasketaan uudelleen päivittäin yhdistelmästä tilejä, joilla on korkein viimeaikainen käyttö ja korkein paikallinen seuraajien määrä tietyllä kielellä."
      description_html: "<strong>Seuraamissuositukset auttavat uusia käyttäjiä löytämään nopeasti kiinnostavaa sisältöä</strong>. Kun käyttäjä ei ole ollut tarpeeksi vuorovaikutuksessa muiden kanssa, jotta hänelle olisi muodostunut henkilökohtaisia seuraamissuosituksia, suositellaan niiden sijaan näitä tilejä. Ne lasketaan päivittäin uudelleen yhdistelmästä tilejä, jotka ovat viime aikoina olleet aktiivisimmin sitoutuneita ja joilla on suurimmat paikalliset seuraajamäärät tietyllä kielellä."
      language: Kielelle
      status: Tila
      suppress: Peitä noudata suosituksia
      suppressed: Rajoitettu
      title: Noudata suosituksia
      unsuppress: Palauta seuraa suositus
      suppress: Hylkää seuraamissuositus
      suppressed: Hylätty
      title: Seuraamissuositukset
      unsuppress: Palauta seuraamissuositus
    instances:
      availability:
        description_html:


@@ 490,7 490,7 @@ fi:
        policies:
          reject_media: Hylkää media
          reject_reports: Hylkää raportit
          silence: Rajoitus
          silence: Rajoita
          suspend: Jäädytä
        policy: Käytännöt
        reason: Julkinen syy


@@ 503,7 503,7 @@ fi:
        instance_languages_dimension: Suosituimmat kielet
        instance_media_attachments_measure: tallennetut median liitteet
        instance_reports_measure: niitä koskevat raportit
        instance_statuses_measure: tallennetut viestit
        instance_statuses_measure: tallennetut julkaisut
      delivery:
        all: Kaikki
        clear: Tyhjennä toimitusvirheet


@@ 522,12 522,12 @@ fi:
      moderation:
        all: Kaikki
        limited: Rajoitettu
        title: Moderointi
        title: Valvonta
      private_comment: Yksityinen kommentti
      public_comment: Julkinen kommentti
      purge: Tyhjennä
      purge_description_html: Jos uskot tämän verkkotunnuksen olevan offline-tilassa, voit poistaa kaikki tilitietueet ja niihin liittyvät tiedot sinun tallennustilasta. Tämä voi kestää jonkin aikaa.
      title: Tiedossa olevat instanssit
      purge_description_html: Jos uskot, että tämä verkkotunnus on offline-tilassa tarkoituksella, voit poistaa kaikki verkkotunnuksen tilitietueet ja niihin liittyvät tiedot tallennustilastasi. Tämä voi kestää jonkin aikaa.
      title: Federointi
      total_blocked_by_us: Estetty meidän toimesta
      total_followed_by_them: Heidän seuraama
      total_followed_by_us: Meidän seuraama


@@ 562,11 562,11 @@ fi:
    relays:
      add_new: Lisää uusi välittäjä
      delete: Poista
      description_html: "<strong>federaatiovälittäjä</strong> on välityspalvelin, joka siirtää siihen liittyneiden palvelimien välillä suuria julksia viestimääriä. <strong>Tämä voi auttaa pieniä ja keskikokoisia palvelimia löytämään fediversen sisältöä</strong>, joka muutoin vaatisi paikallisia käyttäjiä seuraamaan etäpalvelimien käyttäjiä manuaalisesti."
      description_html: "<strong>Federointivälittäjä</strong> on välityspalvelin, joka siirtää suuria määriä julkisia julkaisuja siihen liittyneiden palvelinten välillä. <strong>Se voi auttaa pieniä ja keskisuuria palvelimia löytämään fediversumin sisältöä</strong>, mikä muutoin vaatisi paikallisia käyttäjiä seuraamaan etäpalvalinten käyttäjiä manuaalisesti."
      disable: Poista käytöstä
      disabled: Ei käytössä
      disabled: Poissa käytöstä
      enable: Ota käyttöön
      enable_hint: Kun tämä on otettu käyttöön, palvelimesi liittyy välittäjään ja vastaanottaa jatkossa kaikki sen jakelemat julkiset julkaisut sekä välittää omat julkiset julkaisunsa sille.
      enable_hint: Kun tämä on otettu käyttöön, palvelimesi tilaa välittäjältä kaikki sen välittämät julkiset julkaisut ja alkaa lähettää omansa sille.
      enabled: Käytössä
      inbox_url: Välittäjän URL
      pending: Odotetaan välittäjän hyväksyntää


@@ 584,15 584,15 @@ fi:
          one: "%{count} ilmoitus"
          other: "%{count} ilmoitusta"
      action_log: Tarkastusloki
      action_taken_by: Toimenpiteen tekijä
      action_taken_by: Toimen tehnyt
      actions:
        delete_description_html: Ilmoitetut viestit poistetaan ja kirjataan varoitus, joka auttaa sinua saman tilin tulevista rikkomuksista.
        mark_as_sensitive_description_html: Ilmoitettujen viestien media merkitään arkaluonteisiksi ja varoitus tallennetaan, jotta voit kärjistää saman tilin tulevia rikkomuksia.
        other_description_html: Katso lisää vaihtoehtoja tilin käytöksen hallitsemiseksi ja ilmoitetun tilin viestinnän mukauttamiseksi.
        resolve_description_html: Ilmoitettua tiliä vastaan ei ryhdytä toimenpiteisiin, varoitusta ei kirjata ja raportti suljetaan.
        silence_description_html: Tili näkyy vain niille, jotka jo seuraavat sitä tai estävät sen manuaalisesti, mikä rajoittaa merkittävästi sen kattavuutta. Se voidaan aina palauttaa. Sulkee kaikki raportit tätä tiliä vastaan.
        suspend_description_html: Tili ja kaikki sen sisältö eivät ole käytettävissä ja vuorovaikutus sen kanssa on mahdotonta, sekä lopulta poistetaan. Palautettava 30 päivän kuluessa. Sulkee kaikki raportit tätä tiliä vastaan.
      actions_description_html: Päätä, mihin toimiin ryhdyt tämän ilmoituksen ratkaisemiseksi. Jos ryhdyt rangaistustoimeen ilmoitettua tiliä vastaan, heille lähetetään sähköposti-ilmoitus, paitsi jos <strong>Roskaposti</strong> luokka on valittuna.
        delete_description_html: Raportoidut julkaisut poistetaan ja kirjataan varoitus, joka auttaa suhtautumaan vakavammin saman tilin tuleviin rikkomuksiin.
        mark_as_sensitive_description_html: Raportoitujen julkaisujen media merkitään arkaluonteiseksi ja kirjataan varoitus, joka auttaa suhtautumaan vakavammin saman tilin tuleviin rikkomuksiin.
        other_description_html: Katso lisää vaihtoehtoja tilin käytöksen hallitsemiseksi ja raportoidulle tilille kohdistuvan viestinnän mukauttamiseksi.
        resolve_description_html: Ilmoitettua tiliä kohtaan ei ryhdytä toimiin, varoitusta ei kirjata ja raportti suljetaan.
        silence_description_html: Tili näkyy vain niille, jotka jo seuraavat sitä tai etsivät sen manuaalisesti, mikä rajoittaa merkittävästi sen tavoitettavuutta. Voidaan perua milloin vain. Sulkee kaikki tilin vastaiset raportit.
        suspend_description_html: Tili ja mikään sen sisältö eivät ole käytettävissä, ja lopulta ne poistetaan, ja vuorovaikutus tilin kanssa on mahdotonta. Peruttavissa 30 päivän ajan. Sulkee kaikki tämän tilin vastaiset raportit.
      actions_description_html: Päätä, mihin toimiin ryhdyt tämän raportin ratkaisemiseksi. Jos ryhdyt rangaistustoimeen ilmoitettua tiliä kohtaan, hänelle lähetetään sähköposti-ilmoitus, paitsi jos <strong>Roskaposti</strong>-luokka on valittuna.
      actions_description_remote_html: Päätä, mihin toimiin ryhdyt tämän raportin ratkaisemiseksi. Tämä vaikuttaa vain siihen, miten <strong>palvelimesi</strong> kommunikoi tämän etätilin kanssa ja käsittelee sen sisältöä.
      add_to_report: Lisää raporttiin
      are_you_sure: Oletko varma?


@@ 600,15 600,15 @@ fi:
      assigned: Määritetty valvoja
      by_target_domain: Ilmoitetun tilin verkkotunnus
      cancel: Peruuta
      category: Kategoria
      category_description_html: Syy, miksi tämä tili ja/tai sisältö ilmoitettiin, mainitaan yhteydenotossa ilmoitettuun tiliin
      category: Luokka
      category_description_html: Syy siihen, miksi tämä tili ja/tai sisältö raportoitiin, mainitaan ilmoitetun tilin kanssa viestiessä
      comment:
        none: Ei mitään
      comment_description_html: 'Antaakseen lisätietoja %{name} kirjoitti:'
      confirm: Vahvista
      confirm_action: Vahvista moderointitoiminto käyttäjää @%{acct} kohtaan
      confirm_action: Vahvista valvontatoimi käyttäjää @%{acct} kohtaan
      created_at: Raportoitu
      delete_and_resolve: Poista viestejä
      delete_and_resolve: Poista julkaisut
      forwarded: Välitetty
      forwarded_to: Välitetty %{domain}
      mark_as_resolved: Merkitse ratkaistuksi


@@ 638,22 638,22 @@ fi:
      statuses_description_html: Loukkaava sisältö mainitaan ilmoitetun tilin yhteydessä
      summary:
        action_preambles:
          delete_html: 'Olet aikeissa <strong>poistaa</strong> joitain käyttäjän <strong>@%{acct}</strong> viestejä. Tästä seuraa:'
          mark_as_sensitive_html: 'Olet aikeissa <strong>merkitä</strong> joitain käyttäjän <strong>@%{acct}</strong> viestejä <strong>arkaluonteisiksi</strong>. Tästä seuraa:'
          delete_html: 'Olet aikeissa <strong>poistaa</strong> käyttäjän <strong>@%{acct}</strong> julkaisuja. Tästä seuraa:'
          mark_as_sensitive_html: 'Olet aikeissa <strong>merkitä</strong> käyttäjän <strong>@%{acct}</strong> julkaisuja <strong>arkaluonteisiksi</strong>. Tästä seuraa:'
          silence_html: 'Olet aikeissa <strong>rajoittaa</strong> käyttäjän <strong>@%{acct}</strong> tiliä. Tästä seuraa:'
          suspend_html: 'Olet aikeissa <strong>rajoittaa</strong> käyttäjän <strong>@%{acct}</strong> tiliä. Tästä seuraa:'
          suspend_html: 'Olet aikeissa <strong>jäädyttää</strong> käyttäjän <strong>@%{acct}</strong> tilin. Tästä seuraa:'
        actions:
          delete_html: Loukkaavat viestit poistetaan
          mark_as_sensitive_html: Loukkaavien viestien media merkitään arkaluonteiseksi
          silence_html: Vakavasti rajoittaa käyttäjän <strong>@%{acct}</strong> tavoitettavuutta tekemällä profiilista ja sen sisällöstä näkyviä vain jo häntä seuraaville tai niille, jotka etsivät profiilia manuaalisesti
          suspend_html: Rajoita <strong>@%{acct}</strong>, jolloin heidän profiilinsa ja sisällönsä ei ole käytettävissä ja on mahdotonta olla vuorovaikutuksessa
          delete_html: Poista loukkaavat julkaisut
          mark_as_sensitive_html: Merkitse loukkaavien julkaisujen media arkaluonteiseksi
          silence_html: Rajoita merkittävästi käyttäjän <strong>@%{acct}</strong> tavoitettavuutta tekemällä profiilista ja sen sisällöstä näkyviä vain niille, jotka jo seuraavat tiliä tai etsivät sen manuaalisesti
          suspend_html: Jäädytä <strong>@%{acct}</strong>, jolloin hänen profiilinsa ja sisältönsä ei ole käytettävissä ja hänen kanssaan on mahdotonta olla vuorovaikutuksessa
        close_report: 'Merkitse raportti #%{id} selvitetyksi'
        close_reports_html: Merkitse <strong>kaikki</strong> käyttäjään <strong>@%{acct}</strong> kohdistuvat raportit ratkaistuiksi
        delete_data_html: Poista <strong>@%{acct}</strong>profiili ja sisältö 30 päivän kuluttua, ellei jäädytystä tällä välin peruuteta
        delete_data_html: Poista käyttäjän <strong>@%{acct}</strong> profiili ja sen sisältö 30 päivän kuluttua, ellei jäädytystä sillä välin kumota
        preview_preamble_html: "<strong>@%{acct}</strong> saa varoituksen, jonka sisältö on seuraava:"
        record_strike_html: Tallenna varoitus <strong>@%{acct}</strong> vastaan, joka auttaa sinua selvittämään tulevia rikkomuksia tältä tililtä
        send_email_html: Lähetä käyttäjälle <strong>@%{acct}</strong> varoitus sähköpostitse
        warning_placeholder: Valinnaiset lisäperustelut moderointitoimenpiteelle.
        warning_placeholder: Valinnaiset lisäperustelut valvontatoimelle.
      target_origin: Raportoidun tilin alkuperä
      title: Raportit
      unassign: Määrittämätön


@@ 670,10 670,10 @@ fi:
        administration: Ylläpito
        devops: DevOps
        invites: Kutsut
        moderation: Moderointi
        moderation: Valvonta
        special: Erikois
      delete: Poista
      description_html: Käyttäjän <strong>roolit</strong>, voit muokata toimintoja ja alueita mitä sinun Mastodon käyttäjät voivat käyttää.
      description_html: "<strong>Käyttäjärooleilla</strong> voit muokata, mihin toimintoihin ja alueisiin käyttäjäsi pääsevät käsiksi."
      edit: Muokkaa "%{name}" roolia
      everyone: Oletus käyttöoikeudet
      everyone_full_description_html: Tämä on <strong>perusrooli</strong> joka vaikuttaa <strong>kaikkiin käyttäjiin</strong>, jopa ilman määrättyä roolia. Kaikki muut roolit perivät sen käyttöoikeudet.


@@ 687,34 687,34 @@ fi:
        delete_user_data_description: Salli käyttäjien poistaa muiden käyttäjien tiedot viipymättä
        invite_users: Kutsu käyttäjiä
        invite_users_description: Sallii käyttäjien kutsua uusia ihmisiä palvelimelle
        manage_announcements: Hallitse Ilmoituksia
        manage_announcements_description: Salli käyttäjien hallita ilmoituksia palvelimella
        manage_announcements: Hallitse tiedotteita
        manage_announcements_description: Sallii käyttäjien hallita tiedotteita palvelimella
        manage_appeals: Hallitse valituksia
        manage_appeals_description: Antaa käyttäjien tarkastella valvontatoimia koskevia valituksia
        manage_blocks: Hallitse lohkoja
        manage_blocks_description: Sallii käyttäjien estää sähköpostipalvelujen ja IP-osoitteiden käytön
        manage_custom_emojis: Hallita mukautettuja hymiöitä
        manage_custom_emojis_description: Salli käyttäjien hallita mukautettuja hymiöitä palvelimella
        manage_federation: Hallita liitoksia
        manage_federation_description: Sallii käyttäjien estää tai sallia liitoksen muiden verkkotunnusten kanssa ja hallita toimitusta
        manage_invites: Hallita kutsuja
        manage_appeals_description: Sallii käyttäjien tarkistaa valvontatoimia koskevia valituksia
        manage_blocks: Hallitse estoja
        manage_blocks_description: Sallii käyttäjien estää sähköpostipalveluntarjoajia ja IP-osoitteita
        manage_custom_emojis: Hallitse mukautettuja emojeita
        manage_custom_emojis_description: Sallii käyttäjien hallita mukautettuja emojeita palvelimella
        manage_federation: Hallitse federointia
        manage_federation_description: Sallii käyttäjien estää tai sallia federointi muiden verkkotunnusten kanssa ja hallita toimitusta
        manage_invites: Hallitse kutsuja
        manage_invites_description: Sallii käyttäjien selata ja poistaa kutsulinkkejä käytöstä
        manage_reports: Hallita raportteja
        manage_reports_description: Sallii käyttäjien tarkastella raportteja ja suorittaa valvontatoimia niitä vastaan
        manage_roles: Hallita rooleja
        manage_reports: Hallitse raportteja
        manage_reports_description: Sallii käyttäjien tarkistaa raportteja ja suorittaa valvontatoimia niitä vastaan
        manage_roles: Hallitse rooleja
        manage_roles_description: Sallii käyttäjien hallita ja määrittää rooleja heidän alapuolellaan
        manage_rules: Hallita sääntöjä
        manage_rules_description: Sallii käyttäjien vaihtaa palvelinsääntöjä
        manage_settings: Hallita asetuksia
        manage_settings_description: Salli käyttäjien muuttaa sivuston asetuksia
        manage_taxonomies: Hallita luokittelua
        manage_rules: Hallitse sääntöjä
        manage_rules_description: Sallii käyttäjien muuttaa palvelimen sääntöjä
        manage_settings: Hallitse asetuksia
        manage_settings_description: Sallii käyttäjien muuttaa sivuston asetuksia
        manage_taxonomies: Hallitse luokittelua
        manage_taxonomies_description: Sallii käyttäjien tarkistaa nousussa olevan sisällön ja päivittää aihetunnisteiden asetuksia
        manage_user_access: Hallita käyttäjän oikeuksia
        manage_user_access_description: Sallii käyttäjien poistaa käytöstä muiden käyttäjien kaksivaiheisen todennuksen, muuttaa heidän sähköpostiosoitettaan ja nollata heidän salasanansa
        manage_users: Hallita käyttäjiä
        manage_users_description: Sallii käyttäjien tarkastella muiden käyttäjien tietoja ja suorittaa valvontatoimia heitä vastaan
        manage_webhooks: Hallita Webhookit
        manage_webhooks_description: Sallii käyttäjien luoda webhookit hallinnollisiin tapahtumiin
        manage_user_access: Hallitse käyttäjäoikeuksia
        manage_user_access_description: Sallii käyttäjien poistaa muiden käyttäjien kaksivaiheinen todennus käytöstä, vaihtaa heidän sähköpostiosoitteensa ja nollata heidän salasanansa
        manage_users: Hallitse käyttäjiä
        manage_users_description: Sallii käyttäjien tarkastella muiden käyttäjien tietoja ja suorittaa valvontatoimia heitä kohtaan
        manage_webhooks: Hallitse webhookeja
        manage_webhooks_description: Sallii käyttäjien luoda webhookeja hallinnollisiin tapahtumiin
        view_audit_log: Katsoa valvontalokia
        view_audit_log_description: Sallii käyttäjien nähdä palvelimen hallinnollisten toimien historian
        view_dashboard: Näytä koontinäyttö


@@ 725,21 725,21 @@ fi:
    rules:
      add_new: Lisää sääntö
      delete: Poista
      description_html: Vaikka useimmat väittävät, että ovat lukenut ja hyväksyneet käyttöehdot niin yleensä ihmiset eivät lue niitä läpi ennen kuin ongelma syntyy. <strong>Tee helpoksi nähdä palvelimen säännöt yhdellä silmäyksellä tarjoamalla ne tiiviissä luettelossa.</strong> Yritä pitää säännöt lyhyinä ja yksinkertaisina, mutta yritä olla jakamatta niitä moniin erillisiin kohteisiin.
      description_html: Vaikka useimmat väittävät, että ovat lukeneet ja hyväksyneet käyttöehdot, niin yleensä ihmiset eivät lue niitä läpi ennen kuin ilmenee ongelma. <strong>Helpota palvelimen sääntöjen näkemistä yhdellä silmäyksellä tarjoamalla ne tiiviissä luettelossa.</strong> Yritä pitää säännöt lyhyinä ja yksinkertaisina, mutta yritä olla jakamatta niitä useisiin erillisiin kohtiin.
      edit: Muokkaa sääntöä
      empty: Palvelimen sääntöjä ei ole vielä määritelty.
      title: Palvelimen säännöt
    settings:
      about:
        manage_rules: Hallinnoi palvelimen sääntöjä
        manage_rules: Hallitse palvelimen sääntöjä
        preamble: Anna perusteellista tietoa siitä, miten palvelinta käytetään, valvotaan, rahoitetaan.
        rules_hint: On olemassa erityinen alue sääntöjä, joita käyttäjien odotetaan noudattavan.
        title: Tietoja
      appearance:
        preamble: Muokkaa Mastodonin web-käyttöliittymää.
        preamble: Mukauta Mastodonin verkkokäyttöliittymää.
        title: Ulkoasu
      branding:
        preamble: Palvelimesi brändäys erottaa sen muista verkon palvelimista. Nämä tiedot voidaan näyttää useissa eri ympäristöissä, kuten Mastodonin käyttöliittymässä, sovelluksissa, linkkien esikatselu muilla sivustoilla ja viestisovelluksien sisällä ja niin edelleen. Tästä syystä on parasta pitää nämä tiedot selkeinä, lyhyinä ja ytimekkäinä.
        preamble: Palvelimesi brändäys erottaa sen muista verkon palvelimista. Nämä tiedot voivat näkyä monissa eri ympäristöissä, kuten Mastodonin verkkokäyttöliittymässä, natiivisovelluksissa, linkkien esikatseluissa muilla sivustoilla, viestintäsovelluksissa ja niin edelleen. Siksi nämä tiedot kannattaa pitää selkeinä, lyhyinä ja ytimekkäinä.
        title: Brändäys
      captcha_enabled:
        desc_html: Tämä perustuu ulkoisiin skripteihin hCaptchasta, mikä voi olla turvallisuus- ja yksityisyysongelma. Lisäksi <strong>tämä voi tehdä rekisteröinnin ihmisille huomattavasti (erityisesti vammaisten) helpommaksi</strong>. Harkitse vaihtoehtoisia toimenpiteitä, kuten hyväksymisperusteista tai kutsupohjaista rekisteröintiä.


@@ 751,7 751,7 @@ fi:
        desc_html: Vaikuttaa kaikkiin käyttäjiin, jotka eivät ole muuttaneet tätä asetusta itse
        title: Jätä käyttäjät oletusarvoisesti hakukoneindeksoinnin ulkopuolelle
      discovery:
        follow_recommendations: Noudata suosituksia
        follow_recommendations: Seuraamissuositukset
        preamble: Mielenkiintoisen sisällön esille tuominen auttaa saamaan uusia käyttäjiä, jotka eivät ehkä tunne ketään Mastodonista. Määrittele, kuinka erilaiset etsintäominaisuudet toimivat palvelimellasi.
        profile_directory: Profiilihakemisto
        public_timelines: Julkiset aikajanat


@@ 773,7 773,7 @@ fi:
          open: Kaikki voivat rekisteröityä
      security:
        authorized_fetch: Vaadi todennus yhdistetyiltä palvelimilta
        authorized_fetch_hint: Todennuksen vaatiminen yhdistetyiltä palvelimilta mahdollistaa sekä käyttäjätason että palvelintason alueiden tiukemmat estot. Tämä tapahtuu kuitenkin suorituskyvyn kustannuksella, vähentää vastauksien ulottuvuutta ja voi luoda yhteensopivuusongelmia joidenkin yhdistettyjen palveluiden kanssa. Lisäksi, tämä ei myöskään estä muita toimijoita hakemasta julkisia viestejäsi ja tilejäsi.
        authorized_fetch_hint: Todennuksen vaatiminen federoiduilta palvelimilta mahdollistaa sekä käyttäjä- että palvelintason estojen tiukemman valvonnan. Tämä tapahtuu kuitenkin suorituskyvyn kustannuksella, vähentää vastauksiesi tavoittavuutta ja voi aiheuttaa yhteensopivuusongelmia joidenkin federoitujen palvelujen kanssa. Tämä ei myöskään estä omistautuneita toimijoita hakemasta julkisia julkaisujasi ja tilejäsi.
        authorized_fetch_overridden_hint: Et voi tällä hetkellä muuttaa tätä asetusta, koska se on ohitettu ympäristömuuttujalla.
        federation_authentication: Yhdistettyjen palvelinten todentamisen täytäntöönpano
      title: Palvelimen asetukset


@@ 808,23 808,23 @@ fi:
      media:
        title: Media
      metadata: Metadata
      no_status_selected: Viestejä ei muutettu, koska yhtään ei ole valittuna
      open: Avaa viesti
      original_status: Alkuperäinen viesti
      no_status_selected: Julkaisuja ei muutettu, koska yhtään ei ole valittuna
      open: Avaa julkaisu
      original_status: Alkuperäinen julkaisu
      reblogs: Edelleen jako
      status_changed: Viesti muutettu
      status_changed: Julkaisua muutettu
      title: Tilin tilat
      trending: Nousussa
      visibility: Näkyvyys
      with_media: Sisältää mediaa
    strikes:
      actions:
        delete_statuses: "%{name} poisti käyttäjän %{target} viestit"
        delete_statuses: "%{name} poisti käyttäjän %{target} julkaisut"
        disable: "%{name} jäädytti %{target} tilin"
        mark_statuses_as_sensitive: "%{name} merkitsi käyttäjän %{target} viestit arkaluonteisiksi"
        mark_statuses_as_sensitive: "%{name} merkitsi käyttäjän %{target} julkaisut arkaluonteisiksi"
        none: "%{name} lähetti varoituksen henkilölle %{target}"
        sensitive: "%{name} merkitsi käyttäjän %{target} tilin arkaluonteiseksi"
        silence: "%{name} rajoitti käyttäjän %{target} tilin"
        silence: "%{name} rajoitti käyttäjän %{target} tiliä"
        suspend: "%{name} jäädytti käyttäjän %{target} tilin"
      appeal_approved: Valitti
      appeal_pending: Valitus vireillä


@@ 852,8 852,8 @@ fi:
        message_html: 'Yhteensopimaton Elasticsearch versio: %{value}'
        version_comparison: Elasticsearch %{running_version} on käynnissä, kun %{required_version} vaaditaan
      rules_check:
        action: Hallinnoi palvelimen sääntöjä
        message_html: Et ole määrittänyt mitään palvelimen sääntöä.
        action: Hallitse palvelimen sääntöjä
        message_html: Et ole määrittänyt lainkaan palvelimen sääntöjä.
      sidekiq_process_check:
        message_html: Ei ole Sidekiq-prosessia käynnissä jonossa %{value}. Tarkista Sidekiq-asetukset
      software_version_critical_check:


@@ 864,7 864,7 @@ fi:
        message_html: Mastodonin virhekorjauspäivitys on saatavilla.
      upload_check_privacy_error:
        action: Katso täältä lisätietoja
        message_html: "<strong>Verkkopalvelimesi on määritetty virheellisesti, ja käyttäjiesi yksityisyys on vaarassa.</strong>"
        message_html: "<strong>Verkkopalvelimesi on määritetty väärin. Käyttäjiesi yksityisyys on vaarassa.</strong>"
      upload_check_privacy_error_object_storage:
        action: Katso täältä lisätietoja
        message_html: "<strong>Objektivarastosi on määritetty virheellisesti, ja käyttäjiesi yksityisyys on vaarassa.</strong>"


@@ 900,17 900,17 @@ fi:
        title: Julkaisijat
      rejected: Hylätty
      statuses:
        allow: Salli viesti
        allow: Salli julkaisu
        allow_account: Salli tekijä
        description_html: Nämä ovat viestejä, jotka palvelimesi tietää tällä hetkellä jaetuksi ja suosituksi. Tämä voi auttaa uusia ja palaavia ihmisiä löytämään lisää ihmisiä, joita seurata seurata. Julkaisuja ei näytetä julkisesti ennen kuin hyväksyt tekijän ja kirjoittaja sallii tilinsä ehdottamisen muille. Voit myös sallia tai hylätä yksittäiset viestit.
        disallow: Estä viesti
        description_html: Nämä ovat julkaisuja, joita palvelimesi tietää jaettavan ja lisättävän suosikkeihin paljon tällä hetkellä. Listaus voi auttaa uusia ja palaavia käyttäjiäsi löytämään lisää seurattavia. Julkaisut eivät näy julkisesti ennen kuin hyväksyt niiden julkaisijan ja julkaisija sallii tilinsä ehdottamisen. Voit myös sallia tai hylätä yksittäisiä julkaisuja.
        disallow: Kiellä julkaisu
        disallow_account: Estä tekijä
        no_status_selected: Suosittuja viestejä ei muutettu, koska yhtään ei valittu
        no_status_selected: Suosittuja julkaisuja ei muutettu, koska yhtään ei ole valittuna
        not_discoverable: Tekijä ei ole ilmoittanut olevansa löydettävissä
        shared_by:
          one: Jaettu tai merkitty suosikiksi kerran
          one: Jaettu tai lisätty suosikkeihin kerran
          other: Jaettu tai merkitty suosikiksi %{friendly_count} kertaa
        title: Suositut viestit
        title: Suositut julkaisut
      tags:
        current_score: Nykyinen tulos %{score}
        dashboard:


@@ 941,15 941,15 @@ fi:
      delete: Poista
      edit_preset: Muokkaa varoituksen esiasetusta
      empty: Et ole vielä määrittänyt yhtäkään varoitusten esiasetusta.
      title: Hallinnoi varoitusten esiasetuksia
      title: Hallitse varoitusten esiasetuksia
    webhooks:
      add_new: Lisää päätepiste
      delete: Poista
      description_html: "<strong>Webhook</strong> mahdollistaa Mastodonin työntää <strong>reaaliaikaisia ilmoituksia</strong> valituista tapahtumista omaan sovellukseesi, joten sovelluksesi voi <strong>laukaista automaattisesti reaktioita</strong>."
      description_html: "<strong>Webhookin</strong> avulla Mastodon voi puskea sovellukseesi <strong>reaaliaikaisia ilmoituksia</strong> valituista tapahtumista, jotta sovelluksesi voi <strong>laukaista reaktioita automaattisesti</strong>."
      disable: Poista käytöstä
      disabled: Ei käytössä
      disabled: Pois käytöstä
      edit: Muokkaa päätepistettä
      empty: Sinulla ei ole vielä määritetty webhook-päätepisteitä.
      empty: Et ole vielä määrittänyt webhook-päätepisteitä.
      enable: Ota käyttöön
      enabled: Aktiivinen
      enabled_events:


@@ 965,16 965,16 @@ fi:
  admin_mailer:
    new_appeal:
      actions:
        delete_statuses: poistaa heidän viestit
        delete_statuses: poistaa hänen julkaisunsa
        disable: jäädyttää heidän tilinsä
        mark_statuses_as_sensitive: merkitä heidän viestinsä arkaluonteisiksi
        mark_statuses_as_sensitive: merkitä hänen julkaisunsa arkaluonteisiksi
        none: varoitus
        sensitive: merkitä heidän tilinsä arkaluonteiseksi
        silence: rajoittaa heidän tilinsä
        suspend: jäädyttää heidän tilinsä
      body: "%{target} on valittanut valvojan päätöksestä %{action_taken_by} aika %{date}, joka oli %{type}. He kirjoittivat:"
      next_steps: Voit hyväksyä vetoomuksen ja kumota päätöksen tai jättää sen huomiotta.
      subject: "%{username} valittaa valvojan päätöksestä, joka koskee instanssia %{instance}"
        silence: rajoittaa hänen tiliään
        suspend: jäädyttää hänen tilinsä
      body: "%{target} valittaa valvojan %{action_taken_by} päätöksestä %{date}, joka oli %{type}. Hän kirjoitti:"
      next_steps: Voit hyväksyä valituksen, jolloin valvontapäätös kumoutuu, tai sivuuttaa sen.
      subject: "%{username} valittaa valvontapäätöksestä, joka koskee instanssia %{instance}"
    new_critical_software_updates:
      body: Mastodonin uusia kriittisen tärkeitä versioita on julkaistu, joten saatat haluta päivittää niin pian kuin mahdollista!
      subject: Kriittisiä Mastodon-päivityksiä on saatavilla instanssille %{instance}!


@@ 983,7 983,7 @@ fi:
      subject: Uusi tili tarkastettavana instanssissa %{instance} (%{username})
    new_report:
      body: "%{reporter} on raportoinut kohteen %{target}"
      body_remote: Joku osoitteesta %{domain} on raportoinut kohteen %{target}
      body_remote: Joku palvelimelta %{domain} raportoi käyttäjän %{target}
      subject: Uusi raportti instanssista %{instance} (nro %{id})
    new_software_updates:
      body: Uusia Mastodon-versioita on julkaistu, joten saatat haluta päivittää!


@@ 993,7 993,7 @@ fi:
      new_trending_links:
        title: Suositut linkit
      new_trending_statuses:
        title: Suositut viestit
        title: Suositut julkaisut
      new_trending_tags:
        no_approved_tags: Tällä hetkellä ei ole hyväksyttyjä trendikkäitä aihetunnisteita.
        requirements: 'Mikä tahansa näistä ehdokkaista voisi ylittää #%{rank} hyväksytyn trendikkään aihetunnisteen, joka on tällä hetkellä #%{lowest_tag_name} arvosanalla %{lowest_tag_score}.'


@@ 1004,14 1004,14 @@ fi:
    created_msg: Uusi alias luotiin onnistuneesti. Voit nyt aloittaa siirron vanhasta tilistä.
    deleted_msg: Alias poistettiin onnistuneesti. Siirtyminen tuolta tililtä tähän ei ole enää mahdollista.
    empty: Sinulla ei ole aliaksia.
    hint_html: Jos haluat siirtyä toisesta tilistä tähän tiliin, voit luoda aliasin, joka on pakollinen, ennen kuin voit siirtää seuraajia vanhasta tilistä tähän tiliin. Tämä toiminto on itsessään <strong>vaaraton ja palautuva</strong>. <strong>Tilin siirtyminen aloitetaan vanhalta tililtä</strong>.
    hint_html: Jos haluat muuttaa toiselta tililtä tälle tilille, voit luoda tässä aliaksen, mitä vaaditaan ennen kuin voit edetä siirtämään seuraajat vanhalta tililtä tälle tilille. Tänä toiminto on itsessään <strong>vaaraton ja kumottavissa</strong>. <strong>Tilin muuttaminen aloitetaan vanhalta tililtä</strong>.
    remove: Poista aliaksen linkitys
  appearance:
    advanced_web_interface: Edistynyt selainkäyttöliittymä
    advanced_web_interface_hint: 'Jos haluat käyttää koko näytön leveyttä, edistyneen web-käyttöliittymän avulla voit määrittää useita eri sarakkeita näyttämään niin paljon tietoa samanaikaisesti kuin haluat: Koti, ilmoitukset, yhdistetty aikajana, mikä tahansa määrä luetteloita ja aihetunnisteita.'
    advanced_web_interface_hint: 'Jos haluat hyödyntää näytön koko leveyttä, edistyneen webkäyttöliittymän avulla voit määrittää useita erilaisia sarakkeita, niin näet kerralla niin paljon tietoa kuin haluat: kotisyöte, ilmoitukset, yleinen aikajana, mikä tahansa määrä listoja ja aihetunnisteita.'
    animations_and_accessibility: Animaatiot ja saavutettavuus
    confirmation_dialogs: Vahvistusvalinnat
    discovery: Löydöt
    discovery: Löytäminen
    localization:
      body: Mastodonin ovat kääntäneet vapaaehtoiset.
      guide_link: https://crowdin.com/project/mastodon


@@ 1042,7 1042,7 @@ fi:
    confirmations:
      wrong_email_hint: Jos sähköpostiosoite ei ole oikein, voit muuttaa sen tilin asetuksista.
    delete_account: Poista tili
    delete_account_html: Jos haluat poistaa tilisi, <a href="%{path}">paina tästä</a>. Poisto on vahvistettava.
    delete_account_html: Jos haluat poistaa tilisi, voit <a href="%{path}">edetä tästä</a>. Sinua pyydetään vahvistamaan poisto.
    description:
      prefix_invited_by_user: "@%{name} kutsuu sinut liittymään tälle Mastodonin palvelimelle!"
      prefix_sign_up: Liity Mastodoniin tänään!


@@ 1051,13 1051,13 @@ fi:
    dont_have_your_security_key: Eikö sinulla ole suojausavainta?
    forgot_password: Unohditko salasanasi?
    invalid_reset_password_token: Salasanan palautustunnus on virheellinen tai vanhentunut. Pyydä uusi.
    link_to_otp: Syötä puhelimesi kaksivaiheinen koodi tai palautuskoodi
    link_to_otp: Syötä puhelimesi kaksivaiheisen todennuksen koodi tai palautuskoodi
    link_to_webauth: Käytä suojausavaintasi
    log_in_with: Kirjaudu käyttäen
    login: Kirjaudu sisään
    logout: Kirjaudu ulos
    migrate_account: Muuta toiseen tiliin
    migrate_account_html: Jos haluat ohjata tämän tilin toiseen tiliin, voit <a href="%{path}">asettaa toisen tilin tästä</a>.
    migrate_account_html: Jos haluat ohjata tämän tilin toiseen, voit <a href="%{path}">asettaa toisen tilin tästä</a>.
    or_log_in_with: Tai käytä kirjautumiseen
    privacy_policy_agreement_html: Olen lukenut ja hyväksynyt <a href="%{privacy_policy_path}" target="_blank">tietosuojakäytännön</a>
    progress:


@@ 1076,8 1076,8 @@ fi:
      accept: Hyväksy
      back: Takaisin
      invited_by: 'Seuraavalta käyttäjältä vastaanottamasi kutsun ansiosta voit liittyä palvelimelle %{domain}:'
      preamble: "%{domain} valvojat määrittävät ja valvovat sääntöjä."
      preamble_invited: Ennen kuin jatkat, huomioi palvelimen %{domain} valvojien asettamat perussäännöt.
      preamble: Palvelimen %{domain} valvojat määrittävät ja valvovat sääntöjä.
      preamble_invited: Ennen kuin jatkat, ota huomioon palvelimen %{domain} valvojien asettamat perussäännöt.
      title: Joitakin perussääntöjä.
      title_invited: Sinut on kutsuttu.
    security: Tunnukset


@@ 1086,21 1086,21 @@ fi:
      email_below_hint_html: Tarkista roskapostikansiosi tai pyydä uusi viesti. Voit korjata sähköpostiosoitteesi, jos se oli väärin.
      email_settings_hint_html: Napsauta lähettämäämme linkkiä vahvistaaksesi osoitteen %{email}. Odotamme täällä.
      link_not_received: Etkö saanut linkkiä?
      new_confirmation_instructions_sent: Saat uuden vahvistuslinkin sisältävän sähköpostiviestin muutaman minuutin sisällä!
      title: Tarkista saamasi viestit
      new_confirmation_instructions_sent: Saat uuden vahvistuslinkin sisältävän sähköpostiviestin muutamassa minuutissa!
      title: Tarkista sähköpostilaatikkosi
    sign_in:
      preamble_html: Kirjaudu <strong>%{domain}</strong>-tunnuksellasi. Jos tilisi sijaitsee eri palvelimella, et voi kirjautua täällä.
      title: Kirjaudu palvelimelle %{domain}
    sign_up:
      manual_review: Palvelimen %{domain} ylläpito tarkastaa rekisteröitymiset käsin. Helpottaaksesi rekisteröitymisesi käsittelyä, kerro hieman itsestäsi ja miksi haluat luoda käyttäjätilin palvelimelle %{domain}.
      manual_review: Palvelimen %{domain} valvojat tarkistavat rekisteröitymiset käsin. Helpottaaksesi rekisteröitymisesi käsittelyä kerro hieman itsestäsi ja miksi haluat luoda käyttäjätilin palvelimelle %{domain}.
      preamble: Kun sinulla on tili tällä Mastodon-palvelimella, voit seurata kaikkia muita verkossa olevia henkilöitä riippumatta siitä, missä heidän tilinsä on.
      title: Otetaan sinulle käyttöön %{domain}.
    status:
      account_status: Tilin tila
      confirming: Odotetaan sähköpostivahvistuksen valmistumista.
      functional: Tilisi on täysin toiminnassa.
      pending: Hakemuksesi odottaa henkilökuntamme tarkastusta. Tämä voi kestää jonkin aikaa. Saat sähköpostiviestin, jos hakemuksesi on hyväksytty.
      redirecting_to: Tilisi ei ole aktiivinen, koska se ohjaa tällä hetkellä kohteeseen %{acct}.
      pending: Hakemuksesi odottaa henkilökuntamme tarkastusta. Tämä voi kestää jonkin aikaa. Saat sähköpostiviestin, jos hakemuksesi hyväksytään.
      redirecting_to: Tilisi ei ole aktiivinen, koska se ohjaa tällä hetkellä tilille %{acct}.
      view_strikes: Näytä tiliäsi koskevia aiempia varoituksia
    too_fast: Lomake lähetettiin liian nopeasti, yritä uudelleen.
    use_security_key: Käytä suojausavainta


@@ 1138,9 1138,9 @@ fi:
    proceed: Poista tili
    success_msg: Tilin poisto onnistui
    warning:
      before: 'Ennen kuin jatkat, lue nämä huomautukset huolellisesti:'
      before: 'Ennen kuin etenet, lue nämä huomautukset huolellisesti:'
      caches: Muiden palvelimien välimuistiin tallentamaa sisältöä voi vielä löytyä
      data_removal: Viestit ja muut tiedot poistetaan pysyvästi
      data_removal: Julkaisusi ja muut tietosi poistetaan pysyvästi
      email_change_html: Voit <a href="%{path}">muuttaa sähköpostiosoitettasi</a> poistamatta tiliäsi
      email_contact_html: Jos ei saavu perille, voit pyytää apua sähköpostilla <a href="mailto:%{email}">%{email}</a>
      email_reconfirmation_html: Jos et saa vahvistuksen sähköpostia, niin voit <a href="%{path}">pyytää sitä uudelleen</a>


@@ 1150,7 1150,7 @@ fi:
      username_unavailable: Käyttäjänimesi ei tule saataville enää uudestaan
  disputes:
    strikes:
      action_taken: Toteutetut toimet
      action_taken: Tehty toimi
      appeal: Vetoomus
      appeal_approved: Tähän valitukseen on haettu muutosta, eikä se ole enää voimassa
      appeal_rejected: Valitus on hylätty


@@ 1164,17 1164,17 @@ fi:
      description_html: Nämä ovat tiliäsi koskevia toimia ja varoituksia, jotka instanssin %{instance} henkilökunta on lähettänyt sinulle.
      recipient: Osoitettu
      reject_appeal: Hylkää valitus
      status: 'Viesti #%{id}'
      status_removed: Viesti on jo poistettu järjestelmästä
      status: 'Julkaisu #%{id}'
      status_removed: Julkaisu on jo poistettu järjestelmästä
      title: "%{action} alkaen %{date}"
      title_actions:
        delete_statuses: Viestin poisto
        delete_statuses: Julkaisun poisto
        disable: Tilin jäädyttäminen
        mark_statuses_as_sensitive: Viestien merkitseminen arkaluonteisiksi
        mark_statuses_as_sensitive: Julkaisujen merkitseminen arkaluonteisiksi
        none: Varoitus
        sensitive: Tilin merkitseminen arkaluonteiseksi
        silence: Tilin rajoittaminen
        suspend: Tilin jäädyttäminen
        suspend: Tilin jäädytys
      your_appeal_approved: Valituksesi on hyväksytty
      your_appeal_pending: Olet lähettänyt valituksen
      your_appeal_rejected: Valituksesi on hylätty


@@ 1182,8 1182,8 @@ fi:
    invalid_domain: ei ole kelvollinen toimialueen nimi
  edit_profile:
    basic_information: Perustiedot
    hint_html: "<strong>Mukauta mitä ihmiset näkevät julkisessa profiilissasi ja sinun julkaisujen vieressä.</strong> Ihmiset todennäköisesti seuraavat ja kirjoittavat sinulle, kun sinulla on täytetty profiili ja profiilikuva."
    other: Muu
    hint_html: "<strong>Mukauta, mitä ihmiset näkevät julkisessa profiilissasi ja julkaisujesi vieressä.</strong> Ihmiset seuraavat sinua takaisin ja ovat kanssasi vuorovaikutuksessa todennäköisemmin, kun sinulla on täytetty profiili ja profiilikuva."
    other: Muut
  errors:
    '400': Lähettämäsi pyyntö oli virheellinen tai muotoiltu virheellisesti.
    '403': Sinulla ei ole lupaa nähdä tätä sivua.


@@ 1198,7 1198,7 @@ fi:
      content: Valitettavasti jokin meni pieleen meidän päässämme.
      title: Sivu ei ole oikein
    '503': Sivua ei voitu näyttää palvelimen väliaikaisen vian vuoksi.
    noscript_html: Käyttääksesi Mastodon-verkkopalvelua, ota JavaScript käyttöön. Vaihtoehtoisesti voit kokeilla myös jotakin juuri käyttämällesi alustalle kehitettyä Mastodon-<a href="%{apps_path}">sovellusta</a>.
    noscript_html: Käyttääksesi Mastodonin verkkosovellusta, ota JavaScript käyttöön. Vaihtoehtoisesti voit kokeilla käyttämällesi alustalle kehitettyjä Mastodonin <a href="%{apps_path}">natiivisovelluksia</a>.
  existing_username_validator:
    not_found: paikallista käyttäjää ei löydy kyseisellä käyttäjänimellä
    not_found_multiple: "%{usernames} ei löytynyt"


@@ 1206,7 1206,7 @@ fi:
    archive_takeout:
      date: Päiväys
      download: Lataa arkisto
      hint_html: Voit pyytää arkistoa omista <strong>viesteistä ja mediasta</strong>. Viedyt tiedot ovat ActivityPub-muodossa, ja ne voi lukea millä tahansa yhteensopivalla ohjelmalla. Voit pyytää arkistoa viikon välein.
      hint_html: Voit pyytää arkistoa omista <strong>julkaisuista ja mediasta</strong>. Viedyt tiedot ovat ActivityPub-muodossa, ja ne voi lukea millä tahansa yhteensopivalla ohjelmalla. Voit pyytää arkistoa 7 päivän välein.
      in_progress: Arkistoa kootaan...
      request: Pyydä arkisto
      size: Koko


@@ 1225,18 1225,18 @@ fi:
  filters:
    contexts:
      account: Profiilit
      home: Kotiaikajana
      home: Kotisyöte ja listat
      notifications: Ilmoitukset
      public: Julkiset aikajanat
      thread: Keskustelut
    edit:
      add_keyword: Lisää avainsana
      keywords: Avainsanat
      statuses: Yksittäiset viestit
      statuses_hint_html: Tämä suodatin koskee yksittäisten viestien valintaa riippumatta siitä, vastaavatko ne alla olevia avainsanoja. <a href="%{path}">Tarkista tai poista viestit suodattimesta</a>.
      statuses: Yksittäiset julkaisut
      statuses_hint_html: Tämä suodatin koskee yksittäisten julkaisujen valintaa riippumatta siitä, vastaavatko ne alla olevia avainsanoja. <a href="%{path}">Tarkista tai poista julkaisut suodattimesta</a>.
      title: Muokkaa suodatinta
    errors:
      deprecated_api_multiple_keywords: Näitä parametreja ei voi muuttaa tästä sovelluksesta, koska ne koskevat useampaa kuin yhtä suodattimen avainsanaa. Käytä uudempaa sovellusta tai selainkäyttöliittymää.
      deprecated_api_multiple_keywords: Näitä parametreja ei voi muuttaa tästä sovelluksesta, koska ne koskevat useampaa kuin yhtä suodattimen avainsanaa. Käytä uudempaa sovellusta tai verkkokäyttöliittymää.
      invalid_context: Ei sisältöä tai se on virheellinen
    index:
      contexts: Suodattimet %{contexts}


@@ 1248,11 1248,11 @@ fi:
        one: "%{count} avainsana"
        other: "%{count} avainsanaa"
      statuses:
        one: "%{count} viesti"
        other: "%{count} viestiä"
        one: "%{count} julkaisu"
        other: "%{count} julkaisua"
      statuses_long:
        one: "%{count} yksittäinen viesti piilotettu"
        other: "%{count} yksittäistä viestiä piilotettu"
        one: "%{count} yksittäinen julkaisu piilotettu"
        other: "%{count} yksittäistä julkaisua piilotettu"
      title: Suodattimet
    new:
      save: Tallenna uusi suodatin


@@ 1262,8 1262,8 @@ fi:
      batch:
        remove: Poista suodattimista
      index:
        hint: Tämä suodatin koskee yksittäisten viestien valintaa muista kriteereistä riippumatta. Voit lisätä lisää viestejä tähän suodattimeen web-käyttöliittymästä.
        title: Suodatetut viestit
        hint: Tämä suodatin koskee yksittäisten julkaisujen valintaa muista kriteereistä riippumatta. Voit lisätä lisää julkaisuja tähän suodattimeen verkkokäyttöliittymästä.
        title: Suodatetut julkaisut
  generic:
    all: Kaikki
    all_items_on_page_selected_html:


@@ 1279,7 1279,7 @@ fi:
    delete: Poista
    deselect: Poista kaikki valinnat
    none: Ei mitään
    order_by: Järjestä
    order_by: Järjestys
    save_changes: Tallenna muutokset
    select_all_matching_items:
      one: Valitse %{count} kohde, joka vastaa hakuasi.


@@ 1291,7 1291,7 @@ fi:
  imports:
    errors:
      empty: Tyhjä CSV-tiedosto
      incompatible_type: Yhteensopimaton valitun tuontityypin kanssa
      incompatible_type: Yhteensopimaton valitun tuontilajin kanssa
      invalid_csv_file: 'Epäkelpo CSV-tiedosto. Virhe: %{error}'
      over_rows_processing_limit: sisältää yli %{count} riviä
      too_large: Tiedosto on liian suuri


@@ 1304,20 1304,20 @@ fi:
      overwrite: Korvaa
      overwrite_long: Korvaa nykyiset tietueet uusilla
    overwrite_preambles:
      blocking_html: Olet aikeissa <strong>korvata estoluettelon</strong> kaikkiaan <strong>%{total_items} tilillä</strong> tiedostoon <strong>%{filename}</strong> perustuen.
      bookmarks_html: Olet aikeissa <strong>korvata kirjanmerkit</strong> kaikkiaan <strong>%{total_items} julkaisulla</strong> tiedostosta <strong>%{filename}</strong>.
      domain_blocking_html: Olet aikeissa <strong>korvata verkkotunnusestot</strong> kaikkiaan <strong>%{total_items} verkkotunnuksella</strong> tiedostoon <strong>%{filename}</strong> perustuen.
      following_html: Olet aikeissa <strong>seurata</strong> kaikkiaan <strong>%{total_items} tiliä</strong> tiedostoon <strong>%{filename}</strong> perustuen. Aiot lisäksi <strong>lopettaa kaikkien muiden seuraamisen</strong>.
      lists_html: Olet <strong>korvaamassa listojasi</strong> tiedoston <strong>%{filename}</strong> sisällöllä. Uusiin listoihin lisätään kaikkiaan <strong>%{total_items} tiliä</strong>.
      muting_html: Olet <strong>korvaamassa mykistettyjä tilejäsi</strong> kaikkiaan <strong>%{total_items} tilillä</strong> tiedostoon <strong>%{filename}</strong> perustuen.
      blocking_html: Olet aikeissa <strong>korvata estoluettelosi</strong> kaikkiaan <strong>%{total_items} tilillä</strong> tiedostosta <strong>%{filename}</strong>.
      bookmarks_html: Olet aikeissa <strong>korvata kirjanmerkkisi</strong> kaikkiaan <strong>%{total_items} julkaisulla</strong> tiedostosta <strong>%{filename}</strong>.
      domain_blocking_html: Olet aikeissa <strong>korvata verkkotunnusten estoluettelosi</strong> kaikkiaan <strong>%{total_items} verkkotunnuksella</strong> tiedostosta <strong>%{filename}</strong>.
      following_html: Olet aikeissa <strong>seurata</strong> kaikkiaan <strong>%{total_items} tiliä</strong> tiedostosta <strong>%{filename}</strong> ja <strong>lopettaa kaikkien muiden seuraamisen</strong>.
      lists_html: Olet aikeissa <strong>korvata listojasi</strong> tiedoston <strong>%{filename}</strong> sisällöllä. Uusiin listoihin lisätään kaikkiaan <strong>%{total_items} tiliä</strong>.
      muting_html: Olet aikeissa <strong>korvata mykistettyjen tilien luettelosi</strong> kaikkiaan <strong>%{total_items} tilillä</strong> tiedostosta <strong>%{filename}</strong>.
    preambles:
      blocking_html: Olet <strong>estämässä</strong> yhteensä <strong>%{total_items} tiliä</strong> tiedostoon <strong>%{filename}</strong> perustuen.
      bookmarks_html: Olet lisäämässä <strong>%{total_items} julkaisua</strong> tiedostosta <strong>%{filename}</strong><strong>kirjanmerkkeihisi</strong>.
      domain_blocking_html: Olet <strong>estämässä</strong> yhteensä <strong>%{total_items} verkkotunnusta</strong> tiedoston <strong>%{filename}</strong> nojalla.
      following_html: Olet aikeissa <strong>seurata</strong> kaikkiaan <strong>%{total_items} tiliä</strong> tiedostoon <strong>%{filename}</strong> perustuen.
      lists_html: Olet lisäämässä <strong>listoihisi</strong> <strong>%{total_items} tiliä</strong> tiedostosta <strong>%{filename}</strong>. Uudet listat luodaan, jos sopivaa kohdelistaa ei ole olemassa.
      muting_html: Olet <strong>hiljentämässä</strong> yhteensä <strong>%{total_items} tiliä</strong> tiedostosta <strong>%{filename}</strong>.
    preface: Voit tuoda toisesta instanssista viemiäsi tietoja, kuten esimerkiksi seuraamiesi tai estämiesi henkilöiden listan.
      blocking_html: Olet aikeissa <strong>estää</strong> kaikkiaan <strong>%{total_items} tiliä</strong> tiedostosta <strong>%{filename}</strong>.
      bookmarks_html: Olet lisäämässä kaikkiaan <strong>%{total_items} julkaisua</strong> tiedostosta <strong>%{filename}</strong><strong>kirjanmerkkeihisi</strong>.
      domain_blocking_html: Olet aikeissa <strong>estää</strong> kaikkiaan <strong>%{total_items} verkkotunnusta</strong> tiedostosta <strong>%{filename}</strong>.
      following_html: Olet aikeissa <strong>seurata</strong> kaikkiaan <strong>%{total_items} tiliä</strong> tiedostosta <strong>%{filename}</strong>.
      lists_html: Olet lisäämässä <strong>listoihisi</strong> kaikkiaan <strong>%{total_items} tiliä</strong> tiedostosta <strong>%{filename}</strong>. Uusia listoja luodaan, jos sopivaa kohdelistaa ei ole olemassa.
      muting_html: Olet aikeissa <strong>mykistää</strong> kaikkiaan <strong>%{total_items} tiliä</strong> tiedostosta <strong>%{filename}</strong>.
    preface: Voit tuoda toiselta palvelimelta viemiäsi tietoja, kuten seuraamiesi tai estämiesi henkilöiden luettelon.
    recent_imports: Viimeksi tuotu
    states:
      finished: Valmis


@@ 1337,14 1337,14 @@ fi:
    type: Tuonnin tyyppi
    type_groups:
      constructive: Seuratut ja kirjanmerkit
      destructive: Estot ja hiljennykset
      destructive: Estot ja mykistykset
    types:
      blocking: Estettyjen lista
      blocking: Estoluettelo
      bookmarks: Kirjanmerkit
      domain_blocking: Verkkoalueen estolista
      following: Seurattujen lista
      domain_blocking: Verkkotunnuksen estoluettelo
      following: Seurattujen luettelo
      lists: Listat
      muting: Mykistettyjen lista
      muting: Mykistettyjen luettelo
    upload: Lähetä
  invites:
    delete: Poista käytöstä


@@ 1373,7 1373,7 @@ fi:
      limit: Sinulla on enimmäismäärä listoja
  login_activities:
    authentication_methods:
      otp: kaksivaiheinen todennussovellus
      otp: kaksivaiheisen todennuksen sovellus
      password: salasana
      sign_in_token: sähköpostin turvakoodi
      webauthn: suojausavaimet


@@ 1386,16 1386,16 @@ fi:
    unsubscribe:
      action: Kyllä, peru tilaus
      complete: Tilaus lopetettiin
      confirmation_html: Olethan varma, että haluat lopettaa %{type} -aiheisten Mastodonin sähköposti-ilmoitusten vastaanoton palvelimelta %{domain} osoitteeseesi %{email}? Voit toki milloin tahansa ottaa jälleen käyttöön muun muassa nämä viestit <a href="%{settings_path}">sähköposti-ilmoitusasetusten</a> kautta.
      confirmation_html: Haluatko varmasti lopettaa Mastodonin sähköposti-ilmoitusten vastaanottamisen aiheesta %{type} palvelimelta %{domain} osoitteeseesi %{email}? Voit tilata ilmoitusviestejä milloin tahansa uudelleen <a href="%{settings_path}">sähköposti-ilmoitusten asetuksista</a>.
      emails:
        notification_emails:
          favourite: sähköpostit ilmoituksille
          follow: seuraa sähköpostin ilmoituksia
          follow_request: seuraa pyyntöjä sähköpostiin
          mention: mainitse sähköpostin ilmoitukset
          reblog: tehosta sähköpostien ilmoituksia
      resubscribe_html: Jos olet perunut ilmoitusviestien vastaanottamisen suotta, pääset jälleentilaamaan ilmoitusviestejä <a href="%{settings_path}">sähköposti-ilmoitusasetusten</a> kautta.
      success_html: Sinulle ei vastedes lähetetä %{type} -aihepiirin Mastodon-sähköposti-ilmoituksia palvelimelta %{domain} osoitteeseen %{email}.
          favourite: sähköposti-ilmoituksia suosikkeihin lisäämisistä
          follow: sähköposti-ilmoituksia seuraamisista
          follow_request: sähköposti-ilmoituksia seuraamispyynnöistä
          mention: sähköposti-ilmoituksia maininnoista
          reblog: sähköposti-ilmoituksia tehostuksista
      resubscribe_html: Jos olet perunut tilauksen erehdyksessä, voit tilata ilmoitusviestejä uudelleen <a href="%{settings_path}">sähköposti-ilmoitusten asetuksista</a>.
      success_html: Sinulle ei enää lähetetä Mastodonin %{type} palvelimelta %{domain} osoitteeseen %{email}.
      title: Lopeta tilaus
  media_attachments:
    validations:


@@ 1415,7 1415,7 @@ fi:
      on_cooldown: Sinä olet jäähyllä
    followers_count: Seuraajat muuton aikana
    incoming_migrations: Siirtyminen toiselta tililtä
    incoming_migrations_html: Siirtääksesi toisesta tilistä tähän tiliin, sinun täytyy ensin <a href="%{path}">luoda tilin alias</a>.
    incoming_migrations_html: Siirtyäksesi toisesta tilistä tähän, sinun täytyy ensin <a href="%{path}">luoda tilin alias</a>.
    moved_msg: Tilisi ohjaa nyt kohteeseen %{acct} ja seuraajiasi siirretään.
    not_redirecting: Tilisi ei ohjaa tällä hetkellä mihinkään muuhun tiliin.
    on_cooldown: Olet siirtänyt tilisi äskettäin. Tämä toiminto tulee saataville uudelleen %{count} päivän kuluttua.


@@ 1426,15 1426,15 @@ fi:
    set_redirect: Aseta uudelleenohjaus
    warning:
      backreference_required: Uusi tili on ensin määritettävä viittaamaan tähän tiliin
      before: 'Ennen jatkamista, lue nämä huomautukset huolellisesti:'
      cooldown: Muuton jälkeen on odotusaika, jonka aikana et pysty enää liikkumaan
      disabled_account: Nykyinen tilisi ei ole täysin käytettävissä jälkikäteen. Sinulla on kuitenkin pääsy tietojen vientiin ja uudelleenaktivointiin.
      before: 'Ennen kuin etenet, lue nämä huomautukset huolellisesti:'
      cooldown: Muuton jälkeen on odotusaika, jonka aikana et pysty enää muuttamaan
      disabled_account: Nykyinen tilisi ei ole täysin käytettävissä tämän jälkeen. Sinulla on kuitenkin pääsy tietojen vientiin ja uudelleenaktivointiin.
      followers: Tämä toiminto siirtää kaikki seuraajat nykyisestä tilistä uudelle tilille
      only_redirect_html: Vaihtoehtoisesti voit <a href="%{path}">asettaa vain uudelleenohjauksen profiiliisi</a>.
      only_redirect_html: Vaihtoehtoisesti voit <a href="%{path}">asettaa vain ohjauksen profiiliisi</a>.
      other_data: Muita tietoja ei siirretä automaattisesti
      redirect: Nykyinen tilisi profiili päivitetään, ohjataan uudelleen ja jätetään pois hausta
      redirect: Nykyisen tilisi profiili päivitetään ohjaushuomautuksella ja suljetaan pois hauista
  moderation:
    title: Moderointi
    title: Valvonta
  move_handler:
    carry_blocks_over_text: Tämä käyttäjä siirtyi paikasta %{acct}, jonka olit estänyt.
    carry_mutes_over_text: Tämä käyttäjä siirtyi paikasta %{acct}, jonka mykistit.


@@ 1448,15 1448,15 @@ fi:
      sign_up:
        subject: "%{name} rekisteröityi"
    favourite:
      body: "%{name} tykkäsi tilastasi:"
      subject: "%{name} tykkäsi tilastasi"
      title: Uusi tykkäys
      body: "%{name} lisäsi julkaisusi suosikkeihinsa:"
      subject: "%{name} lisäsi julkaisusi suosikkeihinsa"
      title: Uusi suosikkeihin lisäys
    follow:
      body: "%{name} seuraa nyt sinua!"
      subject: "%{name} seuraa nyt sinua"
      title: Uusi seuraaja
    follow_request:
      action: Hallinnoi seuraamispyyntöjä
      action: Hallitse seuraamispyyntöjä
      body: "%{name} haluaa seurata sinua"
      subject: 'Odottava seuraamispyyntö: %{name}'
      title: Uusi seuraamispyyntö


@@ 1468,13 1468,13 @@ fi:
    poll:
      subject: Äänestys käyttäjältä %{name} on päättynyt
    reblog:
      body: "%{name} tehosti viestiäsi:"
      subject: "%{name} tehosti viestiäsi"
      body: "%{name} tehosti julkaisuasi:"
      subject: "%{name} tehosti julkaisuasi"
      title: Uusi tehostus
    status:
      subject: "%{name} julkaisi juuri"
    update:
      subject: "%{name} muokkasi viestiä"
      subject: "%{name} muokkasi julkaisua"
  notifications:
    administration_emails: Ylläpitäjän sähköposti-ilmoitukset
    email_events: Sähköposti-ilmoitusten tapahtumat


@@ 1492,7 1492,7 @@ fi:
          trillion: B
  otp_authentication:
    code_hint: Anna todennussovelluksen luoma koodi vahvistaaksesi
    description_html: Jos otat käyttöön <strong>kaksivaiheisen todentamisen</strong>, käyttämällä todennussovellusta, kirjautumiseen vaaditaan puhelin, jolla voidaan luoda kirjautumistunnuksia.
    description_html: Jos otat <strong>kaksivaiheisen todennuksen</strong> käyttöön käyttämällä todennussovellusta, kirjautumiseen vaaditaan puhelin, jolla voidaan luoda kirjautumistunnuksia.
    enable: Ota käyttöön
    instructions_html: "<strong>Lue tämä QR-koodi puhelimen Google Authenticator- tai vastaavalla TOTP-sovelluksella</strong>. Sen jälkeen sovellus luo tunnuksia, joita tarvitset kun kirjaudut sisään."
    manual_instructions: 'Jos et voi lukea QR-koodia ja haluat syöttää sen käsin, tässä on salainen koodi tekstinä:'


@@ 1518,16 1518,16 @@ fi:
      too_many_options: ei voi sisältää enempää kuin %{max} kohdetta
  preferences:
    other: Muut
    posting_defaults: Viestien oletusasetukset
    posting_defaults: Julkaisun oletusasetukset
    public_timelines: Julkiset aikajanat
  privacy:
    hint_html: "<strong>Määritä, kuinka haluat profiilisi ja julkaisujesi löytyvän.</strong> Mastodonissa on monia ominaisuuksia, joiden käyttöönotto voi auttaa sinua saavuttamaan laajemman yleisön. Käytä hetki aikaa tarkistaaksesi, soveltuvatko nämä vaihtoehdot tarpeisiisi."
    hint_html: "<strong>Määritä, kuinka haluat profiilisi ja julkaisujesi löytyvän.</strong> Mastodonissa on monia ominaisuuksia, joiden käyttöönotto voi auttaa sinua tavoittamaan laajemman yleisön. Käytä hetki tarkistaaksesi, sopivatko nämä asetukset käyttöösi."
    privacy: Yksityisyys
    privacy_hint_html: Määritä miten paljon muita avustavia tietoja haluat paljastaa. Käyttäjät löytävät kiinnostavia profiileja sekä hienoja sovelluksia selaillen toisten seuraamia käyttäjiä, ja näkemällä, millä sovelluksilla nämä julkaisevat. Saatat kuitenkin haluta piilottaa nämä tiedot.
    privacy_hint_html: Määritä, kuinka paljon muita avustavia tietoja haluat paljastaa. Käyttäjät löytävät kiinnostavia profiileja ja hienoja sovelluksia, kun he selaavat toisten seuraamia käyttäjiä ja kun he näkevät, millä sovelluksilla nämä julkaisevat. Saatat kuitenkin haluta piilottaa nämä tiedot.
    reach: Tavoittavuus
    reach_hint_html: Päätä, haluatko tulla uusien käyttäjien löytämäksi ja seuraamaksi. Haluatko viestiesi näkyvän Selaa-sivulla? Haluatko käyttäjien näkevän sinut heidän seuraussuosituksissaan? Haluatko hyväksyä uudet seuraajat automaattisesti vai haluatko hyväksyä jokaisen erikseen?
    reach_hint_html: Määritä, haluatko tulla uusien käyttäjien löytämäksi ja seuraamaksi. Haluatko julkaisujesi näkyvän Selaa-sivulla? Haluatko muiden käyttäjien näkevän sinut seuraamissuosituksissaan? Haluatko hyväksyä kaikki uudet seuraajat automaattisesti vai päättää jokaisesta erikseen?
    search: Haku
    search_hint_html: Määritä, kuinka haluat tulla löydetyksi. Haluatko, että ihmiset löytävät sinut julkisten julkaisujesi perusteella? Haluatko, että ihmiset Mastodonin ulkopuolella löytävät profiilisi tehdessään hakuja verkossa? Huomioithan, ettei täyttä poisjättäytymistä kaikista hakukoneista voida taata julkisille tiedoille.
    search_hint_html: Määritä, kuinka haluat tulla löydetyksi. Haluatko, että ihmiset löytävät sinut julkisten julkaisujesi perusteella? Haluatko, että ihmiset Mastodonin ulkopuolella löytävät profiilisi tehdessään hakuja verkossa? Otathan huomioon, ettei julkisten tietojen täyttä kaikista hakukoneista poisjäämistä voi taata.
    title: Yksityisyys ja tavoittavuus
  privacy_policy:
    title: Tietosuojakäytäntö


@@ 1547,10 1547,10 @@ fi:
    following: Seuratut
    invited: Kutsutut
    last_active: Viimeksi aktiivinen
    most_recent: Viimeisin
    moved: Muuttanut
    most_recent: Viimeisimmät
    moved: Muuttaneet
    mutual: Molemmat
    primary: Ensisijainen
    primary: Ensisijaiset
    relationship: Suhde
    remove_selected_domains: Poista kaikki seuraajat valituista verkkotunnuksista
    remove_selected_followers: Poista valitut seuraajat


@@ 1564,12 1564,12 @@ fi:
  rss:
    content_warning: 'Sisältövaroitus:'
    descriptions:
      account: Julkiset viestit lähettäjältä @%{acct}
      tag: 'Julkiset viestit merkitty #%{hashtag}'
      account: Julkiset julkaisut tililtä @%{acct}
      tag: 'Julkiset julkaisut aihetunnisteella #%{hashtag}'
  scheduled_statuses:
    over_daily_limit: Olet ylittänyt %{limit} ajoitetun viestin rajan tälle päivälle
    over_total_limit: Olet ylittänyt %{limit} ajoitetun viestin rajan
    too_soon: Ajoitetun päivämäärän on oltava tulevaisuudessa
    over_daily_limit: Olet ylittänyt %{limit} ajoitetun julkaisun rajan tälle päivälle
    over_total_limit: Olet ylittänyt %{limit} ajoitetun julkaisun rajan
    too_soon: Ajoitetun päiväyksen pitää olla tulevaisuudessa
  sessions:
    activity: Viimeisin toiminta
    browser: Selain


@@ 1595,7 1595,7 @@ fi:
      weibo: Weibo
    current_session: Nykyinen istunto
    description: "%{browser} alustalla %{platform}"
    explanation: Nämä verkkoselaimet ovat tällä hetkellä kirjautuneet Mastodon-tilillesi.
    explanation: Nämä verkkoselaimet ovat tällä hetkellä kirjautuneena Mastodon-tilillesi.
    ip: IP-osoite
    platforms:
      adobe_air: Adobe AIR


@@ 1623,20 1623,20 @@ fi:
    authorized_apps: Valtuutetut sovellukset
    back: Takaisin Mastodoniin
    delete: Tilin poisto
    development: Kehittäminen
    development: Kehitys
    edit_profile: Muokkaa profiilia
    export: Vie tietoja
    featured_tags: Esitellyt aihetunnisteet
    featured_tags: Esiteltävät aihetunnisteet
    import: Tuo
    import_and_export: Tuo ja vie
    import_and_export: Tuonti ja vienti
    migrate: Tilin muutto muualle
    notifications: Ilmoitukset
    preferences: Ominaisuudet
    profile: Profiili
    relationships: Seurattavat ja seuraajat
    statuses_cleanup: Automaattinen viestin poisto
    strikes: Valvojan varoitukset
    two_factor_authentication: Kaksivaiheinen todentaminen
    profile: Julkinen profiili
    relationships: Seuratut ja seuraajat
    statuses_cleanup: Autom. julkaisujen poisto
    strikes: Valvontavaroitukset
    two_factor_authentication: Kaksivaiheinen todennus
    webauthn_authentication: Suojausavaimet
  statuses:
    attached:


@@ 1650,21 1650,21 @@ fi:
      video:
        one: "%{count} video"
        other: "%{count} videota"
    boosted_from_html: Tehostus lähteestä %{acct_link}
    boosted_from_html: Tehosti lähteestä %{acct_link}
    content_warning: 'Sisältövaroitus: %{warning}'
    default_language: Sama kuin käyttöliittymän kieli
    disallowed_hashtags:
      one: 'sisälsi aihetunnisteen jota ei sallita: %{tags}'
      other: 'sisälsi aihetunnisteet joita ei sallita: %{tags}'
      one: 'sisälsi kielletyn aihetunnisteen: %{tags}'
      other: 'sisälsi kiellettyjä aihetunnisteita: %{tags}'
    edited_at_html: Muokattu %{date}
    errors:
      in_reply_not_found: Viesti, johon yrität vastata, ei näytä olevan olemassa.
      in_reply_not_found: Julkaisua, johon yrität vastata, ei näytä olevan olemassa.
    open_in_web: Avaa selaimessa
    over_character_limit: merkkimäärän rajoitus %{max} ylitetty
    pin_errors:
      direct: Viestejä, jotka ovat näkyvissä vain mainituille käyttäjille, ei voi kiinnittää
      limit: Olet jo kiinnittänyt suurimman mahdollisen määrän viestejä
      ownership: Muiden viestejä ei voi kiinnittää
      direct: Vain mainituille käyttäjille näkyviä julkaisuja ei voi kiinnittää
      limit: Olet jo kiinnittänyt enimmäismäärän julkaisuja
      ownership: Muiden julkaisuja ei voi kiinnittää
      reblog: Tehostusta ei voi kiinnittää
    poll:
      total_people:


@@ 1681,33 1681,33 @@ fi:
    title: "%{name}: ”%{quote}”"
    visibilities:
      direct: Suoraan
      private: Vain seuraajille
      private: Vain seuraajat
      private_long: Näytä vain seuraajille
      public: Julkinen
      public_long: Kaikki voivat nähdä
      unlisted: Listaamaton julkinen
      unlisted: Listaamaton
      unlisted_long: Kaikki voivat nähdä, mutta ei näytetä julkisilla aikajanoilla
  statuses_cleanup:
    enabled: Poista vanhat viestit automaattisesti
    enabled_hint: Poistaa viestit automaattisesti, kun ne saavuttavat tietyn ikärajan, elleivät ne täsmää yhtä alla olevista poikkeuksista
    enabled: Poista vanhat julkaisut automaattisesti
    enabled_hint: Poistaa julkaisusi automaattisesti, kun ne saavuttavat valitun ikärajan, ellei jokin alla olevista poikkeuksista tule kyseeseen
    exceptions: Poikkeukset
    explanation: Koska viestien poistaminen on kallista toimintaa, sitä tehdään hitaasti ajan mittaan, kun palvelin ei ole muutoin kiireinen. Viestejäsi voidaankin siis poistaa myös viiveellä verrattuna niille määrittämääsi aikarajaan.
    explanation: Koska julkaisujen poistaminen on raskas toimi, se tapahtuu hitaasti ajan mittaan, kun palvelin ei ole muutoin ruuhkainen. Siksi viestejäsi voi poistua vasta tovi sen jälkeen, kun ne ovat saavuttaneet ikärajan.
    ignore_favs: Ohita suosikit
    ignore_reblogs: Ohita tehostukset
    interaction_exceptions: Poikkeukset, jotka perustuvat vuorovaikutukseen
    interaction_exceptions_explanation: Huomaa, että ei ole takeita viestien poistamiselle, jos ne alittavat suosikki- tai tehostusrajan sen jälkeen, kun ne on kerran ylitetty.
    interaction_exceptions: Vuorovaikutuksiin perustuvat poikkeukset
    interaction_exceptions_explanation: Huomaa, ettei julkaisujen poistumisesta ole varmuutta, jos ne alittavat suosikki- tai tehostusrajan sen jälkeen kun ne on kerran ylitetty.
    keep_direct: Säilytä yksityisviestit
    keep_direct_hint: Ei poista mitään sinun suoria viestejä
    keep_media: Säilytä viestit, joissa on liitetiedostoja
    keep_media_hint: Ei poista viestejä, joissa on liitteitä
    keep_pinned: Pidä kiinnitettyt viestit
    keep_pinned_hint: Ei poista mitään kiinnitettyä viestiä
    keep_direct_hint: Ei poista yksityisviestejäsi
    keep_media: Säilytä julkaisut, joissa on medialiitteitä
    keep_media_hint: Ei poista julkaisujasi, joissa on medialiitteitä
    keep_pinned: Säilytä kiinnitetyt julkaisut
    keep_pinned_hint: Ei poista kiinnitettyjä julkaisujasi
    keep_polls: Säilytä äänestykset
    keep_polls_hint: Ei poista yhtäkään äänestystä
    keep_self_bookmark: Säilytä kirjanmerkkeihin lisäämäsi viestit
    keep_self_bookmark_hint: Ei poista viestejäsi, jos olet lisännyt ne kirjanmerkkeihin
    keep_self_fav: Säilyttää viestit suosikeissa
    keep_self_fav_hint: Ei poista omia viestejäsi, jos olet lisännyt ne suosikkeihin
    keep_polls_hint: Ei poista äänestyksiäsi
    keep_self_bookmark: Säilytä kirjanmerkkeihin lisäämäsi julkaisut
    keep_self_bookmark_hint: Ei poista julkaisujasi, jos olet lisännyt ne kirjanmerkkeihin
    keep_self_fav: Säilytä suosikkeihin lisäämäsi julkaisut
    keep_self_fav_hint: Ei poista julkaisujasi, jos olet lisännyt ne suosikkeihin
    min_age:
      '1209600': 2 viikkoa
      '15778476': 6 kuukautta


@@ 1718,12 1718,12 @@ fi:
      '63113904': 2 vuotta
      '7889238': 3 kuukautta
    min_age_label: Ikäraja
    min_favs: Pidä viestit suosikeissa vähintään
    min_favs_hint: Toiminto ei poista julkaisujasi, joista on tykätty vähintään tässä kohtaa määritellyn monesti. Jätä kenttä tyhjäksi, jos haluat poistaa julkaisut tykkäyksistä huolimatta
    min_reblogs: Pidä viestit tehostettuna vähintään
    min_reblogs_hint: Ei poista yhtään viestiäsi, jota on tehostettu vähintään näin monta kertaa. Jätä tyhjäksi poistaaksesi viestejä riippumatta niiden tehosteiden määrästä
    min_favs: Säilytä julkaisut, joilla on suosikiksi lisäyksiä vähintään
    min_favs_hint: Ei poista julkaisujasi, joita on lisätty suosikeihin vähintään näin monta kertaa. Jätä tyhjäksi, jos haluat poistaa julkaisuja riippumatta suosikkeihin lisäysmääristä
    min_reblogs: Säilytä julkaisut, joilla on tehostuksia vähintään
    min_reblogs_hint: Ei poista julkaisujasi, joita on tehostettu vähintään näin monta kertaa. Jätä tyhjäksi, jos haluat poistaa julkaisuja riippumatta niiden tehostusten määrästä
  stream_entries:
    sensitive_content: Arkaluontoista sisältöä
    sensitive_content: Arkaluonteista sisältöä
  strikes:
    errors:
      too_late: On liian myöhäistä vedota tähän varoitukseen


@@ 1745,16 1745,16 @@ fi:
      too_many_requests: Käännöspalvelulle on hiljattain esitetty liian monta pyyntöä.
  two_factor_authentication:
    add: Lisää
    disable: Poista käytöstä
    disable: Poista 2FA käytöstä
    disabled_success: Kaksivaiheinen todennus on poistettu käytöstä
    edit: Muokkaa
    enabled: Kaksivaiheinen todentaminen käytössä
    enabled_success: Kaksivaiheisen todentamisen käyttöönotto onnistui
    enabled: Kaksivaiheinen todennus käytössä
    enabled_success: Kaksivaiheisen todennuksen käyttöönotto onnistui
    generate_recovery_codes: Luo palautuskoodit
    lost_recovery_codes: Palautuskoodien avulla voit käyttää tiliä, jos menetät puhelimesi. Jos olet hukannut palautuskoodit, voit luoda uudet tästä. Vanhat palautuskoodit poistetaan käytöstä.
    methods: Kaksivaiheisen tunnistautumisen menetelmät
    lost_recovery_codes: Palautuskoodien avulla voit käyttää tiliä, jos menetät puhelimesi. Jos olet hukannut palautuskoodisi, voit luoda uudet tästä. Vanhat palautuskoodit poistetaan käytöstä.
    methods: Kaksivaiheisen todennuksen menetelmät
    otp: Todennussovellus
    recovery_codes: Varapalautuskoodit
    recovery_codes: Ota palautuskoodit talteen
    recovery_codes_regenerated: Uusien palautuskoodien luonti onnistui
    recovery_instructions_html: Jos menetät puhelimesi, voit kirjautua tilillesi jollakin alla olevista palautuskoodeista. <strong>Pidä palautuskoodit hyvässä tallessa</strong>. Voit esimerkiksi tulostaa ne ja säilyttää muiden tärkeiden papereiden joukossa.
    webauthn: Suojausavaimet


@@ 1776,7 1776,7 @@ fi:
      change_password: vaihda salasanasi
      details: 'Tässä on tiedot kirjautumisesta:'
      explanation: Olemme havainneet kirjautumisen tilillesi uudesta IP-osoitteesta.
      further_actions_html: Jos tämä et ollut sinä, suosittelemme että %{action} välittömästi ja ota kaksivaiheinen todennus käyttöön säilyttääksesi tilisi turvallisena.
      further_actions_html: Jos tämä et ollut sinä, suosittelemme, että %{action} heti ja otat käyttöön kaksivaiheisen todennuksen pitääksesi tilisi turvassa.
      subject: Tiliäsi on käytetty uudesta IP-osoitteesta
      title: Uusi kirjautuminen
    warning:


@@ 1786,38 1786,38 @@ fi:
        spam: Roskaposti
        violation: Sisältö rikkoo seuraavia yhteisön sääntöjä
      explanation:
        delete_statuses: Joitakin viesteistäsi on havaittu rikkovan yhtä tai useampaa yhteisön sääntöä ja instanssin %{instance} valvojat ovat poistaneet ne.
        delete_statuses: Joidenkin julkaisuistasi on havaittu rikkovan ainakin yhtä yhteisön sääntöä, ja instanssin %{instance} valvojat ovat poistaneet ne.
        disable: Et voi enää käyttää tiliäsi, mutta profiilisi ja muut tiedot pysyvät muuttumattomina. Voit pyytää varmuuskopiota tiedoistasi, vaihtaa tilin asetuksia tai poistaa tilisi.
        mark_statuses_as_sensitive: Instanssin %{instance} valvojat ovat merkinneet osan julkaisuistasi arkaluonteisiksi. Tämä tarkoittaa sitä, että ihmisten täytyy napauttaa viestiä ennen kuin esikatselu näytetään. Voit merkitä median itse arkaluonteiseksi kun julkaiset tulevaisuudessa.
        mark_statuses_as_sensitive: Palvelimen %{instance} valvojat ovat merkinneet osan julkaisuistasi arkaluonteisiksi. Tämä tarkoittaa sitä, että ihmisten täytyy napauttaa mediaa ennen kuin sen esikatselu näytetään. Voit merkitä median itse arkaluonteiseksi, kun julkaiset tulevaisuudessa.
        sensitive: Tästä lähtien kaikki ladatut mediatiedostot merkitään arkaluonteisiksi ja piilotetaan napsautusvaroituksen taakse.
        silence: Voit edelleen käyttää tiliäsi, mutta vain sinua jo seuraavat ihmiset näkevät viestisi tällä palvelimella ja sinut voidaan sulkea pois erilaisista hakuominaisuuksista. Toiset voivat kuitenkin edelleen seurata sinua manuaalisesti.
        suspend: Et voi enää käyttää tiliäsi ja profiilisi ja muut tiedot eivät ole enää käytettävissä. Voit silti kirjautua sisään pyytääksesi varmuuskopiota tiedoistasi, kunnes tiedot on poistettu kokonaan noin 30 päivän kuluttua. Säilytämme joitakin perustietoja, jotka estävät sinua kiertämästä keskeyttämistä.
        silence: Voit edelleen käyttää tiliäsi, mutta vain sinua jo seuraavat käyttäjät näkevät julkaisusi tällä palvelimella ja sinut voidaan sulkea pois eri löytämisominaisuuksista. Toiset voivat kuitenkin edelleen seurata sinua manuaalisesti.
        suspend: Et voi enää käyttää tiliäsi, eivätkä profiilisi ja muut tiedot ole enää käytettävissä. Voit silti kirjautua sisään pyytääksesi tietojesi varmuuskopiota, kunnes tiedot on poistettu kokonaan noin 30 päivän kuluttua. Säilytämme kuitenkin joitain perustietoja, jotka estävät sinua kiertämästä jäädytystä.
      reason: 'Syy:'
      statuses: 'Viestejä lainattu:'
      statuses: 'Julkaisuja lainattu:'
      subject:
        delete_statuses: Viestisi %{acct} on poistettu
        delete_statuses: Julkaisusi tilillä %{acct} on poistettu
        disable: Tilisi %{acct} on jäädytetty
        mark_statuses_as_sensitive: Viestisi %{acct} on merkitty arkaluonteisiksi
        mark_statuses_as_sensitive: Julkaisusi tilillä %{acct} on merkitty arkaluonteisiksi
        none: Varoitus %{acct}
        sensitive: Sinun viestisi %{acct} merkitään arkaluonteisiksi tästä lähtien
        silence: Tilisi %{acct} on rajoitettu
        sensitive: Julkaisusi tilillä %{acct} merkitään arkaluonteisiksi tästä lähtien
        silence: Tiliäsi %{acct} on rajoitettu
        suspend: Tilisi %{acct} on jäädytetty
      title:
        delete_statuses: Viestit poistettu
        delete_statuses: Julkaisut poistettu
        disable: Tili jäädytetty
        mark_statuses_as_sensitive: Viestit on merkitty arkaluonteisiksi
        mark_statuses_as_sensitive: Julkaisut merkitty arkaluonteisiksi
        none: Varoitus
        sensitive: Tili on merkitty arkaluonteiseksi
        silence: Rajoitettu tili
        suspend: Tilin käyttäminen jäädytetty
        silence: Tiliä rajoitettu
        suspend: Tili jäädytetty
    welcome:
      edit_profile_action: Määritä profiili
      edit_profile_step: Voit mukauttaa profiiliasi mm. profiilikuvalla ja uudella näyttönimellä. Voit myös valita haluatko tarkastaa ja hyväksyä uudet seuraajat itse.
      edit_profile_step: Voit mukauttaa profiiliasi muun muassa profiilikuvalla ja uudella näyttönimellä. Voit myös valita, haluatko tarkastaa ja hyväksyä uudet seuraajat itse.
      explanation: Näillä vinkeillä pääset alkuun
      final_action: Ala julkaista
      final_step: 'Aloita julkaiseminen! Vaikkei sinulla ole seuraajia, voivat muut nähdä julkiset julkaisusi esimerkiksi paikallisella aikajanalla ja aihetunnisteilla. Kannattaa myös esittäytyä käyttämällä aihetunnistetta #introductions.'
      final_step: 'Ala julkaista! Vaikkei sinulla olisi seuraajia, voivat muut nähdä julkisia julkaisujasi esimerkiksi paikallisella aikajanalla tai aihetunnisteissa. Kannattaa myös esitellä itsensä aihetunnisteella #esittely.'
      full_handle: Koko käyttäjätunnuksesi
      full_handle_hint: Kerro tämä kavereillesi, niin he voivat lähettää sinulle viestejä tai löytää sinut muiden palvelimien kautta.
      full_handle_hint: Kerro tämä kavereillesi, niin he voivat lähettää sinulle viestejä tai seurata sinua toiselta palvelimelta.
      subject: Tervetuloa Mastodoniin
      title: Tervetuloa mukaan, %{name}!
  users:


@@ 1828,26 1828,26 @@ fi:
    seamless_external_login: Olet kirjautunut ulkoisen palvelun kautta, joten salasana- ja sähköpostiasetukset eivät ole käytettävissä.
    signed_in_as: 'Kirjautunut tilillä:'
  verification:
    extra_instructions_html: <strong>Vinkki:</strong> Tämä linkitys verkkosivustollasi voidaan toteuttaa myös näkymättömänä. Tärkeä osuus on <code>rel="me"</code> -määre, jolla ehkäistään valeprofiilikäyttötarkoituksia sivustoilla, joiden sisältö perustuu käyttäjiensä julkaisuihin. Voit siis käyttää linkkiviittauselementtiä <code>link</code> HTML-lähdekoodin otsakeosassa (head) sen sijaan, että käyttäisit näkyvää hyperlinkkielementtiä <code>a</code>. HTML-lähdekoodin tulee tuolta osin kuitenkin olla JavaScriptistä riippumatonta.
    extra_instructions_html: <strong>Vinkki:</strong> Verkkosivustollasi oleva linkki voi olla myös näkymätön. Olennainen osuus on <code>rel="me"</code>, joka estää toiseksi henkilöksi tekeytymisen verkkosivustoilla, joilla on käyttäjien luomaa sisältöä. Voit käyttää jopa <code>link</code>-elementtiä sivun <code>head</code>-osassa elementin <code>a</code> sijaan, mutta HTML:n pitää olla käytettävissä ilman JavaScript-koodin suorittamista.
    here_is_how: Näin voit tehdä sen
    hint_html: "<strong>Mastodonissa henkilöllisyyden vahventaminen on jokaisen käyttäjän ulottuvilla.</strong> Tämä perustuu avoimiin standardeihin, maksuttomasti nyt ja aina. Kaikki mitä tarvitset on henkilökohtainen verkkosivusto, jonka avulla sinut voidaan tunnistaa. Kun Mastodon-profiilistasi on linkki kyseiselle verkkosivustollesi, ja sieltä löytyy vastaviittaus tai -linkitys profiiliisi, näkyy profiilissasi vahvistustunniste."
    instructions_html: Kopioi ja liitä alla oleva koodi verkkosivusi HTML-lähdekoodiin. Lisää sitten verkkosivustosi osoite johonkin ylimääräisistä kentistä profiiliasetuksissa, "Muokkaa profiilia" -välilehdestä, ja tallenna muutokset.
    hint_html: "<strong>Henkilöllisyyden vahvistaminen on Mastodonissa jokaisen käyttäjän ulottuvilla.</strong> Se perustuu avoimiin standardeihin ja on maksutonta nyt ja aina. Tarvitset vain henkilökohtaisen verkkosivuston, jonka perusteella sinut voidaan tunnistaa. Kun teet linkin tuolle verkkosivulle profiilistasi, tarkistamme, että verkkosivustolla on linkki takaisin profiiliisi, ja näytämme profiilissasi visuaalisen ilmaisimen."
    instructions_html: Kopioi ja liitä alla oleva koodi verkkosivustosi HTML-lähdekoodiin. Lisää sitten verkkosivustosi osoite johonkin profiilisi lisäkentistä ”Muokkaa profiilia” -välilehdellä ja tallenna muutokset.
    verification: Vahvistus
    verified_links: Vahvistetut linkkisi
  webauthn_credentials:
    add: Lisää uusi suojausavain
    create:
      error: Suojausavaimen lisäämisessä tapahtui ongelma. Yritä uudelleen.
      success: Sinun suojausavaimen lisääminen onnistui.
      error: Suojausavaimen lisäämisessä oli ongelma. Yritä uudelleen.
      success: Suojausavaimesi lisääminen onnistui.
    delete: Poista
    delete_confirmation: Haluatko varmasti poistaa tämän suojausavaimen?
    description_html: Jos otat <strong>suojausavaimen todennuksen</strong> käyttöön, kirjautuminen edellyttää jonkin suojausavaimen käyttämistä.
    destroy:
      error: Suojausavaimen poistamisessa tapahtui ongelma. Yritä uudelleen.
      success: Sinun suojausavaimen poistaminen onnistui.
      error: Suojausavaimen poistamisessa oli ongelma. Yritä uudelleen.
      success: Suojausavaimesi poistaminen onnistui.
    invalid_credential: Virheellinen suojausavain
    nickname_hint: Anna nimimerkki uudelle suojausavaimelle
    not_enabled: Et ole vielä ottanut käyttöön WebAuthn-ohjelmaa
    nickname_hint: Anna uuden suojausaivaimesi lempinimi
    not_enabled: Et ole vielä ottanut WebAuthn-ohjelmaa käyttöön
    not_supported: Tämä selain ei tue suojausavaimia
    otp_required: Jos haluat käyttää suojausavaimia, ota ensin käyttöön kaksivaiheinen todennus.
    otp_required: Jos haluat käyttää suojausavaimia, ota ensin kaksivaiheinen todennus käyttöön.
    registered_on: Rekisteröity %{date}

M config/locales/hr.yml => config/locales/hr.yml +5 -0
@@ 27,12 27,17 @@ hr:
        new_email: Nova e-pošta
        submit: Promijeni e-poštu
        title: Promjena e-pošte za %{username}
      change_role:
        changed_msg: Uloga uspješno dodijeljena!
        label: Promjeni ulogu
      confirm: Potvrdi
      confirmed: Potvrđeno
      confirming: Potvrđivanje
      custom: Prilagođeno
      delete: Izbriši podatke
      deleted: Izbrisano
      disable: Zamrzni
      disable_two_factor_authentication: Onemogući 2FA
      display_name: Prikazano ime
      domain: Domena
      edit: Uredi

M config/locales/hy.yml => config/locales/hy.yml +22 -0
@@ 463,20 463,40 @@ hy:
    regenerate_token: Ստեղծել նոր հասանելիութեան կտրոն
    your_token: Քո մուտքի բանալին
  auth:
    apply_for_account: Ուղարկել
    delete_account: Ջնջել հաշիվը
    description:
      prefix_sign_up: Գրանցուի՛ր Մաստոդոնում հենց այսօր
    didnt_get_confirmation: Չե՞ս ստացել հաստատման յղում
    dont_have_your_security_key: Չունե՞ս անվտանգութեան բանալի։
    forgot_password: Մոռացե՞լ ես գաղտնաբառդ
    login: Մտնել
    logout: Դուրս գալ
    migrate_account: Տեղափոխուել այլ հաշիւ
    or_log_in_with: Կամ մուտք գործել օգտագործելով՝
    privacy_policy_agreement_html: Ես կարդացել եւ ընդունել եմ <a href="%{privacy_policy_path}" target="_blank">գաղնիութեան քաղաքականութիւնը</a>
    progress:
      confirm: Փոստի հաստատում
      details: Ձեր տուեալները
      review: Վաւերացում
      rules: Ընդունել կանոները
    register: Գրանցվել
    registration_closed: "%{instance}ը չի ընդունում նոր անդամներ"
    reset_password: Վերականգնել գաղտանաբառը
    rules:
      accept: Հաստատել
      back: Վերադառնալ
      preamble: Կանոնները սահմանում եւ կիրառում են %{domain}-ի մոդերատորները։
      title: Մի քանի հիմանական կանոններ։
    security: Անվտանգություն
    set_new_password: Սահմանել նոր գաղտնաբառ
    sign_in:
      preamble_html: Մուտքագրէք <strong>%{domain}</strong>-ի ձեր տուեալները։ Եթե ձեր հաշիւը ուրիշ սպասարկիչի վրայ է, այտեղ մտնել չի ստացուի։
      title: Մտնել %{domain}
    sign_up:
      manual_review: Գրանցումները %{domain}-ում վաւերացնում են մոդերատորնրը։ Մեզ օգնելու համար մի փոքր պատմէք ձեր մասին եւ թե ինչու էք ուզում գրանցուել։
      preamble: Այս հանգոյցում հաշիւ ունենալով դուք կարող էք հերտեւել դաշնեզերքի ցանկացած օգտատիրոջ, անկախ նրանից թե որտեղ է նրա հաշիւը տեղակայուած։
      title: Ստեղծի՜ր հաշիւ %{domain}-ում
    status:
      account_status: Հաշուի կարգավիճակ
      pending: Դիմումը պէտք է քննուի մեր անձնակազմի կողմից, ինչը կարող է մի փոքր ժամանակ խլել։ Դիմումի հաստատուելու դէպքում, կտեղեկացնենք նամակով։


@@ 685,6 705,8 @@ hy:
    other: Այլ
    posting_defaults: Կանխադիր կարգաւորումներ
    public_timelines: Հանրային հոսք
  privacy:
    search: Որոնել
  privacy_policy:
    title: Գաղտնիութեան քաղաքականութիւն
  reactions:

M config/locales/ja.yml => config/locales/ja.yml +2 -2
@@ 770,12 770,12 @@ ja:
      critical_update: "※緊急 (速やかに適用してください)"
      description: Mastodonサーバーはいつでも最新の状態を保ち、新しい機能や修正を利用できるようにしておくことをおすすめします。またセキュリティの問題が発生した場合は、速やかにMastodonをアップデートすることが大切です。Mastodonは30分おきにアップデートを確認し、通知設定に応じて新しいアップデートをメールで通知します。
      documentation_link: もっと見る
      release_notes: 更新情報
      release_notes: リリースノート
      title: 利用可能なアップデート
      type: アップデートの種別
      types:
        major: メジャーリリース
        minor: リリース
        minor: マイナーリリース
        patch: パッチ (バグ修正のみ)
      version: バージョン
    statuses:

M config/locales/ko.yml => config/locales/ko.yml +2 -2
@@ 47,7 47,7 @@ ko:
        label: 역할 변경
        no_role: 역할 없음
        title: "%{username}의 역할 변경"
      confirm: 확정
      confirm: 신원 확인
      confirmed: 확인됨
      confirming: 확인 중
      custom: 사용자 지정


@@ 269,7 269,7 @@ ko:
        reopen_report_html: "%{name} 님이 신고 %{target}을 다시 열었습니다"
        resend_user_html: "%{name} 님이 %{target} 님에 대한 확인 메일을 다시 보냈습니다"
        reset_password_user_html: "%{name} 님이 사용자 %{target}의 암호를 초기화했습니다"
        resolve_report_html: "%{name} 중재자가 %{target}번 신고를 해결로 변경하였습니다"
        resolve_report_html: "%{name} 님이 %{target}번 신고를 해결로 변경하였습니다"
        sensitive_account_html: "%{name} 님이 %{target}의 미디어를 민감함으로 표시했습니다"
        silence_account_html: "%{name} 님이 %{target}의 계정을 제한시켰습니다"
        suspend_account_html: "%{name} 님이 %{target}의 계정을 정지시켰습니다"

M config/locales/lv.yml => config/locales/lv.yml +2 -2
@@ 460,7 460,7 @@ lv:
        description_html: Tu gatavojies importēt domēna bloku sarakstu. Lūdzu, ļoti rūpīgi pārskati šo sarakstu, it īpaši, ja tu pats neesi to veidojis.
        existing_relationships_warning: Esošās sekošanas attiecības
        private_comment_description_html: 'Lai palīdzētu tev izsekot, no kurienes nāk importētie bloki, tiks izveidoti importētie bloki ar šādu privātu komentāru: <q>%{comment}</q>'
        private_comment_template: Importēts no %{source} %{date}
        private_comment_template: Importēt no %{source} %{date}
        title: Importēt bloķētos domēnus
      invalid_domain_block: 'Viens vai vairāki domēna bloķi tika izlaisti šādas kļūdas(-u) dēļ: %{error}'
      new:


@@ 1107,7 1107,7 @@ lv:
      new_confirmation_instructions_sent: Pēc dažām minūtēm saņemsi jaunu e-pastu ar apstiprinājuma saiti!
      title: Pārbaudi savu iesūtni
    sign_in:
      preamble_html: Pierakstieties ar saviem <strong>%{domain}</strong> akreditācijas datiem. Ja jūsu konts ir mitināts citā serverī, jūs nevarēsit pieteikties šeit.
      preamble_html: Piesakies ar saviem <strong>%{domain}</strong> akreditācijas datiem. Ja tavs konts ir mitināts citā serverī, tu nevarēsi pieteikties šeit.
      title: Pierakstīties %{domain}
    sign_up:
      manual_review: Reģistrācijas domēnā %{domain} manuāli pārbauda mūsu moderatori. Lai palīdzētu mums apstrādāt tavu reģistrāciju, uzraksti mazliet par sevi un to, kāpēc vēlies kontu %{domain}.

M config/locales/si.yml => config/locales/si.yml +365 -301
@@ 1,10 1,11 @@
---
si:
  about:
    about_mastodon_html: 'අනාගත සමාජ ජාලය: දැන්වීම් නැත, ආයතනික නිරීක්ෂණ නැත, සදාචාරාත්මක සැලසුම් සහ විමධ්‍යගත කිරීම! Mastodon සමඟ ඔබේ දත්ත අයිති කරගන්න!'
    contact_missing: සකස් කර නැත
    about_mastodon_html: 'අනාගත සමාජ ජාලය: දැන්වීම් නැත, සංස්ථානික අවේක්‍ෂණ නැත, යහපතට නිර්මිතයි සහ විමධ්‍යගතයි! මාස්ටඩන් සමඟ ඔබගේ දත්ත අයිතිව තබාගන්න!'
    contact_missing: සකසා නැත
    contact_unavailable: අ/නොවේ
    hosted_on: Mastodon %{domain}හි සත්කාරකත්වය දරයි
    hosted_on: "%{domain} හරහා සත්කාරකත්‍වය ලබයි"
    title: පිළිබඳව
  accounts:
    follow: අනුගමනය
    followers:


@@ 14,63 15,59 @@ si:
    instance_actor_flash: මෙම ගිණුම සේවාදායකයම නියෝජනය කිරීමට භාවිතා කරන අතථ්‍ය නළුවෙකු වන අතර කිසිදු තනි පරිශීලකයෙකු නොවේ. එය ෆෙඩරේෂන් අරමුණු සඳහා භාවිතා කරන අතර අත්හිටුවිය යුතු නොවේ.
    last_active: අවසාන ක්රියාකාරී
    link_verified_on: මෙම සබැඳියේ හිමිකාරිත්වය %{date}හි පරීක්ෂා කරන ලදී
    nothing_here: මෙහි කිසිත් නැත!
    pin_errors:
      following: ඔබට අනුමත කිරීමට අවශ්‍ය පුද්ගලයා ඔබ දැනටමත් අනුගමනය කරමින් සිටිය යුතුය
    nothing_here: මෙහි කිසිවක් නැත!
    posts:
      one: ලිපිය
      other: ලිපි
    posts_tab_heading: ලිපි
  admin:
    account_actions:
      action: ක්‍රියාව සිදු කරන්න
      title: "%{acct}මත මධ්‍යස්ථ ක්‍රියාව සිදු කරන්න"
      action: ක්‍රියාමාර්ගයක් ගන්න
    account_moderation_notes:
      create: සටහන හැරයන්න
      created_msg: මධ්‍යස්ථ සටහන සාර්ථකව සාදන ලදී!
      destroyed_msg: මධ්‍යස්ථ සටහන සාර්ථකව විනාශ විය!
      create: සටහනක් තබන්න
    accounts:
      add_email_domain_block: වි-තැපැල් වසම අවහිර කරන්න
      approve: අනුමත කරන්න
      approve: අනුමැතිය
      approved_msg: "%{username}හි ලියාපදිංචි වීමේ යෙදුම සාර්ථකව අනුමත කරන ලදී"
      are_you_sure: ඔබට විශ්වාසද?
      avatar: අවතාරය
      avatar: ප්‍රතිරූපය
      by_domain: වසම
      change_email:
        changed_msg: වි-තැපෑල සාර්ථකව වෙනස් විය!
        current_email: වත්මන් වි-තැපෑල
        label: වි-තැපෑල වෙනස් කරන්න
        new_email: නව විද්‍යුත් තැපෑල
        submit: වි-තැපෑල වෙනස් කරන්න
        title: "%{username} සඳහා වි-තැපෑල වෙනස් කරන්න"
      change_role:
        changed_msg: භූමිකාව සාර්ථකව වෙනස් විය!
        label: භූමිකාව වෙනස් කරන්න
        no_role: නව භූමිකාව
        title: "%{username} සඳහා භූමිකාව වෙනස් කරන්න"
      confirm: සනාථ කරන්න
      confirmed: තහවුරු කර ඇත
      confirmed: සනාථ කර ඇත
      confirming: සනාථ කරමින්
      custom: අභිරුචි
      delete: දත්ත මකන්න
      deleted: මකා දමන ලදී
      demote: පහත් කරන්න
      deleted: මකා ඇත
      destroyed_msg: "%{username}හි දත්ත ඉක්මනින් මකා දැමීමට පෝලිම් කර ඇත"
      disable: කැටි කරන්න
      disable_sign_in_token_auth: ඊමේල් ටෝකන් සත්‍යාපනය අක්‍රීය කරන්න
      disable_two_factor_authentication: 2FA අබල කරන්න
      disabled: ශීත කළ
      display_name: ප්රදර්ශන නාමය
      domain: වසම
      edit: සංස්කරණය
      email: විද්‍යුත් තැපෑල
      email_status: වි-තැපෑලෙහි තත්වය
      enable: කැටි කිරීම ඉවත් කරන්න
      enable_sign_in_token_auth: විද්‍යුත් තැපෑල ටෝකන් සත්‍යාපනය සබල කරන්න
      enabled: සබල කර ඇත
      enabled_msg: "%{username}ගේ ගිණුම සාර්ථකව අත්හිටුවා ඇත"
      followers: අනුගාමිකයින්
      follows: පහත සඳහන්
      header: ශීර්ෂය
      inbox_url: එන ලිපි URL
      invite_request_text: එක්වීම සඳහා
      invite_request_text: එක්වීමට හේතුව
      invited_by: විසින් ආරාධනා කරන ලදී
      ip: අ.ජා. කෙ. (IP)
      joined: එක් වී ඇත
      joined: එක් වූ දිනය
      location:
        all: සියල්ල
        local: ස්ථානීය


@@ 84,12 81,13 @@ si:
      moderation:
        active: සක්‍රීයයි
        all: සියල්ල
        pending: පොරොත්තුවෙන්
        disabled: අබලයි
        pending: පොරොත්තු
        suspended: අත්හිටුවන ලදි
        title: මධ්යස්ථභාවය
      moderation_notes: මධ්‍යස්ථ සටහන්
        title: මැදිහත්කරණය
      moderation_notes: මැදිහත්කරණ සටහන්
      most_recent_activity: වඩාත්ම මෑත ක්රියාකාරිත්වය
      most_recent_ip: ඊට වඩා අ.ජා.කේ.(IP)
      most_recent_ip: මෑත අ.ජා.කෙ. (IP)
      no_account_selected: කිසිවක් තෝරා නොගත් බැවින් ගිණුම් කිසිවක් වෙනස් කර නැත
      no_limits_imposed: සීමාවන් පනවා නැත
      not_subscribed: දායක වී නැත


@@ 99,37 97,36 @@ si:
      previous_strikes_description_html:
        one: මෙම ගිණුමට <strong>එක</strong> වර්ජනයක් ඇත.
        other: මෙම ගිණුමේ වර්ජන <strong>%{count}</strong> ඇත.
      promote: ප්රවර්ධනය කරන්න
      protocol: කෙටුම්පත
      public: ප්රසිද්ධ
      public: ප්‍රසිද්ධ
      push_subscription_expires: පුෂ් දායකත්වය කල් ඉකුත් වේ
      redownload: පැතිකඩ නැවුම්කරන්න
      redownload: පැතිකඩ නැවුම් කරන්න
      redownloaded_msg: මූලාරම්භයේ සිට %{username}හි පැතිකඩ සාර්ථකව නැවුම් කරන ලදී
      reject: ප්‍රතික්ෂේප
      rejected_msg: "%{username}හි ලියාපදිංචි වීමේ අයදුම්පත සාර්ථකව ප්‍රතික්ෂේප විය"
      remove_avatar: අවතාරය ඉවත් කරන්න
      remove_avatar: ප්‍රතිරූපය ඉවත් කරන්න
      remove_header: ශීර්ෂය ඉවත්කරන්න
      removed_avatar_msg: "%{username}ගේ අවතාර රූපය සාර්ථකව ඉවත් කරන ලදී"
      removed_header_msg: "%{username}හි ශීර්ෂ රූපය සාර්ථකව ඉවත් කරන ලදී"
      resend_confirmation:
        already_confirmed: මෙම පරිශීලකයා දැනටමත් තහවුරු කර ඇත
      reset: නැවත සකසන්න
      reset_password: මුරපදය නැවතසකසන්න
      reset_password: මුරපදය යළි සකසන්න
      resubscribe: නැවත දායක වන්න
      role: භූමිකාව
      search: සොයන්න
      search_same_email_domain: එකම විද්‍යුත් තැපැල් වසම සහිත වෙනත් පරිශීලකයන්
      search_same_ip: එකම IP සහිත වෙනත් පරිශීලකයන්
      security: ආරක්‍ෂාව
      security_measures:
        only_password: මුරපදය පමණි
        password_and_2fa: මුරපදය සහ 2FA
      sensitive: සංවේදී
      sensitized: සංවේදී ලෙස සලකුණු කර ඇත
      sensitized: සංවේදී බව සලකුණු කර ඇත
      shared_inbox_url: බෙදාගත් එන ලිපි URL
      show:
        created_reports: වාර්තා හැදුවා
        targeted_reports: වෙනත් අය විසින් වාර්තා කරන ලදී
      silence: සීමාව
      silenced: සීමාසහිත
      silenced: සීමා සහිතයි
      statuses: ලිපි
      strikes: පෙර වැඩ වර්ජන
      subscribe: දායක වන්න


@@ 147,26 144,25 @@ si:
      unsilenced_msg: "%{username}ගිණුමේ සීමාව සාර්ථකව ඉවත් කරන ලදී"
      unsubscribe: දායක නොවන්න
      unsuspended_msg: "%{username}ගිණුම සාර්ථකව අත්හිටුවන ලදී"
      username: පරිශීලක නාමය
      username: පරිශ්‍රීලක නාමය
      view_domain: වසම සඳහා සාරාංශය බලන්න
      warn: අවවාද
      web: වියමන
      whitelisted: ෆෙඩරේෂන් සඳහා අවසර ඇත
      whitelisted: ඒකාබද්ධයට ඉඩ දී ඇත
    action_logs:
      action_types:
        approve_appeal: අභියාචනය අනුමත කරන්න
        approve_user: පරිශීලක අනුමත කරන්න
        assigned_to_self_report: වාර්තාව පැවරීම
        change_email_user: පරිශීලකයින්ට වි-තැපෑල වෙනස් කරන්න
        confirm_user: පරිශීලක තහවුරු කරන්න
        create_account_warning: අවවාදයක් සාදන්න
        create_announcement: නිවේදනය සාදන්න
        create_custom_emoji: අභිරුචි ඉමොජි සාදන්න
        create_domain_allow: වසම් ඉඩදීමක් සාදන්න
        create_domain_block: වසම් අවහිරයක් සාදන්න
        create_domain_allow: වසමකට ඉඩදීම සාදන්න
        create_email_domain_block: ඊමේල් ඩොමේන් බ්ලොක් එකක් සාදන්න
        create_ip_block: අ.ජා. කෙ. (IP) නීතියක් සාදන්න
        create_unavailable_domain: ලබා ගත නොහැකි වසම සාදන්න
        create_user_role: භූමිකාව සාදන්න
        demote_user: පරිශීලකයා පහත් කරන්න
        destroy_announcement: නිවේදනය මකන්න
        destroy_custom_emoji: අභිරුචි ඉමොජි මකන්න


@@ 175,26 171,24 @@ si:
        destroy_email_domain_block: ඊමේල් ඩොමේන් බ්ලොක් එක මකන්න
        destroy_instance: වසම පිරිසිදු කරන්න
        destroy_ip_block: IP රීතිය මකන්න
        destroy_status: පළ කිරීම මකන්න
        destroy_status: ලිපිය මකන්න
        destroy_unavailable_domain: ලබා ගත නොහැකි වසම මකන්න
        disable_2fa_user: 2FA අබල කරන්න
        disable_custom_emoji: අභිරුචි ඉමොජි අබල කරන්න
        disable_custom_emoji: අභිරුචි ඉමෝජි අබල කරන්න
        disable_sign_in_token_auth_user: පරිශීලකයා සඳහා ඊමේල් ටෝකන් සත්‍යාපනය අක්‍රීය කරන්න
        disable_user: පරිශීලනය කරන්න
        enable_custom_emoji: අභිරුචි ඉමොජි සබල කරන්න
        enable_custom_emoji: අභිරුචි ඉමෝජි සබල කරන්න
        enable_sign_in_token_auth_user: පරිශීලකයා සඳහා විද්‍යුත් තැපෑල ටෝකන් සත්‍යාපනය සක්‍රීය කරන්න
        enable_user: පරිශීලක සබල කරන්න
        memorialize_account: ගිණුම අනුස්මරණ කරන්න
        promote_user: පරිශීලක ප්රවර්ධනය කරන්න
        reject_appeal: අභියාචනය ප්‍රතික්ෂේප කරන්න
        reject_user: පරිශීලක ප්‍රතික්ෂේප කරන්න
        remove_avatar_user: Avatar ඉවත් කරන්න
        reopen_report: වාර්තාව නැවත විවෘත කරන්න
        reset_password_user: මුරපදය නැවතසකසන්න
        remove_avatar_user: ප්‍රතිරූපය ඉවත් කරන්න
        reopen_report: වාර්තාව නැවත අරින්න
        reset_password_user: මුරපදය යළි සකසන්න
        resolve_report: වාර්තාව විසඳන්න
        sensitive_account: බල සංවේදී ගිණුම
        silence_account: ගිණුම සීමා කරන්න
        suspend_account: සැලකිය යුතු
        suspend_account: ගිණුම අත්හිටුවන්න
        unassigned_report: වාර්තාව පැවරීම ඉවත් කරන්න
        unblock_email_account: ඊමේල් ලිපිනය අවහිර කිරීම ඉවත් කරන්න
        unsensitive_account: බල සංවේදී ගිණුම අහෝසි කරන්න


@@ 203,9 197,8 @@ si:
        update_announcement: නිවේදනය යාවත්කාල කරන්න
        update_custom_emoji: අභිරුචි ඉමොජි යාවත්කාලීන කරන්න
        update_domain_block: ඩොමේන් බ්ලොක් යාවත්කාලීන කරන්න
        update_status: පළ කිරීම යාවත්කාලීන කරන්න
        update_status: ලිපිය යාවත්කාල කරන්න
      actions:
        approve_appeal_html: "%{name} අනුමත මධ්‍යස්ථ තීරණ අභියාචනය %{target}සිට"
        approve_user_html: "%{name} අනුමත ලියාපදිංචිය %{target}සිට"
        assigned_to_self_report_html: "%{name} වාර්තාව %{target} තමන්ටම පවරා ඇත"
        change_email_user_html: "%{name} පරිශීලක %{target}ගේ ඊමේල් ලිපිනය වෙනස් කළේය"


@@ 225,7 218,6 @@ si:
        destroy_email_domain_block_html: "%{name} අවහිර නොකළ විද්‍යුත් තැපැල් වසම %{target}"
        destroy_instance_html: "%{name} පිරිසිදු කරන ලද වසම %{target}"
        destroy_ip_block_html: IP %{target}සඳහා %{name} මකා දැමූ රීතිය
        destroy_status_html: "%{name} පෝස්ට් %{target}විසින් ඉවත් කරන ලදී"
        destroy_unavailable_domain_html: "%{name} වසම %{target}වෙත බෙදා හැරීම නැවත ආරම්භ විය"
        disable_2fa_user_html: "%{name} පරිශීලක %{target}සඳහා සාධක දෙකක අවශ්‍යතාවය අක්‍රීය කර ඇත"
        disable_custom_emoji_html: "%{name} ආබාධිත ඉමොජි %{target}"


@@ 236,27 228,25 @@ si:
        enable_user_html: පරිශීලක %{target}සඳහා %{name} සක්‍රීය පුරනය වීම
        memorialize_account_html: "%{name} %{target}ගේ ගිණුම සිහිවටන පිටුවක් බවට පත් කළේය"
        promote_user_html: "%{name} උසස් පරිශීලක %{target}"
        reject_appeal_html: "%{name} %{target}සිට මධ්‍යස්ථ තීරණ අභියාචනය ප්‍රතික්ෂේප කරන ලදී"
        reject_user_html: "%{name} %{target}සිට ලියාපදිංචි වීම ප්‍රතික්ෂේප විය"
        remove_avatar_user_html: "%{name} %{target}ගේ අවතාරය ඉවත් කරන ලදී"
        reopen_report_html: "%{name} නැවත විවෘත කළ වාර්තාව %{target}"
        reset_password_user_html: "%{name} පරිශීලක %{target}හි මුරපදය යළි පිහිටුවන්න"
        resolve_report_html: "%{name} විසඳන ලද වාර්තාව %{target}"
        sensitive_account_html: "%{name} %{target}හි මාධ්‍ය සංවේදී ලෙස සලකුණු කර ඇත"
        sensitive_account_html: "%{target}ගේ මාධ්‍ය සංවේදී බව %{name} සලකුණු කර ඇත"
        silence_account_html: "%{name} සීමිත %{target}ගිණුමක්"
        suspend_account_html: "%{name} %{target}ගේ ගිණුම අත්හිටුවා ඇත"
        unassigned_report_html: "%{name} පවරා නොදුන් වාර්තාව %{target}"
        unblock_email_account_html: "%{name} %{target}ගේ ඊමේල් ලිපිනය අවහිර කිරීම ඉවත් කරන ලදී"
        unsensitive_account_html: "%{name} සලකුණු නොකළ %{target}ගේ මාධ්‍ය සංවේදී ලෙස"
        unsensitive_account_html: "%{target}ගේ මාධ්‍ය සංවේදී බව %{name} ඉවත් කර ඇත"
        unsilence_account_html: "%{target}ගිණුමේ %{name} undid සීමාව"
        unsuspend_account_html: "%{name} අත්හිටුවන ලද %{target}ගිණුම"
        update_announcement_html: "%{name} යාවත්කාලීන නිවේදනය %{target}"
        update_custom_emoji_html: "%{name} යාවත්කාලීන කළ ඉමොජි %{target}"
        update_domain_block_html: "%{target}සඳහා %{name} යාවත්කාලීන කරන ලද වසම් වාරණ"
        update_status_html: "%{name} %{target}යාවත්කාලීන කරන ලද පළ කිරීම"
      empty: ලඝු-සටහන් හමු නොවිණි.
      filter_by_action: ක්‍රියාව අනුව පෙරන්න
      filter_by_user: පරිශීලක අනුව පෙරන්න
      filter_by_action: ක්‍රියාමාර්ගය අනුව පෙරන්න
      filter_by_user: පරිශ්‍රීලකයා අනුව පෙරන්න
      title: විගණන සටහන
    announcements:
      destroyed_msg: නිවේදනය සාර්ථකව මකා ඇත!


@@ 279,22 269,22 @@ si:
      assign_category: කාණ්ඩය පැවරීම
      by_domain: වසම
      copied_msg: ඉමොජි වල දේශීය පිටපත සාර්ථකව සාදන ලදී
      copy: පිටපත්
      copy: පිටපතක්
      copy_failed_msg: එම ඉමොජියේ දේශීය පිටපතක් සෑදීමට නොහැකි විය
      create_new_category: නව ප්‍රවර්ගයක් සාදන්න
      created_msg: ඉමොජි සාර්ථකව නිර්මාණය කළා!
      delete: මකන්න
      destroyed_msg: Emojo සාර්ථකව විනාශ විය!
      disable: අබල කරන්න
      disabled: අබල කර ඇත
      disabled: අබලයි
      disabled_msg: එම ඉමොජිය සාර්ථකව අබල කරන ලදී
      emoji: ඉමොජි
      emoji: ඉමෝජි
      enable: සබල කරන්න
      enabled: සබල කර ඇත
      enabled: සබලයි
      enabled_msg: එම ඉමොජි සාර්ථකව සබල කරන ලදී
      image_hint: PNG හෝ GIF %{size}දක්වා
      list: ලැයිස්තුව
      listed: ලැයිස්තුගත කර ඇත
      listed: ලැයිස්තුගත
      new:
        title: නව අභිරුචි ඉමොජි එක් කරන්න
      not_permitted: මෙම ක්‍රියාව සිදු කිරීමට ඔබට අවසර නැත


@@ 311,9 301,9 @@ si:
    dashboard:
      active_users: ක්රියාකාරී පරිශීලකයන්
      interactions: අන්තර්ක්රියා
      media_storage: මාධ්ය ගබඩාව
      new_users: නව පරිශීලකයන්
      opened_reports: වාර්තා විවෘත විය
      media_storage: මාධ්‍ය ආචයනය
      new_users: නව පරිශ්‍රීලකයින්
      opened_reports: විවෘත වාර්තා
      pending_appeals_html:
        one: "<strong>%{count}</strong> අභියාචනයක් බලාපොරොත්තු වේ"
        other: "<strong>%{count}</strong> අභියාචනා පොරොත්තු"


@@ 329,11 319,11 @@ si:
      resolved_reports: වාර්තා විසඳා ඇත
      software: මෘදුකාංගය
      sources: ලියාපදිංචි මූලාශ්‍ර
      space: අවකාශය භාවිතය
      space: ඉඩ භාවිතය
      title: උපකරණ පුවරුව
      top_languages: ඉහළම ක්රියාකාරී භාෂා
      top_servers: ඉහළම ක්රියාකාරී සේවාදායකයන්
      website: වෙබ් අඩවිය
      website: අඩවිය
    disputes:
      appeals:
        empty: අභියාචනා හමු නොවීය.


@@ 353,7 343,6 @@ si:
      existing_domain_block_html: ඔබ දැනටමත් %{name}මත දැඩි සීමාවන් පනවා ඇත, ඔබට <a href="%{unblock_url}">එය අවහිර කිරීම ඉවත් කිරීමට අවශ්‍යයි</a>.
      new:
        create: බ්ලොක් එකක් සාදන්න
        hint: ඩොමේන් බ්ලොක් එක දත්ත සමුදාය තුල ගිණුම් ඇතුලත් කිරීම් නිර්මාණය වීම වලක්වන්නේ නැත, නමුත් එම ගිණුම් වලට ප්‍රතික්‍රියාශීලීව සහ ස්වයංක්‍රීයව විශේෂිත මධ්‍යස්ථ ක්‍රම යොදනු ඇත.
        severity:
          noop: කිසිවක් නැත
          suspend: අත්හිටුවන්න


@@ 361,7 350,6 @@ si:
      obfuscate: අපැහැදිලි වසම් නාමය
      obfuscate_hint: වසම් සීමාවන් ලැයිස්තුව ප්‍රචාරණය කිරීම සබල කර ඇත්නම් ලැයිස්තුවේ වසම් නාමය අර්ධ වශයෙන් අපැහැදිලි කරන්න
      private_comment: පුද්ගලික අදහස
      private_comment_hint: පරිපාලකයින් විසින් අභ්‍යන්තර භාවිතය සඳහා මෙම වසම් සීමාව ගැන අදහස් දක්වන්න.
      public_comment: ප්‍රසිද්ධ අදහස
      public_comment_hint: වසම් සීමාවන් ලැයිස්තුව ප්‍රචාරණය කිරීම සබල කර ඇත්නම්, සාමාන්‍ය ජනතාව සඳහා මෙම වසම් සීමාව ගැන අදහස් දක්වන්න.
      reject_media: මාධ්‍ය ගොනු ප්‍රතික්ෂේප කරන්න


@@ 415,16 403,16 @@ si:
      by_domain: වසම
      confirm_purge: ඔබට මෙම වසමෙන් දත්ත ස්ථිරවම මැකීමට අවශ්‍ය බව විශ්වාසද?
      content_policies:
        comment: අභ්යන්තර සටහන
        comment: අභ්‍යන්තර සටහන
        description_html: ඔබට මෙම වසම සහ එහි ඕනෑම උප වසමකින් සියලුම ගිණුම් වලට අදාළ වන අන්තර්ගත ප්‍රතිපත්ති නිර්වචනය කළ හැක.
        policies:
          reject_media: මාධ්‍ය ප්‍රතික්ෂේප කරන්න
          reject_reports: වාර්තා ප්‍රතික්ෂේප කරන්න
          silence: සීමාව
          suspend: අත්හිටුවන්න
        policy: ප්රතිපත්ති
        policy: ප්‍රතිපත්තිය
        reason: පොදු හේතුව
        title: අන්තර්ගත ප්රතිපත්ති
        title: අන්තර්ගත ප්‍රතිපත්ති
      dashboard:
        instance_accounts_dimension: වැඩිපුරම අනුගමනය කරන ගිණුම්
        instance_accounts_measure: ගබඩා කර ඇති ගිණුම්


@@ 443,7 431,7 @@ si:
        unavailable: ලබා ගත නොහැක
      delivery_available: බෙදා හැරීම ලබා ගත හැකිය
      delivery_error_days: බෙදා හැරීමේ දෝෂ සහිත දින
      delivery_error_hint: දින %{count} ක් සඳහා බෙදා හැරීම කළ නොහැකි නම්, එය ස්වයංක්‍රීයව බෙදා හැරිය නොහැකි ලෙස ලකුණු කරනු ලැබේ.
      delivery_error_hint: දවස් %{count} කින් බාරදීමට නොහැකි වුවහොත්, බාරදීමට නොහැකි බව ස්වයංක්‍රීයව සලකුණු වේ.
      destroyed_msg: "%{domain} සිට දත්ත දැන් ආසන්න මකාදැමීම සඳහා පෝලිම් කර ඇත."
      empty: වසම් කිසිවක් හමු නොවීය.
      known_accounts:


@@ 452,7 440,7 @@ si:
      moderation:
        all: සියල්ල
        limited: සීමා සහිතයි
        title: මධ්යස්ථභාවය
        title: මැදිහත්කරණය
      private_comment: පුද්ගලික අදහස
      public_comment: ප්‍රසිද්ධ අදහස
      purge: පිරිසිදු කරන්න


@@ 462,13 450,12 @@ si:
      total_followed_by_them: ඔවුන් විසින් අනුගමනය කරන ලදී
      total_followed_by_us: අප විසින් අනුගමනය කරන ලදී
      total_reported: ඔවුන් ගැන වාර්තා
      total_storage: මාධ්ය ඇමුණුම්
      total_storage: මාධ්‍ය ඇමුණුම්
      totals_time_period_hint_html: පහත දැක්වෙන එකතුවෙහි සියලු කාලය සඳහා දත්ත ඇතුළත් වේ.
    invites:
      deactivate_all: සියල්ල අක්‍රිය කරන්න
      filter:
        all: සියල්ල
        available: පවතින
        expired: ඉකුත් වී ඇත
        title: පෙරහන
      title: ඇරයුම්


@@ 492,15 479,13 @@ si:
    relays:
      add_new: නව රිලේ එක් කරන්න
      delete: මකන්න
      description_html: "<strong>ෆෙඩරේෂන් රිලේ</strong> යනු එයට දායක වී ප්‍රකාශයට පත් කරන සේවාදායකයන් අතර විශාල ප්‍රසිද්ධ පළ කිරීම් හුවමාරු කරන අතරමැදි සේවාදායකයකි. <strong>එය කුඩා සහ මධ්‍යම සේවාදායකයන්ට fediverse</strong>වෙතින් අන්තර්ගතය සොයා ගැනීමට උදවු කළ හැකි අතර, එසේ නොමැති නම් දේශීය පරිශීලකයින්ට දුරස්ථ සේවාදායකයන් මත වෙනත් පුද්ගලයින් හස්තීයව අනුගමනය කිරීම අවශ්‍ය වේ."
      disable: අබල කරන්න
      disabled: අබල කර ඇත
      disabled: අබලයි
      enable: සබල කරන්න
      enable_hint: සක්‍රිය කළ පසු, ඔබේ සේවාදායකය මෙම රිලේ වෙතින් සියලුම පොදු පළ කිරීම් සඳහා දායක වන අතර, මෙම සේවාදායකයේ පොදු පළ කිරීම් එයට යැවීම ආරම්භ කරනු ඇත.
      enabled: සබල කර ඇත
      inbox_url: රිලේ URL
      pending: රිලේ අනුමැතිය සඳහා රැඳී සිටිමින්
      save_and_enable: සුරකින්න සහ සක්රිය කරන්න
      save_and_enable: සුරකින්න හා සබල කරන්න
      setup: රිලේ සම්බන්ධතාවයක් සකසන්න
      signatures_not_enabled: ආරක්ෂිත මාදිලිය හෝ සීමිත ෆෙඩරේෂන් මාදිලිය සබල කර ඇති අතර රිලේ නිවැරදිව ක්‍රියා නොකරනු ඇත
      status: තත්වය


@@ 516,40 501,37 @@ si:
      action_log: විගණන සටහන
      action_taken_by: විසින් ගන්නා ලද පියවර
      actions:
        delete_description_html: වාර්තා කරන ලද පළ කිරීම් මකා දැමෙනු ඇති අතර එම ගිණුමේම අනාගත උල්ලංඝනයන් තීව්‍ර කිරීමට ඔබට උදවු කිරීමට වර්ජනයක් වාර්තා කරනු ඇත.
        mark_as_sensitive_description_html: වාර්තා කරන ලද පළ කිරීම් වල මාධ්‍ය සංවේදී ලෙස සලකුණු කරනු ලබන අතර එම ගිණුම මගින් අනාගත උල්ලංඝනයන් උත්සන්න කිරීමට ඔබට උපකාර කිරීමට වර්ජනයක් වාර්තා කරනු ඇත.
        other_description_html: ගිණුමේ හැසිරීම පාලනය කිරීම සහ වාර්තා කළ ගිණුමට සන්නිවේදනය අභිරුචිකරණය කිරීම සඳහා තවත් විකල්ප බලන්න.
        resolve_description_html: වාර්තා කරන ලද ගිණුමට එරෙහිව කිසිදු ක්‍රියාමාර්ගයක් නොගනු ඇත, වැඩ වර්ජනයක් වාර්තා නොකෙරේ, වාර්තාව වසා දමනු ඇත.
      actions_description_html: මෙම වාර්තාව විසඳීමට ගත යුතු ක්‍රියාමාර්ගය තීරණය කරන්න. ඔබ වාර්තා කරන ලද ගිණුමට එරෙහිව දණ්ඩනීය ක්‍රියාමාර්ගයක් ගන්නේ නම්, <strong>Spam</strong> කාණ්ඩය තෝරාගත් විට හැර, ඔවුන්ට විද්‍යුත් තැපෑලෙන් දැනුම්දීමක් යවනු ලැබේ.
      add_to_report: වාර්තා කිරීමට තවත් එක් කරන්න
      are_you_sure: ඔබට විශ්වාසද?
      assign_to_self: මට පවරන්න
      assigned: පවරා ඇති උපපරිපාලක
      by_target_domain: වාර්තා කළ ගිණුමෙහි වසම
      category: වර්ගය
      cancel: අවලංගු
      category: ප්‍රවර්ගය
      category_description_html: මෙම ගිණුම සහ/හෝ අන්තර්ගතය වාර්තා කළ හේතුව වාර්තා කළ ගිණුම සමඟ සන්නිවේදනයේ සඳහන් කරනු ඇත
      comment:
        none: කිසිවක් නැත
      comment_description_html: 'වැඩි විස්තර සැපයීම සඳහා, %{name} ලිවීය:'
      created_at: වාර්තා කර ඇත
      delete_and_resolve: පළ කිරීම් මකන්න
      forwarded: යොමු කළා
      forwarded_to: "%{domain}වෙත යොමු කරන ලදී"
      mark_as_resolved: විසඳා ඇති ලෙස ලකුණු කරන්න
      mark_as_sensitive: සංවේදී ලෙස ලකුණු කරන්න
      mark_as_unresolved: නොවිසඳුනු ලෙස ලකුණු කරන්න
      no_one_assigned: කිසි කෙනෙක නැහැ
      delete_and_resolve: ලිපි මකන්න
      forwarded: හරවා යවා ඇත
      forwarded_to: "%{domain} වෙත හරවා යැවිණි"
      mark_as_resolved: විසඳූ බව යොදන්න
      mark_as_sensitive: සංවේදී බව යොදන්න
      mark_as_unresolved: නොවිසඳූ බව යොදන්න
      no_one_assigned: කිසිවෙක් නැත
      notes:
        create: සටහන එකතු කරන්න
        create_and_resolve: සටහන සමඟ විසඳන්න
        create_and_unresolve: සටහනක් සමඟ නැවත විවෘත කරන්න
        create_and_resolve: සටහනක් සමඟ විසඳන්න
        create_and_unresolve: සටහනක් සමඟ නැවත අරින්න
        delete: මකන්න
        placeholder: ගෙන ඇති ක්‍රියාමාර්ග, හෝ වෙනත් අදාළ යාවත්කාලීන විස්තර කරන්න...
        title: සටහන්
      notes_description_html: අනෙකුත් උපපරිපාලකයින්ට සහ ඔබේ අනාගතයට සටහන් බලන්න සහ තබන්න
      quick_actions_description_html: 'වාර්තා කළ අන්තර්ගතය බැලීමට ඉක්මන් ක්‍රියාමාර්ගයක් ගන්න හෝ පහළට අනුචලනය කරන්න:'
      remote_user_placeholder: "%{instance}සිට දුරස්ථ පරිශීලකයා"
      reopen: වාර්තාව නැවත විවෘත කරන්න
      reopen: වාර්තාව නැවත අරින්න
      report: "@%{id} වාර්තා කරන්න"
      reported_account: වාර්තා කළ ගිණුම
      reported_by: විසින් වාර්තා


@@ 562,17 544,52 @@ si:
      target_origin: වාර්තා කළ ගිණුමේ ආරම්භය
      title: වාර්තා
      unassign: පැවරීම ඉවත් කරන්න
      unknown_action_msg: 'නොදන්නා ක්‍රියාමාර්ගයකි: %{action}'
      unresolved: නොවිසඳී ඇත
      updated_at: යාවත්කාලීන කරන ලදී
      view_profile: පැතිකඩ බලන්න
    roles:
      categories:
        administration: පරිපාලනය
        devops: DevOps
        invites: ඇරයුම්
        moderation: මැදිහත්කරණය
        special: විශේෂ
      delete: මකන්න
      permissions_count:
        one: අවසර %{count}
        other: අවසර %{count}
      privileges:
        administrator: පරිපාලක
        delete_user_data: පරිශ්‍රීලක දත්ත මකන්න
        invite_users: ආරාධනා කරන්න
        manage_announcements: නිවේදනය කළමනාකරණය
        manage_federation: ඒකාබද්ධ කළමනාකරණය
        manage_invites: ආරාධනා කළමනාකරණය
        manage_reports: වාර්තා කළමනාකරණය
        manage_roles: භූමිකා කළමනාකරණය
        manage_rules: නීති කළමනාකරණය
        manage_settings: සැකසුම් කළමනාකරණය
        manage_user_access: ප්‍රවේශය කළමනාකරණය
        manage_users: පරිශ්‍රීලකයින් කළමනාකරණය
        view_dashboard: උපකරණ පුවරුව බලන්න
        view_devops: DevOps
      title: භූමිකා
    rules:
      add_new: නීතිය එකතු කරන්න
      delete: මකන්න
      description_html: බොහෝ දෙනා සේවා කොන්දේසි කියවා එකඟ වූ බව ප්‍රකාශ කරන අතර, සාමාන්‍යයෙන් මිනිසුන් ගැටලුවක් පැනනඟින තුරු කියවා නොගනිති. <strong>පැතලි බුලට් පොයින්ට් ලිස්ට් එකකින් ඒවා ලබා දීමෙන් බැලූ බැල්මට ඔබේ සේවාදායකයේ නීති බැලීම පහසු කරන්න.</strong> තනි නීති කෙටි හා සරලව තබා ගැනීමට උත්සාහ කරන්න, නමුත් ඒවා විවිධ අයිතම වලට බෙදීමට උත්සාහ නොකරන්න.
      edit: නීතිය සංස්කරණය කරන්න
      edit: නීතිය සංස්කරණය
      empty: තවමත් සේවාදායක රීති නිර්වචනය කර නොමැත.
      title: සේවාදායකයේ නීති
    settings:
      about:
        manage_rules: සේවාදායකයේ නීති කළමනාකරණය
        title: පිළිබඳව
      appearance:
        title: පෙනුම
      discovery:
        profile_directory: පැතිකඩ නාමාවලිය
        public_timelines: ප්‍රසිද්ධ කාලරේඛා
      domain_blocks:
        all: හැමෝටම
        disabled: කාටවත් නෑ


@@ 582,28 599,45 @@ si:
          approved: ලියාපදිංචි වීමට අනුමැතිය අවශ්‍යයි
          none: කිසිවෙකුට ලියාපදිංචි විය නොහැක
          open: ඕනෑම කෙනෙකුට ලියාපදිංචි විය හැක
      title: සේවාදායකයේ සැකසුම්
    site_uploads:
      delete: උඩුගත කළ ගොනුව මකන්න
      destroyed_msg: අඩවිය උඩුගත කිරීම සාර්ථකව මකා ඇත!
    software_updates:
      documentation_link: තව දැනගන්න
      release_notes: නිකුතු සටහන්
      title: තිබෙන යාවත්කාල
      type: වර්ගය
      version: අනුවාදය
    statuses:
      back_to_account: ගිණුම් පිටුවට ආපසු යන්න
      back_to_report: වාර්තා පිටුවට ආපසු යන්න
      account: කර්තෘ
      application: යෙදුම
      back_to_account: ගිණුමේ පිටුවට ආපසු
      back_to_report: වාර්තා පිටුවට ආපසු
      batch:
        remove_from_report: වාර්තාවෙන් ඉවත් කරන්න
        report: වාර්තාව
      deleted: මකා දමන ලදී
      deleted: මකා ඇත
      favourites: ප්‍රියතමයන්
      history: අනුවාද ඉතිහාසය
      language: භාෂාව
      media:
        title: මාධ්‍යය
      no_status_selected: කිසිවක් තෝරා නොගත් බැවින් තනතුරු කිසිවක් වෙනස් කර නැත
      title: ගිණුම් තනතුරු
      with_media: මාධ්‍ය දායකත්වය
      metadata: පාරදත්ත
      no_status_selected: කිසිවක් නොතේරූ බැවින් ලිපි කිසිවක් වෙනස් කර නැත
      open: ලිපිය අරින්න
      original_status: මුල් ලිපිය
      status_changed: ලිපිය සංශෝධිතයි
      title: ගිණුමේ ලිපි
      trending: නැගී එන
      with_media: මාධ්‍ය සමඟ
    strikes:
      actions:
        delete_statuses: "%{target}ගේ පළ කිරීම් %{name} මකා දමන ලදී"
        delete_statuses: "%{target}ගේ ලිපි %{name} මකා ඇත"
        disable: "%{name} %{target}ගේ ගිණුම නිශ්චල කළේය"
        mark_statuses_as_sensitive: "%{name} %{target}ගේ පළ කිරීම් සංවේදී ලෙස ලකුණු කර ඇත"
        mark_statuses_as_sensitive: "%{target}ගේ ලිපි සංවේදී බව %{name} සලකුණු කර ඇත"
        none: "%{name} %{target}අනතුරු ඇඟවීමක් යවා ඇත"
        sensitive: "%{name} %{target}ගේ ගිණුම සංවේදී ලෙස ලකුණු කර ඇත"
        sensitive: "%{target}ගේ ගිණුම සංවේදී බව %{name} සලකුණු කර ඇත"
        silence: "%{name} සීමිත %{target}ගිණුමක්"
        suspend: "%{name} %{target}ගේ ගිණුම අත්හිටුවා ඇත"
      appeal_approved: අභියාචනා කළා


@@ 611,28 645,35 @@ si:
    system_checks:
      database_schema_check:
        message_html: පොරොත්තු දත්ත සමුදා සංක්‍රමණයන් ඇත. යෙදුම අපේක්ෂිත පරිදි ක්‍රියා කරන බව සහතික කිරීමට කරුණාකර ඒවා ධාවනය කරන්න
      elasticsearch_preset:
        action: ප්‍රලේඛනය බලන්න
      elasticsearch_preset_single_node:
        action: ප්‍රලේඛනය බලන්න
      elasticsearch_running_check:
        message_html: Elasticsearch වෙත සම්බන්ධ වීමට නොහැකි විය. කරුණාකර එය ක්‍රියාත්මක වන බව පරීක්ෂා කරන්න, නැතහොත් සම්පූර්ණ පෙළ සෙවීම අක්‍රීය කරන්න
      elasticsearch_version_check:
        message_html: 'නොගැලපෙන ඉලාස්ටික් සෙවුම් අනුවාදය: %{value}'
        version_comparison: Elasticsearch %{running_version} ක්‍රියාත්මක වන අතර %{required_version} අවශ්‍ය වේ
      rules_check:
        action: සේවාදායක නීති කළමනාකරණය කරන්න
        action: සේවාදායකයේ නීති කළමනාකරණය
        message_html: ඔබ සේවාදායක රීති කිසිවක් නිර්වචනය කර නැත.
      sidekiq_process_check:
        message_html: "%{value} පෝලිම්(ය) සඳහා Sidekiq ක්‍රියාවලියක් ක්‍රියාත්මක නොවේ. කරුණාකර ඔබේ Sidekiq වින්‍යාසය සමාලෝචනය කරන්න"
      software_version_critical_check:
        action: තිබෙන යාවත්කාල බලන්න
      software_version_patch_check:
        action: තිබෙන යාවත්කාල බලන්න
    tags:
      review: තත්‍වය සමාලෝචනය
      updated_msg: Hashtag සැකසුම් සාර්ථකව යාවත්කාලීන කරන ලදී
    title: පරිපාලනය
    trends:
      allow: ඉඩ දෙන්න
      approved: අනුමත කළා
      allow: ඉඩදෙන්න
      approved: අනුමතයි
      disallow: අවසර නොදෙන්න
      links:
        allow: සබැඳියට ඉඩ දෙන්න
        allow: සබැඳියට ඉඩදෙන්න
        allow_provider: ප්‍රකාශකයාට ඉඩ දෙන්න
        description_html: මේවා ඔබගේ සේවාදායකය විසින් පළ කිරීම් දකින ගිණුම් මගින් දැනට බොහෝ සෙයින් බෙදා ගන්නා සබැඳි වේ. එය ඔබගේ පරිශීලකයින්ට ලෝකයේ සිදුවෙමින් පවතින දේ සොයා ගැනීමට උදවු කළ හැක. ඔබ ප්‍රකාශකයා අනුමත කරන තුරු සබැඳි කිසිවක් ප්‍රසිද්ධියේ ප්‍රදර්ශනය නොවේ. ඔබට තනි සබැඳිවලට ඉඩ දීමට හෝ ප්‍රතික්ෂේප කිරීමටද හැකිය.
        disallow: සබැඳියට ඉඩ නොදෙන්න
        disallow_provider: ප්‍රකාශකයාට ඉඩ නොදෙන්න
        shared_by_over_week:


@@ 640,7 681,6 @@ si:
          other: පසුගිය සතිය පුරා පුද්ගලයින් %{count} දෙනෙකු විසින් බෙදා ගන්නා ලදී
        title: නැඟී එන සබැඳි
        usage_comparison: ඊයේ %{yesterday} හා සසඳන විට අද %{today} වරක් බෙදා ගන්නා ලදී
      only_allowed: අවසර දී ඇත
      pending_review: පොරොත්තු සමාලෝචනය
      preview_card_providers:
        allowed: මෙම ප්‍රකාශකයාගේ සබැඳි නැඹුරු විය හැක


@@ 649,16 689,15 @@ si:
        title: ප්‍රකාශකයන්
      rejected: ප්‍රතික්ෂේප කළා
      statuses:
        allow: පළ කිරීමට ඉඩ දෙන්න
        allow: පළ කිරීමට ඉඩදෙන්න
        allow_account: කතුවරයාට ඉඩ දෙන්න
        description_html: මේ වන විට ඔබේ සේවාදායකය දන්නා පෝස්ට් මේ වන විට බොහෝ බෙදාහරින සහ මේ මොහොතේ වැඩි කැමැත්තක් දක්වයි. එය ඔබගේ නව සහ නැවත පැමිණෙන පරිශීලකයින්ට අනුගමනය කිරීමට තවත් පුද්ගලයින් සොයා ගැනීමට උදවු කළ හැක. ඔබ කර්තෘ අනුමත කරන තෙක් පළ කිරීම් කිසිවක් ප්‍රසිද්ධියේ නොපෙන්වන අතර, කර්තෘ තම ගිණුම අන් අයට යෝජනා කිරීමට ඉඩ දෙයි. ඔබට තනි පළ කිරීම්වලට ඉඩ දීමට හෝ ප්‍රතික්ෂේප කිරීමටද හැකිය.
        disallow: පළ කිරීමට ඉඩ නොදෙන්න
        disallow: ප්‍රකාශනයට ඉඩ නොදෙන්න
        disallow_account: කතුවරයාට ඉඩ නොදෙන්න
        not_discoverable: කර්තෘ සොයා ගත හැකි බව තෝරාගෙන නැත
        shared_by:
          one: එක් වරක් බෙදාගත් හෝ ප්‍රිය කරන ලදී
          other: "%{friendly_count} වරක් බෙදාගෙන ප්‍රිය කරන ලදී"
        title: ප්‍රවණතා පළ කිරීම්
        title: නැගී එන ලිපි
      tags:
        current_score: වත්මන් ලකුණු %{score}
        dashboard:


@@ 667,9 706,8 @@ si:
          tag_servers_dimension: ඉහළම සේවාදායකයන්
          tag_servers_measure: විවිධ සේවාදායකයන්
          tag_uses_measure: සම්පූර්ණ භාවිතය
        description_html: මේවා දැනට ඔබගේ සේවාදායකය දකින බොහෝ පළ කිරීම් වල දිස්වන හැෂ් ටැග් වේ. මේ මොහොතේ මිනිසුන් වැඩිපුරම කතා කරන්නේ කුමක් දැයි සොයා ගැනීමට එය ඔබගේ පරිශීලකයින්ට උදවු කළ හැක. ඔබ ඒවා අනුමත කරන තුරු හෑෂ් ටැග් ප්‍රසිද්ධියේ නොපෙන්වයි.
        listable: යෝජනා කළ හැක
        not_listable: යෝජනා නොකරනු ඇත
        listable: යෝජනා කළ හැකිය
        not_listable: යෝජනා නොවනු ඇත
        not_trendable: ප්‍රවණතා යටතේ දිස් නොවනු ඇත
        not_usable: භාවිතා කළ නොහැක
        peaked_on_and_decaying: "%{date}හි උච්චතම, දැන් දිරාපත් වෙමින් පවතී"


@@ 692,16 730,15 @@ si:
    webhooks:
      add_new: අන්ත ලක්ෂ්‍යය එක් කරන්න
      delete: මකන්න
      description_html: A <strong>webhook</strong> Mastodon හට තෝරාගත් සිදුවීම් පිළිබඳ තත්‍ය කාලීන දැනුම්දීම් <strong>ක්</strong> ඔබේම යෙදුමට තල්ලු කිරීමට හැකියාව ලබා දෙයි, එම නිසා ඔබේ යෙදුමට <strong>ස්වයංක්‍රීයව ප්‍රතික්‍රියා අවුලුවාලීමට හැකිය</strong>.
      disable: අක්රිය කරන්න
      disabled: ආබාධිතයි
      disable: අබල කරන්න
      disabled: අබලයි
      edit: අන්ත ලක්ෂ්‍යය සංස්කරණය කරන්න
      empty: ඔබට තවම වින්‍යාස කර ඇති කිසිදු webhook අන්ත ලක්ෂ්‍යයක් නොමැත.
      enable: සබල කරන්න
      enabled: ක්රියාකාරී
      enabled: ක්‍රියාත්මකයි
      enabled_events:
        one: 1 සබල කළ සිදුවීමක්
        other: "%{count} සබල කළ සිදුවීම්"
        one: සබල සිදුවීම් 1
        other: සබල සිදුවීම් %{count}
      events: සිදුවීම්
      new: නව webhook
      rotate_secret: රහස කරකවන්න


@@ 713,14 750,10 @@ si:
      actions:
        delete_statuses: ඔවුන්ගේ පළ කිරීම් මකා දැමීමට
        disable: ඔවුන්ගේ ගිණුම කැටි කිරීමට
        mark_statuses_as_sensitive: ඔවුන්ගේ තනතුරු සංවේදී ලෙස සලකුණු කිරීමට
        none: අනතුරු ඇඟවීමක්
        sensitive: ඔවුන්ගේ ගිණුම සංවේදී ලෙස සලකුණු කිරීමට
        silence: ඔවුන්ගේ ගිණුම සීමා කිරීමට
        suspend: ඔවුන්ගේ ගිණුම අත්හිටුවීමට
      body: "%{target} යනු %{type}ක් වූ %{date}සිට %{action_taken_by} කින් මධ්‍යස්ථ තීරණයක් අභියාචනා කරයි. ඔවුන් මෙසේ ලිවීය."
      next_steps: ඔබට මධ්‍යස්ථ තීරණය අවලංගු කිරීමට අභියාචනය අනුමත කළ හැකිය, නැතහොත් එය නොසලකා හරින්න.
      subject: "%{username} යනු %{instance}හි මධ්‍යස්ථ තීරණයකට අභියාචනා කරයි"
    new_pending_account:
      body: නව ගිණුමේ විස්තර පහතින්. ඔබට මෙම යෙදුම අනුමත කිරීමට හෝ ප්‍රතික්ෂේප කිරීමට හැකිය.
      subject: නව ගිණුම සමාලෝචනය සඳහා %{instance} (%{username})


@@ 733,7 766,7 @@ si:
      new_trending_links:
        title: නැඟී එන සබැඳි
      new_trending_statuses:
        title: ප්‍රවණතා පළ කිරීම්
        title: නැගී එන ලිපි
      new_trending_tags:
        no_approved_tags: දැනට අනුමත ප්‍රවණතා හැෂ් ටැග් නොමැත.
        requirements: 'මෙම ඕනෑම අපේක්ෂකයෙකුට #%{rank} අනුමත ප්‍රවණතා හැෂ් ටැගය අභිබවා යා හැකිය, එය දැනට ලකුණු %{lowest_tag_score}ක් සමඟ #%{lowest_tag_name} වේ.'


@@ 747,37 780,38 @@ si:
    hint_html: ඔබට වෙනත් ගිණුමකින් මෙය වෙත මාරු වීමට අවශ්‍ය නම්, මෙහිදී ඔබට අන්වර්ථ නාමයක් සෑදිය හැක, එය පැරණි ගිණුමෙන් අනුගාමිකයින් මෙම ගිණුමට ගෙන යාමට පෙර අවශ්‍ය වේ. මෙම ක්‍රියාවම <strong>හානිකර නොවන සහ ආපසු හැරවිය හැකි</strong>වේ. <strong>ගිණුම් සංක්‍රමණය පැරණි ගිණුමෙන් ආරම්භ වේ</strong>.
    remove: අන්වර්ථය විසන්ධි කරන්න
  appearance:
    advanced_web_interface: උසස් වියමන අතුරුමුහුණත
    advanced_web_interface: සංකීර්ණ අතුරු මුහුණත
    advanced_web_interface_hint: 'ඔබට ඔබේ සම්පූර්ණ තිරයේ පළල භාවිතා කිරීමට අවශ්‍ය නම්, උසස් වෙබ් අතුරු මුහුණත ඔබට අවශ්‍ය පරිදි එකම වේලාවක බොහෝ තොරතුරු බැලීමට විවිධ තීරු වින්‍යාස කිරීමට ඉඩ දෙයි: නිවස, දැනුම්දීම්, ෆෙඩරේටඩ් කාලරාමුව, ඕනෑම ලැයිස්තු සහ හැෂ් ටැග්.'
    animations_and_accessibility: සජීවිකරණ සහ ප්‍රවේශ්‍යතාව
    confirmation_dialogs: තහවුරු කිරීමේ සංවාද
    discovery: සොයාගැනීම
    localization:
      body: Mastodon ස්වේච්ඡා සේවකයන් විසින් පරිවර්තනය කර ඇත.
      body: මාස්ටඩන් ස්වේච්ඡාවෙන් පරිවර්තනය කර ඇත.
      guide_link: https://crowdin.com/project/mastodon
      guide_link_text: සෑම කෙනෙකුටම දායක විය හැකිය.
    sensitive_content: සංවේදී අන්තර්ගතය
    sensitive_content: සංවේදී අන්තර්ගත
  application_mailer:
    notification_preferences: ඊමේල් මනාප වෙනස් කරන්න
    salutation: "%{name},"
    settings: 'ඊමේල් මනාප වෙනස් කරන්න: %{link}'
    view: 'දැක්ම:'
    view_profile: පැතිකඩ බලන්න
    view_status: පළ කිරීම බලන්න
    view_status: ලිපිය බලන්න
  applications:
    created: යෙදුම සාර්ථකව නිර්මාණය කරන ලදී
    created: යෙදුම සාර්ථකව සෑදිණි
    destroyed: යෙදුම සාර්ථකව මකා ඇත
    logout: නික්මෙන්න
    regenerate_token: ප්‍රවේශ ටෝකනය නැවත උත්පාදනය කරන්න
    token_regenerated: ප්‍රවේශ ටෝකනය සාර්ථකව ප්‍රතිජනනය කරන ලදී
    warning: මෙම දත්ත සමඟ ඉතා ප්රවේශම් වන්න. එය කිසි විටෙක කිසිවෙකු සමඟ බෙදා නොගන්න!
    your_token: ඔබේ ප්‍රවේශ ටෝකනය
  auth:
    apply_for_account: ගිණුමක් ඉල්ලන්න
    delete_account: ගිණුම මකන්න
    delete_account_html: ඔබට ඔබගේ ගිණුම මකා දැමීමට අවශ්‍ය නම්, ඔබට <a href="%{path}">මෙතැනින් ඉදිරියට යා හැක</a>. තහවුරු කිරීම සඳහා ඔබෙන් අසනු ඇත.
    description:
      prefix_invited_by_user: "@%{name} ඔබට Mastodon හි මෙම සේවාදායකයට සම්බන්ධ වීමට ආරාධනා කරයි!"
      prefix_invited_by_user: "@%{name} මෙම මාස්ටඩන් සේවාදායකයට ආරාධනා කර ඇත!"
      prefix_sign_up: අදම මාස්ටඩන් හි ලියාපදිංචි වන්න!
      suffix: ගිණුමක් සමඟ, ඔබට ඕනෑම Mastodon සේවාදායකයකින් සහ තවත් බොහෝ දේ භාවිතා කරන්නන් සමඟ පුද්ගලයින් අනුගමනය කිරීමට, යාවත්කාලීන කිරීම් පළ කිරීමට සහ පණිවිඩ හුවමාරු කර ගැනීමට හැකි වනු ඇත!
    dont_have_your_security_key: ඔබගේ ආරක්ෂක යතුර නොමැතිද?
    forgot_password: මුරපදය අමතක වුනාද?
    invalid_reset_password_token: මුරපද යළි පිහිටුවීමේ ටෝකනය අවලංගු හෝ කල් ඉකුත් වී ඇත. කරුණාකර අලුත් එකක් ඉල්ලන්න.


@@ 788,12 822,25 @@ si:
    logout: නික්මෙන්න
    migrate_account: වෙනත් ගිණුමකට යන්න
    migrate_account_html: ඔබට මෙම ගිණුම වෙනත් එකකට හරවා යැවීමට අවශ්‍ය නම්, ඔබට එය <a href="%{path}">මෙහි වින්‍යාසගත කළ හැක</a>.
    or_log_in_with: හෝ සමඟින් පිවිසෙන්න
    progress:
      details: ඔබගේ විස්තර
      rules: නීති පිළිගන්න
    providers:
      cas: CAS
      saml: SAML
    register: ලියාපදිංචිය
    registration_closed: "%{instance} නව සාමාජිකයින් පිළිගන්නේ නැත"
    reset_password: මුරපදය නැවත සකසන්න
    security: ආරක්ෂාව
    reset_password: මුරපදය යළි සකසන්න
    rules:
      accept: පිළිගන්න
      back: ආපසු
      title_invited: ඔබට ආරාධනා කර ඇත.
    security: ආරක්‍ෂාව
    set_new_password: නව මුරපදය සකසන්න
    setup:
      title: ඔබගේ එනලිපි බලන්න
    sign_in:
      title: "%{domain} වෙත පිවිසෙන්න"
    status:
      account_status: ගිණුමේ තත්වය
      confirming: විද්‍යුත් තැපෑල තහවුරු කිරීම සම්පූර්ණ කිරීම සඳහා රැඳී සිටිමින්.


@@ 802,11 849,11 @@ si:
      redirecting_to: එය දැනට %{acct}වෙත හරවා යවන බැවින් ඔබගේ ගිණුම අක්‍රියයි.
      view_strikes: ඔබගේ ගිණුමට එරෙහිව පසුගිය වර්ජන බලන්න
    too_fast: පෝරමය ඉතා වේගයෙන් ඉදිරිපත් කර ඇත, නැවත උත්සාහ කරන්න.
    use_security_key: ආරක්ෂක යතුර භාවිතා කරන්න
    use_security_key: ආරක්‍ෂණ යතුර භාවිතා කරන්න
  challenge:
    confirm: ඉදිරියට
    hint_html: "<strong>ඉඟිය:</strong> අපි ඉදිරි පැය සඳහා නැවත ඔබගේ මුරපදය ඔබෙන් නොඉල්ලමු."
    invalid_password: නොවන මුරපදයකි
    invalid_password: මුරපදය වැරදිය
    prompt: ඉදිරියට යාමට මුරපදය තහවුරු කරන්න
  crypto:
    errors:


@@ 814,20 861,24 @@ si:
      invalid_signature: වලංගු Ed25519 අත්සනක් නොවේ
  date:
    formats:
      default: "%b %d, %Y"
      with_month_name: "%B %d, %Y"
      default: "%Y %b %d"
      with_month_name: "%Y %B %d"
  datetime:
    distance_in_words:
      about_x_hours: පැය %{count}
      about_x_months: මාස %{count}
      about_x_years: ව.%{count}
      almost_x_years: ව.%{count}
      half_a_minute: මේ දැන්
      less_than_x_minutes: මීටර් %{count}
      less_than_x_minutes: විනාඩි %{count}
      less_than_x_seconds: මේ දැන්
      x_minutes: මීටර් %{count}
      over_x_years: ව.%{count}
      x_days: ද.%{count}
      x_minutes: විනාඩි %{count}
      x_months: මාස %{count}
      x_seconds: "%{count}තත්"
      x_seconds: තත්. %{count}
  deletes:
    challenge_not_passed: ඔබ ඇතුළත් කළ තොරතුරු නිවැරදි නැත
    challenge_not_passed: ඔබ ඇතුල් කරන ලද තොරතුරු වැරදියි
    confirm_password: ඔබගේ අනන්‍යතාවය තහවුරු කිරීමට ඔබගේ වත්මන් මුරපදය ඇතුලත් කරන්න
    confirm_username: ක්රියා පටිපාටිය තහවුරු කිරීමට ඔබගේ පරිශීලක නාමය ඇතුලත් කරන්න
    proceed: ගිණුම මකන්න


@@ 835,7 886,7 @@ si:
    warning:
      before: 'ඉදිරියට යාමට පෙර, කරුණාකර මෙම සටහන් හොඳින් කියවන්න:'
      caches: වෙනත් සේවාදායකයන් විසින් හැඹිලිගත කර ඇති අන්තර්ගතය දිගටම පැවතිය හැක
      data_removal: ඔබගේ පළ කිරීම් සහ අනෙකුත් දත්ත ස්ථිරවම ඉවත් කරනු ලැබේ
      data_removal: ඔබගේ ලිපි සහ අනෙකුත් දත්ත සදහටම ඉවත් කෙරෙනු ඇත
      email_change_html: ඔබට ඔබගේ ගිණුම මකා</a> <a href="%{path}">කළ හැක
      email_contact_html: එය තවමත් නොපැමිණියේ නම්, ඔබට උදව් සඳහා <a href="mailto:%{email}">%{email}</a> විද්‍යුත් තැපෑලෙන් යැවිය හැක
      email_reconfirmation_html: ඔබට තහවුරු කිරීමේ විද්‍යුත් තැපෑල නොලැබුනේ නම්, ඔබට එය <a href="%{path}">නැවත ඉල්ලා සිටිය හැක</a>


@@ 859,13 910,12 @@ si:
      description_html: මේවා ඔබගේ ගිණුමට එරෙහිව ගන්නා ලද ක්‍රියා සහ %{instance}හි කාර්ය මණ්ඩලය විසින් ඔබට එවා ඇති අනතුරු ඇඟවීම් වේ.
      recipient: වෙත යොමු කරන ලදී
      reject_appeal: අභියාචනය ප්‍රතික්ෂේප කරන්න
      status: 'පළ කිරීම #%{id}'
      status_removed: පළ කිරීම දැනටමත් පද්ධතියෙන් ඉවත් කර ඇත
      status: "#%{id} ලිපිය"
      status_removed: ලිපිය දැනටමත් පද්ධතියෙන් ඉවත් කර ඇත
      title: "%{action} සිට %{date}"
      title_actions:
        delete_statuses: පසු ඉවත් කිරීම
        delete_statuses: ලිපි ඉවත් කිරීම
        disable: ගිණුම කැටි කිරීම
        mark_statuses_as_sensitive: තනතුරු සංවේදී ලෙස සලකුණු කිරීම
        none: අවවාදයයි
        sensitive: ගිණුම සංවේදී ලෙස සලකුණු කිරීම
        silence: ගිණුම සීමා කිරීම


@@ 875,6 925,9 @@ si:
      your_appeal_rejected: ඔබගේ අභියාචනය ප්‍රතික්ෂේප කර ඇත
  domain_validator:
    invalid_domain: වලංගු ඩොමේන් නාමයක් නොවේ
  edit_profile:
    basic_information: මූලික තොරතුරු
    other: වෙනත්
  errors:
    '400': ඔබ ඉදිරිපත් කළ ඉල්ලීම අවලංගු හෝ විකෘති විය.
    '403': ඔබට මෙම පිටුව බැලීමට අවසර නැත.


@@ 884,42 937,43 @@ si:
    '422':
      content: ආරක්ෂක සත්‍යාපනය අසාර්ථක විය. ඔබ කුකීස් අවහිර කරනවාද?
      title: ආරක්ෂක සත්‍යාපනය අසාර්ථක විය
    '429': ඉල්ලීම් වැඩියි
    '429': ඉල්ලීම් බොහෝය
    '500':
      content: අපට කණගාටුයි, නමුත් අපගේ පැත්තෙන් යමක් වැරදී ඇත.
      title: මෙම පිටුව නිවැරදි නොවේ
      title: මෙම පිටුව වැරදියි
    '503': තාවකාලික සේවාදායකයේ අසාර්ථක වීමක් හේතුවෙන් පිටුව සේවය කිරීමට නොහැකි විය.
    noscript_html: Mastodon වෙබ් යෙදුම භාවිතා කිරීමට, කරුණාකර JavaScript සක්‍රීය කරන්න. විකල්පයක් ලෙස, ඔබේ වේදිකාව සඳහා</a> <a href="%{apps_path}">එකක් උත්සාහ කරන්න.
    noscript_html: මාස්ටඩන් වියමන යෙදුම භාවිතා කිරීමට ජාවාස්ක්‍රිප්ට් සබල කරන්න. ඊට අමතරව, ඔබගේ වේදිකාව සඳහා වන <a href="%{apps_path}">නිසග යෙදුමක්</a> අත්හදා බලන්න.
  existing_username_validator:
    not_found: එම පරිශීලක නාමය සහිත දේශීය පරිශීලකයෙකු සොයා ගැනීමට නොහැකි විය
    not_found_multiple: "%{usernames}සොයා ගැනීමට නොහැකි විය"
  exports:
    archive_takeout:
      date: දිනය
      download: ඔබගේ සුරක්ෂිතභාවය බාගන්න
      hint_html: ඔබට ඔබගේ පළ කිරීම් <strong>සහ උඩුගත කළ මාධ්‍ය</strong>හි සංරක්ෂිතයක් ඉල්ලා සිටිය හැක. නිර්යාත කළ දත්ත ActivityPub ආකෘතියෙන්, ඕනෑම අනුකූල මෘදුකාංගයකට කියවිය හැකිය. ඔබට දින 7කට වරක් ලේඛනාගාරයක් ඉල්ලා සිටිය හැක.
      download: ඔබගේ සංරක්‍ෂිතය බාගන්න
      hint_html: ඔබට <strong>ලිපි සහ උඩුගත කළ මාධ්‍යවල</strong> සංරක්‍ෂණයක් ඉල්ලීමට හැකිය. නිර්යාත කළ දත්ත ActivityPub ආකෘතියට ගැළපෙන ඕනෑම මෘදුකාංගයකින් කියවීමට හැකිය. ඔබට දවස් 7 කට වරක් සංරක්‍ෂණයක් ඉල්ලීමට හැකිය.
      in_progress: ඔබගේ සංරක්ෂිතය සම්පාදනය කරමින්...
      request: ඔබගේ සංරක්ෂිතය ඉල්ලන්න
      size: ප්‍රමාණය
    blocks: ඔබ අවහිර කරන්න
    bookmarks: පොත් යොමු කරන්න
    bookmarks: පොත්යොමු
    csv: CSV
    domain_blocks: වසම් අවහිර කිරීම්
    lists: ලැයිස්තුව
    lists: ලැයිස්තු
    mutes: ඔබ නිහඬ කරන්න
    storage: මාධ්‍ය ගබඩාව
    storage: මාධ්‍ය ආචයනය
  featured_tags:
    add_new: අලුතින් එකතු කරන්න
    hint_html: "<strong>විශේෂාංගගත හැෂ් ටැග් මොනවාද?</strong> ඒවා ඔබේ පොදු පැතිකඩෙහි ප්‍රමුඛව ප්‍රදර්ශනය වන අතර එම හැෂ් ටැග් යටතේ ඔබේ පොදු පළ කිරීම් බ්‍රවුස් කිරීමට මිනිසුන්ට ඉඩ සලසයි. නිර්මාණාත්මක කෘති හෝ දිගු කාලීන ව්යාපෘති පිළිබඳ වාර්තාවක් තබා ගැනීම සඳහා ඔවුන් විශිෂ්ට මෙවලමක් වේ."
  filters:
    contexts:
      account: පැතිකඩයන්
      home: නිවස සහ ලැයිස්තු
      home: මුල සහ ලැයිස්තු
      notifications: දැනුම්දීම්
      public: පොදු කාලරේඛා
      public: ප්‍රසිද්ධ කාලරේඛා
      thread: සංවාද
    edit:
      add_keyword: මූල පදය එක් කරන්න
      keywords: මූල පද
      statuses: තනි ලිපි
      title: පෙරහන සංස්කරණය
    errors:
      deprecated_api_multiple_keywords: මෙම පරාමිති පෙරහන් මූල පද එකකට වඩා අදාළ වන බැවින් මෙම යෙදුමෙන් වෙනස් කළ නොහැක. වඩාත් මෑත යෙදුමක් හෝ වෙබ් අතුරු මුහුණතක් භාවිතා කරන්න.


@@ 927,21 981,32 @@ si:
    index:
      contexts: "%{contexts}හි පෙරහන්"
      delete: මකන්න
      empty: ඔබට පෙරහන් නොමැත.
      expires_in: "%{distance}කින් කල් ඉකුත් වේ"
      expires_on: "%{date}දින කල් ඉකුත් වේ"
      empty: ඔබ සතුව පෙරහන් නැත.
      expires_in: "%{distance} කින් ඉකුත් වේ"
      expires_on: "%{date} දී ඉකුත් වේ"
      keywords:
        one: "%{count} මූල පදය"
        other: "%{count} මූල පද"
        one: මූල පද %{count}
        other: මූල පද %{count}
      statuses:
        one: ලිපි %{count}
        other: ලිපි %{count}
      title: පෙරහන්
    new:
      save: නව පෙරහන සුරකින්න
      title: නව පෙරහනක් එකතු කරන්න
    statuses:
      back_to_filter: පෙරහනට ආපසු
      batch:
        remove: පෙරහනෙන් ඉවතලන්න
      index:
        title: පෙරූ ලිපි
  generic:
    all: සියල්ල
    changes_saved_msg: වෙනස්කම් සාර්ථකව සුරකින ලදී!
    cancel: අවලංගු
    changes_saved_msg: වෙනස්කම් සාර්ථකව සුරැකිණි!
    copy: පිටපතක්
    delete: මකන්න
    deselect: සියල්ල නොතෝරන්න
    none: කිසිවක් නැත
    order_by: විසින් ඇණවුම් කරන්න
    save_changes: වෙනස්කම් සුරකින්න


@@ 951,24 1016,33 @@ si:
      other: යමක් තවමත් හරි නැත! කරුණාකර පහත දෝෂ %{count} ක් සමාලෝචනය කරන්න
  imports:
    errors:
      empty: හිස් CSV ගොනුවකි
      over_rows_processing_limit: පේළි %{count} කට වඩා අඩංගු වේ
      too_large: ගොනුව ඉතා විශාලයි
    imported: ආයාත විය
    modes:
      merge: ඒකාබද්ධ කරන්න
      merge: ඒකාබද්ධ
      merge_long: පවතින වාර්තා තබා නව ඒවා එකතු කරන්න
      overwrite: උඩින් ලියන්න
      overwrite_long: වත්මන් වාර්තා නව ඒවා සමඟ ප්‍රතිස්ථාපනය කරන්න
    preface: ඔබ අනුගමන කරන හෝ අවහිර කරන පුද්ගලයින්ගේ ලැයිස්තුවක් වැනි වෙනත් සේවාදායකයකින් ඔබ නිර්යාත කර ඇති දත්ත ඔබට ආයාත කළ හැක.
    status: තත්‍වය
    success: ඔබගේ දත්ත සාර්ථකව උඩුගත කර ඇති අතර නියමිත වේලාවට සැකසෙනු ඇත
    titles:
      lists: ලැයිස්තු ආයාත වෙමින්
    type_groups:
      constructive: අනුගමන හා පොත්යොමු
    types:
      blocking: අවහිර කිරීමේ ලැයිස්තුව
      bookmarks: පොත් යොමු
      domain_blocking: වසම් අවහිර කිරීමේ ලැයිස්තුව
      following: පහත ලැයිස්තුව
      blocking: අවහිර ලැයිස්තුව
      bookmarks: පොත්යොමු
      domain_blocking: වසම් අවහිර ලැයිස්තුව
      following: අනුගමන ලැයිස්තුව
      lists: ලැයිස්තු
      muting: නිහඬ කිරීමේ ලැයිස්තුව
    upload: උඩුගත කරන්න
  invites:
    delete: අක්රිය කරන්න
    expired: කල් ඉකුත් වී ඇත
    delete: අක්‍රිය කරන්න
    expired: ඉකුත් වී ඇත
    expires_in:
      '1800': විනාඩි 30
      '21600': පැය 6


@@ 987,7 1061,7 @@ si:
    table:
      expires_at: කල් ඉකුත් වේ
      uses: භාවිතා කරයි
    title: මිනිසුන්ට ආරාධනා කරන්න
    title: ආරාධනා කරන්න
  login_activities:
    authentication_methods:
      otp: ද්වි-සාධක සත්‍යාපන යෙදුම


@@ 1001,7 1075,7 @@ si:
    title: සත්‍යාපන ඉතිහාසය
  media_attachments:
    validations:
      images_and_video: දැනටමත් පින්තූර අඩංගු පළ කිරීමකට වීඩියෝවක් ඇමිණිය නොහැක
      images_and_video: දැනටමත් රූප අඩංගු ලිපියකට දෘශ්‍යකයක් ඇමිණීමට නොහැකිය
      not_ready: සැකසීම අවසන් නොකළ ගොනු ඇමිණිය නොහැක. මොහොතකින් නැවත උත්සාහ කරන්න!
      too_many: ගොනු 4කට වඩා ඇමිණිය නොහැක
  migrations:


@@ 1036,7 1110,7 @@ si:
      other_data: වෙනත් දත්ත කිසිවක් ස්වයංක්‍රීයව ගෙන නොයනු ඇත
      redirect: ඔබගේ ජංගම ගිණුමේ පැතිකඩ යළි-යොමු කිරීමේ දැන්වීමක් සමඟ යාවත්කාලීන කෙරෙන අතර සෙවුම් වලින් බැහැර කරනු ලැබේ
  moderation:
    title: මධ්යස්ථභාවය
    title: මැදිහත්කරණය
  move_handler:
    carry_blocks_over_text: මෙම පරිශීලකයා ඔබ අවහිර කර තිබූ %{acct}සිට මාරු විය.
    carry_mutes_over_text: මෙම පරිශීලකයා ඔබ නිශ්ශබ්ද කර තිබූ %{acct}වෙතින් මාරු විය.


@@ 1044,37 1118,31 @@ si:
  notification_mailer:
    admin:
      report:
        subject: "%{name} වාර්තාවක් ඉදිරිපත් කළේය"
        subject: "%{name} වාර්තාවක් යොමු කර ඇත"
      sign_up:
        subject: "%{name} අත්සන් කර ඇත"
    favourite:
      body: 'ඔබේ පළ කිරීම %{name}විසින් ප්‍රිය කරන ලදී:'
      subject: "%{name} ඔබගේ පළ කිරීම ප්‍රිය කරන ලදී"
      title: නව ප්රියතම
      body: "%{name} ඔබගේ ලිපියට ප්‍රිය කළා:"
      subject: "%{name} ඔබගේ ලිපියට ප්‍රිය කළා"
      title: නව ප්‍රියතමය
    follow:
      body: "%{name} දැන් ඔබව අනුගමනය කරයි!"
      subject: "%{name} දැන් ඔබව අනුගමනය කරයි"
      title: නව අනුගාමිකයෙක්
    follow_request:
      action: අනුගමනය කරන ඉල්ලීම් කළමනාකරණය කරන්න
      action: අනුගමන ඉල්ලීම් කළමනාකරණය
      body: "%{name} ඔබව අනුගමනය කිරීමට ඉල්ලා ඇත"
      subject: 'පොරොත්තු අනුගාමිකයා: %{name}'
      title: නව අනුගමනය ඉල්ලීම
      title: නව අනුගමන ඉල්ලීම
    mention:
      action: පිළිතුර
      body: 'ඔබව මෙහි %{name} කින් සඳහන් කර ඇත:'
      subject: ඔබව %{name}මගින් සඳහන් කර ඇත
      body: "%{name} ඔබව මෙහි සඳහන් කර ඇත:"
      subject: "%{name} ඔබව සඳහන් කර ඇත"
      title: නව සඳැහුම
    poll:
      subject: "%{name} න් මත විමසුමක් අවසන් විය"
    reblog:
      body: 'ඔබේ පළ කිරීම %{name}කින් වැඩි කරන ලදී:'
      subject: "%{name} ඔබේ පළ කිරීම ඉහළ නැංවීය"
      title: නව තල්ලුවක්
    status:
      subject: "%{name} දැන් පළ කළා"
    update:
      subject: "%{name} පළ කිරීමක් සංස්කරණය කළා"
      subject: "%{name} ලිපිය සංශෝධනය කළා"
  notifications:
    email_events: ඊමේල් දැනුම්දීම් සඳහා සිදුවීම්
    email_events_hint: 'ඔබට දැනුම්දීම් ලැබීමට අවශ්‍ය සිදුවීම් තෝරන්න:'


@@ 1084,11 1152,8 @@ si:
      decimal_units:
        format: "%n%u"
        units:
          billion: බී
          million: ද.ල.
          quadrillion: ප්‍රශ්නය
          thousand: ද.
          trillion: ටී
  otp_authentication:
    code_hint: තහවුරු කිරීමට ඔබගේ සත්‍යාපන යෙදුම මගින් ජනනය කරන ලද කේතය ඇතුළු කරන්න
    description_html: ඔබ සත්‍යාපන යෙදුමක් භාවිතයෙන් <strong>ද්වි-සාධක සත්‍යාපනය</strong> සක්‍රීය කරන්නේ නම්, ලොගින් වීමේදී ඔබට ඔබගේ දුරකථනය සන්තකයේ තබා ගැනීමට අවශ්‍ය වනු ඇත, එය ඔබට ඇතුළු වීමට ටෝකන ජනනය කරයි.


@@ 1105,19 1170,21 @@ si:
    truncate: "&hellip;"
  polls:
    errors:
      already_voted: ඔබ දැනටමත් මෙම මත විමසුමට ඡන්දය දී ඇත
      duplicate_options: අනුපිටපත් අයිතම අඩංගු වේ
      already_voted: ඔබ මෙම මත විමසුමට ඡන්දය දී ඇත
      duration_too_long: අනාගතයට බොහෝ දුරයි
      duration_too_short: ඉතා ඉක්මනින් වේ
      expired: මත විමසුම දැනටමත් අවසන් වී ඇත
      expired: මත විමසුම දැනටමත් නිමා වී ඇත
      invalid_choice: තෝරාගත් ඡන්ද විකල්පය නොපවතී
      over_character_limit: එක් එක් අක්ෂර %{max} ට වඩා දිගු විය නොහැක
      too_few_options: එක් අයිතමයකට වඩා තිබිය යුතුය
      too_many_options: අයිතම %{max} කට වඩා අඩංගු විය නොහැක
      self_vote: ඔබගේ මත විමසුමට ජන්දය දීමට නොහැකිය
      too_few_options: එක් අථකයකට වඩා තිබිය යුතුය
      too_many_options: අථක %{max} කට වඩා අඩංගු නොවිය යුතුය
  preferences:
    other: වෙනත්
    posting_defaults: පෙරනිමි පළ කිරීම
    public_timelines: පොදු කාලරේඛා
    posting_defaults: සැමවිට පළ කරන ආකාරය
    public_timelines: ප්‍රසිද්ධ කාලරේඛා
  privacy:
    search: සොයන්න
  privacy_policy:
    title: රහස්‍යතා ප්‍රතිපත්තිය
  reactions:
    errors:
      limit_reached: විවිධ ප්‍රතික්‍රියා වල සීමාව ළඟා විය


@@ 1133,7 1200,7 @@ si:
    most_recent: මෑතකාලීන
    moved: මාරු කළා
    mutual: අන්යෝන්ය
    primary: ප්රාථමික
    primary: ප්‍රාථමික
    relationship: සම්බන්ධතාවය
    remove_selected_domains: තෝරාගත් වසම් වලින් සියලුම අනුගාමිකයින් ඉවත් කරන්න
    remove_selected_followers: තෝරාගත් අනුගාමිකයින් ඉවත් කරන්න


@@ 1147,56 1214,62 @@ si:
  rss:
    content_warning: 'අන්තර්ගත අනතුරු ඇඟවීම:'
    descriptions:
      account: "@%{acct}සිට පොදු පළ කිරීම්"
      tag: "#%{hashtag}ටැග් කර ඇති පොදු පළ කිරීම්"
      account: "@%{acct} වෙතින් ප්‍රසිද්ධ ලිපි"
  scheduled_statuses:
    over_daily_limit: ඔබ අද දිනට නියමිත පළ කිරීම් %{limit} සීමාව ඉක්මවා ඇත
    over_total_limit: ඔබ නියමිත පළ කිරීම් %{limit} සීමාව ඉක්මවා ඇත
    too_soon: නියමිත දිනය අනාගතයේ විය යුතුය
  sessions:
    activity: අවසාන ක්‍රියාකාරකම
    browser: අතිරික්සුව
    browsers:
      alipay: අලිපේ
      blackberry: බ්ලැක්බෙරි
      chrome: ක්‍රෝම්
      edge: මයික්‍රොසොෆ්ට් එඩ්ගේ
      electron: ඉලෙක්ට්‍රෝන්
      firefox: ෆයර්ෆොක්ස්
      generic: නොදන්නා අතිරික්සුවකි
      huawei_browser: හුආවේ අතිරික්සුව
      ie: ඉන්ටර්නෙට් එක්ස්ප්ලෝරර්
      micro_messenger: මයික්‍රොමැසෙන්ජර්
      nokia: Nokia S40 Ovi බ්‍රව්සරය
      nokia: නොකියා S40 Ovi අතිරික්සුව
      opera: ඔපෙරා
      otter: ඔටර්
      phantom_js: PhantomJS
      qq: කියුකියු අතිරික්සුව
      safari: සෆාරි
      uc_browser: UC අතිරික්සුව
      unknown_browser: නොදන්නා අතිරික්සුවකි
      weibo: වෙයිබො
    current_session: වත්මන් සැසිය
    description: "%{browser} මත %{platform}"
    explanation: මේවා දැනට ඔබගේ Mastodon ගිණුමට ලොග් වී ඇති වෙබ් බ්‍රව්සර් වේ.
    current_session: වත්මන් වාරය
    description: "%{platform} හි %{browser}"
    explanation: ඔබගේ මාස්ටඩන් ගිණුමට පිවිසීම සඳහා භාවිතා කර තිබෙන අතිරික්සු.
    ip: අ.ජා. කෙ. (IP)
    platforms:
      adobe_air: ඇඩෝබි එයාර්
      android: ඇන්ඩ්‍රොයිඩ්
      blackberry: බ්ලැක්බෙරි
      chrome_os: ChromeOS
      firefox_os: ෆයර්ෆොක්ස් ඕඑස්
      ios: අයිඕඑස්
      kai_os: KaiOS
      linux: ලිනක්ස්
      mac: මැක්ඕඑස්
      unknown_platform: නොදන්නා වේදිකාවකි
      windows: වින්ඩෝස්
      windows_mobile: වින්ඩෝස් මොබයිල්
      windows_phone: වින්ඩෝස් පෝන්
    revoke: අවලංගු කරන්න
    revoke_success: සැසිය සාර්ථකව අවලංගු කරන ලදී
    title: සැසිවාර
    revoke_success: වාරය සාර්ථකව අවලංගු කෙරිණි
    title: වාර
    view_authentication_history: ඔබගේ ගිණුමේ සත්‍යාපන ඉතිහාසය බලන්න
  settings:
    account: ගිණුම
    account_settings: ගිණුමේ සැකසුම්
    aliases: ගිණුම් අන්වර්ථ නාමයන්
    appearance: පෙනුම
    authorized_apps: අවසර ලත් යෙදුම්
    back: Mastodon වෙත නැවත යන්න
    delete: ගිණුම මකා දැමීම
    authorized_apps: බලයලත් යෙදුම්
    back: මාස්ටඩන් වෙත ආපසු
    delete: ගිණුම මැකීම
    development: සංවර්ධනය
    edit_profile: පැතිකඩ සංස්කරණය
    export: දත්ත නිර්යාතය


@@ 1205,13 1278,12 @@ si:
    import_and_export: ආයාත හා නිර්යාත
    migrate: ගිණුම් සංක්‍රමණය
    notifications: දැනුම්දීම්
    preferences: මනාප
    profile: පැතිකඩ
    preferences: අභිප්‍රේත
    profile: ප්‍රසිද්ධ පැතිකඩ
    relationships: අනුගාමිකයින් සහ අනුගාමිකයින්
    statuses_cleanup: ස්වයංක්‍රීය පළ කිරීම් මකාදැමීම
    strikes: මධ්‍යස්ථ වැඩ වර්ජන
    statuses_cleanup: ස්වයංක්‍රීය ලිපි මැකීම
    two_factor_authentication: ද්වි සාධක Aut
    webauthn_authentication: ආරක්ෂක යතුරු
    webauthn_authentication: ආරක්‍ෂණ යතුරු
  statuses:
    attached:
      audio:


@@ 1219,35 1291,33 @@ si:
        other: "%{count} ශ්රව්ය"
      description: 'අමුණා ඇත: %{attached}'
      image:
        one: "%{count} රූපය"
        other: පින්තූර %{count}
        one: රූප %{count}
        other: රූප %{count}
      video:
        one: "%{count} වීඩියෝ"
        other: වීඩියෝ %{count}
    boosted_from_html: "%{acct_link}සිට වැඩි කරන ලදී"
        one: දෘශ්‍යක %{count}
        other: දෘශ්‍යක %{count}
    content_warning: 'අන්තර්ගත අනතුරු ඇඟවීම: %{warning}'
    default_language: අතුරු මුහුණත් භාෂාවට සමානයි
    default_language: අතුරු මුහුණතේ භාෂාවම
    disallowed_hashtags:
      one: 'අනුමත නොකළ හැෂ් ටැගයක් අඩංගු විය: %{tags}'
      other: 'අනුමත නොකළ හැෂ් ටැග් අඩංගු විය: %{tags}'
    edited_at_html: සංස්කරණය %{date}
    errors:
      in_reply_not_found: ඔබ පිළිතුරු දීමට උත්සාහ කරන පළ කිරීම පවතින බවක් නොපෙනේ.
      in_reply_not_found: ඔබ පිළිතුරු දීමට තැත් කරන ලිපිය නොපවතින බව පෙනෙයි.
    open_in_web: වෙබයේ විවෘත කරන්න
    over_character_limit: අක්ෂර සීමාව %{max} ඉක්මවා ඇත
    pin_errors:
      direct: සඳහන් කළ පරිශීලකයින්ට පමණක් පෙනෙන පළ කිරීම් ඇමිණිය නොහැක
      limit: ඔබ දැනටමත් උපරිම පළ කිරීම් සංඛ්‍යාව අමුණා ඇත
      ownership: වෙනත් කෙනෙකුගේ පළ කිරීමක් ඇමිණිය නොහැක
      reblog: බූස්ට් එකක් ඇලවිය නොහැක
      direct: සඳහන් කළ අයට පමණක් පෙනෙන ලිපි ඇමිණීමට නොහැකිය
      limit: දැනටමත් මුදුනට ඇමිණිමට හැකි ලිපි සීමාවට ළඟා වී ඇත
      ownership: වෙනත් අයගේ ලිපි ඇමිණීමට නොහැකිය
    poll:
      total_people:
        one: "%{count} පුද්ගලයෙක්"
        other: පුද්ගලයන් %{count}
        one: පුද්ගලයින් %{count}
        other: පුද්ගලයින් %{count}
      total_votes:
        one: "%{count} ඡන්ද"
        one: ඡන්ද %{count} යි
        other: ඡන්ද %{count} යි
      vote: ඡන්දය දෙන්න
      vote: ඡන්දය
    show_more: තව පෙන්වන්න
    show_newer: අලුත්ම පෙන්වන්න
    show_older: පැරණි පෙන්වන්න


@@ 1262,39 1332,32 @@ si:
      unlisted: ලැයිස්තුගත නොකළ
      unlisted_long: සෑම කෙනෙකුටම දැකිය හැක, නමුත් පොදු කාලරාමුවෙහි ලැයිස්තුගත කර නොමැත
  statuses_cleanup:
    enabled: පැරණි පළ කිරීම් ස්වයංක්‍රීයව මකන්න
    enabled_hint: ඔබේ පළ කිරීම් පහත ව්‍යතිරේකවලින් එකකට ගැලපෙන්නේ නම් මිස, ඒවා නිශ්චිත වයස් සීමාවකට ළඟා වූ පසු ස්වයංක්‍රීයව මකයි
    exceptions: ව්යතිරේක
    explanation: පළ කිරීම් මකා දැමීම මිල අධික මෙහෙයුමක් වන බැවින්, සේවාදායකය වෙනත් ආකාරයකින් කාර්යබහුල නොවන විට කාලයත් සමඟ මෙය සෙමින් සිදු කෙරේ. මෙම හේතුව නිසා, ඔබේ පළ කිරීම් වයස් සීමාවට ළඟා වූ පසු ටික වේලාවකට පසුව මකා දැමිය හැක.
    ignore_favs: ප්‍රියතමයන් නොසලකා හරින්න
    ignore_reblogs: වැඩි කිරීම් නොසලකා හරින්න
    enabled: පරණ ලිපි ස්වයංක්‍රීයව මකන්න
    exceptions: හැර දැමීම්
    ignore_favs: ප්‍රියතමයන් නොසලකන්න
    interaction_exceptions: අන්තර්ක්‍රියා මත පදනම් වූ ව්‍යතිරේක
    interaction_exceptions_explanation: පළ කිරීම් වරක් ඒවා ඉක්මවා ගිය පසු ප්‍රියතම හෝ බූස්ට් සීමාවට පහළින් ගියහොත් ඒවා මැකීමට සහතිකයක් නොමැති බව සලකන්න.
    keep_direct: සෘජු පණිවිඩ තබා ගන්න
    keep_direct_hint: ඔබගේ සෘජු පණිවිඩ කිසිවක් මකන්නේ නැත
    keep_media: මාධ්‍ය ඇමුණුම් සමඟ පළ කිරීම් තබා ගන්න
    keep_media_hint: මාධ්‍ය ඇමුණුම් ඇති ඔබේ පළ කිරීම් කිසිවක් මකන්නේ නැත
    keep_direct: සෘජු පණිවිඩ තබාගන්න
    keep_direct_hint: ඔබගේ සෘජු පණිවිඩ කිසිවක් මැකෙන්නේ නැත
    keep_media: මාධ්‍ය ඇමුණුම් සහිත ලිපි තබාගන්න
    keep_media_hint: මාධ්‍ය ඇමුණුම් සහිත ඔබගේ ලිපි කිසිවක් මැකෙන්නේ නැත
    keep_pinned: ඇමිණූ ලිපි තබාගන්න
    keep_pinned_hint: ඔබ ඇමිණූ ලිපි කිසිවක් නොමැකෙයි
    keep_polls: ඡන්ද තබා ගන්න
    keep_polls_hint: ඔබගේ ඡන්ද විමසීම් කිසිවක් මකන්නේ නැත
    keep_self_bookmark: ඔබ පිටු සලකුණු කළ පළ කිරීම් තබා ගන්න
    keep_self_bookmark_hint: ඔබ ඔබේම පළ කිරීම් පිටු සලකුණු කර ඇත්නම් ඒවා මකා නොදමන්න
    keep_self_fav: ඔබ කැමති පළ කිරීම් තබා ගන්න
    keep_self_fav_hint: ඔබ ඒවාට කැමති නම් ඔබේම පළ කිරීම් මකා නොදමන්න
    keep_polls_hint: ඔබගේ මත විමසුම් මැකෙන්නේ නැත
    keep_self_bookmark: ඔබ පොත්යොමු තැබූ ලිපි තබාගන්න
    keep_self_bookmark_hint: ඔබගේම ලිපි වලට පොත්යොමු තබා ඇත්නම් ඒවා මකා නොදැමෙයි
    keep_self_fav: ඔබ ප්‍රිය කළ ලිපි තබාගන්න
    keep_self_fav_hint: ඔබගේම ලිපි වලට ප්‍රිය කර ඇත්නම් ඒවා මකා නොදැමෙයි
    min_age:
      '1209600': සති 2 යි
      '15778476': මාස 6 යි
      '2629746': මාස 1 යි
      '31556952': වසර 1 යි
      '5259492': මාස 2 ක්
      '604800': 1 සතිය
      '63113904': අවුරුදු 2 ක්
      '7889238': මාස 3 යි
      '1209600': සති 2
      '15778476': මාස 6
      '2629746': මාස 1
      '31556952': අවුරුදු 1
      '5259492': මාස 2
      '604800': සති 1
      '63113904': අවුරුදු 2
      '7889238': මාස 3
    min_age_label: වයස් සීමාව
    min_favs: අඩුම තරමින් පෝස්ට් ප්‍රිය කරන ලෙස තබා ගන්න
    min_reblogs: අඩුම තරමේ පෝස්ට් බූස්ට් කරගෙන තියාගන්න
    min_reblogs_hint: අඩුම තරමින් මෙම වාර ගණන වැඩි කර ඇති ඔබගේ පළ කිරීම් කිසිවක් මකා නොදමන්න. බූස්ට් ගණන නොතකා පළ කිරීම් මැකීමට හිස්ව තබන්න
    min_favs: අවම වශයෙන් ප්‍රිය කළ ලිපි තබාගන්න
  stream_entries:
    sensitive_content: සංවේදී අන්තර්ගතයකි
  strikes:


@@ 1303,22 1366,26 @@ si:
  tags:
    does_not_match_previous_name: පෙර නමට නොගැලපේ
  themes:
    contrast: Mastodon (ඉහළ වෙනස)
    default: මැස්ටෝඩන් (අඳුරු)
    mastodon-light: මැස්ටෝඩන් (ආලෝකය)
    default: මාස්ටඩන් (අඳුරු)
    mastodon-light: මාස්ටඩන් (දීප්ත)
  time:
    formats:
      default: "%Y %b %d, %H:%M"
      month: "%Y %b"
      with_time_zone: "%Y %b %d, %H:%M %Z"
  two_factor_authentication:
    add: එකතු කරන්න
    add: එකතු
    disable: 2FA අබල කරන්න
    disabled_success: ද්වි-සාධක සත්‍යාපනය සාර්ථකව අබල කර ඇත
    edit: සංස්කරණය
    enabled: ද්වි-සාධක සත්‍යාපනය සක්‍රීය කර ඇත
    enabled_success: ද්වි-සාධක සත්‍යාපනය සාර්ථකව සබල කර ඇත
    generate_recovery_codes: ප්‍රතිසාධන කේත ජනනය කරන්න
    generate_recovery_codes: ප්‍රතිසාධන කේත උත්පාදනය කරන්න
    lost_recovery_codes: ඔබගේ දුරකථනය නැති වුවහොත් ඔබගේ ගිණුමට ප්‍රවේශය නැවත ලබා ගැනීමට ප්‍රතිසාධන කේත ඔබට ඉඩ සලසයි. ඔබට ඔබේ ප්‍රතිසාධන කේත නැති වී ඇත්නම්, ඔබට ඒවා මෙහි නැවත උත්පාදනය කළ හැක. ඔබගේ පැරණි ප්‍රතිසාධන කේත අවලංගු වනු ඇත.
    methods: ද්වි සාධක ක්රම
    methods: ද්වි සාධක ක්‍රම
    otp: Authenticator යෙදුම
    recovery_codes: උපස්ථ ප්‍රතිසාධන කේත
    recovery_codes_regenerated: ප්‍රතිසාධන කේත සාර්ථකව ප්‍රතිජනනය කරන ලදී
    recovery_codes: ප්‍රතිසාධන කේත උපස්ථය
    recovery_codes_regenerated: ප්‍රතිසාධන කේත නැවත උත්පාදනය කෙරිණි
    recovery_instructions_html: ඔබට කවදා හෝ ඔබගේ දුරකථනයට ප්‍රවේශය අහිමි වුවහොත්, ඔබගේ ගිණුමට ප්‍රවේශය නැවත ලබා ගැනීමට පහත ප්‍රතිසාධන කේත වලින් එකක් භාවිතා කළ හැක. <strong>ප්‍රතිසාධන කේත ආරක්ෂිතව තබා ගන්න</strong>. උදාහරණයක් ලෙස, ඔබට ඒවා මුද්‍රණය කර වෙනත් වැදගත් ලේඛන සමඟ ගබඩා කළ හැකිය.
    webauthn: ආරක්‍ෂණ යතුරු
  user_mailer:


@@ 1332,11 1399,11 @@ si:
      subject: "%{date} සිට ඔබගේ අභියාචනය ප්‍රතික්ෂේප කර ඇත"
      title: අභියාචනය ප්‍රතික්ෂේප විය
    backup_ready:
      explanation: ඔබ ඔබේ Mastodon ගිණුමේ සම්පූර්ණ උපස්ථයක් ඉල්ලා ඇත. එය දැන් බාගත කිරීම සඳහා සූදානම්!
      explanation: ඔබගේ මාස්ටඩන් ගිණුමේ පූර්ණ උපස්ථයක් ඉල්ලා ඇත. එය දැන් බාගැනීමට හැකිය!
      subject: ඔබගේ සංරක්ෂිතය බාගැනීමට සූදානම්ය
      title: සංරක්ෂිත රැගෙන යාම
    suspicious_sign_in:
      change_password: ඔබගේ මුරපදය වෙනස් කරන්න
      change_password: මුරපදය වෙනස් කරන්න
      details: 'පුරනය වීමේ විස්තර මෙන්න:'
      explanation: අපි නව IP ලිපිනයකින් ඔබගේ ගිණුමට පුරනය වීමක් අනාවරණය කරගෙන ඇත.
      further_actions_html: මෙය ඔබ නොවේ නම්, අපි ඔබට වහාම %{action} ලෙස නිර්දේශ කර ඔබගේ ගිණුම සුරක්ෂිතව තබා ගැනීමට සාධක දෙකක සත්‍යාපනය සබල කරන්න.


@@ 1346,40 1413,36 @@ si:
      appeal: අභියාචනයක් ඉදිරිපත් කරන්න
      appeal_description: මෙය දෝෂයක් බව ඔබ විශ්වාස කරන්නේ නම්, ඔබට %{instance}හි කාර්ය මණ්ඩලයට අභියාචනයක් ඉදිරිපත් කළ හැක.
      categories:
        spam: ආයාචිත තැපැල්
        spam: ආයාචිත
        violation: අන්තර්ගතය පහත ප්‍රජා මාර්ගෝපදේශ උල්ලංඝනය කරයි
      explanation:
        delete_statuses: ඔබගේ සමහර පළ කිරීම් ප්‍රජා මාර්ගෝපදේශ එකක් හෝ කිහිපයක් උල්ලංඝනය කරන බව සොයා ගෙන ඇති අතර පසුව %{instance}හි උපපරිපාලකයින් විසින් ඉවත් කර ඇත.
        disable: ඔබට තවදුරටත් ඔබගේ ගිණුම භාවිතා කළ නොහැක, නමුත් ඔබගේ පැතිකඩ සහ අනෙකුත් දත්ත නොවෙනස්ව පවතී. ඔබට ඔබගේ දත්තවල උපස්ථයක් ඉල්ලා සිටීමට, ගිණුම් සැකසීම් වෙනස් කිරීමට හෝ ඔබගේ ගිණුම මකා දැමීමට හැකිය.
        mark_statuses_as_sensitive: ඔබගේ සමහර පළ කිරීම් %{instance}හි පරිපාලකයින් විසින් සංවේදී ලෙස සලකුණු කර ඇත. මෙයින් අදහස් කරන්නේ පෙරදසුනක් දර්ශනය වීමට පෙර පුද්ගලයින්ට පළ කිරීම් වල මාධ්‍ය තට්ටු කිරීමට අවශ්‍ය වනු ඇති බවයි. අනාගතයේදී පළ කිරීමේදී ඔබට මාධ්‍ය සංවේදී ලෙස සලකුණු කළ හැක.
        sensitive: මෙතැන් සිට, ඔබගේ උඩුගත කරන ලද සියලුම මාධ්‍ය ගොනු සංවේදී ලෙස සලකුණු කර ක්ලික්-හරහා අනතුරු ඇඟවීමක් පිටුපස සඟවනු ඇත.
        silence: ඔබට තවමත් ඔබගේ ගිණුම භාවිතා කළ හැකි නමුත් දැනටමත් ඔබව අනුගමනය කරන පුද්ගලයින් පමණක් මෙම සේවාදායකයේ ඔබගේ පළ කිරීම් දකිනු ඇති අතර, විවිධ සොයාගැනීම් විශේෂාංග වලින් ඔබව බැහැර කරනු ලැබිය හැක. කෙසේ වෙතත්, අනෙක් අය තවමත් ඔබව අතින් අනුගමනය කළ හැක.
        sensitive: මේ මොහොත් සිට ඔබ උඩුගත කරන සියලුම මාධ්‍ය ගොනු සංවේදී ලෙස සලකා අවවාදයක් පිටුපස සඟවනු ඇත.
        suspend: ඔබට තවදුරටත් ඔබගේ ගිණුම භාවිතා කළ නොහැකි අතර, ඔබගේ පැතිකඩ සහ අනෙකුත් දත්ත තවදුරටත් ප්‍රවේශ විය නොහැක. දින 30කින් පමණ දත්ත සම්පූර්ණයෙන් ඉවත් කරන තෙක් ඔබට තවමත් ඔබේ දත්තවල උපස්ථයක් ඉල්ලා සිටීමට පුරනය විය හැක, නමුත් ඔබව අත්හිටුවීම මගහැර යාම වැළැක්වීමට අපි මූලික දත්ත කිහිපයක් රඳවා ගන්නෙමු.
      reason: 'හේතුව:'
      statuses: 'උපුටා දක්වන ලද පළ කිරීම්:'
      subject:
        delete_statuses: "%{acct} හි ඔබගේ පළ කිරීම් ඉවත් කර ඇත"
        delete_statuses: "%{acct} හි ඔබගේ ලිපිය ඉවත් කර ඇත"
        disable: ඔබගේ ගිණුම %{acct} කර ඇත
        mark_statuses_as_sensitive: "%{acct} හි ඔබගේ පළ කිරීම් සංවේදී ලෙස සලකුණු කර ඇත"
        none: "%{acct}සඳහා අනතුරු ඇඟවීම"
        sensitive: "%{acct} හි ඔබගේ පළ කිරීම් මෙතැන් සිට සංවේදී ලෙස සලකුණු කෙරේ"
        mark_statuses_as_sensitive: ඔබගේ %{acct} ලිපි සංවේදී බව සලකුණු කර ඇත
        none: "%{acct} සඳහා අවවාදය"
        sensitive: ඔබගේ %{acct} ලිපිය මේ මොහොතේ සිට සංවේදී ලෙස සලකයි
        silence: ඔබගේ ගිණුම %{acct} සීමා කර ඇත
        suspend: ඔබගේ ගිණුම %{acct} අත්හිටුවා ඇත
      title:
        delete_statuses: පළ කිරීම් ඉවත් කරන ලදී
        delete_statuses: ලිපි ඉවත් කර ඇත
        disable: ගිණුම නිශ්චල කර ඇත
        mark_statuses_as_sensitive: පළ කිරීම් සංවේදී ලෙස ලකුණු කර ඇත
        mark_statuses_as_sensitive: ලිපි සංවේදී බව සලකුණු කර ඇත
        none: අවවාදයයි
        sensitive: ගිණුම සංවේදී ලෙස ලකුණු කර ඇත
        silence: ගිණුම සීමා සහිතයි
        sensitive: ගිණුම සංවේදී බව යොදා ඇත
        silence: ගිණුම සීමා කර ඇත
        suspend: ගිණුම අත්හිටුවා ඇත
    welcome:
      edit_profile_action: සැකසුම් පැතිකඩ
      edit_profile_action: පැතිකඩ පිහිටුවන්න
      explanation: ඔබ ආරම්භ කිරීමට උපදෙස් කිහිපයක් මෙන්න
      final_action: පළ කිරීම ආරම්භ කරන්න
      final_action: ලිපි පළ කරන්න
      full_handle: ඔබේ සම්පූර්ණ හසුරුව
      full_handle_hint: මෙය ඔබ ඔබේ මිතුරන්ට පවසනු ඇත, එවිට ඔවුන්ට වෙනත් සේවාදායකයකින් ඔබට පණිවිඩ යැවීමට හෝ අනුගමනය කිරීමට හැකිය.
      subject: Mastodon වෙත සාදරයෙන් පිළිගනිමු
      subject: මාස්ටඩන් වෙත පිළිගනිමු
      title: නැවට සාදරයෙන් පිළිගනිමු, %{name}!
  users:
    follow_limit_reached: ඔබට පුද්ගලයින් %{limit} කට වඩා අනුගමනය කළ නොහැක


@@ 1388,9 1451,10 @@ si:
    seamless_external_login: ඔබ බාහිර සේවාවක් හරහා ලොග් වී ඇත, එබැවින් මුරපදය සහ ඊමේල් සැකසුම් නොමැත.
    signed_in_as: 'මෙසේ පුරනය වී ඇත:'
  verification:
    verification: සත්යාපනය
    here_is_how: කෙසේදැයි මෙන්න
    verification: සත්‍යාපනය
  webauthn_credentials:
    add: නව ආරක්ෂක යතුර එක් කරන්න
    add: නව ආරක්‍ෂණ යතුර එක් කරන්න
    create:
      error: ඔබගේ ආරක්ෂක යතුර එක් කිරීමේ ගැටලුවක් ඇති විය. කරුණාකර නැවත උත්සාහ කරන්න.
      success: ඔබගේ ආරක්ෂක යතුර සාර්ථකව එක් කරන ලදී.


@@ 1400,9 1464,9 @@ si:
    destroy:
      error: ඔබගේ ආරක්ෂක යතුර මැකීමේ ගැටලුවක් ඇති විය. කරුණාකර නැවත උත්සාහ කරන්න.
      success: ඔබගේ ආරක්ෂක යතුර සාර්ථකව මකා ඇත.
    invalid_credential: වලංගු නොවන ආරක්ෂක යතුර
    invalid_credential: ආරක්‍ෂණ යතුර වලංගු නොවේ
    nickname_hint: ඔබගේ නව ආරක්ෂක යතුරේ අන්වර්ථ නාමය ඇතුළත් කරන්න
    not_enabled: ඔබ තවමත් WebAuthn සබල කර නැත
    not_supported: මෙම බ්‍රවුසරය ආරක්ෂක යතුරු සඳහා සහය නොදක්වයි
    otp_required: ආරක්ෂක යතුරු භාවිතා කිරීමට කරුණාකර පළමුව ද්වි-සාධක සත්‍යාපනය සක්‍රීය කරන්න.
    registered_on: "%{date}හි ලියාපදිංචි වී ඇත"
    registered_on: "%{date} දී ලියාපදිංචි වී ඇත"

M config/locales/simple_form.cy.yml => config/locales/simple_form.cy.yml +5 -0
@@ 292,7 292,11 @@ cy:
        reblog: Mae rhywun wedi hybu eich postiad
        report: Cyflwynwyd adroddiad newydd
        software_updates:
          all: Rhoi gwybod am bob ddiweddariad
          critical: Rhoi gwybod am ddiweddariadau critigol yn unig
          label: Mae fersiwn Mastodon newydd ar gael
          none: Byth rhoi gwybod am ddiweddariadau (nid argymhellir)
          patch: Rhoi gwybod am ddiweddariadau trwsio byg
        trending_tag: Mae pwnc llosg newydd angen adolygiad
      rule:
        text: Rheol


@@ 319,6 323,7 @@ cy:
        url: URL diweddbwynt
    'no': Na
    not_recommended: Heb ei argymell
    overridden: Wedi'i gwrth-wneud
    recommended: Argymhellwyd
    required:
      mark: "*"

M config/locales/simple_form.en-GB.yml => config/locales/simple_form.en-GB.yml +1 -1
@@ 330,5 330,5 @@ en-GB:
      text: required
    title:
      sessions:
        webauthn: Use one of your security keys to sign in
        webauthn: Use one of your security keys to log in
    'yes': 'Yes'

M config/locales/simple_form.fi.yml => config/locales/simple_form.fi.yml +67 -67
@@ 3,22 3,22 @@ fi:
  simple_form:
    hints:
      account:
        discoverable: Julkisia viestejäsi ja profiiliasi voidaan pitää esillä tai suositella Mastodonin eri alueilla, ja profiiliasi voidaan myös ehdottaa suoraan toisille käyttäjille.
        discoverable: Julkisia julkaisujasi ja profiiliasi voidaan pitää esillä tai suositella Mastodonin eri alueilla ja profiiliasi voidaan ehdottaa toisille käyttäjille.
        display_name: Koko nimesi tai lempinimesi.
        fields: Kotisivusi, pronominit, ikä, mitä ikinä haluatkin.
        indexable: Julkiset viestit voivat näkyä hakutuloksissa Mastodonissa. Ihmiset, jotka ovat olleet vuorovaikutuksessa viestiesi kanssa, voivat etsiä niitä siitä riippumatta.
        fields: Kotisivusi, pronominit, ikä, mitä ikinä haluat.
        indexable: Julkiset julkaisusi voivat näkyä hakutuloksissa Mastodonissa. Ihmiset, jotka ovat olleet vuorovaikutuksessa julkaisujesi kanssa, voivat etsiä niitä asetuksesta riippumatta.
        note: 'Voit @mainita muita käyttäjiä tai #aihetunnisteita.'
        show_collections: Käyttäjät eivät näe ketä seuraat ja ketkä seuraavat sinua. Käyttäjät, joita sinä seuraat, näkevät kuitenkin sinun seuraavan heitä.
        unlocked: Käyttäjät voivat seurata sinua pyytämättä hyväksyntää. Poista valinta, jos haluat tarkistaa ja hyväksyä tai hylätä vastaanottamasi seurantapyynnöt.
        show_collections: Käyttäjät voivat selata seurattujasi ja seuraajiasi. Käyttäjät, joita seuraat, näkevät joka tapauksessa, että seuraat heitä.
        unlocked: Käyttäjät voivat seurata sinua pyytämättä hyväksyntää. Poista valinta, jos haluat tarkistaa ja hyväksyä tai hylätä vastaanottamasi seuraamispyynnöt.
      account_alias:
        acct: Määrittele käyttäjän käyttäjänimi@verkkotunnus, josta haluat siirtyä
        acct: Määrittele sen tilin käyttäjänimi@verkkotunnus, josta haluat siirtyä
      account_migration:
        acct: Määrittele käyttäjän käyttäjänimi@verkkotunnus, johon haluat siirtyä
        acct: Määrittele sen tilin käyttäjänimi@verkkotunnus, johon haluat siirtyä
      account_warning_preset:
        text: Voit käyttää julkaisun syntaksia, kuten URL-osoitteita, aihetunnisteita ja mainintoja
        title: Valinnainen. Ei näy vastaanottajalle
      admin_account_action:
        include_statuses: Käyttäjä näkee mitkä viestit johtivat toimenpiteeseen tai varoitukseen
        include_statuses: Käyttäjä näkee, mitkä julkaisut johtivat valvontatoimeen tai varoitukseen
        send_email_notification: Käyttäjä saa selvityksen siitä, mitä hänen tililleen tapahtui
        text_html: Valinnainen. Voit käyttää julkaisun syntaksia. Voit <a href="%{path}">lisätä varoitusasetuksia</a> säästääksesi aikaa
        type_html: Valitse mitä teet käyttäjälle <strong>%{acct}</strong>


@@ 31,17 31,17 @@ fi:
        warning_preset_id: Valinnainen. Voit silti lisätä mukautetun tekstin esiasetuksen loppuun
      announcement:
        all_day: Kun valittu, vain valittu aikaväli näytetään
        ends_at: Valinnainen. Ilmoitus tullaan poistamaan automaattisesti tällä hetkellä
        scheduled_at: Jätä tyhjäksi julkaistaksesi ilmoituksen välittömästi
        starts_at: Valinnainen. Jos ilmoituksesi on sidottu tiettyyn aikaväliin
        text: Voit käyttää julkaisun syntaksia. Muista, kuinka paljon tilaa ilmoitus vie käyttäjän näytöltä
        ends_at: Valinnainen. Tiedote poistetaan automaattisesti tällä hetkellä
        scheduled_at: Jätä tyhjäksi julkaistaksesi tiedotteen heti
        starts_at: Valinnainen. Jos tiedotteesi on sidottu tiettyyn aikaväliin
        text: Voit käyttää julkaisun syntaksia. Ota huomioon, kuinka paljon tilaa tiedote vie käyttäjän näytöltä
      appeal:
        text: Voit valittaa varoituksesta vain kerran
      defaults:
        autofollow: Henkilöt, jotka rekisteröityvät kutsun kautta, seuraavat sinua automaattisesti
        avatar: PNG, GIF tai JPG. Enintään %{size}. Skaalataan kokoon %{dimensions} px
        bot: Tämä tili suorittaa enimmäkseen automaattisia toimintoja eikä sitä ehkä valvota
        context: Yksi tai useampi asiayhteys, jossa suodattimen pitäisi olla käytössä
        context: Ainakin yksi konteksti, jossa suodattimen pitäisi olla voimassa
        current_password: Turvallisuussyistä kirjoita nykyisen tilin salasana
        current_username: Vahvista kirjoittamalla nykyisen tilin käyttäjätunnus
        digest: Lähetetään vain pitkän poissaolon jälkeen ja vain, jos olet saanut suoria viestejä poissaolosi aikana


@@ 49,20 49,20 @@ fi:
        header: PNG, GIF tai JPG. Enintään %{size}. Skaalataan kokoon %{dimensions} px
        inbox_url: Kopioi URL-osoite haluamasi välittäjän etusivulta
        irreversible: Suodatetut julkaisut katoavat lopullisesti, vaikka suodatin poistettaisiin myöhemmin
        locale: Käyttöliittymän, sähköpostien ja ilmoitusten kieli
        locale: Käyttöliittymän, sähköpostien ja puskuilmoitusten kieli
        password: Käytä vähintään 8 merkkiä
        phrase: Täytetään riippumatta julkaisun kirjainkoon tai sisällön varoituksesta
        phrase: Täsmää riippumatta tekstin aakkoslajista tai julkaisun sisältövaroituksesta
        scopes: Mihin sovellusliittymiin sovellus pääsee käsiksi. Jos valitset ylätason laajuuden, sinun ei tarvitse valita yksittäisiä.
        setting_aggregate_reblogs: Älä näytä uusia tehosteita viesteille, joita on äskettäin tehostettu (koskee vain äskettäin saatuja tehosteita)
        setting_always_send_emails: Yleensä sähköposti-ilmoituksia ei lähetetä, kun käytät aktiivisesti Mastodonia
        setting_default_sensitive: Arkaluontoinen media on oletuksena piilotettu ja se voidaan näyttää yhdellä napsautuksella
        setting_aggregate_reblogs: Älä näytä uusia tehostuksia julkaisuille, joita on äskettäin tehostettu (koskee vain juuri vastaanotettuja tehostuksia)
        setting_always_send_emails: Yleensä sähköposti-ilmoituksia ei lähetetä, kun käytät Mastodonia aktiivisesti
        setting_default_sensitive: Arkaluonteinen media on oletuksena piilotettu, ja se voidaan näyttää yhdellä napsautuksella
        setting_display_media_default: Piilota arkaluonteiseksi merkitty media
        setting_display_media_hide_all: Piilota aina kaikki media
        setting_display_media_show_all: Näytä aina arkaluonteiseksi merkitty media
        setting_display_media_hide_all: Piilota media aina
        setting_display_media_show_all: Näytä media aina
        setting_use_blurhash: Liukuvärit perustuvat piilotettujen kuvien väreihin, mutta sumentavat yksityiskohdat
        setting_use_pending_items: Piilota aikajanan päivitykset napsautuksen taakse syötteen automaattisen vierityksen sijaan
        username: Voit käyttää kirjaimia, numeroita ja alaviivoja
        whole_word: Kun avainsana tai lause on vain aakkosnumeerinen, se otetaan käyttöön, jos se vastaa koko sanaa
        whole_word: Kun avainsana tai -fraasi on kokonaan aakkosnumeerinen, se on voimassa vain, jos se vastaa koko sanaa
      domain_allow:
        domain: Tämä verkkotunnus voi noutaa tietoja tältä palvelimelta ja sieltä saapuvat tiedot käsitellään ja tallennetaan
      email_domain_block:


@@ 71,10 71,10 @@ fi:
      featured_tag:
        name: 'Tässä muutamia hiljattain käyttämiäsi aihetunnisteita:'
      filters:
        action: Valitse, mikä toiminto suoritetaan, kun viesti vastaa suodatinta
        action: Valitse, mikä toiminto suoritetaan, kun julkaisu vastaa suodatinta
        actions:
          hide: Piilota suodatettu sisältö kokonaan ja käyttäydy ikään kuin sitä ei olisi olemassa
          warn: Piilota suodatettu sisältö varoituksen taakse, jossa mainitaan suodattimen otsikko
          warn: Piilota suodatettu sisältö varoituksen taakse, jossa mainitaan suodattimen nimi
      form_admin_settings:
        activity_api_enabled: Paikallisesti julkaistujen julkaisujen, aktiivisten käyttäjien ja rekisteröitymisten viikoittainen määrä
        backups_retention_period: Säilytä luodut arkistot määritetyn määrän päiviä.


@@ 84,7 84,7 @@ fi:
        custom_css: Voit käyttää mukautettuja tyylejä Mastodonin verkkoversiossa.
        mascot: Ohittaa kuvituksen edistyneessä käyttöliittymässä.
        media_cache_retention_period: Ladatut mediatiedostot poistetaan määritetyn määrän päiviä jälkeen, kun arvo on positiivinen ja ladataan uudelleen pyynnöstä.
        peers_api_enabled: Lista verkkotunnuksista, joita tämä palvelin on kohdannut fediversessä. Täällä ei ole tietoja siitä, oletko liitossa tiettyjen palvelinten kanssa, vaan ainoastaan luettelo niistä verkkotunnuksista, joista palvelimesi on ylipäätään tietoinen. Tätä tietoa käytetään palveluissa, jotka keräävät liittotilastoja laajassa merkityksessä.
        peers_api_enabled: Luettelo verkkotunnuksista, jotka tämä palvelin on kohdannut fediversumissa. Se ei kerro, oletko liitossa tietyn palvelimen kanssa, vaan että palvelimesi on ylipäätään tietoinen siitä. Tätä tietoa käytetään palveluissa, jotka keräävät tilastoja liittoutumisesta yleisellä tasolla.
        profile_directory: Profiilihakemisto lueteloi kaikki käyttäjät, jotka ovat ilmoittaneet olevansa löydettävissä.
        require_invite_text: Kun kirjautuminen vaatii manuaalisen hyväksynnän, tee ”Miksi haluat liittyä?” teksti syötetään pakolliseksi eikä vapaaehtoiseksi
        site_contact_email: Kuinka ihmiset voivat tavoittaa sinut oikeudellisissa tai tukikysymyksissä.


@@ 103,7 103,7 @@ fi:
      form_challenge:
        current_password: Olet menossa suojatulle alueelle
      imports:
        data: Toisesta Mastodon-instanssista tuotu CSV-tiedosto
        data: Toiselta Mastodon-palvelimelta tuotu CSV-tiedosto
      invite_request:
        text: Tämä auttaa meitä arvioimaan hakemustasi
      ip_block:


@@ 122,11 122,11 @@ fi:
        webauthn: Jos kyseessä on USB-avain, muista laittaa se paikalleen ja tarvittaessa napauttaa sitä.
      settings:
        indexable: Profiilisi voi näkyä Googlen, Bingin ja muiden hakukoneiden hakutuloksissa.
        show_application: Voit siitä huolimatta aina nähdä, millä sovelluksella julkaisusi laadittiin.
        show_application: Voit silti aina nähdä, mistä sovelluksesta julkaisusi lähetettiin.
      tag:
        name: Voit muuttaa esimerkiksi kirjaimia paremmin luettavaksi
      user:
        chosen_languages: Kun valittu, vain valituilla kielillä julkaistut viestit näkyvät julkisilla aikajanoilla
        chosen_languages: Kun valittu, vain valituilla kielillä kirjoitetut julkaisut näkyvät julkisilla aikajanoilla
        role: Rooli määrää, mitkä käyttöoikeudet käyttäjällä on
      user_role:
        color: Väri, jota käytetään roolin koko käyttöliittymässä, RGB heksamuodossa


@@ 136,42 136,42 @@ fi:
        position: Korkeampi rooli ratkaisee konfliktit tietyissä tilanteissa. Tiettyjä toimintoja voidaan suorittaa vain rooleille, joiden prioriteetti on pienempi
      webhook:
        events: Valitse lähetettävät tapahtumat
        template: Luo oma JSON-hyötykuorma käyttäen muuttujainterpolointia. Jättäessäsi kentän tyhjäksi, käytetään vakio-JSON-kuormaa.
        template: Luo oma JSON-hyötykuorma käyttäen muuttujien interpolointia. Jätä kenttä tyhjäksi käyttääksesi vakio-JSON-kuormaa.
        url: Mihin tapahtumat lähetetään
    labels:
      account:
        discoverable: Sisällytä profiili ja julkaisut etsintäalgoritmeihin
        discoverable: Nosta profiili ja julkaisut esille löytämisalgoritmeissa
        fields:
          name: Nimike
          value: Sisältö
        indexable: Sisällytä julkiset viestit hakutuloksiin
        indexable: Sisällytä julkiset julkaisut hakutuloksiin
        show_collections: Näytä seuratut ja seuraajat profiilissa
        unlocked: Hyväksy uudet seuraajat automaattisesti
      account_alias:
        acct: Vanhan tilin käsittely
        acct: Vanhan tilin käyttäjätunnus
      account_migration:
        acct: Uuden tilin käsittely
        acct: Uuden tilin käyttäjätunnus
      account_warning_preset:
        text: Esiasetettu teksti
        title: Otsikko
        title: Nimi
      admin_account_action:
        include_statuses: Sisällytä raportoidut viestit sähköpostiin
        send_email_notification: Ilmoita käyttäjälle sähköpostitse
        text: Mukautettu varoitus
        type: Toimenpide
        type: Toimi
        types:
          disable: Poista kirjautuminen käytöstä
          none: Älä tee mitään
          sensitive: Arkaluontoinen
          sensitive: Arkaluonteinen
          silence: Hiljennä
          suspend: Poista käytöstä ja tuhoa käyttäjätunnuksen tiedot peruuttamattomasti
        warning_preset_id: Käytä varoitusmallia
      announcement:
        all_day: Koko päivän kestävä tapahtuma
        ends_at: Tapahtuman loppu
        scheduled_at: Ajasta julkaisu
        scheduled_at: Ajoita julkaisu
        starts_at: Tapahtuman alku
        text: Ilmoitus
        text: Tiedote
      appeal:
        text: Perustele, miksi tämä päätös olisi kumottava
      defaults:


@@ 181,51 181,51 @@ fi:
        chosen_languages: Suodata kieliä
        confirm_new_password: Vahvista uusi salasana
        confirm_password: Vahvista salasana
        context: Suodata konteksteista
        context: Suodattimen kontekstit
        current_password: Nykyinen salasana
        data: Tiedot
        display_name: Nimimerkki
        display_name: Näyttönimi
        email: Sähköpostiosoite
        expires_in: Vanhenee
        fields: Profiilin metadata
        header: Otsakekuva
        fields: Lisäkentät
        header: Otsikkokuva
        honeypot: "%{label} (älä täytä)"
        inbox_url: Välittäjän postilaatikon URL-osoite
        irreversible: Pudota piilottamisen sijaan
        locale: Kieli
        max_uses: Käyttökertoja enintään
        new_password: Uusi salasana
        note: Kuvaus
        note: Elämäkerta
        otp_attempt: Kaksivaiheisen tunnistuksen koodi
        password: Salasana
        phrase: Avainsana tai lause
        setting_advanced_layout: Ota käyttöön edistynyt selainkäyttöliittymä
        setting_aggregate_reblogs: Ryhmitä tehostukset aikajanalla
        setting_always_send_emails: Lähetä aina sähköposti-ilmoituksia
        phrase: Avainsana tai -fraasi
        setting_advanced_layout: Ota edistynyt selainkäyttöliittymä käyttöön
        setting_aggregate_reblogs: Ryhmitä tehostukset aikajanoilla
        setting_always_send_emails: Lähetä sähköposti-ilmoitukset aina
        setting_auto_play_gif: Toista GIF-animaatiot automaattisesti
        setting_boost_modal: Kysy vahvistus ennen tehostusta
        setting_default_language: Viestien kieli
        setting_default_privacy: Viestin näkyvyys
        setting_default_sensitive: Merkitse media aina arkaluontoiseksi
        setting_delete_modal: Kysy vahvistusta ennen viestin poistamista
        setting_boost_modal: Kysy vahvistusta ennen tehostusta
        setting_default_language: Julkaisun kieli
        setting_default_privacy: Julkaisun näkyvyys
        setting_default_sensitive: Merkitse media aina arkaluonteiseksi
        setting_delete_modal: Kysy vahvistusta ennen julkaisun poistamista
        setting_disable_swiping: Poista pyyhkäisyt käytöstä
        setting_display_media: Median näyttäminen
        setting_display_media_default: Oletus
        setting_display_media_hide_all: Piilota kaikki
        setting_display_media_show_all: Näytä kaikki
        setting_expand_spoilers: Laajenna aina sisältövaroituksilla merkityt viestit
        setting_expand_spoilers: Laajenna aina sisältövaroituksilla merkityt julkaisut
        setting_hide_network: Piilota verkkosi
        setting_reduce_motion: Vähennä animaatioiden liikettä
        setting_system_font_ui: Käytä järjestelmän oletusfonttia
        setting_theme: Sivuston teema
        setting_trends: Näytä päivän trendit
        setting_unfollow_modal: Kysy vahvistusta, ennen kuin lopetat seuraamisen
        setting_unfollow_modal: Kysy vahvistusta ennen seuraamisen lopettamista
        setting_use_blurhash: Näytä värikkäät liukuvärit piilotetulle medialle
        setting_use_pending_items: Hidastila
        setting_use_pending_items: Hidas tila
        severity: Vakavuus
        sign_in_token_attempt: Turvakoodi
        title: Otsikko
        type: Tietojen laji
        title: Nimi
        type: Tuontilaji
        username: Käyttäjänimi
        username_or_email: Käyttäjänimi tai sähköposti
        whole_word: Koko sana


@@ 236,7 236,7 @@ fi:
      filters:
        actions:
          hide: Piilota kokonaan
          warn: Piilota varoituksella
          warn: Piilota ja näytä varoitus
      form_admin_settings:
        activity_api_enabled: Julkaise yhteenlasketut tilastot käyttäjätoiminnasta rajapinnassa
        backups_retention_period: Käyttäjän arkiston säilytysaika


@@ 268,14 268,14 @@ fi:
      interactions:
        must_be_follower: Estä ilmoitukset käyttäjiltä, jotka eivät seuraa sinua
        must_be_following: Estä ilmoitukset käyttäjiltä, joita et seuraa
        must_be_following_dm: Estä suorat viestit käyttäjiltä, joita et seuraa
        must_be_following_dm: Estä yksityisviestit käyttäjiltä, joita et seuraa
      invite:
        comment: Kommentoi
      invite_request:
        text: Miksi haluat liittyä?
      ip_block:
        comment: Kommentti
        ip: IP
        ip: IP-osoite
        severities:
          no_access: Estä pääsy
          sign_up_block: Estä kirjautumiset


@@ 284,12 284,12 @@ fi:
      notification_emails:
        appeal: Joku valittaa valvojan päätöksestä
        digest: Lähetä koosteviestejä sähköpostitse
        favourite: Lähetä sähköposti, kun joku tykkää tilastasi
        follow: Lähetä sähköposti, kun joku seuraa sinua
        follow_request: Lähetä sähköposti, kun joku pyytää seurata sinua
        mention: Lähetä sähköposti, kun sinut mainitaan
        pending_account: Uusi tili tarvitsee tarkastusta
        reblog: Lähetä sähköposti, kun joku tehosti viestiäsi
        favourite: Joku lisäsi julkaisusi suosikkeihinsa
        follow: Joku seurasi sinua
        follow_request: Joku pyysi saada seurata sinua
        mention: Joku mainitsi sinut
        pending_account: Uusi tili tarvitsee tarkistusta
        reblog: Joku tehosti julkaisuasi
        report: Uusi raportti on lähetetty
        software_updates:
          all: Ilmoita kaikista päivityksistä


@@ 297,12 297,12 @@ fi:
          label: Uusi Mastodon-versio on saatavilla
          none: Älä koskaan ilmoita päivityksistä (ei suositeltu)
          patch: Ilmoita virhekorjauspäivityksistä
        trending_tag: Uusi trendi vaatii tarkastelua
        trending_tag: Uusi trendi vaatii tarkistusta
      rule:
        text: Sääntö
      settings:
        indexable: Sisällytä profiilisivu hakukoneisiin
        show_application: Näytä, mistä sovelluksesta lähetit viestin
        show_application: Näytä, mistä sovelluksesta lähetit julkaisun
      tag:
        listable: Salli tämän aihetunnisteen näkyä hauissa ja ehdotuksissa
        name: Aihetunniste

M config/locales/simple_form.hy.yml => config/locales/simple_form.hy.yml +1 -0
@@ 44,6 44,7 @@ hy:
        setting_display_media_show_all: Մեդիա միշտ ցոյց տալ
        setting_use_blurhash: Կտորները հիմնուում են թաքցուած վիզուալի վրայ՝ խամրեցնելով դետալները
        setting_use_pending_items: Թաքցնել հոսքի թարմացումները կտտոի ետեւում՝ աւտօմատ թարմացուող հոսքի փոխարէն
        username: Միայն լատինատառեր, թուեր եւ տակի գծիկ
        whole_word: Եթէ բանալի բառը կամ արտայայտութիւնը պարունակում է միայն այբբենական նիշեր եւ թուեր, ապա այն կիրառուելու է ամբողջ բառի հետ համընկնելու դէպքում միայն
      domain_allow:
        domain: Այս տիրոյթը կարող է ստանալ տուեալներ այս սպասարկչից եւ ստացուող տուեալները կարող են օգտագործուել եւ պահուել

M config/locales/simple_form.si.yml => config/locales/simple_form.si.yml +55 -56
@@ 7,12 7,10 @@ si:
      account_migration:
        acct: ඔබට යාමට අවශ්‍ය ගිණුමේ username@domain සඳහන් කරන්න
      account_warning_preset:
        text: ඔබට URL, හෑෂ් ටැග් සහ සඳහන් කිරීම් වැනි පෝස්ට් සින්ටැක්ස් භාවිතා කළ හැක
        text: ඔබට ඒ.ස.නි., පූරක අනන්‍යන සහ සැඳහුම් වැනි ලිපි පද ගැළපුම් භාවිතා කිරීමට හැකිය
        title: විකල්ප. ලබන්නාට නොපෙනේ
      admin_account_action:
        include_statuses: මධ්‍යස්ථ ක්‍රියාව හෝ අනතුරු ඇඟවීමට හේතු වී ඇත්තේ කුමන පළ කිරීම්දැයි පරිශීලකයා දකිනු ඇත
        send_email_notification: පරිශීලකයාට ඔවුන්ගේ ගිණුම සමඟ සිදු වූ දේ පිළිබඳ පැහැදිලි කිරීමක් ලැබෙනු ඇත
        text_html: විකල්ප. ඔබට post syntax භාවිතා කළ හැක. කාලය ඉතිරි කර ගැනීම සඳහා ඔබට අනතුරු ඇඟවීමේ</a> <a href="%{path}">කළ හැක
        type_html: "<strong>%{acct}</strong>සමඟ කළ යුතු දේ තෝරන්න"
        types:
          disable: පරිශීලකයාගේ ගිණුම භාවිතා කිරීමෙන් වළක්වන්න, නමුත් ඔවුන්ගේ අන්තර්ගතය මකා දැමීම හෝ සඟවන්න එපා.


@@ 24,7 22,7 @@ si:
        ends_at: විකල්ප. මෙම අවස්ථාවේදී නිවේදනය ස්වයංක්‍රීයව ප්‍රකාශනය කිරීමෙන් ඉවත් වනු ඇත
        scheduled_at: නිවේදනය වහාම ප්‍රකාශයට පත් කිරීමට හිස්ව තබන්න
        starts_at: විකල්ප. ඔබගේ නිවේදනය නිශ්චිත කාල පරාසයකට බැඳී ඇත්නම්
        text: ඔබට post syntax භාවිතා කළ හැක. කරුණාකර පරිශීලකයාගේ තිරය මත නිවේදනය ලබා ගන්නා ඉඩ ගැන සැලකිලිමත් වන්න
        text: ඔබට ලිපි පද ගැළපුම් භාවිතා කිරීමට හැකිය. කරුණාකර නිවේදනයෙන් පරිශ්‍රීලකයින්ගේ තිරයේ ඉඩ කෙතරම් ඇහිරෙනවා ද පිළිබඳව සැලකිලිමත් වන්න
      appeal:
        text: ඔබට වර්ජනයකට අභියාචනා කළ හැක්කේ එක් වරක් පමණි
      defaults:


@@ 38,17 36,16 @@ si:
        email: ඔබට තහවුරු කිරීමේ විද්‍යුත් තැපෑලක් එවනු ලැබේ
        header: PNG, GIF හෝ JPG. වැඩිම %{size}. %{dimensions}px දක්වා අඩු කරනු ඇත
        inbox_url: ඔබට භාවිතා කිරීමට අවශ්‍ය රිලේ හි මුල් පිටුවෙන් URL එක පිටපත් කරන්න
        irreversible: පෙරහන පසුව ඉවත් කළද, පෙරූ පළ කිරීම් ආපසු හැරවිය නොහැකි ලෙස අතුරුදහන් වනු ඇත
        locale: පරිශීලක අතුරුමුහුණතේ භාෂාව, ඊමේල් සහ තල්ලු දැනුම්දීම්
        irreversible: පෙරහන පසුව ඉවත් කළ ද, පෙරූ ලිපි අප්‍රතිවර්ත්‍යව අතුරුදහන් වනු ඇත
        locale: වි-තැපැල්, තල්ලු දැනුම්දීම් සහ පරිශ්‍රීලක අතුරුමුහුණතේ භාෂාව
        password: අවම වශයෙන් අක්ෂර 8 ක් භාවිතා කරන්න
        phrase: පළ කිරීමක පෙළ හෝ අන්තර්ගත අනතුරු ඇඟවීම නොසලකා ගැලපේ
        phrase: ලිපිවල පෙළ හෝ අන්තර්ගත අවවාද නොසලකා ගැළපෙනු ඇත
        scopes: යෙදුමට ප්‍රවේශ වීමට ඉඩ දෙන්නේ කුමන API වලටද. ඔබ ඉහළ මට්ටමේ විෂය පථයක් තෝරා ගන්නේ නම්, ඔබට තනි ඒවා තෝරා ගැනීමට අවශ්‍ය නොවේ.
        setting_aggregate_reblogs: මෑතකදී බූස්ට් කරන ලද පළ කිරීම් සඳහා නව බූස්ට් පෙන්වන්න එපා (අලුතින් ලැබුණු බූස්ට් වලට පමණක් බලපායි)
        setting_always_send_emails: සාමාන්‍යයෙන් ඔබ Mastodon සක්‍රියව භාවිතා කරන විට විද්‍යුත් තැපැල් දැනුම්දීම් නොයවනු ඇත
        setting_always_send_emails: ඔබ නිතර මාස්ටඩන් භාවිතා කරන විට වි-තැපැල් දැනුම්දීම් නොලැබෙයි
        setting_default_sensitive: සංවේදී මාධ්‍ය පෙරනිමියෙන් සඟවා ඇති අතර ක්ලික් කිරීමකින් හෙළිදරව් කළ හැක
        setting_display_media_default: සංවේදී ලෙස සලකුණු කළ මාධ්‍ය සඟවන්න
        setting_display_media_hide_all: සෑම විටම මාධ්‍ය සඟවන්න
        setting_display_media_show_all: සෑම විටම මාධ්‍ය පෙන්වන්න
        setting_display_media_default: සංවේදී බව සලකුණු කළ මාධ්‍ය සඟවන්න
        setting_display_media_hide_all: සැමවිට මාධ්‍ය සඟවන්න
        setting_display_media_show_all: සැමවිට මාධ්‍ය පෙන්වන්න
        setting_use_blurhash: අනුක්‍රමණ සැඟවුණු දෘශ්‍යවල වර්ණ මත පදනම් වන නමුත් ඕනෑම විස්තරයක් අපැහැදිලි කරයි
        setting_use_pending_items: සංග්‍රහය ස්වයංක්‍රීයව අනුචලනය කරනවා වෙනුවට ක්ලික් කිරීමක් පිටුපස කාලරේඛා යාවත්කාලීන සඟවන්න
        whole_word: මූල පදය හෝ වාක්‍ය ඛණ්ඩය අක්ෂරාංක පමණක් වන විට, එය යෙදෙන්නේ එය සම්පූර්ණ වචනයට ගැලපේ නම් පමණි


@@ 58,14 55,14 @@ si:
        domain: මෙය විද්‍යුත් තැපැල් ලිපිනයේ හෝ එය භාවිතා කරන MX වාර්තාවේ පෙන්වන ඩොමේන් නාමය විය හැක. ලියාපදිංචි වූ පසු ඒවා පරීක්ෂා කරනු ලැබේ.
        with_dns_records: ලබා දී ඇති වසමේ DNS වාර්තා විසඳීමට උත්සාහ කරන අතර ප්‍රතිඵල ද අවහිර කරනු ලැබේ
      filters:
        action: පළ කිරීමක් පෙරහනට ගැළපෙන විට සිදු කළ යුතු ක්‍රියාව තෝරන්න
        action: ලිපියක් පෙරහනට ගැළපෙන විට ඉටු විය යුතු ක්‍රියාමාර්ගය තෝරන්න
        actions:
          hide: පෙරහන් කළ අන්තර්ගතය සම්පූර්ණයෙන්ම සඟවන්න, එය නොපවතින ලෙස හැසිරෙන්න
          warn: පෙරහන මාතෘකාව සඳහන් කරන අනතුරු ඇඟවීමක් පිටුපස පෙරූ අන්තර්ගතය සඟවන්න
      form_challenge:
        current_password: ඔබ ආරක්ෂිත ප්‍රදේශයකට ඇතුල් වේ
      imports:
        data: CSV ගොනුව වෙනත් Mastodon සේවාදායකයකින් අපනයනය කරන ලදී
        data: CSV ගොනුව වෙනත් මාස්ටඩන් සේවාදායකයකින් නිර්යාත කර ඇත
      invite_request:
        text: මෙය ඔබගේ අයදුම්පත සමාලෝචනය කිරීමට අපට උපකාරී වනු ඇත
      ip_block:


@@ 84,7 81,7 @@ si:
      tag:
        name: ඔබට අකුරු වල ආවරණය පමණක් වෙනස් කළ හැකිය, උදාහරණයක් ලෙස, එය වඩාත් කියවිය හැකි කිරීමට
      user:
        chosen_languages: පරීක්ෂා කළ විට, තෝරාගත් භාෂාවලින් පළ කිරීම් පමණක් පොදු කාලරේඛා තුළ සංදර්ශන කෙරේ
        chosen_languages: සබල නම්, තෝරාගත් භාෂාවල ලිපි පමණක් ප්‍රසිද්ධ කාල රේඛාවේ දිස්වේ
      webhook:
        events: යැවීමට සිදුවීම් තෝරන්න
        url: සිදුවීම් යවනු ලබන ස්ථානය


@@ 99,16 96,16 @@ si:
        acct: නව ගිණුමේ හැසිරවීම
      account_warning_preset:
        text: පෙර සැකසූ පෙළ
        title: ශීර්ෂය
        title: සිරැසිය
      admin_account_action:
        include_statuses: විද්‍යුත් තැපෑලෙහි වාර්තා කරන ලද පළ කිරීම් ඇතුළත් කරන්න
        include_statuses: වි-තැපෑලට වාර්තා කරන ලද ලිපි ද ඇතුළත් කරන්න
        send_email_notification: විද්‍යුත් තැපෑලෙන් පරිශීලකයාට දැනුම් දෙන්න
        text: අභිරුචි අනතුරු ඇඟවීම
        type: ක්‍රියාමාර්ගය
        types:
          disable: කැටි කරන්න
          none: අනතුරු ඇඟවීමක් යවන්න
          sensitive: පවතී
          sensitive: සංවේදීතාව
          silence: සීමාව
          suspend: අත්හිටුවන්න
        warning_preset_id: අනතුරු ඇඟවීමේ පෙරසිටුවක් භාවිතා කරන්න


@@ 122,13 119,12 @@ si:
        text: මෙම තීරණය ආපසු හැරවිය යුත්තේ මන්දැයි පැහැදිලි කරන්න
      defaults:
        autofollow: ඔබගේ ගිණුම අනුගමනය කිරීමට ආරාධනා කරන්න
        avatar: අවතාරය
        bot: මෙය ස්වයං ක්‍රමලේඛගත ගිණුමකි
        chosen_languages: භාෂා පෙරහන් කරන්න
        confirm_new_password: නව මුර පදය තහවුරු කරන්න
        confirm_password: මුරපදය තහවුරු කර ඇත
        context: සන්දර්භ පෙරහන් කරන්න
        current_password: වත්මන් මුර පදය
        avatar: පැතිකඩ ඡායාරූපය
        chosen_languages: භාෂා පෙරන්න
        confirm_new_password: නව මුරපදය තහවුරු කරන්න
        confirm_password: මුරපදය තහවුරු කරන්න
        context: සන්දර්භ පෙරන්න
        current_password: වත්මන් මුරපදය
        data: දත්ත
        display_name: ප්රදර්ශන නාමය
        email: වි-තැපැල් ලිපිනය


@@ 138,39 134,35 @@ si:
        honeypot: "%{label} (පුරවන්න එපා)"
        inbox_url: රිලේ එන ලිපි URL
        irreversible: සැඟවීම වෙනුවට අතහරින්න
        locale: අතුරු මුහුණත භාෂාව
        locale: අතුරු මුහුණතේ භාෂාව
        max_uses: උපරිම භාවිත ගණන
        new_password: නව මුරපදය
        note: ජෛව
        otp_attempt: ද්වි සාධක කේතය
        password: මුරපදය
        phrase: මූල පදය හෝ වාක්‍ය ඛණ්ඩය
        setting_advanced_layout: උසස් වෙබ් අතුරු මුහුණත සබල කරන්න
        setting_aggregate_reblogs: කණ්ඩායම් කාලරේඛාව වැඩි කරයි
        setting_always_send_emails: සෑම විටම විද්‍යුත් තැපැල් දැනුම්දීම් යවන්න
        setting_auto_play_gif: සජීවිකරණ GIF ස්වයංක්‍රීයව ධාවනය කරන්න
        setting_boost_modal: වැඩි කිරීමට පෙර තහවුරු කිරීමේ සංවාදය පෙන්වන්න
        setting_default_language: පළ කිරීමේ භාෂාව
        setting_default_privacy: පුද්ගලිකත්වය පළ කිරීම
        setting_default_sensitive: සෑම විටම මාධ්‍ය සංවේදී ලෙස සලකුණු කරන්න
        setting_delete_modal: පළ කිරීමක් මැකීමට පෙර තහවුරු කිරීමේ සංවාදය පෙන්වන්න
        setting_disable_swiping: ස්වයිප් චලන අක්‍රීය කරන්න
        setting_default_language: ලිපිවල භාෂාව
        setting_default_privacy: ලිපියේ රහස්‍යතාව
        setting_default_sensitive: සෑමවිට මාධ්‍ය සංවේදී බව සලකුණු කරන්න
        setting_delete_modal: ලිපියක් මැකීමට පෙර ඒ ගැන විමසන්න
        setting_display_media: මාධ්ය සංදර්ශකය
        setting_display_media_default: පෙරනිමිය
        setting_display_media_default: පෙරනිමි
        setting_display_media_hide_all: සියල්ල සඟවන්න
        setting_display_media_show_all: සියල්ල පෙන්වන්න
        setting_expand_spoilers: අන්තර්ගත අනතුරු ඇඟවීම් සමඟ සලකුණු කර ඇති පළ කිරීම් සැමවිටම පුළුල් කරන්න
        setting_expand_spoilers: අන්තර්ගත අවවාද සහිත ලිපි සැමවිට දිගහරින්න
        setting_hide_network: ඔබගේ ජාලය සඟවන්න
        setting_reduce_motion: සජීවිකරණවල චලනය අඩු කරන්න
        setting_system_font_ui: පද්ධතියේ පෙරනිමි අකුරු භාවිතා කරන්න
        setting_system_font_ui: පද්ධතියේ පෙරනිමි රුවකුරු භාවිතා කරන්න
        setting_theme: අඩවියේ තේමාව
        setting_trends: අද ප්‍රවණතා පෙන්වන්න
        setting_unfollow_modal: යමෙකු අනුගමනය නොකිරීමට පෙර තහවුරු කිරීමේ සංවාදය පෙන්වන්න
        setting_use_blurhash: සැඟවුණු මාධ්‍ය සඳහා වර්ණවත් අනුක්‍රමික පෙන්වන්න
        setting_use_pending_items: මන්දගාමී මාදිලිය
        setting_use_pending_items: මන්දගාමී ප්‍රකාරය
        severity: බරපතලකම
        sign_in_token_attempt: ආරක්‍ෂණ කේතය
        title: ශීර්ෂය
        title: සිරැසිය
        type: ආයාත වර්ගය
        username: පරිශීලක නාමය
        username_or_email: පරි. නාමය හෝ වි-තැපෑල


@@ 181,12 173,16 @@ si:
        name: හෑෂ් ටැගය
      filters:
        actions:
          hide: සම්පූර්ණයෙන්ම සඟවන්න
          warn: අනතුරු ඇඟවීමක් සමඟ සඟවන්න
          hide: මුළුමනින්ම සඟවන්න
          warn: අවවාදයක් සහිතව සඟවන්න
      form_admin_settings:
        custom_css: අභිරුචි CSS
        profile_directory: පැතිකඩ නාමාවලිය සබල කරන්න
        site_terms: රහස්‍යතා ප්‍රතිපත්තිය
        site_title: සේවාදායකයේ නම
        theme: පෙරනිමි තේමාව
      interactions:
        must_be_follower: අනුගාමිකයින් නොවන අයගේ දැනුම්දීම් අවහිර කරන්න
        must_be_following: ඔබ අනුගමනය නොකරන පුද්ගලයින්ගේ දැනුම්දීම් අවහිර කරන්න
        must_be_following_dm: ඔබ අනුගමනය නොකරන පුද්ගලයින්ගෙන් සෘජු පණිවිඩ අවහිර කරන්න
        must_be_following_dm: ඔබ නොදන්නා අයගෙන් සෘජු පණිවිඩ ලැබීම අවහිර කරන්න
      invite:
        comment: අදහස
      invite_request:


@@ 195,31 191,34 @@ si:
        comment: අදහස
        ip: අ.ජා. කෙ. (IP)
        severities:
          no_access: ප්රවේශය අවහිර කරන්න
          no_access: ප්‍රවේශය අවහිර කරන්න
          sign_up_requires_approval: ලියාපදිංචි වීම සීමා කරන්න
        severity: නීතිය
      notification_emails:
        appeal: යමෙක් උපපරිපාලක තීරණයකට අභියාචනා කරයි
        digest: digest ඊමේල් යවන්න
        favourite: කවුරුහරි ඔබේ පළ කිරීම ප්‍රිය කළා
        follow: කවුරුහරි ඔබව අනුගමනය කළා
        follow_request: කවුරුහරි ඔබව අනුගමනය කරන ලෙස ඉල්ලා සිටියේය
        mention: කවුරුහරි ඔබව සඳහන් කළා
        pending_account: නව ගිණුම සමාලෝචනය අවශ්‍යයි
        reblog: කවුරුහරි ඔබේ පළ කිරීම වැඩි කළා
        report: නව වාර්තාවක් ඉදිරිපත් කෙරේ
        trending_tag: නව ප්‍රවණතාවයට සමාලෝචනයක් අවශ්‍ය වේ
        favourite: යමෙක් ඔබගේ ලිපියට ප්‍රිය කළා
        follow: යමෙක් ඔබව අනුගමනය කළා
        mention: යමෙක් ඔබව සඳහන් කළා
        report: නව වාර්තාවක් යොමු කර ඇත
      rule:
        text: නීතිය
      tag:
        listable: මෙම හැෂ් ටැගය සෙවීම් සහ යෝජනා වල දිස් වීමට ඉඩ දෙන්න
        name: හෑෂ් ටැගය
        trendable: මෙම හැෂ් ටැගය ප්‍රවණතා යටතේ දිස් වීමට ඉඩ දෙන්න
        usable: මෙම හැෂ් ටැගය භාවිතා කිරීමට පළ කිරීම් වලට ඉඩ දෙන්න
        usable: ලිපි සඳහා මෙම පූරක අනන්‍යනය භාවිතයට ඉඩදෙන්න
      user:
        role: භූමිකාව
        time_zone: වේලා කලාපය
      user_role:
        color: චිහ්නයේ පාට
        name: නම
        permissions_as_keys: අවසර
        position: ප්‍රමුඛත්‍වය
      webhook:
        events: සබල කළ සිදුවීම්
        url: අන්ත ලක්ෂ්‍ය URL
    'no': නැත
    'no': නැහැ
    recommended: නිර්දේශිත
    required:
      mark: "*"

M config/routes.rb => config/routes.rb +4 -4
@@ 85,10 85,10 @@ Rails.application.routes.draw do

  devise_for :users, path: 'auth', format: false, controllers: {
    omniauth_callbacks: 'auth/omniauth_callbacks',
    sessions:           'auth/sessions',
    registrations:      'auth/registrations',
    passwords:          'auth/passwords',
    confirmations:      'auth/confirmations',
    sessions: 'auth/sessions',
    registrations: 'auth/registrations',
    passwords: 'auth/passwords',
    confirmations: 'auth/confirmations',
  }

  get '/users/:username', to: redirect('/@%{username}'), constraints: lambda { |req| req.format.nil? || req.format.html? }

M lib/mastodon/cli/upgrade.rb => lib/mastodon/cli/upgrade.rb +25 -17
@@ 125,27 125,12 @@ module Mastodon::CLI
        progress.log("Moving #{previous_path} to #{upgraded_path}") if options[:verbose]

        begin
          unless dry_run?
            FileUtils.mkdir_p(File.dirname(upgraded_path))
            FileUtils.mv(previous_path, upgraded_path)

            begin
              FileUtils.rmdir(File.dirname(previous_path), parents: true)
            rescue Errno::ENOTEMPTY
              # OK
            end
          end
          move_previous_to_upgraded
        rescue => e
          progress.log(pastel.red("Error processing #{previous_path}: #{e}"))
          success = false

          unless dry_run?
            begin
              FileUtils.rmdir(File.dirname(upgraded_path), parents: true)
            rescue Errno::ENOTEMPTY
              # OK
            end
          end
          remove_directory
        end
      end



@@ 155,5 140,28 @@ module Mastodon::CLI
      attachment.instance_write(:storage_schema_version, previous_storage_schema_version)
      success
    end

    def move_previous_to_upgraded(previous_path, upgraded_path)
      return if dry_run?

      FileUtils.mkdir_p(File.dirname(upgraded_path))
      FileUtils.mv(previous_path, upgraded_path)

      begin
        FileUtils.rmdir(File.dirname(previous_path), parents: true)
      rescue Errno::ENOTEMPTY
        # OK
      end
    end

    def remove_directory(path)
      return if dry_run?

      begin
        FileUtils.rmdir(File.dirname(path), parents: true)
      rescue Errno::ENOTEMPTY
        # OK
      end
    end
  end
end

M lib/mastodon/migration_helpers.rb => lib/mastodon/migration_helpers.rb +0 -3
@@ 37,7 37,6 @@

# This is bad form, but there are enough differences that it's impractical to do
# otherwise:
# rubocop:disable all

module Mastodon
  module MigrationHelpers


@@ 989,5 988,3 @@ into similar problems in the future (e.g. when new tables are created).
    end
  end
end

# rubocop:enable all

M lib/mastodon/version.rb => lib/mastodon/version.rb +2 -2
@@ 9,7 9,7 @@ module Mastodon
    end

    def minor
      2
      3
    end

    def patch


@@ 17,7 17,7 @@ module Mastodon
    end

    def default_prerelease
      ''
      'alpha.0'
    end

    def prerelease

M package.json => package.json +1 -1
@@ 175,7 175,7 @@
    "@types/react-dom": "^18.2.4",
    "@types/react-helmet": "^6.1.6",
    "@types/react-immutable-proptypes": "^2.1.0",
    "@types/react-motion": "^0.0.34",
    "@types/react-motion": "^0.0.35",
    "@types/react-overlays": "^3.1.0",
    "@types/react-router-dom": "^5.3.3",
    "@types/react-select": "^5.0.1",

M spec/helpers/languages_helper_spec.rb => spec/helpers/languages_helper_spec.rb +26 -0
@@ 60,4 60,30 @@ describe LanguagesHelper do
      end
    end
  end

  describe 'sorted_locales' do
    context 'when sorting with native name' do
      it 'returns Suomi after Gàidhlig' do
        expect(described_class.sorted_locale_keys(%w(fi gd))).to eq(%w(gd fi))
      end
    end

    context 'when sorting with diacritics' do
      it 'returns Íslensk before Suomi' do
        expect(described_class.sorted_locale_keys(%w(fi is))).to eq(%w(is fi))
      end
    end

    context 'when sorting with non-Latin' do
      it 'returns Suomi before Amharic' do
        expect(described_class.sorted_locale_keys(%w(am fi))).to eq(%w(fi am))
      end
    end

    context 'when sorting with local variants' do
      it 'returns variant in-line' do
        expect(described_class.sorted_locale_keys(%w(en eo en-GB))).to eq(%w(en en-GB eo))
      end
    end
  end
end

R spec/models/account_statuses_filter_spec.rb => spec/lib/account_statuses_filter_spec.rb +15 -1
@@ 202,7 202,7 @@ RSpec.describe AccountStatusesFilter do
      context 'when blocking a reblogged domain' do
        let(:other_account) { Fabricate(:account, domain: 'example.com') }
        let(:reblogging_status) { Fabricate(:status, account: other_account) }
        let(:reblog) { Fabricate(:status, account: account, visibility: 'public', reblog: reblogging_status) }
        let!(:reblog) { Fabricate(:status, account: account, visibility: 'public', reblog: reblogging_status) }

        before do
          current_account.block_domain!(other_account.domain)


@@ 213,6 213,20 @@ RSpec.describe AccountStatusesFilter do
        end
      end

      context 'when blocking an unrelated domain' do
        let(:other_account) { Fabricate(:account, domain: nil) }
        let(:reblogging_status) { Fabricate(:status, account: other_account, visibility: 'public') }
        let!(:reblog) { Fabricate(:status, account: account, visibility: 'public', reblog: reblogging_status) }

        before do
          current_account.block_domain!('example.com')
        end

        it 'returns the reblog from the non-blocked domain' do
          expect(subject.results.pluck(:id)).to include(reblog.id)
        end
      end

      context 'when muting a reblogged account' do
        let(:reblog) { status_with_reblog!('public') }


M spec/lib/cache_buster_spec.rb => spec/lib/cache_buster_spec.rb +8 -0
@@ 28,6 28,14 @@ describe CacheBuster do
    end

    context 'when using default options' do
      around do |example|
        # Disables the CacheBuster.new deprecation warning about default arguments.
        # Remove this `silence` block when default arg support is removed from CacheBuster
        ActiveSupport::Deprecation.silence do
          example.run
        end
      end

      include_examples 'makes_request'
    end


M spec/models/account_spec.rb => spec/models/account_spec.rb +1 -1
@@ 700,7 700,7 @@ RSpec.describe Account do
      expect(subject.match('Check this out https://medium.com/@alice/some-article#.abcdef123')).to be_nil
    end

    xit 'does not match URL query string' do
    it 'does not match URL query string' do
      expect(subject.match('https://example.com/?x=@alice')).to be_nil
    end
  end

M spec/models/relationship_filter_spec.rb => spec/models/relationship_filter_spec.rb +48 -20
@@ 6,32 6,60 @@ describe RelationshipFilter do
  let(:account) { Fabricate(:account) }

  describe '#results' do
    context 'when default params are used' do
      subject do
        described_class.new(account, 'order' => 'active').results
      end
    let(:account_of_7_months) { Fabricate(:account_stat, statuses_count: 1, last_status_at: 7.months.ago).account }
    let(:account_of_1_day)    { Fabricate(:account_stat, statuses_count: 1, last_status_at: 1.day.ago).account }
    let(:account_of_3_days)   { Fabricate(:account_stat, statuses_count: 1, last_status_at: 3.days.ago).account }
    let(:silent_account)      { Fabricate(:account_stat, statuses_count: 0, last_status_at: nil).account }

    before do
      account.follow!(account_of_7_months)
      account.follow!(account_of_1_day)
      account.follow!(account_of_3_days)
      account.follow!(silent_account)
    end

      before do
        add_following_account_with(last_status_at: 7.days.ago)
        add_following_account_with(last_status_at: 1.day.ago)
        add_following_account_with(last_status_at: 3.days.ago)
    context 'when ordering by last activity' do
      context 'when not filtering' do
        subject do
          described_class.new(account, 'order' => 'active').results
        end

        it 'returns followings ordered by last activity' do
          expect(subject).to eq [account_of_1_day, account_of_3_days, account_of_7_months, silent_account]
        end
      end

      it 'returns followings ordered by last activity' do
        expected_result = account.following.eager_load(:account_stat).reorder(nil).by_recent_status
      context 'when filtering for dormant accounts' do
        subject do
          described_class.new(account, 'order' => 'active', 'activity' => 'dormant').results
        end

        expect(subject).to eq expected_result
        it 'returns dormant followings ordered by last activity' do
          expect(subject).to eq [account_of_7_months, silent_account]
        end
      end
    end
  end

  def add_following_account_with(last_status_at:)
    following_account = Fabricate(:account)
    Fabricate(:account_stat, account: following_account,
                             last_status_at: last_status_at,
                             statuses_count: 1,
                             following_count: 0,
                             followers_count: 0)
    Fabricate(:follow, account: account, target_account: following_account).account
    context 'when ordering by account creation' do
      context 'when not filtering' do
        subject do
          described_class.new(account, 'order' => 'recent').results
        end

        it 'returns followings ordered by last account creation' do
          expect(subject).to eq [silent_account, account_of_3_days, account_of_1_day, account_of_7_months]
        end
      end

      context 'when filtering for dormant accounts' do
        subject do
          described_class.new(account, 'order' => 'recent', 'activity' => 'dormant').results
        end

        it 'returns dormant followings ordered by last activity' do
          expect(subject).to eq [silent_account, account_of_7_months]
        end
      end
    end
  end
end

M spec/requests/cache_spec.rb => spec/requests/cache_spec.rb +1 -0
@@ 30,6 30,7 @@ module TestEndpoints
    /directory
    /@alice
    /@alice/110224538612341312
    /deck/home
  ).freeze

  # Endpoints that should be cachable when accessed anonymously but have a Vary

M spec/serializers/activitypub/note_serializer_spec.rb => spec/serializers/activitypub/note_serializer_spec.rb +10 -3
@@ 7,7 7,7 @@ describe ActivityPub::NoteSerializer do

  let!(:account) { Fabricate(:account) }
  let!(:other) { Fabricate(:account) }
  let!(:parent) { Fabricate(:status, account: account, visibility: :public) }
  let!(:parent) { Fabricate(:status, account: account, visibility: :public, language: 'zh-TW') }
  let!(:reply_by_account_first) { Fabricate(:status, account: account, thread: parent, visibility: :public) }
  let!(:reply_by_account_next) { Fabricate(:status, account: account, thread: parent, visibility: :public) }
  let!(:reply_by_other_first) { Fabricate(:status, account: other, thread: parent, visibility: :public) }


@@ 18,8 18,15 @@ describe ActivityPub::NoteSerializer do
    @serialization = ActiveModelSerializers::SerializableResource.new(parent, serializer: described_class, adapter: ActivityPub::Adapter)
  end

  it 'has a Note type' do
    expect(subject['type']).to eql('Note')
  it 'has the expected shape' do
    expect(subject).to include({
      '@context' => include('https://www.w3.org/ns/activitystreams'),
      'type' => 'Note',
      'attributedTo' => ActivityPub::TagManager.instance.uri_for(account),
      'contentMap' => include({
        'zh-TW' => a_kind_of(String),
      }),
    })
  end

  it 'has a replies collection' do

M streaming/index.js => streaming/index.js +21 -12
@@ 1407,19 1407,21 @@ const startServer = async () => {
  };

  wss.on('connection', (ws, req) => {
    const location = url.parse(req.url, true);
    // Note: url.parse could throw, which would terminate the connection, so we
    // increment the connected clients metric straight away when we establish
    // the connection, without waiting:
    connectedClients.labels({ type: 'websocket' }).inc();

    // Setup request properties:
    req.requestId = uuid.v4();
    req.remoteAddress = ws._socket.remoteAddress;

    // Setup connection keep-alive state:
    ws.isAlive = true;

    ws.on('pong', () => {
      ws.isAlive = true;
    });

    connectedClients.labels({ type: 'websocket' }).inc();

    /**
     * @type {WebSocketSession}
     */


@@ 1429,27 1431,31 @@ const startServer = async () => {
      subscriptions: {},
    };

    const onEnd = () => {
    ws.on('close', function onWebsocketClose() {
      const subscriptions = Object.keys(session.subscriptions);

      subscriptions.forEach(channelIds => {
        removeSubscription(session.subscriptions, channelIds.split(';'), req)
      });

      // Decrement the metrics for connected clients:
      connectedClients.labels({ type: 'websocket' }).dec();

      // ensure garbage collection:
      session.socket = null;
      session.request = null;
      session.subscriptions = {};
    });

      connectedClients.labels({ type: 'websocket' }).dec();
    };

    ws.on('close', onEnd);
    ws.on('error', onEnd);
    // Note: immediately after the `error` event is emitted, the `close` event
    // is emitted. As such, all we need to do is log the error here.
    ws.on('error', (err) => {
      log.error('websocket', err.toString());
    });

    ws.on('message', (data, isBinary) => {
      if (isBinary) {
        log.warn('socket', 'Received binary data, closing connection');
        log.warn('websocket', 'Received binary data, closing connection');
        ws.close(1003, 'The mastodon streaming server does not support binary messages');
        return;
      }


@@ 1472,7 1478,10 @@ const startServer = async () => {

    subscribeWebsocketToSystemChannel(session);

    if (location.query.stream) {
    // Parse the URL for the connection arguments (if supplied), url.parse can throw:
    const location = req.url && url.parse(req.url, true);

    if (location && location.query.stream) {
      subscribeWebsocketToChannel(session, firstParam(location.query.stream), location.query);
    }
  });

M yarn.lock => yarn.lock +152 -134
@@ 1096,13 1096,20 @@
  dependencies:
    regenerator-runtime "^0.12.0"

"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.8", "@babel/runtime@^7.18.3", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.13", "@babel/runtime@^7.20.7", "@babel/runtime@^7.22.3", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2":
"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.8", "@babel/runtime@^7.18.3", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.13", "@babel/runtime@^7.20.7", "@babel/runtime@^7.22.3", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7":
  version "7.22.15"
  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.15.tgz#38f46494ccf6cf020bd4eed7124b425e83e523b8"
  integrity sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==
  dependencies:
    regenerator-runtime "^0.14.0"

"@babel/runtime@^7.12.1", "@babel/runtime@^7.9.2":
  version "7.23.1"
  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.1.tgz#72741dc4d413338a91dcb044a86f3c0bc402646d"
  integrity sha512-hC2v6p8ZSI/W0HUzh3V8C5g+NwSKzKPtJwSpTjwl0o297GP9+ZLQSkdvHz46CM3LqyoXxq+5G9komY+eSqSO0g==
  dependencies:
    regenerator-runtime "^0.14.0"

"@babel/template@^7.22.15", "@babel/template@^7.22.5":
  version "7.22.15"
  resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38"


@@ 1298,7 1305,12 @@
  dependencies:
    eslint-visitor-keys "^3.3.0"

"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1":
"@eslint-community/regexpp@^4.5.1":
  version "4.9.0"
  resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.9.0.tgz#7ccb5f58703fa61ffdcbf39e2c604a109e781162"
  integrity sha512-zJmuCWj2VLBt4c25CfBIbMZLGLyhkvs7LznyVX5HfpzeocThgIj5XQK4L+g3U36mMcx8bPMhGyPpwCATamC4jQ==

"@eslint-community/regexpp@^4.6.1":
  version "4.8.1"
  resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.8.1.tgz#8c4bb756cc2aa7eaf13cfa5e69c83afb3260c20c"
  integrity sha512-PWiOzLIUAjN/w5K17PoF4n6sKBw0gqLHPhywmYHP4t1VFQQVYeb1yWsJwnMVEMl3tUHME7X/SJPZLmtG7XBDxQ==


@@ 1739,9 1751,9 @@
    "@jridgewell/sourcemap-codec" "^1.4.14"

"@material-design-icons/svg@^0.14.10":
  version "0.14.12"
  resolved "https://registry.yarnpkg.com/@material-design-icons/svg/-/svg-0.14.12.tgz#b3dd27b4c2a93e0310f51acfb311846b0212f987"
  integrity sha512-hVEMICFvG26SKDXatPmz+vY5BAqLPCDiyXnw+KN46FXOtY4PcpeAfzFZvwt6D9ywNnVJd4EvmLdlWgLmtOWxbA==
  version "0.14.13"
  resolved "https://registry.yarnpkg.com/@material-design-icons/svg/-/svg-0.14.13.tgz#de5a79038cf8b281f4b47d79c07399b2b92fcfb7"
  integrity sha512-nCExGZOtoLoFeeqShEOM4XA9DkkLzLlQdk/ZxHxps0//dz6e1Lw3fvQbZ2X/+0Dz2O+udiEukfZ4Nd4KpHg8aA==

"@nodelib/fs.scandir@2.1.5":
  version "2.1.5"


@@ 1813,9 1825,9 @@
  integrity sha512-tOQQBVH8LsUpGXqDnk+kaOGVsgZ8maHAhEiw3Git3p88q+c0Slgu47HuDnL6sVxeCfz24zbq7dOjsVYDiTpDIA==

"@reduxjs/toolkit@^1.9.5":
  version "1.9.6"
  resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-1.9.6.tgz#fc968b45fe5b17ff90932c4556960d9c1078365a"
  integrity sha512-Gc4ikl90ORF4viIdAkY06JNUnODjKfGxZRwATM30EdHq8hLSVoSrwXne5dd739yenP5bJxAX7tLuOWK5RPGtrw==
  version "1.9.7"
  resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-1.9.7.tgz#7fc07c0b0ebec52043f8cb43510cf346405f78a6"
  integrity sha512-t7v8ZPxhhKgOKtU+uyJT13lu4vL7az5aFi4IdoDs/eS548edn2M8Ik9h8fxgvMjGoAUVFSt6ZC1P5cWmQ014QQ==
  dependencies:
    immer "^9.0.21"
    redux "^4.2.1"


@@ 2305,9 2317,9 @@
  integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==

"@types/node@*":
  version "20.6.5"
  resolved "https://registry.yarnpkg.com/@types/node/-/node-20.6.5.tgz#4c6a79adf59a8e8193ac87a0e522605b16587258"
  integrity sha512-2qGq5LAOTh9izcc0+F+dToFigBWiK1phKPt7rNhOqJSr35y8rlIBjDwGtFSgAI6MGIhjwOVNSQZVdJsZJ2uR1w==
  version "20.7.1"
  resolved "https://registry.yarnpkg.com/@types/node/-/node-20.7.1.tgz#06d732ead0bd5ad978ef0ea9cbdeb24dc8717514"
  integrity sha512-LT+OIXpp2kj4E2S/p91BMe+VgGX2+lfO+XTpfXhh+bCk2LkQtHZSub8ewFBMGP5ClysPjTDFa4sMI8Q3n4T0wg==

"@types/node@14 || 16 || 17":
  version "17.0.45"


@@ 2349,9 2361,9 @@
  integrity sha512-O397rnSS9iQI4OirieAtsDqvCj4+3eY1J+EPdNTKuHuRWIfUoGyzX294o8C4KJYaLqgSrd2o60c5EqCU8Zv02g==

"@types/prop-types@*", "@types/prop-types@^15.7.5":
  version "15.7.7"
  resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.7.tgz#f9361f7b87fd5d8188b2c998db0a1f47e9fb391a"
  integrity sha512-FbtmBWCcSa2J4zL781Zf1p5YUBXQomPEcep9QZCfRfQgTxz3pJWiDFLebohZ9fFntX5ibzOkSsrJ0TEew8cAog==
  version "15.7.8"
  resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.8.tgz#805eae6e8f41bd19e88917d2ea200dc992f405d3"
  integrity sha512-kMpQpfZKSCBqltAJwskgePRaYRFukDkm1oItcAbC3gNELR20XIBcN9VRgg4+m8DKsTfkWeA4m4Imp4DDuWy7FQ==

"@types/punycode@^2.1.0":
  version "2.1.0"


@@ 2369,36 2381,36 @@
  integrity sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==

"@types/range-parser@*":
  version "1.2.4"
  resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc"
  integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==
  version "1.2.5"
  resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.5.tgz#38bd1733ae299620771bd414837ade2e57757498"
  integrity sha512-xrO9OoVPqFuYyR/loIHjnbvvyRZREYKLjxV4+dY6v3FQR3stQ9ZxIGkaclF7YhI9hfjpuTbu14hZEy94qKLtOA==

"@types/react-dom@^18.0.0", "@types/react-dom@^18.2.4":
  version "18.2.7"
  resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.7.tgz#67222a08c0a6ae0a0da33c3532348277c70abb63"
  integrity sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==
  version "18.2.8"
  resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.8.tgz#338f1b0a646c9f10e0a97208c1d26b9f473dffd6"
  integrity sha512-bAIvO5lN/U8sPGvs1Xm61rlRHHaq5rp5N3kp9C+NJ/Q41P8iqjkXSu0+/qu8POsjH9pNWb0OYabFez7taP7omw==
  dependencies:
    "@types/react" "*"

"@types/react-helmet@^6.1.6":
  version "6.1.6"
  resolved "https://registry.yarnpkg.com/@types/react-helmet/-/react-helmet-6.1.6.tgz#7d1afd8cbf099616894e8240e9ef70e3c6d7506d"
  integrity sha512-ZKcoOdW/Tg+kiUbkFCBtvDw0k3nD4HJ/h/B9yWxN4uDO8OkRksWTO+EL+z/Qu3aHTeTll3Ro0Cc/8UhwBCMG5A==
  version "6.1.7"
  resolved "https://registry.yarnpkg.com/@types/react-helmet/-/react-helmet-6.1.7.tgz#4cecc03165084727408d29d92d8fdd4a7e267403"
  integrity sha512-mUFOrdR3AIvHE8BEaqzfPEnR62xq5PHQJehhgNtj78x0d5NOxUCQ0j+r9OZ4RvB+prNZx9wvQnVW8ApFBX+fig==
  dependencies:
    "@types/react" "*"

"@types/react-immutable-proptypes@^2.1.0":
  version "2.1.0"
  resolved "https://registry.yarnpkg.com/@types/react-immutable-proptypes/-/react-immutable-proptypes-2.1.0.tgz#c045fb48ba28c34c9d759abc3a51a04b5321b77a"
  integrity sha512-NRH4W4mgymzyM2gnAG+i2VoOdWIBOQlJlSyAgnFiBTdJ0l8IVeyCtdWP8g6Lra59sUBj2XUO/+DkfmrRAxj6UA==
  version "2.1.1"
  resolved "https://registry.yarnpkg.com/@types/react-immutable-proptypes/-/react-immutable-proptypes-2.1.1.tgz#9327e09b07ea61c95a8c99869a5e9f0fc1690cc4"
  integrity sha512-PiVos0qCotGqI+J0kOeFhbeg7zK8StPMTSDGaTtgYkX6UPjuVVS7lJMedyt4kAMFbM/2QE0bbP5jh22WqtspQg==
  dependencies:
    "@types/prop-types" "*"
    immutable "^3.8.2"

"@types/react-motion@^0.0.34":
  version "0.0.34"
  resolved "https://registry.yarnpkg.com/@types/react-motion/-/react-motion-0.0.34.tgz#789ff2063e2f7fbb6085d291135c442e8b35291a"
  integrity sha512-/rFI22Vg4Xzb47hXtS06WkzUGRu+Vb3yDleuxiqzGj0JbXYXQUCgwSa2ZU12K7ubKi4C8xsdIN3xt4Z4fjSdPw==
"@types/react-motion@^0.0.35":
  version "0.0.35"
  resolved "https://registry.yarnpkg.com/@types/react-motion/-/react-motion-0.0.35.tgz#63002d85791dc9c7c212044c7b89dfff99cd0b51"
  integrity sha512-7e0rlyG4wgvL1F5G8FMpgEYgPF54i7tmOy3b9KSp6kPjU2hEAV6BiRrl3qMPGrJXZ9soH/OlUYx1Ae5C9AJLGA==
  dependencies:
    "@types/react" "*"



@@ 2434,23 2446,23 @@
    react-select "*"

"@types/react-sparklines@^1.7.2":
  version "1.7.2"
  resolved "https://registry.yarnpkg.com/@types/react-sparklines/-/react-sparklines-1.7.2.tgz#c14e80623abd3669a10f18d13f6fb9fbdc322f70"
  integrity sha512-N1GwO7Ri5C5fE8+CxhiDntuSw1qYdGytBuedKrCxWpaojXm4WnfygbdBdc5sXGX7feMxDXBy9MNhxoUTwrMl4A==
  version "1.7.3"
  resolved "https://registry.yarnpkg.com/@types/react-sparklines/-/react-sparklines-1.7.3.tgz#cdcbeea734bae191011d8f42ef20d794e55b9064"
  integrity sha512-fU88CytKUp/aT8CsaWCNOgcvto5OoINj717z9l0a6OiLiz4EhojRW3c6dSwawM9VjKOIJZMXobSRbbJt7MCtsw==
  dependencies:
    "@types/react" "*"

"@types/react-swipeable-views@^0.13.1":
  version "0.13.2"
  resolved "https://registry.yarnpkg.com/@types/react-swipeable-views/-/react-swipeable-views-0.13.2.tgz#c37cc8978ae60ab0dff209ef3eb1f77185aef330"
  integrity sha512-FiszBm9M0JicAgzO/IwDqpfHQRUEjPZA88UexYsVD6qHJBf5LrbGjR5Mw4+yZbf8ZxJneNqOsZbe4WGjOYG7iQ==
  version "0.13.3"
  resolved "https://registry.yarnpkg.com/@types/react-swipeable-views/-/react-swipeable-views-0.13.3.tgz#a4c545b7b722c2622806e5853a96ec5826b0bafb"
  integrity sha512-gVAQb5AxZTSLVTrJ/Fxwsk0axdBqGzXC8NxAD8MNwEf+qZynsb+15KL9TpNCaGGk4SCE2iyU/JNi6nGNB61AyA==
  dependencies:
    "@types/react" "*"

"@types/react-test-renderer@^18.0.0":
  version "18.0.2"
  resolved "https://registry.yarnpkg.com/@types/react-test-renderer/-/react-test-renderer-18.0.2.tgz#44243977eec18ab8cda88d8977437f47a0d3fdbe"
  integrity sha512-tJzMn+9GHDrdrLe0O4rwJELDfTrmdJbCn/UdYyzjlnPiXYXDl5FBNzdw4PVk2R3hJvSHKFjZcRgvZc12lV0p5Q==
  version "18.0.3"
  resolved "https://registry.yarnpkg.com/@types/react-test-renderer/-/react-test-renderer-18.0.3.tgz#67922bf5e5f0096581b1efd67dcdeabdd400cfea"
  integrity sha512-4wcNLnY6nIT+L6g94CpzL4CXX2P18JvKPU9CDlaHr3DnbP3GiaQLhDotJqjWlVqOcE4UhLRjp0MtxqwuNKONnA==
  dependencies:
    "@types/react" "*"



@@ 2476,18 2488,18 @@
    "@types/react" "*"

"@types/react@*", "@types/react@16 || 17 || 18", "@types/react@>=16.9.11", "@types/react@^18.0.26", "@types/react@^18.2.7":
  version "18.2.22"
  resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.22.tgz#abe778a1c95a07fa70df40a52d7300a40b949ccb"
  integrity sha512-60fLTOLqzarLED2O3UQImc/lsNRgG0jE/a1mPW9KjMemY0LMITWEsbS4VvZ4p6rorEHd5YKxxmMKSDK505GHpA==
  version "18.2.24"
  resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.24.tgz#3c7d68c02e0205a472f04abe4a0c1df35d995c05"
  integrity sha512-Ee0Jt4sbJxMu1iDcetZEIKQr99J1Zfb6D4F3qfUWoR1JpInkY1Wdg4WwCyBjL257D0+jGqSl1twBjV8iCaC0Aw==
  dependencies:
    "@types/prop-types" "*"
    "@types/scheduler" "*"
    csstype "^3.0.2"

"@types/redux-immutable@^4.0.3":
  version "4.0.3"
  resolved "https://registry.yarnpkg.com/@types/redux-immutable/-/redux-immutable-4.0.3.tgz#db92a281aa9a55a7b63bc1f20a233790305a1f06"
  integrity sha512-wXUApt9ib9MGUqoHUMbQmQhqCkvykMHBW3z/P7DISMigFGpGRQ0kkbv7we0XNiv5sYEtEiZzNCEDm+W6ei04DA==
  version "4.0.4"
  resolved "https://registry.yarnpkg.com/@types/redux-immutable/-/redux-immutable-4.0.4.tgz#091641dea366ceed4f8b228a08a0de5f380b9bfd"
  integrity sha512-qPFra/qd6HX7+bxayxwM9bsGdMoF7QhTGW/ZJFiaoBZVDZEnQEQCrDhsbSW8Xpuihe6xJ0TRHG3/WTvQpHLGaQ==
  dependencies:
    immutable "^4.0.0-rc.1"
    redux "^4.0.0"


@@ 2505,14 2517,14 @@
    "@types/node" "*"

"@types/scheduler@*":
  version "0.16.3"
  resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5"
  integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==
  version "0.16.4"
  resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.4.tgz#fedc3e5b15c26dc18faae96bf1317487cb3658cf"
  integrity sha512-2L9ifAGl7wmXwP4v3pN4p2FLhD0O1qsJpvKmNin5VA8+UvNVb447UDaAEV6UdrkA+m/Xs58U1RFps44x6TFsVQ==

"@types/semver@^7.5.0":
  version "7.5.2"
  resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.2.tgz#31f6eec1ed7ec23f4f05608d3a2d381df041f564"
  integrity sha512-7aqorHYgdNO4DM36stTiGO3DvKoex9TQRwsJU6vMaFGyqpBA1MNZkz+PG3gaNUPpTAOYhT1WR7M1JyA3fbS9Cw==
  version "7.5.3"
  resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.3.tgz#9a726e116beb26c24f1ccd6850201e1246122e04"
  integrity sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==

"@types/send@*":
  version "0.17.1"


@@ 2532,9 2544,9 @@
    "@types/node" "*"

"@types/source-list-map@*":
  version "0.1.2"
  resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9"
  integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==
  version "0.1.3"
  resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.3.tgz#077e15c87fe06520e30396a533bd9848e735ce9b"
  integrity sha512-I9R/7fUjzUOyDy6AFkehCK711wWoAXEaBi80AfjZt1lIkbe6AcXKd3ckQc3liMvQExWvfOeh/8CtKzrfUFN5gA==

"@types/stack-utils@^2.0.0":
  version "2.0.1"


@@ 2542,9 2554,9 @@
  integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==

"@types/tapable@^1":
  version "1.0.8"
  resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.8.tgz#b94a4391c85666c7b73299fd3ad79d4faa435310"
  integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ==
  version "1.0.9"
  resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.9.tgz#1481a4236267dd2d0ca2a637adb90f0ccb3d69c4"
  integrity sha512-fOHIwZua0sRltqWzODGUM6b4ffZrf/vzGUmNXdR+4DzuJP42PMbM5dLKcdzlYvv8bMJ3GALOzkk1q7cDm2zPyA==

"@types/tough-cookie@*":
  version "4.0.2"


@@ 2557,9 2569,9 @@
  integrity sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==

"@types/uglify-js@*":
  version "3.17.1"
  resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.17.1.tgz#e0ffcef756476410e5bce2cb01384ed878a195b5"
  integrity sha512-GkewRA4i5oXacU/n4MA9+bLgt5/L3F1mKrYvFGm7r2ouLXhRKjuWwo9XHNnbx6WF3vlGW21S3fCvgqxvxXXc5g==
  version "3.17.2"
  resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.17.2.tgz#a2ba86fd524f6281a7655463338c546f845b29c3"
  integrity sha512-9SjrHO54LINgC/6Ehr81NjAxAYvwEZqjUHLjJYvC4Nmr9jbLQCIZbWSvl4vXQkkmR1UAuaKDycau3O1kWGFyXQ==
  dependencies:
    source-map "^0.6.1"



@@ 2579,18 2591,18 @@
  integrity sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA==

"@types/webpack-sources@*":
  version "3.2.0"
  resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-3.2.0.tgz#16d759ba096c289034b26553d2df1bf45248d38b"
  integrity sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==
  version "3.2.1"
  resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-3.2.1.tgz#98670b35fa799c44ac235910f3fda9bfdcdbc2c6"
  integrity sha512-iLC3Fsx62ejm3ST3PQ8vBMC54Rb3EoCprZjeJGI5q+9QjfDLGt9jeg/k245qz1G9AQnORGk0vqPicJFPT1QODQ==
  dependencies:
    "@types/node" "*"
    "@types/source-list-map" "*"
    source-map "^0.7.3"

"@types/webpack@^4.41.33":
  version "4.41.33"
  resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.33.tgz#16164845a5be6a306bcbe554a8e67f9cac215ffc"
  integrity sha512-PPajH64Ft2vWevkerISMtnZ8rTs4YmRbs+23c402J0INmxDKCrhZNvwZYtzx96gY2wAtXdrK1BS2fiC8MlLr3g==
  version "4.41.34"
  resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.34.tgz#8cf616be84b39c8fb26f9459d4470a5514df2477"
  integrity sha512-CN2aOGrR3zbMc2v+cKqzaClYP1ldkpPOgtdNvgX+RmlWCSWxHxpzz6WSCVQZRkF8D60ROlkRzAoEpgjWQ+bd2g==
  dependencies:
    "@types/node" "*"
    "@types/tapable" "^1"


@@ 2605,22 2617,22 @@
  integrity sha512-axdPBuLuEJt0c4yI5OZssC19K2Mq1uKdrfZBzuxLvaztgqUtFYZUNw7lETExPYJR9jdEoIg4mb7RQKRQzOkeGQ==

"@types/yargs@^17.0.24", "@types/yargs@^17.0.8":
  version "17.0.25"
  resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.25.tgz#3edd102803c97356fb4c805b2bbaf7dfc9ab6abc"
  integrity sha512-gy7iPgwnzNvxgAEi2bXOHWCVOG6f7xsprVJH4MjlAWeBmJ7vh/Y1kwMtUrs64ztf24zVIRCpr3n/z6gm9QIkgg==
  version "17.0.26"
  resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.26.tgz#388e5002a8b284ad7b4599ba89920a6d74d8d79a"
  integrity sha512-Y3vDy2X6zw/ZCumcwLpdhM5L7jmyGpmBCTYMHDLqT2IKVMYRRLdv6ZakA+wxhra6Z/3bwhNbNl9bDGXaFU+6rw==
  dependencies:
    "@types/yargs-parser" "*"

"@typescript-eslint/eslint-plugin@^6.0.0":
  version "6.7.2"
  resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.2.tgz#f18cc75c9cceac8080a9dc2e7d166008c5207b9f"
  integrity sha512-ooaHxlmSgZTM6CHYAFRlifqh1OAr3PAQEwi7lhYhaegbnXrnh7CDcHmc3+ihhbQC7H0i4JF0psI5ehzkF6Yl6Q==
  version "6.7.3"
  resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.3.tgz#d98046e9f7102d49a93d944d413c6055c47fafd7"
  integrity sha512-vntq452UHNltxsaaN+L9WyuMch8bMd9CqJ3zhzTPXXidwbf5mqqKCVXEuvRZUqLJSTLeWE65lQwyXsRGnXkCTA==
  dependencies:
    "@eslint-community/regexpp" "^4.5.1"
    "@typescript-eslint/scope-manager" "6.7.2"
    "@typescript-eslint/type-utils" "6.7.2"
    "@typescript-eslint/utils" "6.7.2"
    "@typescript-eslint/visitor-keys" "6.7.2"
    "@typescript-eslint/scope-manager" "6.7.3"
    "@typescript-eslint/type-utils" "6.7.3"
    "@typescript-eslint/utils" "6.7.3"
    "@typescript-eslint/visitor-keys" "6.7.3"
    debug "^4.3.4"
    graphemer "^1.4.0"
    ignore "^5.2.4"


@@ 2629,31 2641,31 @@
    ts-api-utils "^1.0.1"

"@typescript-eslint/parser@^6.0.0":
  version "6.7.2"
  resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.7.2.tgz#e0ae93771441b9518e67d0660c79e3a105497af4"
  integrity sha512-KA3E4ox0ws+SPyxQf9iSI25R6b4Ne78ORhNHeVKrPQnoYsb9UhieoiRoJgrzgEeKGOXhcY1i8YtOeCHHTDa6Fw==
  dependencies:
    "@typescript-eslint/scope-manager" "6.7.2"
    "@typescript-eslint/types" "6.7.2"
    "@typescript-eslint/typescript-estree" "6.7.2"
    "@typescript-eslint/visitor-keys" "6.7.2"
  version "6.7.3"
  resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.7.3.tgz#aaf40092a32877439e5957e18f2d6a91c82cc2fd"
  integrity sha512-TlutE+iep2o7R8Lf+yoer3zU6/0EAUc8QIBB3GYBc1KGz4c4TRm83xwXUZVPlZ6YCLss4r77jbu6j3sendJoiQ==
  dependencies:
    "@typescript-eslint/scope-manager" "6.7.3"
    "@typescript-eslint/types" "6.7.3"
    "@typescript-eslint/typescript-estree" "6.7.3"
    "@typescript-eslint/visitor-keys" "6.7.3"
    debug "^4.3.4"

"@typescript-eslint/scope-manager@6.7.2":
  version "6.7.2"
  resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.7.2.tgz#cf59a2095d2f894770c94be489648ad1c78dc689"
  integrity sha512-bgi6plgyZjEqapr7u2mhxGR6E8WCzKNUFWNh6fkpVe9+yzRZeYtDTbsIBzKbcxI+r1qVWt6VIoMSNZ4r2A+6Yw==
"@typescript-eslint/scope-manager@6.7.3":
  version "6.7.3"
  resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.7.3.tgz#07e5709c9bdae3eaf216947433ef97b3b8b7d755"
  integrity sha512-wOlo0QnEou9cHO2TdkJmzF7DFGvAKEnB82PuPNHpT8ZKKaZu6Bm63ugOTn9fXNJtvuDPanBc78lGUGGytJoVzQ==
  dependencies:
    "@typescript-eslint/types" "6.7.2"
    "@typescript-eslint/visitor-keys" "6.7.2"
    "@typescript-eslint/types" "6.7.3"
    "@typescript-eslint/visitor-keys" "6.7.3"

"@typescript-eslint/type-utils@6.7.2":
  version "6.7.2"
  resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.7.2.tgz#ed921c9db87d72fa2939fee242d700561454f367"
  integrity sha512-36F4fOYIROYRl0qj95dYKx6kybddLtsbmPIYNK0OBeXv2j9L5nZ17j9jmfy+bIDHKQgn2EZX+cofsqi8NPATBQ==
"@typescript-eslint/type-utils@6.7.3":
  version "6.7.3"
  resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.7.3.tgz#c2c165c135dda68a5e70074ade183f5ad68f3400"
  integrity sha512-Fc68K0aTDrKIBvLnKTZ5Pf3MXK495YErrbHb1R6aTpfK5OdSFj0rVN7ib6Tx6ePrZ2gsjLqr0s98NG7l96KSQw==
  dependencies:
    "@typescript-eslint/typescript-estree" "6.7.2"
    "@typescript-eslint/utils" "6.7.2"
    "@typescript-eslint/typescript-estree" "6.7.3"
    "@typescript-eslint/utils" "6.7.3"
    debug "^4.3.4"
    ts-api-utils "^1.0.1"



@@ 2662,10 2674,10 @@
  resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f"
  integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==

"@typescript-eslint/types@6.7.2":
  version "6.7.2"
  resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.7.2.tgz#75a615a6dbeca09cafd102fe7f465da1d8a3c066"
  integrity sha512-flJYwMYgnUNDAN9/GAI3l8+wTmvTYdv64fcH8aoJK76Y+1FCZ08RtI5zDerM/FYT5DMkAc+19E4aLmd5KqdFyg==
"@typescript-eslint/types@6.7.3":
  version "6.7.3"
  resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.7.3.tgz#0402b5628a63f24f2dc9d4a678e9a92cc50ea3e9"
  integrity sha512-4g+de6roB2NFcfkZb439tigpAMnvEIg3rIjWQ+EM7IBaYt/CdJt6em9BJ4h4UpdgaBWdmx2iWsafHTrqmgIPNw==

"@typescript-eslint/typescript-estree@5.62.0":
  version "5.62.0"


@@ 2680,30 2692,30 @@
    semver "^7.3.7"
    tsutils "^3.21.0"

"@typescript-eslint/typescript-estree@6.7.2":
  version "6.7.2"
  resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.2.tgz#ce5883c23b581a5caf878af641e49dd0349238c7"
  integrity sha512-kiJKVMLkoSciGyFU0TOY0fRxnp9qq1AzVOHNeN1+B9erKFCJ4Z8WdjAkKQPP+b1pWStGFqezMLltxO+308dJTQ==
"@typescript-eslint/typescript-estree@6.7.3":
  version "6.7.3"
  resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.3.tgz#ec5bb7ab4d3566818abaf0e4a8fa1958561b7279"
  integrity sha512-YLQ3tJoS4VxLFYHTw21oe1/vIZPRqAO91z6Uv0Ss2BKm/Ag7/RVQBcXTGcXhgJMdA4U+HrKuY5gWlJlvoaKZ5g==
  dependencies:
    "@typescript-eslint/types" "6.7.2"
    "@typescript-eslint/visitor-keys" "6.7.2"
    "@typescript-eslint/types" "6.7.3"
    "@typescript-eslint/visitor-keys" "6.7.3"
    debug "^4.3.4"
    globby "^11.1.0"
    is-glob "^4.0.3"
    semver "^7.5.4"
    ts-api-utils "^1.0.1"

"@typescript-eslint/utils@6.7.2":
  version "6.7.2"
  resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.7.2.tgz#b9ef0da6f04932167a9222cb4ac59cb187165ebf"
  integrity sha512-ZCcBJug/TS6fXRTsoTkgnsvyWSiXwMNiPzBUani7hDidBdj1779qwM1FIAmpH4lvlOZNF3EScsxxuGifjpLSWQ==
"@typescript-eslint/utils@6.7.3":
  version "6.7.3"
  resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.7.3.tgz#96c655816c373135b07282d67407cb577f62e143"
  integrity sha512-vzLkVder21GpWRrmSR9JxGZ5+ibIUSudXlW52qeKpzUEQhRSmyZiVDDj3crAth7+5tmN1ulvgKaCU2f/bPRCzg==
  dependencies:
    "@eslint-community/eslint-utils" "^4.4.0"
    "@types/json-schema" "^7.0.12"
    "@types/semver" "^7.5.0"
    "@typescript-eslint/scope-manager" "6.7.2"
    "@typescript-eslint/types" "6.7.2"
    "@typescript-eslint/typescript-estree" "6.7.2"
    "@typescript-eslint/scope-manager" "6.7.3"
    "@typescript-eslint/types" "6.7.3"
    "@typescript-eslint/typescript-estree" "6.7.3"
    semver "^7.5.4"

"@typescript-eslint/visitor-keys@5.62.0":


@@ 2714,12 2726,12 @@
    "@typescript-eslint/types" "5.62.0"
    eslint-visitor-keys "^3.3.0"

"@typescript-eslint/visitor-keys@6.7.2":
  version "6.7.2"
  resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.2.tgz#4cb2bd786f1f459731b0ad1584c9f73e1c7a4d5c"
  integrity sha512-uVw9VIMFBUTz8rIeaUT3fFe8xIUx8r4ywAdlQv1ifH+6acn/XF8Y6rwJ7XNmkNMDrTW+7+vxFFPIF40nJCVsMQ==
"@typescript-eslint/visitor-keys@6.7.3":
  version "6.7.3"
  resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.3.tgz#83809631ca12909bd2083558d2f93f5747deebb2"
  integrity sha512-HEVXkU9IB+nk9o63CeICMHxFWbHWr3E1mpilIQBe9+7L/lH97rleFLVtYsfnWB+JVMaiFnEaxvknvmIzX+CqVg==
  dependencies:
    "@typescript-eslint/types" "6.7.2"
    "@typescript-eslint/types" "6.7.3"
    eslint-visitor-keys "^3.4.1"

"@webassemblyjs/ast@1.9.0":


@@ 3356,9 3368,9 @@ axe-core@^4.6.2:
  integrity sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==

axios@^1.4.0:
  version "1.5.0"
  resolved "https://registry.yarnpkg.com/axios/-/axios-1.5.0.tgz#f02e4af823e2e46a9768cfc74691fdd0517ea267"
  integrity sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==
  version "1.5.1"
  resolved "https://registry.yarnpkg.com/axios/-/axios-1.5.1.tgz#11fbaa11fc35f431193a9564109c88c1f27b585f"
  integrity sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==
  dependencies:
    follow-redirects "^1.15.0"
    form-data "^4.0.0"


@@ 4343,9 4355,9 @@ core-js@^2.5.0:
  integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==

core-js@^3.30.2:
  version "3.32.2"
  resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.32.2.tgz#172fb5949ef468f93b4be7841af6ab1f21992db7"
  integrity sha512-pxXSw1mYZPDGvTQqEc5vgIb83jGQKFGYWY76z4a7weZXUolw3G+OvpZqSRcfYOoOVUQJYEPsWeQK8pKEnUtWxQ==
  version "3.33.0"
  resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.33.0.tgz#70366dbf737134761edb017990cf5ce6c6369c40"
  integrity sha512-HoZr92+ZjFEKar5HS6MC776gYslNOKHt75mEBKWKnPeFDpZ6nH5OeF3S6HFT1mUAUZKrzkez05VboaX8myjSuw==

core-util-is@~1.0.0:
  version "1.0.3"


@@ 6017,11 6029,16 @@ flatted@^3.2.7:
  resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf"
  integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==

follow-redirects@^1.0.0, follow-redirects@^1.15.0:
follow-redirects@^1.0.0:
  version "1.15.2"
  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13"
  integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==

follow-redirects@^1.15.0:
  version "1.15.3"
  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a"
  integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==

font-awesome@^4.7.0:
  version "4.7.0"
  resolved "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz#8fa8cf0411a1a31afd07b06d2902bb9fc815a133"


@@ 6242,9 6259,9 @@ glob-parent@^6.0.2:
    is-glob "^4.0.3"

glob@^10.2.5, glob@^10.2.6:
  version "10.3.9"
  resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.9.tgz#181ae87640ecce9b2fc5b96e4e2d70b7c3629ab8"
  integrity sha512-2tU/LKevAQvDVuVJ9pg9Yv9xcbSh+TqHuTaXTNbQwf+0kDl9Fm6bMovi4Nm5c8TVvfxo2LLcqCGtmO9KoJaGWg==
  version "10.3.10"
  resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b"
  integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==
  dependencies:
    foreground-child "^3.1.0"
    jackspeak "^2.3.5"


@@ 9733,9 9750,9 @@ postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0:
  integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==

postcss@^8.2.15, postcss@^8.4.24, postcss@^8.4.25:
  version "8.4.30"
  resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.30.tgz#0e0648d551a606ef2192a26da4cabafcc09c1aa7"
  integrity sha512-7ZEao1g4kd68l97aWG/etQKPKq07us0ieSZ2TnFDk11i0ZfDW2AwKHYU8qv4MZKqN2fdBfg+7q0ES06UA73C1g==
  version "8.4.31"
  resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d"
  integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==
  dependencies:
    nanoid "^3.3.6"
    picocolors "^1.0.0"


@@ 10142,9 10159,9 @@ react-redux-loading-bar@^5.0.4:
    react-lifecycles-compat "^3.0.4"

react-redux@^8.0.4:
  version "8.1.2"
  resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-8.1.2.tgz#9076bbc6b60f746659ad6d51cb05de9c5e1e9188"
  integrity sha512-xJKYI189VwfsFc4CJvHqHlDrzyFTY/3vZACbE+rr/zQ34Xx1wQfB4OTOSeOSNrF6BDVe8OOdxIrAnMGXA3ggfw==
  version "8.1.3"
  resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-8.1.3.tgz#4fdc0462d0acb59af29a13c27ffef6f49ab4df46"
  integrity sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw==
  dependencies:
    "@babel/runtime" "^7.12.1"
    "@types/hoist-non-react-statics" "^3.3.1"


@@ 11476,6 11493,7 @@ stringz@^2.1.0:
    char-regex "^1.0.2"

"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
  name strip-ansi-cjs
  version "6.0.1"
  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
  integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==