From 4dfbb64241a776d3b6efa4c9fcce156e415c042d Mon Sep 17 00:00:00 2001 From: John Coffey Date: Thu, 29 Oct 2026 08:11:58 -0700 Subject: [PATCH] Import Mastodon v4.7.4 Snapshot of upstream tag v4.7.4 (commit d04059fc80be5cbba6b4dd5a8b94d63ffff09f2c) from https://github.com/mastodon/mastodon, unmodified. --- .github/actions/setup-ruby/action.yml | 2 +- .github/workflows/bundler-audit.yml | 2 +- .github/workflows/lint-haml.yml | 2 +- .github/workflows/lint-ruby.yml | 2 +- .ruby-version | 2 +- CHANGELOG.md | 16 + Dockerfile | 2 +- Gemfile.lock | 23 +- ...ign_in_token_authentications_controller.rb | 27 ++ app/controllers/auth/sessions_controller.rb | 3 +- .../sign_in_token_authentication_concern.rb | 45 ++ app/helpers/json_ld_helper.rb | 19 +- .../features/account_edit/styles.module.scss | 4 +- app/javascript/mastodon/locales/be.json | 20 +- app/javascript/mastodon/locales/bn.json | 47 ++ app/javascript/mastodon/locales/da.json | 2 +- app/javascript/mastodon/locales/de.json | 4 +- app/javascript/mastodon/locales/en-GB.json | 5 + app/javascript/mastodon/locales/eo.json | 431 +++++++++++++++++- app/javascript/mastodon/locales/es.json | 4 +- app/javascript/mastodon/locales/eu.json | 5 + app/javascript/mastodon/locales/fa.json | 7 +- app/javascript/mastodon/locales/fi.json | 8 +- app/javascript/mastodon/locales/fr-CA.json | 4 +- app/javascript/mastodon/locales/fr.json | 4 +- app/javascript/mastodon/locales/gd.json | 2 +- app/javascript/mastodon/locales/he.json | 24 +- app/javascript/mastodon/locales/is.json | 2 +- app/javascript/mastodon/locales/it.json | 20 +- app/javascript/mastodon/locales/kab.json | 43 +- app/javascript/mastodon/locales/lt.json | 29 +- app/javascript/mastodon/locales/lv.json | 1 + app/javascript/mastodon/locales/nan-TW.json | 10 +- app/javascript/mastodon/locales/nl.json | 18 +- app/javascript/mastodon/locales/pa.json | 1 + app/javascript/mastodon/locales/pl.json | 4 + app/javascript/mastodon/locales/ru.json | 10 +- app/javascript/mastodon/locales/tr.json | 22 +- app/javascript/mastodon/locales/vi.json | 16 +- app/javascript/styles/mastodon/forms.scss | 28 ++ app/lib/account_statuses_filter.rb | 17 +- app/lib/status_cache_hydrator.rb | 25 +- app/mailers/user_mailer.rb | 17 + app/models/concerns/user/sign_in_token.rb | 61 +++ app/models/keypair.rb | 8 + app/models/tag_feed.rb | 9 + app/models/user.rb | 1 + app/policies/user_policy.rb | 8 + .../fetch_featured_tags_collection_service.rb | 2 +- .../activitypub/fetch_remote_actor_service.rb | 2 +- ...etch_remote_featured_collection_service.rb | 2 +- .../activitypub/fetch_remote_key_service.rb | 6 +- .../activitypub/fetch_remote_poll_service.rb | 2 +- .../fetch_remote_status_service.rb | 6 +- .../activitypub/process_account_service.rb | 8 +- .../process_featured_item_service.rb | 4 +- .../verify_featured_item_service.rb | 2 +- .../activitypub/verify_quote_service.rb | 2 +- app/services/fetch_resource_service.rb | 11 +- .../revoke_collection_item_service.rb | 4 +- .../admin/accounts/_local_account.html.haml | 10 +- .../auth/sessions/sign_in_token.html.haml | 24 + app/views/user_mailer/sign_in_token.html.haml | 32 ++ app/views/user_mailer/sign_in_token.text.erb | 17 + .../activitypub/fetch_all_replies_worker.rb | 4 +- .../repair_remote_collections_scheduler.rb | 2 +- config/locales/be.yml | 23 +- config/locales/cy.yml | 20 + config/locales/da.yml | 22 +- config/locales/de.yml | 20 +- config/locales/devise.eo.yml | 1 + config/locales/devise.he.yml | 2 +- config/locales/devise.hu.yml | 8 +- config/locales/devise.kab.yml | 2 +- config/locales/doorkeeper.de.yml | 14 +- config/locales/doorkeeper.eu.yml | 3 + config/locales/doorkeeper.nl.yml | 2 +- config/locales/doorkeeper.tr.yml | 2 +- config/locales/el.yml | 17 + config/locales/en.yml | 14 + config/locales/eo.yml | 12 + config/locales/es-AR.yml | 15 + config/locales/es-MX.yml | 17 + config/locales/es.yml | 17 + config/locales/eu.yml | 362 +++++++++++++++ config/locales/fi.yml | 19 +- config/locales/fr-CA.yml | 29 +- config/locales/fr.yml | 33 +- config/locales/ga.yml | 17 + config/locales/gd.yml | 21 + config/locales/he.yml | 38 +- config/locales/hu.yml | 28 +- config/locales/is.yml | 18 +- config/locales/it.yml | 16 +- config/locales/ja.yml | 7 + config/locales/kab.yml | 11 +- config/locales/nan-TW.yml | 2 +- config/locales/nl.yml | 36 +- config/locales/pt-PT.yml | 21 + config/locales/simple_form.be.yml | 5 +- config/locales/simple_form.cy.yml | 1 + config/locales/simple_form.da.yml | 1 + config/locales/simple_form.de.yml | 1 + config/locales/simple_form.el.yml | 1 + config/locales/simple_form.en.yml | 1 + config/locales/simple_form.es-AR.yml | 1 + config/locales/simple_form.es-MX.yml | 1 + config/locales/simple_form.es.yml | 1 + config/locales/simple_form.eu.yml | 31 ++ config/locales/simple_form.fi.yml | 3 +- config/locales/simple_form.fr-CA.yml | 3 +- config/locales/simple_form.fr.yml | 21 +- config/locales/simple_form.ga.yml | 1 + config/locales/simple_form.gd.yml | 1 + config/locales/simple_form.he.yml | 3 +- config/locales/simple_form.hu.yml | 5 +- config/locales/simple_form.is.yml | 1 + config/locales/simple_form.it.yml | 1 + config/locales/simple_form.kab.yml | 2 +- config/locales/simple_form.nl.yml | 3 +- config/locales/simple_form.pt-PT.yml | 1 + config/locales/simple_form.sv.yml | 1 + config/locales/simple_form.tr.yml | 5 +- config/locales/simple_form.vi.yml | 25 +- config/locales/simple_form.zh-CN.yml | 1 + config/locales/simple_form.zh-TW.yml | 3 +- config/locales/sv.yml | 16 +- config/locales/tr.yml | 62 ++- config/locales/vi.yml | 14 + config/locales/zh-CN.yml | 14 + config/locales/zh-TW.yml | 14 + config/routes/admin.rb | 1 + docker-compose.yml | 6 +- lib/mastodon/cli/accounts.rb | 13 + lib/mastodon/version.rb | 2 +- lib/tasks/dev.rake | 2 + .../auth/sessions_controller_spec.rb | 97 ++++ spec/fabricators/account_fabricator.rb | 5 +- spec/helpers/json_ld_helper_spec.rb | 10 +- spec/lib/mastodon/cli/accounts_spec.rb | 24 + .../rake/task_devpopulate_sample_data_spec.rb | 29 ++ spec/mailers/previews/user_mailer_preview.rb | 5 + spec/mailers/user_mailer_spec.rb | 16 + spec/models/tag_feed_spec.rb | 15 + spec/models/user/sign_in_token_spec.rb | 78 ++++ spec/policies/user_policy_spec.rb | 44 ++ spec/requests/signature_verification_spec.rb | 2 +- .../revoke_collection_item_service_spec.rb | 4 +- .../sign_in_token_authentications_spec.rb | 54 +++ 149 files changed, 2411 insertions(+), 315 deletions(-) create mode 100644 app/controllers/admin/users/sign_in_token_authentications_controller.rb create mode 100644 app/controllers/concerns/auth/sign_in_token_authentication_concern.rb create mode 100644 app/models/concerns/user/sign_in_token.rb create mode 100644 app/views/auth/sessions/sign_in_token.html.haml create mode 100644 app/views/user_mailer/sign_in_token.html.haml create mode 100644 app/views/user_mailer/sign_in_token.text.erb create mode 100644 spec/lib/rake/task_devpopulate_sample_data_spec.rb create mode 100644 spec/models/user/sign_in_token_spec.rb create mode 100644 spec/system/admin/users/sign_in_token_authentications_spec.rb diff --git a/.github/actions/setup-ruby/action.yml b/.github/actions/setup-ruby/action.yml index 8ff28ec..cf487f3 100644 --- a/.github/actions/setup-ruby/action.yml +++ b/.github/actions/setup-ruby/action.yml @@ -24,7 +24,7 @@ runs: ${{ inputs.additional-system-dependencies }} - name: Set up Ruby - uses: ruby/setup-ruby@6e5d382445ae5590b7449d8b3bc8cb1c2c27f617 # v1 + uses: ruby/setup-ruby@7f797815d8adceb1c412e7abefdd1ab4abc47a5f # v1.335.0 with: ruby-version: ${{ inputs.ruby-version }} bundler-cache: true diff --git a/.github/workflows/bundler-audit.yml b/.github/workflows/bundler-audit.yml index b51f792..169def3 100644 --- a/.github/workflows/bundler-audit.yml +++ b/.github/workflows/bundler-audit.yml @@ -32,7 +32,7 @@ jobs: uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 - name: Set up Ruby - uses: ruby/setup-ruby@6e5d382445ae5590b7449d8b3bc8cb1c2c27f617 # v1 + uses: ruby/setup-ruby@7f797815d8adceb1c412e7abefdd1ab4abc47a5f # v1.335.0 with: bundler-cache: true diff --git a/.github/workflows/lint-haml.yml b/.github/workflows/lint-haml.yml index fdb6cf1..a3ac8a5 100644 --- a/.github/workflows/lint-haml.yml +++ b/.github/workflows/lint-haml.yml @@ -35,7 +35,7 @@ jobs: uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 - name: Set up Ruby - uses: ruby/setup-ruby@6e5d382445ae5590b7449d8b3bc8cb1c2c27f617 # v1 + uses: ruby/setup-ruby@7f797815d8adceb1c412e7abefdd1ab4abc47a5f # v1.335.0 with: bundler-cache: true diff --git a/.github/workflows/lint-ruby.yml b/.github/workflows/lint-ruby.yml index 950e502..0c57030 100644 --- a/.github/workflows/lint-ruby.yml +++ b/.github/workflows/lint-ruby.yml @@ -37,7 +37,7 @@ jobs: uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 - name: Set up Ruby - uses: ruby/setup-ruby@6e5d382445ae5590b7449d8b3bc8cb1c2c27f617 # v1 + uses: ruby/setup-ruby@7f797815d8adceb1c412e7abefdd1ab4abc47a5f # v1.335.0 with: bundler-cache: true diff --git a/.ruby-version b/.ruby-version index d13e837..7919852 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -4.0.6 +4.0.9 diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ea55f1..6b4c452 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,22 @@ All notable changes to this project will be documented in this file. +## [4.7.4] - 2026-10-29 + +### Security + +- Fix insufficient ActivityPub identifier verification ([GHSA-288h-6j8h-6x5j](https://github.com/mastodon/mastodon/security/advisories/GHSA-288h-6j8h-6x5j)) +- Added security challenge e-mail to users that try to log in after long period of inactivity (#40745 by @jhbabon) +- Updated dependencies, in particular to address security advisories in Ruby, NodeJS, `excon`, `css_parser`, `pghero`, and `sanitize` + +### Fixed + +- Fix inefficiency in some hashtag timeline queries (#41132 by @hugogameiro) +- Fix minor inefficiency in timeline deliveries (#41079 by @isidzukuri) +- Fix account timeline with `exclude_direct` also excluding followers-only posts for non-followed users (#41019 by @ClearlyClaire) +- Fix error in `dev:populate_sample_data` task (#40995 and #41051 by @isidzukuri and @mjankowski) +- Fix local collection item revocation not being properly federated (#40930 by @oneiros) + ## [4.7.3] - 2026-10-01 ### Security diff --git a/Dockerfile b/Dockerfile index 9e99a52..3866d91 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,7 +13,7 @@ ARG BASE_REGISTRY="docker.io" # Ruby image to use for base image, change with [--build-arg RUBY_VERSION="4.0.x"] # renovate: datasource=docker depName=docker.io/ruby -ARG RUBY_VERSION="4.0.6" +ARG RUBY_VERSION="4.0.9" # # Node.js version to use in base image, change with [--build-arg NODE_MAJOR_VERSION="22"] # renovate: datasource=node-version depName=node ARG NODE_MAJOR_VERSION="24" diff --git a/Gemfile.lock b/Gemfile.lock index b5e9215..87783f6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -98,10 +98,10 @@ GEM activesupport (>= 6.0.0) ast (2.4.3) attr_required (1.0.2) - aws-eventstream (1.4.0) + aws-eventstream (1.4.1) aws-partitions (1.1279.0) - aws-sdk-core (3.257.0) - aws-eventstream (~> 1, >= 1.3.0) + aws-sdk-core (3.261.0) + aws-eventstream (~> 1, >= 1.4.1) aws-partitions (~> 1, >= 1.992.0) aws-sigv4 (~> 1.9) base64 @@ -112,8 +112,8 @@ GEM aws-sdk-kms (1.130.0) aws-sdk-core (~> 3, >= 3.254.0) aws-sigv4 (~> 1.5) - aws-sdk-s3 (1.232.3) - aws-sdk-core (~> 3, >= 3.256.0) + aws-sdk-s3 (1.235.0) + aws-sdk-core (~> 3, >= 3.258.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.5) aws-sigv4 (1.12.1) @@ -179,9 +179,10 @@ GEM crack (1.0.1) bigdecimal rexml - crass (1.0.7) - css_parser (3.0.0) + crass (1.0.8) + css_parser (3.3.0) addressable + base64 ssrf_filter (~> 1.5) csv (3.3.6) database_cleaner-active_record (2.2.2) @@ -229,7 +230,7 @@ GEM erubi (1.13.1) et-orbi (1.4.1) tzinfo - excon (1.7.0) + excon (1.8.0) logger fabrication (3.0.0) faker (3.8.0) @@ -593,7 +594,7 @@ GEM pastel (0.8.0) tty-color (~> 0.5) pg (1.6.3) - pghero (4.0.1) + pghero (4.1.0) activerecord (>= 7.2) playwright-ruby-client (1.62.0) base64 @@ -808,8 +809,8 @@ GEM fugit (~> 1.1, >= 1.11.1) safety_net_attestation (0.5.0) jwt (>= 2.0, < 4.0) - sanitize (7.0.0) - crass (~> 1.0.2) + sanitize (7.0.1) + crass (~> 1.0.8) nokogiri (>= 1.16.8) scenic (1.9.0) activerecord (>= 4.0.0) diff --git a/app/controllers/admin/users/sign_in_token_authentications_controller.rb b/app/controllers/admin/users/sign_in_token_authentications_controller.rb new file mode 100644 index 0000000..7c7c559 --- /dev/null +++ b/app/controllers/admin/users/sign_in_token_authentications_controller.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +module Admin + class Users::SignInTokenAuthenticationsController < BaseController + before_action :set_target_user + + def create + authorize @user, :enable_sign_in_token? + @user.enable_sign_in_token! + log_action :enable_sign_in_token, @user + redirect_to admin_account_path(@user.account_id) + end + + def destroy + authorize @user, :disable_sign_in_token? + @user.disable_sign_in_token! + log_action :disable_sign_in_token, @user + redirect_to admin_account_path(@user.account_id) + end + + private + + def set_target_user + @user = User.find(params[:user_id]) + end + end +end diff --git a/app/controllers/auth/sessions_controller.rb b/app/controllers/auth/sessions_controller.rb index 3d757be..3bc8b81 100644 --- a/app/controllers/auth/sessions_controller.rb +++ b/app/controllers/auth/sessions_controller.rb @@ -17,6 +17,7 @@ class Auth::SessionsController < Devise::SessionsController prepend_before_action :check_suspicious!, only: [:create] include Auth::TwoFactorAuthenticationConcern + include Auth::SignInTokenAuthenticationConcern content_security_policy only: :new do |p| p.form_action(false) @@ -62,7 +63,7 @@ class Auth::SessionsController < Devise::SessionsController end def user_params - params.expect(user: [:email, :password, :otp_attempt, credential: {}]) + params.expect(user: [:email, :password, :otp_attempt, :sign_in_token_attempt, credential: {}]) end def after_sign_in_path_for(resource) diff --git a/app/controllers/concerns/auth/sign_in_token_authentication_concern.rb b/app/controllers/concerns/auth/sign_in_token_authentication_concern.rb new file mode 100644 index 0000000..cdef503 --- /dev/null +++ b/app/controllers/concerns/auth/sign_in_token_authentication_concern.rb @@ -0,0 +1,45 @@ +# frozen_string_literal: true + +module Auth::SignInTokenAuthenticationConcern + extend ActiveSupport::Concern + + included do + prepend_before_action :authenticate_with_sign_in_token, if: :sign_in_token_required?, only: [:create] + end + + def sign_in_token_required? + find_user&.suspicious_inactive_sign_in? + end + + def authenticate_with_sign_in_token + user = self.resource = find_user + + if params.key?(:sign_in_token_resend) && session[:attempt_user_id] + prompt_for_sign_in_token(user, resend: true) + elsif user_params[:sign_in_token_attempt].present? && session[:attempt_user_id] + authenticate_with_sign_in_token_attempt(user) + elsif user.present? && user.valid_password?(user_params[:password]) + prompt_for_sign_in_token(user) + end + end + + def authenticate_with_sign_in_token_attempt(user) + if user.valid_sign_in_token?(user_params[:sign_in_token_attempt]) + clear_attempt_from_session + sign_in(user) + else + flash.now[:alert] = I18n.t('users.invalid_sign_in_token') + prompt_for_sign_in_token(user) + end + end + + def prompt_for_sign_in_token(user, resend: false) + if resend || user.sign_in_token_expired? + user.generate_sign_in_token && user.save + UserMailer.sign_in_token(user, request.remote_ip, request.user_agent, Time.now.utc.to_s).deliver_later! + end + + register_attempt_in_session(user) + render :sign_in_token + end +end diff --git a/app/helpers/json_ld_helper.rb b/app/helpers/json_ld_helper.rb index ba0dd0f..08074b2 100644 --- a/app/helpers/json_ld_helper.rb +++ b/app/helpers/json_ld_helper.rb @@ -236,19 +236,19 @@ module JsonLdHelper # Fetch the resource given by uri. # @param uri [String] - # @param id_is_known [Boolean] + # @param allow_redirects [Boolean] # @param on_behalf_of [nil, Account] # @param raise_on_error [Symbol<:all, :temporary, :none>] See {#fetch_resource_without_id_validation} for possible values - def fetch_resource(uri, id_is_known, on_behalf_of = nil, raise_on_error: :none, request_options: {}) - unless id_is_known - json = fetch_resource_without_id_validation(uri, on_behalf_of, raise_on_error: raise_on_error) + def fetch_resource(uri, allow_redirects: false, on_behalf_of: nil, raise_on_error: :none, request_options: {}) + if allow_redirects + json = fetch_resource_without_id_validation(uri, on_behalf_of: on_behalf_of, raise_on_error: raise_on_error) return if !json.is_a?(Hash) || unsupported_uri_scheme?(json['id']) uri = json['id'] end - json = fetch_resource_without_id_validation(uri, on_behalf_of, raise_on_error: raise_on_error, request_options: request_options) + json = fetch_resource_without_id_validation(uri, allow_redirects: false, on_behalf_of: on_behalf_of, raise_on_error: raise_on_error, request_options: request_options) json.present? && json['id'] == uri ? json : nil end @@ -264,21 +264,24 @@ module JsonLdHelper # # @param uri [String] # @param on_behalf_of [nil, Account] + # @param allow_redirects [Boolean] # @param raise_on_error [Symbol<:all, :temporary, :none>] # - +:all+ - raise if response code is not in the 2xx range # - +:temporary+ - raise if the response code is not an "unsalvageable error" like a 404 # (see {#response_error_unsalvageable} ) # - +:none+ - do not raise, return +nil+ - def fetch_resource_without_id_validation(uri, on_behalf_of = nil, raise_on_error: :none, request_options: {}) + def fetch_resource_without_id_validation(uri, allow_redirects: true, on_behalf_of: nil, raise_on_error: :none, request_options: {}) on_behalf_of ||= Account.representative + request_options = request_options.merge(follow: false) unless allow_redirects + build_request(uri, on_behalf_of, options: request_options).perform do |response| raise Mastodon::UnexpectedResponseError, response if !response_successful?(response) && ( raise_on_error == :all || (!response_error_unsalvageable?(response) && raise_on_error == :temporary) ) - body_to_json(response.body_with_limit) if response.code == 200 && valid_activitypub_content_type?(response) + body_to_json(response.body_with_limit) if response.code == 200 && valid_activitypub_content_type?(response) && (allow_redirects || response.uri.to_s == uri) end end @@ -345,7 +348,7 @@ module JsonLdHelper return collection_or_uri if collection_or_uri.is_a?(Hash) return if !reference_uri.nil? && non_matching_uri_hosts?(reference_uri, collection_or_uri) - fetch_resource_without_id_validation(collection_or_uri, on_behalf_of, raise_on_error: :temporary) + fetch_resource_without_id_validation(collection_or_uri, on_behalf_of: on_behalf_of, raise_on_error: :temporary) end def valid_activitypub_content_type?(response) diff --git a/app/javascript/mastodon/features/account_edit/styles.module.scss b/app/javascript/mastodon/features/account_edit/styles.module.scss index c98bbc0..633cb5f 100644 --- a/app/javascript/mastodon/features/account_edit/styles.module.scss +++ b/app/javascript/mastodon/features/account_edit/styles.module.scss @@ -25,7 +25,7 @@ .avatar { margin-top: -64px; - margin-left: calc(var(--space-4) - 2px); + margin-left: calc(var(--space-md) - 2px); position: relative; width: 82px; @@ -251,7 +251,7 @@ // Section component .section { - padding: var(--space-6) var(--space-4); + padding: var(--space-xl) var(--space-md); border-bottom: 1px solid var(--color-border-primary); font-size: 15px; diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index 4724df4..2ad5a9f 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -169,7 +169,7 @@ "account_edit.custom_fields.reorder_button": "Змяніць парадак палёў", "account_edit.custom_fields.tip_content": "Вы можаце лёгка дадаць даверу да свайго ўліковага запісу Mastodon пацвярджэннем спасылак на любы з Вашых сайтаў.", "account_edit.custom_fields.tip_title": "Падказка: Дадаванне пацверджаных спасылак", - "account_edit.custom_fields.title": "Адвольныя палі", + "account_edit.custom_fields.title": "Уласныя палі", "account_edit.custom_fields.verified_hint": "Як мне дадаць пацверджаную спасылку?", "account_edit.display_name.add_label": "Дадаць бачнае імя", "account_edit.display_name.edit_label": "Рэдагаваць бачнае імя", @@ -180,15 +180,15 @@ "account_edit.featured_hashtags.title": "Выбраныя хэштэгі", "account_edit.field_actions.delete": "Выдаліць поле", "account_edit.field_actions.edit": "Рэдагаваць поле", - "account_edit.field_delete_modal.confirm": "Вы ўпэўненыя, што хочаце выдаліць гэтае адвольнае поле? Гэтае дзеянне будзе незваротным.", + "account_edit.field_delete_modal.confirm": "Вы ўпэўненыя, што хочаце выдаліць гэтае ўласнае поле? Гэтае дзеянне будзе незваротным.", "account_edit.field_delete_modal.delete_button": "Выдаліць", - "account_edit.field_delete_modal.title": "Выдаліць адвольнае поле?", - "account_edit.field_edit_modal.add_title": "Дадаць адвольнае поле", + "account_edit.field_delete_modal.title": "Выдаліць уласнае поле?", + "account_edit.field_edit_modal.add_title": "Дадаць уласнае поле", "account_edit.field_edit_modal.discard_confirm": "Адхіліць", "account_edit.field_edit_modal.discard_message": "У Вас ёсць незахаваныя змены. Вы сапраўды хочаце адхіліць іх?", - "account_edit.field_edit_modal.edit_title": "Рэдагаваць адвольнае поле", + "account_edit.field_edit_modal.edit_title": "Рэдагаваць уласнае поле", "account_edit.field_edit_modal.length_warning": "Перавышаны рэкамендаваны ліміт сімвалаў. Карыстальнікі мабільных прылад могуць не пабачыць Вашае поле цалкам.", - "account_edit.field_edit_modal.link_emoji_warning": "Мы раім не ўжываць адвольныя эмодзі разам з url-спасылкамі. Адвольныя палі, якія ўтрымліваюць і тое, і другое, будуць адлюстраваныя выключна як тэкст, а не спасылкі, каб не блытаць карыстальнікаў.", + "account_edit.field_edit_modal.link_emoji_warning": "Мы раім не ўжываць уласныя эмодзі разам з url-спасылкамі. Уласныя палі, якія ўтрымліваюць і тое, і другое, будуць адлюстраваныя выключна як тэкст, а не спасылкі, каб не блытаць карыстальнікаў.", "account_edit.field_edit_modal.name_hint": "Напрыклад, \"Асабісты Сайт\"", "account_edit.field_edit_modal.name_label": "Назва", "account_edit.field_edit_modal.url_warning": "Каб дадаць спасылку, калі ласка, дадайце {protocol} у яе пачатку.", @@ -196,7 +196,7 @@ "account_edit.field_edit_modal.value_label": "Значэнне", "account_edit.field_reorder_modal.drag_cancel": "Перасоўванне адмененае. Поле {item} было павернутае на месца.", "account_edit.field_reorder_modal.drag_end": "Поле {item} было павернутае на месца.", - "account_edit.field_reorder_modal.drag_instructions": "Каб змяніць парадак адвольных палёў, націсніце прабел або ўвод. Падчас перасоўвання карыстайцеся клавішамі са стрэлкамі, каб пасунуць поле ўверх ці ўніз. Націсніце прабел ці ўвод зноў, каб замацаваць поле на новым месцы, або націсніце Esc, каб скасаваць дзеянне.", + "account_edit.field_reorder_modal.drag_instructions": "Каб змяніць парадак уласных палёў, націсніце прабел або ўвод. Падчас перасоўвання карыстайцеся клавішамі са стрэлкамі, каб пасунуць поле ўверх ці ўніз. Націсніце прабел ці ўвод зноў, каб замацаваць поле на новым месцы, або націсніце Esc, каб скасаваць дзеянне.", "account_edit.field_reorder_modal.drag_move": "Поле {item} было перасунутае.", "account_edit.field_reorder_modal.drag_over": "Поле {item} было перасунутае над \"{over}\".", "account_edit.field_reorder_modal.drag_start": "Абранае поле \"{item}\".", @@ -250,8 +250,8 @@ "account_edit.verified_modal.invisible_link.details": "Дадайце спасылку ў свой загаловак. Важнай часткай з'яўляецца rel=\"me\", яна прадухіляе выдачу сябе за іншую асобу на сайтах з карыстальніцкім кантэнтам. Вы нават можаце выкарыстоўваць тэг link у загалоўку старонкі замест {tag}, але HTML код павінен быць даступным без выканання JavaScript.", "account_edit.verified_modal.invisible_link.summary": "Як мне зрабіць спасылку нябачнай?", "account_edit.verified_modal.step1.header": "Скапіруйце HTML код знізу і ўстаўце яго ў загаловак свайго сайту", - "account_edit.verified_modal.step2.details": "Калі Вы ўжо дадалі свой сайт у якасці адвольнага поля, Вам спатрэбіцца яго выдаліць і зноў дадаць, каб запусціць верыфікацыю.", - "account_edit.verified_modal.step2.header": "Дадаць свой сайт як адвольнае поле", + "account_edit.verified_modal.step2.details": "Калі Вы ўжо дадалі свой сайт у якасці ўласнага поля, Вам спатрэбіцца яго выдаліць і зноў дадаць, каб запусціць верыфікацыю.", + "account_edit.verified_modal.step2.header": "Дадаць свой сайт як уласнае поле", "account_edit.verified_modal.title": "Як дадаць пацверджаную спасылку", "account_edit_tags.add_tag": "Дадаць #{tagName}", "account_edit_tags.column_title": "Рэдагаваць тэгі", @@ -627,7 +627,7 @@ "embed.preview": "Вось як гэта будзе выглядаць:", "emoji_button.activity": "Актыўнасць", "emoji_button.clear": "Ачысціць", - "emoji_button.custom": "Адвольныя", + "emoji_button.custom": "Уласныя", "emoji_button.flags": "Сцягі", "emoji_button.food": "Ежа і напоі", "emoji_button.label": "Уставіць эмодзі", diff --git a/app/javascript/mastodon/locales/bn.json b/app/javascript/mastodon/locales/bn.json index 9a174f6..68888ce 100644 --- a/app/javascript/mastodon/locales/bn.json +++ b/app/javascript/mastodon/locales/bn.json @@ -7,13 +7,21 @@ "about.domain_blocks.silenced.title": "সীমিত", "about.domain_blocks.suspended.explanation": "এই সার্ভার থেকে কোনও ডেটা প্রক্রিয়াজাতকরণ, সংরক্ষণ বা আদান-প্রদান করা হবে না, তাই এই সার্ভার ব্যবহারকারীদের সাথে কোনও মিথস্ক্রিয়া বা যোগাযোগকে অসম্ভব করে তুলেছে।", "about.domain_blocks.suspended.title": "সাসপেন্ড করা হয়েছে", + "about.language_label": "ভাষা", "about.not_available": "এই তথ্য এই সার্ভারে উন্মুক্ত করা হয়নি.", "about.powered_by": "{mastodon} দ্বারা তৈরি বিকেন্দ্রীভূত সামাজিক মিডিয়া।", "about.rules": "সার্ভারের নিয়মাবলী", "account.account_note_header": "ব্যক্তিগত টীকা", + "account.activity": "কার্য কলাপ", + "account.add_note": "একটি ব্যক্তিগত নোট যোগ করুন", "account.add_or_remove_from_list": "তালিকাতে যোগ বা অপসারণ করো", + "account.badges.admin": "প্রশাসক", + "account.badges.blocked": "ব্লক করা হয়েছে", "account.badges.bot": "বট", + "account.badges.domain_blocked": "ব্লক করা ডোমেইন", "account.badges.group": "দল", + "account.badges.muted": "মিউট করা হয়েছে", + "account.badges.muted_until": "{until} পযর্ন্ত মিউট করা হয়েছে", "account.block": "@{name} কে ব্লক করো", "account.block_domain": "{domain} কে ব্লক করুন", "account.block_short": "ব্লক", @@ -22,24 +30,63 @@ "account.copy": "অবতারের সংযোগ অনুলিপি করো", "account.direct": "গোপনে মেনশন করুন @{name}", "account.disable_notifications": "আমাকে জানানো বন্ধ করো যখন @{name} পোস্ট করবে", + "account.edit_note": "ব্যক্তিগত নোট সম্পাদনা করুন", "account.edit_profile": "প্রোফাইল সম্পাদনা করুন", + "account.edit_profile_short": "সম্পাদনা করুন", "account.enable_notifications": "আমাকে জানাবে যখন @{name} পোস্ট করবে", "account.endorse": "প্রোফাইলে ফিচার করুন", + "account.familiar_followers_many": "আপনাকে {name1},{name2}, এবং {othersCount, plural, one {one other you know} other {# others you know}}অনুসরণ করছেন", + "account.familiar_followers_one": "{name1} আপনাকে অনুসরণ করছেন", + "account.familiar_followers_two": "{name1} এবং {name2} আপনাকে অনুসরণ করছেন", + "account.featured": "ফিচারড/ বৈশিষ্ট্য যুক্ত", + "account.featured.accounts": "প্রোফাইল", + "account.featured.collections": "সংগ্রহ", + "account.featured.new_collection": "নতুন সংগ্রহ", + "account.field_overflow": "পুরো কন্টেন্ট দেখুন", + "account.filters.all": "সমস্ত কার্যকলাপ", + "account.filters.boosts_toggle": "বুস্ট দেখান", + "account.filters.posts_boosts": "পোস্ট এবং বুস্ট", + "account.filters.posts_only": "পোস্ট", + "account.filters.posts_replies": "পোস্ট এবং উত্তর", + "account.filters.replies_toggle": "উত্তর দেখান", "account.follow": "অনুসরণ", "account.follow_back": "তাকে অনুসরণ করো", + "account.follow_back_short": "ফলো ব্যাক করুন", + "account.follow_request": "অনুসরণের অনুরোধ পাঠান", + "account.follow_request_cancel": "অনুরোধ বাতিল করুন", + "account.follow_request_cancel_short": "বাতিল করুন", + "account.follow_request_short": "অনুরোধ পাঠান", "account.followers": "অনুসরণকারী", "account.followers.empty": "এই ব্যক্তিকে এখনো কেউ অনুসরণ করে না.", + "account.followers_counter": "{count, plural, one {{counter} যাদের আপনি চেনেন} other {{counter} যাদের আপনি চেনেন}}", + "account.followers_you_know_counter": "{counter} আপনি জানেন", "account.following": "অনুসরণ করা হচ্ছে", + "account.following_counter": "{count, plural, one {{counter} অনুসরণকারী} other {{counter} অনুসরণকারী}}", "account.follows.empty": "এই সদস্য কাউকে এখনো ফলো করেন না.", + "account.follows_you": "আপনাকে অনুসরণ করেন", "account.go_to_profile": "প্রোফাইলে যান", + "account.hame.invalid_handle": "হ্যান্ডেল উপলব্ধ নয়", "account.hide_reblogs": "@{name}'র সমর্থনগুলি লুকিয়ে ফেলুন", "account.in_memoriam": "স্মৃতিতে.", + "account.join_modal.day": "দিন", + "account.join_modal.me": "আপনি {server} যোগ দিয়েছিলেন", + "account.join_modal.me_anniversary": "শুভ ফেডিভার্সারি! আপনি {server} যোগ দিয়েছিলেন", + "account.join_modal.me_today": "আজ আপনার {server} প্রথম দিন!", + "account.join_modal.other": "{name} {server} যোগ দিয়েছেন", + "account.join_modal.other_today": "{name} {server} প্রথম দিন!", + "account.join_modal.share.celebrate": "একটি শুভেচ্ছামূলক পোস্ট শেয়ার করুন", + "account.join_modal.share.intro": "একটি পরিচয়মূলক পোস্ট শেয়ার করুন", + "account.join_modal.share.welcome": "একটি স্বাগত পোস্ট শেয়ার করুন", + "account.join_modal.years": "{number, plural,one {বছর}other {বছর}}", "account.joined_short": "যোগ দিয়েছেন", "account.languages": "সাবস্ক্রাইব করা ভাষা পরিবর্তন করুন", + "account.last_active": "শেষ সক্রিয়", "account.link_verified_on": "এই লিংকের মালিকানা চেক করা হয়েছে {date} তারিখে", "account.locked_info": "এই একাউন্ট লক করা। উনি যাদেরকে ফলো করার অনুমতি যাদেরকে দেবেন, শুধু তারাই ফলো করতে পারবেন.", "account.media": "মিডিয়া", "account.mention": "@{name} কে মেনশন করুন", + "account.menu.add_to_collection": "সংগ্রহে যোগ করুন...", + "account.menu.add_to_list": "লিস্টে যোগ করুন...", "account.moved_to": "{name} নির্দেশ করেছে যে তাদের নতুন অ্যাকাউন্ট এখন হলো:", "account.mute": "@{name} কে নিঃশব্দ করুন", "account.mute_notifications_short": "নোটিফিকেশন মিউট করুন", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index 7a968cd..6ce0f38 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -254,7 +254,7 @@ "account_edit.verified_modal.step2.header": "Tilføj dit websted som et brugerdefineret felt", "account_edit.verified_modal.title": "Sådan tilføjes et bekræftet link", "account_edit_tags.add_tag": "Tilføj #{tagName}", - "account_edit_tags.column_title": "Rediger etiket", + "account_edit_tags.column_title": "Rediger etiketter", "account_edit_tags.help_text": "Fremhævede hashtags hjælper brugere med at finde og interagere med din profil. De vises som filtre i aktivitetsvisningen på din profilside.", "account_edit_tags.max_tags_reached": "Du har nået det maksimale antal fremhævede hashtags.", "account_edit_tags.search_placeholder": "Angiv et hashtag…", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index dd5eded..76503cb 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -90,7 +90,7 @@ "account.menu.add_to_collection": "Einer Sammlung hinzufügen …", "account.menu.add_to_list": "Einer Liste hinzufügen …", "account.menu.block": "Konto blockieren", - "account.menu.block_domain": "{domain} blockieren", + "account.menu.block_domain": "Server {domain} blockieren", "account.menu.copied": "Profillink in die Zwischenablage kopiert", "account.menu.copy": "Profillink kopieren", "account.menu.direct": "Privat erwähnen", @@ -866,7 +866,7 @@ "lightbox.zoom_out": "In angepasster Größe anzeigen", "limited_account_hint.action": "Profil trotzdem anzeigen", "limited_account_hint.title": "Dieses Profil oder dieser Server wurde von den Moderator*innen von {domain} ausgeblendet.", - "link_preview.author": "Von {name}", + "link_preview.author": "von {name}", "link_preview.more_from_author": "Mehr von {name}", "link_preview.shares": "{count, plural, one {{counter} Beitrag} other {{counter} Beiträge}}", "lists.add_member": "Hinzufügen", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index d56cfc7..f85b041 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -67,6 +67,7 @@ "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "Follows you", "account.go_to_profile": "Go to profile", + "account.hame.invalid_handle": "Handle unavailable", "account.hide_reblogs": "Hide boosts from @{name}", "account.in_memoriam": "In Memoriam.", "account.join_modal.day": "Day", @@ -98,6 +99,7 @@ "account.menu.mute": "Mute account", "account.menu.note.description": "Visible only to you", "account.menu.open_original_page": "View on {domain}", + "account.menu.open_original_page_no_domain": "View on original server", "account.menu.remove_follower": "Remove follower", "account.menu.report": "Report account", "account.menu.share": "Share…", @@ -116,6 +118,8 @@ "account.name.help.domain_self": "{domain} is your server that hosts your profile and posts.", "account.name.help.footer": "Just like you can send emails to people using different email providers, you can interact with people on other Mastodon servers, and with anyone on other Fediverse apps.", "account.name.help.header": "A handle is like an email address", + "account.name.help.invalid_explanation": "This can happen when a user changes username, and is generally temporary. If this persists, it may be because of an unavailable server or some misconfiguration on their end.", + "account.name.help.invalid_header": "This user's handle is being updated", "account.name.help.username": "{username} is this account’s username on their server. Someone on another server might have the same username.", "account.name.help.username_self": "{username} is your username on this server. Someone on another server might have the same username.", "account.name_info": "What does this mean?", @@ -391,6 +395,7 @@ "collections.create.basic_details_title": "Basic details", "collections.create.steps": "Step {step}/{total}", "collections.create_collection": "Create collection", + "collections.create_new_collection": "Create new collection", "collections.delete_collection": "Delete collection", "collections.description_length_hint": "100 characters limit", "collections.detail.author_added_you_on_date": "{author} added you on {date}", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index 78f387b..95e91a8 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -2,6 +2,7 @@ "about.blocks": "Reguligitaj serviloj", "about.contact": "Kontakto:", "about.default_locale": "Defaŭlta", + "about.disclaimer": "Mastodon estas libera, malfermitkoda programo kaj varmarko de la firmao Mastodon GmbH.", "about.domain_blocks.no_reason_available": "Kialo ne disponeblas", "about.domain_blocks.preamble": "Mastodon ĝenerale rajtigas vidi la enhavojn de uzantoj el aliaj serviloj en la fediverso, kaj komuniki kun ili. Jen la limigoj deciditaj de tiu ĉi servilo mem.", "about.domain_blocks.silenced.explanation": "Vi ne ĝenerale vidos profilojn kaj enhavojn de ĉi tiu servilo, krom se vi eksplice trovas aŭ estas permesita de via sekvato.", @@ -13,6 +14,7 @@ "about.powered_by": "Malcentrigita socia retejo pere de {mastodon}", "about.rules": "Reguloj de la servilo", "account.account_note_header": "Personaj notoj", + "account.activity": "Agado", "account.add_note": "Aldoni personan noton", "account.add_or_remove_from_list": "Aldoni al aŭ forigi el listoj", "account.badges.admin": "Administranto", @@ -30,23 +32,32 @@ "account.copy": "Kopii ligilon al profilo", "account.direct": "Private mencii @{name}", "account.disable_notifications": "Ĉesu sciigi min kiam @{name} afiŝas", + "account.edit_note": "Redakti personan noton", "account.edit_profile": "Redakti la profilon", "account.edit_profile_short": "Redakti", "account.enable_notifications": "Sciigu min kiam @{name} afiŝos", "account.endorse": "Montri en profilo", + "account.familiar_followers_many": "Sekvata de {name1}, {name2}, kaj {othersCount, plural, one {unu alia konatulo} other {# aliaj konatuloj}}", "account.familiar_followers_one": "Sekvita de {name1}", "account.familiar_followers_two": "Sekvita de {name1} kaj {name2}", "account.featured": "Elstarigitaj", "account.featured.accounts": "Profiloj", "account.featured.collections": "Kolektoj", + "account.featured.new_collection": "Nova kolekto", + "account.field_overflow": "Montri plenan enhavon", "account.filters.all": "Ĉiuj agadoj", + "account.filters.boosts_toggle": "Montri diskonigojn", + "account.filters.posts_boosts": "Afiŝoj kaj diskonigoj", "account.filters.posts_only": "Afiŝoj", "account.filters.posts_replies": "Afiŝoj kaj respondoj", "account.filters.replies_toggle": "Montri respondojn", "account.follow": "Sekvi", "account.follow_back": "Sekvu reen", "account.follow_back_short": "Sekvu reen", + "account.follow_request": "Peti por sekvado", + "account.follow_request_cancel": "Nuligi peton", "account.follow_request_cancel_short": "Nuligi", + "account.follow_request_short": "Peto", "account.followers": "Sekvantoj", "account.followers.empty": "Ankoraŭ neniu sekvas ĉi tiun uzanton.", "account.followers_counter": "{count, plural, one{{counter} sekvanto} other {{counter} sekvantoj}}", @@ -56,32 +67,73 @@ "account.follows.empty": "La uzanto ankoraŭ ne sekvas iun ajn.", "account.follows_you": "Sekvas vin", "account.go_to_profile": "Iri al profilo", + "account.hame.invalid_handle": "Identigilo nedisponebla", "account.hide_reblogs": "Kaŝi diskonigojn de @{name}", "account.in_memoriam": "Memore.", "account.join_modal.day": "Tago", + "account.join_modal.me": "Vi aliĝis al {server} je", + "account.join_modal.me_anniversary": "Bonan federujan datrevenon! Vi aliĝis al {server} je", "account.join_modal.me_today": "Estas via unua tago sur {server}!", + "account.join_modal.other": "{name} aliĝis al {server} je", + "account.join_modal.other_today": "Estas la unua tago de {name} sur {server}!", "account.join_modal.share.celebrate": "Kunhavigu festan afiŝon", "account.join_modal.share.intro": "Kunhavigi enkondukan afiŝon", "account.join_modal.share.welcome": "Kunhavigi bonvenan afiŝon", "account.join_modal.years": "{number, plural,one {jaro} other {jaroj}}", "account.joined_short": "Aliĝis", "account.languages": "Ŝanĝi la abonitajn lingvojn", + "account.last_active": "Laste aktiva je", "account.link_verified_on": "La posedanto de tiu ligilo estis kontrolita je {date}", "account.locked_info": "La privateco de tiu konto estas elektita kiel fermita. La posedanto povas mane akcepti tiun, kiu povas sekvi rin.", "account.media": "Aŭdovidaĵoj", "account.mention": "Mencii @{name}", + "account.menu.add_to_collection": "Aldoni al kolekto…", "account.menu.add_to_list": "Aldoni al listo…", "account.menu.block": "Bloki konton", "account.menu.block_domain": "Bloki {domain}", + "account.menu.copied": "Ligilo de konto kopiita al tondujo", + "account.menu.copy": "Kopii ligilon", + "account.menu.direct": "Private mencii", + "account.menu.hide_reblogs": "Kaŝi diskonigojn en tempolinio", + "account.menu.mention": "Mencii", + "account.menu.mute": "Silentigi konton", + "account.menu.note.description": "Videbla nur por vi", + "account.menu.open_original_page": "Rigardi per {domain}", + "account.menu.open_original_page_no_domain": "Rigardi per origina servilo", + "account.menu.remove_follower": "Forigi sekvanton", + "account.menu.report": "Raporti konton", + "account.menu.share": "Diskonigi…", + "account.menu.show_reblogs": "Montri diskonigojn en tempolinio", + "account.menu.unblock": "Malbari konton", + "account.menu.unblock_domain": "Malbari servilon {domain}", + "account.menu.unmute": "Malsilentigi konton", "account.moved_to": "{name} indikis, ke ria nova konto estas nun:", "account.mute": "Silentigi @{name}", "account.mute_notifications_short": "Silentigu sciigojn", "account.mute_short": "Silentigu", "account.muted": "Silentigita", "account.mutual": "Vi sekvas unu la alian", + "account.name.copy": "Kopii identigilon", + "account.name.help.domain": "{domain} estas la servilo, kiu konservas kaj provizas profilon kaj afiŝojn de la uzanto.", + "account.name.help.domain_self": "{domain} estas via servilo, kiu konservas kaj provizas vian profilon kaj afiŝojn.", + "account.name.help.footer": "Samkiel vi povas sendi retpoŝtaĵojn al uloj, kiuj uzas aliajn provizantojn de retpoŝto, vi povas interagi kun uloj sur aliaj serviloj de Mastodon, kaj kun iuj ajn sur aliaj aplikaĵoj de la fediverso.", + "account.name.help.header": "Identigilo estas simila al retpoŝtadreso", + "account.name.help.invalid_explanation": "Ĉi tio povas okazi, kiam uzanto ŝanĝas uzantnomon, kaj ĝenerale estas portempa. Se ĉi tio daŭras, ĝi eble okazis pro nedisponebleco aŭ malĝusta agordo de ties servilo.", + "account.name.help.invalid_header": "Identigilo de ĉi tiu uzanto estas ĝisdatigata", + "account.name.help.username": "{username} estas la uzantnomo de ĉi tiu konto sur ties servilo. Iu sur alia servilo povas havi la saman uzantnomon.", + "account.name.help.username_self": "{username} estas via uzantnomo sur ĉi tiu servilo. Iu sur alia servilo povas havi la saman uzantnomon.", + "account.name_info": "Kion ĉi tio signifas?", "account.no_bio": "Neniu priskribo estas provizita.", + "account.node_modal.callout": "Personaj notoj estas videblaj nur por vi.", + "account.node_modal.edit_title": "Redakti personan noton", + "account.node_modal.error_unknown": "Ne povas konservi la noton", "account.node_modal.field_label": "Persona noto", + "account.node_modal.save": "Konservi", + "account.node_modal.title": "Aldoni personan noton", + "account.note.edit_button": "Redakti", + "account.note.title": "Persona noto (videbla nur por vi)", "account.open_original_page": "Malfermi la originalan paĝon", + "account.pending": "Pritraktata", "account.posts": "Afiŝoj", "account.remove_from_followers": "Forigi {name}-n de sekvantoj", "account.report": "Raporti @{name}", @@ -89,6 +141,8 @@ "account.share": "Diskonigi la profilon de @{name}", "account.show_reblogs": "Montri diskonigojn de @{name}", "account.statuses_counter": "{count, plural,one {{counter} afiŝo} other {{counter} afiŝoj}}", + "account.timeline.pinned": "Alpinglita", + "account.timeline.pinned.view_all": "Vidi ĉiujn alpinglitajn afiŝojn", "account.unblock": "Malbloki @{name}", "account.unblock_domain": "Malbloki la domajnon {domain}", "account.unblock_domain_short": "Malbloki", @@ -98,9 +152,116 @@ "account.unmute": "Malsilentigi @{name}", "account.unmute_notifications_short": "Malsilentigu sciigojn", "account.unmute_short": "Ne plu silentigi", + "account_edit.advanced_settings.bot_hint": "Signali al aliuloj, ke la konto ĉefe agas aŭtomate, kaj eble ne estas ĉiam kontrolata", + "account_edit.advanced_settings.bot_label": "Aŭtomata konto", + "account_edit.advanced_settings.title": "Spertulaj agordoj", + "account_edit.bio.add_label": "Aldoni priskribon", + "account_edit.bio.edit_label": "Redakti priskribon", + "account_edit.bio.placeholder": "Aldoni iom da informo pri vi mem, por ke aliaj povas ekkoni vin.", + "account_edit.bio.title": "Priskribo", + "account_edit.bio_modal.add_title": "Aldoni priskribon", + "account_edit.bio_modal.edit_title": "Redakti priskribon", + "account_edit.column_button": "Farita", + "account_edit.column_title": "Redakti profilon", + "account_edit.custom_fields.add_label": "Aldoni kampon", + "account_edit.custom_fields.edit_label": "Redakti kampon", + "account_edit.custom_fields.placeholder": "Aldoni viajn pronomojn, ligiloj aŭ retejoj, aŭ ion alian, kion vi volas diskonigi.", + "account_edit.custom_fields.reorder_button": "Reordigi kampojn", + "account_edit.custom_fields.tip_content": "Vi povas facile pliigi la fidindecon de via konto de Mastodon, se vi konfirmas la ligilojn sur retejoj, kiuj vi posedas.", + "account_edit.custom_fields.tip_title": "Konsilo: Aldonado de konfirmitaj ligiloj", + "account_edit.custom_fields.title": "Propraj kampoj", + "account_edit.custom_fields.verified_hint": "Kiel aldoni konfirmitan ligilon?", + "account_edit.display_name.add_label": "Aldoni vidnomon", + "account_edit.display_name.edit_label": "Redakti vidnomon", + "account_edit.display_name.placeholder": "Via vidnomo estas kiel via nomo aperas sur via profilo kaj en tempolinioj.", + "account_edit.display_name.title": "Vidnomo", + "account_edit.featured_hashtags.edit_label": "Aldoni kradvortojn", + "account_edit.featured_hashtags.placeholder": "Helpu al aliuloj ekkoni, kaj rapide atingi, viajn plej ŝatatajn temojn.", "account_edit.featured_hashtags.title": "Elstarigitaj kradvortoj", + "account_edit.field_actions.delete": "Forigi kampon", + "account_edit.field_actions.edit": "Redakti kampon", + "account_edit.field_delete_modal.confirm": "Ĉu vi certas, ke vi volas forigi ĉi tiun propran kampon? Ĉi tiu ago ne malfareblas.", + "account_edit.field_delete_modal.delete_button": "Forigi", + "account_edit.field_delete_modal.title": "Ĉi forigi propran kampon?", + "account_edit.field_edit_modal.add_title": "Aldoni propran kampon", + "account_edit.field_edit_modal.discard_confirm": "Forĵeti", + "account_edit.field_edit_modal.discard_message": "Vi havas nekonservitajn ŝanĝojn. Ĉu vi certe volas forĵeti ilin?", + "account_edit.field_edit_modal.edit_title": "Redakti propran kampon", + "account_edit.field_edit_modal.length_warning": "Rekomendita nombro de signoj trairita. Uzantoj sur poŝaparatoj eble ne povos vidi la plenan enhavon de via propra kampo.", + "account_edit.field_edit_modal.link_emoji_warning": "Ni rekomendas ne uzi proprajn emoĝiojn kun retadresoj. Propraj kampoj, kiuj enhavas ambaŭ, estos montritaj nur kiel teksto anstataŭ ligilo, por eviti konfuzon por aliaj uzantoj.", + "account_edit.field_edit_modal.name_hint": "Ekz. “Persona retejo”", + "account_edit.field_edit_modal.name_label": "Etikedo", + "account_edit.field_edit_modal.url_warning": "Por aldoni ligilon, bonvolu komenci per {protocol}.", + "account_edit.field_edit_modal.value_hint": "Ekz. “https://example.me”", + "account_edit.field_edit_modal.value_label": "Valoro", + "account_edit.field_reorder_modal.drag_cancel": "Trenado estis nuligita. Kampo “{item}” estis demetita.", + "account_edit.field_reorder_modal.drag_end": "Kampo “{item}” estis demetita.", + "account_edit.field_reorder_modal.drag_instructions": "Por reordigi proprajn kampojn, presu la spacostangon aŭ la enigan klavon. Dum trenado, uzu la direktajn klavojn por suprenigi aŭ subenigi la kampon. Presu la spacostangon aŭ enigan klavon denove por demeti la kampon en ties nova pozicio, aŭ presu la eskapan klavon por nuligi la ŝanĝon.", + "account_edit.field_reorder_modal.drag_move": "Kampo “{item}” estis movita.", + "account_edit.field_reorder_modal.drag_over": "Kampo \"{item}\" estis movita super \"{over}\".", + "account_edit.field_reorder_modal.drag_start": "Kampo \"{item}\" estis prenita.", + "account_edit.field_reorder_modal.handle_label": "Ŝovmeta kampo \"{item}\"", + "account_edit.field_reorder_modal.title": "Reordigi kampojn", + "account_edit.image_alt_modal.add_title": "Aldoni alternativan tekston", + "account_edit.image_alt_modal.details_content": "BONA: MALBONA: EKZEMPLO: ", + "account_edit.image_alt_modal.details_title": "Konsilo: alternativa teksto por profilbildoj", + "account_edit.image_alt_modal.edit_title": "Redakti alternativan tekston", + "account_edit.image_alt_modal.text_hint": "Alternativa teksto helpas uzantojn de ekranlegiloj kompreni vian videnhavon.", + "account_edit.image_alt_modal.text_label": "Alternativa teksto", + "account_edit.image_delete_modal.confirm": "Ĉu vi certas, ke vi volas forigi ĉi tiun bildon? Tiu ago ne estas malfarebla.", + "account_edit.image_delete_modal.delete_button": "Forigi", + "account_edit.image_delete_modal.title": "Ĉu forigi bildon?", + "account_edit.image_edit.add_button": "Aldoni bildon", + "account_edit.image_edit.alt_add_button": "Aldoni priskribon", + "account_edit.image_edit.alt_edit_button": "Redakti priskribon", + "account_edit.image_edit.remove_button": "Forigi bildon", + "account_edit.image_edit.replace_button": "Anstataŭi bildon", + "account_edit.item_list.delete": "Forigi “{name}”", + "account_edit.item_list.edit": "Redakti “{name}”", + "account_edit.name_modal.add_title": "Aldoni vidnomon", + "account_edit.name_modal.edit_title": "Redakti vidnomon", + "account_edit.profile_tab.button_label": "Tajlori", + "account_edit.profile_tab.hint.description": "Ĉi tiuj agordoj tajloras, kion uzantoj de {server} vidas per la oficialaj aplikaĵoj, sed povas ne efiki al uzantoj de aliaj serviloj aŭ eksteraj aplikaĵoj.", + "account_edit.profile_tab.hint.title": "Montrado povas varii", + "account_edit.profile_tab.show_featured.description": "‘Elstarigitaj’ estos opcia langeto, per kiu vi povas montri aliajn profilojn.", + "account_edit.profile_tab.show_featured.title": "Montri langeton ‘Elstarigitaj’", + "account_edit.profile_tab.show_media.description": "‘Vidaŭdaĵoj’ estas opcia langeto, kiu montrigas viajn afiŝojn, enhavantajn bildojn, aŭdaĵojn aŭ videaĵojn.", + "account_edit.profile_tab.show_media.title": "Montri langeton ‘Vidaŭdaĵoj’", + "account_edit.profile_tab.show_media_replies.description": "Kiam ebligita, la langeto ‘Vidaŭdaĵoj’ montras ambaŭ viajn afiŝojn kaj respondoj al afiŝoĵ de aliuloj.", + "account_edit.profile_tab.show_media_replies.title": "Inkluzivi respondojn en la langeto ‘Aŭdvidaĵoj’", + "account_edit.profile_tab.show_relations.description": "Montras viajn sekvatojn kaj sekvantojn en via profilo. Oni ĉiam povas vidi, se vi sekvas onin.", + "account_edit.profile_tab.show_relations.title": "Montri sekvantojn kaj sekvatojn", + "account_edit.profile_tab.subtitle": "Tajlori la montradon de via profilo.", + "account_edit.profile_tab.title": "Agordoj de profila montrado", "account_edit.save": "Konservi", + "account_edit.upload_modal.back": "Reen", + "account_edit.upload_modal.done": "Farita", + "account_edit.upload_modal.next": "Antaŭen", + "account_edit.upload_modal.step_crop.zoom": "Zomo", + "account_edit.upload_modal.step_upload.button": "Elekti dosierojn", + "account_edit.upload_modal.step_upload.dragging": "Demetu por alŝuti", + "account_edit.upload_modal.step_upload.header": "Elektu bildon", + "account_edit.upload_modal.step_upload.hint": "Formatoj WEBP, PNG, GIF aŭ JPG, grando ĝis {limit} MO.{br}Bildo estos malgrandigita ĝis {width}x{height} bilderoj.", + "account_edit.upload_modal.title_add.avatar": "Aldoni profilbildon", + "account_edit.upload_modal.title_add.header": "Aldoni kovrilbildon", + "account_edit.upload_modal.title_replace.avatar": "Anstataŭigi profilbildon", + "account_edit.upload_modal.title_replace.header": "Anstataŭigi kovrilbildon", + "account_edit.verified_modal.details": "Por kredigi vian profilon sur Mastodon, vi povas aldoni konfirmitan ligilon al via persona retejo. Jen kiel fari ĉi tion:", + "account_edit.verified_modal.invisible_link.details": "Aldoni la ligilon al la paĝkapo de via retejo. La grava parto estas rel=\"me\", kiu preventas al falsuloj krei ligilojn sur retejoj kun uzanto-generita enhavo. Vi eĉ povas uzi HTML-etikedon \"link\" en la kapo de la paĝo anstataŭ \"{tag}\", sed la HTML-enhavo devas esti havebla sen uzado de JavaScript.", + "account_edit.verified_modal.invisible_link.summary": "Kiel malvidebligi la ligilon?", + "account_edit.verified_modal.step1.header": "Kopii la HTML-kodon sube kaj alglui ĝin al la kapo de via retejo", + "account_edit.verified_modal.step2.details": "Se vi jam aldonis ligilon al via retejo per propra kampo, vi devos forigi kaj realdoni ĝin por ekkonfirmi ĝin.", + "account_edit.verified_modal.step2.header": "Aldonu vian retejon per propra kampo", + "account_edit.verified_modal.title": "Kiel aldoni konfirmitan ligilon", "account_edit_tags.add_tag": "Aldoni #{tagName}", + "account_edit_tags.column_title": "Redakti etikedojn", + "account_edit_tags.help_text": "Elektitaj etikedoj helpas al uzantoj malkovri kaj interagi kun via profilo. Ili aperas kiel filtriloj sur la vido \"Agado\" de via profilpaĝo.", + "account_edit_tags.max_tags_reached": "Vi atingis la maksimuman kvanton de elektitaj kradvortoj.", + "account_edit_tags.search_placeholder": "Enmeti kradvorton…", + "account_edit_tags.suggestions": "Sugestoj:", + "account_edit_tags.tag_status_count": "{count, plural, one {# afiŝo} other {# afiŝoj}}", + "account_list.hidden_notice": "Ĉi tiu listo estas nur videbla por vi. Por montri ĝin al aliuloj, iri al {page} > {modal} > {field}.", + "account_list.total": "{total, plural, one {# konto} other {# kontoj}}", "admin.dashboard.daily_retention": "Uzantoretenprocento laŭ tag post registro", "admin.dashboard.monthly_retention": "Uzantoretenprocento laŭ monato post registro", "admin.dashboard.retention.average": "Averaĝa", @@ -110,6 +271,7 @@ "admin.impact_report.instance_followers": "Sekvantojn niaj uzantoj perdus", "admin.impact_report.instance_follows": "Sekvantojn ties uzantoj perdus", "admin.impact_report.title": "Influa reporto", + "alert.need_reload.message": "Mastodon estis ĝisdatigita. Bonvolu reŝarĝi la paĝon por daŭrigi.", "alert.rate_limited.message": "Bonvolu reprovi poste {retry_time, time, medium}.", "alert.rate_limited.title": "Mesaĝkvante limigita", "alert.unexpected.message": "Neatendita eraro okazis.", @@ -123,24 +285,63 @@ "alt_text_modal.describe_for_people_with_visual_impairments": "Priskribi ĉi tion por homoj kun vidaj malkapabloj…", "alt_text_modal.done": "Farita", "announcement.announcement": "Anonco", + "annual_report.announcement.action_build": "Krei mian Resumodonon", "annual_report.announcement.action_dismiss": "Ne, dankon", + "annual_report.announcement.action_view": "Vidi mian Resumodonon", + "annual_report.announcement.description": "Ekscii pli pri via agado sur Mastodon dum la lasta jaro.", + "annual_report.announcement.title": "Resumodono {year} alvenis", "annual_report.nav_item.badge": "Nova", "annual_report.shared_page.donate": "Donaci", + "annual_report.shared_page.footer": "Generita kun {heart}, de la teamo de Mastodon", + "annual_report.shared_page.footer_server_info": "{username} uzas la servilon {domain} — unu de multaj komunumoj, bazitaj sur Mastodon.", + "annual_report.summary.archetype.booster.desc_public": "{name} persiste ĉasis valorajn afiŝojn por diskonigi, promocianta aliajn kreantojn kun perfekta celado.", + "annual_report.summary.archetype.booster.desc_self": "Vi persiste ĉasis valorajn afiŝojn por diskonigi, promocianta aliajn kreantojn kun perfekta celado.", + "annual_report.summary.archetype.booster.name": "La pafarkisto", + "annual_report.summary.archetype.die_drei_fragezeichen": "???", + "annual_report.summary.archetype.lurker.desc_public": "Ni scias, ke {name} estis ĉi tie, ĝuanta la reton Mastodon en ties propra kvieta maniero.", + "annual_report.summary.archetype.lurker.desc_self": "Ni scias, ke vi estis ĉi tie, ĝuanta la reton Mastodon en via propra kvieta maniero.", + "annual_report.summary.archetype.lurker.name": "La silentulo", + "annual_report.summary.archetype.oracle.desc_public": "{name} kreis pli da afiŝoj ol respondoj, tenanta la reton Mastodon freŝan kaj celantan sur la estonteco.", + "annual_report.summary.archetype.oracle.desc_self": "Vi kreis pli da afiŝoj ol respondoj, tenanta la reton Mastodon freŝan kaj celantan sur la estonteco.", + "annual_report.summary.archetype.oracle.name": "La orakolo", + "annual_report.summary.archetype.pollster.desc_public": "{name} kreis pli da enketoj ol aliaj specoj de afiŝoj, kreskanta scivolemon sur la reto Mastodon.", + "annual_report.summary.archetype.pollster.desc_self": "Vi kreis pli da enketoj ol aliaj specoj de afiŝoj, kreskanta scivolemon sur la reto Mastodon.", + "annual_report.summary.archetype.pollster.name": "La scivolanto", + "annual_report.summary.archetype.replier.desc_public": "{name} ofte respondas al afiŝoj de aliuloj, riĉiganta la reton Mastodon per novaj diskutoj.", + "annual_report.summary.archetype.replier.desc_self": "Vi ofte respondas al afiŝoj de aliuloj, riĉiganta la reton Mastodon per novaj diskutoj.", + "annual_report.summary.archetype.replier.name": "La papilio", + "annual_report.summary.archetype.reveal": "Malkaŝi mian pratipon", + "annual_report.summary.archetype.reveal_description": "Dankon por partoprenado en Mastodon! Estas tempo ekscii, kiun pratipon vi personigis en la jaro {year}.", + "annual_report.summary.archetype.title_public": "Pratipo de {name}", + "annual_report.summary.archetype.title_self": "Via pratipo", "annual_report.summary.close": "Fermi", "annual_report.summary.copy_link": "Kopii ligilon", + "annual_report.summary.followers.new_followers": "{count, plural, one {nova sekvanto} other {novaj sekvantoj}}", + "annual_report.summary.highlighted_post.boost_count": "Ĉi tiu afiŝo estis diskonigita {count, plural, one {unufoje} other {# fojojn}}.", + "annual_report.summary.highlighted_post.favourite_count": "Ĉi tiu afiŝo estis stelumita {count, plural, one {unufoje} other {# fojojn}}.", + "annual_report.summary.highlighted_post.reply_count": "Ĉi tiu afiŝo ricevis {count, plural, one {unu respondon} other {# respondojn}}.", "annual_report.summary.highlighted_post.title": "Plej populara afiŝo", "annual_report.summary.most_used_app.most_used_app": "plej uzita aplikaĵo", "annual_report.summary.most_used_hashtag.most_used_hashtag": "plej uzata kradvorto", + "annual_report.summary.most_used_hashtag.used_count": "Vi uzis ĉi tiun kradvorton en {count, plural, one {unu afiŝo} other {# afiŝoj}}.", + "annual_report.summary.most_used_hashtag.used_count_public": "{name} uzis ĉi tiun kradvorton en {count, plural, one {unu afiŝo} other {# afiŝoj}}.", "annual_report.summary.new_posts.new_posts": "novaj afiŝoj", "annual_report.summary.percentile.text": "Tion metas vin en la plejde {domain} uzantoj.", "annual_report.summary.percentile.we_wont_tell_bernie": "Ni ne diros al Zamenhof.", + "annual_report.summary.share_elsewhere": "Diskonigi aliloke", + "annual_report.summary.share_message": "Mia pratipo estas “{archetype}”!", + "annual_report.summary.share_on_mastodon": "Diskonigi per Mastodon", "attachments_list.unprocessed": "(neprilaborita)", "audio.hide": "Kaŝi aŭdion", + "block_modal.no_collections": "Vi ambaŭ ne povos aldoni la alian al kolektoj. Vi estos aŭtomate forigita de ekzistantaj kolektoj de la alia.", "block_modal.remote_users_caveat": "Ni petos al la servilo {domain} respekti vian elekton. Tamen, plenumo ne estas garantiita ĉar iuj serviloj eble manipulas blokojn malsame. Publikaj afiŝoj eble ankoraŭ estas videbla por ne-ensalutintaj uzantoj.", "block_modal.show_less": "Montri malpli", "block_modal.show_more": "Montri pli", + "block_modal.they_cant_mention": "Vi ne povos mencii, sekvi aŭ citi la alian.", + "block_modal.they_cant_see_posts": "Tiu ne vidos vian enhavon, kaj vi ne vidos ties.", "block_modal.they_will_know": "Ili povas vidi, ke ili estas blokita.", "block_modal.title": "Ĉu bloki uzanton?", + "block_modal.you_wont_see_mentions": "Vi ne vidos afiŝojn de aliuloj, kiuj mencias tiun.", "boost_modal.combo": "Vi povas premi {combo} por preterpasi sekvafoje", "boost_modal.reblog": "Ĉu diskonigi afiŝon?", "boost_modal.undo_reblog": "Ĉu ĉesi diskonigi afiŝon?", @@ -156,13 +357,101 @@ "bundle_modal_error.close": "Fermi", "bundle_modal_error.message": "Io misfunkciis dum ŝarĝo de ĉi tiu ekrano.", "bundle_modal_error.retry": "Provu denove", + "callout.dismiss": "Ignori", + "carousel.current": "Lumbildo {current, number} / {max, number}", + "carousel.slide": "Lumbildo {current, number} de {max, number}", + "character_counter.recommended": "{currentLength}/{maxLength} signoj rekomenditaj", + "character_counter.required": "{currentLength}/{maxLength} signoj", "closed_registrations.other_server_instructions": "Ĉar Mastodon estas malcentraliza, vi povas krei konton ĉe alia servilo kaj ankoraŭ komuniki kun ĉi tiu.", "closed_registrations_modal.description": "Krei konton ĉe {domain} aktuale ne eblas, tamen bonvole rimarku, ke vi ne bezonas konton specife ĉe {domain} por uzi Mastodon.", "closed_registrations_modal.find_another_server": "Trovi alian servilon", "closed_registrations_modal.preamble": "Mastodon estas malcentraliza, do sendepende de tio, kie vi kreas vian konton, vi povos sekvi kaj komuniki kun ĉiuj ajn el ĉi tiu servilo. Vi eĉ povas mem starigi propran servilon!", "closed_registrations_modal.title": "Registriĝi en Mastodon", + "collection.share_modal.share_link_label": "Koniga ligilo", + "collection.share_modal.share_via_post": "Afiŝi per Mastodon", + "collection.share_modal.share_via_system": "Konigi al…", + "collection.share_modal.title": "Konigi kolekton", + "collection.share_modal.title_new": "Konigi vian novan kolekton!", + "collection.share_template_other": "Rigardu ĉi tiun mojosan kolekton:", + "collection.share_template_own": "Rigardu mian novan kolekton:", + "collections.account_count": "{count, plural, one {# konto} other {# kontoj}}", + "collections.accounts.empty_description": "Aldoni ĝis {count} kontojn", + "collections.accounts.empty_editor_title": "Neniu jam en ĉi tiu kolekto", + "collections.accounts.empty_title": "Ĉi tiu kolekto estas malplena", + "collections.add_to_collection": "Aldoni “{name}” al kolektoj", + "collections.block_collection_owner": "Bari konton", + "collections.by_account": "de {account_handle}", + "collections.collection_description": "Priskribo", + "collections.collection_language": "Lingvo", + "collections.collection_language_none": "Neniu", + "collections.collection_name": "Nomo", + "collections.collection_topic": "Temo", + "collections.confirm_account_removal": "Ĉu vi certas, ke vi volas forigi ĉi tiun konton de ĉi tiu kolekto?", + "collections.content_warning": "Averto pri enhavo", + "collections.continue": "Daŭrigi", + "collections.copy_link": "Kopii ligilon", + "collections.copy_link_confirmation": "Ligilo de kolekto kopiita al tondujo", + "collections.create.accounts_title": "Kiu estos prezentita en ĉi tiu kolekto?", + "collections.create.basic_details_title": "Baza informo", + "collections.create.steps": "Paŝo {step}/{total}", "collections.create_collection": "Krei kolekton", + "collections.create_new_collection": "Krei novan kolekton", "collections.delete_collection": "Forigi kolekton", + "collections.description_length_hint": "100 signoj pleje", + "collections.detail.author_added_you_on_date": "{author} aldonis vin je {date}", + "collections.detail.loading": "Ŝarĝado de kolekto…", + "collections.detail.revoke_inclusion": "Forigi min", + "collections.detail.sensitive_content": "Delikata enhavo", + "collections.detail.sensitive_note": "La priskribo kaj kontoj de kolekto povas ne esti taŭga por ĉiuj rigardantoj.", + "collections.detail.share": "Konigi ĉi tiun kolekton", + "collections.detail.you_are_in_this_collection": "Vi estis elektita por ĉi tiu kolekto", + "collections.edit_details": "Redakti detalojn", + "collections.error_loading_collections": "Okazis eraro dum ŝarĝado de tiuj kolektoj.", + "collections.hidden_accounts_description": "Vi baris aŭ silentigis {count, plural, one {tiun uzanton} other {tiujn uzantojn}}", + "collections.hidden_accounts_link": "{count, plural, one {# kaŝita konto} other {# kaŝitaj kontoj}}", + "collections.hints.accounts_counter": "{count}/{max} kontoj", + "collections.last_updated_at": "Lasta ĝisdatigo: {date}", + "collections.list.collections_with_count": "{count, plural, one {# kolekto} other {# kolektoj}}", + "collections.list.created_by_author": "Kreitaj de {name}", + "collections.list.created_by_you": "Kreitaj de vi", + "collections.list.featuring_you": "Enhavantaj vin", + "collections.manage_accounts": "Administri kontojn", + "collections.mark_as_sensitive": "Marki kiel delikatan", + "collections.mark_as_sensitive_hint": "Kaŝas la priskribon kaj kontoj de la kolekto per averto. La nomo de kolekto restos videbla.", + "collections.maximum_collection_count_description": "Via servilo permesas kreadon de ĝis {count} kolektoj.", + "collections.maximum_collection_count_reached": "Vi kreis la maksimuman kvanton de kolektoj", + "collections.name_length_hint": "40 signoj pleje", + "collections.new_collection": "Nova kolekto", + "collections.pending_accounts.message": "Kontoj povos aperi kiel atendatajn ĝis respondo de la uzanto aŭ ties servilo. Nur vi povas vidi atendatajn kontojn.", + "collections.pending_accounts.title": "Kial mi vidas atendatajn kontojn?", + "collections.remove_account": "Forigi", + "collections.report_collection": "Raporti ĉi tiun kolekton", + "collections.revoke_collection_inclusion": "Forigi min de ĉi tiu kolekto", + "collections.revoke_inclusion.confirmation": "Vi estis forigita de kolekto “{collection}”", + "collections.revoke_inclusion.error": "Okazis eraro, bonvolu reprovi poste.", + "collections.search_accounts_label": "Serĉi konton por aldoni", + "collections.search_accounts_max_reached": "Vi aldonis la maksimuman kvanton de kontoj", + "collections.sensitive": "Delikata", + "collections.share_short": "Konigi", + "collections.sort_alphabetical": "Alfabeto", + "collections.sort_by": "Ordigi per:", + "collections.sort_date_added": "Dato de aldonado", + "collections.sort_last_active": "Lasta aktiveco", + "collections.sort_most_followers": "Plej sekvataj", + "collections.suggestions.can_not_add": "Ne povas esti aldonita", + "collections.suggestions.can_not_add_desc": "Ĉi tiuj kontoj eble malpermesis malkovradon, aŭ ties servilo ne subtenas kolektojn.", + "collections.suggestions.must_follow": "Sekvado necesas", + "collections.suggestions.must_follow_desc": "Ĉi tiuj kontoj revizias ĉiujn petojn pri sekvado. Sekvantoj povas aldoni ilin al kolektoj.", + "collections.topic_hint": "Aldonu kradvorton, kiu helpos al aliuloj kompreni la ĉefan temon de ĉi tiu kolekto.", + "collections.topic_special_chars_hint": "Specialaj signoj estos forigitaj dum konservado", + "collections.unlisted_collections_description": "Ĉi tiuj kolektoj ne estos listigitaj por aliuloj. Ĉiu, kiu havas la ligilon, povas rigardi ĝin.", + "collections.unlisted_collections_with_count": "Nelistigitaj kolektoj ({count})", + "collections.view_collection": "Vidi kolekton", + "collections.visibility_public": "Publika", + "collections.visibility_public_hint": "Videbla en serĉrezultoj kaj aliaj lokoj, en kiuj rekomendaĵoj povas aperi.", + "collections.visibility_title": "Videbleco", + "collections.visibility_unlisted": "Nelistigita", + "collections.visibility_unlisted_hint": "Videbla por tiuj, kiuj havas ligilon. Kaŝita de serĉrezultoj kaj rekomendaĵoj.", "column.about": "Pri", "column.blocks": "Blokitaj uzantoj", "column.bookmarks": "Legosignoj", @@ -174,14 +463,18 @@ "column.edit_list": "Redakti liston", "column.favourites": "Stelumoj", "column.firehose": "Rektaj fluoj", + "column.firehose_local": "Rekta fluo por ĉi tiu servilo", + "column.firehose_singular": "Rekta fluo", "column.follow_requests": "Petoj de sekvado", "column.home": "Hejmo", "column.list_members": "Administri listanojn", "column.lists": "Listoj", "column.mutes": "Silentigitaj uzantoj", "column.notifications": "Sciigoj", + "column.other_collections": "Kolektoj de {name}", "column.pins": "Alpinglitaj afiŝoj", "column.public": "Fratara tempolinio", + "column.your_collections": "Viaj kolektoj", "column_back_button.label": "Reveni", "column_header.hide_settings": "Kaŝi agordojn", "column_header.moveLeft_settings": "Movi kolumnon maldekstren", @@ -190,6 +483,11 @@ "column_header.show_settings": "Montri agordojn", "column_header.unpin": "Malfiksi", "column_search.cancel": "Nuligi", + "combobox.close_results": "Fermi rezultojn", + "combobox.loading": "Ŝarĝado", + "combobox.no_results_found": "Neniuj rezuiltoj por ĉi tiu serĉo", + "combobox.open_results": "Malfermi rezultojn", + "combobox.results_available": "{count, plural, one {# sugesto} other {# sugestoj}} haveblaj. Uzu vertikalajn direktajn klavojn por navigi. Uzu enigo-klavon por elekti.", "community.column_settings.local_only": "Nur loka", "community.column_settings.media_only": "Nur aŭdovidaĵoj", "community.column_settings.remote_only": "Nur fora", @@ -223,6 +521,9 @@ "confirmations.delete.confirm": "Forigi", "confirmations.delete.message": "Ĉu vi certas, ke vi volas forigi ĉi tiun afiŝon?", "confirmations.delete.title": "Ĉu forigi afiŝon?", + "confirmations.delete_collection.confirm": "Forigi", + "confirmations.delete_collection.message": "Ĉi tiu ago ne estas malfarebla.", + "confirmations.delete_collection.title": "Ĉu forigi “{name}”?", "confirmations.delete_list.confirm": "Forigi", "confirmations.delete_list.message": "Ĉu vi certas, ke vi volas porĉiame forigi ĉi tiun liston?", "confirmations.delete_list.title": "Ĉu forigi liston?", @@ -238,6 +539,10 @@ "confirmations.follow_to_list.confirm": "Sekvi kaj aldoni al listo", "confirmations.follow_to_list.message": "Vi devas sekvi {name} por aldoni ilin al listo.", "confirmations.follow_to_list.title": "Ĉu sekvi uzanton?", + "confirmations.hide_featured_tab.confirm": "Kaŝi langeton", + "confirmations.hide_featured_tab.intro": "Vi povas ŝanĝi ĉi tion ĉiam per Redakti profilon > Agordoj de profilaj langetoj.", + "confirmations.hide_featured_tab.message": "Ĉi tio kaŝos la langeton por uzantoj de {serverName} kaj aliaj serviloj, kiuj uzas la plej novan version de Mastodon. Montrado por aliuloj povas varii.", + "confirmations.hide_featured_tab.title": "Ĉu kaŝi la langeton \"Elstarigitaj\"?", "confirmations.logout.confirm": "Elsaluti", "confirmations.logout.message": "Ĉu vi certas, ke vi volas elsaluti?", "confirmations.logout.title": "Ĉu elsaluti?", @@ -246,30 +551,51 @@ "confirmations.missing_alt_text.secondary": "Afiŝi ĉiuokaze", "confirmations.missing_alt_text.title": "Ĉu aldoni alttekston?", "confirmations.mute.confirm": "Silentigi", + "confirmations.private_quote_notify.cancel": "Reen al redaktado", "confirmations.private_quote_notify.confirm": "Publikigi afiŝon", "confirmations.private_quote_notify.do_not_show_again": "Ne montru al mi ĉi tiun mesaĝon denove", + "confirmations.private_quote_notify.message": "Persono, kiun vi citas, kaj aliaj menciatoj estos sciigitaj, kaj povas vidi vian afiŝon, eĉ se ili ne sekvas vin.", + "confirmations.private_quote_notify.title": "Ĉu konigi kun sekvantoj kaj menciatoj?", "confirmations.quiet_post_quote_info.dismiss": "Ne memorigu min denove", "confirmations.quiet_post_quote_info.got_it": "Komprenite", + "confirmations.quiet_post_quote_info.message": "Se vi citas \"kviete publikan\" afiŝon, ĝi estos kaŝita de algoritmaj fluoj.", + "confirmations.quiet_post_quote_info.title": "Citado de \"kviete publikaj\" afiŝoj", "confirmations.redraft.confirm": "Forigi kaj reskribi", "confirmations.redraft.message": "Ĉu vi certas ke vi volas forigi tiun afiŝon kaj reskribi ĝin? Ĉiuj diskonigoj kaj stelumoj estos perditaj, kaj respondoj al la originala mesaĝo estos senparentaj.", "confirmations.redraft.title": "Ĉu forigi kaj redakcii afiŝon?", "confirmations.remove_from_followers.confirm": "Forigi sekvanton", "confirmations.remove_from_followers.message": "{name} ne plu sekvos vin. Ĉu vi certas ke vi volas daŭri?", "confirmations.remove_from_followers.title": "Forigi sekvanton?", + "confirmations.revoke_collection_inclusion.confirm": "Forigi min", + "confirmations.revoke_collection_inclusion.message": "La kuratoro de ĉi tiu kolekto ne eblos realdoni vin al ĝi dum 24 horoj. Por bari aldonadon porĉiame, vi povas bari tiun uzanton.", + "confirmations.revoke_collection_inclusion.title": "Ĉu forigi vin de ĉi tiu kolekto?", "confirmations.revoke_quote.confirm": "Forigi afiŝon", "confirmations.revoke_quote.message": "Ĉi tiu ago ne povas esti malfarita.", "confirmations.revoke_quote.title": "Ĉu forigi afiŝon?", + "confirmations.unblock.confirm": "Malbari", + "confirmations.unblock.title": "Ĉu malbari konton “{name}”?", "confirmations.unfollow.confirm": "Ne plu sekvi", + "confirmations.unfollow.title": "Ĉu malsekvi konton “{name}”?", + "confirmations.withdraw_request.confirm": "Revoki peton", + "confirmations.withdraw_request.title": "Ĉu revoki peton por sekvado de {name}?", "content_warning.hide": "Kaŝi afiŝon", "content_warning.show": "Montri ĉiukaze", "content_warning.show_more": "Montri pli", + "content_warning.show_short": "Montri", "conversation.delete": "Forigi konversacion", "conversation.mark_as_read": "Marku kiel legita", "conversation.open": "Vidi konversacion", "conversation.with": "Kun {names}", "copy_icon_button.copied": "Kopiis al kliptabulo", + "copy_icon_button.copy_this_text": "Kopii ligilon al tondujo", "copypaste.copied": "Kopiita", "copypaste.copy_to_clipboard": "Kopii al dosierujo", + "custom_homepage.about": "Pri servilo", + "custom_homepage.about_this_server": "Pri ĉi tiu servilo", + "custom_homepage.administered_by": "Administrata de", + "custom_homepage.contact": "Kontakto:", + "custom_homepage.latest_activity": "Lasta agado", + "custom_homepage.these_are_the_latest_posts": "Jen 40 plej novaj afiŝoj de kontoj sur ĉi tiu servilo.", "directory.federated": "El konata fediverso", "directory.local": "Nur de {domain}", "directory.new_arrivals": "Novaj alvenoj", @@ -289,6 +615,14 @@ "domain_block_modal.you_will_lose_relationships": "Vi perdos ĉiujn sekvantojn kaj homojn, kiujn vi sekvas de ĉi tiu servilo.", "domain_block_modal.you_wont_see_posts": "Vi ne vidos afiŝojn aŭ sciigojn de uzantoj sur ĉi tiu servilo.", "dropdown.empty": "Elektu opcion", + "email_subscriptions.email": "Retpoŝtadreso", + "email_subscriptions.form.action": "Aboni", + "email_subscriptions.form.bottom": "Ricevi afiŝojn per retpoŝto sen kreado de Mastodon-konto. Malaboni iam ajn. Por pli da informo, rigardu la privatecan politikon.", + "email_subscriptions.form.title": "Abonu al {name} per retpoŝto", + "email_subscriptions.submitted.lead": "Rigardu la ricevujon de via retpoŝto por fini la procezon de abonado.", + "email_subscriptions.submitted.title": "Lasta paŝo", + "email_subscriptions.validation.email.blocked": "Provizilo de retpoŝto barita", + "email_subscriptions.validation.email.invalid": "Nevalida retpoŝtadreso", "embed.instructions": "Enkorpigu ĉi tiun afiŝon en vian retejon per kopio de la suba kodo.", "embed.preview": "Ĝi aperos tiel:", "emoji_button.activity": "Agadoj", @@ -306,14 +640,25 @@ "emoji_button.search_results": "Serĉaj rezultoj", "emoji_button.symbols": "Simboloj", "emoji_button.travel": "Vojaĝoj kaj lokoj", + "empty_column.account_featured.other": "{acct} ankoraŭ ne elstarigis ion ajn.", + "empty_column.account_featured_self.no_collections_button": "Krei kolekton", + "empty_column.account_featured_self.no_collections_hide_tab": "Kaŝi ĉi tiun langeton anstataŭe", + "empty_column.account_featured_self.showcase_accounts": "Montri viajn favorajn kontojn", + "empty_column.account_featured_self.showcase_accounts_desc": "Kolektoj estas kuratoritaj listoj de kontoj, kiuj helpas al aliaj malkovri pli da fediverso.", + "empty_column.account_featured_unknown.other": "Ĉi tiu konto ankoraŭ ne elstarigis ion ajn.", "empty_column.account_hides_collections": "Ĉi tiu uzanto elektis ne disponebligi ĉi tiu informon", "empty_column.account_suspended": "Konto suspendita", "empty_column.account_timeline": "Neniuj afiŝoj ĉi tie!", "empty_column.account_unavailable": "Profilo nedisponebla", "empty_column.blocks": "Vi ankoraŭ ne blokis uzanton.", "empty_column.bookmarked_statuses": "Vi ankoraŭ ne aldonis afiŝon al viaj legosignoj. Kiam vi aldonos iun, tiu aperos ĉi tie.", + "empty_column.collections": "{acct} ne kreis jam iujn ajn kolektojn.", + "empty_column.collections.featured_in": "Vi ne estis jam aldonita al iu ajn kolekto.", + "empty_column.collections.featured_in_undiscoverable": "Por ke oni povas aldoni ĝin al kolektoj, vi devos permesi elstarigadon per Agordoj > Privateco kaj atingo", + "empty_column.collections_self": "Vi ne kreis jam iujn ajn kolektojn.", "empty_column.community": "La loka templinio estas malplena. Skribu ion por plenigi ĝin!", "empty_column.direct": "Vi ankoraŭ ne havas privatan mencion. Kiam vi sendos aŭ ricevos iun, tiu aperos ĉi tie.", + "empty_column.disabled_feed": "Ĉi tiu fluo estis malŝaltita de administrantoj de via servilo.", "empty_column.domain_blocks": "Ankoraŭ neniu domajno estas blokita.", "empty_column.explore_statuses": "Nenio tendencas nun. Rekontrolu poste!", "empty_column.favourited_statuses": "Vi ankoraŭ ne havas plej ŝatatajn afiŝojn. Kiam vi ŝatatas unu, ĝi aperos ĉi tie.", @@ -327,6 +672,8 @@ "empty_column.notification_requests": "Ĉio klara! Estas nenio tie ĉi. Kiam vi ricevas novajn sciigojn, ili aperos ĉi tie laŭ viaj agordoj.", "empty_column.notifications": "Vi ankoraŭ ne havas sciigojn. Interagu kun aliaj por komenci konversacion.", "empty_column.public": "Estas nenio ĉi tie! Publike skribu ion, aŭ mane sekvu uzantojn de aliaj serviloj por plenigi la publikan tempolinion", + "empty_state.no_results": "Neniuj rezultoj", + "error.no_hashtag_feed_access": "Salutu aŭ kreu konton por vidi kaj sekvi ĉi tiun kradvorton.", "error.unexpected_crash.explanation": "Pro eraro en nia kodo, aŭ problemo de kongruo en via retumilo, ĉi tiu paĝo ne povis esti montrata ĝuste.", "error.unexpected_crash.explanation_addons": "Ĉi tiu paĝo ne povis esti montrita ĝuste. Ĉi tiu eraro probable estas kaŭzita de retumila aldonaĵo aŭ aŭtomataj tradukiloj.", "error.unexpected_crash.next_steps": "Provu refreŝigi la paĝon. Se tio ne helpas, vi ankoraŭ povus uzi Mastodon per malsama retumilo aŭ operaciuma aplikajo.", @@ -341,6 +688,10 @@ "featured_carousel.header": "{count, plural, one {Alpinglita afiŝo} other {Alpinglitaj afiŝoj}}", "featured_carousel.slide": "Afiŝo {current, number} de {max, number}", "featured_tags.more_items": "+{count}", + "featured_tags.suggestions": "Lastatempe vi afiŝadis pri {items}. Ĉu aldoni ĝin kiel elstarigitaj kradvortoj?", + "featured_tags.suggestions.add": "Aldoni", + "featured_tags.suggestions.added": "Vi povas kontroli viajn elstarigitajn kradvortojn iam ajn per Redakti profilon > Elstarigitaj kradvortoj.", + "featured_tags.suggestions.dismiss": "Ne, dankon", "filter_modal.added.context_mismatch_explanation": "Ĉi tiu filtrilkategorio ne kongruas kun la kunteksto en kiu vi akcesis ĉi tiun afiŝon. Se vi volas ke la afiŝo estas ankaŭ filtrita en ĉi tiu kunteksto, vi devus redakti la filtrilon.", "filter_modal.added.context_mismatch_title": "Ne kongruas la kunteksto!", "filter_modal.added.expired_explanation": "Ĉi tiu filtrilkategorio eksvalidiĝis, vu bezonos ŝanĝi la eksvaliddaton por ĝi.", @@ -382,6 +733,10 @@ "follow_suggestions.view_all": "Vidi ĉiujn", "follow_suggestions.who_to_follow": "Kiun sekvi", "followed_tags": "Sekvataj kradvortoj", + "followers.hide_other_followers": "Ĉi tiu uzanto preferis ne publikigi siajn sekvantojn", + "followers.title": "Sekvantoj de {name}", + "following.hide_other_following": "Ĉi tiu uzanto preferis ne publikigi la restajn siajn sekvantojn", + "following.title": "Sekvatoj de {name}", "footer.about": "Pri", "footer.about_mastodon": "Pri Mastodon", "footer.about_server": "Pri {domain}", @@ -393,6 +748,8 @@ "footer.source_code": "Montri fontkodon", "footer.status": "Stato", "footer.terms_of_service": "Kondiĉoj de uzado", + "form_error.blank": "Kampo ne povas esti malplena.", + "form_field.optional": "(nedeviga)", "getting_started.heading": "Por komenci", "hashtag.admin_moderation": "Malfermi fasadon de moderigado por #{name}", "hashtag.browse": "Folii afiŝojn en #{hashtag}", @@ -429,6 +786,7 @@ "home.pending_critical_update.link": "Vidi ĝisdatigojn", "home.pending_critical_update.title": "Kritika sekurĝisdatigo estas disponebla!", "home.show_announcements": "Montri anoncojn", + "ignore_notifications_modal.bots_title": "Ĉu ignori sciigojn de aŭtomataj kontoj?", "ignore_notifications_modal.disclaimer": "Mastodon ne povas informi uzantojn, ke vi ignoris iliajn sciigojn. Ignori sciigojn ne malhelpos la mesaĝojn mem esti senditaj.", "ignore_notifications_modal.filter_instead": "Filtri anstataŭe", "ignore_notifications_modal.filter_to_act_users": "Vi ankoraŭ povos akcepti, malakcepti aŭ raporti uzantojn", @@ -442,10 +800,13 @@ "ignore_notifications_modal.private_mentions_title": "Ĉu ignori sciigojn de nepetitaj privataj mencioj?", "info_button.label": "Helpo", "info_button.what_is_alt_text": "

Kio estas la alternativa teksto?

La alternativa teksto ofertas priskribojn de la bildoj por individuoj kun vidaj malfacilaĵoj, konektoj kun malalta larĝa bando aŭ kiuj serĉas plian kuntekston.

Vi povas plibonigi alireblecon kaj komprenon por ĉiuj per skribado de klaraj, koncizaj, kaj objektivaj alternativaj tekstoj.

", + "interaction_modal.action": "Vi devas saluti per konto de via servilo de Mastodon por interagi kun afiŝo de {name}.", + "interaction_modal.action_follow": "Vi devas saluti per konto de via servilo de Mastodon por sekvi la konton “{name}”.", "interaction_modal.go": "Iru", "interaction_modal.no_account_yet": "Ĉu vi ankoraŭ ne havas konton?", "interaction_modal.on_another_server": "En alia servilo", "interaction_modal.on_this_server": "En ĉi tiu servilo", + "interaction_modal.title": "Salutu por daŭrigi", "interaction_modal.username_prompt": "Ekz. {example}", "intervals.full.days": "{number, plural, one {# tago} other {# tagoj}}", "intervals.full.hours": "{number, plural, one {# horo} other {# horoj}}", @@ -456,15 +817,24 @@ "keyboard_shortcuts.column": "Fokusi kolumnon", "keyboard_shortcuts.compose": "Enfokusigi la tekstaron", "keyboard_shortcuts.description": "Priskribo", + "keyboard_shortcuts.direct": "Malfermi la kolumnon de privataj mencioj", "keyboard_shortcuts.down": "Movu malsupren en la listo", "keyboard_shortcuts.enter": "Malfermi afiŝon", + "keyboard_shortcuts.explore": "Malfermi la fluon “Aktualaĵoj”", "keyboard_shortcuts.favourite": "Stelumi afiŝon", "keyboard_shortcuts.favourites": "Malfermi la liston de la stelumoj", "keyboard_shortcuts.federated": "Malfermi la frataran templinion", "keyboard_shortcuts.heading": "Fulmoklavoj", "keyboard_shortcuts.home": "Malfermi la hejman templinion", "keyboard_shortcuts.hotkey": "Rapidklavo", + "keyboard_shortcuts.keys.alt": "Alt", + "keyboard_shortcuts.keys.backspace": "Retropaŝo", + "keyboard_shortcuts.keys.enter": "Enigo", + "keyboard_shortcuts.keys.esc": "Esk", + "keyboard_shortcuts.keys.page_down": "Paĝo Suben", + "keyboard_shortcuts.keys.page_up": "Paĝo Supren", "keyboard_shortcuts.legend": "Montru ĉi tiun legendon", + "keyboard_shortcuts.load_more": "Fokusigi sur butono “Sarĝi pli”", "keyboard_shortcuts.local": "Malfermu la lokan templinion", "keyboard_shortcuts.mention": "Menciu aŭtoron", "keyboard_shortcuts.muted": "Malfermu la liston de silentigitaj uzantoj", @@ -482,6 +852,8 @@ "keyboard_shortcuts.toggle_hidden": "Montri/kaŝi tekston malantaŭ CW", "keyboard_shortcuts.toggle_sensitivity": "Montri/kaŝi vidaŭdaĵojn", "keyboard_shortcuts.toot": "Komencu novan afiŝon", + "keyboard_shortcuts.top": "Iri al supro de la listo", + "keyboard_shortcuts.translate": "Traduki afiŝon", "keyboard_shortcuts.unfocus": "Senfokusigi verki tekstareon/serĉon", "keyboard_shortcuts.up": "Movu supren en la listo", "learn_more_link.got_it": "Komprenite", @@ -492,6 +864,7 @@ "lightbox.zoom_in": "Zomi al reala grandeco", "lightbox.zoom_out": "Zomi por konveni", "limited_account_hint.action": "Montru profilon ĉiukaze", + "limited_account_hint.title": "Ĉi tiu profilo aŭ servilo estis kaŝita de la moderigantoj de {domain}.", "link_preview.author": "De {name}", "link_preview.more_from_author": "Pli de {name}", "link_preview.shares": "{count, plural, one {{counter} afiŝo} other {{counter} afiŝoj}}", @@ -540,6 +913,7 @@ "navigation_bar.automated_deletion": "Aŭtomata forigo de afiŝoj", "navigation_bar.blocks": "Blokitaj uzantoj", "navigation_bar.bookmarks": "Legosignoj", + "navigation_bar.collections": "Kolektoj", "navigation_bar.direct": "Privataj mencioj", "navigation_bar.domain_blocks": "Blokitaj domajnoj", "navigation_bar.favourites": "Stelumoj", @@ -549,7 +923,10 @@ "navigation_bar.follows_and_followers": "Sekvatoj kaj sekvantoj", "navigation_bar.import_export": "Importo kaj eksporto", "navigation_bar.lists": "Listoj", + "navigation_bar.live_feed_local": "Loka fluo", + "navigation_bar.live_feed_public": "Fratara fluo", "navigation_bar.logout": "Elsaluti", + "navigation_bar.main": "Ĉefmenuo", "navigation_bar.moderation": "Modereco", "navigation_bar.more": "Pli", "navigation_bar.mutes": "Silentigitaj uzantoj", @@ -557,9 +934,13 @@ "navigation_bar.preferences": "Preferoj", "navigation_bar.privacy_and_reach": "Privateco kaj atingo", "navigation_bar.search": "Serĉi", + "navigation_bar.search_trends": "Serĉo / Aktualaĵoj", + "navigation_panel.collapse_followed_tags": "Plejetigi la menuon de sekvataj kradvortoj", + "navigation_panel.collapse_lists": "Plejetigi la menuon de listoj", "navigation_panel.expand_followed_tags": "Malfermi la menuon de sekvataj haŝetikedoj", "navigation_panel.expand_lists": "Malfermi la listmenuon", "not_signed_in_indicator.not_signed_in": "Necesas saluti por aliri tiun rimedon.", + "notification.added_to_collection": "{name} aldonis vin al kolekto", "notification.admin.report": "{name} raportis {target}", "notification.admin.report_account": "{name} raportis {count, plural, one {afiŝon} other {# afiŝojn}} de {target} por {category}", "notification.admin.report_account_other": "{name} raportis {count, plural, one {afiŝon} other {# afiŝojn}} de {target}", @@ -569,6 +950,7 @@ "notification.admin.sign_up.name_and_others": "{name} kaj {count, plural, one {# alia} other {# aliaj}} kreis konton", "notification.annual_report.message": "Via {year} #Wrapstodon atendas! Malkovru viajn bonaĵojn kaj memorindajn momentojn en Mastodon!", "notification.annual_report.view": "Vidu #Wrapstodon", + "notification.collection_update": "{name} redaktis kolekton, enhavantan vin", "notification.favourite": "{name} ŝatis vian afiŝon", "notification.favourite.name_and_others_with_link": "{name} kaj {count, plural, one {# alia} other {# aliaj}} ŝatis vian afiŝon", "notification.favourite_pm": "{name} ŝatis vian privatan mencion", @@ -630,6 +1012,7 @@ "notifications.column_settings.admin.report": "Novaj raportoj:", "notifications.column_settings.admin.sign_up": "Novaj registriĝoj:", "notifications.column_settings.alert": "Sciigoj de la retumilo", + "notifications.column_settings.collections": "Kolektoj:", "notifications.column_settings.favourite": "Stelumoj:", "notifications.column_settings.filter_bar.advanced": "Montri ĉiujn kategoriojn", "notifications.column_settings.filter_bar.category": "Rapida filtrila breto", @@ -649,6 +1032,7 @@ "notifications.column_settings.update": "Redaktoj:", "notifications.filter.all": "Ĉiuj", "notifications.filter.boosts": "Diskonigoj", + "notifications.filter.collections": "Kolektoj", "notifications.filter.favourites": "Stelumoj", "notifications.filter.follows": "Sekvatoj", "notifications.filter.mentions": "Mencioj", @@ -665,6 +1049,8 @@ "notifications.policy.drop": "Ignori", "notifications.policy.drop_hint": "Sendi al la malpleno, por neniam esti vidita denove", "notifications.policy.filter": "Filtri", + "notifications.policy.filter_bots_hint": "Kontoj, markitaj kiel aŭtomataj", + "notifications.policy.filter_bots_title": "Robotoj", "notifications.policy.filter_hint": "Sendi al filtritaj sciigoj-enirkesto", "notifications.policy.filter_limited_accounts_hint": "Limigita de servilaj reguligistoj", "notifications.policy.filter_limited_accounts_title": "Reguligitaj kontoj", @@ -682,12 +1068,14 @@ "notifications_permission_banner.title": "Neniam preterlasas iun ajn", "onboarding.follows.back": "Reen", "onboarding.follows.empty": "Bedaŭrinde, neniu rezulto estas montrebla nuntempe. Vi povas provi serĉi aŭ foliumi la esploran paĝon por trovi kontojn por sekvi, aŭ retrovi baldaŭ.", + "onboarding.follows.next": "Sekva paŝo: Kreu vian profilon", "onboarding.follows.search": "Serĉi", "onboarding.follows.title": "Sekvi homojn por komenci", "onboarding.profile.discoverable": "Trovebligi mian profilon", "onboarding.profile.discoverable_hint": "Kiam vi aliĝi al trovebleco ĉe Mastodon, viaj afiŝoj eble aperos en serĉaj rezultoj kaj populariĝoj, kaj via profilo eble estas sugestota al personoj kun similaj intereseoj al vi.", "onboarding.profile.display_name": "Publika nomo", "onboarding.profile.display_name_hint": "Via plena nomo aŭ via kromnomo…", + "onboarding.profile.finish": "Fini", "onboarding.profile.note": "Sinprezento", "onboarding.profile.note_hint": "Vi povas @mencii aliajn homojn aŭ #kradvortojn…", "onboarding.profile.title": "Profila fikso", @@ -713,15 +1101,20 @@ "privacy.private.short": "Sekvantoj", "privacy.public.long": "Ĉiujn ajn ĉe kaj ekster Mastodon", "privacy.public.short": "Publika", + "privacy.quote.anyone": "{visibility}, citado permesita", "privacy.quote.disabled": "{visibility}, malŝaltitaj citaĵoj", "privacy.quote.limited": "{visibility}, limigitaj citaĵoj", "privacy.unlisted.additional": "Ĉi tio kondutas ekzakte kiel publika, krom ke la afiŝo ne aperos en vivaj fluoj aŭ kradvortoj, esploro aŭ Mastodon-serĉo, eĉ se vi estas enskribita en la tuta konto.", + "privacy.unlisted.long": "Kaŝita de serĉrezultoj, aktualaĵoj kaj publikaj fluoj de Mastodon", "privacy.unlisted.short": "Diskrete publika", "privacy_policy.last_updated": "Laste ĝisdatigita en {date}", "privacy_policy.title": "Politiko de privateco", + "quote_error.edit": "Citaĵoj ne povas esti aldonitaj dum redaktado de afiŝo.", "quote_error.poll": "Citado ne estas permesita ĉe balotenketoj.", + "quote_error.private_mentions": "Ĉitajoj ne permesas en privataj mesaĝoj.", "quote_error.quote": "Nur unu citaĵo samtempe estas permesita.", "quote_error.unauthorized": "Vi ne rajtas citi tiun ĉi afiŝon.", + "quote_error.upload": "Ĉitajoj ne permesas en afiŝoj kun kunsendaĵoj.", "recommended": "Rekomendita", "refresh": "Refreŝigu", "regeneration_indicator.please_stand_by": "Bonvolu atendi.", @@ -750,6 +1143,9 @@ "report.categories.spam": "Trudmesaĝo", "report.categories.violation": "Enhavo malobservas unu aŭ plurajn servilajn regulojn", "report.category.subtitle": "Elektu la plej bonan kongruon", + "report.category.title_account": "Diru al ni, kio okazas pri ĉi tiu profilo", + "report.category.title_collection": "Diru al ni, kio okazas pri ĉi tiu kolekto", + "report.category.title_status": "Diru al ni, kio okazas pri ĉi tiu afiŝo", "report.close": "Farita", "report.comment.title": "Ĉu estas ajn ion alian kiun vi pensas ke ni devus scii?", "report.forward": "Plusendi al {target}", @@ -772,6 +1168,8 @@ "report.rules.title": "Kiuj reguloj estas malobservataj?", "report.statuses.subtitle": "Elektu ĉiujn, kiuj validas", "report.statuses.title": "Ĉu estas afiŝoj, kiuj subtenas tiun raporton?", + "report.submission_error": "Eraro dum sendado de raporto", + "report.submission_error_details": "Bonvolu kontroli vian retkonekton kaj reprovi poste.", "report.submit": "Sendi", "report.target": "Raporti pri {target}", "report.thanks.take_action": "Jen viaj ebloj por regi kion vi vidas ĉe Mastodon:", @@ -802,13 +1200,14 @@ "search_popout.full_text_search_disabled_message": "Ne disponebla sur {domain}.", "search_popout.full_text_search_logged_out_message": "Disponebla nur kiam ensalutinte.", "search_popout.language_code": "ISO-lingva kodo", - "search_popout.options": "Serĉaj opcioj", + "search_popout.options": "Agordoj de serĉo", "search_popout.quick_actions": "Rapidaj agoj", "search_popout.recent": "Lastaj serĉoj", "search_popout.specific_date": "specifa dato", "search_popout.user": "uzanto", "search_results.accounts": "Profiloj", "search_results.all": "Ĉiuj", + "search_results.collections": "Kolektoj", "search_results.hashtags": "Kradvortoj", "search_results.no_results": "Ne estas rezultoj.", "search_results.no_search_yet": "Provu serĉi afiŝojn, profilojn aŭ kradvortojn.", @@ -819,12 +1218,15 @@ "server_banner.active_users": "aktivaj uzantoj", "server_banner.administered_by": "Administrata de:", "server_banner.is_one_of_many": "{domain} estas unu el la multaj sendependaj Mastodon-serviloj, kiujn vi povas uzi por partopreni en la fediverso.", + "server_banner.more_about_this_server": "Pli pri ĉi tiu servilo", "server_banner.server_stats": "Statistikoj de la servilo:", "sign_in_banner.create_account": "Krei konton", "sign_in_banner.follow_anyone": "Sekvu iun ajn tra la fediverso kaj vidu ĉion laŭ templinio. Nul algoritmo, reklamo aŭ kliklogilo ĉeestas.", "sign_in_banner.mastodon_is": "Mastodon estas la plej bona maniero resti ĝisdata pri aktualaĵoj.", "sign_in_banner.sign_in": "Ensaluti", "sign_in_banner.sso_redirect": "Ensalutu aŭ Registriĝi", + "skip_links.hotkey": "Fulmoklavo {hotkey}", + "skip_links.skip_to_content": "Salti al ĉefa enhavo", "status.admin_account": "Malfermi fasadon de la reguligado por @{name}", "status.admin_domain": "Malfermi fasadon de la reguligado por {domain}", "status.admin_status": "Malfermi ĉi tiun afiŝon en la fasado de la reguligado", @@ -832,8 +1234,15 @@ "status.block": "Bloki @{name}", "status.bookmark": "Aldoni al la legosignoj", "status.cancel_reblog_private": "Ne plu diskonigi", + "status.cannot_edit": "Vi ne rajtas redakti ĉi tiun afiŝon", "status.cannot_quote": "Vi ne rajtas citi ĉi tiun afiŝon", "status.cannot_reblog": "Ĉi tiun afiŝon ne eblas diskonigi", + "status.contains_quote": "Enhavas citaĵon", + "status.context.loading": "Ŝarĝado de pli da respondoj", + "status.context.loading_error": "Ne povis ŝarĝi pli da respondojn", + "status.context.loading_success": "Novaj respondoj ŝarĝitaj", + "status.context.more_replies_found": "Pli da respondoj trovitaj", + "status.context.retry": "Reprovi", "status.context.show": "Montri", "status.continued_thread": "Daŭrigis fadenon", "status.copy": "Kopii la ligilon al la afiŝo", @@ -847,6 +1256,7 @@ "status.edited_x_times": "Redactita {count, plural, one {{count} fojon} other {{count} fojojn}}", "status.embed": "Akiri enkorpigan kodon", "status.favourite": "Ŝatata", + "status.favourites_count": "{count, plural, one {{counter} stelumo} other {{counter} stelumoj}}", "status.filter": "Filtri ĉi tiun afiŝon", "status.history.created": "{name} kreis {date}", "status.history.edited": "{name} redaktis {date}", @@ -858,27 +1268,39 @@ "status.more": "Pli", "status.mute": "Silentigi @{name}", "status.mute_conversation": "Silentigi konversacion", + "status.not_quoted": "Vi ne estas citata en ĉi tiu afiŝo", "status.open": "Pligrandigu ĉi tiun afiŝon", "status.pin": "Alpingli al la profilo", + "status.public_only": "Ĉi tiu afiŝo estas privata", "status.quote": "Citaĵo", "status.quote.cancel": "Nuligi citaĵon", + "status.quote_error.blocked_account_hint.title": "Ĉi tiu afiŝo estas kaŝita, ĉar vi baris konton @{name}.", + "status.quote_error.blocked_domain_hint.title": "Ĉi tiu afiŝo estas kaŝita, ĉar vi baris domajnon {domain}.", "status.quote_error.filtered": "Kaŝita pro unu el viaj filtriloj", + "status.quote_error.limited_account_hint.action": "Montri malgraŭe", + "status.quote_error.limited_account_hint.title": "Ĉi tiu profilo estis kaŝita de la moderigantoj de {domain}.", + "status.quote_error.muted_account_hint.title": "Ĉi tiu afiŝo estas kaŝita, ĉar vi silentigis konton @{name}.", "status.quote_error.not_available": "Afiŝo ne disponebla", "status.quote_error.pending_approval": "Pritraktata afiŝo", "status.quote_error.pending_approval_popout.body": "Ĉe Mastodon, vi povas kontroli ĉu iu rajtas citi vin. Ĉi tiu afiŝo estas atendata dum ni akiras la aprobon de la originala aŭtoro.", "status.quote_error.revoked": "Afiŝo forigita de aŭtoro", "status.quote_followers_only": "Nur sekvantoj rajtas citi tiun ĉi afiŝon", "status.quote_manual_review": "Aŭtoro permane revizios", + "status.quote_noun": "Citaĵo", "status.quote_policy_change": "Ŝanĝi kiu povas citi", "status.quote_post_author": "Citis afiŝon de @{name}", "status.quote_private": "Privataj afiŝoj ne povas esti cititaj", "status.quotes.empty": "Neniu citis ĉi tiun afiŝon ankoraŭ. Kiam iu faros tion, ĝi aperos ĉi tie.", + "status.quotes.local_other_disclaimer": "Citaĵoj, ne permesitaj de aŭtoro, ne estos montritaj.", + "status.quotes.remote_other_disclaimer": "Nur citaĵoj de la servilo {domain} garantie montriĝas ĉi tie. Citaĵoj, ne permesitaj de la aŭtoro, ne estos montritaj.", + "status.quotes_count": "{count, plural, one {{counter} citaĵo} other {{counter} citaĵoj}}", "status.read_more": "Legi pli", "status.reblog": "Diskonigi", "status.reblog_or_quote": "Diskonigi aŭ citi", "status.reblog_private": "Kunhavigu denove kun viaj sekvantoj", "status.reblogged_by": "{name} diskonigis", "status.reblogs.empty": "Ankoraŭ neniu diskonigis tiun afiŝon. Kiam iu faras tion, ri aperos ĉi tie.", + "status.reblogs_count": "{count, plural, one {{counter} diskonigo} other {{counter} diskonigoj}}", "status.redraft": "Forigi kaj reskribi", "status.remove_bookmark": "Forigi legosignon", "status.remove_favourite": "Forigi el plej ŝatataj", @@ -903,12 +1325,14 @@ "status.unpin": "Depingli de profilo", "subscribed_languages.lead": "Nur afiŝoj en elektitaj lingvoj aperos en viaj hejma kaj lista templinioj post la ŝanĝo. Elektu nenion por ricevi afiŝojn en ĉiuj lingvoj.", "subscribed_languages.save": "Konservi ŝanĝojn", - "subscribed_languages.target": "Ŝanĝu abonitajn lingvojn por {target}", + "subscribed_languages.target": "Ŝanĝu sekvatajn lingvojn por {target}", "tabs_bar.home": "Hejmo", "tabs_bar.menu": "Menuo", "tabs_bar.notifications": "Sciigoj", "tabs_bar.publish": "Nova afiŝo", + "tabs_bar.quick_links": "Rapidaj ligiloj", "tabs_bar.search": "Serĉi", + "tag.remove": "Forigi", "terms_of_service.effective_as_of": "Ĝi ekvalidas de {date}", "terms_of_service.title": "Kondiĉoj de uzado", "terms_of_service.upcoming_changes_on": "Venontaj ŝanĝoj el {date}", @@ -952,12 +1376,15 @@ "video.volume_down": "Laŭteco Malpliigi", "video.volume_up": "Laŭteco pliigi", "visibility_modal.button_title": "Agordu videblon", + "visibility_modal.direct_quote_warning.text": "Se vi konservas ĉi tiujn agordojn, la enkorpigita citaĵo estos konvertita al ligilo.", + "visibility_modal.direct_quote_warning.title": "Citaĵoj ne povas esti enkorpigitaj en privataj mencioj", "visibility_modal.header": "Videblo kaj interago", "visibility_modal.helper.direct_quoting": "Privataj mencioj verkitaj ĉe Mastodon ne povas esti cititaj de aliaj.", "visibility_modal.helper.privacy_editing": "Videbleco ne povas esti ŝanĝita post publikigo de afiŝo.", "visibility_modal.helper.privacy_private_self_quote": "Memcitaĵoj de privataj afiŝoj ne povas esti publikigitaj.", "visibility_modal.helper.private_quoting": "Afiŝoj nur por sekvantoj verkitaj ĉe Mastodon ne povas esti cititaj de aliaj.", "visibility_modal.helper.unlisted_quoting": "Kiam homoj citas vin, ilia afiŝo ankaŭ estos kaŝita de tendencaj templinioj.", + "visibility_modal.instructions": "Kontrolu, kiu povas interagi kun ĉi tiu afiŝo. Vi povas apliki agordojn al ĉiuj estontaj afiŝoj per Agordoj > Defaŭltoj de afiŝado.", "visibility_modal.privacy_label": "Videbleco", "visibility_modal.quote_followers": "Nur sekvantoj", "visibility_modal.quote_label": "Kiu povas citi", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index f9102aa..1041cfa 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -500,8 +500,8 @@ "compose_form.direct_message_warning_learn_more": "Aprender más", "compose_form.encryption_warning": "Las publicaciones en Mastodon no están cifradas de extremo a extremo. No comparta ninguna información sensible en Mastodon.", "compose_form.hashtag_warning": "Esta publicación no se mostrará bajo ninguna etiqueta, ya que no es pública. Solo las publicaciones públicas pueden ser buscadas por etiqueta.", - "compose_form.lock_disclaimer": "Tu cuenta no está en estado {locked}. Todos pueden seguirte para ver tus publicaciones solo para seguidores.", - "compose_form.lock_disclaimer.lock": "bloqueado", + "compose_form.lock_disclaimer": "Tu cuenta no es {locked}. Cualquiera puede seguirte y ver tus publicaciones solo para seguidores.", + "compose_form.lock_disclaimer.lock": "privada", "compose_form.placeholder": "¿En qué estás pensando?", "compose_form.poll.duration": "Duración de la encuesta", "compose_form.poll.multiple": "Selección múltiple", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index e226ef1..2ae4d0b 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -67,6 +67,7 @@ "account.follows.empty": "Erabiltzaile honek ez du inor jarraitzen oraindik.", "account.follows_you": "Jarraitzen zaitu", "account.go_to_profile": "Joan profilera", + "account.hame.invalid_handle": "Erabiltzaile-izena ez dago erabilgarri", "account.hide_reblogs": "Ezkutatu @{name} erabiltzailearen bultzadak", "account.in_memoriam": "Oroimenezkoa.", "account.join_modal.day": "Eguna", @@ -98,6 +99,7 @@ "account.menu.mute": "Mututu kontua", "account.menu.note.description": "Zuk bakarrik ikus dezakezu", "account.menu.open_original_page": "Ikusi {domain}-(e)n", + "account.menu.open_original_page_no_domain": "Ikusi jatorrizko zerbitzarian", "account.menu.remove_follower": "Kendu jarraitzailea", "account.menu.report": "Salatu kontua", "account.menu.share": "Partekatu…", @@ -116,6 +118,8 @@ "account.name.help.domain_self": "{domain} zure zerbitzaria da, zure profila eta bidalketak ostatatzen dituena.", "account.name.help.footer": "Poste elektronikoak hornitzaile ezberdinak darabiltzaten lagunei bidali ahal dizkiezun bezalaxe, beste Mastodon zerbitzari abtzuetako erabiltzaileekin ere komunikatu zaitezke, baita Fedobertsoko beste aplikazioen erabiltzaileekin ere.", "account.name.help.header": "Erabiltzaile-izena posta elektroniko helbide bat bezalakoa da", + "account.name.help.invalid_explanation": "Hau gerta daiteke erabiltzaile batek bere izena aldatzen duenean, eta normalean aldi baterakoa da. Horrela jarraitzen badu, zerbitzaria erabilgarri ez dagoelako edo haien aldeko konfigurazio-akats bategatik izan daiteke.", + "account.name.help.invalid_header": "Erabiltzaile honen erabiltzaile-izena eguneratzen ari da", "account.name.help.username": "{username} kontu honek zerbitzarian darabilen izena da. Baliteke beste zerbitzari bateko norbaitek erabiltzaile-izen bera izatea han.", "account.name.help.username_self": "{username} zure kontuak zerbitzari honetan duen izena da. Baliteke beste norbaitek izen berbera izatea beste zerbitzari batean.", "account.name_info": "Zer esan nahi du horrek?", @@ -391,6 +395,7 @@ "collections.create.basic_details_title": "Oinarrizko xehetasunak", "collections.create.steps": "Urratsa: {step}/{total}", "collections.create_collection": "Sortu bilduma", + "collections.create_new_collection": "Sortu bilduma berria", "collections.delete_collection": "Ezabatu bilduma", "collections.description_length_hint": "100 karaktere gehienez", "collections.detail.author_added_you_on_date": "{author}-(e)k {date}-(e)an gehitu zaitu", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index 4683179..6341b9d 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -67,6 +67,7 @@ "account.follows.empty": "این کاربر هنوز پی‌گیر کسی نیست.", "account.follows_you": "پی‌گیرتان است", "account.go_to_profile": "رفتن به نمایه", + "account.hame.invalid_handle": "شناسهٔ ناموجود", "account.hide_reblogs": "نهفتن تقویت‌های ‎@{name}", "account.in_memoriam": "به یادبود.", "account.join_modal.day": "روز", @@ -117,6 +118,7 @@ "account.name.help.domain_self": "‫{domain} کارساز میزبان نماگر و فرسته‌هایتان است.", "account.name.help.footer": "همان‌طور که می‌توانید به افرادی که از فراهم‌کنندگان مختلف رایانامه استفاده می‌کنند رایانامه بفرستید؛ می‌توانید با افرادی که روی کارسازهای دیگر ماستودون و هر کارهٔ وب اجتماعی دیگری هستند تعامل داشته باشید.", "account.name.help.header": "شناسه مانند نشانی رایانامه است", + "account.name.help.invalid_header": "شناسهٔ کاربر دارد به‌روز می‌شود", "account.name.help.username": "‫{username} نام کاربری این حساب روی کارسازش است. ممکن است کسی روی کارسازی دیگر نیز همین نام کاربری را داشته باشد.", "account.name.help.username_self": "‫{username} نام کاربریتان روی این کارساز است. ممکن است کسی روی کارسازی دیگر نیز همین نام کاربری را داشته باشد.", "account.name_info": "معنایش چیست؟", @@ -246,7 +248,7 @@ "account_edit.verified_modal.details": "افزودن اعتبار به نماگر ماستودونتان با تأیید کردن پیوندها به پایگاه‌های وب شخصیتان. چگونگی کارکرد:", "account_edit.verified_modal.invisible_link.details": "افزودن پیوند به پایگاه وبتان. بخش مهم rel=\"me\" است که از جعل هویت روی پایگاه‌هایی با محتوای تولید شده به دست کاربر جلوگیری می‌کند. حتا می‌توانید به جای {tag} از برچسب link در سرایند صفحه استفاده کنید؛ ولی HTML باید بدون اجرای جاوااسکریپت در دسترس باشد.", "account_edit.verified_modal.invisible_link.summary": "چگونه پیوند را نامریی کنم؟", - "account_edit.verified_modal.step1.header": "رونوشت از کد HTML زیر و چایگذاری در سرایند پایگاه وبتان", + "account_edit.verified_modal.step1.header": "رونوشت از کد HTML زیر و جایگذاری در سرایند وبگاه‌تان", "account_edit.verified_modal.step2.details": "اگر پایگاه وبتان را از پیش به عنوان زمینهٔ سفارشی افزوده‌اید باید برای تأیید شدن حذفش کرده و دوباره بیفزایید.", "account_edit.verified_modal.step2.header": "افزودن پایگاه وبتان به عنوان زمینهٔ سفارشی", "account_edit.verified_modal.title": "چگونگی افزودن پیوند تأیید شده", @@ -1139,6 +1141,9 @@ "report.categories.spam": "هرزنامه", "report.categories.violation": "محتوا یک یا چند قانون کارساز را نقض می‌کند", "report.category.subtitle": "منطبق‌ترین را انتخاب کنید", + "report.category.title_account": "بگویید مشکل این نماگر چیست", + "report.category.title_collection": "بگویید مشکل این مجموعه چیست", + "report.category.title_status": "بگویید مشکل این فرسته چیست", "report.close": "انجام شد", "report.comment.title": "آیا چیز دیگری هست که فکر می‌کنید باید بدانیم؟", "report.forward": "فرستادن به {target}", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 698ae35..4b7c998 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -180,7 +180,7 @@ "account_edit.featured_hashtags.title": "Esiteltävät aihetunnisteet", "account_edit.field_actions.delete": "Poista kenttä", "account_edit.field_actions.edit": "Muokkaa kenttää", - "account_edit.field_delete_modal.confirm": "Haluatko varmasti poistaa tämän mukautetun kentän? Tätä toimea ei voi peruuttaa.", + "account_edit.field_delete_modal.confirm": "Haluatko varmasti poistaa tämän mukautetun kentän? Tätä tointa ei voi peruuttaa.", "account_edit.field_delete_modal.delete_button": "Poista", "account_edit.field_delete_modal.title": "Poistetaanko mukautettu kenttä?", "account_edit.field_edit_modal.add_title": "Lisää mukautettu kenttä", @@ -208,7 +208,7 @@ "account_edit.image_alt_modal.edit_title": "Muokkaa tekstivastinetta", "account_edit.image_alt_modal.text_hint": "Tekstivastine auttaa näytönlukuohjelmien käyttäjiä ymmärtämään sisältöä.", "account_edit.image_alt_modal.text_label": "Tekstivastine", - "account_edit.image_delete_modal.confirm": "Haluatko varmasti poistaa tämän kuvan? Tätä toimea ei voi kumota.", + "account_edit.image_delete_modal.confirm": "Haluatko varmasti poistaa tämän kuvan? Tätä tointa ei voi kumota.", "account_edit.image_delete_modal.delete_button": "Poista", "account_edit.image_delete_modal.title": "Poistetaanko kuva?", "account_edit.image_edit.add_button": "Lisää kuva", @@ -522,7 +522,7 @@ "confirmations.delete.message": "Haluatko varmasti poistaa tämän julkaisun?", "confirmations.delete.title": "Poistetaanko julkaisu?", "confirmations.delete_collection.confirm": "Poista", - "confirmations.delete_collection.message": "Tätä toimea ei voi peruuttaa.", + "confirmations.delete_collection.message": "Tätä tointa ei voi peruuttaa.", "confirmations.delete_collection.title": "Poistetaanko ”{name}”?", "confirmations.delete_list.confirm": "Poista", "confirmations.delete_list.message": "Haluatko varmasti poistaa tämän listan pysyvästi?", @@ -570,7 +570,7 @@ "confirmations.revoke_collection_inclusion.message": "Kokoaja ei voi lisätä sinua uudelleen tähän kokoelmaan seuraavan 24 tunnin aikana. Estämällä hänet voit pysyvästi estää häntä lisäämästä sinua kokoelmiin.", "confirmations.revoke_collection_inclusion.title": "Poistetaanko itsesi tästä kokoelmasta?", "confirmations.revoke_quote.confirm": "Poista julkaisu", - "confirmations.revoke_quote.message": "Tätä toimea ei voi peruuttaa.", + "confirmations.revoke_quote.message": "Tätä tointa ei voi peruuttaa.", "confirmations.revoke_quote.title": "Poistetaanko julkaisu?", "confirmations.unblock.confirm": "Kumoa esto", "confirmations.unblock.title": "Kumotaanko käyttäjän {name} esto?", diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json index 35fd86c..34c45b0 100644 --- a/app/javascript/mastodon/locales/fr-CA.json +++ b/app/javascript/mastodon/locales/fr-CA.json @@ -1187,7 +1187,7 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.spam_sentence": "indésirable", "report_notification.categories.violation": "Infraction aux règles du serveur", - "report_notification.categories.violation_sentence": "infraction de règle", + "report_notification.categories.violation_sentence": "infraction aux règles du serveur", "report_notification.open": "Ouvrir le signalement", "search.clear": "Effacer la recherche", "search.no_recent_searches": "Aucune recherche récente", @@ -1307,7 +1307,7 @@ "status.remove_bookmark": "Retirer des signets", "status.remove_favourite": "Retirer des favoris", "status.remove_quote": "Supprimer", - "status.replied_in_thread": "A répondu dans un fil de discussion", + "status.replied_in_thread": "En réponse à un fil de discussion", "status.replied_to": "A répondu à {name}", "status.reply": "Répondre", "status.replyAll": "Répondre à cette discussion", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 5517a3e..f628a59 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -1187,7 +1187,7 @@ "report_notification.categories.spam": "Spam", "report_notification.categories.spam_sentence": "indésirable", "report_notification.categories.violation": "Infraction aux règles du serveur", - "report_notification.categories.violation_sentence": "infraction de règle", + "report_notification.categories.violation_sentence": "infraction aux règles du serveur", "report_notification.open": "Ouvrir le signalement", "search.clear": "Effacer la recherche", "search.no_recent_searches": "Aucune recherche récente", @@ -1307,7 +1307,7 @@ "status.remove_bookmark": "Retirer des marque-pages", "status.remove_favourite": "Retirer des favoris", "status.remove_quote": "Supprimer", - "status.replied_in_thread": "A répondu dans un fil de discussion", + "status.replied_in_thread": "En réponse à un fil de discussion", "status.replied_to": "En réponse à {name}", "status.reply": "Répondre", "status.replyAll": "Répondre au fil", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index ad16b30..dd28d7c 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -201,7 +201,7 @@ "account_edit.field_reorder_modal.drag_over": "Chaidh an raon “{item}” a ghluasad thar “{over}”.", "account_edit.field_reorder_modal.drag_start": "Chaidh an raon “{item}” a thogail.", "account_edit.field_reorder_modal.handle_label": "Slaod an raon “{item}”", - "account_edit.field_reorder_modal.title": "Cuir òrdugh ùr air na raointean", + "account_edit.field_reorder_modal.title": "Atharraich òrdugh nan raointean", "account_edit.image_alt_modal.add_title": "Cuir roghainn teacsa ris", "account_edit.image_alt_modal.details_content": "MHOLAMAID: SEACHAINN: BALL-EISIMPLEIR: ", "account_edit.image_alt_modal.details_title": "Gliocasan: Roghainn teacsa air dealbhan pròifile", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index bedbcd0..ba5505a 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -477,8 +477,8 @@ "column.your_collections": "האוספים שלך", "column_back_button.label": "בחזרה", "column_header.hide_settings": "הסתרת הגדרות", - "column_header.moveLeft_settings": "הזזת טור לשמאל", - "column_header.moveRight_settings": "הזזת טור לימין", + "column_header.moveLeft_settings": "הזחת עמודה לשמאל", + "column_header.moveRight_settings": "הזחת עמודה לימין", "column_header.pin": "הצמדה", "column_header.show_settings": "הצגת העדפות", "column_header.unpin": "שחרור הצמדה", @@ -671,7 +671,7 @@ "empty_column.mutes": "עוד לא השתקת שום משתמש.", "empty_column.notification_requests": "בום! אין פה כלום. כשיווצרו עוד התראות, הן יופיעו כאן על בסיס ההעדפות שלך.", "empty_column.notifications": "אין התראות עדיין. יאללה, הגיע הזמן להתחיל להתערבב.", - "empty_column.public": "אין פה כלום! כדי למלא את הטור הזה אפשר לכתוב משהו, או להתחיל לעקוב אחרי אנשים מקהילות אחרות", + "empty_column.public": "אין פה כלום! כדי למלא את העמודה הזו אפשר לכתוב משהו, או להתחיל לעקוב אחרי אנשים מקהילות אחרות", "empty_state.no_results": "אין תוצאות", "error.no_hashtag_feed_access": "הצטרפו או התחברו כדי לעקוב אחרי תגית זו.", "error.unexpected_crash.explanation": "עקב תקלה בקוד שלנו או בעיית תאימות דפדפן, לא ניתן להציג דף זה כראוי.", @@ -763,7 +763,7 @@ "hashtag.column_settings.tag_mode.all": "כל אלה", "hashtag.column_settings.tag_mode.any": "לפחות אחד מאלה", "hashtag.column_settings.tag_mode.none": "אף אחד מאלה", - "hashtag.column_settings.tag_toggle": "כלול תגיות נוספות בטור זה", + "hashtag.column_settings.tag_toggle": "כלול תגיות נוספות בעמודה זו", "hashtag.counter_by_accounts": "{count, plural,one{{count} משתתף.ת}other{{counter} משתתפיםות}}", "hashtag.counter_by_uses": "{count, plural, one {הודעה אחת} two {הודעותיים} many {{counter} הודעות} other {{counter} הודעות}}", "hashtag.counter_by_uses_today": "{count, plural, one {הודעה אחת} two {הודעותיים} many {{counter} הודעות} other {{counter} הודעות}} היום", @@ -815,7 +815,7 @@ "keyboard_shortcuts.back": "ניווט חזרה", "keyboard_shortcuts.blocked": "פתיחת רשימת חסומים", "keyboard_shortcuts.boost": "להדהד", - "keyboard_shortcuts.column": "להתמקד בחצרוץ באחד מהטורים", + "keyboard_shortcuts.column": "להתמקד בעמודה", "keyboard_shortcuts.compose": "להתמקד בתיבת חיבור החצרוצים", "keyboard_shortcuts.description": "תיאור", "keyboard_shortcuts.direct": "לפתוח עמודת שיחות פרטיות", @@ -840,7 +840,7 @@ "keyboard_shortcuts.mention": "לאזכר את המחבר.ת", "keyboard_shortcuts.muted": "פתיחת רשימת משתמשים מושתקים", "keyboard_shortcuts.my_profile": "פתיחת הפרופיל שלך", - "keyboard_shortcuts.notifications": "פתיחת טור התראות", + "keyboard_shortcuts.notifications": "פתיחת עמודת התראות", "keyboard_shortcuts.open_media": "פתיחת מדיה", "keyboard_shortcuts.pinned": "פתיחת הודעה נעוצות", "keyboard_shortcuts.profile": "פתח את פרופיל המשתמש", @@ -849,7 +849,7 @@ "keyboard_shortcuts.requests": "פתיחת רשימת בקשות מעקב", "keyboard_shortcuts.search": "להתמקד בחלון החיפוש", "keyboard_shortcuts.spoilers": "הצגת/הסתרת שדה אזהרת תוכן (CW)", - "keyboard_shortcuts.start": "לפתוח את הטור \"בואו נתחיל\"", + "keyboard_shortcuts.start": "לפתוח את העמודה \"בואו נתחיל\"", "keyboard_shortcuts.toggle_hidden": "הצגת/הסתרת טקסט מוסתר מאחורי אזהרת תוכן", "keyboard_shortcuts.toggle_sensitivity": "הצגת/הסתרת מדיה", "keyboard_shortcuts.toot": "להתחיל חיצרוץ חדש", @@ -865,7 +865,7 @@ "lightbox.zoom_in": "הגדלה לגודל מלא", "lightbox.zoom_out": "התאמה לגודל המסך", "limited_account_hint.action": "הצג חשבון בכל זאת", - "limited_account_hint.title": "פרופיל המשתמש או השרת כולו הוסתר על ידי מנחי הדיון של {domain}.", + "limited_account_hint.title": "פרופיל המשתמש או השרת כולו הוסתר על ידי מפקחי הדיון של {domain}.", "link_preview.author": "מאת {name}", "link_preview.more_from_author": "עוד מאת {name}", "link_preview.shares": "{count, plural, one {הודעה אחת} two {הודעותיים} many {{counter} הודעות} other {{counter} הודעות}}", @@ -928,7 +928,7 @@ "navigation_bar.live_feed_public": "פיד ההודעות בזמן אמת (פומבי)", "navigation_bar.logout": "התנתקות", "navigation_bar.main": "ראשי", - "navigation_bar.moderation": "הנחיית דיונים", + "navigation_bar.moderation": "פיקוח תכנים", "navigation_bar.more": "עוד", "navigation_bar.mutes": "משתמשים בהשתקה", "navigation_bar.opened_in_classic_interface": "הודעות, חשבונות ושאר עמודי רשת יפתחו כברירת מחדל בדפדפן רשת קלאסי.", @@ -968,11 +968,11 @@ "notification.mention": "אזכור", "notification.mentioned_you": "אוזכרת על ידי {name}", "notification.moderation-warning.learn_more": "למידע נוסף", - "notification.moderation_warning": "קיבלת אזהרה מצוות ניהול התוכן", + "notification.moderation_warning": "קיבלת התרעה מצוות פיקוח תוכן", "notification.moderation_warning.action_delete_statuses": "חלק מהודעותיך הוסרו.", "notification.moderation_warning.action_disable": "חשבונך הושבת.", "notification.moderation_warning.action_mark_statuses_as_sensitive": "חלק מהודעותיך סומנו כרגישות.", - "notification.moderation_warning.action_none": "חשבונך קיבל אזהרה מצוות ניהול התוכן.", + "notification.moderation_warning.action_none": "חשבונך קיבל התרעה מצוות פיקוח התוכן.", "notification.moderation_warning.action_sensitive": "הודעותיך יסומנו כרגישות מעתה ואילך.", "notification.moderation_warning.action_silence": "חשבונך הוגבל.", "notification.moderation_warning.action_suspend": "חשבונך הושעה.", @@ -1025,7 +1025,7 @@ "notifications.column_settings.push": "התראות בדחיפה", "notifications.column_settings.quote": "ציטוטים:", "notifications.column_settings.reblog": "הדהודים:", - "notifications.column_settings.show": "הצגה בטור", + "notifications.column_settings.show": "הצגה בעמודה", "notifications.column_settings.sound": "שמע מופעל", "notifications.column_settings.status": "הודעות חדשות:", "notifications.column_settings.unread_notifications.category": "התראות שלא נקראו", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index 68cd4ea..b0d514d 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -387,7 +387,7 @@ "collections.collection_name": "Nafn", "collections.collection_topic": "Umfjöllunarefni", "collections.confirm_account_removal": "Ertu viss um að þú viljir fjarlægja þennan aðgang úr þessu safni?", - "collections.content_warning": "Viðvörun vegna efnis", + "collections.content_warning": "Aðvörun vegna efnis", "collections.continue": "Halda áfram", "collections.copy_link": "Afrita tengil", "collections.copy_link_confirmation": "Afritaði tengil á safn á klippispjald", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index 5e2233b..5ce58da 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -29,7 +29,7 @@ "account.block_short": "Blocca", "account.blocked": "Bloccato", "account.cancel_follow_request": "Annulla la richiesta di seguire", - "account.copy": "Copia link del profilo", + "account.copy": "Copia il collegamento al profilo", "account.direct": "Menziona privatamente @{name}", "account.disable_notifications": "Smetti di avvisarmi quando @{name} pubblica un post", "account.edit_note": "Modifica la nota personale", @@ -458,10 +458,10 @@ "column.community": "Cronologia locale", "column.create_list": "Crea lista", "column.direct": "Menzioni private", - "column.directory": "Sfoglia profili", + "column.directory": "Sfoglia i profili", "column.domain_blocks": "Domini bloccati", "column.edit_list": "Modifica lista", - "column.favourites": "Preferiti", + "column.favourites": "Apprezzamenti", "column.firehose": "Feed in diretta", "column.firehose_local": "Feed in diretta per questo server", "column.firehose_singular": "Feed in diretta", @@ -587,7 +587,7 @@ "conversation.open": "Visualizza conversazione", "conversation.with": "Con {names}", "copy_icon_button.copied": "Copiato negli appunti", - "copy_icon_button.copy_this_text": "Copia il link negli appunti", + "copy_icon_button.copy_this_text": "Copia il collegamento negli appunti", "copypaste.copied": "Copiato", "copypaste.copy_to_clipboard": "Copia negli Appunti", "custom_homepage.about": "Info", @@ -596,7 +596,7 @@ "custom_homepage.contact": "Contatto:", "custom_homepage.latest_activity": "Attività più recente", "custom_homepage.these_are_the_latest_posts": "Questi sono gli ultimi 40 post da account presenti su questo server.", - "directory.federated": "Da un fediverse noto", + "directory.federated": "Dal fediverso conosciuto", "directory.local": "Solo da {domain}", "directory.new_arrivals": "Nuovi arrivi", "directory.recently_active": "Attivo di recente", @@ -742,7 +742,7 @@ "footer.about_mastodon": "Riguardo Mastodon", "footer.about_server": "Riguardo {domain}", "footer.about_this_server": "Info", - "footer.directory": "Cartella dei profili", + "footer.directory": "Elenco dei profili", "footer.get_app": "Scarica l'app", "footer.keyboard_shortcuts": "Scorciatoie da tastiera", "footer.privacy_policy": "Informativa sulla privacy", @@ -1199,7 +1199,7 @@ "search.quick_action.status_search": "Post corrispondenti a {x}", "search.search_or_paste": "Cerca o incolla URL", "search_popout.full_text_search_disabled_message": "Non disponibile in {domain}.", - "search_popout.full_text_search_logged_out_message": "Disponibile solo dopo aver effettuato l'accesso.", + "search_popout.full_text_search_logged_out_message": "Disponibili solo dopo aver effettuato l'accesso.", "search_popout.language_code": "Codice ISO lingua", "search_popout.options": "Opzioni di ricerca", "search_popout.quick_actions": "Azioni rapide", @@ -1235,7 +1235,7 @@ "status.all_disabled": "Condivisioni e citazioni sono disabilitate", "status.block": "Blocca @{name}", "status.bookmark": "Aggiungi segnalibro", - "status.cancel_reblog_private": "Annulla reblog", + "status.cancel_reblog_private": "Annulla la condivisione", "status.cannot_edit": "Non sei autorizzato/a a modificare questo post", "status.cannot_quote": "Non ti è consentito citare questo post", "status.cannot_reblog": "Questo post non può essere condiviso", @@ -1243,11 +1243,11 @@ "status.context.loading": "Caricamento di altre risposte", "status.context.loading_error": "Impossibile caricare nuove risposte", "status.context.loading_success": "Nuove risposte caricate", - "status.context.more_replies_found": "Sono state trovate altre risposte", + "status.context.more_replies_found": "Altre risposte trovate", "status.context.retry": "Riprova", "status.context.show": "Mostra", "status.continued_thread": "Discussione continua", - "status.copy": "Copia link al post", + "status.copy": "Copia il collegamento al post", "status.delete": "Elimina", "status.delete.success": "Post eliminato", "status.detailed_status": "Vista conversazione dettagliata", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index 5e35cd6..fd9ea66 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -55,12 +55,12 @@ "account.follow_request_cancel_short": "Semmet", "account.follow_request_short": "Asuter", "account.followers": "Imeḍfaren", - "account.followers.empty": "Ar tura, ulac yiwen i yeṭṭafaṛen amseqdac-agi.", + "account.followers.empty": "Ar tura, ulac yiwen i yeṭṭafaṛen aseqdac-a.", "account.followers_counter": "{count, plural, one {{counter} n umḍfar} other {{counter} n yimeḍfaren}}", "account.followers_you_know_counter": "Tessneḍ {counter}", "account.following": "Yeṭṭafaṛ", "account.following_counter": "{count, plural, one {{counter} yettwaḍfaren} other {{counter} yettwaḍfaren}}", - "account.follows.empty": "Ar tura, amseqdac-agi ur yeṭṭafaṛ yiwen.", + "account.follows.empty": "Ar tura, aseqdac-a ur yeṭṭafaṛ yiwen.", "account.follows_you": "Yeṭṭafaṛ-ik·em-id", "account.go_to_profile": "Ddu ɣer umaɣnu", "account.hide_reblogs": "Ffer ayen i ibeṭṭu @{name}", @@ -105,7 +105,10 @@ "account.muted": "Yettwasgugem", "account.mutual": "Temmeḍfaṛem", "account.name.copy": "Nɣel asulay", + "account.name.help.domain_self": "{domain} d aqeddac-ik·im anda ideg llan umaɣnu-ik·im d yiznan-ik·im.", + "account.name.help.footer": "Am akken i tzemreḍ ad tazneḍ imaylen i medden yesseqdacen imefkiyen n yimayl yemgaraden, tzemreḍ ad tmyageḍ d medden deg yiqeddacen nniḍen n Mastodon, akked yal yiwen·t yesseqdacen asnas n Fedivers.", "account.name.help.header": "Asulay am tansa imayl", + "account.name.help.username_self": "{username} d isem-ik·im n useqdac deg uqeddac-a. Yezmer ad yili kra n yiwen deg uqeddac nniḍen yesɛan isem n useqdac am wayla-k·m.", "account.name_info": "D acu i d lmeεna-s?", "account.no_bio": "Ulac aglam i d-yettunefken.", "account.node_modal.edit_title": "Ẓreg tazmilt tudmawant", @@ -140,6 +143,7 @@ "account_edit.advanced_settings.title": "Iɣewwaren leqqayen", "account_edit.bio.add_label": "Rnu tameddurt", "account_edit.bio.edit_label": "Ẓreg tameddurt", + "account_edit.bio.placeholder": "Rnu tazwert wezzilen akken ad tt-ɛawnen wiyaḍ ad k-ɛeqlen.", "account_edit.bio.title": "Tameddurt", "account_edit.bio_modal.add_title": "Rnu tameddurt", "account_edit.bio_modal.edit_title": "Ẓreg tameddurt", @@ -205,6 +209,7 @@ "account_edit_tags.search_placeholder": "Sekcem-d ahacṭag…", "account_edit_tags.suggestions": "Isumren:", "account_edit_tags.tag_status_count": "{count, plural, one {# n yizen} other {# n yiznan}}", + "account_list.hidden_notice": "Aya ad yettban kan i kečč. Akken ad teskneḍ tabdart-a i wiyaḍ, dduu ɣer {page} > {modal} > {field}.", "account_list.total": "{total, plural, one {# n umiḍan} other {# n imiḍanen}}", "admin.dashboard.retention.cohort": "Ajerred deg ayyur", "admin.dashboard.retention.cohort_size": "Iseqdacen imaynuten", @@ -216,6 +221,8 @@ "alt_text_modal.add_alt_text": "Rnu aḍris amlellay", "alt_text_modal.add_text_from_image": "Rnu aḍris amlellay seg tugna", "alt_text_modal.cancel": "Semmet", + "alt_text_modal.describe_for_people_with_hearing_impairments": "Glem-it i wid ixuṣen deg tmesliwt…", + "alt_text_modal.describe_for_people_with_visual_impairments": "Glem-it i wid ixuṣen deg usekkud…", "alt_text_modal.done": "Immed", "announcement.announcement": "Ulɣu", "annual_report.announcement.action_build": "Bnu-d Wrapstodon-inu", @@ -311,6 +318,7 @@ "collections.report_collection": "Cetki ɣef telkensit-a", "collections.revoke_collection_inclusion": "Kkes-iyi seg telkensit-a", "collections.search_accounts_label": "Nadi ɣef umiḍan ara ternuḍ", + "collections.search_accounts_max_reached": "Tewwḍeḍ ɣer talast tafellayt n yimiḍanen", "collections.sensitive": "D amḥulfu", "collections.share_short": "Bḍu", "collections.sort_alphabetical": "S ugemmay", @@ -328,10 +336,11 @@ "column.create_list": "Snulfu-d tabdart", "column.direct": "Tabdarin tusligin", "column.directory": "Inig deg imeɣna", - "column.domain_blocks": "Taɣulin yeffren", + "column.domain_blocks": "Taɣulin yettusḥebsen", "column.edit_list": "Ẓreg tabdart", "column.favourites": "Imenyafen", "column.firehose": "Isuddam usriden", + "column.firehose_local": "Asuddem usrid i uqeddac-a", "column.firehose_singular": "Asuddem usrid", "column.follow_requests": "Isuturen n teḍfeṛt", "column.home": "Agejdan", @@ -384,12 +393,12 @@ "confirmation_modal.cancel": "Sefsex", "confirmations.block.confirm": "Sewḥel", "confirmations.delete.confirm": "Kkes", - "confirmations.delete.message": "Tebɣiḍ s tidet ad tekkseḍ tasuffeɣt-agi?", + "confirmations.delete.message": "Tebɣiḍ s tidet ad tekkseḍ tasuffeɣt-a?", "confirmations.delete.title": "Tukksa n tasuffeɣt?", "confirmations.delete_collection.confirm": "Kkes", "confirmations.delete_collection.title": "Ad tekkseḍ \"{name}\"?", "confirmations.delete_list.confirm": "Kkes", - "confirmations.delete_list.message": "Tebɣiḍ s tidet ad tekkseḍ umuɣ-agi i lebda?", + "confirmations.delete_list.message": "Tebɣiḍ s tidet ad tekkseḍ tabdart-a i lebda?", "confirmations.delete_list.title": "Tukksa n tebdart?", "confirmations.discard_draft.confirm": "Ttu-t u kemmel", "confirmations.discard_draft.edit.cancel": "Tuɣalin ar umaẓrag", @@ -459,7 +468,7 @@ "email_subscriptions.form.action": "Jerred", "email_subscriptions.submitted.title": "Yiwen n usurif nniḍen", "email_subscriptions.validation.email.invalid": "Tansa imayl d tarameɣtut", - "embed.instructions": "Ẓẓu addad-agi deg usmel-inek·inem s wenɣal n tangalt yellan sdaw-agi.", + "embed.instructions": "Sleɣ addad-a deg usmel-inek·inem s wenɣal n tangalt yellan ddaw-a.", "embed.preview": "Akka ara d-iban:", "emoji_button.activity": "Aqeddic", "emoji_button.clear": "Sfeḍ", @@ -481,13 +490,14 @@ "empty_column.account_suspended": "Amiḍan yettwaḥbas", "empty_column.account_timeline": "Ulac tisuffaɣ da !", "empty_column.account_unavailable": "Ur nufi ara amaɣnu-ayi", - "empty_column.blocks": "Ur tesḥebseḍ ula yiwen n umseqdac ar tura.", + "empty_column.blocks": "Ur tesḥebseḍ ula d yiwen n useqdac ar tura.", "empty_column.bookmarked_statuses": "Ulac kra n tsuffeɣt i terniḍ ɣer yismenyifen-ik·im ar tura. Ticki terniḍ yiwet, ad d-tettwasken da.", "empty_column.collections.featured_in": "Ur-k yerni ḥedd ɛad ɣer kra n telkensit.", "empty_column.community": "Tasuddemt tazayezt tadigant n yisallen d tilemt. Aru ihi kra akken ad tt-teččareḍ!", - "empty_column.domain_blocks": "Ulac kra n taɣult yettwaffren ar tura.", + "empty_column.domain_blocks": "Ulac kra n taɣult yettusweḥlen ar tura.", "empty_column.explore_statuses": "Ulac ayen yellan d anezzuɣ akka tura. Uɣal-d ticki!", "empty_column.follow_requests": "Ulac ɣur-k·m ula yiwen n usuter n teḍfeṛt. Ticki teṭṭfeḍ-d yiwen ad d-yettwasken da.", + "empty_column.followed_tags": "Mazal ur teḍfireḍ ula d yiwen n uhacṭag. Mi ara teḍfreḍ kra, ad d-banen da.", "empty_column.hashtag": "Ar tura ulac kra n ugbur yesɛan assaɣ ɣer uhacṭag-agi.", "empty_column.home": "Tasuddemt tagejdant n yisallen d tilemt! Ẓer {public} neɣ nadi ad tafeḍ imseqdacen-nniḍen ad ten-ḍefṛeḍ.", "empty_column.list": "Ar tura ur yelli kra deg umuɣ-a. Ad d-yettwasken da ticki iɛeggalen n wumuɣ-a suffɣen-d kra.", @@ -521,7 +531,7 @@ "filtered_notifications_banner.pending_requests": "Seg {count, plural, =0 {ula d yiwen} one {yiwen n umdan} other {# n yemdanen}} i tzemreḍ ad tessineḍ", "filtered_notifications_banner.title": "Ilɣa yettwasizdgen", "firehose.all": "Akk", - "firehose.local": "Deg uqeddac-ayi", + "firehose.local": "Aqeddac-a", "firehose.remote": "Iqeddacen nniḍen", "follow_request.authorize": "Ssireg", "follow_request.reject": "Agi", @@ -552,7 +562,7 @@ "footer.terms_of_service": "Tiwtilin n useqdec", "form_error.blank": "Ur yezmir ara ad yili wurti-a d ilem.", "form_field.optional": "(d axetṛan)", - "getting_started.heading": "Bdu", + "getting_started.heading": "Amek ara tebduḍ", "hashtag.browse": "Snirem tisuffaɣ yesɛan #{hashtag}", "hashtag.browse_from_account": "Snirem tisuffaɣ sɣur @{name} yesɛan #{hashtag}", "hashtag.column_header.tag_mode.all": "d {additional}", @@ -573,6 +583,7 @@ "hashtag.unfeature": "Ur ttwellih ara fell-as deg umaɣnu-inek·inem", "hashtag.unfollow": "Ḥbes aḍfar n uhacṭag", "hashtags.and_other": "…d {count, plural, one {}other {# nniḍen}}", + "hints.profiles.see_more_followers": "Wali ugar n ineḍfaren deg {domain}", "hints.profiles.see_more_follows": "Wali ugar ɣef {domain}", "hints.profiles.see_more_posts": "Wali ugar n tsuffaɣ ɣef {domain}", "home.column_settings.show_quotes": "Sken-d tibdarin", @@ -584,10 +595,11 @@ "home.show_announcements": "Ssken-d ulɣuyen", "ignore_notifications_modal.ignore": "Ttu ilɣa", "info_button.label": "Tallelt", + "info_button.what_is_alt_text": "

D acu-t uḍris amlellay?

\n

Aḍris amlellay yettak-d aglam n tugna i wid ixuṣen deg usekkud, i wid yesɛan tuqqna s talast, neɣ i wid yebɣan ugar n usegzi.

\n

Tzemreḍ ad tesnerniḍ tuffart d ugzu i medden meṛṛa s tira n uḍris amlellay ifazen, wezzilen, d umsulan.

\n", "interaction_modal.go": "Ddu", "interaction_modal.no_account_yet": "Werɛad ur tesɛid amiḍan?", "interaction_modal.on_another_server": "Deg uqeddac nniḍen", - "interaction_modal.on_this_server": "Deg uqeddac-ayi", + "interaction_modal.on_this_server": "Deg uqeddac-a", "interaction_modal.title": "Qqen i wakken ad tkemmleḍ", "interaction_modal.username_prompt": "Amedya: {example}", "intervals.full.days": "{number, plural, one {# wass} other {# wussan}}", @@ -700,7 +712,9 @@ "navigation_bar.privacy_and_reach": "Tabḍnit akked wagwaḍ", "navigation_bar.search": "Nadi", "navigation_bar.search_trends": "Anadi / Anezzuɣ", + "navigation_panel.collapse_followed_tags": "Sneḍfes umuɣ n yihacṭagen yettwaḍfaren", "navigation_panel.collapse_lists": "Sneḍfes umuɣ n tebdart", + "navigation_panel.expand_followed_tags": "Fser umuɣ n yihacṭagen yettwaḍfaren", "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.added_to_collection": "{name} yerna-k·em ɣer yiwen n telkensit", "notification.admin.report": "Yemla-t-id {name} {target}", @@ -728,6 +742,7 @@ "notification.status": "{name} akken i d-yessufeɣ", "notification.update": "{name} ibeddel tira n yiwen n yizen", "notification_requests.accept": "Qbel", + "notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Zgel asuter} other {Zgel isutren}}", "notification_requests.dismiss": "Agi", "notification_requests.edit_selection": "Ẓreg", "notification_requests.exit_selection": "Immed", @@ -803,7 +818,7 @@ "poll.total_people": "{count, plural, one {# n wemdan} other {# n yemdanen}}", "poll.total_votes": "{count, plural, one {# n udɣaṛ} other {# n yedɣaṛen}}", "poll.vote": "Dɣeṛ", - "poll.voted": "Tdeɣṛeḍ ɣef tririt-ayi", + "poll.voted": "Tdeɣṛeḍ ɣef tririt-a", "poll.votes": "{votes, plural, one {# n udɣaṛ} other {# n yedɣaṛen}}", "poll_button.add_poll": "Rnu asenqed", "poll_button.remove_poll": "Kkes asenqed", @@ -943,7 +958,7 @@ "status.more": "Ugar", "status.mute": "Sussem @{name}", "status.mute_conversation": "Sgugem adiwenni", - "status.open": "Semɣeṛ tasuffeɣt-ayi", + "status.open": "Fser tasuffeɣt-a", "status.pin": "Senteḍ-itt deg umaɣnu", "status.public_only": "Izen-a d uslig", "status.quote": "Tanebdurt", @@ -961,7 +976,7 @@ "status.reblog_or_quote": "Zuzer neɣ ader-d", "status.reblog_private": "Zuzer-it i yineḍfaren-ik i tikkelt nniḍen", "status.reblogged_by": "Yebḍa-tt {name}", - "status.reblogs.empty": "Ula yiwen ur yebḍi tajewwiqt-agi ar tura. Ticki yebḍa-tt yiwen, ad d-iban da.", + "status.reblogs.empty": "Ula yiwen ur yebḍi izen-a ar tura. Mi ara ad t-yezzuzr walbɛaḍ, ad d-iban da.", "status.reblogs_count": "{count, plural, one {{counter} n uzuzer} other {{counter} n yizuzar}}", "status.redraft": "Kkes tɛiwdeḍ tira", "status.remove_bookmark": "Kkes tacreḍt", diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json index 4b2e9d2..6a89bbb 100644 --- a/app/javascript/mastodon/locales/lt.json +++ b/app/javascript/mastodon/locales/lt.json @@ -49,6 +49,7 @@ "account.filters.boosts_toggle": "Rodyti pasidalinimus", "account.filters.posts_boosts": "Įrašai ir pasidalinimai", "account.filters.posts_only": "Įrašai", + "account.filters.posts_replies": "Įrašai ir atsakymai", "account.filters.replies_toggle": "rodyti atsakymus", "account.follow": "Sekti", "account.follow_back": "Sekti atgal", @@ -66,14 +67,22 @@ "account.follows.empty": "Šis naudotojas dar nieko neseka.", "account.follows_you": "Seka tave", "account.go_to_profile": "Eiti į profilį", + "account.hame.invalid_handle": "Paskyros vardas negalimas", "account.hide_reblogs": "Slėpti pasidalinimus iš @{name}", "account.in_memoriam": "Atminimui.", "account.join_modal.day": "Diena", + "account.join_modal.me": "Prie {server} prisiregistravai", + "account.join_modal.me_anniversary": "Sveikiname su sukaktimi! Prie {server} prisiregistravai", + "account.join_modal.me_today": "Šiandien – tavo pirmoji diena {server} serveryje!", + "account.join_modal.other": "{name} prisiregistavo prie {server}", + "account.join_modal.other_today": "Šiandien – pirmoji {name} diena {server} serveryje!", "account.join_modal.share.celebrate": "Bendrinti kolaboracinį įrašą", "account.join_modal.share.intro": "Pasidalinkite įvadiniu įrašu", "account.join_modal.share.welcome": "Pasidalinkite sveikinimo įrašu", + "account.join_modal.years": "{number, plural, one {# metai} few {# metai} many {# metai} other {# metų}}", "account.joined_short": "Prisijungė", "account.languages": "Keisti prenumeruojamas kalbas", + "account.last_active": "Paskutinis veiksmas", "account.link_verified_on": "Šios nuorodos nuosavybė buvo patikrinta {date}", "account.locked_info": "Šios paskyros privatumo būsena nustatyta kaip užrakinta. Savininkas (-ė) rankiniu būdu peržiūri, kas gali sekti.", "account.media": "Medija", @@ -82,18 +91,33 @@ "account.menu.add_to_list": "Įtraukti į sąrašą…", "account.menu.block": "Blokuoti paskyrą", "account.menu.block_domain": "Blokuoti {domain}", + "account.menu.copied": "Paskyros nuoroda nukopijuota į iškarpinę", "account.menu.copy": "Kopijuoti nuorodą", + "account.menu.direct": "Paminėti privačiai", + "account.menu.hide_reblogs": "Paslėpti pasidalinimus laiko juostoje", + "account.menu.mention": "Paminėti", + "account.menu.mute": "Nutildyti paskyrą", "account.menu.note.description": "Matoma tik jums", + "account.menu.open_original_page": "Peržiūrėti {domain} serveryje", + "account.menu.open_original_page_no_domain": "Peržiūrėti kilmės serveryje", + "account.menu.remove_follower": "Šalinti sekėją", "account.menu.report": "Pranešti apie paskyrą", "account.menu.share": "Bendrinti…", + "account.menu.show_reblogs": "Rodyti pasidalinimus laiko juostoje", "account.menu.unblock": "Atblokuoti paskyrą", "account.menu.unblock_domain": "Atblokuoti {domain}", + "account.menu.unmute": "Atšaukti paskyros nutildymą", "account.moved_to": "{name} nurodė, kad dabar jų nauja paskyra yra:", "account.mute": "Nutildyti @{name}", "account.mute_notifications_short": "Nutildyti pranešimus", "account.mute_short": "Nutildyti", "account.muted": "Nutildytas", "account.mutual": "Sekate vienas kitą", + "account.name.copy": "Kopijuoti paskyros vardą", + "account.name.help.domain": "{domain} – tai serveris, kuriame talpinamas šio naudotojo profilis ir įrašai.", + "account.name.help.domain_self": "{domain} – tai serveris, kuriame talpinamas tavo naudotojo profilis ir įrašai.", + "account.name.help.header": "Paskyros vardas yra kaip el. pašto adresas", + "account.name.help.invalid_header": "Šio naudotojo paskyros vardas keičiamas", "account.name_info": "Ką tai reiškia?", "account.no_bio": "Nėra pateikto aprašymo.", "account.node_modal.callout": "Asmeninės pastabos matomos tik jums.", @@ -142,11 +166,13 @@ "account_edit.featured_hashtags.placeholder": "Padėkite kitiems atpažinti jūsų mėgstamas temas ir greitai prie jų prisijungti.", "account_edit.featured_hashtags.title": "Populiarios grotažymės", "account_edit.field_edit_modal.discard_confirm": "Atmesti", + "account_edit.field_edit_modal.discard_message": "Turi neįrašytų pakeitimų. Ar nori juos atmesti?", "account_edit.field_edit_modal.length_warning": "Viršytas rekomenduojamas simbolių skaičius. Mobiliesiems vartotojams jūsų laukas gali būti rodomas ne visas.", "account_edit.field_edit_modal.link_emoji_warning": "Nerekomenduojame naudoti emodži kartu su Url adresais. Pasirinktiniai laukai, kuriuose yra ir vieno, ir kito, bus rodomi tik kaip tekstas, o ne kaip nuoroda, siekiant išvengti vartotojų painiavos.", "account_edit.field_edit_modal.name_hint": "Pvz. \"Asmeninis puslapis\"", "account_edit.field_edit_modal.value_hint": "Pvz. \"https://example.com\"", "account_edit.field_reorder_modal.drag_instructions": "Norėdami pakeisti papildomų laukelių tvarką, paspauskite tarpo arba „Enter“ klavišą. Vilkdami laukelį, naudokite rodyklių klavišus, kad jį perkelti aukštyn arba žemyn. Norėdami įtvirtinti laukelį naujoje vietoje, dar kartą paspauskite tarpo arba „Enter“ klavišą, o norėdami atšaukti veiksmą – paspauskite „Esc“ klavišą.", + "account_edit.field_reorder_modal.handle_label": "Nutempti laukelį \"{item}\"", "account_edit.image_edit.alt_add_button": "Pridėti alternatyvųjį tekstą", "account_edit.image_edit.alt_edit_button": "Redaguoti alternatyvųjį tekstą", "account_edit.image_edit.remove_button": "Šalinti paveikslėlį", @@ -256,6 +282,7 @@ "collection.share_modal.title_new": "Bendrinti savo naują kolekciją!", "collection.share_template_other": "Pažvelkite į šią nuostabią kolekciją:", "collection.share_template_own": "Pažvelkite į mano naują kolekciją:", + "collections.by_account": " {account_handle}", "collections.create.steps": "Žingsnis {step}/{total}", "collections.create_collection": "Sukurti kolekciją", "collections.delete_collection": "Ištrinti kolekciją", @@ -348,7 +375,7 @@ "confirmations.delete_list.confirm": "Ištrinti", "confirmations.delete_list.message": "Ar tikrai nori negrįžtamai ištrinti šį sąrašą?", "confirmations.delete_list.title": "Ištrinti sąrašą?", - "confirmations.discard_draft.confirm": "Išsaugoti ir tęsti", + "confirmations.discard_draft.confirm": "Atmesti ir tęsti", "confirmations.discard_draft.edit.cancel": "Tęsti redagavimą", "confirmations.discard_draft.edit.message": "Tęsdami, jūs prarasite visus pakeitimus, kuriuos padarėte šiuo metu redaguojamame įraše.", "confirmations.discard_draft.edit.title": "Atmesti pakeitimus savo įraše?", diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index bbeb714..779aad6 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -230,6 +230,7 @@ "annual_report.summary.archetype.title_self": "Tavs arhetips", "annual_report.summary.close": "Aizvērt", "annual_report.summary.copy_link": "Kopēt saiti", + "annual_report.summary.highlighted_post.title": "Populārākais ieraksts", "annual_report.summary.most_used_app.most_used_app": "visizmantotākā lietotne", "annual_report.summary.most_used_hashtag.most_used_hashtag": "visizmantotākā mirkļbirka", "annual_report.summary.new_posts.new_posts": "jauni ieraksti", diff --git a/app/javascript/mastodon/locales/nan-TW.json b/app/javascript/mastodon/locales/nan-TW.json index 4b5b20c..8832aad 100644 --- a/app/javascript/mastodon/locales/nan-TW.json +++ b/app/javascript/mastodon/locales/nan-TW.json @@ -63,7 +63,7 @@ "account.followers_counter": "Hōo {count, plural, other {{count} ê lâng}}跟tuè", "account.followers_you_know_counter": "Lí所知影ê {counter} ê lâng", "account.following": "Leh跟tuè", - "account.following_counter": "Teh跟tuè {count,plural,other {{count} ê lâng}}", + "account.following_counter": "Leh跟tuè {count,plural,other {{count} ê lâng}}", "account.follows.empty": "Tsit ê用者iáu buē跟tuè別lâng。", "account.follows_you": "跟tuè lí", "account.go_to_profile": "行kàu個人資料", @@ -735,7 +735,7 @@ "follow_suggestions.who_to_follow": "Thang tuè ê", "followed_tags": "跟tuè ê hashtag", "followers.hide_other_followers": "Tsit位用者選擇mài公開跟tuè伊ê", - "followers.title": "Teh跟tuè {name}", + "followers.title": "Leh跟tuè {name}", "following.hide_other_following": "Tsit位用者選擇mài公開伊跟tuè ê別lâng", "following.title": "Hōo {name} 跟tuè", "footer.about": "概要", @@ -1178,7 +1178,7 @@ "report.thanks.title": "無想beh看著tse?", "report.thanks.title_actionable": "多謝lí ê檢舉,guán ē處理。", "report.unfollow": "取消跟tuè @{name}", - "report.unfollow_explanation": "Lí teh跟tuè tsit ê口座。Nā無beh佇頭頁ê時間線koh看見in ê PO文,請取消跟tuè。", + "report.unfollow_explanation": "Lí leh跟tuè tsit ê口座。Nā無beh佇頭頁ê時間線koh看見in ê PO文,請取消跟tuè。", "report_notification.attached_statuses": "附 {count, plural, one {{count} 篇PO文} other {{count} 篇PO文}}ah", "report_notification.categories.legal": "法規", "report_notification.categories.legal_sentence": "違法ê內容", @@ -1246,7 +1246,7 @@ "status.context.more_replies_found": "Tshuē-tio̍h其他回應", "status.context.retry": "Koh試", "status.context.show": "顯示", - "status.continued_thread": "接續ê討論線", + "status.continued_thread": "接suà ê討論線", "status.copy": "Khóo-pih PO文ê連結", "status.delete": "Thâi掉", "status.delete.success": "PO文thâi掉ah", @@ -1272,6 +1272,7 @@ "status.mute_conversation": "Kā對話消音", "status.not_quoted": "Lí佇tsit篇PO文內底無hőng引用", "status.open": "Kā PO文展開", + "status.pin": "釘佇個人資料", "status.public_only": "Tsit篇PO文是私人ê", "status.quote": "引用", "status.quote.cancel": "取消引用", @@ -1323,6 +1324,7 @@ "status.translated_from_with": "用 {provider} 翻譯 {lang}", "status.uncached_media_warning": "Bē當先看māi", "status.unmute_conversation": "Kā對話取消消音", + "status.unpin": "取消釘佇個人資料", "subscribed_languages.lead": "Tī改變了後,kan-ta所揀ê語言ê PO文tsiah ē顯示佇lí ê厝ê時間線kap列單。揀「無」來接受所有語言êPO文。", "subscribed_languages.save": "儲存改變", "subscribed_languages.target": "改 {target} ê訂ê語言", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 255ba28..91f229a 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -666,7 +666,7 @@ "empty_column.follow_requests": "Je hebt nog geen volgverzoeken ontvangen. Wanneer je er een ontvangt, valt dat hier te zien.", "empty_column.followed_tags": "Je hebt nog geen hashtags gevolgd. Nadat je dit doet, komen deze hier te staan.", "empty_column.hashtag": "Er is nog niks te vinden onder deze hashtag.", - "empty_column.home": "Deze tijdlijn is leeg! Volg meer mensen om het te vullen.", + "empty_column.home": "Jouw hoofdtijdlijn is leeg! Volg meer mensen om het te vullen.", "empty_column.list": "Er is nog niks te zien in deze lijst. Wanneer lijstleden nieuwe berichten plaatsen, zijn deze hier te zien.", "empty_column.mutes": "Jij hebt nog geen gebruikers genegeerd.", "empty_column.notification_requests": "Helemaal leeg! Er is hier niets. Wanneer je nieuwe meldingen ontvangt, verschijnen deze hier volgens jouw instellingen.", @@ -826,7 +826,7 @@ "keyboard_shortcuts.favourites": "Lijst met favorieten tonen", "keyboard_shortcuts.federated": "Globale tijdlijn tonen", "keyboard_shortcuts.heading": "Sneltoetsen", - "keyboard_shortcuts.home": "Starttijdlijn tonen", + "keyboard_shortcuts.home": "Hoofdtijdlijn tonen", "keyboard_shortcuts.hotkey": "Sneltoets", "keyboard_shortcuts.keys.alt": "Alt", "keyboard_shortcuts.keys.backspace": "Backspace", @@ -873,13 +873,13 @@ "lists.add_to_list": "Aan lijst toevoegen", "lists.add_to_lists": "{name} aan lijsten toevoegen", "lists.create": "Aanmaken", - "lists.create_a_list_to_organize": "Maak een nieuwe lijst aan om je starttijdlijn te organiseren", + "lists.create_a_list_to_organize": "Maak een nieuwe aangepaste tijdlijn aan om je hoofdtijdlijn te organiseren", "lists.create_list": "Lijst aanmaken", "lists.delete": "Lijst verwijderen", "lists.done": "Klaar", "lists.edit": "Lijst bewerken", - "lists.exclusive": "Leden op je Startpagina verbergen", - "lists.exclusive_hint": "Als iemand op deze lijst staat, verberg deze persoon dan op je starttijdlijn om te voorkomen dat diens berichten twee keer worden getoond.", + "lists.exclusive": "Leden op jouw hoofdtijdlijn verbergen", + "lists.exclusive_hint": "Als iemand aan deze aangepaste tijdlijn is toegevoegd, verberg deze persoon dan op je hoofdtijdlijn om te voorkomen dat diens berichten twee keer worden getoond.", "lists.find_users_to_add": "Vind gebruikers om toe te voegen", "lists.list_members_count": "{count, plural, one{# lid} other{# leden}}", "lists.list_name": "Lijstnaam", @@ -1119,7 +1119,7 @@ "recommended": "Aanbevolen", "refresh": "Vernieuwen", "regeneration_indicator.please_stand_by": "Even geduld alsjeblieft.", - "regeneration_indicator.preparing_your_home_feed": "Voorbereiden van jouw starttijdlijn…", + "regeneration_indicator.preparing_your_home_feed": "Voorbereiden van jouw hoofdtijdlijn…", "relative_time.days": "{number}d", "relative_time.full.days": "{number, plural, one {# dag} other {# dagen}} geleden", "relative_time.full.hours": "{number, plural, one {# uur} other {# uur}} geleden", @@ -1178,7 +1178,7 @@ "report.thanks.title": "Wil je dit niet zien?", "report.thanks.title_actionable": "Dank je voor het rapporteren. Wij gaan er naar kijken.", "report.unfollow": "@{name} ontvolgen", - "report.unfollow_explanation": "Je volgt dit account. Om diens berichten niet meer op jouw starttijdlijn te zien, kun je diegene ontvolgen.", + "report.unfollow_explanation": "Je volgt dit account. Om diens berichten niet meer op jouw hoofdtijdlijn te zien, kun je diegene ontvolgen.", "report_notification.attached_statuses": "{count, plural, one {{count} bericht} other {{count} berichten}} toegevoegd", "report_notification.categories.legal": "Juridisch", "report_notification.categories.legal_sentence": "illegale inhoud", @@ -1234,7 +1234,7 @@ "status.admin_status": "Dit bericht in de moderatie-omgeving tonen", "status.all_disabled": "Boosts en citaten zijn uitgeschakeld", "status.block": "@{name} blokkeren", - "status.bookmark": "Bladwijzer toevoegen", + "status.bookmark": "Bericht opslaan", "status.cancel_reblog_private": "Niet langer boosten", "status.cannot_edit": "Je hebt geen toestemming om dit bericht te bewerken", "status.cannot_quote": "Je hebt geen toestemming om dit bericht te citeren", @@ -1325,7 +1325,7 @@ "status.uncached_media_warning": "Voorvertoning niet beschikbaar", "status.unmute_conversation": "Gesprek niet langer negeren", "status.unpin": "Van profielpagina losmaken", - "subscribed_languages.lead": "Na de wijziging worden alleen berichten van geselecteerde talen op jouw starttijdlijn en in lijsten weergegeven.", + "subscribed_languages.lead": "Na de wijziging worden alleen berichten van geselecteerde talen op jouw hoofdtijdlijn en op aangepaste tijdlijnen weergegeven.", "subscribed_languages.save": "Wijzigingen opslaan", "subscribed_languages.target": "Getoonde talen voor {target} wijzigen", "tabs_bar.home": "Start", diff --git a/app/javascript/mastodon/locales/pa.json b/app/javascript/mastodon/locales/pa.json index c1a361c..4f700bd 100644 --- a/app/javascript/mastodon/locales/pa.json +++ b/app/javascript/mastodon/locales/pa.json @@ -87,6 +87,7 @@ "account.muted": "ਮੌਨ ਕੀਤੀਆਂ", "account.mutual": "ਤੁਸੀਂ ਇੱਕ ਦੂਜੇ ਨੂੰ ਫ਼ਾਲੋ ਕਰਦੇ ਹੋ", "account.name.copy": "ਹੈਂਡਲ ਨੂੰ ਕਾਪੀ ਕਰੋ", + "account.name_info": "ਇਸ ਦਾ ਮਤਲਬ ਕੀ ਹੈ?", "account.no_bio": "ਕੋਈ ਵਰਣਨ ਨਹੀਂ ਦਿੱਤਾ।", "account.node_modal.edit_title": "ਨਿੱਜੀ ਨੋਟ ਨੂੰ ਸੋਧੋ", "account.node_modal.field_label": "ਨਿੱਜੀ ਨੋਟ", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index d7f0426..c012acb 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -98,6 +98,7 @@ "account.menu.mute": "Wycisz konta", "account.menu.note.description": "Widoczne tylko dla Ciebie", "account.menu.open_original_page": "Zobacz na {domain}", + "account.menu.open_original_page_no_domain": "Zobacz na oryginalnym serwerze", "account.menu.remove_follower": "Usuń obserwującego", "account.menu.report": "Zgłoś konto", "account.menu.share": "Udostępnij...", @@ -191,6 +192,7 @@ "account_edit.field_edit_modal.value_label": "Wartość", "account_edit.field_reorder_modal.handle_label": "Przeciągnij pole \"{item}\"", "account_edit.image_alt_modal.add_title": "Dodaj tekst alternatywny", + "account_edit.image_alt_modal.details_content": "DOBRZE: ŹLE: PRZYKŁAD: ", "account_edit.image_alt_modal.details_title": "Wskazówki: Tekst alternatywny dla zdjęć profilowych", "account_edit.image_alt_modal.edit_title": "Edytuj tekst alternatywny", "account_edit.image_alt_modal.text_hint": "Tekst alternatywny pomaga użytkownikom czytników ekranu zrozumieć twoją treść.", @@ -630,7 +632,9 @@ "explore.trending_links": "Aktualności", "explore.trending_statuses": "Posty", "explore.trending_tags": "Hasztagi", + "featured_carousel.current": "Post {current, number} / {max, number}", "featured_carousel.header": "{count, plural, one {Przypięty post} few {Przypięte posty} many {Przypięte posty} other {Przypięte posty}}", + "featured_carousel.slide": "Post {current, number} z {max, number}", "featured_tags.more_items": "+{count}", "featured_tags.suggestions.add": "Dodaj", "featured_tags.suggestions.dismiss": "Nie, dziękuję", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index 2bf31bb..52300a7 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -67,7 +67,7 @@ "account.follows.empty": "Этот пользователь пока ни на кого не подписался.", "account.follows_you": "Подписан(а) на вас", "account.go_to_profile": "Перейти к профилю", - "account.hame.invalid_handle": "Handle unavailable", + "account.hame.invalid_handle": "Адрес недоступен", "account.hide_reblogs": "Скрыть продвижения от @{name}", "account.in_memoriam": "In Memoriam.", "account.join_modal.day": "День", @@ -99,6 +99,7 @@ "account.menu.mute": "Игнорировать", "account.menu.note.description": "Не видно никому, кроме вас", "account.menu.open_original_page": "Открыть на {domain}", + "account.menu.open_original_page_no_domain": "Открыть на исходном сервере", "account.menu.remove_follower": "Убрать из подписчиков", "account.menu.report": "Пожаловаться", "account.menu.share": "Поделиться…", @@ -117,6 +118,8 @@ "account.name.help.domain_self": "{domain} — это ваш сервер, на котором размещены ваши профиль и посты.", "account.name.help.footer": "Точно так же как вы отправляете сообщения пользователям разных почтовых сервисов, вы можете взаимодействовать с пользователями других серверов Mastodon и других платформ в сети Fediverse.", "account.name.help.header": "Адрес пользователя напоминает адрес электронной почты", + "account.name.help.invalid_explanation": "Адрес может стать временно недоступен, когда изменяется имя пользователя. Другими причинами могут быть недоступность или неправильная конфигурация сервера.", + "account.name.help.invalid_header": "Адрес этого пользователя будет обновлён", "account.name.help.username": "{username} — это имя пользователя на сервере. На разных серверах могут встречаться люди с тем же именем пользователя.", "account.name.help.username_self": "{username} — это ваше имя пользователя на этом сервере. На других серверах могут встречаться люди с тем же именем пользователя.", "account.name_info": "Что это значит?", @@ -392,6 +395,7 @@ "collections.create.basic_details_title": "Основная информация", "collections.create.steps": "Шаг {step}/{total}", "collections.create_collection": "Создать подборку", + "collections.create_new_collection": "Создать новую подборку", "collections.delete_collection": "Удалить подборку", "collections.description_length_hint": "Не более 100 символов", "collections.detail.author_added_you_on_date": "{author} добавил(а) вас {date}", @@ -473,8 +477,8 @@ "column.your_collections": "Мои подборки", "column_back_button.label": "Назад", "column_header.hide_settings": "Скрыть настройки", - "column_header.moveLeft_settings": "Передвинуть колонку влево", - "column_header.moveRight_settings": "Передвинуть колонку вправо", + "column_header.moveLeft_settings": "Передвинуть столбец влево", + "column_header.moveRight_settings": "Передвинуть столбец вправо", "column_header.pin": "Закрепить", "column_header.show_settings": "Показать настройки", "column_header.unpin": "Открепить", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index a84d76b..b32dbbd 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -280,7 +280,7 @@ "alt_text_modal.add_alt_text": "Alternatif metin ekle", "alt_text_modal.add_text_from_image": "Resimden metin ekle", "alt_text_modal.cancel": "İptal et", - "alt_text_modal.change_thumbnail": "Küçük resmi değiştir", + "alt_text_modal.change_thumbnail": "Küçük görseli değiştir", "alt_text_modal.describe_for_people_with_hearing_impairments": "Bunu işitme sorunu yaşayan kişiler için betimleyin…", "alt_text_modal.describe_for_people_with_visual_impairments": "Bunu görme bozukluğu yaşayan kişiler için betimleyin…", "alt_text_modal.done": "Tamamlandı", @@ -291,7 +291,7 @@ "annual_report.announcement.description": "Mastodon'daki geçen yıldaki etkileşimleriniz hakkında daha fazlasını öğrenin.", "annual_report.announcement.title": "{year} Wrapstodon'u yayında", "annual_report.nav_item.badge": "Yeni", - "annual_report.shared_page.donate": "Bağış Yap", + "annual_report.shared_page.donate": "Bağış", "annual_report.shared_page.footer": "Mastodon ekibi tarafından {heart} ile oluşturulmuştur", "annual_report.shared_page.footer_server_info": "{username}, Mastodon tarafından desteklenen birçok topluluktan biri olan {domain} kullanıyor.", "annual_report.summary.archetype.booster.desc_public": "{name} mükemmel bir hedefle diğer içerik üreticilerini desteklemek için paylaşımları yeniden yayınlamaya devam etti.", @@ -865,7 +865,7 @@ "lightbox.zoom_in": "Özgün boyuta dön", "lightbox.zoom_out": "Sığacak şekilde boyutla", "limited_account_hint.action": "Yine de profili göster", - "limited_account_hint.title": "Bu profil veya sunucu, {domain} moderatörleri tarafından gizlendi.", + "limited_account_hint.title": "Bu profil veya sunucu, {domain} denetçileri tarafından gizlendi.", "link_preview.author": "Yazar: {name}", "link_preview.more_from_author": "{name} kişisinden daha fazlası", "link_preview.shares": "{count, plural, one {{counter} gönderi} other {{counter} gönderi}}", @@ -928,7 +928,7 @@ "navigation_bar.live_feed_public": "Canlı akış (herkese açık)", "navigation_bar.logout": "Oturumu kapat", "navigation_bar.main": "Ana", - "navigation_bar.moderation": "Moderasyon", + "navigation_bar.moderation": "Denetim", "navigation_bar.more": "Daha fazla", "navigation_bar.mutes": "Sessize alınmış kullanıcılar", "navigation_bar.opened_in_classic_interface": "Gönderiler, hesaplar ve diğer belirli sayfalar klasik web arayüzünde varsayılan olarak açılıyorlar.", @@ -1000,8 +1000,8 @@ "notification_requests.dismiss_multiple": "{count, plural, one {# isteği reddet…} other {# isteği reddet…}}", "notification_requests.edit_selection": "Düzenle", "notification_requests.exit_selection": "Tamamlandı", - "notification_requests.explainer_for_limited_account": "Hesap bir moderatör tarafından sınırlandığı için, bu hesaptan gönderilen bildirimler filtrelendi.", - "notification_requests.explainer_for_limited_remote_account": "Hesap veya sunucusu bir moderatör tarafından sınırlandığı için, bu hesaptan gönderilen bildirimler filtrelendi.", + "notification_requests.explainer_for_limited_account": "Hesap bir denetçi tarafından sınırlandığı için, bu hesaptan gönderilen bildirimler filtrelendi.", + "notification_requests.explainer_for_limited_remote_account": "Hesap veya sunucusu bir denetçi tarafından sınırlandığı için, bu hesaptan gönderilen bildirimler filtrelendi.", "notification_requests.maximize": "Büyüt", "notification_requests.minimize_banner": "Filtrelenmiş bildirimler başlığını küçült", "notification_requests.notifications_from": "{name} bildirimleri", @@ -1053,7 +1053,7 @@ "notifications.policy.filter_bots_hint": "Otomatik olarak işaretlenmiş hesaplar", "notifications.policy.filter_bots_title": "Botlar", "notifications.policy.filter_hint": "Filtreli bildirimleri kutusuna gönder", - "notifications.policy.filter_limited_accounts_hint": "Sunucu moderatörleri tarafından kısıtlanmış", + "notifications.policy.filter_limited_accounts_hint": "Sunucu denetçileri tarafından kısıtlanmış", "notifications.policy.filter_limited_accounts_title": "Denetlenen hesaplar", "notifications.policy.filter_new_accounts.hint": "Son {days, plural, one {bir gün} other {# gün}}de oluşturuldu", "notifications.policy.filter_new_accounts_title": "Yeni hesaplar", @@ -1246,7 +1246,7 @@ "status.context.more_replies_found": "Daha fazla yanıt bulundu", "status.context.retry": "Yeniden dene", "status.context.show": "Göster", - "status.continued_thread": "Devam eden akış", + "status.continued_thread": "Devam eden konu", "status.copy": "Gönderi bağlantısını kopyala", "status.delete": "Sil", "status.delete.success": "Gönderi silindi", @@ -1280,7 +1280,7 @@ "status.quote_error.blocked_domain_hint.title": "Bu gönderi {domain} adresini engellediğiniz için gizlenmiştir.", "status.quote_error.filtered": "Bazı filtrelerinizden dolayı gizlenmiştir", "status.quote_error.limited_account_hint.action": "Yine de göster", - "status.quote_error.limited_account_hint.title": "Bu hesap {domain} moderatörleri tarafından gizlendi.", + "status.quote_error.limited_account_hint.title": "Bu hesap {domain} denetçileri tarafından gizlendi.", "status.quote_error.muted_account_hint.title": "Bu gönderi @{name} kişisini sessize aldığınız için gizlenmiştir.", "status.quote_error.not_available": "Gönderi kullanılamıyor", "status.quote_error.pending_approval": "Gönderi beklemede", @@ -1307,7 +1307,7 @@ "status.remove_bookmark": "Yer işaretini kaldır", "status.remove_favourite": "Favorilerden kaldır", "status.remove_quote": "Kaldır", - "status.replied_in_thread": "Akışta yanıtlandı", + "status.replied_in_thread": "Konu yanıtlandı", "status.replied_to": "{name} kullanıcısına yanıt verdi", "status.reply": "Yanıtla", "status.replyAll": "Konuyu yanıtla", @@ -1333,7 +1333,7 @@ "tabs_bar.notifications": "Bildirimler", "tabs_bar.publish": "Yeni Gönderi", "tabs_bar.quick_links": "Hızlı erişim", - "tabs_bar.search": "Arama", + "tabs_bar.search": "Ara", "tag.remove": "Kaldır", "terms_of_service.effective_as_of": "{date} itibariyle yürürlükte", "terms_of_service.title": "Hizmet Şartları", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index da47757..79459d8 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -82,7 +82,7 @@ "account.join_modal.years": "{number, plural, other {năm}}", "account.joined_short": "Từ", "account.languages": "Đổi ngôn ngữ mong muốn", - "account.last_active": "Hoạt động lần cuối", + "account.last_active": "Lần cuối thấy", "account.link_verified_on": "Liên kết này đã được xác minh vào {date}", "account.locked_info": "Đây là tài khoản riêng tư. Chủ tài khoản tự mình xét duyệt các yêu cầu theo dõi.", "account.media": "Phương tiện", @@ -103,7 +103,7 @@ "account.menu.remove_follower": "Xóa người theo dõi", "account.menu.report": "Báo cáo tài khoản", "account.menu.share": "Chia sẻ…", - "account.menu.show_reblogs": "Hện đăng lại trên bảng tin", + "account.menu.show_reblogs": "Hiện lượt đăng lại trên bảng tin", "account.menu.unblock": "Bỏ chặn tài khoản", "account.menu.unblock_domain": "Bỏ chặn {domain}", "account.menu.unmute": "Bỏ phớt lờ tài khoản", @@ -461,7 +461,7 @@ "column.directory": "Tìm tài khoản", "column.domain_blocks": "Máy chủ đã chặn", "column.edit_list": "Sửa danh sách", - "column.favourites": "Những tút đã thích", + "column.favourites": "Lượt Thích", "column.firehose": "Bảng tin", "column.firehose_local": "Bảng tin máy chủ này", "column.firehose_singular": "Bảng tin", @@ -779,9 +779,9 @@ "hints.profiles.see_more_followers": "Xem thêm người theo dõi ở {domain}", "hints.profiles.see_more_follows": "Xem thêm người mà tài khoản này theo dõi ở {domain}", "hints.profiles.see_more_posts": "Xem thêm tút ở {domain}", - "home.column_settings.show_quotes": "Hiện những trích dẫn", - "home.column_settings.show_reblogs": "Hiện những lượt đăng lại", - "home.column_settings.show_replies": "Hiện những tút dạng trả lời", + "home.column_settings.show_quotes": "Hiện tút trích dẫn", + "home.column_settings.show_reblogs": "Hiện tút đăng lại", + "home.column_settings.show_replies": "Hiện tút trả lời", "home.hide_announcements": "Ẩn thông báo máy chủ", "home.pending_critical_update.body": "Vui lòng cập nhật máy chủ Mastodon của bạn càng sớm càng tốt!", "home.pending_critical_update.link": "Xem bản cập nhật", @@ -1126,9 +1126,9 @@ "relative_time.full.just_now": "vừa xong", "relative_time.full.minutes": "{number, plural, other {# phút}}", "relative_time.full.seconds": "{number, plural, other {#s}}", - "relative_time.hours": "{number} giờ", + "relative_time.hours": "{number}h", "relative_time.just_now": "vừa xong", - "relative_time.minutes": "{number} phút", + "relative_time.minutes": "{number}p", "relative_time.seconds": "{number}s", "relative_time.today": "hôm nay", "remove_quote_hint.button_label": "Đã hiểu", diff --git a/app/javascript/styles/mastodon/forms.scss b/app/javascript/styles/mastodon/forms.scss index 3c68f6e..7fe0e22 100644 --- a/app/javascript/styles/mastodon/forms.scss +++ b/app/javascript/styles/mastodon/forms.scss @@ -686,6 +686,34 @@ code { background: var(--color-bg-error-base-hover); } } + + &.secondary { + color: var(--color-text-brand); + background: transparent; + border: 1px solid transparent; + border-color: var(--color-border-brand); + + &:active, + &:focus, + &:hover { + border-color: var(--color-border-brand); + color: var(--color-text-brand); + background-color: transparent; + text-decoration: none; + } + + &:disabled { + border-color: var(--color-text-disabled); + color: var(--color-text-disabled); + + &:active, + &:focus, + &:hover { + border-color: var(--color-text-disabled); + color: var(--color-text-disabled); + } + } + } } select { diff --git a/app/lib/account_statuses_filter.rb b/app/lib/account_statuses_filter.rb index 5fa9a2c..ae687de 100644 --- a/app/lib/account_statuses_filter.rb +++ b/app/lib/account_statuses_filter.rb @@ -48,11 +48,14 @@ class AccountStatusesFilter def filtered_scope scope = account.statuses - if exclude_direct? - scope = scope.where(visibility: follower? ? %i(public unlisted private) : %i(public unlisted)) + if exclude_direct? && follower? + scope = scope.list_eligible_visibility + elsif exclude_direct? + scope = account.statuses.left_outer_joins(:mentions) + scope.merge!(scope.distributable_visibility.or(scope.where(visibility: :private).where(mentions: { account_id: current_account.id })).group(Status.arel_table[:id])) else scope = account.statuses.left_outer_joins(:mentions) - scope.merge!(scope.where(visibility: follower? ? %i(public unlisted private) : %i(public unlisted)).or(scope.where(mentions: { account_id: current_account.id })).group(Status.arel_table[:id])) + scope.merge!(visibility_scope(scope).or(scope.where(mentions: { account_id: current_account.id })).group(Status.arel_table[:id])) end scope.merge!(filtered_reblogs_scope) if reblogs_may_occur? @@ -60,6 +63,14 @@ class AccountStatusesFilter scope end + def visibility_scope(scope) + if follower? + scope.list_eligible_visibility + else + scope.distributable_visibility + end + end + def filtered_reblogs_scope scope = Status.left_outer_joins(reblog: :account) scope diff --git a/app/lib/status_cache_hydrator.rb b/app/lib/status_cache_hydrator.rb index c2cfc92..d267514 100644 --- a/app/lib/status_cache_hydrator.rb +++ b/app/lib/status_cache_hydrator.rb @@ -53,11 +53,26 @@ class StatusCacheHydrator end def fill_status_payload(payload, status, account, nested: false, fresh: true) - payload[:favourited] = Favourite.exists?(account_id: account.id, status_id: status.id) - payload[:reblogged] = Status.exists?(account_id: account.id, reblog_of_id: status.id) - payload[:muted] = ConversationMute.exists?(account_id: account.id, conversation_id: status.conversation_id) - payload[:bookmarked] = Bookmark.exists?(account_id: account.id, status_id: status.id) - payload[:pinned] = StatusPin.exists?(account_id: account.id, status_id: status.id) if status.account_id == account.id + queries = [ + Favourite.where(account_id: account.id, status_id: status.id).arel.exists.as('favourited'), + Status.where(account_id: account.id, reblog_of_id: status.id).arel.exists.as('reblogged'), + ConversationMute.where(account_id: account.id, conversation_id: status.conversation_id).arel.exists.as('muted'), + Bookmark.where(account_id: account.id, status_id: status.id).arel.exists.as('bookmarked'), + ] + + if status.account_id == account.id + queries.push( + StatusPin.where(account_id: account.id, status_id: status.id).arel.exists.as('pinned') + ) + end + + flags = Status.connection.select_one(Arel::SelectManager.new.project(queries)) + + payload[:favourited] = flags['favourited'] + payload[:reblogged] = flags['reblogged'] + payload[:muted] = flags['muted'] + payload[:bookmarked] = flags['bookmarked'] + payload[:pinned] = flags['pinned'] if status.account_id == account.id payload[:filtered] = mapped_applied_custom_filter(account, status) payload[:quote_approval][:current_user] = status.quote_policy_for_account(account) if payload[:quote_approval] payload[:quote] = hydrate_quote_payload(payload[:quote], status.quote, account, nested:) if payload[:quote] diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb index caaf476..bf8ed8a 100644 --- a/app/mailers/user_mailer.rb +++ b/app/mailers/user_mailer.rb @@ -235,6 +235,23 @@ class UserMailer < Devise::Mailer end end + def sign_in_token(user, remote_ip, user_agent, timestamp) + @resource = user + @instance = Rails.configuration.x.local_domain + @remote_ip = remote_ip + @user_agent = user_agent + @detection = Browser.new(user_agent) + @timestamp = timestamp.to_time.utc + + return if @resource.disabled? + + I18n.with_locale(@resource.locale || I18n.default_locale) do + mail to: @resource.email, + subject: I18n.t('user_mailer.sign_in_token.subject'), + reply_to: Setting.site_contact_email + end + end + private def default_devise_subject diff --git a/app/models/concerns/user/sign_in_token.rb b/app/models/concerns/user/sign_in_token.rb new file mode 100644 index 0000000..9ac5a17 --- /dev/null +++ b/app/models/concerns/user/sign_in_token.rb @@ -0,0 +1,61 @@ +# frozen_string_literal: true + +module User::SignInToken + extend ActiveSupport::Concern + + # If a user hasn't logged in in this period of time, we consider new attempts suspicious + # and start a security code challenge to verify said user + SUSPICIOUS_INACTIVITY_DURATION = 90.days.freeze + SIGN_IN_TOKEN_DISABLED_KEY = 'user.%d.sign_in_token_disabled' + SIGN_IN_TOKEN_DISABLED_TTL = 96.hours.freeze + + included do + attr_reader :sign_in_token_attempt + end + + # We consider suspicious any log in of users that have been inactive for SUSPICIOUS_INACTIVITY_DURATION + # Users with OTP enabled or that are managed through SSO, LDAP or PAM are not taken into account + def suspicious_inactive_sign_in? + !sign_in_token_disabled? && + !two_factor_enabled? && + encrypted_password? && + current_sign_in_at? && + current_sign_in_at < SUSPICIOUS_INACTIVITY_DURATION.ago + end + + def valid_sign_in_token?(token) + Devise.secure_compare(sign_in_token, token) + end + + def sign_in_token_expired? + sign_in_token_sent_at.nil? || sign_in_token_sent_at < 5.minutes.ago + end + + def generate_sign_in_token + self.sign_in_token = Devise.friendly_token(6) + self.sign_in_token_sent_at = Time.now.utc + end + + def disable_sign_in_token! + self.sign_in_token = nil + self.sign_in_token_sent_at = nil + + redis.set(sign_in_token_disabled_key, true, ex: SIGN_IN_TOKEN_DISABLED_TTL.seconds.to_i) + + save! + end + + def enable_sign_in_token! + redis.del(sign_in_token_disabled_key) + end + + def sign_in_token_disabled? + redis.exists?(sign_in_token_disabled_key) + end + + private + + def sign_in_token_disabled_key + SIGN_IN_TOKEN_DISABLED_KEY % id + end +end diff --git a/app/models/keypair.rb b/app/models/keypair.rb index 48dbc63..07cc5a6 100644 --- a/app/models/keypair.rb +++ b/app/models/keypair.rb @@ -19,6 +19,7 @@ class Keypair < ApplicationRecord include Expireable + include JsonLdHelper self.inheritance_column = nil @@ -34,6 +35,7 @@ class Keypair < ApplicationRecord validates :uri, presence: true, uniqueness: true, if: -> { account.remote? } validates :uri, absence: true, if: -> { account.local? } + validate :validate_uri_origin, if: -> { account.remote? } validates :local_fragment, presence: true, uniqueness: { scope: :account_id }, format: { with: /\A#[A-Z0-9-]+\Z/i }, if: -> { account.local? } validates :local_fragment, absence: true, if: -> { account.remote? } @@ -130,4 +132,10 @@ class Keypair < ApplicationRecord ) end end + + private + + def validate_uri_origin + errors.add(:uri, :cross_origin) if non_matching_uri_hosts?(uri, account.uri) + end end diff --git a/app/models/tag_feed.rb b/app/models/tag_feed.rb index 171fe5e..290dbd5 100644 --- a/app/models/tag_feed.rb +++ b/app/models/tag_feed.rb @@ -30,6 +30,7 @@ class TagFeed < PublicFeed scope.merge!(tagged_with_any_scope) scope.merge!(tagged_with_all_scope) scope.merge!(tagged_with_none_scope) + scope.merge!(tagged_with_cursor_scope(max_id, since_id, min_id)) scope.merge!(local_only_scope) if local_only? scope.merge!(remote_only_scope) if remote_only? scope.merge!(account_filters_scope) if account? @@ -60,6 +61,14 @@ class TagFeed < PublicFeed Status.group(:id).tagged_with_none(tags_for(options[:none])) end + def tagged_with_cursor_scope(max_id, since_id, min_id) + lower_id = min_id.presence || since_id.presence + scope = Status.all + scope = scope.where(statuses_tags: { status_id: ...max_id }) if max_id.present? + scope = scope.where('statuses_tags.status_id > ?', lower_id) if lower_id.present? + scope + end + def tags_for(names) Tag.matching_name(Array(names).take(LIMIT_PER_MODE)).pluck(:id) if names.present? end diff --git a/app/models/user.rb b/app/models/user.rb index 29f2ab3..eef021d 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -59,6 +59,7 @@ class User < ApplicationRecord include User::LdapAuthenticable include User::Omniauthable include User::PamAuthenticable + include User::SignInToken devise :two_factor_authenticatable, otp_secret_length: 32 diff --git a/app/policies/user_policy.rb b/app/policies/user_policy.rb index 6751b8b..09aa150 100644 --- a/app/policies/user_policy.rb +++ b/app/policies/user_policy.rb @@ -13,6 +13,14 @@ class UserPolicy < ApplicationPolicy role.can?(:manage_user_access) && role.overrides?(record.role) end + def disable_sign_in_token? + role.can?(:manage_user_access) && role.overrides?(record.role) + end + + def enable_sign_in_token? + role.can?(:manage_user_access) && role.overrides?(record.role) + end + def change_role? role.can?(:manage_roles) && role.overrides?(record.role) end diff --git a/app/services/activitypub/fetch_featured_tags_collection_service.rb b/app/services/activitypub/fetch_featured_tags_collection_service.rb index 26a2657..2a7fdd0 100644 --- a/app/services/activitypub/fetch_featured_tags_collection_service.rb +++ b/app/services/activitypub/fetch_featured_tags_collection_service.rb @@ -7,7 +7,7 @@ class ActivityPub::FetchFeaturedTagsCollectionService < BaseService return if url.blank? || account.suspended? || account.local? @account = account - @json = fetch_resource(url, true, local_follower) + @json = fetch_resource(url, on_behalf_of: local_follower) return unless supported_context?(@json) diff --git a/app/services/activitypub/fetch_remote_actor_service.rb b/app/services/activitypub/fetch_remote_actor_service.rb index 2c7381d..4138d3d 100644 --- a/app/services/activitypub/fetch_remote_actor_service.rb +++ b/app/services/activitypub/fetch_remote_actor_service.rb @@ -15,7 +15,7 @@ class ActivityPub::FetchRemoteActorService < BaseService @json = begin if prefetched_body.nil? - fetch_resource(uri, true, raise_on_error: :all) + fetch_resource(uri, raise_on_error: :all) else body_to_json(prefetched_body, compare_id: uri) end diff --git a/app/services/activitypub/fetch_remote_featured_collection_service.rb b/app/services/activitypub/fetch_remote_featured_collection_service.rb index 968dc68..9ac4367 100644 --- a/app/services/activitypub/fetch_remote_featured_collection_service.rb +++ b/app/services/activitypub/fetch_remote_featured_collection_service.rb @@ -5,7 +5,7 @@ class ActivityPub::FetchRemoteFeaturedCollectionService < BaseService def call(uri, request_id: nil, prefetched_body: nil, on_behalf_of: nil) json = if prefetched_body.nil? - fetch_resource(uri, true, on_behalf_of) + fetch_resource(uri, on_behalf_of: on_behalf_of) else body_to_json(prefetched_body, compare_id: uri) end diff --git a/app/services/activitypub/fetch_remote_key_service.rb b/app/services/activitypub/fetch_remote_key_service.rb index cd1edff..7ff6056 100644 --- a/app/services/activitypub/fetch_remote_key_service.rb +++ b/app/services/activitypub/fetch_remote_key_service.rb @@ -13,14 +13,14 @@ class ActivityPub::FetchRemoteKeyService < BaseService @suppress_errors = suppress_errors @uri = uri - @json = fetch_resource(uri, false) + @json = fetch_resource(uri, allow_redirects: true) raise Error, "Unable to fetch key JSON at #{uri}" if @json.nil? raise Error, "Unsupported JSON-LD context for document #{uri}" unless supported_context_for_type?(@json) raise Error, "Unexpected object type for key #{uri}" unless expected_type? return keypair_from_actor_json(@json['id'], @json) if actor_type? - @owner = fetch_resource(owner_uri, true) + @owner = fetch_resource(owner_uri) raise Error, "Unable to fetch actor JSON #{owner_uri}" if @owner.nil? raise Error, "Unsupported JSON-LD context for document #{owner_uri}" unless supported_context?(@owner) @@ -45,6 +45,8 @@ class ActivityPub::FetchRemoteKeyService < BaseService end def keypair_from_actor_json(actor_uri, actor_json) + return if non_matching_uri_hosts?(actor_uri, @uri) + actor = find_actor(actor_uri, actor_json) return if actor.nil? diff --git a/app/services/activitypub/fetch_remote_poll_service.rb b/app/services/activitypub/fetch_remote_poll_service.rb index 41b9b2f..9e34ff8 100644 --- a/app/services/activitypub/fetch_remote_poll_service.rb +++ b/app/services/activitypub/fetch_remote_poll_service.rb @@ -4,7 +4,7 @@ class ActivityPub::FetchRemotePollService < BaseService include JsonLdHelper def call(poll, on_behalf_of = nil) - json = fetch_resource(poll.status.uri, true, on_behalf_of) + json = fetch_resource(poll.status.uri, on_behalf_of: on_behalf_of) return unless supported_context?(json) diff --git a/app/services/activitypub/fetch_remote_status_service.rb b/app/services/activitypub/fetch_remote_status_service.rb index 4ef5a65..8cc33aa 100644 --- a/app/services/activitypub/fetch_remote_status_service.rb +++ b/app/services/activitypub/fetch_remote_status_service.rb @@ -14,7 +14,7 @@ class ActivityPub::FetchRemoteStatusService < BaseService @depth = depth || 0 @request_id = request_id || "#{Time.now.utc.to_i}-status-#{uri}" @json = if prefetched_body.nil? - fetch_status(uri, true, on_behalf_of) + fetch_status(uri, on_behalf_of) else body_to_json(prefetched_body, compare_id: uri) end @@ -83,9 +83,9 @@ class ActivityPub::FetchRemoteStatusService < BaseService equals_or_includes_any?(@json['type'], ActivityPub::Activity::Create::SUPPORTED_TYPES + ActivityPub::Activity::Create::CONVERTED_TYPES) end - def fetch_status(uri, id_is_known, on_behalf_of = nil) + def fetch_status(uri, on_behalf_of = nil) begin - fetch_resource(uri, id_is_known, on_behalf_of, raise_on_error: :all) + fetch_resource(uri, on_behalf_of: on_behalf_of, raise_on_error: :all) rescue Mastodon::UnexpectedResponseError => e return unless e.response.code == 404 diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb index 3c08415..b52a44c 100644 --- a/app/services/activitypub/process_account_service.rb +++ b/app/services/activitypub/process_account_service.rb @@ -397,6 +397,7 @@ class ActivityPub::ProcessAccountService < BaseService end key_id = value + next if non_matching_uri_hosts?(@account.uri, key_id) # Key is fetched without ID validation because of a GoToSocial bug value = fetch_resource_without_id_validation(key_id) @@ -405,7 +406,7 @@ class ActivityPub::ProcessAccountService < BaseService # Special handling for GoToSocial which returns the whole actor for the key ID value = first_of_value(value['publicKey']) if value.is_a?(Hash) && value.key?('publicKey') - next unless value['owner'] == @account.uri + next unless value.present? && value['owner'] == @account.uri key = value['publicKeyPem'] next if key.nil? @@ -431,10 +432,11 @@ class ActivityPub::ProcessAccountService < BaseService end key_id = value + next if non_matching_uri_hosts?(@account.uri, key_id) - value = fetch_resource(key_id, true) + value = fetch_resource(key_id) - next unless value['type'] == 'Multikey' && value['controller'] == @account.uri + next unless value.present? && value['type'] == 'Multikey' && value['controller'] == @account.uri key_type, key = key_from_multikey(value['publicKeyMultibase']) next if key_type.nil? || key.nil? diff --git a/app/services/activitypub/process_featured_item_service.rb b/app/services/activitypub/process_featured_item_service.rb index 92e50e2..0897237 100644 --- a/app/services/activitypub/process_featured_item_service.rb +++ b/app/services/activitypub/process_featured_item_service.rb @@ -10,7 +10,7 @@ class ActivityPub::ProcessFeaturedItemService def call(collection, uri_or_object, position: nil, request_id: nil) @collection = collection @request_id = request_id - @item_json = uri_or_object.is_a?(String) ? fetch_resource(uri_or_object, true) : uri_or_object + @item_json = uri_or_object.is_a?(String) ? fetch_resource(uri_or_object) : uri_or_object @actor_uri = value_or_id(@item_json['featuredObject']) @approval_uri = value_or_id(@item_json['featureAuthorization']) return if non_matching_uri_hosts?(@collection.uri, @item_json['id']) @@ -69,7 +69,7 @@ class ActivityPub::ProcessFeaturedItemService return false if local_actor_uri? return false if Account.exists?(uri: @actor_uri) - object_json = fetch_resource(@actor_uri, true, raise_on_error: :temporary) + object_json = fetch_resource(@actor_uri, raise_on_error: :temporary) object_json.nil? || (as_array(object_json['type']) & ActivityPub::FetchRemoteActorService::SUPPORTED_TYPES).empty? end diff --git a/app/services/activitypub/verify_featured_item_service.rb b/app/services/activitypub/verify_featured_item_service.rb index a626874..7baedc3 100644 --- a/app/services/activitypub/verify_featured_item_service.rb +++ b/app/services/activitypub/verify_featured_item_service.rb @@ -5,7 +5,7 @@ class ActivityPub::VerifyFeaturedItemService def call(collection_item, approval_uri, request_id: nil) @collection_item = collection_item - @authorization = fetch_resource(approval_uri, true, raise_on_error: :temporary) + @authorization = fetch_resource(approval_uri, raise_on_error: :temporary) if @authorization.nil? @collection_item.update!(state: :rejected) diff --git a/app/services/activitypub/verify_quote_service.rb b/app/services/activitypub/verify_quote_service.rb index 095e416..27d116f 100644 --- a/app/services/activitypub/verify_quote_service.rb +++ b/app/services/activitypub/verify_quote_service.rb @@ -52,7 +52,7 @@ class ActivityPub::VerifyQuoteService < BaseService def fetch_approval_object(uri, prefetched_body: nil) if prefetched_body.nil? - fetch_resource(uri, true, @quote.account.followers.local.first, raise_on_error: :temporary) + fetch_resource(uri, on_behalf_of: @quote.account.followers.local.first, raise_on_error: :temporary) else body_to_json(prefetched_body, compare_id: uri) end diff --git a/app/services/fetch_resource_service.rb b/app/services/fetch_resource_service.rb index eb3d000..61a5e83 100644 --- a/app/services/fetch_resource_service.rb +++ b/app/services/fetch_resource_service.rb @@ -22,11 +22,14 @@ class FetchResourceService < BaseService def process(url, terminal: false) @url = url - perform_request { |response| process_response(response, terminal:) } + perform_request(allow_redirects: !terminal) { |response| process_response(response, terminal:) } end - def perform_request(&block) - Request.new(:get, @url).tap do |request| + def perform_request(allow_redirects: true, &block) + options = {} + options[:follow] = false unless allow_redirects + + Request.new(:get, @url, **options).tap do |request| request.add_headers('Accept' => ACCEPT_HEADER) # In a real setting we want to sign all outgoing requests, @@ -50,7 +53,7 @@ class FetchResourceService < BaseService return unless supported_context?(json) && (equals_or_includes_any?(json['type'], ActivityPub::FetchRemoteActorService::SUPPORTED_TYPES) || expected_type?(json)) - if json['id'] != @url + if json['id'] != @url || json['id'] != response.uri.to_s return if terminal return process(json['id'], terminal: true) diff --git a/app/services/revoke_collection_item_service.rb b/app/services/revoke_collection_item_service.rb index a5222d2..fa314fb 100644 --- a/app/services/revoke_collection_item_service.rb +++ b/app/services/revoke_collection_item_service.rb @@ -10,13 +10,13 @@ class RevokeCollectionItemService < BaseService @collection_item.revoke! - distribute_stamp_deletion! if @collection_item.remote? + distribute_stamp_deletion! end private def distribute_stamp_deletion! - ActivityPub::DeliveryWorker.perform_async(signed_activity_json, @account.id, @collection.account.inbox_url) + ActivityPub::DeliveryWorker.perform_async(signed_activity_json, @account.id, @collection.account.inbox_url) if @collection_item.remote? ActivityPub::CollectionRawDistributionWorker.perform_async(signed_activity_json, @collection.id) end diff --git a/app/views/admin/accounts/_local_account.html.haml b/app/views/admin/accounts/_local_account.html.haml index bff7523..21c6feb 100644 --- a/app/views/admin/accounts/_local_account.html.haml +++ b/app/views/admin/accounts/_local_account.html.haml @@ -46,9 +46,15 @@ = t 'admin.accounts.security_measures.password_and_2fa' - else = t 'admin.accounts.security_measures.only_password' - %td - - if account.user&.two_factor_enabled? && can?(:disable_2fa, account.user) + - if account.user&.two_factor_enabled? && can?(:disable_2fa, account.user) + %td = table_link_to 'lock_open', t('admin.accounts.disable_two_factor_authentication'), admin_user_two_factor_authentication_path(account.user.id), method: :delete + - elsif account.user&.suspicious_inactive_sign_in? && can?(:disable_sign_in_token, account.user) + %td + = table_link_to 'lock_open', t('admin.accounts.disable_sign_in_token'), admin_user_sign_in_token_authentication_path(account.user.id), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') } + - elsif account.user&.sign_in_token_disabled? && can?(:enable_sign_in_token, account.user) + %td + = table_link_to 'lock', t('admin.accounts.enable_sign_in_token'), admin_user_sign_in_token_authentication_path(account.user.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } - if can?(:reset_password, account.user) %tr %td diff --git a/app/views/auth/sessions/sign_in_token.html.haml b/app/views/auth/sessions/sign_in_token.html.haml new file mode 100644 index 0000000..0153679 --- /dev/null +++ b/app/views/auth/sessions/sign_in_token.html.haml @@ -0,0 +1,24 @@ +- content_for :page_title do + = t('auth.login') + += simple_form_for(resource, + as: resource_name, + url: session_path(resource_name), + method: :post) do |f| + %h1.title= t('users.inactive_sign_in_title') + %p.lead= t('users.inactive_sign_in_confirmation') + + .fields-group + = f.input :sign_in_token_attempt, + wrapper: :with_label, + label: t('simple_form.labels.defaults.sign_in_token_attempt'), + input_html: { 'aria-label' => t('simple_form.labels.defaults.sign_in_token_attempt'), :autocomplete => 'off' }, + required: true, + autofocus: true + + .actions + = f.button :button, t('simple_form.labels.defaults.sign_in_token_resend'), type: :submit, name: :sign_in_token_resend, class: 'secondary' + = f.button :button, t('auth.login'), type: :submit + + - if Setting.site_contact_email.present? + %p.hint.subtle-hint= t('users.generic_access_help_html', email: mail_to(Setting.site_contact_email, nil)) diff --git a/app/views/user_mailer/sign_in_token.html.haml b/app/views/user_mailer/sign_in_token.html.haml new file mode 100644 index 0000000..9c83c70 --- /dev/null +++ b/app/views/user_mailer/sign_in_token.html.haml @@ -0,0 +1,32 @@ += content_for :heading do + = render 'application/mailer/heading', + image_url: frontend_asset_url('images/mailer-new/heading/login.png'), + subtitle: t('user_mailer.sign_in_token.explanation'), + title: t('user_mailer.sign_in_token.title') +%table.email-w-full{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' } + %tr + %td.email-body-padding-td + %table.email-inner-card-table{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' } + %tr + %td.email-inner-card-td.email-prose + %table.email-w-full{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' } + %tr + %td.email-frame-wrapper-td + = render 'application/mailer/frame', text: tag.strong(@resource.sign_in_token) + %p= t 'user_mailer.sign_in_token.details' + %p + %strong #{t('sessions.ip')}: + = @remote_ip + %br/ + %strong #{t('sessions.browser')}: + %span{ title: @user_agent } + = t 'sessions.description', + browser: t("sessions.browsers.#{@detection.id}", default: @detection.id.to_s), + platform: t("sessions.platforms.#{@detection.platform.id}", default: @detection.platform.id.to_s) + %br/ + %strong #{t('sessions.date')}: + = l(@timestamp.in_time_zone(@resource.time_zone.presence), format: :with_time_zone) + = render 'application/mailer/button', text: t('settings.account_settings'), url: edit_user_registration_url + + %p= t 'user_mailer.sign_in_token.further_actions_html', + action: link_to(t('user_mailer.sign_in_token.change_password'), edit_user_registration_url) diff --git a/app/views/user_mailer/sign_in_token.text.erb b/app/views/user_mailer/sign_in_token.text.erb new file mode 100644 index 0000000..2539dda --- /dev/null +++ b/app/views/user_mailer/sign_in_token.text.erb @@ -0,0 +1,17 @@ +<%= t 'user_mailer.sign_in_token.title' %> + +=== + +<%= t 'user_mailer.sign_in_token.explanation' %> + +=> <%= @resource.sign_in_token %> + +<%= t 'user_mailer.sign_in_token.details' %> + +<%= t('sessions.ip') %>: <%= @remote_ip %> +<%= t('sessions.browser') %>: <%= t('sessions.description', browser: t("sessions.browsers.#{@detection.id}", default: "#{@detection.id}"), platform: t("sessions.platforms.#{@detection.platform.id}", default: "#{@detection.platform.id}")) %> +<%= l(@timestamp) %> + +<%= t 'user_mailer.sign_in_token.further_actions' %> + +=> <%= edit_user_registration_url %> diff --git a/app/workers/activitypub/fetch_all_replies_worker.rb b/app/workers/activitypub/fetch_all_replies_worker.rb index 73f2caa..02017ff 100644 --- a/app/workers/activitypub/fetch_all_replies_worker.rb +++ b/app/workers/activitypub/fetch_all_replies_worker.rb @@ -69,7 +69,7 @@ class ActivityPub::FetchAllRepliesWorker # @param parent_status [String, Hash] # status URI, or the prefetched body of the Note object def get_replies_uri(parent_status) - resource = parent_status.is_a?(Hash) ? parent_status : fetch_resource(parent_status, true) + resource = parent_status.is_a?(Hash) ? parent_status : fetch_resource(parent_status) resource&.fetch('replies', nil) rescue => e Rails.logger.info { "FetchAllRepliesWorker - #{@root_status.uri}: Caught exception while resolving replies URI #{parent_status}: #{e} - #{e.message}" } @@ -83,7 +83,7 @@ class ActivityPub::FetchAllRepliesWorker # # @param root_status_uri [String] def get_root_replies(root_status_uri, options = {}) - root_status_body = fetch_resource(root_status_uri, true) + root_status_body = fetch_resource(root_status_uri) return if root_status_body.nil? diff --git a/app/workers/scheduler/repair_remote_collections_scheduler.rb b/app/workers/scheduler/repair_remote_collections_scheduler.rb index 52ed03e..5c6f469 100644 --- a/app/workers/scheduler/repair_remote_collections_scheduler.rb +++ b/app/workers/scheduler/repair_remote_collections_scheduler.rb @@ -18,7 +18,7 @@ class Scheduler::RepairRemoteCollectionsScheduler successful = true affected_collections.find_each do |collection| - json = fetch_resource(collection.uri, true) + json = fetch_resource(collection.uri) if json.nil? || !json.is_a?(Hash) || !json.key?('attributedTo') successful = false next diff --git a/config/locales/be.yml b/config/locales/be.yml index 62fcc3d..5e98b0d 100644 --- a/config/locales/be.yml +++ b/config/locales/be.yml @@ -75,6 +75,7 @@ be: demote: Панізіць у правах destroyed_msg: Даныя %{username} цяпер у чарзе на прымусовае выдаленне disable: Замарозіць + disable_sign_in_token: Часовы адключыць праверку кодам бяспекі disable_sign_in_token_auth: Выключыць аўтэнтыфікацыю па токену эл. пошты disable_two_factor_authentication: Адключыць 2FA disabled: Замарожаны @@ -84,6 +85,7 @@ be: email: Электронная пошта email_status: Статус электроннай пошты enable: Размарозіць + enable_sign_in_token: Уключыць праверку кодам бяспекі enable_sign_in_token_auth: Уключыць аўтэнтыфікацыю па токену эл. пошты enabled: Уключана enabled_msg: Уліковы запіс %{username} размарожаны @@ -901,7 +903,7 @@ be: delete: Выдаліць description_html: З дапамогай роляў карыстальнікаў вы можаце наладзіць, да якіх функцый і абласцей Mastodon будуць мець доступ вашы карыстальнікі. edit: Рэдагаваць ролю "%{name}" - everyone: Дазволы па змаўчанні + everyone: Прадвызначаныя дазволы everyone_full_description_html: Гэта базавая роля, якая ўплывае на ўсіх карыстальнікаў, нават без прызначанай ролі. Усе астатнія ролі ўспадкоўваюць ад яго дазволы. permissions_count: few: "%{count} дазволы" @@ -1538,8 +1540,11 @@ be: deletes: challenge_not_passed: Уведзеная інфармацыя няправільная confirm_password: Увядзіце свой бягучы пароль, каб пацвердзіць сваю асобу + confirm_username: Пацвердзіце імя карыстальніка + confirm_username_hint_html: Калі ласка, увядзіце %{username}, каб пацвердзіць, што Вы збіраецеся выдаліць гэты ўліковы запіс proceed: Выдаліць уліковы запіс success_msg: Ваш уліковы запіс быў паспяхова выдалены + title: Выдаліць уліковы запіс %{acct} warning: before: 'Перш чым працягнуць, уважліва прачытайце гэтыя заўвагі:' caches: Змесціва, кэшаванае іншымі серверамі, можа захавацца @@ -2067,10 +2072,10 @@ be: too_many_options: колькасць варыянтаў не можа перавышаць %{max} vote: Прагаласаваць posting_defaults: - explanation: Гэтыя налады будуць ужывацца па змаўчанні, калі Вы будзеце ствараць новыя допісы, але Вы зможаце змяняць іх для кожнага допісу ў акне для напісання. + explanation: Гэтыя налады будуць прадвызначанымі, калі Вы будзеце ствараць новыя допісы, але Вы зможаце змяняць іх для кожнага допісу ў акне для напісання. preferences: other: Іншае - posting_defaults: Публікаваць па змаўчанні + posting_defaults: Стандарты допісаў public_timelines: Публічныя стужкі privacy: email_subscriptions: Дасылаць допісы праз электронную пошту @@ -2394,6 +2399,14 @@ be: further_actions_html: Калі гэта не вы, мы рэкамендуем неадкладна %{action}, бо ён можа быць скампраметаваны. subject: Збой двухфактарнай аўтэнтыфікацыі title: Двухфактарная аўтэнтыфікацыя не ўдалася + sign_in_token: + change_password: змяніце свой пароль + details: 'Вось падрабязнасці аб уваходзе:' + explanation: 'Мы выявілі спробу ўвайсці ў Ваш уліковы запіс пасля доўгага часу яго бяздзейнасці. Калі гэта Вы, то, калі ласка, увядзіце код бяспекі знізу на старонцы пацвярджэння ўваходу:' + further_actions: 'Калі гэта былі не Вы, то, калі ласка, змяніце свой пароль і ўключыце двухфактарную праверку сапраўднасці ў сваім уліковым запісе. Вы можаце зрабіце гэта тут:' + further_actions_html: Калі гэта былі не Вы, то раім Вам неадкладна %{action} і ўключыць двухфактарную праверку сапраўднасці, каб захаваць у бяспецы свой уліковы запіс. + subject: Калі ласка, пацвердзіце спробу ўваходу + title: Спроба ўваходу suspicious_sign_in: change_password: змяніць свой пароль details: 'Вось падрабязнасці ўваходу:' @@ -2485,8 +2498,12 @@ be: title: Рады вітаць вас, %{name}! users: follow_limit_reached: Вы не можаце падпісацца на большую колькасць людзей чым %{limit} + generic_access_help_html: Цяжкасці з доступам да ўліковага запісу? Можаце звярнуцца праз %{email}, каб атрымаць дапамогу go_to_sso_account_settings: Перайдзіце ў налады ідэнтыфікацыі вашага ўліковага запісу + inactive_sign_in_confirmation: Прайшоў пэўны час з Вашага апошняга ўваходу, таму мы дасылаем код бяспекі на Вашу электронную пошту, каб упэўніцца, што гэта Вы. + inactive_sign_in_title: Калі ласка, пацвердзіце код бяспекі invalid_otp_token: Няправільны код двухфактарнай аўтэнтыфікацыі + invalid_sign_in_token: Няправільны код бяспекі otp_lost_help_html: Калі вы страцілі доступ да абодвух, вы можаце звязацца з намі праз %{email} rate_limited: Занадта шмат спробаў аўтэнтыфікацыі, паспрабуйце пазней. seamless_external_login: Вы ўвайшлі праз знешні сэрвіс, таму налады пароля і эл. пошты недаступныя. diff --git a/config/locales/cy.yml b/config/locales/cy.yml index c0d6b3d..60aebe7 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -81,6 +81,7 @@ cy: demote: Diraddio destroyed_msg: Mae data %{username} bellach mewn ciw i gael ei ddileu yn fuan disable: Rhewi + disable_sign_in_token: Analluogi her cod diogelwch dros dro disable_sign_in_token_auth: Analluogi dilysu tocyn e-bost disable_two_factor_authentication: Diffodd 2FA disabled: Wedi rhewi @@ -90,6 +91,7 @@ cy: email: E-bost email_status: Statws e-bost enable: Dadrewi + enable_sign_in_token: Galluogi her cod diogelwch enable_sign_in_token_auth: Galluogi dilysu tocyn e-bost enabled: Wedi ei alluogi enabled_msg: Wedi dadrewi cyfrif %{username} yn llwyddiannus @@ -216,6 +218,7 @@ cy: create_user_role: Creu Rôl create_username_block: Creu Rheol Enw Defnyddiwr demote_user: Diraddio Defnyddiwr + destroy_account: Dileu Data Cyfrif destroy_announcement: Dileu Cyhoeddiad destroy_canonical_email_block: Dileu Rhwystr E-bost destroy_custom_emoji: Dileu Emoji Addasedig @@ -284,6 +287,7 @@ cy: create_user_role_html: Mae %{name} wedi creu rôl %{target} create_username_block_html: Mae %{name} wedi ychwanegu rheol ar gyfer enwau defnyddwyr sy'n cynnwys %{target} demote_user_html: Mae %{name} wedi israddio defnyddiwr %{target} + destroy_account_html: Mae %{name} wedi dileu data cyfrif ar gyfer %{target} destroy_announcement_html: Mae %{name} wedi dileu cyhoeddiad %{target} destroy_canonical_email_block_html: Mae %{name} wedi dad-rwystro parth e-bost %{target} destroy_collection_html: Mae %{name} wedi tynnu casgliad gan %{target} @@ -1578,8 +1582,11 @@ cy: deletes: challenge_not_passed: Nid oedd y wybodaeth a roesoch yn gywir confirm_password: Mewnbynnwch eich cyfrinair presennol i gadarnhau mai chi sydd yno + confirm_username: Cadarnhau enw defnyddiwr + confirm_username_hint_html: Teipiwch %{username} i gadarnhau'r cyfrif rydych chi am ei ddileu proceed: Dileu cyfrif success_msg: Llwyddwyd i ddileu eich cyfrif + title: Dileu cyfrif %{acct} warning: before: 'Cyn bwrw ymlaen, darllenwch y nodiadau hyn yn ofalus:' caches: Efallai bydd cynnwys sydd wedi'i storio dros dro gan weinyddion eraill yn parhau @@ -1808,6 +1815,7 @@ cy: incompatible_type: Nid yw'n gydnaws â'r math mewnforio a ddewiswyd invalid_csv_file: 'Ffeil CSV annilys. Gwall: %{error}' invalid_json_file: 'Ffeil JSON annilys. Gwall: %{error}' + no_data: Dyw'r ffeil hon ddim yn cynnwys unrhyw ddata sy'n cyfateb i'r math mewnforio sy'n cael ei roi over_rows_processing_limit: yn cynnwys mwy na %{count} o resi status_not_found_warning: Mae rhai o'ch hidlau yn cuddio postiadau penodol nad yw'r gweinydd hwn yn eu hadnabod. Fydd y cofnodion hyn ddim yn cael eu hidlo'n awtomatig os fyddan nhw'n cael eu darganfod yn ddiweddarach gan y gweinydd. too_large: Mae'r ffeil yn rhy fawr @@ -2489,6 +2497,14 @@ cy: further_actions_html: Os nad chi oedd hwn, rydym yn argymell eich bod yn %{action} ar unwaith oherwydd gall fod o dan fygythiad. subject: Methiant dilysu ail ffactor title: Wedi methu dilysu ail ffactor + sign_in_token: + change_password: newidiwch eich cyfrinair + details: 'Dyma fanylion yr ymgais:' + explanation: 'Rydym weddi canfod ymgais i fewngofnodi i''ch cyfrif ar ôl cyfnod hir o anweithgarwch. Os mai chi yw hwn, nodwch y cod diogelwch isod ar y dudalen her mewngofnodi:' + further_actions: 'Os nad chi oedd hyn, newidiwch eich cyfrinair a galluogwch ddilysu dau ffactor ar eich cyfrif. Gallwch wneud hynny yma:' + further_actions_html: Os nad chi oedd hyn, rydym yn argymell eich bod yn %{action} ar unwaith ac yn galluogi dilysu dau ffactor i gadw'ch cyfrif yn ddiogel. + subject: Cadarnhewch yr ymgais i fewngofnodi + title: Ymgais mewngofnodi suspicious_sign_in: change_password: newidiwch eich cyfrinair details: 'Dyma fanylion y mewngofnodi:' @@ -2582,8 +2598,12 @@ cy: title: Croeso, %{name}! users: follow_limit_reached: Nid oes modd i chi ddilyn mwy na %{limit} o bobl + generic_access_help_html: Problemau wrth gael mynediad i'ch cyfrif? Gallwch gysylltu â %{email} am gymorth go_to_sso_account_settings: Ewch i osodiadau cyfrif eich darparwr hunaniaeth + inactive_sign_in_confirmation: Mae hi wedi bod yn amser ers i chi fewngofnodi, felly rydym yn anfon cod diogelwch i'ch cyfeiriad e-bost i gadarnhau mai chi ydyw. + inactive_sign_in_title: Cadarnhewch y cod diogelwch invalid_otp_token: Côd dau-ffactor annilys + invalid_sign_in_token: Cod diogelwch annilys otp_lost_help_html: Os colloch chi fynediad i'r ddau, mae modd i chi gysylltu a %{email} rate_limited: Gormod o geisiadau dilysu, ceisiwch eto yn nes ymlaen. seamless_external_login: Rydych chi wedi mewngofnodi trwy wasanaeth allanol, felly nid yw gosodiadau cyfrinair ac e-bost ar gael. diff --git a/config/locales/da.yml b/config/locales/da.yml index 49e6599..6cf1797 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -69,6 +69,7 @@ da: demote: Degradér destroyed_msg: "%{username}s data er nu sat i kø mhp. snarlig sletning" disable: Frys + disable_sign_in_token: Deaktivér midlertidigt sikkerhedskode-udfordring disable_sign_in_token_auth: Deaktivér e-mailtoken godkendelse disable_two_factor_authentication: Deaktivér 2FA disabled: Frosset @@ -78,6 +79,7 @@ da: email: E-mail email_status: E-mailstatus enable: Optø + enable_sign_in_token: Aktiver sikkerhedskode-udfordring enable_sign_in_token_auth: Aktivér e-mailtoken godkendelse enabled: Aktiveret enabled_msg: "%{username}s konto er optøet" @@ -454,7 +456,7 @@ da: remove_all_data: Dette vil fjerne alt indhold, medier og profildata for dette domænes konti fra din server. stop_communication: Din server vil stoppe kommunikationen med disse servere. title: Bekræft blokering af domænet %{domain} - undo_relationships: Dette vil ophæve ethvert følgeforhold mellem konti på disse servere og dine. + undo_relationships: Dette vil ophæve ethver følgerelation mellem konti på disse servere og dine. created_msg: Domæneblokering under behandling destroyed_msg: Domæneblokering er blevet fjernet domain: Domæne @@ -1891,7 +1893,7 @@ da: summary_html: Du bruger en app, der ikke understøtter den seneste version af Mastodon. %{link}. title: Du har modtaget en moderationsadvarsel. severed_relationships: - summary_html: En administrator fra %{from} har suspenderet %{target}, hvilket betyder, at du ikke længere kan modtage opdateringer fra dem eller interagere med dem. %{link} for at hente en liste over de tabte forhold. + summary_html: En administrator fra %{from} har suspenderet %{target}, hvilket betyder, at du ikke længere kan modtage opdateringer fra dem eller interagere med dem. %{link} for at hente en liste over de mistede relationer. title: Mistede forbindelser med %{name} notification_mailer: admin: @@ -2107,7 +2109,7 @@ da: preferences: Præferencer profile: Offentlig profil relationships: Følger og følgere - severed_relationships: Afbrudte forhold + severed_relationships: Afbrudte relationer statuses_cleanup: Automatiseret sletning af indlæg strikes: Moderationsadvarsler two_factor_authentication: Tofaktorgodkendelse @@ -2120,7 +2122,7 @@ da: user_domain_block: "%{target_name} blev blokeret" lost_followers: Mistet følgere lost_follows: Mistet fulgte - preamble: Du kan miste fulgte og følgere, når du blokerer et domæne, eller når dine moderatorer beslutter at suspendere en fjernserver. Når det sker, kan du downloade lister over afbrudte forhold til inspektion og eventuelt import til en anden server. + preamble: Du kan miste fulgte og følgere, når du blokerer et domæne, eller når dine moderatorer beslutter at suspendere en fjernserver. Når det sker, kan du downloade lister over afbrudte relationer til inspektion og eventuelt import til en anden server. purged: Oplysninger om denne server er blevet renset af serveradministratoreren. type: Begivenhed statuses: @@ -2299,6 +2301,14 @@ da: further_actions_html: Var dette ikke dig, anbefales det straks at %{action}, da den kan være kompromitteret. subject: Anden faktor godkendelsesfejl title: Fejlede på anden faktor godkendelse + sign_in_token: + change_password: ændrer din adgangskode + details: 'Her er nogle detaljer om forsøget:' + explanation: 'Vi har registreret et forsøg på at logge ind på din konto efter lang tids inaktivitet. Hvis det er dig, bedes du indtaste sikkerhedskoden nedenfor på siden for login-udfordringen:' + further_actions: 'Hvis det ikke var dig, så ændr din adgangskode og aktiver tofaktor-godkendelse på din konto. Det kan du gøre her:' + further_actions_html: Hvis dette ikke var dig, anbefaler vi, at du straks %{action} og aktiverer to-faktor-godkendelse for at holde din konto sikker. + subject: Bekræft indlogningsforsøg + title: Indlogningsforsøg suspicious_sign_in: change_password: ændrer din adgangskode details: 'Her er nogle detaljer om login-forsøget:' @@ -2388,8 +2398,12 @@ da: title: Velkommen ombord, %{name}! users: follow_limit_reached: Du kan maks. følge %{limit} personer + generic_access_help_html: Problemer med at tilgå din konto? Du kan kontakte %{email} for hjælp go_to_sso_account_settings: Gå til din identitetsudbyders kontoindstillinger + inactive_sign_in_confirmation: Det er længe siden, du loggede ind, så vi sender en sikkerhedskode til din e-mailadresse for at bekræfte, at det er dig. + inactive_sign_in_title: Bekræft venligst sikkerhedskode invalid_otp_token: Ugyldig tofaktorkode + invalid_sign_in_token: Ugyldig sikkerhedskode otp_lost_help_html: Har du mistet adgang til begge, kan du kontakte %{email} rate_limited: For mange godkendelsesforsøg. Prøv igen senere. seamless_external_login: Adgangskode- og e-mailindstillinger er utilgængelige, da der er logget ind via en ekstern tjeneste. diff --git a/config/locales/de.yml b/config/locales/de.yml index 4f54a8f..8ba32a9 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -69,6 +69,7 @@ de: demote: Zurückstufen destroyed_msg: Die Daten von %{username} befinden sich nun in der Warteschlange und werden in Kürze gelöscht disable: Einfrieren + disable_sign_in_token: Sicherheitscode für die Anmeldung vorübergehend deaktivieren disable_sign_in_token_auth: E-Mail-Token-Authentisierung deaktivieren disable_two_factor_authentication: Zwei-Faktor-Authentisierung (2FA) deaktivieren disabled: Eingefroren @@ -78,6 +79,7 @@ de: email: E-Mail-Adresse email_status: Status der E-Mail-Adresse enable: Freischalten + enable_sign_in_token: Sicherheitscode für die Anmeldung aktivieren enable_sign_in_token_auth: E-Mail-Token-Authentisierung aktivieren enabled: Freigegeben enabled_msg: Konto von %{username} erfolgreich freigegeben @@ -250,7 +252,7 @@ de: update_user_role: Rolle bearbeiten update_username_block: Regel für Profilnamen aktualisieren actions: - approve_appeal_html: "%{name} genehmigte den Einspruch gegen eine Moderationsentscheidung von %{target}" + approve_appeal_html: "%{name} genehmigte den Einspruch gegen eine Moderationsmaßnahme von %{target}" approve_user_html: "%{name} genehmigte die Registrierung von %{target}" assigned_to_self_report_html: "%{name} wies sich die Meldung %{target} selbst zu" change_email_user_html: "%{name} änderte die E-Mail-Adresse von %{target}" @@ -300,7 +302,7 @@ de: not_usable_tag_html: darf nicht verwendet werden promote_user_html: "%{name} beförderte %{target}" publish_terms_of_service_html: "%{name} aktualisierte die Nutzungsbedingungen" - reject_appeal_html: "%{name} lehnte den Einspruch gegen eine Moderationsentscheidung von %{target} ab" + reject_appeal_html: "%{name} lehnte den Einspruch gegen eine Moderationsmaßnahme von %{target} ab" reject_user_html: "%{name} hat die Registrierung von %{target} abgelehnt" remove_avatar_user_html: "%{name} entfernte das Profilbild von %{target}" reopen_report_html: "%{name} öffnete die Meldung %{target} wieder" @@ -508,7 +510,7 @@ de: resolved_dns_records_hint_html: Die Domain wird zu den folgenden MX-Domains aufgelöst, die für die Annahme von E-Mails zuständig sind. Das Sperren einer MX-Domain sperrt Anmeldungen aller E-Mail-Adressen, die dieselbe MX-Domain verwenden, auch wenn die sichtbare Domain anders lautet. Achte daher darauf, keine großen E-Mail-Anbieter versehentlich zu sperren. resolved_through_html: Durch %{domain} aufgelöst search: Suchen - title: Gesperrte E-Mail-Domains + title: E-Mail-Domains email_subscriptions: accounts: account: Konto @@ -2300,6 +2302,14 @@ de: further_actions_html: Solltest du das nicht gewesen sein, empfehlen wir dir, sofort %{action}, da dein Konto möglicherweise kompromittiert ist. subject: Zwei-Faktor-Authentisierung fehlgeschlagen title: Zwei-Faktor-Authentisierung fehlgeschlagen + sign_in_token: + change_password: dein Passwort zu ändern + details: 'Details zum Anmeldeversuch:' + explanation: 'Du hast dich nach längerer Zeit wieder in dein Konto angemeldet. Um sicherzugehen, dass du das warst, gib den unten aufgeführten Sicherheitscode bei der Anmeldung an:' + further_actions: 'Wenn du dich nicht angemeldet hast, ändere dein Passwort und aktiviere die Zwei-Faktor-Authentisierung für dein Konto:' + further_actions_html: Wenn du dich nicht angemeldet hast, empfehlen wir dir schnellstmöglich, %{action} und die Zwei-Faktor-Authentisierung für dein Konto zu aktivieren, um es abzusichern. + subject: Bitte bestätige deinen Anmeldeversuch + title: Anmeldeversuch suspicious_sign_in: change_password: dein Passwort zu ändern details: 'Hier sind die Details zu den Anmeldeversuchen:' @@ -2389,8 +2399,12 @@ de: title: Willkommen an Bord, %{name}! users: follow_limit_reached: Du kannst nicht mehr als %{limit} Profilen folgen + generic_access_help_html: Falls du Probleme hast, auf dein Konto zuzugreifen, tritt bitte mit uns über die E-Mail %{email} in Kontakt go_to_sso_account_settings: Kontoeinstellungen des Identitätsanbieters aufrufen + inactive_sign_in_confirmation: Du hast dich nach längerer Zeit wieder in dein Konto angemeldet. Um einen unbefugten Zugriff zu erschweren, haben wir einen Sicherheitscode an deine E-Mail-Adresse verschickt. + inactive_sign_in_title: Sicherheitscode bestätigen invalid_otp_token: Ungültiger Code der Zwei-Faktor-Authentisierung (2FA) + invalid_sign_in_token: Ungültiger Sicherheitscode otp_lost_help_html: Wenn du sowohl die E-Mail-Adresse als auch das Passwort nicht mehr weißt, melde dich bitte bei uns unter %{email} rate_limited: Zu viele Authentisierungsversuche. Bitte versuche es später noch einmal. seamless_external_login: Du bist über einen externen Dienst angemeldet, daher sind Passwort- und E-Mail-Einstellungen nicht verfügbar. diff --git a/config/locales/devise.eo.yml b/config/locales/devise.eo.yml index 063b870..ba271a8 100644 --- a/config/locales/devise.eo.yml +++ b/config/locales/devise.eo.yml @@ -7,6 +7,7 @@ eo: send_paranoid_instructions: Se via retadreso ekzistas en nia datumbazo, vi ricevos retmesaĝon kun instrukcioj por konfirmi vian retadreson ene de kelkaj minutoj. Bonvolu kontroli vian spamujon se vi ne ricevis ĉi tiun retmesaĝon. failure: already_authenticated: Vi jam ensalutis. + closed_registrations: Via provo registriĝi estis barita pro reta politiko. Se vi kredas, ke ĉi tio estas eraro, kontakti kun %{email}. inactive: Via konto ankoraŭ ne estas konfirmita. invalid: Nevalida %{authentication_keys} aŭ pasvorto. last_attempt: Vi ankoraŭ povas provi unufoje antaŭ ol via konto estos ŝlosita. diff --git a/config/locales/devise.he.yml b/config/locales/devise.he.yml index 2230b3f..ddfbc9e 100644 --- a/config/locales/devise.he.yml +++ b/config/locales/devise.he.yml @@ -86,7 +86,7 @@ he: title: מפתחות אבטחה אופשרו omniauth_callbacks: failure: 'לא ניתן לאמת את חשבונך מ־%{kind} מהסיבה: "%{reason}".' - success: נכשל אימות מחשבון %{kind}. + success: נכנסת לחשבון בהצלחה באמצעות %{kind}. passwords: no_token: לא ניתן לגשת לעמוד זה, אלא מדוא"ל איפוס סיסמה. אם הגעת מדוא"ל איפוס סיסמה, יש לוודא שכתובת הקישורית הוקלדה בשלמותה. send_instructions: בדקות הקרובות יתקבל דוא"ל עם הוראות לאיפוס סיסמתך. יש לבדוק את תיבת הספאם ליתר בטחון אם ההודעה לא הגיעה תוך דקות ספורות. diff --git a/config/locales/devise.hu.yml b/config/locales/devise.hu.yml index 3928b9f..868883e 100644 --- a/config/locales/devise.hu.yml +++ b/config/locales/devise.hu.yml @@ -49,19 +49,19 @@ hu: subject: 'Mastodon: Jelszóvisszaállítási utasítások' title: Jelszó visszaállítása two_factor_disabled: - explanation: A bejelentkezés most már csupán email címmel és jelszóval lehetséges. + explanation: A bejelentkezés most már csupán e-mail-címmel és jelszóval lehetséges. subject: 'Mastodon: kétlépcsős hitelesítés letiltva' subtitle: A kétlépcsős hitelesítés a fiókodhoz ki lett kapcsolva. title: Kétlépcsős hitelesítés kikapcsolva two_factor_enabled: - explanation: Egy párosított TOTP appal generált tokenre lesz szükség a bejelentkezéshez. + explanation: A párosított TOTP-alkalmazással előállított tokenre lesz szükség a bejelentkezéshez. subject: 'Mastodon: kétlépcsős hitelesítés engedélyezve' subtitle: A kétlépcsős hitelesítés a fiókodhoz aktiválva lett. title: Kétlépcsős hitelesítés engedélyezve two_factor_recovery_codes_changed: explanation: A korábbi helyreállítási kódok letiltásra és újragenerálásra kerültek. - subject: 'Mastodon: Kétlépcsős helyreállítási kódok újból előállítva' - subtitle: A korábbi helyreállítási kódokat letiltottuk, és újakat generáltunk. + subject: 'Mastodon: Kétlépcsős tartalék bejelentkezési kódok újból előállítva' + subtitle: A korábbi tartalék bejelentkezési kódokat letiltottuk, és újakat állítottunk elő. title: A kétlépcsős kódok megváltoztak unlock_instructions: subject: 'Mastodon: Feloldási utasítások' diff --git a/config/locales/devise.kab.yml b/config/locales/devise.kab.yml index 1628643..e5fcc8a 100644 --- a/config/locales/devise.kab.yml +++ b/config/locales/devise.kab.yml @@ -21,7 +21,7 @@ kab: confirmation_instructions: action: Senqed tansa-inek imayl action_with_app: Sentem sakkin uɣal ɣer %{app} - explanation: Aqla-k terniḍ amiḍan deg %{host} s tansa imayl-agi. Mazal-ak yiwen utekki akken ad t-tremdeḍ. Ma mačči d kečč i yessutren ay-agi, ttxil-k ssinef izen-a. + explanation: Aqla-k tesnulfaḍ-d amiḍan deg %{host} s tansa imayl-a. Mazal-ak yiwen utekki akken ad tt-tremdeḍ. Ma mačči d kečč i yessutren aya, ttxil-k zgel izen-a. explanation_when_pending: Tsutreḍ-d ajerred deg %{host} s tansa-agi imayl. Ad nɣeṛ asuter-ik·im ticki tsentmeḍ tansa-inek·inem imayl. Send asentem, ur tezmireḍ ara ad teqqneḍ ɣer umiḍan-ik·im. Ma yella nugi asuter-ik·im, isefka-inek·inem ad ttwakksen seg uqeddac, ihi ulac tigawt-nniḍen ara k-d-yettuqeblen. Ma mačči d kečč· kemm i yellan deffir n usuter-agi, ttxil-k·m ssinef izen-agi. extra_html: Ttxil-k ẓer daγen ilugan n uqeddac akked twetlin n useqdec-nneγ. subject: 'Maṣṭudun: Asentem n ujerred deg uqeddac %{instance}' diff --git a/config/locales/doorkeeper.de.yml b/config/locales/doorkeeper.de.yml index 7350345..68c963f 100644 --- a/config/locales/doorkeeper.de.yml +++ b/config/locales/doorkeeper.de.yml @@ -160,13 +160,13 @@ de: admin:read:ip_blocks: sensible Informationen aller IP-Sperren lesen admin:read:reports: sensible Informationen aller Meldungen und gemeldeten Konten lesen admin:write: alle Daten auf dem Server ändern - admin:write:accounts: Moderationsaktionen auf Konten ausführen - admin:write:canonical_email_blocks: Moderationsaktionen auf kanonischen E-Mail-Sperren ausführen - admin:write:domain_allows: Moderationsaktionen auf zugelassende Domains ausführen - admin:write:domain_blocks: Moderationsaktionen auf Domain-Sperren ausführen - admin:write:email_domain_blocks: Moderationsaktionen auf E-Mail-Domain-Sperren ausführen - admin:write:ip_blocks: Moderationsaktionen auf IP-Sperren ausführen - admin:write:reports: Moderationsaktionen auf Meldungen ausführen + admin:write:accounts: Moderationsmaßnahmen bei Konten durchführen + admin:write:canonical_email_blocks: Moderationsmaßnahmen bei kanonischen E-Mail-Sperren durchführen + admin:write:domain_allows: Moderationsmaßnahmen bei zugelassenen Domains durchführen + admin:write:domain_blocks: Moderationsmaßnahmen bei Domain-Sperren durchführen + admin:write:email_domain_blocks: Moderationsmaßnahmen bei E-Mail-Domain-Sperren durchführen + admin:write:ip_blocks: Moderationsmaßnahmen bei IP-Sperren durchführen + admin:write:reports: Moderationsmaßnahmen bei Meldungen durchführen crypto: Ende-zu-Ende-Verschlüsselung verwenden follow: Kontenbeziehungen verändern profile: nur die Profilinformationen deines Kontos lesen diff --git a/config/locales/doorkeeper.eu.yml b/config/locales/doorkeeper.eu.yml index 7b25004..022ad27 100644 --- a/config/locales/doorkeeper.eu.yml +++ b/config/locales/doorkeeper.eu.yml @@ -83,6 +83,9 @@ eu: access_denied: Baliabidearen jabeak edo baimenaren zerbitzariak eskaera ukatu du. credential_flow_not_configured: Baliabidearen jabearen pasahitza kredentzialen fluxuak huts egin du Doorkeeper.configure.resource_owner_from_credentials konfiguratu gabe dagoelako. invalid_client: Bezeroaren autentifikazioak huts egin du bezero ezezaguna delako, ez delako bezero autentifikazioa txertatu, edo autentifikazio metodoa ez delako onartzen. + invalid_code_challenge_method: + one: code_challenge_method-ek %{challenge_methods} izan behar du. + other: 'code_challenge_method-ek hauetako bat izan behar du: %{challenge_methods}.' invalid_grant: Emandako baimena baliogabea da, iraungi edo indargabetu da, ez dator bat baimen-eskaeran erabilitako birbideratze URI-arekin edo beste bezero batek sortu du. invalid_redirect_uri: Sartutako birbideratze URI-a baliogabea da. invalid_request: diff --git a/config/locales/doorkeeper.nl.yml b/config/locales/doorkeeper.nl.yml index ff3a610..9a4e332 100644 --- a/config/locales/doorkeeper.nl.yml +++ b/config/locales/doorkeeper.nl.yml @@ -187,7 +187,7 @@ nl: write: alle gegevens van jouw account bewerken write:accounts: jouw profiel bewerken write:blocks: accounts en domeinen blokkeren - write:bookmarks: berichten aan bladwijzers toevoegen + write:bookmarks: berichten opslaan write:conversations: gespreken negeren en verwijderen write:favourites: favoriete berichten write:filters: filters aanmaken diff --git a/config/locales/doorkeeper.tr.yml b/config/locales/doorkeeper.tr.yml index e94bb91..d8fd702 100644 --- a/config/locales/doorkeeper.tr.yml +++ b/config/locales/doorkeeper.tr.yml @@ -165,7 +165,7 @@ tr: admin:write:domain_allows: alan adı izinleri için denetleme eylemleri gerçekleştirin admin:write:domain_blocks: alan adı engellemeleri için denetleme eylemleri gerçekleştirin admin:write:email_domain_blocks: e-posta alan adı engellemeleri için denetleme eylemleri gerçekleştirin - admin:write:ip_blocks: ıp blokları üzerinde moderasyon eylemleri gerçekleştir + admin:write:ip_blocks: IP blokları üzerinde denetim eylemleri gerçekleştir admin:write:reports: raporlarda denetleme eylemleri gerçekleştirin crypto: uçtan uca şifreleme kullan follow: hesap ilişkilerini değiştirin diff --git a/config/locales/el.yml b/config/locales/el.yml index 5ea63e4..8ce58bf 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -69,6 +69,7 @@ el: demote: Υποβιβασμός destroyed_msg: Τα δεδομένα του/της %{username} εκκρεμούν για άμεση διαγραφή disable: Πάγωμα + disable_sign_in_token: Προσωρινά απενεργοποιήστε την πρόκληση κωδικού ασφαλείας disable_sign_in_token_auth: Απενεργοποίηση επαλήθευσης διακριτικού email disable_two_factor_authentication: Απενεργοποίηση 2FA disabled: Παγωμένος @@ -78,6 +79,7 @@ el: email: Email email_status: Κατάσταση email enable: Ξεπάγωμα + enable_sign_in_token: Ενεργοποίηση πρόκλησης κωδικού ασφαλείας enable_sign_in_token_auth: Ενεργοποίηση ελέγχου ταυτότητας διακριτικού e-mail enabled: Ενεργοποιημένο enabled_msg: Επιτυχές ξεπάγωμα λογαριασμού του/της %{username} @@ -1496,8 +1498,11 @@ el: deletes: challenge_not_passed: Οι πληροφορίες που εισήγαγες δεν ήταν σωστές confirm_password: Γράψε το τρέχον συνθηματικό σου για να επαληθεύσεις την ταυτότητά σου + confirm_username: Επιβεβαίωση ονόματος χρήστη + confirm_username_hint_html: Παρακαλούμε πληκτρολογήστε %{username} για να επιβεβαιώσετε τον λογαριασμό που θέλετε να διαγράψετε proceed: Διαγραφή λογαριασμού success_msg: Ο λογαριασμός σου διαγράφηκε με επιτυχία + title: Διαγραφή λογαριασμού %{acct} warning: before: 'Πριν συνεχίσεις, παρακαλούμε διάβασε αυτές τις σημειώσεις προσεκτικά:' caches: Περιεχόμενο που έχει αποθηκευτεί προσωρινά σε άλλους διακομιστές ίσως παραμείνει @@ -2296,6 +2301,14 @@ el: further_actions_html: Αν δεν ήσουν εσύ, σου συνιστούμε να %{action} αμέσως, καθώς μπορεί να έχει εκτεθεί. subject: Αποτυχία πιστοποίησης δεύτερου παράγοντα title: Αποτυχία ελέγχου ταυτότητας δεύτερου παράγοντα + sign_in_token: + change_password: άλλαξετε τον κωδικό πρόσβασής σας + details: 'Εδώ είναι οι λεπτομέρειες της απόπειρας σύνδεσης:' + explanation: 'Εντοπίσαμε απόπειρα εισόδου στον λογαριασμό σας μετά από αρκετό καιρό αδράνειας. Αν είστε εσείς, παρακαλούμε εισάγετε τον κωδικό ασφαλείας παρακάτω στη σελίδα πρόκλησης σύνδεσης:' + further_actions: 'Αν δεν ήσασταν εσείς, παρακαλούμε αλλάξτε τον κωδικό πρόσβασής σας και ενεργοποιήστε τον έλεγχο ταυτότητας δύο παραγόντων στον λογαριασμό σας. Αυτό μπορείτε να το κάνετε εδώ:' + further_actions_html: Αν δεν ήσασταν εσείς, σας συνιστούμε να %{action} αμέσως και να ενεργοποιήσετε τον έλεγχο ταυτότητας δύο παραγόντων για να διατηρήσετε τον λογαριασμό σας ασφαλή. + subject: Παρακαλούμε επιβεβαιώστε την απόπειρα εισόδου + title: Απόπειρα εισόδου suspicious_sign_in: change_password: άλλαξε τον κωδικό πρόσβασής σου details: 'Εδώ είναι οι λεπτομέρειες της σύνδεσης:' @@ -2385,8 +2398,12 @@ el: title: Καλώς όρισες, %{name}! users: follow_limit_reached: Δεν μπορείς να ακολουθήσεις περισσότερα από %{limit} άτομα + generic_access_help_html: Πρόβλημα πρόσβασης στον λογαριασμό σας; Μπορεί να έρθετε σε επαφή με το %{email} για βοήθεια go_to_sso_account_settings: Πήγαινε στις ρυθμίσεις λογαριασμού του παρόχου ταυτότητας σου + inactive_sign_in_confirmation: Έχει περάσει πολύς καιρός από τότε που συνδεθήκατε, οπότε σας στέλνουμε έναν κωδικό ασφαλείας στη διεύθυνση email σας για να επιβεβαιώσουμε ότι είστε εσείς. + inactive_sign_in_title: Παρακαλώ επιβεβαιώστε τον κωδικό ασφαλείας invalid_otp_token: Άκυρος κωδικός πιστοποίησης 2 παραγόντων + invalid_sign_in_token: Μη έγκυρος κωδικός ασφαλείας otp_lost_help_html: Αν χάσεις πρόσβαση και στα δύο, μπορείς να επικοινωνήσεις με %{email} rate_limited: Πάρα πολλές προσπάθειες ελέγχου ταυτότητας, προσπάθησε ξανά αργότερα. seamless_external_login: Επειδή έχεις συνδεθεί μέσω τρίτης υπηρεσίας, οι ρυθμίσεις συνθηματικού και email δεν είναι διαθέσιμες. diff --git a/config/locales/en.yml b/config/locales/en.yml index e96c3df..227558a 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -69,6 +69,7 @@ en: demote: Demote destroyed_msg: "%{username}'s data is now queued to be deleted imminently" disable: Freeze + disable_sign_in_token: Temporarily disable security code challenge disable_sign_in_token_auth: Disable email token authentication disable_two_factor_authentication: Disable 2FA disabled: Frozen @@ -78,6 +79,7 @@ en: email: Email email_status: Email status enable: Unfreeze + enable_sign_in_token: Enable security code challenge enable_sign_in_token_auth: Enable email token authentication enabled: Enabled enabled_msg: Successfully unfroze %{username}'s account @@ -2300,6 +2302,14 @@ en: further_actions_html: If this wasn't you, we recommend that you %{action} immediately as it may be compromised. subject: Second factor authentication failure title: Failed second factor authentication + sign_in_token: + change_password: change your password + details: 'Here are details of the attempt:' + explanation: 'We detected an attempt to sign in to your account after a long time of inactivity. If this is you, please enter the security code below on the sign in challenge page:' + further_actions: 'If this wasn''t you, please change your password and enable two-factor authentication on your account. You can do so here:' + 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: Please confirm attempted sign in + title: Sign in attempt suspicious_sign_in: change_password: change your password details: 'Here are details of the sign-in:' @@ -2389,8 +2399,12 @@ en: title: Welcome aboard, %{name}! users: follow_limit_reached: You cannot follow more than %{limit} people + generic_access_help_html: Trouble accessing your account? You may get in touch with %{email} for assistance go_to_sso_account_settings: Go to your identity provider's account settings + inactive_sign_in_confirmation: It's been a while since you logged in, so we're sending a security code to your e-mail address to confirm that it's you. + inactive_sign_in_title: Please confirm security code invalid_otp_token: Invalid two-factor code + invalid_sign_in_token: Invalid security code otp_lost_help_html: If you lost access to both, you may get in touch with %{email} rate_limited: Too many authentication attempts, try again later. seamless_external_login: You are logged in via an external service, so password and email settings are not available. diff --git a/config/locales/eo.yml b/config/locales/eo.yml index a56440f..5e5b95a 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -4,12 +4,18 @@ eo: about_mastodon_html: 'La socia retejo de la estonteco: sen reklamo, sen observado por firmao, etika desegno, kaj malcentrigo! Regu viajn informojn per Mastodon!' contact_missing: Ne elektita contact_unavailable: Ne disponebla + default_thumbnail_description: Du ridetantaj kartunaj mastodonoj (kiuj aspektas kiel elefantoj) ĵetas paperan aviadilon inter ili. Ili estas ĉirkauitaj de hela blua ĉielo kaj flosantaj planedoj, sur kiuj loĝas arboj kaj pli da mastodonoj. hosted_on: "%{domain} estas nodo de Mastodon" title: Prio accounts: + errors: + cannot_be_added_to_collections: Ĉi tiu konto ne povas esti aldonita al kolektoj. followers: one: Sekvanto other: Sekvantoj + following: + one: Sekvato + other: Sekvatoj instance_actor_flash: Ĉi tiu konto estas virtuala agento uzata por reprezenti la servilon mem kaj neniun individuan uzanton. Ĝi estas uzata por federaciaj celoj kaj ĝi devas ne esti suspendita. last_active: laste aktiva link_verified_on: Proprieto de ĉi tiu ligilo estis kontrolita je %{date} @@ -51,15 +57,19 @@ eo: label: Ŝanĝi rolon no_role: Neniu rolo title: Ŝanĝi rolon por %{username} + collections: Kolektoj confirm: Konfirmi confirmed: Konfirmita confirming: Konfirmante custom: Aliaj agordoj delete: Forigi datumojn deleted: Forigita + deletion_irreversible: La datumoj de ĉi tiu konto estis neinversigeble forigitaj. + deletion_reversible_hint_html: Ĉi tiu konto atendas forigadon, kaj la datumoj estos tute forigitaj je %{date}. demote: Degradi destroyed_msg: Datumoj de %{username} nun enviciĝis por esti forigita baldaǔ disable: Frostigi + disable_sign_in_token: Portempe malŝalti defion de sekureca kodo disable_sign_in_token_auth: Malebligu retpoŝtan ĵeton-aŭtentikigon disable_two_factor_authentication: Malŝalti 2FA-n disabled: Frostigita @@ -69,6 +79,7 @@ eo: email: Retpoŝto email_status: Stato de retpoŝto enable: Malfrostigi + enable_sign_in_token: Ŝalti defion de sekureca kodo enable_sign_in_token_auth: Ebligu retpoŝtan ĵeton-aŭtentikigon enabled: Ebligita enabled_msg: Sukcese malfrostigis konton de %{username} @@ -191,6 +202,7 @@ eo: create_user_role: Krei Rolon create_username_block: Krei uzantnoman regulon demote_user: Malpromocii Uzanton + destroy_account: Foridi datumojn de konto destroy_announcement: Forigi Anoncon destroy_canonical_email_block: Forigi retpoŝtan blokon destroy_custom_emoji: Forigi Propran Emoĝion diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml index b9856b0..af3c031 100644 --- a/config/locales/es-AR.yml +++ b/config/locales/es-AR.yml @@ -69,6 +69,7 @@ es-AR: demote: Bajar de nivel destroyed_msg: Los datos de %{username} están ahora en cola para ser eliminados inminentemente disable: Congelar + disable_sign_in_token: Dshabilitar temporalmente el desafío de código de seguridad disable_sign_in_token_auth: Deshabilitar autenticación de token por correo electrónico disable_two_factor_authentication: Deshabilitar 2FA disabled: Congelada @@ -78,6 +79,7 @@ es-AR: email: Correo electrónico email_status: Estado del correo enable: Descongelar + enable_sign_in_token: Habilitar el desafío de código de seguridad enable_sign_in_token_auth: Habilitar autenticación de token por correo electrónico enabled: Habilitada enabled_msg: Se descongeló exitosamente la cuenta de %{username} @@ -1952,6 +1954,7 @@ es-AR: quadrillion: C thousand: m trillion: T + unit: '' otp_authentication: code_hint: Ingresá el código generado por tu aplicación de autenticación para confirmar description_html: Si habilitás la autenticación de dos factores usando una aplicación de autenticación, entonces en el inicio de sesión se te pedirá que estés con tu dispositivo, el cual generará un código numérico ("token") para que lo ingresés. @@ -2299,6 +2302,14 @@ es-AR: further_actions_html: Si vos no fuiste, te recomendamos que %{action} inmediatamente, ya que la seguridad de tu cuenta podría estar comprometida. subject: Fallo de autenticación del segundo factor title: Fallo en la autenticación del segundo factor + sign_in_token: + change_password: cambiés tu contraseña + details: 'Acá están los detalles del intento:' + explanation: 'Detectamos un intento de inicio de sesión en tu cuenta luego de mucho tiempo de inactividad. Si fuiste vos, por favor, ingresá el código de seguridad de abajo en la página del desafío:' + further_actions: 'Si no eras vos, por favor, cambiá tu contraseña y habilitá la autenticación de dos factores en tu cuenta. Podés hacerlo acá:' + further_actions_html: Si no fuiste vos, te recomendamos que %{action} inmediatamente y habilités la autenticación de dos factores para mantener tu cuenta segura. + subject: Por favor, confirmá el intento de inicio de sesión + title: Intento de inicio de sesión suspicious_sign_in: change_password: cambiés tu contraseña details: 'Acá están los detalles del inicio de sesión:' @@ -2388,8 +2399,12 @@ es-AR: title: "¡Bienvenido a bordo, %{name}!" users: follow_limit_reached: No podés seguir a más de %{limit} cuentas + generic_access_help_html: "¿Tenés problemas para acceder a tu cuenta? Podés ponerte en contacto con %{email} para obtener ayuda" go_to_sso_account_settings: Andá a la configuración de cuenta de tu proveedor de identidad + inactive_sign_in_confirmation: Ha pasado un tiempo desde que iniciaste sesión, así que estamos enviando un código de seguridad a tu dirección de correo electrónico para confirmar que querés iniciar sesión. + inactive_sign_in_title: Por favor, confirmá el código de seguridad invalid_otp_token: Código de dos factores no válido + invalid_sign_in_token: Código de seguridad no válido otp_lost_help_html: Si perdiste al acceso a ambos, podés ponerte en contacto con %{email} rate_limited: Demasiados intentos de autenticación; intentá de nuevo más tarde. seamless_external_login: Iniciaste sesión desde un servicio externo, así que la configuración de contraseña y correo electrónico no están disponibles. diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml index d86c461..e0b44b3 100644 --- a/config/locales/es-MX.yml +++ b/config/locales/es-MX.yml @@ -69,6 +69,7 @@ es-MX: demote: Degradar destroyed_msg: Los datos de %{username} están ahora en cola para ser eliminados inminentemente disable: Deshabilitar + disable_sign_in_token: Desactivar temporalmente la comprobación con código de seguridad disable_sign_in_token_auth: Deshabilitar la autenticación por token de correo electrónico disable_two_factor_authentication: Desactivar autenticación de dos pasos disabled: Deshabilitada @@ -78,6 +79,7 @@ es-MX: email: Correo electrónico email_status: Estado del correo electrónico enable: Habilitar + enable_sign_in_token: Activar la comprobación con código de seguridad enable_sign_in_token_auth: Habilitar la autenticación por token de correo electrónico enabled: Habilitada enabled_msg: Se ha descongelado correctamente la cuenta de %{username} @@ -1496,8 +1498,11 @@ es-MX: deletes: challenge_not_passed: Los datos introducidos son incorrectos confirm_password: Ingresa tu contraseña actual para demostrar tu identidad + confirm_username: Confirma el nombre de usuario + confirm_username_hint_html: Escribe %{username} para confirmar la cuenta que deseas eliminar proceed: Eliminar cuenta success_msg: Tu cuenta se eliminó con éxito + title: Eliminar cuenta %{acct} warning: before: 'Antes de continuar, por favor lee con atención las siguientes notas:' caches: El contenido que ha sido almacenado en caché por otros servidores puede persistir @@ -2296,6 +2301,14 @@ es-MX: further_actions_html: Si no fuiste tú, se recomienda %{action} inmediatamente ya que puede estar comprometido. subject: Fallo en la autenticación de dos pasos title: Falló la autenticación de dos pasos + sign_in_token: + change_password: cambies tu contraseña + details: 'Estos son los detalles del intento:' + explanation: 'Hemos detectado un intento de inicio de sesión en tu cuenta después de un largo tiempo de inactividad. Si has sido tú, por favor ingresa el siguiente código de seguridad en la página de comprobación de seguridad:' + further_actions: 'Si no has sido tú, cambia tu contraseña y habilita la autenticación en dos pasos en tu cuenta. Puedes hacerlo aquí:' + further_actions_html: Si no has sido tú, recomendamos que %{action} inmediatamente y habilites la autenticación en dos pasos para mantener tu cuenta segura. + subject: Por favor, confirma el intento de inicio de sesión + title: Intento de inicio de sesión suspicious_sign_in: change_password: cambies tu contraseña details: 'Aquí están los detalles del inicio de sesión:' @@ -2385,8 +2398,12 @@ es-MX: title: Te damos la bienvenida a bordo, %{name}! users: follow_limit_reached: No puedes seguir a más de %{limit} personas + generic_access_help_html: "¿Tienes problemas para acceder a tu cuenta? Puedes ponerte en contacto con %{email} para conseguir ayuda" go_to_sso_account_settings: Diríjete a la configuración de la cuenta de su proveedor de identidad + inactive_sign_in_confirmation: Ha pasado un tiempo desde que iniciaste sesión, así que estamos enviando un código de seguridad a tu dirección de correo electrónico para confirmar que eres tú. + inactive_sign_in_title: Confirma el código de seguridad invalid_otp_token: Código de dos pasos incorrecto + invalid_sign_in_token: Código de seguridad no válido otp_lost_help_html: Si perdiste al acceso a ambos, puedes ponerte en contancto con %{email} rate_limited: Demasiados intentos de autenticación, inténtalo de nuevo más tarde. seamless_external_login: Has iniciado sesión desde un servicio externo, por lo que los ajustes de contraseña y correo electrónico no están disponibles. diff --git a/config/locales/es.yml b/config/locales/es.yml index b387669..72c47d6 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -69,6 +69,7 @@ es: demote: Degradar destroyed_msg: Los datos de %{username} están ahora en cola para ser eliminados inminentemente disable: Deshabilitar + disable_sign_in_token: Desactivar temporalmente la comprobación con código de seguridad disable_sign_in_token_auth: Deshabilitar la autenticación por token de correo electrónico disable_two_factor_authentication: Desactivar autenticación de dos factores disabled: Deshabilitada @@ -78,6 +79,7 @@ es: email: Correo electrónico email_status: Estado del correo electrónico enable: Habilitar + enable_sign_in_token: Activar la comprobación con código de seguridad enable_sign_in_token_auth: Habilitar la autenticación por token de correo electrónico enabled: Habilitada enabled_msg: Se ha descongelado correctamente la cuenta de %{username} @@ -1498,8 +1500,11 @@ es: deletes: challenge_not_passed: Los datos introducidos son incorrectos confirm_password: Ingresa tu contraseña actual para demostrar tu identidad + confirm_username: Confirma el nombre de usuario + confirm_username_hint_html: Escribe %{username} para confirmar la cuenta que deseas eliminar proceed: Eliminar cuenta success_msg: Tu cuenta se eliminó con éxito + title: Eliminar cuenta %{acct} warning: before: 'Antes de continuar, por favor lee con atención las siguientes notas:' caches: El contenido que ha sido almacenado en caché por otros servidores puede persistir @@ -2298,6 +2303,14 @@ es: further_actions_html: Si no fuiste tú, se recomienda %{action} inmediatamente, ya que puede estar comprometida. subject: Fallo de autenticación del segundo factor title: Fallo en la autenticación del segundo factor + sign_in_token: + change_password: cambies tu contraseña + details: 'Estos son los detalles del intento:' + explanation: 'Hemos detectado un intento de inicio de sesión en tu cuenta después de un largo tiempo de inactividad. Si has sido tú, por favor ingresa el siguiente código de seguridad en la página de comprobación de seguridad:' + further_actions: 'Si no has sido tú, cambia tu contraseña y habilita la autenticación en dos pasos en tu cuenta. Puedes hacerlo aquí:' + further_actions_html: Si no has sido tú, recomendamos que %{action} inmediatamente y habilites la autenticación en dos pasos para mantener tu cuenta segura. + subject: Por favor, confirma el intento de inicio de sesión + title: Intento de inicio de sesión suspicious_sign_in: change_password: cambies tu contraseña details: 'Aquí están los detalles del inicio de sesión:' @@ -2387,8 +2400,12 @@ es: title: "¡Te damos la bienvenida a bordo, %{name}!" users: follow_limit_reached: No puedes seguir a más de %{limit} personas + generic_access_help_html: "¿Tienes problemas para acceder a tu cuenta? Puedes ponerte en contacto con %{email} para conseguir ayuda" go_to_sso_account_settings: Diríjase a la configuración de la cuenta de su proveedor de identidad + inactive_sign_in_confirmation: Ha pasado un tiempo desde que iniciaste sesión, así que estamos enviando un código de seguridad a tu dirección de correo electrónico para confirmar que eres tú. + inactive_sign_in_title: Confirma el código de seguridad invalid_otp_token: Código de dos factores incorrecto + invalid_sign_in_token: Código de seguridad no válido otp_lost_help_html: Si perdiste al acceso a ambos, puedes ponerte en contacto con %{email} rate_limited: Demasiados intentos de autenticación, inténtalo de nuevo más tarde. seamless_external_login: Has iniciado sesión desde un servicio externo, por lo que los ajustes de contraseña y correo electrónico no están disponibles. diff --git a/config/locales/eu.yml b/config/locales/eu.yml index 6abc285..321876d 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -4,6 +4,7 @@ eu: about_mastodon_html: 'Etorkizuneko sare soziala: ez iragarkirik eta ez zelatatze korporatiborik, diseinu etikoa eta deszentralizazioa! Izan zure datuen jabea Mastodonekin!' contact_missing: Ezarri gabe contact_unavailable: E/E + default_thumbnail_description: Irribarrez dauden bi marrazki bizidunetako mastodonte (elefanteen antza dute) paperezko hegazkin bat elkarri botatzen ari dira. Inguruan zeru urdin argia dute eta zuhaitzak eta mastodonte gehiago dituzten planeta flotatzaileak. hosted_on: Mastodon %{domain} domeinuan ostatatua title: Honi buruz accounts: @@ -12,6 +13,9 @@ eu: followers: one: Jarraitzaile other: jarraitzaile + following: + one: Jarraitzen + other: Jarraitzen instance_actor_flash: Kontu hau zerbitzaria adierazten duen aktore birtual bat da eta ez banako erabiltzaile bat. Federatzeko helburuarekin erabiltzen da eta ez da kanporatu behar. last_active: azkenekoz aktiboa link_verified_on: 'Esteka honen jabetzaren egiaztaketa data: %{date}' @@ -53,15 +57,19 @@ eu: label: Aldatu rola no_role: Rolik ez title: Aldatu %{username} erabiltzailearen rola + collections: Bildumak confirm: Berretsi confirmed: Berretsita confirming: Berresten custom: Pertsonalizatua delete: Ezabatu datuak deleted: Ezabatua + deletion_irreversible: Kontu honen datuak behin betiko ezabatu dira. + deletion_reversible_hint_html: Kontu hau ezabatzeko zain dago, eta datuak erabat ezabatuko dira %{date} egunean. demote: Jaitsi mailaz destroyed_msg: "%{username} erabiltzailearen datuak behin betiko ezabatzeko ilaran daude" disable: Desgaitu + disable_sign_in_token: Desgaitu aldi baterako segurtasun-kodearen egiaztapena disable_sign_in_token_auth: Desgaitu e-posta token autentifikazioa disable_two_factor_authentication: Desgaitu 2FA disabled: Desgaituta @@ -71,6 +79,7 @@ eu: email: Eposta email_status: Epostaren egoera enable: Gaitu + enable_sign_in_token: Gaitu segurtasun-kodearen egiaztapena enable_sign_in_token_auth: Gaitu e-posta token autentifikazioa enabled: Gaituta enabled_msg: "%{username} kontua behar bezala desblokeatu da" @@ -193,6 +202,7 @@ eu: create_user_role: Sortu rola create_username_block: Sortu erabiltzaile-izenaren araua demote_user: Jaitsi erabiltzailearen maila + destroy_account: Ezabatu kontuaren datuak destroy_announcement: Ezabatu iragarpena destroy_canonical_email_block: Ezabatu email blokeoa destroy_custom_emoji: Ezabatu emoji pertsonalizatua @@ -256,48 +266,68 @@ eu: create_domain_block_html: "%{name} erabiltzaileak %{target} domeinua blokeatu du" create_email_domain_block_html: "%{name}(e)k %{target} e-posta helbideen domeinua blokeatu du" create_ip_block_html: "%{name} kontuak %{target} IParen araua sortu du" + create_relay_html: "%{name} erabiltzaileak %{target} errelea sortu du" create_unavailable_domain_html: "%{name}(e)k %{target} domeinurako banaketa gelditu du" create_user_role_html: "%{name} erabiltzaileak %{target} rola sortu du" + create_username_block_html: "%{name} erabiltzaileak %{target} duten erabiltzaile-izenetarako araua gehitu du" demote_user_html: "%{name} erabiltzaileak %{target} erabiltzailea mailaz jaitsi du" + destroy_account_html: "%{name} erabiltzaileak %{target} erabiltzailearen kontuaren datuak ezabatu ditu" destroy_announcement_html: "%{name} erabiltzaileak %{target} iragarpena ezabatu du" destroy_canonical_email_block_html: "%{name}(e)k %{target} hash-a duen helbide elektronikoa desblokeatu du" + destroy_collection_html: "%{name} erabiltzaileak %{target} erabiltzailearen bilduma kendu du" destroy_custom_emoji_html: "%{name} erabiltzaileak %{target} emoji-a ezabatu du" destroy_domain_allow_html: "%{name} erabiltzaileak %{target} domeinuarekin federatzea debekatu du" destroy_domain_block_html: "%{name} erabiltzaileak %{target} domeinua desblokeatu du" destroy_email_domain_block_html: "%{name}-k %{target} posta elektroniko domeinua desblokeatu du" destroy_instance_html: "%{name} erabiltzaileak %{target} domeinua betiko ezabatu du" destroy_ip_block_html: "%{name} erabiltzaileak %{target} IParen araua ezabatu du" + destroy_relay_html: "%{name} erabiltzaileak %{target} errelea ezabatu du" destroy_status_html: "%{name} erabiltzaileak %{target} erabiltzailearen bidalketa kendu du" destroy_unavailable_domain_html: "%{name}(e)k %{target} domeinurako banaketari berrekin dio" destroy_user_role_html: "%{name} erabiltzaileak %{target} rola ezabatu du" + destroy_username_block_html: "%{name} erabiltzaileak %{target} duten erabiltzaile-izenetarako araua kendu du" disable_2fa_user_html: "%{name} erabiltzaileak %{target} erabiltzailearen bi faktoreko autentifikazioa desgaitu du" disable_custom_emoji_html: "%{name} erabiltzaileak %{target} emoji-a desgaitu du" + disable_relay_html: "%{name} erabiltzaileak %{target} errelea desgaitu du" + disable_sign_in_token_auth_user_html: "%{name} erabiltzaileak %{target} erabiltzailearen posta elektroniko bidezko token-autentifikazioa desgaitu du" disable_user_html: "%{name} erabiltzaileak %{target} erabiltzailearen saioa desgaitu du" enable_custom_emoji_html: "%{name} erabiltzaileak %{target} emoji-a gaitu du" + enable_relay_html: "%{name} erabiltzaileak %{target} errelea gaitu du" + enable_sign_in_token_auth_user_html: "%{name} erabiltzaileak %{target} erabiltzailearen posta elektroniko bidezko token-autentifikazioa gaitu du" enable_user_html: "%{name} erabiltzaileak %{target} erabiltzailearen saioa gaitu du" + listable_tag_html: iradoki daiteke memorialize_account_html: "%{name} erabiltzaileak %{target} kontua memoriala bihurtu du" + not_listable_tag_html: ez da iradokiko + not_trendable_tag_html: ez da joeretan agertuko + not_usable_tag_html: ezin da erabili promote_user_html: "%{name} erabiltzaileak %{target} erabiltzailea mailaz igo du" + publish_terms_of_service_html: "%{name} erabiltzaileak zerbitzuaren baldintzen eguneraketak argitaratu ditu" reject_appeal_html: "%{name} erabiltzaileak %{target} erabiltzailearen moderazio erabakiaren apelazioa baztertu du" reject_user_html: "%{name} erabiltzaileak %{target} erabiltzailearen izen-ematea baztertu du" remove_avatar_user_html: "%{name} erabiltzaileak %{target} erabiltzailearen abatarra kendu du" reopen_report_html: "%{name} erabiltzaileak %{target} txostena berrireki du" + resend_user_html: "%{name} erabiltzaileak %{target} erabiltzailearen berrespen-mezua berriz bidali du" reset_password_user_html: "%{name} erabiltzaileak %{target} erabiltzailearen pasahitza berrezarri du" resolve_report_html: "%{name} erabiltzaileak %{target} txostena konpondu du" sensitive_account_html: "%{name} erabiltzaileak %{target} erabiltzailearen multimedia hunkigarri bezala markatu du" silence_account_html: "%{name} erabiltzaileak %{target} kontua isilarazi du" suspend_account_html: "%{name} erabiltzaileak %{target} kontua kanporatu du" + trendable_tag_html: joeretan ager daiteke unassigned_report_html: "%{name} erabiltzaileak %{target} txostenaren esleipena atzera bota du" unblock_email_account_html: "%{name} erabiltzaileak %{target} eposta helbidea desblokeatu du" unsensitive_account_html: "%{name} erabiltzaileak %{target} erabiltzailearen multimedia hunkigarri bezala markatzeari utzi dio" unsilence_account_html: "%{name} erabiltzaileak %{target} kontua isilarazteari utzi dio" unsuspend_account_html: "%{name} erabiltzaileak %{target} kontuaren kanporaketa atzera bota du" update_announcement_html: "%{name} erabiltzaileak %{target} iragarpena eguneratu du" + update_collection_html: "%{name} erabiltzaileak %{target} erabiltzailearen bilduma eguneratu du" update_custom_emoji_html: "%{name} erabiltzaileak %{target} emoji-a eguneratu du" update_domain_block_html: "%{name} erabiltzaileak %{target} domeinu-blokeoa eguneratu du" update_ip_block_html: "%{name} erabiltzaileak %{target} IParen araua aldatu du" update_report_html: "%{name}-k %{target} txostena eguneratu du" update_status_html: "%{name} erabiltzaileak %{target} erabiltzailearen bidalketa eguneratu du" + update_tag_html: "%{name} erabiltzaileak %{target} traolaren ezarpenak aldatu ditu: " update_user_role_html: "%{name} erabiltzaileak %{target} rola aldatu du" + update_username_block_html: "%{name} erabiltzaileak %{target} duten erabiltzaile-izenetarako araua eguneratu du" usable_tag_html: erabili daiteke; deleted_account: ezabatu kontua empty: Ez da egunkaririk aurkitu. @@ -332,12 +362,17 @@ eu: back_to_account: Atzera kontuaren orrira back_to_report: Atzera txostenaren orrira batch: + add_to_report: 'Gehitu #%{id} salaketari' remove_from_report: Kendu txostenetik report: Salatu collection_title: "%{name}-(r)en bildumak" contents: Edukiak no_collection_selected: Ez da bildumarik aldatu ez delako bat ere hautatu + number_of_accounts: + one: Kontu 1 + other: "%{count} kontu" open: Ireki + title: Kontuaren bildumak - @%{name} view_publicly: Publikoki ikusi critical_update_pending: Eguneraketa kritikoa egiteke custom_emojis: @@ -481,6 +516,81 @@ eu: email_subscriptions: accounts: account: Kontua + empty: + hint: Oraindik ez dago harpidedunak dituen konturik. + no_lists_yet: Oraindik ez dago zerrendarik + last_email: Azken mezua + lead: Eginbidea gaitu duten eta harpidedunak dituzten kontuak behean agertuko dira. + show: + confirm_disable_feature: Desgaitu %{name}(r)en buletin elektronikoak? Kontu honetarako ez da eguneraketarik bidaliko posta elektronikoz. Erabiltzaileak eginbidea berriz gaitu ahal izango du bere kontuaren ezarpenetan. Eginbide honetarako sarbidea behin betiko kentzeko, editatu kontuaren baimena Roletan. + confirm_remove_subscriber: "%{email} helbideak ez du %{name}(r)en mezurik jasoko aurrerantzean. Ekintza hau ezin da desegin." + consent: Harpidedunek bidalketak posta elektronikoz jasotzeko soilik eman dute baimena. Ez erabili zerrenda hau beste helburu batzuetarako. + date: Izen-ematearen data + disable_feature: Desgaitu eginbidea + disabled: Eginbidea desgaitu da eta ez da mezurik bidaltzen zerrenda honetara. + email: Helbide elektronikoa + empty: + hint: Oraindik inor ez da kontu honetara harpidetu. + no_subscribers_yet: Oraindik ez dago harpidedunik + enable_feature: Gaitu eginbidea + no_access_html: Kontu honek ez ditu jada eginbidea gaitzeko behar diren baimenak. Aldatu hau Roletan. + title: "%{name}(r)en buletin elektronikoak" + view_account: Ikusi kontua + status: Egoera + subscribers: Harpidedunak + title: Posta-zerrendak + additional_footer_texts: + show: + title: Oineko testu gehigarria + compliance_settings: + additional_footer_text: + action: Kudeatu + hint: Buletinen mezu elektronikoen oinean soilik agertzen den testu aukerakoa + title: Oineko testu gehigarria + lead: Buletin elektronikoak marketin-mezutzat har daitezke, jarduten duzun jurisdikzioen arabera. + privacy_policy: + action: Kudeatu + hint: Politika hau mezu elektroniko guztien oinean estekatzen da + title: Pribatutasun-politika + title: Betetze-ezarpenak + danger_zone: + disable_feature: + action: Desgaitu + hint: Desaktibatu eginbidea kontu guztietarako + title: Desgaitu eginbidea + erase_all_data: + action: Ezabatu datuak + hint: Posta-zerrenda guztietako helbide elektroniko guztiak behin betiko ezabatzen ditu + title: Ezabatu datu guztiak + title: Arrisku-eremua + disabled_msg: Posta elektroniko bidezko harpidetzak ondo desgaitu dira. + index: + disabled: + cannot_be_enabled: Zure hornitzaile teknikoak ez du eginbide hau gaitu zure zerbitzarirako. + description: Eginbide honi esker, zehaztutako kontuek trepeta bat gehi dezakete beren profiletan, Mastodon konturik ez duten bisitariek haien bidalketak posta elektronikoz jaso ditzaten. + get_started: Hasi + lead: Baimendu bisitariei zerbitzari honetako kontu jakin batzuen bidalketak posta elektronikoz jasotzea. + title: Buletin elektronikoak + purged_msg: Posta elektroniko bidezko harpidetzen datu guztiak ezabatzen ari dira. + roles: + accounts: Kontuak + edit_role: Editatu rola + empty: + hint: Inork ez du eginbide hau erabiltzeko baimenik. + no_roles_added: Ez da rolik gehitu + lead: Rol hauek dituzten kontuek eginbide hau gai dezakete beren profiletan. + manage_roles: Kudeatu rolak + role_name: Rolaren izena + title: Rolak + setups: + show: + enable_feature: Gaitu eginbidea + important_information: Informazio garrantzitsua + list: + 1_permission_explanation: Eginbide hau gaituta dagoenean, baimen jakin batzuk dituzten kontuek helbide elektronikoak biltzeko inprimaki bat gehi dezakete beren profiletan. + 2_feature_explanation: Bisitariek kontu baten profil-orrian izena eman eta harpidetza berresten dutenean, eguneraketak jasoko dituzte posta elektronikoz kontuak bidalketa publiko berriak sortzen dituenean. + 3_privacy_policy_warning: Zerbitzariko administratzaileek bildutako datu pertsonaletarako (helbide elektronikoak) sarbidea izango dute. Horregatik, zerbitzariaren pribatutasun-politika eta Zerbitzuaren baldintzak eguneratu behar dira eginbide hau erabili aurretik. + 4_cost_warning: Mezu elektronikoek kostu bat izan dezakete ostatatze-konfigurazioaren arabera. Hitz egin zure ostatatze-hornitzailearekin gaitu aurretik, eginbide honek zure zerbitzaritik bidalitako mezu kopurua izugarri handitu baitezake. export_domain_allows: new: title: Baimendutako domeinuak inportatu @@ -635,6 +745,8 @@ eu: new: title: Sortu IP arau berria no_ip_block_selected: Ez da IP araurik aldatu, ez delako bat ere hautatu + reset: Berrezarri + search: Bilatu title: IP arauak relationships: title: "%{acct}(e)ren erlazioak" @@ -665,6 +777,7 @@ eu: action_log: Auditoria-egunkaria action_taken_by: Neurrien hartzailea actions: + delete_description_html: Salatutako bidalketak eta/edo bildumak ezabatuko dira, eta neurri bat erregistratuko da, kontu beraren etorkizuneko arau-hausteen aurrean gogortasuna areagotzen laguntzeko. mark_as_sensitive_description_html: Salatutako bidalketetako multimedia edukia hunkigarri bezala eta neurria gordeko da, etorkizunean kontu honek arau-hausterik egiten badu kontuan izan dezazun. other_description_html: Ikusi kontuaren portaera kontrolatzeko eta salatutako kontuarekin komunikazioa pertsonalizatzeko aukera gehiago. resolve_description_html: Ez da ekintzarik hartuko salatutako kontuaren aurka, ez da neurria gordeko eta salaketa itxiko da. @@ -684,12 +797,14 @@ eu: cancel: Utzi category: Kategoria category_description_html: Kontu edo/eta eduki hau salatu izanaren arrazoia salatutako kontuarekiko komunikazioan aipatuko da + collections: Bildumak (%{count}) comment: none: Bat ere ez comment_description_html: 'Informazio gehiago emateko, %{name} idatzi:' confirm: Berretsi confirm_action: Berretsi @%{acct} kontuaren aurkako moderazio-ekintza created_at: Salatua + delete_and_resolve: Ezabatu edukia forwarded: Birbidalia forwarded_replies_explanation: Salaketa hau beste instantzia bateko erabiltzaile baten edukiari buruzkoa da, eta zure instantziako erabiltzaile bati egidako erantzuna delako bidali dizugu mezu hau. forwarded_to: 'Hona birbidalia: %{domain}' @@ -712,11 +827,13 @@ eu: report: 'Salaketa #%{id}' reported_account: Salatutako kontua reported_by: Salatzailea + reported_content: Salatutako edukia reported_with_application: Aplikazioaren bidez salatua resolved: Konponduta resolved_msg: Salaketa ongi konpondu da! skip_to_actions: Salto ekintzetara status: Mezua + statuses: Bidalketak (%{count}) statuses_description_html: Salatutako edukia salatutako kontuarekiko komunikazioan aipatuko da summary: action_preambles: @@ -751,6 +868,7 @@ eu: categories: administration: Administrazioa devops: DevOps + email: Posta elektronikoa invites: Gonbidapenak moderation: Moderazioa special: Berezia @@ -767,6 +885,8 @@ eu: administrator_description: Baimen hau duten erabiltzaileak baimen guztien gainetik pasako dira delete_user_data: Ezabatu erabiltzaileen datuak delete_user_data_description: Baimendu erabiltzaileek beste erabiltzaileen datuak atzerapenik gabe ezabatzea + invite_bypass_approval: Gonbidatu erabiltzaileak berrikuspenik gabe + invite_bypass_approval_description: Erabiltzaile hauek zerbitzarira gonbidatutako pertsonei moderazio-onarpena saihesteko aukera ematen die invite_users: Gonbidatu erabiltzaileak invite_users_description: Baimendu erabiltzaileek zerbitzarira jende berria gonbidatzea manage_announcements: Kudeatu iragarpenak @@ -777,6 +897,8 @@ eu: manage_blocks_description: Baimendu erabiltzaileek eposta hornitzaile eta IP helbideak blokeatzea manage_custom_emojis: Kudeatu emoji pertsonalizatuak manage_custom_emojis_description: Baimendu erabiltzaileek zerbitzariko emoji pertsonalizatuak kudeatzea + manage_email_subscriptions: Kudeatu posta elektroniko bidezko harpidetzak + manage_email_subscriptions_description: Baimen hau duten erabiltzaileei beren kontuan buletin elektronikoen eginbidea gaitzeko aukera ematen die manage_federation: Kudeatu federazioa manage_federation_description: Baimendu erabiltzaileek beste domeinuak blokeatu edo federazioa onartzea, eta banagarritasuna kontrolatzea manage_invites: Kudeatu gonbidapenak @@ -803,6 +925,9 @@ eu: view_dashboard_description: Baimendu erabiltzaileek aginte-panela eta hainbat estatistika ikustea view_devops: DevOps view_devops_description: Baimendu erabiltzaileek Sidekiq eta pgHero aginte-paneletara sarbidea izatea + view_feeds: Ikusi zuzeneko eta gaikako jarioak + view_feeds_description: Erabiltzaileei zuzeneko eta gaikako jarioetara sartzeko aukera ematen die, zerbitzariaren ezarpenak edozein direla ere + requires_2fa: Bi urratseko autentifikazioa eskatzen du title: Rolak rules: add_new: Gehitu araua @@ -816,12 +941,16 @@ eu: title: Zerbitzariaren arauak translation: Itzulpena translations: Itzulpenak + translations_explanation: Aukeran, arauen itzulpenak gehi ditzakezu. Itzulitako bertsiorik ez badago, balio lehenetsia erakutsiko da. Ziurtatu beti emandako itzulpenak balio lehenetsiarekin bat datozela. settings: about: manage_rules: Kudeatu zerbitzariaren arauak preamble: Zerbitzaria nola gobernatzen, moderatzen eta finantzatzen den azaltzen duen informazio xehea eman. rules_hint: Erabiltzaileek jarraitu behar dituzten arauei eskainitako atal bat dago. title: Honi buruz + allow_referrer_origin: + desc: Zure erabiltzaileek kanpoko guneetarako esteketan klik egiten dutenean, haien nabigatzaileak zure Mastodon zerbitzariaren helbidea bidal dezake jatorri gisa. Desgaitu hau zure erabiltzaileak modu bakarrean identifikatuko balitu, adibidez Mastodon zerbitzari pertsonala bada. + title: Baimendu kanpoko guneei zure Mastodon zerbitzaria trafiko-iturri gisa ikustea appearance: preamble: Mastodonen web interfazea pertsonalizatu. title: Itxura @@ -857,6 +986,17 @@ eu: authenticated: Saioa hasi duten erabiltzaileentzat soilik disabled: Erabiltzaile-rol jakin bat behar da public: Edonork + landing_page: + hints: + about_html: Zerbitzari honen deskribapena, harremanetarako informazioa, arauak eta bestelako informazioa dituen orria. + local_feed_html: Zerbitzari honetako erabiltzaileen bidalketa berrienak dituen zuzeneko jarioa. + overview_html: Zure zerbitzariaren deskribapena erakusten duen orria, zerbitzari honetako erabiltzaileen bidalketa lokal berrienekin batera. + trends_html: Zerbitzari honetan une honetan ezaguna dena erakusten duen orria. + values: + about: Honi buruz orria + local_feed: Zuzeneko jario lokala + overview: Ikuspegi orokorra + trends: Joerak registrations: moderation_recommandation: Mesedez, ziurtatu moderazio-talde egokia eta erreaktiboa duzula erregistroak guztiei ireki aurretik! preamble: Kontrolatu nork sortu dezakeen kontua zerbitzarian. @@ -876,17 +1016,22 @@ eu: site_uploads: delete: Ezabatu igotako fitxategia destroyed_msg: Guneko igoera ongi ezabatu da! + skip_to_content: Joan edukira software_updates: critical_update: Kritikoa — mesedez, eguneratu azkar description: Gomendagarria da Mastodon instalazioa eguneratuta mantentzea azken konponketa eta funtzioez baliatzeko. Gainera, batzuetan ezinbestekoa da Mastodon garaiz eguneratzea segurtasun arazoak saihesteko. Arrazoi hauengatik, Mastodonek 30 minuturo eguneratzeak egiaztatzen ditu, eta zure posta elektroniko bidezko jakinarazpenen lehentasunen arabera jakinaraziko dizu. documentation_link: Informazio gehiago + nearing_eol: Une honetan erabiltzen ari zaren adarraren laguntza %{date} egunean amaituko da; eguneratzea gomendatzen dizugu. release_notes: Bertsio oharrak + supported_until: Laguntza %{date} egunean amaitzen da title: Eguneraketak eskuragarri type: Mota types: major: Argitalpen handia minor: Argitalpen txikia patch: Partxe eguneraketa — akatsen konponketa eta aplikatzeko aldaketa errazak + unsupported_branch: Une honetan erabiltzen ari zaren adarrak ez du laguntzarik; eguneratu lehenbailehen. + unsupported_since: Laguntzarik gabe %{date} egunetik version: Bertsioa statuses: account: Egilea @@ -894,6 +1039,7 @@ eu: back_to_account: Atzera kontuaren orrira back_to_report: Atzera txostenaren orrira batch: + add_to_report: 'Gehitu #%{id} salaketari' remove_from_report: Kendu txostenetik report: Salatu contents: Edukiak @@ -914,6 +1060,7 @@ eu: replied_to_html: "%{acct_link}(r)i erantzuten" status_changed: Bidalketa aldatuta status_title: "%{name} erabiltzailearen bidalketa" + title: Kontuaren bidalketak - @%{name} trending: Joera view_publicly: Publikoki ikusi view_quoted_post: Aipatutako bidalketa ikusi @@ -1006,12 +1153,21 @@ eu: action: Sortu chance_to_review_html: "Sortutako zerbitzu-baldintzak ez dira automatikoki argitaratuko. Emaitzak berrikusteko aukera izango duzu. Mesedez, bete beharrezko xehetasunak aurrera egiteko." explanation_html: Zerbitzu-baldintzen txantiloia informazio-helburuetarako soilik da, eta ez da gai bati buruzko aholku juridikotzat hartu behar. Mesedez, kontsultatu zure aholkulari juridikoa zure egoerari eta galdera juridiko zehatzei buruz. + title: Zerbitzuaren baldintzen konfigurazioa going_live_on_html: Argitaratua, indarrean %{date} history: Historia live: Zuzenean + no_history: Oraindik ez dago zerbitzuaren baldintzen aldaketarik erregistratuta. + no_terms_of_service_html: Une honetan ez duzu zerbitzuaren baldintzarik konfiguratuta. Zerbitzuaren baldintzen helburua argitasuna ematea eta zure erabiltzaileekiko gatazketan erantzukizun posibleetatik babestea da. + notified_on_html: Erabiltzaileei %{date} egunean jakinarazi zitzaien notify_users: Jakinarazi erabiltzaileak preview: + explanation_html: 'Mezua %{date} baino lehen izena eman zuten %{display_count} erabiltzaileri bidaliko zaie. Testu hau sartuko da mezuan:' send_preview: 'Bidali aurrebista hona: %{email}' + send_to_all: + one: Bidali mezu %{display_count} + other: Bidali %{display_count} mezu + title: Zerbitzuaren baldintzen jakinarazpenaren aurrebista publish: Argitaratu published_on_html: "%{date}(e)an argitaratua" save_draft: Gorde zirriborroa @@ -1027,7 +1183,9 @@ eu: allow: Onartu esteka allow_provider: Onartu argitaratzailea confirm_allow: Ziur zaude hautatutako estekak gaitu nahi dituzula? + confirm_allow_provider: Ziur hautatutako hornitzaileak baimendu nahi dituzula? confirm_disallow: Ziur zaude hautatutako estekak desgaitu nahi dituzula? + confirm_disallow_provider: Ziur hautatutako hornitzaileei baimena kendu nahi diezula? description_html: Esteka hauek zure zerbitzariak ikusten dituen kontuek asko zabaltzen ari diren estekak dira. Zure erabiltzaileei munduan ze berri den jakiteko lagungarriak izan daitezke. Ez da estekarik bistaratzen argitaratzaileak onartu arte. Esteka bakoitza onartu edo baztertu dezakezu. disallow: Ukatu esteka disallow_provider: Ukatu argitaratzailea @@ -1051,6 +1209,10 @@ eu: statuses: allow: Onartu bidalketa allow_account: Onartu egilea + confirm_allow: Ziur hautatutako bidalketak baimendu nahi dituzula? + confirm_allow_account: Ziur hautatutako kontuak baimendu nahi dituzula? + confirm_disallow: Ziur hautatutako bidalketei baimena kendu nahi diezula? + confirm_disallow_account: Ziur hautatutako kontuei baimena kendu nahi diezula? description_html: Hauek dira une honetan asko partekatu eta gogokoak diren bidalketak (zure zerbitzariak ezagutzen dituenak). Erabiltzaile berrientzat eta bueltan itzuli direnentzat lagungarriak izan daitezke nor jarraitu aurkitzeko. Bidalketak ez dira publikoki erakusten zuk egilea onartu arte eta egileak gomendatua izatea onartu arte. Bidalketak banan bana ere onartu edo baztertu ditzakezu. disallow: Ez onartu bidalketa disallow_account: Ez onartu egilea @@ -1085,11 +1247,15 @@ eu: other: "%{count} pertsonak erabilia azken astean" title: Gomendioak eta joerak trending: Joerak + update_available: Eguneraketa eskuragarri username_blocks: add_new: Gehitu berria block_registrations: Blokeatu izen-emateak comparison: + contains: Badu equals: Berdin + contains_html: "%{string} du" + created_msg: Erabiltzaile-izenaren araua ondo sortu da delete: Ezabatu edit: title: Editatu erabiltzaile-izena araua @@ -1100,11 +1266,13 @@ eu: no_username_block_selected: Ez da erabiltzaile-izen araurik aldatu, ez delako bat ere hautatu not_permitted: Baimendu gabea title: Erabiltzaile-izen arauak + updated_msg: Erabiltzaile-izenaren araua ondo eguneratu da warning_presets: add_new: Gehitu berria delete: Ezabatu edit_preset: Editatu abisu aurre-ezarpena empty: Ez duzu abisu aurrezarpenik definitu oraindik. + title: Abisu aurrezarpenak webhooks: add_new: Gehitu amaiera-puntua delete: Ezabatu @@ -1129,6 +1297,15 @@ eu: auto_close_registrations: body: Duela gutxi moderatzaile gutxi aritu direla eta, %{instance} instantziako izen-emateek eskuzko berrikuspena beharko dute automatikoki, %{instance} instantzia eragile okerren plataforma gisa erabili dadin ekiditeko. Izen-emate irekiak berriro gai ditzakezu nahi duzunean. subject: "%{instance} instantziako izen-emateek onarpena beharko dute orain" + end_of_support_out_of_support_warning: + body: Zure zerbitzarian erabiltzen ari den Mastodonen bertsioak ez du laguntzarik jada. Lehenbailehen eguneratzea gomendatzen dizugu! + subject: "%{instance} zerbitzarian erabilitako Mastodon %{branch} bertsioak ez du laguntzarik jada!" + end_of_support_three_months_warning: + body: Zure zerbitzarian erabiltzen ari den Mastodonen bertsioak laguntza galduko du 3 hilabete barru. Agian adar berriago batera eguneratu nahiko duzu aldez aurretik. + subject: "%{instance} zerbitzarian erabilitako Mastodon %{branch} bertsioaren laguntza 3 hilabete barru amaituko da." + end_of_support_two_weeks_warning: + body: Zure zerbitzarian erabiltzen ari den Mastodonen bertsioak laguntza galduko du 2 aste barru. Aldez aurretik adar berriago batera eguneratzea gomendatzen dizugu. + subject: "%{instance} zerbitzarian erabilitako Mastodon %{branch} bertsioaren laguntza 2 aste barru amaituko da." new_appeal: actions: delete_statuses: bidalketak ezabatzea @@ -1173,6 +1350,8 @@ eu: appearance: advanced_settings: Ezarpen aurreratuak animations_and_accessibility: Animazioak eta irisgarritasuna + boosting_preferences: Bultzaden hobespenak + boosting_preferences_info_html: "Aholkua: Ezarpenak edozein direla ere, Shift + Klik %{icon} Bultzada ikonoan sakatzeak berehala emango dio bultzada." discovery: Aurkitzea localization: body: Mastodon boluntarioek itzultzen dute. @@ -1231,6 +1410,7 @@ eu: progress: confirm: Berretsi e-mail helbidea details: Zure xehetasunak + list: Izen-ematearen aurrerapena review: Gure berrikuspena rules: Onartu arauak providers: @@ -1246,12 +1426,14 @@ eu: invited_by: "%{domain} webgunean kontua ireki dezakezu lagun honek gonbidapena bidali dizulako:" preamble: Hauek %{domain} instantziako moderatzaileek ezarriak eta betearaziak dira. preamble_invited: Jarraitu baino lehen, kontuan hartu %{domain}-(e)ko moderatzaileek ezarritako oinarrizko arauak. + read_more: Irakurri gehiago title: Oinarrizko arau batzuk. title_invited: Gonbidatu zaituzte. security: Segurtasuna set_new_password: Ezarri pasahitza berria setup: email_below_hint_html: Begiratu zure spameko karpetan, edo eskatu beste bat. Zure helbide elektronikoa zuzen dezakezu oker badago. + email_settings_hint_html: Egin klik %{email} helbidera bidali dizugun estekan Mastodon erabiltzen hasteko. Hemen itxarongo dugu. link_not_received: Ez duzu estekarik jaso? new_confirmation_instructions_sent: Minutu gutxiren buruan baieztapen-esteka duen mezu elektroniko bat jasoko duzu! title: Begiratu zure sarrera-ontzia @@ -1272,14 +1454,28 @@ eu: view_strikes: Ikusi zure kontuaren aurkako neurriak too_fast: Formularioa azkarregi bidali duzu, saiatu berriro. use_security_key: Erabili segurtasun gakoa + user_agreement_html: zerbitzuaren baldintzak eta pribatutasun-politika irakurri ditut eta onartzen ditut + user_privacy_agreement_html: pribatutasun-politika irakurri dut eta onartzen dut author_attribution: example_title: Testu-lagina + hint_html: Berriak edo blog-artikuluak idazten dituzu Mastodonetik kanpo? Kontrolatu nola aitortzen zaizun egiletza Mastodonen partekatzen direnean. + instructions: 'Ziurtatu kode hau zure artikuluaren HTMLan dagoela:' more_from_html: "%{name} erabiltzaileaz gehiago jakin" + s_blog: "%{name}(r)en bloga" + then_instructions: Ondoren, gehitu argitalpenaren domeinu-izena beheko eremuan. + title: Egiletzaren aitortza challenge: confirm: Jarraitu hint_html: "Oharra: Ez dizugu pasahitza berriro eskatuko ordu batez." invalid_password: Pasahitz baliogabea prompt: Berretsi pasahitza jarraitzeko + color_scheme: + auto: Automatikoa + dark: Iluna + light: Argia + contrast: + auto: Automatikoa + high: Handia crypto: errors: invalid_key: ez da baliozko Ed25519 edo Curve25519 gakoa @@ -1304,12 +1500,17 @@ eu: deletes: challenge_not_passed: Sartu duzun informazioa ez da zuzena confirm_password: Sartu zure oraingo pasahitza zure identitatea egiaztatzeko + confirm_username: Berretsi erabiltzaile-izena + confirm_username_hint_html: Idatzi %{username} ezabatu nahi duzun kontua berresteko proceed: Ezabatu kontua success_msg: Zure kontua ongi ezabatu da + title: Ezabatu %{acct} kontua warning: before: 'Jarraitu aurretik, irakurri adi ohar hauek:' caches: Beste zerbitzariek cachean duten edukia mantentzea gerta daiteke data_removal: Zure bidalketak eta beste datuak behin betiko ezabatuko dira + email_change_html: Zure helbide elektronikoa alda dezakezu kontua ezabatu gabe + email_contact_html: Oraindik iristen ez bada, %{email} helbidera idatz dezakezu laguntza eskatzeko email_reconfirmation_html: Ez baduzu baieztamen e-maila jasotzen, berriro eskatu dezakezu irreversible: Ezin izango duzu kontua berreskuratu edo berraktibatu more_details_html: Xehetasun gehiagorako, ikusi pribatutasun politika. @@ -1347,6 +1548,44 @@ eu: your_appeal_rejected: Zure apelazioa baztertu da edit_profile: other: Bestelakoak + privacy_redesign_body: Jarraitzen dituzunak eta jarraitzaileak erakusteko aukera zure profiletik bertatik egiten da orain. + redesign_body: Profila editatzeko aukera profil-orritik bertatik dago orain eskuragarri. + redesign_button: Joan hara + redesign_title: Profila editatzeko esperientzia berria dago + email_subscription_mailer: + confirmation: + action: Berretsi helbide elektronikoa + instructions_to_confirm: Berretsi %{name}(r)en (@%{acct}) mezuak jaso nahi dituzula bidalketa berriak argitaratzen dituenean. + instructions_to_ignore: Ez badakizu ziur zergatik jaso duzun mezu hau, ezaba dezakezu. Ez zara harpidetuko goiko estekan klik egiten ez baduzu. + subject: Berretsi zure helbide elektronikoa + title: "%{name}(r)en eguneraketak posta elektronikoz jaso?" + notification: + create_account: Sortu Mastodon kontu bat + footer: + privacy_html: Mezuak %{domain} zerbitzaritik bidaltzen dira, Mastodonekin dabilen zerbitzari batetik. Zerbitzari honek zure datu pertsonalak nola tratatzen dituen jakiteko, ikusi Pribatutasun-politika. + reason_for_email_html: Mezu hau jasotzen ari zara %{name}(r)en eguneraketak posta elektronikoz jasotzea aukeratu duzulako. Ez duzu mezu hauek jaso nahi? Kendu harpidetza + interact_with_this_post: + one: Elkarreragin bidalketa honekin eta aurkitu antzeko gehiago. + other: Elkarreragin bidalketa hauekin eta aurkitu gehiago. + subject: + plural: "%{name}(r)en bidalketa berriak" + singular: 'Bidalketa berria: "%{excerpt}"' + title: + plural: "%{name}(r)en bidalketa berriak" + singular: 'Bidalketa berria: "%{excerpt}"' + email_subscriptions: + active: Aktiboa + confirmations: + show: + changed_your_mind: Iritziz aldatu zara? + success_html: Hemendik aurrera mezuak jasoko dituzu %{name}(e)k bidalketa berriak argitaratzen dituenean. Gehitu %{sender} zure kontaktuetara, bidalketa hauek zure Spam karpetan amai ez dezaten. + title: Izena eman duzu + unsubscribe: Kendu harpidetza + disabled: Desgaitua + inactive: Inaktiboa + no_access: Sarbiderik ez + status: Egoera + subscribers: Harpidedunak emoji_styles: auto: Automatikoa native: Bertakoa @@ -1365,6 +1604,7 @@ eu: content: Sentitzen dugu, zerbait okerra gertatu da gure aldean. title: Orri hau ez da zuzena '503': Orria ezin izan da zerbitzatu zerbitzariaren behin behineko arazo bat dela eta. + go_home: Joan hasierara noscript_html: Mastodon web aplikazioa erabiltzeko, gaitu JavaScript. Bestela, probatu Mastodon plataformarako aplikazio natiboren bat. existing_username_validator: not_found: ezin izan da izen hori duen kide lokalik aurkitu @@ -1380,7 +1620,9 @@ eu: blocks: Zuk blokeatutakoak bookmarks: Laster-markak csv: CSV + custom_filters: Iragazkiak domain_blocks: Domeinuen blokeoak + json: JSON lists: Zerrendak mutes: Zuk mututukoak storage: Multimedia biltegiratzea @@ -1458,7 +1700,10 @@ eu: empty: CSV fitxategi hutsa incompatible_type: Ez da bateragarria aukeratutako inportatze-motarekin invalid_csv_file: 'CSV fitxategi baliogabea. Errorea: %{error}' + invalid_json_file: 'JSON fitxategi baliogabea. Errorea: %{error}' + no_data: Fitxategi honek ez du adierazitako inportazio motarekin bat datorren daturik over_rows_processing_limit: "%{count} lerro baina gehiago ditu" + status_not_found_warning: Zure iragazki batzuek zerbitzari honek ezagutzen ez dituen bidalketa jakin batzuk ezkutatzen dituzte. Bidalketa horiek ez dira automatikoki iragaziko zerbitzariak geroago aurkitzen baditu. too_large: Fitxategia handiegia da failures: Akatsak imported: Inportatuta @@ -1468,6 +1713,50 @@ eu: merge_long: Mantendu dauden erregistroak eta gehitu berriak overwrite: Gainidatzi overwrite_long: Ordeztu oraingo erregistroak berriekin + overwrite_preambles: + blocking_html: + one: "Zure blokeo-zerrenda ordeztera zoaz, %{filename} fitxategiko kontu %{count}ekin gehienez." + other: "Zure blokeo-zerrenda ordeztera zoaz, %{filename} fitxategiko %{count} kontuekin gehienez." + bookmarks_html: + one: "Zure laster-markak ordeztera zoaz, %{filename} fitxategiko bidalketa %{count}ekin gehienez." + other: "Zure laster-markak ordeztera zoaz, %{filename} fitxategiko %{count} bidalketarekin gehienez." + custom_filters_html: + one: "Zure iragazkiak ordeztera zoaz %{filename} fitxategiaren edukiarekin. Gehienez iragazki %{count} gehituko da iragazki berrietara." + other: "Zure iragazkiak ordeztera zoaz %{filename} fitxategiaren edukiarekin. Gehienez %{count} iragazki gehituko dira iragazki berrietara." + domain_blocking_html: + one: "Zure domeinu-blokeoen zerrenda ordeztera zoaz, %{filename} fitxategiko domeinu %{count}ekin gehienez." + other: "Zure domeinu-blokeoen zerrenda ordeztera zoaz, %{filename} fitxategiko %{count} domeinurekin gehienez." + following_html: + one: "%{filename} fitxategiko gehienez kontu %{count} jarraitzera zoaz, eta beste inor ez jarraitzera." + other: "%{filename} fitxategiko gehienez %{count} kontu jarraitzera zoaz, eta beste inor ez jarraitzera." + lists_html: + one: "Zure zerrendak ordeztera zoaz %{filename} fitxategiaren edukiarekin. Gehienez kontu %{count} gehituko da zerrenda berrietara." + other: "Zure zerrendak ordeztera zoaz %{filename} fitxategiaren edukiarekin. Gehienez %{count} kontu gehituko dira zerrenda berrietara." + muting_html: + one: "Mutututako kontuen zerrenda ordeztera zoaz, %{filename} fitxategiko kontu %{count}ekin gehienez." + other: "Mutututako kontuen zerrenda ordeztera zoaz, %{filename} fitxategiko %{count} kontuekin gehienez." + preambles: + blocking_html: + one: "%{filename} fitxategiko gehienez kontu %{count} blokeatzera zoaz." + other: "%{filename} fitxategiko gehienez %{count} kontu blokeatzera zoaz." + bookmarks_html: + one: "%{filename} fitxategiko gehienez bidalketa %{count} gehitzera zoaz zure laster-marketara." + other: "%{filename} fitxategiko gehienez %{count} bidalketa gehitzera zoaz zure laster-marketara." + custom_filters_html: + one: "%{filename} fitxategiko gehienez iragazki %{count} gehitzera zoaz zure iragazkietara." + other: "%{filename} fitxategiko gehienez %{count} iragazki gehitzera zoaz zure iragazkietara." + domain_blocking_html: + one: "%{filename} fitxategiko gehienez domeinu %{count} blokeatzera zoaz." + other: "%{filename} fitxategiko gehienez %{count} domeinu blokeatzera zoaz." + following_html: + one: "%{filename} fitxategiko gehienez kontu %{count} jarraitzera zoaz." + other: "%{filename} fitxategiko gehienez %{count} kontu jarraitzera zoaz." + lists_html: + one: "%{filename} fitxategiko gehienez kontu %{count} gehitzera zoaz zure zerrendetara. Zerrenda berriak sortuko dira gehitzeko zerrendarik ez badago." + other: "%{filename} fitxategiko gehienez %{count} kontu gehitzera zoaz zure zerrendetara. Zerrenda berriak sortuko dira gehitzeko zerrendarik ez badago." + muting_html: + one: "%{filename} fitxategiko gehienez kontu %{count} mututzera zoaz." + other: "%{filename} fitxategiko gehienez %{count} kontu mututzera zoaz." preface: Beste zerbitzari bateko datuak inportatu ditzakezu, esaterako jarraitzen duzun edo blokeatu duzun jendearen zerrenda. recent_imports: Azken inportazioak states: @@ -1492,6 +1781,7 @@ eu: types: blocking: Blokeatutakoen zerrenda bookmarks: Laster-markak + custom_filters: Iragazkiak domain_blocking: Domeinuen blokeo zerrenda following: Jarraitutakoen zerrenda lists: Zerrendak @@ -1544,6 +1834,7 @@ eu: media_attachments: validations: images_and_video: Ezin da irudiak dituen bidalketa batean bideo bat erantsi + not_found: "%{ids} multimedia ez da aurkitu edo beste bidalketa bati erantsita dago dagoeneko" not_ready: Ezin dira prozesatzen amaitu gabeko fitxategiak erantsi. Saiatu geroago! too_many: Ezin dira 4 fitxategi baino gehiago erantsi migrations: @@ -1585,6 +1876,27 @@ eu: copy_account_note_text: 'Erabiltzaile hau %{acct} kontutik dator, hemen berari buruzko zure aurreko oharrak:' navigation: toggle_menu: Txandakatu menua + notification_fallbacks: + added_to_collection: + title_html: "%{name}(e)k bilduma batera gehitu zaitu" + admin_report: + title_html: "%{name}(e)k %{target} salatu du" + admin_sign_up: + title_and_others_html: + one: "%{name}(e)k eta beste batek izena eman dute" + other: "%{name}(e)k eta beste %{count}(e)k izena eman dute" + title_html: "%{name}(e)k izena eman du" + collection_update: + title_html: "%{name}(e)k zu zauden bilduma bat eguneratu du" + generic: + sign_in: Hasi saioa Mastodonen web-aplikazioan + summary_html: Mastodonen bertsio berriena onartzen ez duen aplikazio batean zaude. %{link} funtzionalitate guztiak izateko. + moderation_warning: + summary_html: Mastodonen bertsio berriena onartzen ez duen aplikazio batean zaude. %{link}. + title: Moderazio-abisu bat jaso duzu. + severed_relationships: + summary_html: "%{from} zerbitzariko administratzaile batek %{target} kanporatu du; horrek esan nahi du ezin duzula haren eguneraketarik jaso edo harekin elkarreragin. %{link} galdutako harremanen zerrenda eskuratzeko." + title: "%{name}(r)ekin konexioak galdu dira" notification_mailer: admin: report: @@ -1633,6 +1945,7 @@ eu: administration_emails: Administratzailearen posta elektroniko bidezko jakinarazpenak email_events: E-mail jakinarazpenentzako gertaerak email_events_hint: 'Hautatu jaso nahi dituzun gertaeren jakinarazpenak:' + moderation_emails: Moderazioko jakinarazpen-mezuak number: human: decimal_units: @@ -1656,6 +1969,7 @@ eu: next: Hurrengoa older: Zaharragoa prev: Aurrekoa + truncate_html: "…" polls: errors: already_voted: Inkesta honetan dagoeneko bozkatu duzu @@ -1676,6 +1990,8 @@ eu: posting_defaults: Bidalketarako lehenetsitakoak public_timelines: Denbora-lerro publikoak privacy: + email_subscriptions: Bidali bidalketak posta elektronikoz + email_subscriptions_hint_html: Gehitu zure profilean saioa hasi gabeko erabiltzaileentzat agertzen den posta elektroniko bidezko izen-emate inprimaki bat. Bisitariek beren helbide elektronikoa idatzi eta onartzen dutenean, Mastodonek zure bidalketa publikoen eguneraketak bidaliko ditu posta elektronikoz. hint_html: "Pertsonalizatu nola nahi duzun zure profila eta argitalpenak aurkitzea. Mastodonen hainbat ezaugarri gaituta daudenean lagungarri izan dakizkizuke publiko zabalago batera iristeko. Hartu une bat ezarpen horiek berrikusteko, zure erabilerara egokitzen direla ziurtatzeko." privacy: Pribatutasuna privacy_hint_html: Kontrolatu besteen onurarako zenbat partekatu nahi duzun. Jendeak profil interesgarriak eta aplikazio apartak aurki ditzazke zuk nor jarraitzen duzun eta argitaratzeko darabilzun aplikazioak ikustean, baina baliteke ezkutuan mantentzea nahiago izatea. @@ -1864,9 +2180,11 @@ eu: enabled: Ezabatu bidalketa zaharrak automatikoki enabled_hint: Zure bidalketa zaharrak automatikoki ezabatzen ditu zehazturiko denbora mugara iristean, beheko baldintza bat betetzen ez bada exceptions: Salbuespenak + explanation: Ezabatze automatikoa lehentasun txikiarekin egiten da. Atzerapena egon daiteke adin-atalasera iritsi eta ezabatu arte. ignore_favs: Ez ezabatu gogokoak ignore_reblogs: Ez ezabatu bultzadak interaction_exceptions: Elkarrekintzetan oinarritutako salbuespenak + interaction_exceptions_explanation: Aldi baterako gogokoen edo bultzaden atalasea gainditzen duten bidalketak gorde egin daitezke, nahiz eta geroago jaitsi. keep_direct: Mantendu mezu zuzenak keep_direct_hint: Zure mezu zuzenak ez dira ezabatuko keep_media: Mantendu multimediak dituzten bidalketak @@ -1906,6 +2224,9 @@ eu: future_preamble_html: Gure zerbitzu-baldintzetan aldaketa batzuk egiten ari gara, eta %{date}-tik aurrera jarriko dira indarrean. Eguneratutako baldintzak berrikustea gomendatzen dizugu. past_preamble_html: Zerbitzu-baldintzak aldatu ditugu zure azken bisitatik. Baldintza eguneratuak berrikustera animatzen zaitugu. review_link: Berrikusi zerbitzu-baldintzak + title: "%{domain} zerbitzariaren zerbitzu-baldintzak aldatzen ari dira" + themes: + default: Mastodon time: formats: default: "%Y(e)ko %b %d, %H:%M" @@ -1930,9 +2251,34 @@ eu: recovery_codes: Berreskuratze kodeen babes-kopia recovery_codes_regenerated: Berreskuratze kodeak ongi sortu dira recovery_instructions_html: Zure telefonora sarbidea galtzen baduzu, beheko berreskuratze kode bat erabili dezakezu kontura berriro sartu ahal izateko. Gore barreskuratze kodeak toki seguruan. Adibidez inprimatu eta dokumentu garrantzitsuekin batera gorde. + resume_app_authorization: Jarraitu aplikazioaren baimentzearekin + role_requirement: "%{domain} zerbitzariak bi urratseko autentifikazioa konfiguratzea eskatzen dizu Mastodon erabili aurretik." webauthn: Segurtasun gakoak + unsubscriptions: + create: + action: Joan zerbitzariaren hasiera-orrira + email_subscription: + confirmation_html: Ez duzu %{name}(r)en mezurik jasoko aurrerantzean. + title: Harpidetza kendu da + user: + confirmation_html: Ez duzu %{domain} zerbitzariko Mastodonen %{type} jasoko aurrerantzean. + notification_emails: + favourite: gogokoen jakinarazpen-mezuak + follow: jarraitzaileen jakinarazpen-mezuak + follow_request: jarraitzeko eskaeren mezuak + mention: aipamenen jakinarazpen-mezuak + reblog: bultzaden jakinarazpen-mezuak + show: + action: Kendu harpidetza + email_subscription: + confirmation_html: Ez duzu mezurik jasoko kontu honek bidalketa berriak argitaratzen dituenean. + title: Kendu %{name}(r)en harpidetza? + user: + confirmation_html: Ez duzu %{domain} zerbitzariko Mastodonen %{type} jasoko. + title: Kendu %{type} harpidetza? user_mailer: announcement_published: + description: "%{domain} zerbitzariko administratzaileek iragarpen bat egin dute:" subject: Zerbitzuaren iragarpena title: "%{domain} zerbitzuaren iragarpena" appeal_approved: @@ -1957,6 +2303,14 @@ eu: further_actions_html: Ez bazara zu izan, "%{action}" ekintza berehala egitea gomendatzen dugu, kontua arriskarazi daiteke eta. subject: Autentifikazioaren bigarren faktoreak huts egin du title: Huts egin duen autentifikazioaren bigarren faktorea + sign_in_token: + change_password: aldatu zure pasahitza + details: 'Hona hemen saiakeraren xehetasunak:' + explanation: 'Denbora luzez jarduerarik gabe egon ondoren zure kontuan saioa hasteko saiakera bat hauteman dugu. Zu bazara, idatzi beheko segurtasun-kodea saioa hasteko egiaztapen-orrian:' + further_actions: 'Zu ez bazara, aldatu zure pasahitza eta gaitu bi urratseko autentifikazioa zure kontuan. Hemen egin dezakezu:' + further_actions_html: Zu ez bazara, berehala %{action} eta gaitu bi urratseko autentifikazioa zure kontua seguru mantentzeko. + subject: Berretsi saioa hasteko saiakera + title: Saioa hasteko saiakera suspicious_sign_in: change_password: aldatu pasahitza details: 'Hemen daude saio hasieraren xehetasunak:' @@ -1965,7 +2319,10 @@ eu: subject: Zure kontura sarbidea egon da IP helbide berri batetik title: Saio hasiera berria terms_of_service_changed: + agreement: "%{domain} erabiltzen jarraituz, baldintza hauek onartzen dituzu. Eguneratutako baldintzekin ados ez bazaude, %{domain} zerbitzariarekiko hitzarmena edozein unetan amai dezakezu zure kontua ezabatuz." changelog: 'Laburbilduz, hau da eguneratze honek zuretzat esan nahi duena:' + description: 'Mezu hau jasotzen ari zara %{domain} zerbitzariko zerbitzuaren baldintzetan aldaketa batzuk egiten ari garelako. Eguneraketa hauek %{date} egunean sartuko dira indarrean. Eguneratutako baldintzak osorik hemen berrikustera gonbidatzen zaitugu:' + description_html: Mezu hau jasotzen ari zara %{domain} zerbitzariko zerbitzuaren baldintzetan aldaketa batzuk egiten ari garelako. Eguneraketa hauek %{date} egunean sartuko dira indarrean. Eguneratutako baldintzak osorik hemen berrikustera gonbidatzen zaitugu. sign_off: "%{domain} taldea" subject: Zerbitzu-baldintzen eguneratzeak subtitle: "%{domain}(e)ko zerbitzu-baldintzak aldatu egingo dira" @@ -2043,8 +2400,12 @@ eu: title: Ongi etorri, %{name}! users: follow_limit_reached: Ezin dituzu %{limit} pertsona baino gehiago jarraitu + generic_access_help_html: Arazoak dituzu zure kontura sartzeko? %{email} helbidearekin jar zaitezke harremanetan laguntza eskatzeko go_to_sso_account_settings: Jo zure identitate-hornitzaileko kontuaren ezarpenetara + inactive_sign_in_confirmation: Aspaldi ez duzu saioa hasi; beraz, segurtasun-kode bat bidaltzen ari gara zure helbide elektronikora zu zarela berresteko. + inactive_sign_in_title: Berretsi segurtasun-kodea invalid_otp_token: Bi faktoreetako kode baliogabea + invalid_sign_in_token: Segurtasun-kode baliogabea otp_lost_help_html: 'Bietara sarbidea galdu baduzu, jarri kontaktuan hemen: %{email}' rate_limited: Autentifikazio saiakera gehiegi, saiatu berriro geroago. seamless_external_login: Kanpo zerbitzu baten bidez hasi duzu saioa, beraz pasahitza eta e-mail ezarpenak ez daude eskuragarri. @@ -2069,6 +2430,7 @@ eu: error: Arazo bat egon da zure segurtasun gakoa ezabatzean. Saiatu berriro mesedez. success: Zure segurtasun gakoa behar bezala ezabatu da. invalid_credential: Segurtasun gako baliogabea + nickname: Ezizena nickname_hint: Sartu zure segurtasun gako berriaren ezizena not_enabled: Ez duzu WebAuthn gaitu oraindik not_supported: Nabigatzaile honek ez ditu segurtasun gakoak onartzen diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 6e28374..abbaf90 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -69,6 +69,7 @@ fi: demote: Alenna destroyed_msg: Käyttäjän %{username} tiedot ovat nyt jonossa poistettavaksi välittömästi disable: Jäädytä + disable_sign_in_token: Poista turvakoodihaaste käytöstä väliaikaisesti disable_sign_in_token_auth: Poista sähköpostitunnuksella todennus käytöstä disable_two_factor_authentication: Poista kaksivaiheinen todennus käytöstä disabled: Jäädytetty @@ -78,6 +79,7 @@ fi: email: Sähköpostiosoite email_status: Sähköpostiosoitteen tila enable: Kumoa jäädytys + enable_sign_in_token: Ota turvakoodihaaste käyttöön enable_sign_in_token_auth: Ota sähköpostitunnuksella todennus käyttöön enabled: Käytössä enabled_msg: Käyttäjän %{username} tilin jäädytys kumottiin onnistuneesti @@ -969,7 +971,7 @@ fi: privacy: Yksityisyys profile_directory: Profiilihakemisto public_timelines: Julkiset aikajanat - publish_statistics: Julkaise tilastot + publish_statistics: Julkaise tilastoja title: Löydettävyys trends: Trendit wrapstodon: Wrapstodon @@ -1820,7 +1822,7 @@ fi: authentication_methods: otp: kaksivaiheisen todennuksen sovelluksella password: salasanalla - sign_in_token: sähköpostin suojauskoodilla + sign_in_token: sähköpostin turvakoodilla webauthn: suojausavaimella description_html: Jos näet toimintaa, jota et tunnista, harkitse salasanan vaihtamista ja kaksivaiheisen todennuksen käyttöön ottamista. empty: Todennushistoriaa ei ole saatavilla @@ -2296,14 +2298,20 @@ fi: failed_2fa: details: 'Sisäänkirjautumispyrkimyksen yksityiskohtaiset tiedot:' explanation: Joku on yrittänyt kirjautua tilillesi mutta antoi väärän toisen todennustunnisteen. - further_actions_html: Jos se et ollut sinä, suosittelemme, että %{action} välittömästi, sillä se on saattanut vaarantua. + further_actions_html: Jos se et ollut sinä, suosittelemme, että %{action} heti, sillä se on saattanut vaarantua. subject: Kaksivaiheisen todennuksen virhe title: Kaksivaiheisen todennuksen toinen vaihe epäonnistui + sign_in_token: + change_password: vaihdat salasanasi + further_actions: 'Jos se et ollut sinä, vaihda salasanasi ja ota kaksivaiheinen todennus käyttöön tililläsi. Voit tehdä sen täällä:' + further_actions_html: Jos se et ollut sinä, suosittelemme, että %{action} heti ja otat kaksivaiheisen todennuksen käyttöön pitääksesi tilisi turvassa. + subject: Vahvista kirjautumisyritys + title: Kirjautumisyritys suspicious_sign_in: change_password: vaihdat 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} heti ja otat käyttöön kaksivaiheisen todennuksen pitääksesi tilisi turvassa. + further_actions_html: Jos se et ollut sinä, suosittelemme, että %{action} heti ja otat kaksivaiheisen todennuksen käyttöön pitääksesi tilisi turvassa. subject: Tiliäsi on käytetty uudesta IP-osoitteesta title: Uusi kirjautuminen terms_of_service_changed: @@ -2389,7 +2397,10 @@ fi: users: follow_limit_reached: Et voi seurata yli %{limit} käyttäjää go_to_sso_account_settings: Avaa identiteettitarjoajasi tiliasetukset + inactive_sign_in_confirmation: Siitä on aikaa, kun olet viimeksi kirjaudunut sisään, joten lähetämme turvakoodin sähköpostiosoitteeseesi, jotta voimme vahvistaa henkilöllisyytesi. + inactive_sign_in_title: Vahvista turvakoodi invalid_otp_token: Väärä kaksivaiheisen todennuksen koodi + invalid_sign_in_token: Virheellinen turvakoodi otp_lost_help_html: Jos sinulla ei ole pääsyä kumpaankaan, voit ottaa yhteyden osoitteeseen %{email} rate_limited: Liian monta todennusyritystä – yritä uudelleen myöhemmin. seamless_external_login: Olet kirjautunut ulkoisen palvelun kautta, joten salasana- ja sähköpostiasetukset eivät ole käytettävissä. diff --git a/config/locales/fr-CA.yml b/config/locales/fr-CA.yml index ad420da..230b531 100644 --- a/config/locales/fr-CA.yml +++ b/config/locales/fr-CA.yml @@ -69,6 +69,7 @@ fr-CA: demote: Rétrograder destroyed_msg: Les données de %{username} sont maintenant en file d’attente pour être supprimées imminemment disable: Geler + disable_sign_in_token: Désactiver temporairement le contrôle par code de sécurité disable_sign_in_token_auth: Désactiver le jeton d'authentification par courriel disable_two_factor_authentication: Désactiver l’authentification à deux facteurs disabled: Gelé @@ -78,6 +79,7 @@ fr-CA: email: Courriel email_status: État du courriel enable: Dégeler + enable_sign_in_token: Activer le contrôle par code de sécurité enable_sign_in_token_auth: Activer le jeton d'authentification par courriel enabled: Activé enabled_msg: Le compte de %{username} a été dégelé avec succès @@ -609,9 +611,9 @@ fr-CA: delete: Supprimer ip: Adresse IP request_body: Corps de la demande - title: Déboguer les rappels + title: Rappels de débogage providers: - active: Activé + active: Actif base_url: URL de base callback: Rappel delete: Supprimer @@ -979,7 +981,7 @@ fr-CA: users: Aux utilisateur·rice·s connecté·e·s localement feed_access: modes: - authenticated: Utilisateurs authentifiés uniquement + authenticated: Utilisateur·rice·s authentifié·e·s uniquement disabled: Nécessite un rôle spécifique public: Tout le monde landing_page: @@ -1268,7 +1270,7 @@ fr-CA: delete: Supprimer edit_preset: Éditer les avertissements prédéfinis empty: Vous n'avez pas encore créé de paramètres prédéfinis pour les avertissements. - title: Préréglages d'avertissement + title: Modèles d'avertissement webhooks: add_new: Ajouter un point de terminaison delete: Supprimer @@ -1438,7 +1440,7 @@ fr-CA: title: Se connecter à %{domain} sign_up: manual_review: Les inscriptions sur %{domain} passent par une revue manuelle de nos modérateurs. Pour les aider, écrivez un peu plus sur vous et pourquoi vous souhaitez créer un compte sur %{domain}. - preamble: Avec un compte sur ce serveur Mastodon, vous pourrez suivre n'importe quelle autre personne du fediverse, quel que soit l'endroit où son compte est hébergé. + preamble: Avec un compte sur ce serveur Mastodon, vous pourrez suivre n'importe quelle autre personne du Fédivers, quel que soit l'endroit où son compte est hébergé. title: Mettons les choses en place pour %{domain}. status: account_status: État du compte @@ -1496,8 +1498,11 @@ fr-CA: deletes: challenge_not_passed: Les renseignements que vous avez entrés n'étaient pas exacts confirm_password: Entrez votre mot de passe actuel pour vérifier votre identité + confirm_username: Confirmez le nom d'utilisateur·rice + confirm_username_hint_html: Veuillez taper %{username} pour confirmer le compte que vous souhaitez supprimer proceed: Supprimer le compte success_msg: Votre compte a été supprimé avec succès + title: Supprimer le compte %{acct} warning: before: 'Veuillez lire attentivement ces notes avant de continuer :' caches: Le contenu mis en cache par d'autres serveurs peut persister @@ -1580,7 +1585,7 @@ fr-CA: status: État subscribers: Abonné·e·s emoji_styles: - auto: Auto + auto: Automatique native: Natif twemoji: Twemoji errors: @@ -2296,6 +2301,14 @@ fr-CA: further_actions_html: Si ce n'était pas vous, nous vous recommandons %{action} immédiatement car il pourrait être compromis. subject: Échec de l'authentification à double facteur title: Échec de l'authentification à double facteur + sign_in_token: + change_password: changer votre mot de passe + details: 'Voici les détails de la tentative :' + explanation: 'Nous avons détecté une tentative de connexion à votre compte après une longue période d''inactivité. Si vous en êtes à l''origine, veuillez entrer le code ci-dessous sur la page de connexion :' + further_actions: 'S’il ne s’agit pas de vous, veuillez changer votre mot de passe et activer l’authentification à deux facteurs sur votre compte. Vous pouvez le faire ici :' + further_actions_html: Si ce n’était pas vous, nous vous recommandons de %{action} immédiatement et d’activer l’authentification à deux facteurs afin de garder votre compte sécurisé. + subject: Veuillez confirmer la tentative de connexion + title: Tentative de connexion suspicious_sign_in: change_password: changer votre mot de passe details: 'Voici les détails de la connexion :' @@ -2385,8 +2398,12 @@ fr-CA: title: Bienvenue à bord, %{name} ! users: follow_limit_reached: Vous ne pouvez pas suivre plus de %{limit} personnes + generic_access_help_html: Rencontrez-vous des difficultés d’accès à votre compte ? Vous pouvez contacter %{email} pour obtenir de l’aide go_to_sso_account_settings: Accédez aux paramètres du compte de votre fournisseur d'identité + inactive_sign_in_confirmation: Cela fait un certain temps depuis votre dernière connexion, c'est pourquoi nous vous avons envoyé un code de sécurité par courriel pour vérifier votre tentative de connexion. + inactive_sign_in_title: Veuillez confirmer le code de sécurité invalid_otp_token: Le code d’authentification à deux facteurs est invalide + invalid_sign_in_token: Code de sécurité non valide otp_lost_help_html: Si vous perdez accès aux deux, vous pouvez contacter %{email} rate_limited: Trop de tentatives d'authentification, réessayez plus tard. seamless_external_login: Vous êtes connectés via un service externe, donc les paramètres de mot de passe et de courriel ne sont pas disponibles. diff --git a/config/locales/fr.yml b/config/locales/fr.yml index c0829d7..e724742 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -69,6 +69,7 @@ fr: demote: Rétrograder destroyed_msg: Les données de %{username} sont maintenant en file d’attente pour être supprimées imminemment disable: Désactiver + disable_sign_in_token: Désactiver temporairement le contrôle par code de sécurité disable_sign_in_token_auth: Désactiver le jeton d'authentification par courriel disable_two_factor_authentication: Désactiver l’authentification à deux facteurs disabled: Désactivé @@ -78,6 +79,7 @@ fr: email: Adresse de courriel email_status: État de l'adresse de courriel enable: Activer + enable_sign_in_token: Activer le contrôle par code de sécurité enable_sign_in_token_auth: Activer le jeton d'authentification par courriel enabled: Activé enabled_msg: Le compte de %{username} a été activé avec succès @@ -609,9 +611,9 @@ fr: delete: Supprimer ip: Adresse IP request_body: Corps de la demande - title: Déboguer les rappels + title: Rappels de débogage providers: - active: Activé + active: Actif base_url: URL de base callback: Rappel delete: Supprimer @@ -979,7 +981,7 @@ fr: users: Aux utilisateur·rice·s connecté·e·s localement feed_access: modes: - authenticated: Utilisateurs authentifiés uniquement + authenticated: Utilisateur·rice·s authentifié·e·s uniquement disabled: Nécessite un rôle spécifique public: Tout le monde landing_page: @@ -1266,9 +1268,9 @@ fr: warning_presets: add_new: Ajouter un nouveau delete: Supprimer - edit_preset: Éditer les avertissements prédéfinis - empty: Vous n'avez pas encore créé de paramètres prédéfinis pour les avertissements. - title: Préréglages d'avertissement + edit_preset: Modifier les modèles d'avertissement + empty: Vous n'avez pas encore créé de modèles d'avertissement. + title: Modèles d'avertissement webhooks: add_new: Ajouter un point de terminaison delete: Supprimer @@ -1438,7 +1440,7 @@ fr: title: Se connecter à %{domain} sign_up: manual_review: Les inscriptions sur %{domain} passent par une revue manuelle de nos modérateurs. Pour les aider, écrivez un peu plus sur vous et pourquoi vous souhaitez créer un compte sur %{domain}. - preamble: Avec un compte sur ce serveur Mastodon, vous pourrez suivre n'importe quelle autre personne du fediverse, quel que soit l'endroit où son compte est hébergé. + preamble: Avec un compte sur ce serveur Mastodon, vous pourrez suivre n'importe quelle autre personne du Fédivers, quel que soit l'endroit où son compte est hébergé. title: Mettons les choses en place pour %{domain}. status: account_status: État du compte @@ -1496,8 +1498,11 @@ fr: deletes: challenge_not_passed: Les renseignements que vous avez entrés n'étaient pas exacts confirm_password: Entrez votre mot de passe actuel pour vérifier votre identité + confirm_username: Confirmez le nom d'utilisateur·rice + confirm_username_hint_html: Veuillez taper %{username} pour confirmer le compte que vous souhaitez supprimer proceed: Supprimer le compte success_msg: Votre compte a été supprimé avec succès + title: Supprimer le compte %{acct} warning: before: 'Veuillez lire attentivement ces notes avant de continuer :' caches: Le contenu mis en cache par d'autres serveurs peut persister @@ -1580,7 +1585,7 @@ fr: status: État subscribers: Abonné·e·s emoji_styles: - auto: Auto + auto: Automatique native: Natif twemoji: Twemoji errors: @@ -2296,6 +2301,14 @@ fr: further_actions_html: Si ce n'était pas vous, nous vous recommandons %{action} immédiatement car il pourrait être compromis. subject: Échec de l'authentification à double facteur title: Échec de l'authentification à double facteur + sign_in_token: + change_password: changer votre mot de passe + details: 'Voici les détails de la tentative :' + explanation: 'Nous avons détecté une tentative de connexion à votre compte après une longue période d''inactivité. Si vous en êtes à l''origine, veuillez entrer le code ci-dessous sur la page de connexion :' + further_actions: 'S’il ne s’agit pas de vous, veuillez changer votre mot de passe et activer l’authentification à deux facteurs sur votre compte. Vous pouvez le faire ici :' + further_actions_html: Si ce n’était pas vous, nous vous recommandons de %{action} immédiatement et d’activer l’authentification à deux facteurs afin de garder votre compte sécurisé. + subject: Veuillez confirmer la tentative de connexion + title: Tentative de connexion suspicious_sign_in: change_password: changer votre mot de passe details: 'Voici les détails de la connexion :' @@ -2385,8 +2398,12 @@ fr: title: Bienvenue à bord, %{name} ! users: follow_limit_reached: Vous ne pouvez pas suivre plus de %{limit} personnes + generic_access_help_html: Rencontrez-vous des difficultés d’accès à votre compte ? Vous pouvez contacter %{email} pour obtenir de l’aide go_to_sso_account_settings: Accédez aux paramètres du compte de votre fournisseur d'identité + inactive_sign_in_confirmation: Cela fait un certain temps depuis votre dernière connexion, c'est pourquoi nous vous avons envoyé un code de sécurité par courriel pour vérifier votre tentative de connexion. + inactive_sign_in_title: Veuillez confirmer le code de sécurité invalid_otp_token: Le code d’authentification à deux facteurs est invalide + invalid_sign_in_token: Code de sécurité non valide otp_lost_help_html: Si vous perdez accès aux deux, vous pouvez contacter %{email} rate_limited: Trop de tentatives d'authentification, réessayez plus tard. seamless_external_login: Vous êtes connectés via un service externe, donc les paramètres de mot de passe et de courriel ne sont pas disponibles. diff --git a/config/locales/ga.yml b/config/locales/ga.yml index 9e1c510..0774003 100644 --- a/config/locales/ga.yml +++ b/config/locales/ga.yml @@ -78,6 +78,7 @@ ga: demote: Ísligh destroyed_msg: Tá sonraí %{username} ciúáilte anois le scriosadh gan mhoill disable: Reoigh + disable_sign_in_token: Díchumasaigh go sealadach an dúshlán cóid slándála disable_sign_in_token_auth: Díchumasaigh fíordheimhniú comhartha ríomhphoist disable_two_factor_authentication: Díchumasaigh 2FA disabled: Reoite @@ -87,6 +88,7 @@ ga: email: Ríomhphost email_status: Stádas ríomhphoist enable: Dí-reoigh + enable_sign_in_token: Cumasaigh dúshlán an chóid slándála enable_sign_in_token_auth: Cumasaigh fíordheimhniú comhartha ríomhphoist enabled: Ar chumas enabled_msg: D'éirigh le dí-reoite cuntas %{username} @@ -1561,8 +1563,11 @@ ga: deletes: challenge_not_passed: Ní raibh an fhaisnéis a d'iontráil tú ceart confirm_password: Cuir isteach do phasfhocal reatha chun d'aitheantas a fhíorú + confirm_username: Deimhnigh ainm úsáideora + confirm_username_hint_html: Clóscríobh %{username} le do thoil chun an cuntas is mian leat a scriosadh a dhearbhú proceed: Scrios cuntas success_msg: Scriosadh do chuntas go rathúil + title: Scrios an cuntas %{acct} warning: before: 'Sula dtéann tú ar aghaidh, léigh na nótaí seo go cúramach le do thoil:' caches: Seans go seasfaidh inneachar atá i dtaisce ag freastalaithe eile @@ -2445,6 +2450,14 @@ ga: further_actions_html: Mura tusa a bhí ann, molaimid duit %{action} a dhéanamh láithreach toisc go bhféadfadh sé a bheith i gcontúirt. subject: Teip fíordheimhnithe dara fachtóir title: Theip ar fhíordheimhniú an dara fachtóir + sign_in_token: + change_password: athraigh do phasfhocal + details: 'Seo sonraí na hiarrachta:' + explanation: 'Braitheadh ​​iarracht logáil isteach i do chuntas tar éis tréimhse fhada neamhghníomhaíochta. Más tusa atá i gceist, cuir isteach an cód slándála thíos ar an leathanach fíoraithe logála isteach:' + further_actions: 'Mura tusa a rinne é seo, athraigh do phasfhocal le do thoil agus cuir fíordheimhniú dhá fhachtóir i ngníomh ar do chuntas. Is féidir leat é sin a dhéanamh anseo:' + further_actions_html: Mura tusa a rinne é seo, molaimid duit %{action} láithreach agus fíordheimhniú dhá fhachtóir a chumasú chun do chuntas a choinneáil slán. + subject: Deimhnigh an iarracht logáil isteach, le do thoil + title: Iarracht logáil isteach suspicious_sign_in: change_password: do phasfhocal a athrú details: 'Seo sonraí faoin síniú isteach:' @@ -2537,8 +2550,12 @@ ga: title: Fáilte ar bord, %{name}! users: follow_limit_reached: Ní féidir leat níos mó ná %{limit} duine a leanúint + generic_access_help_html: An bhfuil deacracht agat rochtain a fháil ar do chuntas? Is féidir leat teagmháil a dhéanamh le %{email} chun cúnamh a fháil go_to_sso_account_settings: Téigh chuig socruithe cuntais do sholáthraí aitheantais + inactive_sign_in_confirmation: Tá tamall ann ó logáil tú isteach, mar sin táimid ag seoladh cód slándála chuig do sheoladh ríomhphoist chun a dhearbhú gurb tusa atá i gceist. + inactive_sign_in_title: Deimhnigh an cód slándála, le do thoil invalid_otp_token: Cód dhá-fhachtóir neamhbhailí + invalid_sign_in_token: Cód slándála neamhbhailí otp_lost_help_html: Má chaill tú rochtain ar an dá cheann, is féidir leat dul i dteagmháil le %{email} rate_limited: An iomarca iarrachtaí fíordheimhnithe, bain triail eile as ar ball. seamless_external_login: Tá tú logáilte isteach trí sheirbhís sheachtrach, mar sin níl socruithe pasfhocail agus ríomhphoist ar fáil. diff --git a/config/locales/gd.yml b/config/locales/gd.yml index 3d26a6d..9843171 100644 --- a/config/locales/gd.yml +++ b/config/locales/gd.yml @@ -75,6 +75,7 @@ gd: demote: Ìslich destroyed_msg: Chaidh an dàta aig %{username} a chur air a’ chiutha ach an dèid a sguabadh às an ceann greis bheag disable: Reòth + disable_sign_in_token: Cuir dùbhlan còd tèarainteachd à comas gu sealadach disable_sign_in_token_auth: Cuir à comas dearbhadh le tòcan puist-d disable_two_factor_authentication: Cuir an dearbhadh dà-cheumnach à comas disabled: Reòthte @@ -84,6 +85,7 @@ gd: email: Post-d email_status: Staid a’ phuist-d enable: Dì-reòth + enable_sign_in_token: Cuir an comas dùbhlan còd tèarainteachd enable_sign_in_token_auth: Cuir an comas dearbhadh le tòcan puist-d enabled: An comas enabled_msg: Chaidh an cunntas aig %{username} a dhì-reòthadh @@ -208,6 +210,7 @@ gd: create_user_role: Cruthaich dreuchd create_username_block: Cruthaich riaghailt ainm-cleachdaiche demote_user: Ìslich an cleachdaiche + destroy_account: Sguab às dàta a’ chunntais destroy_announcement: Sguab às am brath-fios destroy_canonical_email_block: Sguab às bacadh a’ phuist-d destroy_custom_emoji: Sguab às an t-Emoji gnàthaichte @@ -276,6 +279,7 @@ gd: create_user_role_html: Chruthaich %{name} an dreuchd %{target} create_username_block_html: Chuir %{name} riaghailt ris airson ainmean-cleachdaidh sa bheil %{target} demote_user_html: Dh’ìslich %{name} an cleachdaiche %{target} + destroy_account_html: Sguab %{name} às dàta a’ chunntais aig %{target} destroy_announcement_html: Sguab %{name} às am brath-fios %{target} destroy_canonical_email_block_html: Dhì-bhac %{name} am post-d air a bheil an hais %{target} destroy_collection_html: Thug %{name} cruinneachadh aig %{target} air falbh @@ -1536,8 +1540,11 @@ gd: deletes: challenge_not_passed: Chan eil am fiosrachadh a chuir thu a-steach mar bu chòir confirm_password: Cuir a-steach am facal-faire làithreach a dhearbhadh cò thusa + confirm_username: Dearbh an t-ainm-cleachdaiche + confirm_username_hint_html: Cuir ann %{username} a dhearbhadh a’ chunntais a tha thu airson sguabadh às proceed: Sguab às an cunntas success_msg: Chaidh an cunntas agad a sguabadh às + title: Sguab às an cunntas %{acct} warning: before: 'Mus lean thu air adhart, leugh na nòtaichean seo gu cùramach:' caches: Dh’fhaoidte gum mair susbaint ann an tasgadain fhrithealaichean eile @@ -1639,6 +1646,7 @@ gd: content: Tha sinn duilich ach chaidh rudeigin ceàrr a-bhos an-seo. title: Chan eil an duilleag seo mar bu chòir '503': Cha b’ urrainn an duilleag fhrithealadh ri linn mearachd sealach an fhrithealaiche. + go_home: Dhachaigh noscript_html: Airson aplacaid-lìn Mastodon a chleachdadh, cuir JavaScript an comas. Mar roghainn eile, ’s urrainn dhut fear dhe na cliantan tùsail airson Mastodon dhan ùrlar agad fheuchainn. existing_username_validator: not_found: cha b’ urrainn dhuinn cleachdaiche ionadail a lorg air a bheil an t-ainm-cleachdaiche seo @@ -1749,6 +1757,7 @@ gd: incompatible_type: Chan eil e co-chòrdail le seòrsa an ion-phortaidh a thagh thu invalid_csv_file: 'Faidhle CSV mì-dhligheach. Mearachd: %{error}' invalid_json_file: 'Faidhle JSON mì-dhligheach. Mearachd: %{error}' + no_data: Chan eil dàta san fhaidhle seo a mhaidsicheas seòrsa an ion-phortaidh over_rows_processing_limit: tha còrr is %{count} ràgh(an) ann status_not_found_warning: Falaichidh cuid dhe na criathragan agad postaichean sònraichte air nach eil am frithealaiche seo eòlach. Cha dèid na postaichean seo a chriathradh gu fèin-obrachail ma gheibh am frithealaiche lorg orra uaireigin sam àm ri teachd. too_large: Tha am faidhle ro mhòr @@ -2390,6 +2399,14 @@ gd: further_actions_html: Mur e thu fhèin a bh’ ann, mholamaid gun %{action} sa bhad on a chaidh briseadh a-steach dha ma dh’fhaoidte. subject: Dh’fhàillig dàrna ceum an dearbhaidh title: Dh’fhàillig dàrna ceum an dearbhaidh + sign_in_token: + change_password: atharraich thu am facal-faire agad + details: 'Seo mion-fhiosrachadh mun oidhirp:' + explanation: 'Mhothaich sinn do dh’oidhirp clàraidh a-steach dhan chunntas agad às dèidh ùine mhòr. Mas e tusa a bh’ ann, cuir a-steach an còd tèarainteachd gu h-ìosal air duilleag dùbhlan a’ chlàraidh a-steach:' + further_actions: 'Mur e tusa a bh’ ann, atharraich am facal-faire agad agus cuir an comas an dearbhadh dà-cheumnach air a’ chunntas agad. ’S urrainn dhut sin a dhèanamh an-seo:' + further_actions_html: Mur e thu fhèin a bh’ ann, mholamaid gun %{action} sa bhad agus gun cuir thu an dearbhadh dà-cheumnach an comas airson an cunntas agad a chumail tèarainte. + subject: Dearbh an oidhirp air clàradh a-steach + title: Oidhirp clàraidh a-steach suspicious_sign_in: change_password: atharraich thu am facal-faire agad details: 'Seo mion-fhiosrachadh mun chlàradh a-steach:' @@ -2481,8 +2498,12 @@ gd: title: Fàilte air bòrd, %{name}! users: follow_limit_reached: Chan urrainn dhut còrr is %{limit} daoine a leantainn + generic_access_help_html: A bheil trioblaid agad le inntrigeadh a’ chunntais agad? ’S urrainn dhut fios a chur gu %{email} airson taic go_to_sso_account_settings: Tadhail air roghainnean cunntas solaraiche na dearbh-aithne agad + inactive_sign_in_confirmation: Is fhada on uairsin ’s mar sin dheth cuiridh sinn còd tèarainteachd dhan t-seòladh puist-d agad ach an dearbhamaid gur e tusa a th’ ann. + inactive_sign_in_title: Dearbh an còd tèarainteachd invalid_otp_token: Còd dà-cheumnach mì-dhligheach + invalid_sign_in_token: Còd tèarainteachd mì-dhligheach otp_lost_help_html: Ma chaill thu an t-inntrigeadh dhan dà chuid diubh, ’s urrainn dhut fios a chur gu %{email} rate_limited: Cus oidhirpean dearbhaidh, feuch ris a-rithist an ceann greis. seamless_external_login: Rinn thu clàradh a-steach le seirbheis on taobh a-muigh, mar sin chan eil roghainnean an fhacail-fhaire ’s a’ phuist-d ri làimh dhut. diff --git a/config/locales/he.yml b/config/locales/he.yml index 0ee8b1b..e1366b6 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -72,6 +72,7 @@ he: demote: הורדה בדרגה destroyed_msg: הנתונים של %{username} נכנסו לתור המחיקה וצפויים להימחק באופן מיידי disable: הקפאה + disable_sign_in_token: לבטל זמנית אתגר קוד אבטחה disable_sign_in_token_auth: ביטול הזדהות באמצעות אסימון דוא״ל disable_two_factor_authentication: ביטול הזדהות דו־שלבית disabled: מוקפא @@ -81,6 +82,7 @@ he: email: דוא״ל email_status: מצב דוא״ל enable: ביטול הקפאה + enable_sign_in_token: אפשר אתגר קוד אבטחה enable_sign_in_token_auth: הפעלת אסימון הזדהות בדוא״ל enabled: מופעל enabled_msg: ביטול השעית החשבון של %{username} בוצע בהצלחה @@ -462,7 +464,7 @@ he: preamble_html: יש לאשר את השעיית %{domain} ותתי-הכתובות של שם המתחם. remove_all_data: פעולה זו תסיר כל תוכן, מדיה ומידע הפרופילים של שם המתחם הזה מהשרת שלך. stop_communication: השרת שלך יפסיק לתקשר עם שרתים אלו. - title: נא לאשר חסימת מתחם של %{domain} + title: נא לאשר חסימת מתחם עבור %{domain} undo_relationships: הפעולה תבטל את כל יחסי העקיבה בין חשבונות מהשרתים האלו לבין שלך. created_msg: חסימת שרת בתהליך destroyed_msg: חסימת שרת בוטלה @@ -712,14 +714,14 @@ he: moderation: all: הכל limited: מוגבלים - title: ניהול דיון + title: פיקוח תכנים moderation_notes: - create: הוספת הערות מנחה דיונים + create: הוספת הערות פיקוח תכנים created_msg: הודעת מנחה לגבי שרת נוצרה בהצלחה! description_html: צפייה והשארת הערות עבור מנחים אחרים או לעצמך לעתיד destroyed_msg: הודעת מנחה לגבי שרת נמחקה בהצלחה! placeholder: מידע לגבי שרת זה, פעולות שננקטו, או כל מידע אחר שיסייע לך להחליט כיצד למתן הודעות משרת זה בעתיד. - title: הודעות מנחה דיונים + title: הערות פיקוח תוכן private_comment: הערה פרטית public_comment: תגובה פומבית purge: טיהור @@ -802,7 +804,7 @@ he: remote: כבר הודח בשרת שלו are_you_sure: 100% על בטוח? assign_to_self: הקצה אלי - assigned: מנחה מוקצה + assigned: מנחה ממונה by_target_domain: דומיין החשבון המדווח cancel: ביטול category: קטגוריה @@ -812,7 +814,7 @@ he: none: ללא comment_description_html: 'על מנת לספק עוד מידע, %{name} כתב\ה:' confirm: אישור - confirm_action: נא לאשר פעולת משמעת לגבי חשבון %{acct} + confirm_action: נא לאשר פעולת פיקוח לגבי חשבון %{acct} created_at: מדווח delete_and_resolve: מחק תוכן forwarded: קודם @@ -881,7 +883,7 @@ he: devops: DevOps email: דוא״ל invites: הזמנות - moderation: ניהול דיון + moderation: פיקוח תכנים special: מיוחדים delete: מחיקה description_html: באמצעות תפקידי משתמש, תוכלו להתאים אישית לאילו פונקציות ואזורים של מסטודון המשתמשים יוכלו לגשת @@ -904,7 +906,7 @@ he: manage_announcements: ניהול הכרזות manage_announcements_description: מאפשר למשתמשים לנהל הכרזות של השרת manage_appeals: ניהול ערעורים - manage_appeals_description: מאפשר למשתמשים לסקור ערעורים כנגד פעולות ניהול דיון + manage_appeals_description: מאפשר למשתמשים לסקור ערעורים כנגד פעולות פיקוח הדיון manage_blocks: ניהול חסימות manage_blocks_description: מאפשר למשתמשים לחסום ספקי דוא"ל וכתובות IP manage_custom_emojis: ניהול סמלונים בהתאמה אישית @@ -916,7 +918,7 @@ he: manage_invites: ניהול הזמנות manage_invites_description: מאפשר למשתמשים לעלעל ב ולבטל קישורי הזמנה manage_reports: ניהול דו"חות - manage_reports_description: מאפשר למשתמשים לסקור דו"חות ולבצע פעולות ניהול דיון בהתבסס עליהם + manage_reports_description: מאפשר למשתמשים לסקור דו"חות ולבצע פעולות פיקוח דיון בהתבסס עליהם manage_roles: ניהול תפקידים manage_roles_description: מאפשר למשתמשים לנהל ולמנות אחרים לתפקידים נמוכים יותר משלהם. manage_rules: ניהול כללים @@ -957,7 +959,7 @@ he: settings: about: manage_rules: ניהול כללי שרת - preamble: תיאור מעמיק על דרכי ניהול השרת, ניהול הדיונים, ומקורות המימון שלו. + preamble: תיאור מעמיק על דרכי ניהול השרת, פיקוח הדיונים, ומקורות המימון שלו. rules_hint: קיים מקום ייעודי לחוקים שעל המשתמשים שלך לדבוק בהם. title: אודות allow_referrer_origin: @@ -1018,7 +1020,7 @@ he: approved: נדרש אישור הרשמה none: אף אחד לא יכול להרשם open: כל אחד יכול להרשם - warning_hint: אנו ממליצים להפעיל דרישה לאישור ידני של הרשמה אלא אם אתם מאמינים שצוות הנחיית השיחות שלכם יוכל להסתדר בזריזות עם מפיצי תכנים פוגעניים או פרסומיים על בסיס קבוע. + warning_hint: אנו ממליצים להפעיל דרישה לאישור ידני של הרשמה אלא אם אתם מאמינים שצוות פיקוח השיחות שלכם יוכל להסתדר בזריזות עם מפיצי תכנים פוגעניים או פרסומיים על בסיס קבוע. security: authorized_fetch: לדרוש הזדהות מול שרתים בפדרציה authorized_fetch_hint: הדרישה להזדהות מול שרתים בפדרציה מאפשרת חסימה יותר יעילה ברמת המשתמש וברמת שרת. עם זאת, הדרישה באה עם מחיר של נפילת ביצועים, מקטינה את מעגל התפוצה של התשובות שלך, ועשויה ליצור אי תאימות מול שירותים אחרים בפדרציה. בנוסף, זה לא ימנע מצדדים החלטיים לקבל גישת קריאה להודעות ופרופילים ציבוריים. @@ -1334,7 +1336,7 @@ he: suspend: כדי להשעות את חשבונם body: "%{target} מערערים על החלטת מנהלי הקהילה ב-%{action_taken_by} מתאריך %{date}, שהיה %{type}. הם כתבו:" next_steps: ניתן לאשר את הערער כדי להפוך את החלטת מנהלי הקהילה, או להתעלם ממנו. - subject: "%{username} מערערים על החלטת מנהלי הקהילה במופע %{instance}" + subject: "%{username} מערערים על החלטת מנהלי הקהילה בשרת %{instance}" new_critical_software_updates: body: יצא עדכון קריטי למסטודון, נא לעדכן את תוכנת מסטודון בהקדם האפשרי! subject: יצא עדכון קריטי למסטודון שעל %{instance}! @@ -2350,6 +2352,14 @@ he: further_actions_html: אם הנסיון לא היה שלך, אנו ממליצים על %{action} באופן מיידי כדי שהחשבון לא יפול קורבן. subject: נכשל אימות בגורם שני title: אימות בגורם שני נכשל + sign_in_token: + change_password: שנו את סיסמתכם + details: 'הנה פרטי הנסיון:' + explanation: 'איתרנו ניסיון להיכנס לחשבון שלך לאחר זמן רב של חוסר פעילות. אם אלו אתם, אנא הזינו את קוד האבטחה למטה בדף האתגר:' + further_actions: 'אם זה לא היה נסיון שלך, יש להחליף את סיסמתך ולהפעיל אימות דו-גורמי בחשבון. תוכלו לעשות זאת כאן:' + further_actions_html: אם לא ניסית להתחבר, אנו ממליצים ביצוע %{action} מיידית והפעלת אימות דו גורמי על מנת לשמור על החשבון בטוח. + subject: נא לאשר את ניסיון ההתחברות + title: נסיון התחברות suspicious_sign_in: change_password: שינוי הסיסמא שלך details: 'הנה פרטי ההתחברות:' @@ -2442,8 +2452,12 @@ he: title: ברוך/ה הבא/ה, %{name} ! users: follow_limit_reached: לא תוכל לעקוב אחר יותר מ %{limit} אנשים + generic_access_help_html: בעיה בכניסה לחשבון? ניתן ליצור קשר עם %{email} לעזרה go_to_sso_account_settings: מעבר לאפיוני החשבון שלך בשרת הזהות + inactive_sign_in_confirmation: עבר זמן מה מאז ההתחברות האחרונה, אנו שולחים קוד אבטחה לכתובת הדואר האלקטרוני שלך כדי לאשר את זהותך. + inactive_sign_in_title: נא לאשר קוד אבטחה invalid_otp_token: קוד דו-שלבי שגוי + invalid_sign_in_token: קוד אבטחה לא קביל otp_lost_help_html: אם איבדת גישה לשניהם, ניתן ליצור קשר ב-%{email} rate_limited: יותר מדי ניסיונות אימות, נסו שוב מאוחר יותר. seamless_external_login: את.ה מחובר דרך שירות חיצוני, לכן אפשרויות הסיסמא והדוא"ל לא מאופשרות. diff --git a/config/locales/hu.yml b/config/locales/hu.yml index b790982..9be2a80 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -69,6 +69,7 @@ hu: demote: Lefokozás destroyed_msg: A %{username} fiók adatai bekerültek a végleges törlése váró sorba disable: Befagyasztás + disable_sign_in_token: Biztonsági kódos kihívás ideiglenes letiltása disable_sign_in_token_auth: Tokenes e-mail-hitelesítés letiltása disable_two_factor_authentication: Kétlépcsős hitelesítés kikapcsolása disabled: Befagyasztva @@ -78,6 +79,7 @@ hu: email: E-mail-cím email_status: E-mail állapot enable: Kiolvasztás + enable_sign_in_token: Biztonsági kódos kihívás engedélyezése enable_sign_in_token_auth: Tokenes e-mail-hitelesítés engedélyezése enabled: Bekapcsolva enabled_msg: "%{username} fiókja befagyasztása sikeresen visszavonva" @@ -1395,7 +1397,7 @@ hu: dont_have_your_security_key: Nincs biztonsági kulcsod? forgot_password: Elfelejtetted a jelszavad? invalid_reset_password_token: A jelszó-visszaállítási kulcs nem megfelelő vagy lejárt. Kérlek generálj egy újat. - link_to_otp: Írj be egy kétlépcsős azonosító kódot a telefonodról vagy egy visszaállító kódot + link_to_otp: Írj be egy kétlépcsős hitelesítőkódot a telefonodról vagy egy tartalék bejelentkezési kódot link_to_webauth: Használd a biztonsági kulcs eszközödet log_in_with: Bejelentkezés, mint login: Bejelentkezés @@ -1818,7 +1820,7 @@ hu: limit: Elérted a listák maximális számát login_activities: authentication_methods: - otp: kétlépcsős azonosító alkalmazás + otp: kétlépcsős hitelesítő alkalmazás password: jelszó sign_in_token: e-mailben küldött biztonsági kód webauthn: biztonsági kulcsok @@ -2235,16 +2237,16 @@ hu: too_many_requests: Az előzőekben túl sok kérés érkezett a fordítási szolgáltatáshoz. two_factor_authentication: add: Hozzáadás - disable: Kikapcsolás + disable: Kétlépcsős hitelesítés kikapcsolása disabled_success: A kétlépcsős hitelesítés sikeresen letiltva edit: Szerkesztés enabled: Kétlépcsős hitelesítés engedélyezve enabled_success: A kétlépcsős hitelesítés sikeresen engedélyezve - generate_recovery_codes: Visszaállítási kódok generálása - lost_recovery_codes: A visszaállítási kódok segítségével tudsz belépni, ha elveszítenéd a telefonod. Ha a visszaállítási kódjaidat hagytad el, itt generálhatsz újakat. A régi kódokat ebben az esetben érvénytelenítjük. + generate_recovery_codes: Tartalék bejelentkezési kódok előállítása + lost_recovery_codes: A tartalék bejelentkezési kódok segítségével tudsz belépni, ha elveszítenéd a telefonod. Ha a tartalék bejelentkezési kódjaidat elvesztetted, itt állíthatsz elő újakat. A régi kódokat ebben az esetben érvénytelenítjük. methods: Kétlépcsős eljárások otp: Hitelesítő alkalmazás - recovery_codes: Visszaállítási kódok biztonsági mentése + recovery_codes: Tartalék bejelentkezési kódok mentése recovery_codes_regenerated: A visszaállítási kódokat sikeresen újrageneráltuk recovery_instructions_html: A visszaállítási kódok egyikének segítségével tudsz majd belépni, ha elveszítenéd a telefonod. Tartsd biztos helyen a visszaállítási kódjaid! Például nyomtasd ki őket és tárold a többi fontos iratoddal együtt. resume_app_authorization: Alkalmazás jogosultság-ellenőrzésének folytatása @@ -2299,6 +2301,14 @@ hu: further_actions_html: Ha ez nem te voltál, azt javasoljuk, hogy azonnal %{action}, mivel lehetséges, hogy az rossz kezekbe került. subject: Második körös hitelesítés sikertelen title: Sikertelen a második körös hitelesítés + sign_in_token: + change_password: változtasd meg a jelszavadat + details: 'Itt vannak a kísérlet részletei:' + explanation: 'Hosszú idejű inaktivitás után bejelentkezési kísérletet észleltünk a fiókodnál. Ha ez te vagy, írd be az alábbi biztonsági kódot a bejelentkezési oldal ezt kérő részén:' + further_actions: 'Ha nem te voltál, változtasd meg a jelszavadat, és engedélyezd a kétlépcsős hitelesítést a fiókodban. Itt megteheted:' + further_actions_html: Ha nem te voltál, akkor azt javasoljuk, hogy azonnal %{action} és engedélyezd a kétlépcsős hitelesítést, hogy biztonságban tudd a fiókodat. + subject: Erősítsd meg a megkísérelt bejelentkezést + title: Bejelentkezési kísérlet suspicious_sign_in: change_password: módosítsd a jelszavad details: 'Itt vannak a bejelentkezés részletei:' @@ -2388,8 +2398,12 @@ hu: title: Üdv a fedélzeten, %{name}! users: follow_limit_reached: Nem követhetsz több, mint %{limit} embert + generic_access_help_html: 'Nem tudod elérni a fiókodat? Segítségért lépj kapcsolatba velünk ezen a címen: %{email}' go_to_sso_account_settings: Ugrás az azonosítási szolgáltatód fiókbeállításaihoz - invalid_otp_token: Érvénytelen ellenőrző kód + inactive_sign_in_confirmation: Már egy ideje nem léptél be, így küldünk egy biztonsági kódot az e-mail-címedre, hogy megerősítsük, hogy te vagy az. + inactive_sign_in_title: Erősítsd meg a biztonsági kódot + invalid_otp_token: Érvénytelen kétlépcsős kód + invalid_sign_in_token: Érvénytelen biztonsági kód otp_lost_help_html: Ha mindkettőt elvesztetted, kérhetsz segítséget itt %{email} rate_limited: Túl sok hiteleítési kísérlet történt. Próbáld újra később. seamless_external_login: Külső szolgáltatáson keresztül jelentkeztél be, így a jelszó és e-mail-beállítások nem érhetők el. diff --git a/config/locales/is.yml b/config/locales/is.yml index 132b05f..34b6830 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -69,6 +69,7 @@ is: demote: Lækka í tign destroyed_msg: Gögn notandans %{username} eru núna í bið eftir að vera endanlega eytt disable: Gera óvirkt + disable_sign_in_token: Gera áskorun með öryggiskóða tímabundið óvirka disable_sign_in_token_auth: Gera óvirka auðkenningu með teikni í tölvupósti disable_two_factor_authentication: Gera tveggja-þátta auðkenningu óvirka disabled: Óvirkt @@ -78,6 +79,7 @@ is: email: Tölvupóstfang email_status: Staða tölvupósts enable: Virkja + enable_sign_in_token: Gera áskorun með öryggiskóða virka enable_sign_in_token_auth: Virkja auðkenningu með teikni í tölvupósti enabled: Virkt enabled_msg: Tókst að affrysta aðgang notandans %{username} @@ -1635,7 +1637,7 @@ is: home: Heimatímalína notifications: Tilkynningar public: Opinberar tímalínur - thread: Samtöl + thread: Samræður edit: add_keyword: Bæta við stikkorði keywords: Stikkorð @@ -2113,7 +2115,7 @@ is: relationships: Fylgist með og fylgjendur severed_relationships: Rofin tengsl statuses_cleanup: Sjálfvirk eyðing færslna - strikes: Umsýsla refsinga + strikes: Refsingar umsjónarfólks two_factor_authentication: Tveggja-þátta auðkenning webauthn_authentication: Öryggislyklar severed_relationships: @@ -2303,6 +2305,14 @@ is: further_actions_html: Ef þetta varst ekki þú, þá mælum við eindregið með því að þú %{action} samstundis, þar sem það gæti verið berskjaldað. subject: Bilun í seinna þrepi auðkenningar title: Seinna þrep auðkenningar brást + sign_in_token: + change_password: breytir lykilorðinu þínu + details: 'Hér eru nánari upplýsingar um atvikið:' + explanation: 'Við sjáum að reynt hefur verið að skrá sig inn á aðganginn þinn eftir langa fjarveru. Ef það varst þú, skaltu setja inn öryggiskóðann neðst á staðfestingarsíðu innskráningar:' + further_actions: 'Ef þetta varst ekki þú, skaltu endilega skipta um lykilorð og virkja tveggja-þrepa auðkenningu fyrir aðganginn þinn. Þú getur gert það hér:' + further_actions_html: Ef þetta varst ekki þú, þá mælum við með að þú %{action} strax og virkjir tveggja-þátta auðkenningu til að halda aðgangnum þínum öruggum. + subject: Endilega staðfestu tilraun til innskráningar + title: Tilraun til innskráningar suspicious_sign_in: change_password: breytir lykilorðinu þínu details: 'Hér eru nánari upplýsingar um innskráninguna:' @@ -2392,8 +2402,12 @@ is: title: Velkomin/n um borð, %{name}! users: follow_limit_reached: Þú getur ekki fylgst með fleiri en %{limit} aðilum + generic_access_help_html: Vandamál við að tengjast aðgangnum þínum? Þú getur sett þig í samband við %{email} til að fá aðstoð go_to_sso_account_settings: Fara í stillingar aðgangsins hjá auðkennisveitunni þinni + inactive_sign_in_confirmation: Það er nokkuð síðan þú skráðir þig inn síðast, þannig að þú færð sendan öryggiskóða á tölvupóstfangið þitt til að staðfesta að þetta sért þú. + inactive_sign_in_title: Staðfestu öryggiskóða invalid_otp_token: Ógildur tveggja-þátta kóði + invalid_sign_in_token: Ógildur öryggiskóði otp_lost_help_html: Ef þú hefur misst aðganginn að hvoru tveggja, geturðu sett þig í samband við %{email} rate_limited: Of margar tilraunir til auðkenningar, prófaðu aftur síðar. seamless_external_login: Innskráning þín er í gegnum utanaðkomandi þjónustu, þannig að stillingar fyrir lykilorð og tölvupóst eru ekki aðgengilegar. diff --git a/config/locales/it.yml b/config/locales/it.yml index 5bcc0a6..7d8e111 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -69,6 +69,7 @@ it: demote: Retrocedi destroyed_msg: I dati di %{username} sono ora accodati per l'imminente eliminazione disable: Congela + disable_sign_in_token: Disattiva temporaneamente la verifica del codice di sicurezza disable_sign_in_token_auth: Disabilitare l'autenticazione del token e-mail disable_two_factor_authentication: Disabilita A2F disabled: Congelato @@ -78,6 +79,7 @@ it: email: Email email_status: Stato dell'email enable: Scongela + enable_sign_in_token: Abilita la verifica tramite il codice di sicurezza enable_sign_in_token_auth: Abilitare l'autenticazione del token e-mail enabled: Abilitato enabled_msg: Il profilo di %{username} è stato scongelato correttamente @@ -103,7 +105,7 @@ it: active: Attivo all: Tutto disabled: Disattivato - pending: In sospeso + pending: In attesa silenced: Limitato suspended: Sospeso title: Moderazione @@ -2299,6 +2301,14 @@ it: further_actions_html: Se non eri tu, ti consigliamo di %{action} immediatamente poiché potrebbe essere compromesso. subject: Errore di autenticazione del secondo fattore title: Autenticazione del secondo fattore non riuscita + sign_in_token: + change_password: cambia la tua password + details: 'Questi sono i dettagli del tentativo:' + explanation: 'Abbiamo rilevato un tentativo di accesso al tuo account dopo un lungo periodo di inattività. Se sei stato/a tu, per favore inserisci il codice di sicurezza riportato di seguito nella pagina di verifica dell''accesso:' + further_actions: 'Se non sei stato/a tu, ti preghiamo di cambiare la password e di attivare l''autenticazione a due fattori sul tuo account. Puoi farlo qui:' + further_actions_html: Se non sei stato/a tu, ti consigliamo di %{action} immediatamente e di attivare l'autenticazione a due fattori per mantenere il tuo account al sicuro. + subject: Si prega di confermare il tentativo di accesso + title: Tentativo di accesso suspicious_sign_in: change_password: cambiare la tua password details: 'Questi sono i dettagli del tentativo di accesso:' @@ -2388,8 +2398,12 @@ it: title: Benvenuto a bordo, %{name}! users: follow_limit_reached: Non puoi seguire più di %{limit} persone + generic_access_help_html: Hai problemi ad accedere al tuo account? Puoi contattare %{email} per ricevere assistenza go_to_sso_account_settings: Vai alle impostazioni dell'account del tuo provider di identità + inactive_sign_in_confirmation: È passato un po' di tempo dall'ultimo accesso, quindi ti stiamo inviando un codice di sicurezza al tuo indirizzo e-mail per confermare che sei tu. + inactive_sign_in_title: Si prega di confermare il codice di sicurezza invalid_otp_token: Codice d'accesso non valido + invalid_sign_in_token: Codice di sicurezza non valido otp_lost_help_html: Se perdessi l'accesso ad entrambi, puoi entrare in contatto con %{email} rate_limited: Troppi tentativi di autenticazione, per favore riprova più tardi. seamless_external_login: Hai effettuato l'accesso tramite un servizio esterno, pertanto le impostazioni relative alla password e all'e-mail non sono disponibili. diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 55cdd59..9c94fc5 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -11,6 +11,8 @@ ja: cannot_be_added_to_collections: このアカウントはコレクションに追加できません。 followers: other: フォロワー + following: + other: フォロー中 instance_actor_flash: このアカウントは、個々のユーザーではなく、サーバー自体を表すために使用される仮想のユーザーです。 連合のために使用されるため、停止しないで下さい。 last_active: 最後の活動 link_verified_on: このリンクの所有権は%{date}に確認されました @@ -58,9 +60,11 @@ ja: custom: カスタム delete: データを削除する deleted: 削除済み + deletion_irreversible: このアカウントのデータは取り消せない形で削除されました。 demote: 降格 destroyed_msg: "%{username}さんのデータは完全に削除されるよう登録されました" disable: 無効化 + disable_sign_in_token: セキュリティコードチャレンジを一時的に無効化 disable_sign_in_token_auth: メールトークン認証を無効化 disable_two_factor_authentication: 二要素認証を無効にする disabled: 無効 @@ -467,6 +471,9 @@ ja: resolved_dns_records_hint_html: 入力されたドメイン名のMXレコードから以下のドメインが解決されました。MXレコードが指すドメインはメールの送受信において重要な役割をもっています。MXレコードのドメインをブロックすると、見た目のドメインが異なるメールアドレスからの登録であっても、そのドメイン名から解決されるMXレコードのドメインが同じ場合はブロックの対象になります。大手のメールプロバイダをブロックしないように注意してください。 resolved_through_html: "%{domain}を通して解決しました" title: メールドメインブロック + email_subscriptions: + accounts: + account: アカウント export_domain_allows: new: title: ドメイン許可をインポート diff --git a/config/locales/kab.yml b/config/locales/kab.yml index 2070afb..4f352bf 100644 --- a/config/locales/kab.yml +++ b/config/locales/kab.yml @@ -97,7 +97,7 @@ kab: remove_avatar: Kkes tugna n umaɣnu remove_header: Kkes tacacit resend_confirmation: - already_confirmed: Amseqdac-agi yettwasentem yakan + already_confirmed: Aseqdac-a yettwasentem yakan send: Ɛawed-iyi-d aseɣwen n usentem reset: Wennez reset_password: Beddel awal uffir @@ -768,8 +768,9 @@ kab: x_seconds: "%{count}tas" deletes: challenge_not_passed: Ur iṣeḥḥa ara yisalli-nni i teskecmeḍ - confirm_password: Sekcem awal-ik·im uffir n tura akken ad tesfeqdeḍ tamagit-ik·im + confirm_password: Sekcem awal-ik·im n uɛeddi amiran akken ad tesfeqdeḍ tamagit-ik·im proceed: Kkes amiḍan + title: Kkes amiḍan %{acct} warning: username_available: Isem-ik·im n useqdac ad yuɣal yella i tikkelt-nniḍen username_unavailable: Isem-ik·im n useqdac ad yeqqim ulac-it @@ -802,6 +803,7 @@ kab: confirmations: show: changed_your_mind: Tbeddleḍ ṛṛay-ik·im? + disabled: D arurmid inactive: D arurmid status: Addad emoji_styles: @@ -812,7 +814,7 @@ kab: '404': Asebter i tettnadiḍ ulac-it da. '429': Aṭas n tuttriwin '500': - title: Asebter-ayi d arameɣtu + title: Asebter-a d arameɣtu go_home: Ddu ɣer ugejdan noscript_html: Akken ad tesqedceḍ asnas web n Mastodon, sermed JavaScript, ma ulac aɣilif. Neɣ ma ulac, ɛreḍ yiwet seg yisnasen inasliyin n Mastodon i unagraw-ik. existing_username_validator: @@ -1156,6 +1158,8 @@ kab: user_mailer: appeal_approved: action: Iɣewwaṛen n umiḍan + sign_in_token: + change_password: snifel awal-ik·im n uɛeddi suspicious_sign_in: change_password: snifel awal-ik·im n uɛeddi terms_of_service_changed: @@ -1196,6 +1200,7 @@ kab: subject: Ansuf ɣer Maṣṭudun title: Ansuf yessek·em, %{name}! users: + inactive_sign_in_title: Sentem tangalt n tɣellist signed_in_as: 'Teqqneḍ amzun d:' verification: here_is_how: Ha-t-a amek diff --git a/config/locales/nan-TW.yml b/config/locales/nan-TW.yml index 6da2480..3eb1611 100644 --- a/config/locales/nan-TW.yml +++ b/config/locales/nan-TW.yml @@ -1744,7 +1744,7 @@ nan-TW: '43200': 12 點鐘以後 '604800': 1 禮拜以後 '86400': 1 kang以後 - expires_in_prompt: 永永 + expires_in_prompt: 永永bē過期 generate: 生邀請ê連結 invalid: Tsit ê邀請無效 invited_by: Lí予伊邀請: diff --git a/config/locales/nl.yml b/config/locales/nl.yml index d2d55c8..8ed5755 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -69,6 +69,7 @@ nl: demote: Degraderen destroyed_msg: De verwijdering van de gegevens van %{username} staat nu in de wachtrij disable: Bevriezen + disable_sign_in_token: Beveiligingscode via e-mail tijdelijk uitschakelen disable_sign_in_token_auth: Verificatie met een toegangscode via e-mail uitschakelen disable_two_factor_authentication: 2FA uitschakelen disabled: Bevroren @@ -78,6 +79,7 @@ nl: email: E-mail email_status: E-mailstatus enable: Ontdooien + enable_sign_in_token: Beveiligingscode via e-mail inschakelen enable_sign_in_token_auth: Verificatie met een toegangscode via e-mail inschakelen enabled: Ingeschakeld enabled_msg: Het ontdooien van het account van %{username} is geslaagd @@ -96,9 +98,9 @@ nl: title: Locatie login_status: Loginstatus media_attachments: Mediabijlagen - memorialize: Naar een In memoriam veranderen - memorialized: In memoriam - memorialized_msg: Het naar een In memoriam veranderen van het account van %{username} is geslaagd + memorialize: In een gedenkplaats veranderen + memorialized: In een gedenkplaats veranderd + memorialized_msg: Het naar een gedenkplaats veranderen van het account van %{username} is geslaagd moderation: active: Actief all: Alles @@ -223,7 +225,7 @@ nl: enable_relay: Relay inschakelen enable_sign_in_token_auth_user: Verificatie met een toegangscode via e-mail voor de gebruiker inschakelen enable_user: Gebruiker inschakelen - memorialize_account: Het account in een In memoriam veranderen + memorialize_account: Het account in een gedenkplaats veranderen promote_user: Gebruiker promoveren publish_terms_of_service: Algemene gebruiksvoorwaarden publiceren reject_appeal: Bezwaar afwijzen @@ -294,7 +296,7 @@ nl: enable_sign_in_token_auth_user_html: "%{name} heeft verificatie met een toegangscode via e-mail ingeschakeld voor %{target}" enable_user_html: Inloggen voor %{target} is door %{name} ingeschakeld listable_tag_html: kan worden aanbevolen - memorialize_account_html: Het account %{target} is door %{name} in een In memoriam veranderd + memorialize_account_html: Het account %{target} is door %{name} in een gedenkplaats veranderd not_listable_tag_html: wordt niet aanbevolen not_trendable_tag_html: verschijnt niet onder trends not_usable_tag_html: kan niet worden gebruikt @@ -1319,7 +1321,7 @@ nl: subject: Kritieke Mastodon-updates zijn beschikbaar voor %{instance}! new_pending_account: body: Zie hieronder de details van het nieuwe account. Je kunt de aanvraag goedkeuren of afwijzen. - subject: Er dient een nieuw account op %{instance} te worden beoordeeld (%{username}) + subject: Nieuw account te beoordelen op %{instance} (%{username}) new_report: body: "%{reporter} heeft %{target} gerapporteerd" body_remote: Iemand van %{domain} heeft %{target} gerapporteerd @@ -1497,7 +1499,7 @@ nl: challenge_not_passed: De informatie die u hebt ingevoerd is ongeldig confirm_password: Voer jouw huidige wachtwoord in om jouw identiteit te bevestigen confirm_username: Gebruikersnaam bevestigen - confirm_username_hint_html: Typ %{username} om het account dat u wilt verwijderen te bevestigen + confirm_username_hint_html: Typ %{username} om het account dat je wilt verwijderen te bevestigen proceed: Account verwijderen success_msg: Jouw account is succesvol verwijderd title: Account %{acct} verwijderen @@ -1628,7 +1630,7 @@ nl: filters: contexts: account: Profielen - home: Starttijdlijn en lijsten + home: Hoofdtijdlijn en aangepaste tijdlijnen notifications: Meldingen public: Openbare tijdlijnen thread: Gesprekken @@ -2295,10 +2297,18 @@ nl: title: Archief ophalen failed_2fa: details: 'Hier zijn de details van de inlogpoging:' - explanation: Iemand heeft geprobeerd om in te loggen op jouw account maar heeft een ongeldige tweede verificatiefactor opgegeven. + explanation: Iemand heeft geprobeerd om op jouw account in te loggen, maar de tweestapsverificatie was mislukt. further_actions_html: Als jij dit niet was, raden we je aan om onmiddellijk %{action} aangezien het in gevaar kan zijn. subject: Tweestapsverificatiefout title: Tweestapsverificatie mislukt + sign_in_token: + change_password: wijzig je wachtwoord + details: 'Hier zijn details van de poging:' + explanation: 'We hebben een inlogpoging op je account ontdekt na een lange tijd van inactiviteit. Als jij dit bent, vul dan de beveiligingscode hieronder in op de inlogpagina:' + further_actions: 'Als jij dit niet was, wijzig dan je wachtwoord en schakel tweestapsverificatie voor je account in. Dit kun je hier doen:' + further_actions_html: Wanneer jij dit niet was, adviseren wij om onmiddellijk %{action} en om tweestapsverificatie in te schakelen, om zo je account veilig te houden. + subject: Bevestig de inlogpoging + title: Inlogpoging suspicious_sign_in: change_password: je wachtwoord te wijzigen details: 'Hier zijn de details van het inloggen:' @@ -2360,7 +2370,7 @@ nl: feature_action: Meer informatie feature_audience: Mastodon biedt je een unieke mogelijkheid om je publiek te beheren zonder tussenpersonen. Mastodon, geïmplementeerd in jouw eigen infrastructuur, stelt je in staat om elke andere Mastodon-server online te volgen en door hen gevolgd te worden, en staat onder controle van niemand, behalve die van jou. feature_audience_title: Bouw jouw publiek in vertrouwen op - feature_control: Je weet zelf het beste wat je op jouw starttijdlijn wilt zien. Geen algoritmen of advertenties om je tijd te verspillen. Volg iedereen op elke Mastodon-server vanaf één account en ontvang hun berichten in chronologische volgorde, en maak jouw hoekje op het internet een beetje meer zoals jezelf. + feature_control: Je weet zelf het beste wat je op jouw hoofdtijdlijn wilt zien. Geen algoritmes of advertenties om je tijd te verspillen. Volg iedereen op elke Mastodon-server vanaf één account en ontvang hun berichten in chronologische volgorde, en maak jouw hoekje op het internet een beetje meer zoals jezelf. feature_control_title: Houd controle over je eigen tijdlijn feature_creativity: Mastodon ondersteunt audio-, video- en fotoberichten, toegankelijkheidsbeschrijvingen, peilingen, inhoudswaarschuwingen, geanimeerde profielfoto's, aangepaste lokale emoji's, controle over het bijwerken van miniaturen en meer, om je te helpen jezelf online uit te drukken. Of je nu jouw kunst, jouw muziek of jouw podcast publiceert, Mastodon staat voor je klaar. feature_creativity_title: Ongeëvenaarde creativiteit @@ -2368,7 +2378,7 @@ nl: feature_moderation_title: Moderatie zoals het hoort follow_action: Volgen follow_step: Op Mastodon draait het helemaal om het volgen van interessante mensen. - follow_title: Personaliseer je starttijdlijn + follow_title: Jouw hoofdtijdlijn personaliseren follows_subtitle: Volg bekende accounts follows_title: Wie te volgen follows_view_more: Meer mensen om te volgen bekijken @@ -2388,8 +2398,12 @@ nl: title: Welkom aan boord %{name}! users: follow_limit_reached: Je kunt niet meer dan %{limit} accounts volgen + generic_access_help_html: Problemen met toegang tot je account? Neem dan contact op met %{email} voor assistentie go_to_sso_account_settings: Ga naar de accountinstellingen van je identiteitsprovider + inactive_sign_in_confirmation: Het is een tijd geleden dat je voor het laatst bent ingelogd, daarom sturen we een beveiligingscode naar je e-mailadres om te verifiëren dat jij het bent. + inactive_sign_in_title: Bevestig de beveiligingscode invalid_otp_token: Ongeldige tweestaps-toegangscode + invalid_sign_in_token: Ongeldige beveiligingscode otp_lost_help_html: Als je toegang tot beiden kwijt bent geraakt, neem dan contact op via %{email} rate_limited: Te veel authenticatiepogingen, probeer het later opnieuw. seamless_external_login: Je bent ingelogd via een externe dienst, daarom zijn wachtwoorden en e-mailinstellingen niet beschikbaar. diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml index 689571e..e8d5ae1 100644 --- a/config/locales/pt-PT.yml +++ b/config/locales/pt-PT.yml @@ -69,6 +69,7 @@ pt-PT: demote: Despromovida destroyed_msg: Os dados de %{username} estão agora em fila de espera para serem eliminados de imediato disable: Congelar + disable_sign_in_token: Desativar o desafio do código de segurança temporariamente disable_sign_in_token_auth: Desativar token de autenticação por e-mail disable_two_factor_authentication: Desativar autenticação por dois fatores (2FA) disabled: Congelada @@ -78,6 +79,7 @@ pt-PT: email: E-mail email_status: Estado do e-mail enable: Descongelar + enable_sign_in_token: Ativar código de segurança enable_sign_in_token_auth: Ativar token de autenticação por e-mail enabled: Ativado enabled_msg: Descongelou a conta %{username} @@ -200,6 +202,7 @@ pt-PT: create_user_role: Criar função create_username_block: Criar Regra de Nome de Utilizador demote_user: Despromover utilizador + destroy_account: Apagar Dados da Conta destroy_announcement: Eliminar mensagem de manutenção destroy_canonical_email_block: Eliminar bloqueio de e-mail destroy_custom_emoji: Eliminar emoji personalizado @@ -268,6 +271,7 @@ pt-PT: create_user_role_html: "%{name} criou a função %{target}" create_username_block_html: "%{name} adicionou regra para nomes de utilizadores que contêm %{target}" demote_user_html: "%{name} despromoveu o utilizador %{target}" + destroy_account_html: "%{name} apagou dados da conta de %{target}" destroy_announcement_html: "%{name} eliminou a mensagem de manutenção %{target}" destroy_canonical_email_block_html: "%{name} desbloqueou o e-mail com a hash %{target}" destroy_collection_html: "%{name} removeu a coleção de %{target}" @@ -1494,8 +1498,11 @@ pt-PT: deletes: challenge_not_passed: A informação que inseriste não estava correta confirm_password: Introduz a palavra-passe atual para verificar a tua identidade + confirm_username: Confirmar nome de utilizador + confirm_username_hint_html: Digite %{username} para confirmar a conta que deseja eliminar proceed: Eliminar conta success_msg: A tua conta foi eliminada com sucesso + title: Eliminar conta %{acct} warning: before: 'Antes de continuares, por favor lê cuidadosamente estas notas:' caches: O conteúdo que foi armazenado em cache por outras instâncias pode perdurar @@ -1595,6 +1602,7 @@ pt-PT: content: Pedimos desculpa, mas algo correu mal da nossa parte. title: Esta página não está correta '503': A página não pôde ser apresentada devido a uma falha temporária do servidor. + go_home: Ir para a Página Inicial noscript_html: Para usar a aplicação web do Mastodon, ativa o JavaScript. Alternativamente, experimenta uma das aplicações nativas para o Mastodon na tua plataforma. existing_username_validator: not_found: não foi possível encontrar um utilizador local com esse nome @@ -1691,6 +1699,7 @@ pt-PT: incompatible_type: Incompatível com o tipo de importação selecionado invalid_csv_file: 'Arquivo CSV inválido. Erro: %{error}' invalid_json_file: 'Ficheiro JSON inválido. Erro: %{error}' + no_data: Este ficheiro não contém nenhum dado correspondente a este tipo de importação over_rows_processing_limit: contém mais de %{count} linhas status_not_found_warning: Alguns dos teus filtros ocultam publicações específicas que não são conhecidas por este servidor. Estas publicações não serão filtradas automaticamente se forem descobertas mais tarde pelo servidor. too_large: O ficheiro é demasiado grande @@ -2292,6 +2301,14 @@ pt-PT: further_actions_html: Se não foi você, recomendamos %{action} imediatamente, pois a conta pode ter sido comprometida. subject: Falha na autenticação do segundo fator title: Falha na autenticação do segundo fator + sign_in_token: + change_password: altere a sua palavra-passe + details: 'Aqui estão os detalhes da tentativa:' + explanation: 'Detetamos uma tentativa de entrar na sua conta após um longo tempo de inatividade. Se for você, insira o código de segurança abaixo na página de acesso:' + further_actions: 'Se não foi você, por favor altere a sua palavra-passe e ative a autenticação em duas etapas na sua conta. Pode fazê-lo aqui:' + further_actions_html: Se não foi você, recomendamos que %{action} imediatamente e ative a autenticação de dois fatores para manter a sua conta segura. + subject: Por favor, confirme a tentativa de acesso + title: Tentativa de acesso suspicious_sign_in: change_password: alterar a palavra-passe details: 'Eis os pormenores do início de sessão:' @@ -2381,8 +2398,12 @@ pt-PT: title: Bem-vindo a bordo, %{name}! users: follow_limit_reached: Não podes seguir mais do que %{limit} pessoas + generic_access_help_html: Problemas a aceder à sua conta? Pode entrar em contacto com %{email} para obter ajuda go_to_sso_account_settings: Ir para as definições de conta do seu fornecedor de identidade + inactive_sign_in_confirmation: Já faz algum tempo desde que entrou, por isso enviamos um código de segurança para o seu endereço de e-mail para confirmar que é você. + inactive_sign_in_title: Por favor, confirme o código de segurança invalid_otp_token: Código de dois fatores inválido + invalid_sign_in_token: Código de segurança inválido otp_lost_help_html: Se perdeste o acesso a ambos, podes entrar em contacto com %{email} rate_limited: Demasiadas tentativas de autenticação, tenta novamente mais tarde. seamless_external_login: A sessão foi iniciada através de um serviço externo, pelo que as definições de palavra-passe e e-mail não estão disponíveis. diff --git a/config/locales/simple_form.be.yml b/config/locales/simple_form.be.yml index 84d31f8..705f900 100644 --- a/config/locales/simple_form.be.yml +++ b/config/locales/simple_form.be.yml @@ -266,7 +266,7 @@ be: setting_quick_boosting: Уключыць хуткае пашырэнне setting_reduce_motion: Памяншэнне руху ў анімацыях setting_system_font_ui: Выкарыстоўваць прадвызначаны сістэмны шрыфт - setting_system_scrollbars_ui: Паказваць паласу пракручвання па змаўчанні + setting_system_scrollbars_ui: Паказваць стандартную паласу пракручвання setting_theme: Тэма сайта setting_trends: Паказваць трэнды дня setting_unfollow_modal: Паказваць акно пацвярджэння перад адпісваннем @@ -274,6 +274,7 @@ be: setting_use_pending_items: Павольны рэжым severity: Узровень sign_in_token_attempt: Код бяспекі + sign_in_token_resend: Даслаць код бяспекі зноў title: Загаловак type: Тып імпарту username: Імя карыстальніка @@ -319,7 +320,7 @@ be: site_terms: Палітыка канфідэнцыйнасці site_title: Назва сервера status_page_url: URL старонкі статусу - theme: Тэма па змаўчанні + theme: Стандартная тэма thumbnail: Мініяцюра сервера thumbnail_description: Альтэрнатыўны тэкст мініяцюры trendable_by_default: Дазваляць трэнды без папярэдняй праверкі diff --git a/config/locales/simple_form.cy.yml b/config/locales/simple_form.cy.yml index d9d1fc6..dbb52ad 100644 --- a/config/locales/simple_form.cy.yml +++ b/config/locales/simple_form.cy.yml @@ -276,6 +276,7 @@ cy: setting_use_pending_items: Modd araf severity: Difrifoldeb sign_in_token_attempt: Cod diogelwch + sign_in_token_resend: Ail anfon y cod diogelwch title: Teitl type: Modd mewnforio username: Enw defnyddiwr diff --git a/config/locales/simple_form.da.yml b/config/locales/simple_form.da.yml index b27564e..3f2a52f 100644 --- a/config/locales/simple_form.da.yml +++ b/config/locales/simple_form.da.yml @@ -272,6 +272,7 @@ da: setting_use_pending_items: Langsom tilstand severity: Alvorlighed sign_in_token_attempt: Sikkerhedskode + sign_in_token_resend: Send sikkerhedskode igen title: Titel type: Importtype username: Brugernavn diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml index 08f9ea0..236c23a 100644 --- a/config/locales/simple_form.de.yml +++ b/config/locales/simple_form.de.yml @@ -272,6 +272,7 @@ de: setting_use_pending_items: Langsamer Modus severity: Einschränkung sign_in_token_attempt: Sicherheitscode + sign_in_token_resend: Sicherheitscode erneut senden title: Titel type: Typ username: Profilname diff --git a/config/locales/simple_form.el.yml b/config/locales/simple_form.el.yml index cbde4c0..c583f66 100644 --- a/config/locales/simple_form.el.yml +++ b/config/locales/simple_form.el.yml @@ -272,6 +272,7 @@ el: setting_use_pending_items: Αργή λειτουργία severity: Αυστηρότητα sign_in_token_attempt: Κωδικός ασφαλείας + sign_in_token_resend: Επαναποστολή κωδικού ασφαλείας title: Τίτλος type: Τύπος εισαγωγής username: Όνομα χρηστη diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml index 82c4f42..7537f2c 100644 --- a/config/locales/simple_form.en.yml +++ b/config/locales/simple_form.en.yml @@ -272,6 +272,7 @@ en: setting_use_pending_items: Slow mode severity: Severity sign_in_token_attempt: Security code + sign_in_token_resend: Resend security code title: Title type: Import type username: Username diff --git a/config/locales/simple_form.es-AR.yml b/config/locales/simple_form.es-AR.yml index 40d55c8..827ccc7 100644 --- a/config/locales/simple_form.es-AR.yml +++ b/config/locales/simple_form.es-AR.yml @@ -272,6 +272,7 @@ es-AR: setting_use_pending_items: Modo lento severity: Severidad sign_in_token_attempt: Código de seguridad + sign_in_token_resend: Reenviar código de seguridad title: Título type: Tipo de importación username: Nombre de usuario diff --git a/config/locales/simple_form.es-MX.yml b/config/locales/simple_form.es-MX.yml index 2a2436c..324a0d6 100644 --- a/config/locales/simple_form.es-MX.yml +++ b/config/locales/simple_form.es-MX.yml @@ -272,6 +272,7 @@ es-MX: setting_use_pending_items: Modo lento severity: Severidad sign_in_token_attempt: Código de seguridad + sign_in_token_resend: Volver a enviar el código de seguridad title: Título type: Importar tipo username: Nombre de usuario diff --git a/config/locales/simple_form.es.yml b/config/locales/simple_form.es.yml index 5235826..3e560f5 100644 --- a/config/locales/simple_form.es.yml +++ b/config/locales/simple_form.es.yml @@ -272,6 +272,7 @@ es: setting_use_pending_items: Modo lento severity: Severidad sign_in_token_attempt: Código de seguridad + sign_in_token_resend: Volver a enviar el código de seguridad title: Título type: Importar tipo username: Nombre de usuario diff --git a/config/locales/simple_form.eu.yml b/config/locales/simple_form.eu.yml index bf8e378..0b44618 100644 --- a/config/locales/simple_form.eu.yml +++ b/config/locales/simple_form.eu.yml @@ -4,6 +4,7 @@ eu: hints: account: attribution_domains: Lerroko bat. Atribuzio faltsuetatik babesten ditu. + discoverable: Beste erabiltzaile batzuek sortutako bildumetan ager zaitezke. Zu eta zure bidalketa publikoak beste erabiltzaileei ere iradoki diezazkieke Mastodonen aurkikuntza-esperientzietan. display_name: Zure izena edo ezizena. fields: Zure webgunea, izenordainak, adina, nahi duzun guztia. indexable: Zure argitalpen publikoak bilaketa-emaitzetan ager daitezke Mastodonen. Zure argitalpenekin elkarregin duten jendeak ikusi ahal izango dituzte, hala ere. @@ -60,7 +61,11 @@ eu: setting_default_quote_policy_private: Jarraitzaileentzat soilik sortutako bidalketak Mastodonen ezin dituzte beste batzuek aipatu. setting_default_quote_policy_unlisted: Jendeak aipatzen zaituenean, bere bidalketa ere joeren denbora-lerro publikoetatik ezkutatuko da. setting_default_sensitive: Multimedia hunkigarria lehenetsita ezkutatzen da, eta sakatuz ikusi daiteke + setting_display_media_default: Abisatu hunkigarri gisa markatutako multimedia erakutsi aurretik + setting_display_media_hide_all: Abisatu multimedia oro erakutsi aurretik + setting_display_media_show_all: Erakutsi multimedia oro abisurik gabe, hunkigarri gisa markatutakoa barne setting_emoji_style: Nola bistaratu emojiak. "Automatikoki" aukeran emoji natiboak erabiltzen saiatuko dira, baina Twemojira itzuliko dira arakatzaile zaharretarako. + setting_quick_boosting_html: Gaituta dagoenean, %{boost_icon} Bultzada ikonoan klik egiteak berehala emango dio bultzada, bultzada/aipu goitibeherako menua ireki beharrean. Aipatzeko ekintza %{options_icon} (Aukerak) menura eramaten du. setting_use_blurhash: Gradienteak ezkutatutakoaren koloreetan oinarritzen dira, baina xehetasunak ezkutatzen dituzte setting_use_pending_items: Ezkutatu denbora-lerroko eguneraketak klik baten atzean jarioa automatikoki korritu ordez username: Hizkiak, zenbakiak eta azpimarrak erabil ditzakezu @@ -86,7 +91,9 @@ eu: closed_registrations_message: Izen-ematea itxia dagoenean bistaratua content_cache_retention_period: Beste zerbitzarietako argitalpen guztiak (bultzadak eta erantzunak barne) ezabatuko dira zehazturiko egunen buruan, argitalpen horiek izan ditzaketen erabiltzaile lokalaren interakzioa kontuan izanik gabe. Instantzia desberdinetako erabiltzaileen arteko aipamen pribatuak ere galdu egingo dira eta ezin izango dira berreskuratu. Ezarpen honen erabilera xede berezia duten instantziei zuzendua dago eta erabiltzaileen itxaropena hausten da orotariko erabilerarako inplementatzean. custom_css: Estilo pertsonalizatuak aplikatu ditzakezu Mastodonen web bertsioan. + email_footer_text: Buletinen mezu elektronikoen oinean soilik agertzen den testu aukerakoa. favicon: WEBP, PNG, GIF or JPG. Mastodon-en favicon-a gainidazten du ikono pertsonalizatu batekin. + landing_page: Bisitari berriek zure zerbitzarira lehen aldiz iristean ikusiko duten orria hautatzen du. "Joerak" hautatzen baduzu, joerek gaituta egon behar dute Aurkikuntza-ezarpenetan. "Jario lokala" hautatzen baduzu, "Bidalketa lokalak dituzten zuzeneko jarioetarako sarbidea" "Edonork" gisa ezarri behar da Aurkikuntza-ezarpenetan. mascot: Web interfaze aurreratuko ilustrazioa gainidazten du. media_cache_retention_period: Multimedia-fitxategiak dituzten urruneko erabiltzaileen argitalpenak zure zerbitzarian gordetzen dira cachean. Balio positiboa ezartzean, multimedia zehazturiko egunen buruan ezabatuko da. Multimedia-datuak eskatzen badira ezabatu ostean, berriro deskargatuko dira, iturburuko edukia oraindik erabilgarri badago. Estekaren aurrebistako txartelek hirugarrenen guneei zenbatetan dei diezaieketen mugatzen dieten murrizketak direla eta, balio honi, gutxienez, 14 egunen balioa ezartzea gomendatzen da, bestela, esteken aurrebistako txartelak ez dira eguneratuko eskatu ahala denbora horren aurretik. min_age: Erabiltzaileei jaiotze-data berresteko eskatuko zaie izen-ematean @@ -102,6 +109,7 @@ eu: status_page_url: Kanporatua dagoen jendeak zerbitzari honen egoera ikus dezaten gune baten URL theme: Saioa hasi gabeko erabiltzaileek eta berriek ikusiko duten gaia. thumbnail: Zerbitzariaren informazioaren ondoan erakusten den 2:1 inguruko irudia. + thumbnail_description: Irudiaren deskribapena, ikusmen-urritasuna duten pertsonei haren edukia ulertzen laguntzeko. trendable_by_default: Saltatu joeretako edukiaren eskuzko berrikuspena. Ondoren elementuak banan-bana kendu daitezke joeretatik. trends: Joeretan zure zerbitzarian bogan dauden bidalketa, traola eta albisteak erakusten dira. wrapstodon: Bertako erabiltzaileei Mastodonen urteko erabileraren laburpen ludiko bat sortzea eskaini. Ezaugarri hori urte bakoitzeko abenduaren 10etik 31ra bitartean dago eskuragarri, eta urtean gutxienez hashtag bat erabili duten erabiltzaileei eskaintzen zaie. @@ -127,6 +135,7 @@ eu: otp: 'Sartu zure telefonoko aplikazioak sortutako bi faktoreetako kodea, edo erabili zure berreskuratze kodeetako bat:' webauthn: USB gako bat bada, ziurtatu sartu duzula, eta behar izanez gero ukitu ezazu. settings: + email_subscriptions: Desgaitzeak lehendik dauden harpidedunak mantentzen ditu, baina mezu elektronikoak bidaltzeari uzten dio. indexable: Zure profila bilaketa-emaitzetan ager daiteke Google, Bing eta beste batzuetan. show_application: Dena dela, beti ikusi ahal izango duzu zein aplikaziok argitaratu zuen zure bidalketa. tag: @@ -140,21 +149,29 @@ eu: arbitration_address: Goiko helbide fisikoa edo "N/A" bera izan daiteke posta elektronikoa erabiliz gero. arbitration_website: Web formularioa izan daiteke, edo "N/A" posta elektronikoa erabiliz gero. choice_of_law: Edozein gatazka juridiko gobernatuko duten epaitegien hiria, eskualdea, lurraldea edo estatua. + dmca_address: 'AEBetako operadoreentzat, erabili DMCA Designated Agent Directory-n erregistratutako helbidea. Posta-kutxa (P.O. Box) baten zerrendatzea eskuragarri dago zuzeneko eskaeraz: erabili DMCA Designated Agent Post Office Box Waiver Request inprimakia Copyright Officeri mezu bat bidaltzeko, eta azaldu etxetik lan egiten duzun eduki-moderatzailea zarela, zure ekintzengatiko mendekuaren beldur zarela eta posta-kutxa bat behar duzula zure etxeko helbidea ikusgai ez egoteko.' dmca_email: Goiko "Lege-oharretarako helbide elektronikoa" atalean erabilitako helbide elektroniko bera izan daiteke. domain: Ematen ari zaren lineako zerbitzuaren identifikazio bakarra. jurisdiction: Zerrendatu fakturak ordaintzen dituen pertsona bizi den herrialdea. Enpresa edo bestelako erakunde bat bada, adierazi egoitza duen herrialdea eta, kasuan kasu, hiria, eskualdea, lurraldea edo estatua. min_age: Ez luke izan behar zure jurisdikzioko legeek eskatzen duten gutxieneko adinetik beherakoa. user: + chosen_languages: Markatuta dagoenean, hautatutako hizkuntzetako bidalketak soilik erakutsiko dira denbora-lerro publikoetan. Ezarpen honek ez du eraginik zure Hasierako denbora-lerroan eta zerrendetan. + date_of_birth: + one: Ziurtatu behar dugu gutxienez %{count} urte dituzula %{domain} erabiltzeko. Ez dugu hau gordeko. + other: Ziurtatu behar dugu gutxienez %{count} urte dituzula %{domain} erabiltzeko. Ez dugu hau gordeko. role: Rolak erabiltzaileak dituen baimenak zeintzuk diren kontrolatzen du. user_role: + collection_limit: Rol hau duen erabiltzaile batek sor ditzakeen Bilduma kopurua mugatzen du. Kontuan izan zenbaki hau txikitzen duzunean, muga horretan dauden erabiltzaileek ez dutela Bildumarik galduko, baina ezin izango dutela gehiago sortu. color: Rolarentzat erabiltzaile interfazean erabiliko den kolorea, formatu hamaseitarreko RGB bezala highlighted: Honek rola publikoki ikusgai jartzen du name: Rolaren izen publikoa, rola bereizgarri bezala bistaratzeko ezarrita badago permissions_as_keys: Rol hau duten erabiltzaileek sarbidea izango dute... position: Maila goreneko rolak erabakitzen du gatazkaren konponbidea kasu batzuetan. Ekintza batzuk maila baxuagoko rolen gain bakarrik gauzatu daitezke + require_2fa: Rol hau duten erabiltzaileek bi urratseko autentifikazioa konfiguratu beharko dute Mastodon erabiltzeko username_block: allow_with_approval: Izena ematea zuzenean eragotzi beharrean, bat datozen erregistroek zure onarpena beharko dute comparison: Kontuan izan 'Scunthorpe arazoa' hitz-zatiak blokeatzean + username: Bat etorriko da maiuskulak eta minuskulak eta ohiko homoglifoak kontuan hartu gabe, hala nola "4" "a"-ren ordez edo "3" "e"-ren ordez webhook: events: Hautatu gertaerak bidaltzeko template: Osatu zure JSON karga interpolazio aldakorra erabiliz. Utzi hutsik JSON lehenetsiarentzat. @@ -162,6 +179,7 @@ eu: labels: account: attribution_domains: Akreditatzeko baimendutako webguneak + discoverable: Nabarmendu nazazue aurkikuntza-esperientzietan fields: name: Etiketa value: Edukia @@ -209,6 +227,7 @@ eu: email: E-mail helbidea expires_in: Iraungitzea fields: Profilaren metadatuak + filter_action: Iragazkiaren ekintza header: Goiburua honeypot: "%{label} (ez bete)" inbox_url: Errelearen sarrera ontziaren URLa @@ -225,6 +244,8 @@ eu: setting_always_send_emails: Bidali beti eposta jakinarazpenak setting_auto_play_gif: Erreproduzitu GIF animatuak automatikoki setting_boost_modal: Bultzaden ikusgaitasun-kontrola + setting_color_scheme: Kolore-eskema + setting_contrast: Kontrastea setting_default_language: Argitalpenen hizkuntza setting_default_privacy: Bidalketarako ikusgarritasuna setting_default_quote_policy: Nork aipa dezake @@ -251,6 +272,7 @@ eu: setting_use_pending_items: Modu geldoa severity: Larritasuna sign_in_token_attempt: Segurtasun kodea + sign_in_token_resend: Bidali berriz segurtasun-kodea title: Izenburua type: Inportazio mota username: Erabiltzaile-izena @@ -273,6 +295,7 @@ eu: closed_registrations_message: Izen-emateak itxita daudenerako mezu pertsonalizatua content_cache_retention_period: Urruneko edukiaren atxikipen-aldia custom_css: CSS pertsonalizatua + email_footer_text: Oineko testu gehigarria favicon: Gune-ikurra landing_page: Bisitari berrientzako harrera-orria local_live_feed_access: Tokiko argitalpenak nabarmentzen dituzten zuzeneko jarioetara sarbidea @@ -297,9 +320,13 @@ eu: status_page_url: Egoera-orriaren URLa theme: Lehenetsitako gaia thumbnail: Zerbitzariaren koadro txikia + thumbnail_description: Iruditxoaren testu alternatiboa trendable_by_default: Onartu joerak aurrez berrikusi gabe trends: Gaitu joerak wrapstodon: Gaitu Wrapstodon + form_email_subscriptions_confirmation: + agreement_email_volume: Ulertzen dut eginbide hau gaitzeak zerbitzaritik bidalitako mezu elektronikoen kopurua nabarmen handitu dezakeela, eta ni naizela sortzen diren kostuen erantzule bakarra. + agreement_privacy_and_terms: Pribatutasun-politika eta Zerbitzuaren baldintzak eguneratu ditut. interactions: must_be_follower: Blokeatu jarraitzaile ez direnen jakinarazpenak must_be_following: Blokeatu zuk jarraitzen ez dituzu horien jakinarazpenak @@ -319,6 +346,7 @@ eu: notification_emails: appeal: Norbaitek moderatzailearen erabakia eskatu du digest: Bidali laburpenak e-mail bidez + end_of_support: Mastodonen uneko bertsioa laguntza-aldiaren amaierara hurbiltzen ari da favourite: Bidali e-mail bat norbaitek zure mezua gogoko duenean follow: Bidali e-mail bat norbaitek jarraitzen zaituenean follow_request: Bidali e-mail bat norbaitek zu jarraitzea eskatzen duenean @@ -338,6 +366,7 @@ eu: hint: Informazio gehigarria text: Araua settings: + email_subscriptions: Gaitu posta elektroniko bidezko izen-emateak indexable: Gehitu profila bilaketa-motorretan show_application: Utzi agerian tootak bidaltzeko erabilitako aplikazioa tag: @@ -366,11 +395,13 @@ eu: role: Rola time_zone: Ordu zona user_role: + collection_limit: Erabiltzaile bakoitzeko gehieneko Bilduma kopurua color: Bereizgarriaren kolorea highlighted: Bistaratu rola bereizgarri bezala erabiltzaileen profiletan name: Izena permissions_as_keys: Baimenak position: Lehentasuna + require_2fa: Eskatu bi urratseko autentifikazioa username_block: allow_with_approval: Baimendu izen-emateak onarpen bidez comparison: Konparazio-metodoa diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml index 9767d97..edb503c 100644 --- a/config/locales/simple_form.fi.yml +++ b/config/locales/simple_form.fi.yml @@ -201,7 +201,7 @@ fi: types: disable: Jäädytä none: Lähetä varoitus - sensitive: Arkaluonteinen + sensitive: Merkitse arkaluonteiseksi silence: Rajoita suspend: Jäädytä warning_preset_id: Käytä varoituspohjaa @@ -272,6 +272,7 @@ fi: setting_use_pending_items: Hidas tila severity: Vakavuus sign_in_token_attempt: Turvakoodi + sign_in_token_resend: Lähetä turvakoodi uudelleen title: Nimi type: Tuontityyppi username: Käyttäjänimi diff --git a/config/locales/simple_form.fr-CA.yml b/config/locales/simple_form.fr-CA.yml index 234a8e0..eb27b46 100644 --- a/config/locales/simple_form.fr-CA.yml +++ b/config/locales/simple_form.fr-CA.yml @@ -183,7 +183,7 @@ fr-CA: fields: name: Étiquette value: Contenu - indexable: Inclure mes messages publics dans les résultats de recherche + indexable: Inclure les messages publics dans les résultats de recherche show_collections: Afficher les abonnements et les abonné·e·s sur le profil unlocked: Accepter automatiquement les nouveaux abonnés account_alias: @@ -272,6 +272,7 @@ fr-CA: setting_use_pending_items: Mode lent severity: Sévérité sign_in_token_attempt: Code de sécurité + sign_in_token_resend: Renvoyer le code de sécurité title: Nom type: Type d’import username: Identifiant diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml index e0c72df..2e01706 100644 --- a/config/locales/simple_form.fr.yml +++ b/config/locales/simple_form.fr.yml @@ -20,16 +20,16 @@ fr: title: Facultatif. Invisible pour le destinataire admin_account_action: include_statuses: L’utilisateur·rice verra quels messages sont la source de l’action de modération ou de l’avertissement - send_email_notification: L’utilisateur recevra une explication de ce qu’il s’est passé avec son compte - text_html: Facultatif. Vous pouvez utiliser la syntaxe des messages. Vous pouvez ajouter des avertissements préconfigurés pour gagner du temps + send_email_notification: L’utilisateur⋅rice recevra une explication de ce qu’il s’est passé avec son compte + text_html: Facultatif. Vous pouvez utiliser la syntaxe des messages. Vous pouvez ajouter des modèles d'avertissement pour gagner du temps type_html: Choisir que faire avec %{acct} types: disable: Empêcher l’utilisateur·rice d’utiliser son compte, mais ne pas supprimer ou masquer son contenu. none: Utilisez ceci pour envoyer un avertissement à l’utilisateur·rice, sans déclencher aucune autre action. sensitive: Forcer toutes les pièces jointes de cet·te utilisateur·rice à être signalées comme sensibles. - silence: Empêcher l'utilisateur⋅rice de publier des messages en visibilité publique et cacher tous ses messages et notifications aux comptes non abonnés. Cloture tous les signalements concernant ce compte. - suspend: Empêcher toute interaction depuis ou vers ce compte et supprimer son contenu. Réversible dans les 30 jours. Cloture tous les signalements concernant ce compte. - warning_preset_id: Facultatif. Vous pouvez toujours ajouter un texte personnalisé à la fin de la présélection + silence: Empêcher l'utilisateur⋅rice de publier des messages en visibilité publique et cacher tous ses messages et notifications aux comptes non abonnés. Clôture tous les signalements concernant ce compte. + suspend: Empêcher toute interaction depuis ou vers ce compte et supprimer son contenu. Réversible dans les 30 jours. Clôture tous les signalements concernant ce compte. + warning_preset_id: Facultatif. Vous pouvez toujours ajouter un texte personnalisé à la fin du modèle announcement: all_day: Lorsque coché, seules les dates de l’intervalle de temps seront affichées ends_at: Facultatif. La fin de l'annonce surviendra automatiquement à ce moment @@ -183,7 +183,7 @@ fr: fields: name: Étiquette value: Contenu - indexable: Inclure mes messages publics dans les résultats de recherche + indexable: Inclure les messages publics dans les résultats de recherche show_collections: Afficher les abonnements et les abonné·e·s sur le profil unlocked: Accepter automatiquement les nouveaux abonnés account_alias: @@ -191,7 +191,7 @@ fr: account_migration: acct: L’identifiant du nouveau compte account_warning_preset: - text: Texte de présélection + text: Texte prédéfini title: Titre admin_account_action: include_statuses: Inclure les messages signalés dans le courriel @@ -200,10 +200,10 @@ fr: type: Action types: disable: Désactiver - none: Ne rien faire + none: Envoyer un avertissement sensitive: Sensible silence: Masquer - suspend: Suspendre et supprimer les données du compte de manière irréversible + suspend: Suspendre warning_preset_id: Utiliser un modèle d’avertissement announcement: all_day: Événement de toute la journée @@ -272,7 +272,8 @@ fr: setting_use_pending_items: Mode lent severity: Sévérité sign_in_token_attempt: Code de sécurité - title: Nom + sign_in_token_resend: Renvoyer le code de sécurité + title: Titre type: Type d’import username: Identifiant username_or_email: Identifiant ou adresse courriel diff --git a/config/locales/simple_form.ga.yml b/config/locales/simple_form.ga.yml index 9ec545f..75114fc 100644 --- a/config/locales/simple_form.ga.yml +++ b/config/locales/simple_form.ga.yml @@ -275,6 +275,7 @@ ga: setting_use_pending_items: Modh mall severity: Déine sign_in_token_attempt: Cód slándála + sign_in_token_resend: Athsheol an cód slándála title: Teideal type: Cineál iompórtála username: Ainm úsáideora diff --git a/config/locales/simple_form.gd.yml b/config/locales/simple_form.gd.yml index 93e4c33..32366d9 100644 --- a/config/locales/simple_form.gd.yml +++ b/config/locales/simple_form.gd.yml @@ -274,6 +274,7 @@ gd: setting_use_pending_items: Am modh slaodach severity: Donad sign_in_token_attempt: Còd-tèarainteachd + sign_in_token_resend: Cuir an còd-tèarainteachd a-rithist title: Tiotal type: Seòrsa an ion-phortaidh username: Ainm-cleachdaiche diff --git a/config/locales/simple_form.he.yml b/config/locales/simple_form.he.yml index 9c533e7..a12b1f7 100644 --- a/config/locales/simple_form.he.yml +++ b/config/locales/simple_form.he.yml @@ -56,7 +56,7 @@ he: password: נא להשתמש בלפחות 8 תוים phrase: התאמה תמצא ללא תלות באזהרת תוכן בהודעה scopes: לאיזה ממשק יורשה היישום לגשת. בבחירת תחום כללי, אין צורך לבחור ממשקים ספציפיים. - setting_advanced_layout: מסטודון יוצג כמהדורה רבת טורים, ותוכלו לראות את ציר הזמן לצד ההתראות, טורים נוספים לפי בחירתכם. לא מומלץ למסכים קטנים. + setting_advanced_layout: מסטודון יוצג כמהדורה רבת עמודות, ותוכלו לראות את ציר הזמן לצד ההתראות, עמודות נוספות לפי בחירתכם. לא מומלץ למסכים קטנים. setting_aggregate_reblogs: לא להראות הדהודים של הודעות שהודהדו לאחרונה (משפיע רק על הדהודים שהתקבלו לא מזמן) setting_always_send_emails: בדרך כלל התראות דוא"ל לא יישלחו בזמן שימוש פעיל במסטודון setting_boost_modal: כאשר מאופשר, בחירה בהדהוד תפתח דיאלוג אישור שבו ניתן לשנות את הניראות של ההדהוד. @@ -275,6 +275,7 @@ he: setting_use_pending_items: מצב איטי severity: חומרה sign_in_token_attempt: קוד אבטחה + sign_in_token_resend: שליחה מחדש של קוד האבטחה title: כותרת type: סוג יבוא username: שם משתמש diff --git a/config/locales/simple_form.hu.yml b/config/locales/simple_form.hu.yml index ff01e37..57ae7bb 100644 --- a/config/locales/simple_form.hu.yml +++ b/config/locales/simple_form.hu.yml @@ -132,7 +132,7 @@ hu: hint: Nem kötelező. Adj meg további részleteket a szabályról. text: Írd le, mi a szabály vagy elvárás ezen a kiszolgálón a felhasználók felé. Próbálj röviden, egyszerűen fogalmazni. sessions: - otp: 'Add meg a telefonodon generált kétlépcsős azonosító kódodat vagy használd az egyik tartalék bejelentkező kódot:' + otp: 'Add meg a telefonodon előállított kétlépcsős hitelesítőkódodat, vagy használd az egyik tartalék bejelentkezési kódot:' webauthn: Ha ez egy USB kulcs, ellenőrizd, hogy csatlakoztattad és ha szükséges, aktiváltad is. settings: email_subscriptions: A kikapcsolás megtartja az eddigi feliratkozókat, de leállítja a levelek küldését. @@ -236,7 +236,7 @@ hu: max_uses: Hányszor használható new_password: Új jelszó note: Bemutatkozás - otp_attempt: Kétlépcsős azonosító kód + otp_attempt: Kétlépcsős hitelesítőkód password: Jelszó phrase: Kulcsszó vagy kifejezés setting_advanced_layout: Speciális webes felület engedélyezése @@ -272,6 +272,7 @@ hu: setting_use_pending_items: Lassú mód severity: Súlyosság sign_in_token_attempt: Biztonsági kód + sign_in_token_resend: Biztonsági kód újraküldése title: Cím type: Importálás típusa username: Felhasználónév diff --git a/config/locales/simple_form.is.yml b/config/locales/simple_form.is.yml index 7787aaf..7e11c9f 100644 --- a/config/locales/simple_form.is.yml +++ b/config/locales/simple_form.is.yml @@ -272,6 +272,7 @@ is: setting_use_pending_items: Rólegur hamur severity: Mikilvægi sign_in_token_attempt: Öryggiskóði + sign_in_token_resend: Senda aftur öryggiskóða title: Titill type: Tegund innflutnings username: Notandanafn diff --git a/config/locales/simple_form.it.yml b/config/locales/simple_form.it.yml index 90d0904..750d778 100644 --- a/config/locales/simple_form.it.yml +++ b/config/locales/simple_form.it.yml @@ -272,6 +272,7 @@ it: setting_use_pending_items: Modalità lenta severity: Severità sign_in_token_attempt: Codice di sicurezza + sign_in_token_resend: Invia di nuovo il codice di sicurezza title: Titolo type: Tipo importazione username: Nome utente diff --git a/config/locales/simple_form.kab.yml b/config/locales/simple_form.kab.yml index f8c6bc3..0e03d1c 100644 --- a/config/locales/simple_form.kab.yml +++ b/config/locales/simple_form.kab.yml @@ -76,7 +76,7 @@ kab: defaults: autofollow: Ɛreḍ-it-id ad yeḍfer amiḍan-ik·im avatar: Avaṭar - bot: Wagi d amiḍan aṛubut + bot: Wa d amiḍan awurman chosen_languages: Sizdeg tutlayin confirm_new_password: Sentem awal uffir amaynut confirm_password: Sentem awal uffir diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml index 06c032a..b24cde9 100644 --- a/config/locales/simple_form.nl.yml +++ b/config/locales/simple_form.nl.yml @@ -155,7 +155,7 @@ nl: jurisdiction: Vermeld het land waar de persoon woont die de rekeningen betaalt. Is het een bedrijf of iets dergelijks, vermeld dan het land waar het ingeschreven staat en de stad, de regio, het grondgebied of de staat, voor zover van toepassing. min_age: Mag niet lager zijn dan de minimale vereiste leeftijd volgens de wetten van jouw jurisdictie. user: - chosen_languages: Indien aangevinkt, worden alleen berichten in geselecteerde talen weergegeven in openbare tijdlijnen. Deze instelling heeft geen invloed op je starttijdlijn en lijsten. + chosen_languages: Indien aangevinkt, worden alleen berichten op openbare tijdlijnen in de geselecteerde talen weergegeven. Deze instelling heeft geen invloed op je hoofdtijdlijn en aangepaste tijdlijnen. date_of_birth: one: We moeten er zeker van zijn dat je tenminste %{count} bent om %{domain} te mogen gebruiken. Deze informatie wordt niet door ons opgeslagen. other: We moeten er zeker van zijn dat je tenminste %{count} bent om %{domain} te mogen gebruiken. Deze informatie wordt niet door ons opgeslagen. @@ -272,6 +272,7 @@ nl: setting_use_pending_items: Langzame modus severity: Zwaarte sign_in_token_attempt: Beveiligingscode + sign_in_token_resend: Beveiligingscode opnieuw verzenden title: Titel type: Importtype username: Gebruikersnaam diff --git a/config/locales/simple_form.pt-PT.yml b/config/locales/simple_form.pt-PT.yml index b69431e..84c5b95 100644 --- a/config/locales/simple_form.pt-PT.yml +++ b/config/locales/simple_form.pt-PT.yml @@ -272,6 +272,7 @@ pt-PT: setting_use_pending_items: Modo lento severity: Gravidade sign_in_token_attempt: Código de segurança + sign_in_token_resend: Reenviar código de segurança title: Título type: Tipo de importação username: Nome de utilizador diff --git a/config/locales/simple_form.sv.yml b/config/locales/simple_form.sv.yml index 54a9204..eadb7dd 100644 --- a/config/locales/simple_form.sv.yml +++ b/config/locales/simple_form.sv.yml @@ -272,6 +272,7 @@ sv: setting_use_pending_items: Långsamt läge severity: Strikthet sign_in_token_attempt: Säkerhetskod + sign_in_token_resend: Skicka säkerhetskoden igen title: Rubrik type: Importtyp username: Användarnamn diff --git a/config/locales/simple_form.tr.yml b/config/locales/simple_form.tr.yml index 6e90d8b..368dc9f 100644 --- a/config/locales/simple_form.tr.yml +++ b/config/locales/simple_form.tr.yml @@ -149,7 +149,7 @@ tr: arbitration_address: Yukarıdaki fiziksel adresle aynı olabilir, veya e-posta kullanıyorsanız "N/A". arbitration_website: Web formu olabilir, veya e-posta kullanıyorsanız "N/A". choice_of_law: Her türlü iddiayı yönetecek olan iç maddi yasalara ilişkin şehir, bölge, eyalet veya ülke. - dmca_address: ABD operatörleri için DMCA Atanmış Temsilci Dizininde kayıtlı adresi kullanın. Doğrudan taleple Posta Kutusu kullanımı mümkündür, Telif Hakkı Ofisine e-posta göndermek için DMCA Atanmış Temsilci Posta Kutusu Feragat Talebini kullanın ve eylemleriniz nedeniyle intikam veya cezalandırılmaktan çekinen ve herkese açık ev adresini kullanmamak için Posta Kutusu kullanması gereken ev tabanlı bir içerik moderatörü olduğunuzu açıklayın. + dmca_address: ABD operatörleri için DMCA Atanmış Temsilci Dizininde kayıtlı adresi kullanın. Doğrudan taleple Posta Kutusu kullanımı mümkündür, Telif Hakkı Ofisine e-posta göndermek için DMCA Atanmış Temsilci Posta Kutusu Feragat Talebini kullanın ve eylemleriniz nedeniyle intikam veya cezalandırılmaktan çekinen ve herkese açık ev adresini kullanmamak için Posta Kutusu kullanması gereken ev tabanlı bir içerik denetçisi olduğunuzu açıklayın. dmca_email: Yukarıdaki "Yasal bildirimler için e-posta adresi" için kullanılan e-posta ile aynı olabilir. domain: Sağladığınız çevrimiçi hizmetin benzersiz tanımlaması. jurisdiction: Faturaları ödeyen kişinin yaşadığı ülkeyi listeleyin. Bir şirket veya başka bir kuruluş ise, kurulduğu ülkeyi ve uygun şekilde şehri, bölgeyi, yöreyi veya eyaleti listeleyin. @@ -272,6 +272,7 @@ tr: setting_use_pending_items: Yavaş mod severity: Önem derecesi sign_in_token_attempt: Güvenlik kodu + sign_in_token_resend: Güvenlik kodunu tekrar gönder title: Başlık type: İçeri aktarma türü username: Kullanıcı adı @@ -343,7 +344,7 @@ tr: sign_up_requires_approval: Kayıtları sınırla severity: Kural notification_emails: - appeal: Birisi, bir moderatör kararına itiraz ediyor + appeal: Birisi, bir denetçi kararına itiraz ediyor digest: Özet e-postaları gönder end_of_support: Mastodon’un mevcut sürümünün destek süresi sona ermek üzere favourite: Birisi gönderinizi beğendi diff --git a/config/locales/simple_form.vi.yml b/config/locales/simple_form.vi.yml index 869150f..09193e9 100644 --- a/config/locales/simple_form.vi.yml +++ b/config/locales/simple_form.vi.yml @@ -3,18 +3,18 @@ vi: simple_form: hints: account: - attribution_domains: Bảo vệ khỏi những sự gán ghép sai. + attribution_domains: Nhập mỗi cái một dòng, để tránh bị kết nối lẫn lộn với nhau. discoverable: Bạn có thể được nêu bật trong một gói khởi đầu của người khác. Bạn và tút công khai của bạn sẽ được đề xuất trên Mastodon. display_name: Tên đầy đủ hoặc biệt danh đều được. - fields: Blog của bạn, nghề nghiệp, tuổi hoặc bất kỳ. - indexable: Mọi người có thể tìm kiếm và tương tác với những tút công khai của bạn trên Mastodon. + fields: Website, nghề nghiệp, tuổi hoặc bất kỳ thứ gì bạn thích. + indexable: Mọi người có thể tìm kiếm và tương tác với những bài đăng công khai của bạn trên Mastodon. note: 'Bạn có thể @aiđó hoặc #hashtags.' show_collections: Mọi người sẽ biết bạn theo dõi ai và ai theo dõi bạn. unlocked: Mọi người sẽ theo dõi bạn mà không cần bạn cho phép. account_alias: acct: Nhập tên_người_dùng@máy chủ của tài khoản cũ account_migration: - acct: tên_người_dùng@máy chủ của tài khoản bạn muốn chuyển sang + acct: Nhập tên_người_dùng@máy chủ của tài khoản bạn muốn chuyển sang account_warning_preset: text: Bạn có thể dùng URL, hashtag và nhắc đến title: Tùy chọn. Không cho người nhận xem @@ -45,18 +45,18 @@ vi: context: Chọn những nơi áp dụng bộ lọc current_password: Để bảo mật, vui lòng nhập mật khẩu của tài khoản hiện tại current_username: Để xác nhận, vui lòng nhập tên người dùng của tài khoản hiện tại - digest: Chỉ gửi sau một thời gian dài không hoạt động hoặc khi bạn nhận được tin nhắn (trong thời gian vắng mặt) - email: Bạn sẽ được gửi một email xác minh + digest: Chỉ gửi sau một thời gian dài không hoạt động hoặc khi bạn nhận được tin nhắn trong lúc vắng mặt + email: Bạn vừa được nhận một email xác minh header: WEBP, PNG, GIF hoặc JPG, tối đa %{size}. Sẽ bị nén xuống %{dimensions}px inbox_url: Sao chép URL của máy chủ mà bạn muốn dùng - irreversible: Các tút đã lọc sẽ không thể phục hồi, kể cả sau khi xóa bộ lọc + irreversible: Bài đăng đã bị lọc qua sẽ không bao giờ hiển thị nữa, kể cả sau khi tắt bộ lọc locale: Ngôn ngữ của giao diện, email và thông báo đẩy password: Tối thiểu 8 ký tự - phrase: Sẽ được hiện thị trong văn bản hoặc cảnh báo nội dung của một tút + phrase: Khớp hiển thị với văn bản hoặc nội dung cảnh báo của bài đăng scopes: Ứng dụng sẽ được phép truy cập những API nào. Nếu bạn chọn quyền cấp cao nhất, không cần chọn quyền nhỏ. - setting_advanced_layout: Cho phép bạn xem bảng tin, thông báo và một cột thứ ba mà bạn chọn. Không nên dùng nếu màn hình nhỏ. - setting_aggregate_reblogs: Nếu một tút đã được đăng lại thì sẽ không hiện những lượt đăng lại khác trên bảng tin - setting_always_send_emails: Bình thường thì sẽ không gửi khi bạn đang dùng Mastodon + setting_advanced_layout: Bố cục hiển thị nhiều cột. Cho phép bạn xem bảng tin, thông báo và một cột thứ ba tùy ý. Không khuyên dùng trên màn hình nhỏ. + setting_aggregate_reblogs: Không hiển thị lại những bài boost mới đã được boost trước đó (áp dụng cho bài boost mới) + setting_always_send_emails: Không gởi thông báo qua email khi bạn đang hoạt động trên Mastodon setting_boost_modal: Nếu bật, trước khi đăng lại sẽ mở hộp thoại xác nhận - trong đó bạn có thể thay đổi mức độ hiển thị tút của mình. setting_default_quote_policy_private: Không thể trích dẫn tút chỉ dành cho người theo dõi trên Mastodon. setting_default_quote_policy_unlisted: Khi ai đó trích dẫn bạn, tút của họ cũng sẽ bị ẩn khỏi bảng tin công khai. @@ -64,7 +64,7 @@ vi: setting_display_media_default: Cảnh báo trước khi hiện phương tiện nhạy cảm setting_display_media_hide_all: Cảnh báo trước khi hiện tất cả phương tiện setting_display_media_show_all: Hiện tất cả phương tiện mà không cảnh báo, kể cả phương tiện đánh dấu nhạy cảm - setting_emoji_style: '"Tự động" sẽ dùng biểu tượng cảm xúc nguyên bản, nhưng đối với các trình duyệt cũ sẽ chuyển thành Twemoji.' + setting_emoji_style: '"Tự động" sẽ dùng biểu tượng cảm xúc thiết bị, còn trình duyệt cũ sẽ chuyển thành Twemoji.' setting_quick_boosting_html: Nếu bật, nhấn biểu tượng %{boost_icon} Đăng lại sẽ đăng lại lập tức, thay vì mở menu xổ xuống đăng lại/trích dẫn. Chuyển vị trí hành động trích dẫn sang menu %{options_icon} (Tùy chọn). setting_use_blurhash: Phủ lớp màu làm nhòe đi hình ảnh nhạy cảm setting_use_pending_items: Dồn lại toàn bộ tút mới và chỉ hiển thị khi nhấn vào @@ -271,6 +271,7 @@ vi: setting_use_pending_items: Chế độ chậm severity: Mức độ nghiêm trọng sign_in_token_attempt: Mã an toàn + sign_in_token_resend: Gửi lại mã bảo mật title: Tựa đề type: Kiểu nhập username: Tên người dùng diff --git a/config/locales/simple_form.zh-CN.yml b/config/locales/simple_form.zh-CN.yml index 749cd72..176170c 100644 --- a/config/locales/simple_form.zh-CN.yml +++ b/config/locales/simple_form.zh-CN.yml @@ -271,6 +271,7 @@ zh-CN: setting_use_pending_items: 慢速模式 severity: 级别 sign_in_token_attempt: 安全码 + sign_in_token_resend: 重新发送安全码 title: 标题 type: 导入数据类型 username: 用户名 diff --git a/config/locales/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml index a224743..660b56b 100644 --- a/config/locales/simple_form.zh-TW.yml +++ b/config/locales/simple_form.zh-TW.yml @@ -271,6 +271,7 @@ zh-TW: setting_use_pending_items: 限速模式 severity: 優先級 sign_in_token_attempt: 安全代碼 + sign_in_token_resend: 重新寄送安全碼 title: 標題 type: 匯入類型 username: 使用者名稱 @@ -342,7 +343,7 @@ zh-TW: sign_up_requires_approval: 限制註冊 severity: 規則 notification_emails: - appeal: 有人對管理員的決定提出上訴 + appeal: 有人對管理員的決定提出申訴 digest: 傳送摘要電子郵件 end_of_support: 目前正在運行之 Mastodon 版本即將停止支援 favourite: 當有使用者將您的嘟文加入最愛時,傳送電子郵件通知 diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 4bc1888..a09a273 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -69,6 +69,7 @@ sv: demote: Degradera destroyed_msg: "%{username}s data har nu lagts till kön för att raderas omedelbart" disable: Inaktivera + disable_sign_in_token: Inaktivera tillfälligt kontrollen med säkerhetskod disable_sign_in_token_auth: Inaktivera autentisering med pollett via e-post disable_two_factor_authentication: Inaktivera 2FA disabled: Inaktiverad @@ -78,6 +79,7 @@ sv: email: E-post email_status: E-poststatus enable: Aktivera + enable_sign_in_token: Aktivera kontrollen med säkerhetskod enable_sign_in_token_auth: Aktivera autentisering med pollett via e-post enabled: Aktiverad enabled_msg: Uppfrysningen av %{username}s konto lyckades @@ -1980,7 +1982,7 @@ sv: too_many_options: kan inte innehålla mer än %{max} objekt vote: Rösta posting_defaults: - explanation: Dessa inställningar kommer att användas som standard när du skapar nya inlägg, men du kan redigera dem per inlägg i kompositören. + explanation: Dessa inställningar kommer att användas som standard när du skapar nya inlägg, men du kan redigera dem per inlägg i skrivläget. preferences: other: Annat posting_defaults: Standardinställningar för inlägg @@ -2299,6 +2301,14 @@ sv: further_actions_html: Om detta inte var du, rekommenderar vi att du %{action} omedelbart eftersom ditt konto kan ha äventyrats. subject: Andra faktorns autentiseringsfel title: Misslyckad tvåfaktorsautentisering + sign_in_token: + change_password: ändra ditt lösenord + details: 'Här är detaljer om försöket:' + explanation: 'Vi upptäckte ett försök att logga in på ditt konto efter en längre tids inaktivitet. Om det var du, vänligen ange säkerhetskoden nedan på sidan för inloggningsverifiering:' + further_actions: 'Om det inte var du, vänligen byt lösenord och aktivera tvåfaktorsautentisering på ditt konto. Du kan göra det här:' + further_actions_html: Om det inte var du, rekommenderar vi att du %{action} omedelbart och aktiverar tvåfaktorsautentisering för att hålla ditt konto säkert. + subject: Bekräfta inloggningsförsöket + title: Inloggningsförsök suspicious_sign_in: change_password: ändra ditt lösenord details: 'Här är inloggningsdetaljerna:' @@ -2388,8 +2398,12 @@ sv: title: Välkommen ombord, %{name}! users: follow_limit_reached: Du kan inte följa fler än %{limit} personer + generic_access_help_html: Har du problem med att komma åt ditt konto? Du kan kontakta %{email} för assistans go_to_sso_account_settings: Gå till din identitetsleverantörs kontoinställningar + inactive_sign_in_confirmation: Det har varit ett tag sedan du loggade in, så vi skickar en säkerhetskod till din e-postadress för att bekräfta att det är du. + inactive_sign_in_title: Bekräfta säkerhetskoden invalid_otp_token: Ogiltig tvåfaktorskod + invalid_sign_in_token: Ogiltig säkerhetskod otp_lost_help_html: Om du förlorat åtkomst till båda kan du komma i kontakt med %{email} rate_limited: För många autentiseringsförsök, försök igen senare. seamless_external_login: Du är inloggad via en extern tjänst. Därför finns inställningar för lösenord och e-post inte tillgängliga. diff --git a/config/locales/tr.yml b/config/locales/tr.yml index 65ba73b..43f7a59 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -69,6 +69,7 @@ tr: demote: Düşür destroyed_msg: "%{username} adlı kullanıcının verilerinin silinmesi sıraya alındı" disable: Dondur + disable_sign_in_token: Güvenlik kodu doğrulamasını geçici olarak devre dışı bırak disable_sign_in_token_auth: E-posta token doğrulamayı devre dışı bırak disable_two_factor_authentication: 2 aşamalı doğrulamayı kapat disabled: Kapalı @@ -78,6 +79,7 @@ tr: email: E-posta email_status: E-posta durumu enable: Etkinleştir + enable_sign_in_token: Güvenlik kodu doğrulamasını etkinleştir enable_sign_in_token_auth: E-posta token doğrulamayı etkinleştir enabled: Etkin enabled_msg: "%{username} hesabı başarıyla çözüldü" @@ -107,7 +109,7 @@ tr: silenced: Sınırlı suspended: Askıya Alınan title: Denetim - moderation_notes: Denetleme notları + moderation_notes: Denetim notları most_recent_activity: Son aktivite most_recent_ip: Son IP no_account_selected: Hiçbiri seçilmediğinden hiçbir hesap değiştirilmedi @@ -250,7 +252,7 @@ tr: update_user_role: Rolü Güncelle update_username_block: Kullanıcı Adı Kuralını Güncelle actions: - approve_appeal_html: "%{name}, %{target} kullanıcısının yönetim kararına itirazını kabul etti" + approve_appeal_html: "%{name}, %{target} kullanıcısının denetim kararına itirazını kabul etti" approve_user_html: "%{name}, %{target} konumundan kaydı onayladı" assigned_to_self_report_html: "%{name} kendilerine %{target} adlı raporu verdi" change_email_user_html: "%{name}, %{target} kullanıcısının e-posta adresini değiştirdi" @@ -300,7 +302,7 @@ tr: not_usable_tag_html: kullanılamaz promote_user_html: "%{name}, %{target} kullanıcısını yükseltti" publish_terms_of_service_html: "%{name} hizmet şartları güncellemelerini yayınladı" - reject_appeal_html: "%{name}, %{target} kullanıcısının yönetim kararına itirazını reddetti" + reject_appeal_html: "%{name}, %{target} kullanıcısının denetim kararına itirazını reddetti" reject_user_html: "%{name}, %{target} konumundan kaydı reddetti" remove_avatar_user_html: "%{name}, %{target} kullanıcısının avatarını kaldırdı" reopen_report_html: "%{name}, %{target} şikayetini yeniden açtı" @@ -465,7 +467,7 @@ tr: import: İçe aktar new: create: Yeni blok oluştur - hint: Domain bloğu, veri tabanında hesap kayıtlarının oluşturulmasını engellemez, fakat o hesapların üzerine otomatik olarak belirli yönetim metodlarını olarak uygular. + hint: Domain bloğu, veri tabanında hesap kayıtlarının oluşturulmasını engellemez, fakat o hesapların üzerine otomatik olarak belirli denetim yöntemlerini uygular. severity: desc_html: "Sınırlama, bu sunucudaki hesabın gönderilerini, o hesabı takip etmeyen diğer herkese gizler. Uzaklaştırma bu alan adındaki hesapların tüm içeriğini, medya dosyalarını ve profil verisini sunucunuzdan siler. Sadece medya dosyalarını reddetmek için Hiçbiri kullanın." noop: Yok @@ -477,7 +479,7 @@ tr: obfuscate: Alan adını gizle obfuscate_hint: Alan adı kısıtlamaları listelerinin duyurulması etkinleştirilmişse alan adını listede kısmen gizle private_comment: Özel yorum - private_comment_hint: Moderatörler tarafından dahili kullanım için bu alan adı sınırlaması hakkında yorum. + private_comment_hint: Denetçiler tarafından dahili kullanım için bu alan adı sınırlaması hakkında yorum. public_comment: Genel yorum public_comment_hint: Eğer alan adı sınırlamaları listesinin tanıtılması etkinleştirilmişse, genel kullanım için bu alan adı sınırlaması hakkında yorum. reject_media: Medya dosyalarını reddet @@ -701,12 +703,12 @@ tr: limited: Sınırlı title: Denetim moderation_notes: - create: Denetleme Notu Ekle - created_msg: Sunucu denetleme notu başarıyla oluşturuldu! - description_html: Kendiniz ve diğer moderatörler için not bırakın veya notları görüntüleyin - destroyed_msg: Sunucu denetleme notu başarıyla silindi! + create: Denetim Notu Ekle + created_msg: Sunucu denetim notu başarıyla oluşturuldu! + description_html: Kendiniz ve diğer denetçiler için not bırakın veya notları görüntüleyin + destroyed_msg: Sunucu denetim notu başarıyla silindi! placeholder: Bu sunucu hakkında bilgi, gerçekleştirilen eylemler veya ileride bu sunucunun denetimi için işinize yarayabilecek herhangi bir şey. - title: Denetleme Notları + title: Denetim Notları private_comment: Özel yorum public_comment: Genel yorum purge: Temizle @@ -788,7 +790,7 @@ tr: remote: Sunucularında zaten askıya alınmış are_you_sure: Emin misiniz? assign_to_self: Bana ata - assigned: Atanan moderatör + assigned: Atanan denetçi by_target_domain: Şikayet edilen hesabın alan adı cancel: İptal et category: Kategori @@ -815,7 +817,7 @@ tr: delete: Sil placeholder: Hangi işlemlerin yapıldığını, ya da diğer ilgili güncellemeleri açıklayın... title: Notlar - notes_description_html: Kendiniz ve diğer moderatörler için not bırakın veya notları görüntüleyin + notes_description_html: Kendiniz ve diğer denetçiler için not bırakın veya notları görüntüleyin processed_msg: "#%{id} Bildirimi başarıyla işlendi" quick_actions_description_html: 'Hemen bir şey yapın veya bildirilen içeriği görmek için aşağı kaydırın:' remote_user_placeholder: "%{instance}'dan uzak kullanıcı" @@ -882,7 +884,7 @@ tr: delete_user_data: Kullanıcı Verilerini Silme delete_user_data_description: Kullanıcıların, diğer kullanıcıların verisini gecikme olmaksızın silmesine izin verir invite_bypass_approval: Kullanıcıları incelemeden davet et - invite_bypass_approval_description: Bu kullanıcılar tarafından sunucuya davet edilen kişilerin moderasyon onayını atlamasına izin verir + invite_bypass_approval_description: Bu kullanıcılar tarafından sunucuya davet edilen kişilerin denetim onayını atlamasına izin verir invite_users: Kullanıcıları Davet Etme invite_users_description: Kullanıcıların yeni kişileri sunucuya davet etmesine izin verir manage_announcements: Duyuruları Yönetme @@ -1291,7 +1293,7 @@ tr: webhook: Web kancası admin_mailer: auto_close_registrations: - body: Son zamanlardaki moderatör faaliyeti eksikliğinden dolayı, %{instance} üzerindeki kayıtlar, %{instance} sunucusunun olası kötü aktörler tarafından bir platform olarak kullanımını engellemek için otomatik olarak elle onay gerektirecek şekilde değiştirilmiştir. İstediğiniz zaman açık kayıtlara çevirebilirsiniz. + body: Son zamanlardaki denetçi faaliyeti eksikliğinden dolayı, %{instance} üzerindeki kayıtlar, %{instance} sunucusunun olası kötü aktörler tarafından bir platform olarak kullanımını engellemek için otomatik olarak elle onay gerektirecek şekilde değiştirilmiştir. İstediğiniz zaman açık kayıtlara çevirebilirsiniz. subject: "%{instance} üzerindeki kayıtlar otomatik olarak onay gerektirecek şekilde değiştirilmiştir" end_of_support_out_of_support_warning: body: Sunucunuzda şu anda kullanılan Mastodon sürümü artık desteklenmiyor. En kısa zamanda güncelleme yapmanızı öneririz! @@ -1420,8 +1422,8 @@ tr: accept: Onayla back: Geri invited_by: 'Aşağıdakinden aldığınız davet sayesinde %{domain} sunucusuna katılabilirsiniz:' - preamble: Bunlar, %{domain} moderatörleri tarafından ayarlanmış ve uygulanmıştır. - preamble_invited: Devam etmeden önce, %{domain} moderatörleri tarafından belirlenmiş temel kuralları gözden geçirin. + preamble: Bunlar, %{domain} denetçileri tarafından ayarlanmış ve uygulanmıştır. + preamble_invited: Devam etmeden önce, %{domain} denetçileri tarafından belirlenmiş temel kuralları gözden geçirin. read_more: Devamını okuyun title: Bazı temel kurallar. title_invited: Davet edildiniz. @@ -1437,7 +1439,7 @@ tr: preamble_html: "%{domain} kimlik bilgilerinizi kullanarak giriş yapın. Eğer hesabınız başka bir sunucuda barındırılıyorsa, burada giriş yapamazsınız." title: "%{domain} giriş yapın" sign_up: - manual_review: "%{domain} kayıtları moderatörler tarafından manuel olarak inceleniyor. Kaydınızı işlememizi kolaylaştırmak için kendiniz ve %{domain} sunucusundan neden hesap istediğiniz hakkında biraz bilgi verin." + manual_review: "%{domain} kayıtları denetçiler tarafından manuel olarak inceleniyor. Kaydınızı işlememizi kolaylaştırmak için kendiniz ve %{domain} sunucusundan neden hesap istediğiniz hakkında biraz bilgi verin." preamble: Bu Mastodon sunucusu üzerinden bir hesap ile fediverseteki herhangi bir kişiyi, hangi sunucuda olursa olsun, takip edebilirsiniz. title: "%{domain} için kurulumunuzu yapalım." status: @@ -1941,7 +1943,7 @@ tr: administration_emails: Yönetici e-posta bildirimleri email_events: E-posta bildirimi etkinlikleri email_events_hint: 'Bildirim almak istediğiniz olayları seçin:' - moderation_emails: Moderasyon e-posta bildirimleri + moderation_emails: Denetim e-posta bildirimleri number: human: decimal_units: @@ -1980,7 +1982,7 @@ tr: too_many_options: "%{max} öğeden fazla öğe içeremez" vote: Oyla posting_defaults: - explanation: Bu ayarlar, yeni gönderiler oluştururken varsayılan olarak kullanılacaktır, ancak bunları oluşturucu içinde her gönderi için ayrı ayrı düzenleyebilirsiniz. + explanation: Bu ayarlar, yeni gönderiler oluştururken varsayılan olarak kullanılacaktır, ancak bunları düzenleyici içinde her gönderi için ayrı ayrı düzenleyebilirsiniz. preferences: other: Diğer posting_defaults: Gönderi varsayılanları @@ -2109,7 +2111,7 @@ tr: relationships: Takip edilenler ve takipçiler severed_relationships: Kopmuş ilişkiler statuses_cleanup: Otomatik gönderi silme - strikes: Moderasyon eylemleri + strikes: Denetim eylemleri two_factor_authentication: İki adımlı doğrulama webauthn_authentication: Güvenlik anahtarları severed_relationships: @@ -2120,7 +2122,7 @@ tr: user_domain_block: 'Engellediniz: %{target_name}' lost_followers: Kaybedilen takipçiler lost_follows: Kaybedilen takipler - preamble: Bir alan adını engellediğinizde veya moderatörleriniz uzak bir sunucuyu askıya almaya karar verdiğinde takipçilerinizi ve takiplerinizi kaybedebilirsiniz. Bu olduğunda, kopan ilişkilerin bir listesini, incelemek ve başka bir sunucuya aktarmak için indirebileceksiniz. + preamble: Bir alan adını engellediğinizde veya denetçileriniz uzak bir sunucuyu askıya almaya karar verdiğinde takipçilerinizi ve takiplerinizi kaybedebilirsiniz. Bu olduğunda, kopan ilişkilerin bir listesini, incelemek ve başka bir sunucuya aktarmak için indirebileceksiniz. purged: Bu sunucu hakkındaki bilgiler, sunucunun yöneticileri tarafından temizlenmiş. type: Olay statuses: @@ -2299,6 +2301,14 @@ tr: further_actions_html: Eğer bu kişi siz değilseniz, hemen %{action} yapmanızı öneriyoruz çünkü hesabınız ifşa olmuş olabilir. subject: İki aşamalı doğrulama başarısızlığı title: Başarısız iki aşamalı kimlik doğrulama + sign_in_token: + change_password: parolanızı değiştirin + details: 'İşte bu girişimin ayrıntıları:' + explanation: 'Hesabınızda uzun bir süre etkinlik görülmedikten sonra, hesaba giriş yapma girişimi tespit ettik. Bu durum size aitse, lütfen giriş doğrulama sayfasında aşağıdaki güvenlik kodunu girin:' + further_actions: 'Bu siz değildiyseniz, lütfen şifrenizi değiştirin ve hesabınızda iki faktörlü kimlik doğrulamayı etkinleştirin. Bunu buradan yapabilirsiniz:' + further_actions_html: Eğer oturum açan siz değildiyseniz, hesabınızı güvenli tutmanız için hemen %{action} yapmanızı ve iki aşamalı yetkilendirmeyi etkinleştirmenizi öneriyoruz. + subject: Lütfen oturum açma girişimini onaylayın + title: Oturum açma girişimi suspicious_sign_in: change_password: parolanızı değiştirin details: 'Oturum açma ayrıntıları şöyledir:' @@ -2322,9 +2332,9 @@ tr: spam: İstenmeyen violation: İçerik aşağıdaki topluluk ilkelerini ihlal ediyor explanation: - delete_statuses: Bazı gönderilerinizin, topluluk ilkelerimizden bir veya daha fazlasını ihlal ettiği görüldü ve daha sonra %{instance} moderatörleri tarafından kaldırıldılar. + delete_statuses: Bazı gönderilerinizin, topluluk ilkelerimizden bir veya daha fazlasını ihlal ettiği görüldü ve daha sonra %{instance} denetçileri tarafından kaldırıldılar. disable: Artık hesabınızı kullanamazsınız, ancak profil ve diğer veri sağlam. Verinizin bir yedeğini isteyebilir, hesap ayarlarınızı değiştirebilir veya hesabınızı silebilirsiniz. - mark_statuses_as_sensitive: Gönderilerinizin bazıları %{instance} moderatörleri tarafından hassas olarak işaretlendi. Bu nedenle bir önizleme görüntülenmeden önce insanların gönderilerinizdeki medya dosyalarına dokunması gerekiyor. Gelecekte gönderimde bulunurken medya dosyalarını hassas olarak işaretleyebilirsiniz. + mark_statuses_as_sensitive: Gönderilerinizin bazıları %{instance} denetçileri tarafından hassas olarak işaretlendi. Bu nedenle bir önizleme görüntülenmeden önce insanların gönderilerinizdeki medya dosyalarına dokunması gerekiyor. Gelecekte gönderimde bulunurken medya dosyalarını hassas olarak işaretleyebilirsiniz. sensitive: Artık tüm yüklenmiş medya dosyalarınız hassas olarak işaretlenecek ve üzerine tıklanarak açılacak şekilde bir uyarının ardına gizlenecektir. silence: Hesabınız sınırlı iken, yalnızca sizi takip eden kişiler bu sunucudaki gönderilenizi görecek ve çeşitli keşif özelliklerinin dışında bırakılabilirsiniz. Ancak, başkaları sizi manuel olarak hala takip edebilir. suspend: Hesabınızı artık kullanamazsınız ve profiliniz ve diğer veri artık erişilebilir değil. Yaklaşık 30 gün içinde silinene kadar verinizin bir yedeğini istemek için giriş yapabilirsiniz, ancak askıdan kaçınmanızı önlemek için bazı temel veriyi saklayabiliriz. @@ -2365,7 +2375,7 @@ tr: feature_creativity: Mastodon kendinizi çevrimiçi ifade edebilmenize yardımcı olmak için ses, video ve görsel, erişilebilirlik açıklamaları, anketler, içerik uyarıları, hareketli avatarlar, özel emojiler, önizleme resmini kesme denetimi ve daha fazlasını destekliyor. Kendi sanatınızı, müziğinizi veya podcastinizi yayınlıyorsanız Mastodon kullanımınıza açık. feature_creativity_title: Benzersiz yaratıcılık feature_moderation: Mastodon karar vermeyi yeniden size bırakıyor. Her sunucu kendi kurallarını ve düzenlemelerini oluşturur. Bu kurallar da kurumsal sosyal medyalar gibi tepeden değil, yerel olarak uygulanıyor; bu da Mastodon'u farklı insan gruplarının ihtiyaçlarına yanıt vermede esnek kılıyor. Kurallarına katıldığınız bir sunucuya katılın veya kendi sunucunuzu barındırın. - feature_moderation_title: Olması gerektiği gibi moderasyon + feature_moderation_title: Olması gerektiği gibi denetim follow_action: Takip et follow_step: Kendi akışınızı düzenliyorsunuz. Hadi onu ilginç kullanıcılarla dolduralım. follow_title: Ana sayfa akışınızı kişiselleştirin @@ -2388,8 +2398,12 @@ tr: title: Gemiye hoşgeldin, %{name}! users: follow_limit_reached: "%{limit} kişiden daha fazlasını takip edemezsiniz" + generic_access_help_html: Hesabınıza erişirken sorun mu yaşıyorsunuz? Yardım için %{email} ile iletişime geçebilirsiniz go_to_sso_account_settings: Kimlik sağlayıcı hesap ayarlarına gidin + inactive_sign_in_confirmation: En son giriş yapalı epey zaman geçti; bu nedenle, sizin olduğunuzu doğrulamak amacıyla e-posta adresinize bir güvenlik kodu gönderiyoruz. + inactive_sign_in_title: Lütfen güvenlik kodunu doğrulayın invalid_otp_token: Geçersiz iki adımlı doğrulama kodu + invalid_sign_in_token: Geçersiz güvenlik kodu otp_lost_help_html: Her ikisine de erişiminizi kaybettiyseniz, %{email} ile irtibata geçebilirsiniz rate_limited: Çok fazla kimlik doğrulama denemesi. Daha sonra tekrar deneyin. seamless_external_login: Harici bir servis aracılığıyla oturum açtınız, bu nedenle parola ve e-posta ayarları mevcut değildir. diff --git a/config/locales/vi.yml b/config/locales/vi.yml index 8ff6df3..beeba77 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -66,6 +66,7 @@ vi: demote: Hạ vai trò destroyed_msg: Dữ liệu %{username} sẽ được lên lịch xóa ngay bây giờ disable: Khóa + disable_sign_in_token: Tạm thời tắt yêu cầu nhập mã bảo mật disable_sign_in_token_auth: Tắt xác minh bằng email disable_two_factor_authentication: Vô hiệu hóa xác thực 2 bước disabled: Tạm khóa @@ -75,6 +76,7 @@ vi: email: Email email_status: Trạng thái enable: Mở lại + enable_sign_in_token: Bật yêu cầu nhập mã bảo mật enable_sign_in_token_auth: Bật xác minh bằng email enabled: Đã duyệt enabled_msg: Đã kích hoạt lại tài khoản %{username} thành công @@ -2250,6 +2252,14 @@ vi: further_actions_html: Nếu không phải bạn, hãy lập tức %{action} vì có thể có rủi ro. subject: Xác thực 2 bước thất bại title: Xác thực 2 bước thất bại + sign_in_token: + change_password: đổi mật khẩu của bạn + details: 'Dưới đây là thông tin chi tiết:' + explanation: 'Tài khoản của bạn vừa đăng nhập sau một khoảng thời gian dài không hoạt động. Nếu thật là bạn, hãy nhập mã bảo mật bên dưới vào trang đăng nhập:' + further_actions: 'Nếu không phải là bạn, hãy lập tức thay đổi mật khẩu và kích hoạt xác thực hai bước ở đây:' + further_actions_html: Nếu đây không phải là bạn, hãy %{action} lập tức và bật xác thực 2 bước để giữ tài khoản được an toàn. + subject: Xác nhận đăng nhập + title: Đăng nhập suspicious_sign_in: change_password: đổi mật khẩu của bạn details: 'Chi tiết thông tin đăng nhập:' @@ -2338,8 +2348,12 @@ vi: title: Xin chào %{name}! users: follow_limit_reached: Bạn chỉ có thể theo dõi tối đa %{limit} người + generic_access_help_html: Gặp trục trặc với tài khoản? Liên hệ %{email} để được trợ giúp go_to_sso_account_settings: Thiết lập tài khoản nhà cung cấp danh tính + inactive_sign_in_confirmation: Đã khá lâu kể từ lần cuối bạn đăng nhập, vì vậy chúng tôi sẽ gửi mã bảo mật đến địa chỉ email của bạn để xác minh. + inactive_sign_in_title: Vui lòng nhập mã bảo mật invalid_otp_token: Mã xác thực 2 bước không hợp lệ + invalid_sign_in_token: Mã bảo mật không hợp lệ otp_lost_help_html: Nếu bạn mất quyền truy cập vào cả hai, bạn có thể đăng nhập bằng %{email} rate_limited: Quá nhiều lần thử, vui lòng thử lại sau. seamless_external_login: Bạn đã đăng nhập thông qua một dịch vụ bên ngoài, vì vậy mật khẩu và email không khả dụng. diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 2d7a6cc..879ea9f 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -66,6 +66,7 @@ zh-CN: demote: 取消管理员 destroyed_msg: "%{username} 的数据已被安排至删除队列" disable: 冻结 + disable_sign_in_token: 临时禁用安全码挑战 disable_sign_in_token_auth: 禁用邮件令牌身份验证 disable_two_factor_authentication: 停用双因素认证 disabled: 已冻结 @@ -75,6 +76,7 @@ zh-CN: email: 电子邮箱地址 email_status: 邮箱地址状态 enable: 解冻 + enable_sign_in_token: 启用安全码挑战 enable_sign_in_token_auth: 启用邮件令牌身份验证 enabled: 已启用 enabled_msg: 成功解冻 %{username} 的账号 @@ -2250,6 +2252,14 @@ zh-CN: further_actions_html: 如果这不是你所为,你的密码可能已经泄露,建议你立即 %{action} 。 subject: 辅助认证失败 title: 辅助认证失败 + sign_in_token: + change_password: 更改密码 + details: 该尝试详情如下: + explanation: 我们检查到在账号长时间未活跃后首次出现了登录请求。如果这确实是你,请在登录确认页面输入下方的安全码: + further_actions: 如果这不是你,请更换你的密码并且在你的账号上开启双重认证。你可以在这里设置: + further_actions_html: 如果不是你本人操作,我们建议你立即 %{action} 并启用双因素认证,以确保账号安全。 + subject: 请确认登录请求 + title: 登录请求 suspicious_sign_in: change_password: 更改密码 details: 以下是该次登录的详细信息: @@ -2338,8 +2348,12 @@ zh-CN: title: "%{name},欢迎你的加入!" users: follow_limit_reached: 你不能关注超过 %{limit} 个人 + generic_access_help_html: 登录账号出现问题?你可以向 %{email} 寻求帮助 go_to_sso_account_settings: 转到你的身份提供商进行账号设置 + inactive_sign_in_confirmation: 距你上次登录已有一段时间,因此我们给你的电子邮箱发了封邮件,想确认一下确实是你。 + inactive_sign_in_title: 请确认安全码 invalid_otp_token: 输入的双因素认证代码无效 + invalid_sign_in_token: 无效安全码 otp_lost_help_html: 如果你不慎丢失了全部的代码,请联系 %{email} 寻求帮助 rate_limited: 验证尝试次数过多,请稍后再试。 seamless_external_login: 你通过外部服务登录,因此密码和邮件设置不可用。 diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 379c19d..a69b760 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -68,6 +68,7 @@ zh-TW: demote: 降級 destroyed_msg: 即將刪除 %{username} 的資料 disable: 停用 + disable_sign_in_token: 暫時停用安全碼驗證 (security code challenge) disable_sign_in_token_auth: 停用電子郵件 token 驗證 disable_two_factor_authentication: 停用兩階段驗證 disabled: 已停用 @@ -77,6 +78,7 @@ zh-TW: email: 電子郵件地址 email_status: 電子郵件狀態 enable: 啟用 + enable_sign_in_token: 啟用安全碼驗證 (security code challenge) enable_sign_in_token_auth: 啟用電子郵件 token 驗證 enabled: 已啟用 enabled_msg: 成功解除 %{username} 帳號的凍結 @@ -2254,6 +2256,14 @@ zh-TW: further_actions_html: 若這並非您所為,我們建議您立刻 %{action},因為其可能已被入侵。 subject: 兩階段驗證失敗 title: 兩階段驗證失敗 + sign_in_token: + change_password: 變更密碼 + details: 以下是嘗試登入的詳細資訊: + explanation: 我們偵測到有人於長期無活動後試圖登入您的帳號。如果這是您,請在「登入確認」頁面輸入安全碼: + further_actions: 如果這不是您,請立即到這裡變更您的密碼,並啟用兩階段驗證。您可於此處進行: + further_actions_html: 如果這個不是您,我們建議您立即 %{action} ,並且啟用兩階段驗證 (2FA) 以確保帳號安全。 + subject: 請確認登入嘗試 + title: 登入嘗試 suspicious_sign_in: change_password: 變更密碼 details: 以下是該登入之詳細資訊: @@ -2346,8 +2356,12 @@ zh-TW: title: "%{name} 誠摯歡迎您的加入!" users: follow_limit_reached: 您無法跟隨多於 %{limit} 個人 + generic_access_help_html: 是否於存取您的帳號時遇到困難?您可以透過 %{email} 取得協助 go_to_sso_account_settings: 前往您的身分提供商 (identity provider) 之帳號設定 + inactive_sign_in_confirmation: 距離您上次登入已經過一段時間,所以我們寄送一段安全碼至您的電子郵件地址以確認這是您本人。 + inactive_sign_in_title: 請確認安全碼 invalid_otp_token: 兩階段驗證碼不正確 + invalid_sign_in_token: 安全碼無效 otp_lost_help_html: 如果您無法存取這兩者,您可以透過 %{email} 與我們聯繫 rate_limited: 過多次身份驗證嘗試,請稍後再試。 seamless_external_login: 由於您是透過外部服務登入,所以不能設定密碼與電子郵件。 diff --git a/config/routes/admin.rb b/config/routes/admin.rb index bb0c6f3..9202ae8 100644 --- a/config/routes/admin.rb +++ b/config/routes/admin.rb @@ -179,6 +179,7 @@ namespace :admin do resources :users, only: [] do scope module: :users do resource :two_factor_authentication, only: [:destroy] + resource :sign_in_token_authentication, only: [:create, :destroy] resource :role, only: [:show, :update] end end diff --git a/docker-compose.yml b/docker-compose.yml index a57db58..9ea6577 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -59,7 +59,7 @@ services: web: # You can uncomment the following line if you want to not use the prebuilt image, for example if you have local code changes # build: . - image: ghcr.io/mastodon/mastodon:v4.7.3 + image: ghcr.io/mastodon/mastodon:v4.7.4 restart: always env_file: .env.production command: bundle exec puma -C config/puma.rb @@ -83,7 +83,7 @@ services: # build: # dockerfile: ./streaming/Dockerfile # context: . - image: ghcr.io/mastodon/mastodon-streaming:v4.7.3 + image: ghcr.io/mastodon/mastodon-streaming:v4.7.4 restart: always env_file: .env.production command: node ./streaming/index.js @@ -102,7 +102,7 @@ services: sidekiq: # You can uncomment the following line if you want to not use the prebuilt image, for example if you have local code changes # build: . - image: ghcr.io/mastodon/mastodon:v4.7.3 + image: ghcr.io/mastodon/mastodon:v4.7.4 restart: always env_file: .env.production command: bundle exec sidekiq diff --git a/lib/mastodon/cli/accounts.rb b/lib/mastodon/cli/accounts.rb index a34024d..884f6e4 100644 --- a/lib/mastodon/cli/accounts.rb +++ b/lib/mastodon/cli/accounts.rb @@ -125,6 +125,7 @@ module Mastodon::CLI option :enable, type: :boolean option :disable, type: :boolean option :disable_2fa, type: :boolean + option :disable_sign_in_token, type: :boolean option :approve, type: :boolean option :reset_password, type: :boolean desc 'modify USERNAME', 'Modify a user account' @@ -146,6 +147,16 @@ module Mastodon::CLI With the --disable-2fa option, the two-factor authentication requirement for the user can be removed. + With the --disable-sign-in-token option, an account that has been + inactive for a long time won't have to introduce a security code that + has been sent to their email when trying to log in. This option + only disables the security code check for a limited amount of time + (up to 92 hours) + + With the --enable-sign-in-token option, ensure that the account + generates a security code challenge if it has been inactive for too + long. + With the --reset-password option, the user's password is replaced by a randomly-generated one, printed in the output. LONG_DESC @@ -169,6 +180,8 @@ module Mastodon::CLI user.disabled = true if options[:disable] user.approved = true if options[:approve] user.disable_two_factor! if options[:disable_2fa] + user.disable_sign_in_token! if options[:disable_sign_in_token] + user.enable_sign_in_token! if options[:enable_sign_in_token] # Password changes are a little different, as we also need to ensure # sessions, subscriptions, and access tokens are revoked after changing: diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index 03fe636..5a48991 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -13,7 +13,7 @@ module Mastodon end def patch - 3 + 4 end def default_prerelease diff --git a/lib/tasks/dev.rake b/lib/tasks/dev.rake index 5aefb1f..a820129 100644 --- a/lib/tasks/dev.rake +++ b/lib/tasks/dev.rake @@ -17,6 +17,7 @@ namespace :dev do ).find_or_create_by!(id: 10_000_000) showcase_user.mark_email_as_confirmed! showcase_user.approve! + showcase_account.reload french_post = Status.create_with( text: 'Ceci est un sondage public écrit en Français', @@ -200,6 +201,7 @@ namespace :dev do domain: 'example.org', uri: 'https://example.org/foo/bar', url: 'https://example.org/foo/bar', + inbox_url: 'https://example.org/users/fake.example/inbox', locked: true ).find_or_create_by!(id: 10_000_001) diff --git a/spec/controllers/auth/sessions_controller_spec.rb b/spec/controllers/auth/sessions_controller_spec.rb index 88c5f50..55b46ad 100644 --- a/spec/controllers/auth/sessions_controller_spec.rb +++ b/spec/controllers/auth/sessions_controller_spec.rb @@ -434,6 +434,103 @@ RSpec.describe Auth::SessionsController do end end + context 'when 2FA is disabled and inactive for long' do + let!(:user) { Fabricate(:user, email: 'x@y.com', password: 'abcdefgh', current_sign_in_at: 7.months.ago) } + + before do + allow(UserMailer).to receive(:sign_in_token).and_return(instance_double(ActionMailer::MessageDelivery, deliver_later!: nil)) + end + + context 'when using email and password' do + before do + post :create, params: { user: { email: user.email, password: user.password } } + end + + it 'renders sign in token authentication page' do + expect(response.parsed_body) + .to have_css('p.lead', text: I18n.t('users.inactive_sign_in_confirmation')) + end + + it 'generates sign in token' do + expect(user.reload.sign_in_token).to_not be_nil + end + + it 'sends sign in token e-mail' do + expect(UserMailer).to have_received(:sign_in_token) + end + end + + context 'when using an invalid password' do + before do + post :create, params: { user: { email: user.email, password: 'wrongpw' } } + end + + it 'shows a login error and does not log the user in' do + expect(flash[:alert]).to match(/#{failure_message_invalid_email}/i) + + expect(controller.current_user).to be_nil + end + end + + context 'when using a valid sign in token' do + before do + user.generate_sign_in_token + user.save + post :create, params: { user: { sign_in_token_attempt: user.sign_in_token } }, session: { attempt_user_id: user.id } + end + + it 'redirects to home' do + expect(response).to redirect_to(root_path) + end + + it 'logs the user in' do + expect(controller.current_user).to eq user + end + end + + context 'when using an invalid sign in token' do + before do + post :create, params: { user: { sign_in_token_attempt: 'wrongotp' } }, session: { attempt_user_id: user.id } + end + + it 'shows a login error' do + expect(flash[:alert]).to match I18n.t('users.invalid_sign_in_token') + end + + it "doesn't log the user in" do + expect(controller.current_user).to be_nil + end + end + + context 'when requesting a new sign in token' do + subject do + post :create, params: { sign_in_token_resend: '', user: { sign_in_token_attempt: '' } }, session: { attempt_user_id: user.id } + end + + before do + user.generate_sign_in_token + user.save + end + + it 'renders sign in token authentication page' do + subject + + expect(response.parsed_body) + .to have_css('p.lead', text: I18n.t('users.inactive_sign_in_confirmation')) + end + + it 'generates a new sign in token' do + expect { subject }.to(change { user.reload.sign_in_token }) + end + + it 'sends sign in token e-mail' do + subject + + expect(UserMailer).to have_received(:sign_in_token) + end + end + end + def failure_message_invalid_email I18n.t('devise.failure.invalid', authentication_keys: I18n.t('activerecord.attributes.user.email')) end diff --git a/spec/fabricators/account_fabricator.rb b/spec/fabricators/account_fabricator.rb index 6a5218c..8c47d8f 100644 --- a/spec/fabricators/account_fabricator.rb +++ b/spec/fabricators/account_fabricator.rb @@ -17,8 +17,9 @@ Fabricator(:account) do indexable true # This is not strictly needed but this avoids generating multiple keys - # and, when `store_private_key` is passed, stores private keys for use in request specs keypairs do |attrs| + uri = attrs[:uri] ? "#{attrs[:uri]}#main-key" : "https://#{attrs[:domain]}/users/#{attrs[:username]}#main-key" if attrs[:domain].present? + if attrs[:legacy_keypair] || attrs[:public_key].present? [] else @@ -27,7 +28,7 @@ Fabricator(:account) do type: :rsa, public_key: SigningKeysHelpers::PUBLIC_RSA_TEST_KEY, private_key: attrs[:domain].blank? ? SigningKeysHelpers::PRIVATE_RSA_TEST_KEY : nil, - uri: attrs[:domain].nil? ? nil : "https://#{attrs[:domain]}/users/#{attrs[:username]}#main-key", + uri: uri, local_fragment: attrs[:domain].nil? ? '#main-key' : nil ), ] diff --git a/spec/helpers/json_ld_helper_spec.rb b/spec/helpers/json_ld_helper_spec.rb index e26e9cd..fbabe55 100644 --- a/spec/helpers/json_ld_helper_spec.rb +++ b/spec/helpers/json_ld_helper_spec.rb @@ -82,26 +82,26 @@ RSpec.describe JsonLdHelper do end describe '#fetch_resource' do - context 'when the second argument is false' do + context 'when allow_redirects is true' do it 'returns resource even if the retrieved ID and the given URI does not match' do stub_request(:get, 'https://bob.test/').to_return(body: '{"id": "https://alice.test/"}', headers: { 'Content-Type': 'application/activity+json' }) stub_request(:get, 'https://alice.test/').to_return(body: '{"id": "https://alice.test/"}', headers: { 'Content-Type': 'application/activity+json' }) - expect(fetch_resource('https://bob.test/', false)).to eq({ 'id' => 'https://alice.test/' }) + expect(fetch_resource('https://bob.test/', allow_redirects: true)).to eq({ 'id' => 'https://alice.test/' }) end it 'returns nil if the object identified by the given URI and the object identified by the retrieved ID does not match' do stub_request(:get, 'https://mallory.test/').to_return(body: '{"id": "https://marvin.test/"}', headers: { 'Content-Type': 'application/activity+json' }) stub_request(:get, 'https://marvin.test/').to_return(body: '{"id": "https://alice.test/"}', headers: { 'Content-Type': 'application/activity+json' }) - expect(fetch_resource('https://mallory.test/', false)).to be_nil + expect(fetch_resource('https://mallory.test/', allow_redirects: true)).to be_nil end end - context 'when the second argument is true' do + context 'when allow_redirects is false' do it 'returns nil if the retrieved ID and the given URI does not match' do stub_request(:get, 'https://mallory.test/').to_return(body: '{"id": "https://alice.test/"}', headers: { 'Content-Type': 'application/activity+json' }) - expect(fetch_resource('https://mallory.test/', true)).to be_nil + expect(fetch_resource('https://mallory.test/', allow_redirects: false)).to be_nil end end end diff --git a/spec/lib/mastodon/cli/accounts_spec.rb b/spec/lib/mastodon/cli/accounts_spec.rb index 0e46878..2d62965 100644 --- a/spec/lib/mastodon/cli/accounts_spec.rb +++ b/spec/lib/mastodon/cli/accounts_spec.rb @@ -403,6 +403,30 @@ RSpec.describe Mastodon::CLI::Accounts do end end + context 'with --disable-sign-in-token option' do + let(:user) { Fabricate(:user, current_sign_in_at: 8.months.ago) } + let(:options) { { disable_sign_in_token: true } } + + it 'disables the sign in token for the user' do + expect { subject } + .to output_results('OK') + .and change { user.reload.suspicious_inactive_sign_in? }.from(true).to(false) + end + end + + context 'with --enable-sign-in-token option' do + let(:user) { Fabricate(:user, current_sign_in_at: 8.months.ago) } + let(:options) { { enable_sign_in_token: true } } + + before { user.disable_sign_in_token! } + + it 'enables the sign in token for the user' do + expect { subject } + .to output_results('OK') + .and change { user.reload.suspicious_inactive_sign_in? }.from(false).to(true) + end + end + context 'when provided data is invalid' do let(:user) { Fabricate(:user) } let(:options) { { email: 'invalid' } } diff --git a/spec/lib/rake/task_devpopulate_sample_data_spec.rb b/spec/lib/rake/task_devpopulate_sample_data_spec.rb new file mode 100644 index 0000000..bda2279 --- /dev/null +++ b/spec/lib/rake/task_devpopulate_sample_data_spec.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +require 'rails_helper' +require 'rake' + +RSpec.describe Rake::Task do + describe 'dev:populate_sample_data' do + subject { described_class['dev:populate_sample_data'] } + + before do + Rails.application.load_tasks unless described_class.tasks.any? + subject.reenable + end + + describe '.invoke' do + context 'when the task is invoked successfully' do + it 'runs without aborting' do + expect { subject.invoke }.to_not raise_error + end + + it 'populates accounts and users' do + expect { subject.invoke } + .to change(Account, :count).by(3) + .and change(User, :count).by(2) + end + end + end + end +end diff --git a/spec/mailers/previews/user_mailer_preview.rb b/spec/mailers/previews/user_mailer_preview.rb index 3dc3f66..5187955 100644 --- a/spec/mailers/previews/user_mailer_preview.rb +++ b/spec/mailers/previews/user_mailer_preview.rb @@ -108,4 +108,9 @@ class UserMailerPreview < ActionMailer::Preview def announcement_published UserMailer.announcement_published(User.first, Announcement.last) end + + # Preview this email at http://localhost:3000/rails/mailers/user_mailer/sign_in_token + def sign_in_token + UserMailer.sign_in_token(User.first.tap(&:generate_sign_in_token), '127.0.0.1', 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:75.0) Gecko/20100101 Firefox/75.0', Time.now.utc) + end end diff --git a/spec/mailers/user_mailer_spec.rb b/spec/mailers/user_mailer_spec.rb index 1587cd1..2512b4c 100644 --- a/spec/mailers/user_mailer_spec.rb +++ b/spec/mailers/user_mailer_spec.rb @@ -374,4 +374,20 @@ RSpec.describe UserMailer do it_behaves_like 'optional bulk mailer settings' end + + describe '#sign_in_token' do + let(:ip) { '192.168.0.1' } + let(:agent) { 'NCSA_Mosaic/2.0 (Windows 3.1)' } + let(:timestamp) { Time.now.utc } + let(:mail) { described_class.sign_in_token(receiver, ip, agent, timestamp) } + + it 'renders security code notification' do + receiver.update!(locale: nil) + + expect(mail.text_part.body) + .to match(I18n.t('user_mailer.sign_in_token.explanation')) + end + + it_behaves_like 'localized subject', 'user_mailer.sign_in_token.subject' + end end diff --git a/spec/models/tag_feed_spec.rb b/spec/models/tag_feed_spec.rb index 8618b67..b9cf07c 100644 --- a/spec/models/tag_feed_spec.rb +++ b/spec/models/tag_feed_spec.rb @@ -67,6 +67,21 @@ RSpec.describe TagFeed do expect(results).to include(status) end + it 'paginates with max_id' do + results = described_class.new(tag_cats, nil, any: [tag_dogs.name]).get(20, both.id) + expect(results).to contain_exactly(status_tagged_with_cats, status_tagged_with_dogs) + end + + it 'paginates with since_id' do + results = described_class.new(tag_cats, nil, any: [tag_dogs.name]).get(20, nil, status_tagged_with_cats.id) + expect(results).to contain_exactly(status_tagged_with_dogs, both) + end + + it 'paginates with min_id' do + results = described_class.new(tag_cats, nil, any: [tag_dogs.name]).get(20, nil, nil, status_tagged_with_cats.id) + expect(results).to contain_exactly(status_tagged_with_dogs, both) + end + context 'when both local_topic_feed_access and remote_topic_feed_access are disabled' do before do Setting.local_topic_feed_access = 'disabled' diff --git a/spec/models/user/sign_in_token_spec.rb b/spec/models/user/sign_in_token_spec.rb new file mode 100644 index 0000000..990ce7b --- /dev/null +++ b/spec/models/user/sign_in_token_spec.rb @@ -0,0 +1,78 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe User::SignInToken do + describe '#valid_sign_in_token?' do + subject { Fabricate(:user) } + + before { subject.generate_sign_in_token } + + context 'when the token is random' do + let(:token) { Devise.friendly_token(6) } + + it { expect(subject.valid_sign_in_token?(token)).to be false } + end + + context 'when the token is the same' do + let(:token) { subject.sign_in_token } + + it { expect(subject.valid_sign_in_token?(token)).to be true } + end + end + + describe '#suspicious_inactive_sign_in?' do + subject { Fabricate(:user, current_sign_in_at:) } + + context 'when current_sign_in_at is nil' do + let(:current_sign_in_at) { nil } + + it { is_expected.to_not be_suspicious_inactive_sign_in } + end + + context 'when current_sign_in_at is before the threshold' do + let(:current_sign_in_at) { 80.days.ago } + + it { is_expected.to_not be_suspicious_inactive_sign_in } + end + + context 'when current_sign_in_at is after the threshold' do + let(:current_sign_in_at) { 91.days.ago } + + it { is_expected.to be_suspicious_inactive_sign_in } + end + + context 'when the user is external' do + subject { Fabricate.build(:user, password: nil, current_sign_in_at: 7.months.ago) } + + before { subject.save!(validate: false) } + + it { is_expected.to_not be_suspicious_inactive_sign_in } + end + + context 'when the otp is required for login' do + subject { Fabricate(:user, otp_required_for_login: true, current_sign_in_at: 7.months.ago) } + + it { is_expected.to_not be_suspicious_inactive_sign_in } + end + end + + describe '#generate_sign_in_token' do + subject { Fabricate(:user) } + + before { subject.generate_sign_in_token } + + it 'generates a new sign in token' do + expect(subject.sign_in_token).to_not be_nil + expect(subject.sign_in_token_sent_at).to_not be_nil + end + end + + describe '#disable_sign_in_token!' do + subject { Fabricate(:user, current_sign_in_at: 95.days.ago) } + + before { subject.disable_sign_in_token! } + + it { is_expected.to_not be_suspicious_inactive_sign_in } + end +end diff --git a/spec/policies/user_policy_spec.rb b/spec/policies/user_policy_spec.rb index ba4e311..9550458 100644 --- a/spec/policies/user_policy_spec.rb +++ b/spec/policies/user_policy_spec.rb @@ -52,6 +52,50 @@ RSpec.describe UserPolicy do end end + permissions :disable_sign_in_token? do + context 'when admin?' do + context 'with !record.staff?' do + it 'permits' do + expect(subject).to permit(admin, john.user) + end + end + + context 'when record.staff?' do + it 'denies' do + expect(subject).to_not permit(admin, admin.user) + end + end + end + + context 'with !admin?' do + it 'denies' do + expect(subject).to_not permit(john, User) + end + end + end + + permissions :enable_sign_in_token? do + context 'when admin?' do + context 'with !record.staff?' do + it 'permits' do + expect(subject).to permit(admin, john.user) + end + end + + context 'when record.staff?' do + it 'denies' do + expect(subject).to_not permit(admin, admin.user) + end + end + end + + context 'with !admin?' do + it 'denies' do + expect(subject).to_not permit(john, User) + end + end + end + permissions :confirm? do context 'when staff?' do context 'with !record.confirmed?' do diff --git a/spec/requests/signature_verification_spec.rb b/spec/requests/signature_verification_spec.rb index 9556911..3ed2095 100644 --- a/spec/requests/signature_verification_spec.rb +++ b/spec/requests/signature_verification_spec.rb @@ -704,7 +704,7 @@ RSpec.describe 'signature verification concern' do end context 'with a known account' do - let!(:actor) { Fabricate(:account, domain: 'remote.domain', uri: 'https://remote.domain/users/bob') } + let!(:actor) { Fabricate(:account, domain: 'remote.domain', uri: 'https://remote.domain/users/bob', keypairs: []) } before do Fabricate(:keypair, account: actor, type: :ed25519, public_key: actor_keypair.public_to_pem, uri: 'https://remote.domain/users/bob#main-key') diff --git a/spec/services/revoke_collection_item_service_spec.rb b/spec/services/revoke_collection_item_service_spec.rb index 760c903..a3defcf 100644 --- a/spec/services/revoke_collection_item_service_spec.rb +++ b/spec/services/revoke_collection_item_service_spec.rb @@ -10,6 +10,8 @@ RSpec.describe RevokeCollectionItemService do it 'revokes the collection item and sends a Delete activity' do expect { subject.call(collection_item) } .to change { collection_item.reload.state }.from('accepted').to('revoked') + + expect(ActivityPub::CollectionRawDistributionWorker).to have_enqueued_sidekiq_job end context 'when the collection is remote' do @@ -17,7 +19,7 @@ RSpec.describe RevokeCollectionItemService do let(:collection) { Fabricate(:remote_collection, account:) } let(:collection_item) { Fabricate(:collection_item, collection:, uri: 'https://example.com') } - it 'federates a `Delete` activity' do + it 'federates a `Delete` activity to collection owner as well' do subject.call(collection_item) expect(ActivityPub::DeliveryWorker).to have_enqueued_sidekiq_job.with(instance_of(String), collection_item.account_id, 'https://example.com/actor/1/inbox') diff --git a/spec/system/admin/users/sign_in_token_authentications_spec.rb b/spec/system/admin/users/sign_in_token_authentications_spec.rb new file mode 100644 index 0000000..120a488 --- /dev/null +++ b/spec/system/admin/users/sign_in_token_authentications_spec.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe 'Admin Users SignInTokenAuthentications' do + let(:user) { Fabricate(:user) } + + before { sign_in Fabricate(:admin_user) } + + describe 'Disabling Sign In Token for users' do + context 'when user has been inactive for too long' do + before { user.update(current_sign_in_at: 95.days.ago) } + + it 'disables sign in token and redirects to admin account page' do + visit admin_account_path(user.account.id) + + expect { disable_sign_in_token } + .to change { user.reload.suspicious_inactive_sign_in? }.to(false) + expect(page) + .to have_title(user.account.pretty_acct) + end + end + + def disable_sign_in_token + click_on I18n.t('admin.accounts.disable_sign_in_token') + end + end + + describe 'Enabling Sign In Token for users' do + context 'when user has been inactive for too long' do + before do + user.update(current_sign_in_at: 95.days.ago) + user.disable_sign_in_token! + end + + it 'enables sign in token and redirects to admin account page' do + visit admin_account_path(user.account.id) + + expect { enable_sign_in_token } + .to change { user.reload.suspicious_inactive_sign_in? }.to(true) + expect(page) + .to have_title(user.account.pretty_acct) + end + end + + def disable_sign_in_token + click_on I18n.t('admin.accounts.disable_sign_in_token') + end + + def enable_sign_in_token + click_on I18n.t('admin.accounts.enable_sign_in_token') + end + end +end -- 2.54.0