From cf643d0060590948f8fb97ab9bd2045f3649b056 Mon Sep 17 00:00:00 2001 From: Yamagishi Kazutoshi Date: Thu, 5 Sep 2019 22:51:51 +0900 Subject: [PATCH 01/43] Add method and enctype to manifest (#11767) --- app/serializers/manifest_serializer.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/serializers/manifest_serializer.rb b/app/serializers/manifest_serializer.rb index 28127437d5..21ec0d4bed 100644 --- a/app/serializers/manifest_serializer.rb +++ b/app/serializers/manifest_serializer.rb @@ -55,6 +55,8 @@ class ManifestSerializer < ActiveModel::Serializer { url_template: 'share?title={title}&text={text}&url={url}', action: 'share', + method: 'GET', + enctype: 'application/x-www-form-urlencoded', params: { title: 'title', text: 'text', From e445a8af64908b2bdb721bec74c113e8258a129b Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 6 Sep 2019 13:55:51 +0200 Subject: [PATCH 02/43] Add timeline read markers API (#11762) Fix #4093 --- app/controllers/api/v1/markers_controller.rb | 44 +++++++++++++ app/javascript/mastodon/actions/markers.js | 30 +++++++++ app/javascript/mastodon/features/ui/index.js | 5 +- app/models/marker.rb | 23 +++++++ app/models/user.rb | 1 + app/serializers/rest/marker_serializer.rb | 13 ++++ config/routes.rb | 1 + db/migrate/20190904222339_create_markers.rb | 14 ++++ db/schema.rb | 14 +++- .../api/v1/markers_controller_spec.rb | 65 +++++++++++++++++++ spec/fabricators/marker_fabricator.rb | 6 ++ spec/models/marker_spec.rb | 5 ++ 12 files changed, 219 insertions(+), 2 deletions(-) create mode 100644 app/controllers/api/v1/markers_controller.rb create mode 100644 app/javascript/mastodon/actions/markers.js create mode 100644 app/models/marker.rb create mode 100644 app/serializers/rest/marker_serializer.rb create mode 100644 db/migrate/20190904222339_create_markers.rb create mode 100644 spec/controllers/api/v1/markers_controller_spec.rb create mode 100644 spec/fabricators/marker_fabricator.rb create mode 100644 spec/models/marker_spec.rb diff --git a/app/controllers/api/v1/markers_controller.rb b/app/controllers/api/v1/markers_controller.rb new file mode 100644 index 0000000000..28c2ec7916 --- /dev/null +++ b/app/controllers/api/v1/markers_controller.rb @@ -0,0 +1,44 @@ +# frozen_string_literal: true + +class Api::V1::MarkersController < Api::BaseController + before_action -> { doorkeeper_authorize! :read, :'read:statuses' }, only: [:index] + before_action -> { doorkeeper_authorize! :write, :'write:statuses' }, except: [:index] + + before_action :require_user! + + def index + @markers = current_user.markers.where(timeline: Array(params[:timeline])).each_with_object({}) { |marker, h| h[marker.timeline] = marker } + render json: serialize_map(@markers) + end + + def create + Marker.transaction do + @markers = {} + + resource_params.each_pair do |timeline, timeline_params| + @markers[timeline] = current_user.markers.find_or_initialize_by(timeline: timeline) + @markers[timeline].update!(timeline_params) + end + end + + render json: serialize_map(@markers) + rescue ActiveRecord::StaleObjectError + render json: { error: 'Conflict during update, please try again' }, status: 409 + end + + private + + def serialize_map(map) + serialized = {} + + map.each_pair do |key, value| + serialized[key] = ActiveModelSerializers::SerializableResource.new(value, serializer: REST::MarkerSerializer).as_json + end + + Oj.dump(serialized) + end + + def resource_params + params.slice(*Marker::TIMELINES).permit(*Marker::TIMELINES.map { |timeline| { timeline.to_sym => [:last_read_id] } }) + end +end diff --git a/app/javascript/mastodon/actions/markers.js b/app/javascript/mastodon/actions/markers.js new file mode 100644 index 0000000000..c3a5fe86f1 --- /dev/null +++ b/app/javascript/mastodon/actions/markers.js @@ -0,0 +1,30 @@ +export const submitMarkers = () => (dispatch, getState) => { + const accessToken = getState().getIn(['meta', 'access_token'], ''); + const params = {}; + + const lastHomeId = getState().getIn(['timelines', 'home', 'items', 0]); + const lastNotificationId = getState().getIn(['notifications', 'items', 0, 'id']); + + if (lastHomeId) { + params.home = { + last_read_id: lastHomeId, + }; + } + + if (lastNotificationId) { + params.notifications = { + last_read_id: lastNotificationId, + }; + } + + if (Object.keys(params).length === 0) { + return; + } + + const client = new XMLHttpRequest(); + + client.open('POST', '/api/v1/markers', false); + client.setRequestHeader('Content-Type', 'application/json'); + client.setRequestHeader('Authorization', `Bearer ${accessToken}`); + client.send(JSON.stringify(params)); +}; diff --git a/app/javascript/mastodon/features/ui/index.js b/app/javascript/mastodon/features/ui/index.js index 49c5c8d0ec..63c5622b6b 100644 --- a/app/javascript/mastodon/features/ui/index.js +++ b/app/javascript/mastodon/features/ui/index.js @@ -16,6 +16,7 @@ import { expandNotifications } from '../../actions/notifications'; import { fetchFilters } from '../../actions/filters'; import { clearHeight } from '../../actions/height_cache'; import { focusApp, unfocusApp } from 'mastodon/actions/app'; +import { submitMarkers } from 'mastodon/actions/markers'; import { WrappedSwitch, WrappedRoute } from './util/react_router_helpers'; import UploadArea from './components/upload_area'; import ColumnsAreaContainer from './containers/columns_area_container'; @@ -241,7 +242,9 @@ class UI extends React.PureComponent { }; handleBeforeUnload = e => { - const { intl, isComposing, hasComposingText, hasMediaAttachments } = this.props; + const { intl, dispatch, isComposing, hasComposingText, hasMediaAttachments } = this.props; + + dispatch(submitMarkers()); if (isComposing && (hasComposingText || hasMediaAttachments)) { // Setting returnValue to any string causes confirmation dialog. diff --git a/app/models/marker.rb b/app/models/marker.rb new file mode 100644 index 0000000000..a5bd2176a8 --- /dev/null +++ b/app/models/marker.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: markers +# +# id :bigint(8) not null, primary key +# user_id :bigint(8) +# timeline :string default(""), not null +# last_read_id :bigint(8) default(0), not null +# lock_version :integer default(0), not null +# created_at :datetime not null +# updated_at :datetime not null +# + +class Marker < ApplicationRecord + TIMELINES = %w(home notifications).freeze + + belongs_to :user + + validates :timeline, :last_read_id, presence: true + validates :timeline, inclusion: { in: TIMELINES } +end diff --git a/app/models/user.rb b/app/models/user.rb index a4a20d9751..95f1d8fc5f 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -74,6 +74,7 @@ class User < ApplicationRecord has_many :applications, class_name: 'Doorkeeper::Application', as: :owner has_many :backups, inverse_of: :user has_many :invites, inverse_of: :user + has_many :markers, inverse_of: :user, dependent: :destroy has_one :invite_request, class_name: 'UserInviteRequest', inverse_of: :user, dependent: :destroy accepts_nested_attributes_for :invite_request, reject_if: ->(attributes) { attributes['text'].blank? } diff --git a/app/serializers/rest/marker_serializer.rb b/app/serializers/rest/marker_serializer.rb new file mode 100644 index 0000000000..2eaf3d5076 --- /dev/null +++ b/app/serializers/rest/marker_serializer.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +class REST::MarkerSerializer < ActiveModel::Serializer + attributes :last_read_id, :version, :updated_at + + def last_read_id + object.last_read_id.to_s + end + + def version + object.lock_version + end +end diff --git a/config/routes.rb b/config/routes.rb index c5326052e9..74a162f327 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -314,6 +314,7 @@ Rails.application.routes.draw do resources :trends, only: [:index] resources :filters, only: [:index, :create, :show, :update, :destroy] resources :endorsements, only: [:index] + resources :markers, only: [:index, :create] namespace :apps do get :verify_credentials, to: 'credentials#show' diff --git a/db/migrate/20190904222339_create_markers.rb b/db/migrate/20190904222339_create_markers.rb new file mode 100644 index 0000000000..71ca70ac3d --- /dev/null +++ b/db/migrate/20190904222339_create_markers.rb @@ -0,0 +1,14 @@ +class CreateMarkers < ActiveRecord::Migration[5.2] + def change + create_table :markers do |t| + t.references :user, foreign_key: { on_delete: :cascade, index: false } + t.string :timeline, default: '', null: false + t.bigint :last_read_id, default: 0, null: false + t.integer :lock_version, default: 0, null: false + + t.timestamps + end + + add_index :markers, [:user_id, :timeline], unique: true + end +end diff --git a/db/schema.rb b/db/schema.rb index 5576f70bf4..834dddd7bd 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2019_09_01_040524) do +ActiveRecord::Schema.define(version: 2019_09_04_222339) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -366,6 +366,17 @@ ActiveRecord::Schema.define(version: 2019_09_01_040524) do t.index ["account_id"], name: "index_lists_on_account_id" end + create_table "markers", force: :cascade do |t| + t.bigint "user_id" + t.string "timeline", default: "", null: false + t.bigint "last_read_id", default: 0, null: false + t.integer "lock_version", default: 0, null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["user_id", "timeline"], name: "index_markers_on_user_id_and_timeline", unique: true + t.index ["user_id"], name: "index_markers_on_user_id" + end + create_table "media_attachments", force: :cascade do |t| t.bigint "status_id" t.string "file_file_name" @@ -791,6 +802,7 @@ ActiveRecord::Schema.define(version: 2019_09_01_040524) do add_foreign_key "list_accounts", "follows", on_delete: :cascade add_foreign_key "list_accounts", "lists", on_delete: :cascade add_foreign_key "lists", "accounts", on_delete: :cascade + add_foreign_key "markers", "users", on_delete: :cascade add_foreign_key "media_attachments", "accounts", name: "fk_96dd81e81b", on_delete: :nullify add_foreign_key "media_attachments", "scheduled_statuses", on_delete: :nullify add_foreign_key "media_attachments", "statuses", on_delete: :nullify diff --git a/spec/controllers/api/v1/markers_controller_spec.rb b/spec/controllers/api/v1/markers_controller_spec.rb new file mode 100644 index 0000000000..556a75b9b1 --- /dev/null +++ b/spec/controllers/api/v1/markers_controller_spec.rb @@ -0,0 +1,65 @@ +require 'rails_helper' + +RSpec.describe Api::V1::MarkersController, type: :controller do + render_views + + let!(:user) { Fabricate(:user, account: Fabricate(:account, username: 'alice')) } + let!(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'read:statuses write:statuses') } + + before { allow(controller).to receive(:doorkeeper_token) { token } } + + describe 'GET #index' do + before do + Fabricate(:marker, timeline: 'home', last_read_id: 123, user: user) + Fabricate(:marker, timeline: 'notifications', last_read_id: 456, user: user) + + get :index, params: { timeline: %w(home notifications) } + end + + it 'returns http success' do + expect(response).to have_http_status(200) + end + + it 'returns markers' do + json = body_as_json + + expect(json.key?(:home)).to be true + expect(json[:home][:last_read_id]).to eq '123' + expect(json.key?(:notifications)).to be true + expect(json[:notifications][:last_read_id]).to eq '456' + end + end + + describe 'POST #create' do + context 'when no marker exists' do + before do + post :create, params: { home: { last_read_id: '69420' } } + end + + it 'returns http success' do + expect(response).to have_http_status(200) + end + + it 'creates a marker' do + expect(user.markers.first.timeline).to eq 'home' + expect(user.markers.first.last_read_id).to eq 69420 + end + end + + context 'when a marker exists' do + before do + post :create, params: { home: { last_read_id: '69420' } } + post :create, params: { home: { last_read_id: '70120' } } + end + + it 'returns http success' do + expect(response).to have_http_status(200) + end + + it 'updates a marker' do + expect(user.markers.first.timeline).to eq 'home' + expect(user.markers.first.last_read_id).to eq 70120 + end + end + end +end diff --git a/spec/fabricators/marker_fabricator.rb b/spec/fabricators/marker_fabricator.rb new file mode 100644 index 0000000000..0c94150e0d --- /dev/null +++ b/spec/fabricators/marker_fabricator.rb @@ -0,0 +1,6 @@ +Fabricator(:marker) do + user + timeline 'home' + last_read_id 0 + lock_version 0 +end diff --git a/spec/models/marker_spec.rb b/spec/models/marker_spec.rb new file mode 100644 index 0000000000..d716aa75c2 --- /dev/null +++ b/spec/models/marker_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe Marker, type: :model do + pending "add some examples to (or delete) #{__FILE__}" +end From d7268befa853ac4a99f9d066c38330d4fc0bfc31 Mon Sep 17 00:00:00 2001 From: Yamagishi Kazutoshi Date: Sat, 7 Sep 2019 09:47:51 +0900 Subject: [PATCH 03/43] Add healthcheck endpoint for web (#11770) --- Gemfile | 1 + Gemfile.lock | 3 +++ app/controllers/application_controller.rb | 2 +- config/initializers/health_check.rb | 6 ++++++ config/routes.rb | 2 ++ docker-compose.yml | 4 ++-- 6 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 config/initializers/health_check.rb diff --git a/Gemfile b/Gemfile index 1cbf23cf21..d9740702fe 100644 --- a/Gemfile +++ b/Gemfile @@ -50,6 +50,7 @@ gem 'fastimage' gem 'goldfinger', '~> 2.1' gem 'hiredis', '~> 0.6' gem 'redis-namespace', '~> 1.5' +gem 'health_check', '~> 3.0' gem 'htmlentities', '~> 4.3' gem 'http', '~> 3.3' gem 'http_accept_language', '~> 2.1' diff --git a/Gemfile.lock b/Gemfile.lock index 8ecc8ebb75..b0f6bf083f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -278,6 +278,8 @@ GEM concurrent-ruby (~> 1.0) hashdiff (1.0.0) hashie (3.6.0) + health_check (3.0.0) + railties (>= 5.0) heapy (0.1.4) highline (2.0.1) hiredis (0.6.3) @@ -706,6 +708,7 @@ DEPENDENCIES fuubar (~> 2.4) goldfinger (~> 2.1) hamlit-rails (~> 0.2) + health_check (~> 3.0) hiredis (~> 0.6) htmlentities (~> 4.3) http (~> 3.3) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 5b343a276f..bd3d137743 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -41,7 +41,7 @@ class ApplicationController < ActionController::Base private def https_enabled? - Rails.env.production? + Rails.env.production? && !request.path.start_with?('/health') end def authorized_fetch_mode? diff --git a/config/initializers/health_check.rb b/config/initializers/health_check.rb new file mode 100644 index 0000000000..eece67b107 --- /dev/null +++ b/config/initializers/health_check.rb @@ -0,0 +1,6 @@ +HealthCheck.setup do |config| + config.uri = 'health' + + config.standard_checks = %w(database migrations cache) + config.full_checks = %w(database migrations cache) +end diff --git a/config/routes.rb b/config/routes.rb index 74a162f327..fe8425341a 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -10,6 +10,8 @@ Rails.application.routes.draw do mount LetterOpenerWeb::Engine, at: 'letter_opener' if Rails.env.development? + health_check_routes + authenticate :user, lambda { |u| u.admin? } do mount Sidekiq::Web, at: 'sidekiq', as: :sidekiq mount PgHero::Engine, at: 'pghero', as: :pghero diff --git a/docker-compose.yml b/docker-compose.yml index 7406849663..20649e4245 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -43,7 +43,7 @@ services: - external_network - internal_network healthcheck: - test: ["CMD-SHELL", "wget -q --spider --header 'x-forwarded-proto: https' --proxy=off localhost:3000/api/v1/instance || exit 1"] + test: ["CMD-SHELL", "wget -q --spider --proxy=off localhost:3000/health || exit 1"] ports: - "127.0.0.1:3000:3000" depends_on: @@ -63,7 +63,7 @@ services: - external_network - internal_network healthcheck: - test: ["CMD-SHELL", "wget -q --spider --header 'x-forwarded-proto: https' --proxy=off localhost:4000/api/v1/streaming/health || exit 1"] + test: ["CMD-SHELL", "wget -q --spider --proxy=off localhost:4000/api/v1/streaming/health || exit 1"] ports: - "127.0.0.1:4000:4000" depends_on: From d7ed6970302316aa09e49049031bee6f07da5680 Mon Sep 17 00:00:00 2001 From: Yamagishi Kazutoshi Date: Sat, 7 Sep 2019 12:12:20 +0900 Subject: [PATCH 04/43] Use prebuilt node.js on Docker image (#11768) --- Dockerfile | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/Dockerfile b/Dockerfile index b5904ad95c..3bfe06ad99 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,19 +7,17 @@ SHELL ["bash", "-c"] ENV NODE_VER="12.9.1" RUN echo "Etc/UTC" > /etc/localtime && \ apt update && \ - apt -y install wget make gcc g++ python && \ + apt -y install wget python && \ cd ~ && \ - wget https://nodejs.org/download/release/v$NODE_VER/node-v$NODE_VER.tar.gz && \ - tar xf node-v$NODE_VER.tar.gz && \ - cd node-v$NODE_VER && \ - ./configure --prefix=/opt/node && \ - make -j$(nproc) > /dev/null && \ - make install + wget https://nodejs.org/download/release/v$NODE_VER/node-v$NODE_VER-linux-x64.tar.gz && \ + tar xf node-v$NODE_VER-linux-x64.tar.gz && \ + rm node-v$NODE_VER-linux-x64.tar.gz && \ + mv node-v$NODE_VER-linux-x64 /opt/node # Install jemalloc ENV JE_VER="5.2.1" RUN apt update && \ - apt -y install autoconf && \ + apt -y install make autoconf gcc g++ && \ cd ~ && \ wget https://github.com/jemalloc/jemalloc/archive/$JE_VER.tar.gz && \ tar xf $JE_VER.tar.gz && \ From a75009a65e1335047dff5488b4e67bdc03677590 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sun, 8 Sep 2019 19:17:57 +0200 Subject: [PATCH 05/43] Change half-life of trend decay (#11774) --- app/models/trending_tags.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/models/trending_tags.rb b/app/models/trending_tags.rb index e1b92b1757..8cdade42d4 100644 --- a/app/models/trending_tags.rb +++ b/app/models/trending_tags.rb @@ -7,8 +7,8 @@ class TrendingTags THRESHOLD = 5 LIMIT = 10 REVIEW_THRESHOLD = 3 - MAX_SCORE_COOLDOWN = 3.days.freeze - MAX_SCORE_HALFLIFE = 6.hours.freeze + MAX_SCORE_COOLDOWN = 2.days.freeze + MAX_SCORE_HALFLIFE = 2.hours.freeze class << self include Redisable @@ -83,6 +83,7 @@ class TrendingTags # Trim older items redis.zremrangebyrank(KEY, 0, -(LIMIT + 1)) + redis.zremrangebyscore(KEY, '(0.3', '-inf') end def get(limit, filtered: true) From 9c9dcf580ab9b40c3fd420159a0a02ea4dd11925 Mon Sep 17 00:00:00 2001 From: Takeshi Umeda Date: Mon, 9 Sep 2019 17:50:33 +0900 Subject: [PATCH 06/43] Add featured tags API (#11778) * Add featured tags API * Remove show and update, change scope, fix code style --- .../featured_tags/suggestions_controller.rb | 20 ++++++++++ .../api/v1/featured_tags_controller.rb | 40 +++++++++++++++++++ .../rest/featured_tag_serializer.rb | 9 +++++ config/routes.rb | 6 +++ 4 files changed, 75 insertions(+) create mode 100644 app/controllers/api/v1/featured_tags/suggestions_controller.rb create mode 100644 app/controllers/api/v1/featured_tags_controller.rb create mode 100644 app/serializers/rest/featured_tag_serializer.rb diff --git a/app/controllers/api/v1/featured_tags/suggestions_controller.rb b/app/controllers/api/v1/featured_tags/suggestions_controller.rb new file mode 100644 index 0000000000..fb27ef88b9 --- /dev/null +++ b/app/controllers/api/v1/featured_tags/suggestions_controller.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +class Api::V1::FeaturedTags::SuggestionsController < Api::BaseController + before_action -> { doorkeeper_authorize! :read, :'read:accounts' }, only: :index + + before_action :require_user! + before_action :set_most_used_tags, only: :index + + respond_to :json + + def index + render json: @most_used_tags, each_serializer: REST::TagSerializer + end + + private + + def set_most_used_tags + @most_used_tags = Tag.most_used(current_account).where.not(id: current_account.featured_tags).limit(10) + end +end diff --git a/app/controllers/api/v1/featured_tags_controller.rb b/app/controllers/api/v1/featured_tags_controller.rb new file mode 100644 index 0000000000..e4e836c971 --- /dev/null +++ b/app/controllers/api/v1/featured_tags_controller.rb @@ -0,0 +1,40 @@ +# frozen_string_literal: true + +class Api::V1::FeaturedTagsController < Api::BaseController + before_action -> { doorkeeper_authorize! :read, :'read:accounts' }, only: :index + before_action -> { doorkeeper_authorize! :write, :'write:accounts' }, except: :index + + before_action :require_user! + before_action :set_featured_tags, only: :index + before_action :set_featured_tag, except: [:index, :create] + + def index + render json: @featured_tags, each_serializer: REST::FeaturedTagSerializer + end + + def create + @featured_tag = current_account.featured_tags.new(featured_tag_params) + @featured_tag.reset_data + @featured_tag.save! + render json: @featured_tag, serializer: REST::FeaturedTagSerializer + end + + def destroy + @featured_tag.destroy! + render_empty + end + + private + + def set_featured_tag + @featured_tag = current_account.featured_tags.find(params[:id]) + end + + def set_featured_tags + @featured_tags = current_account.featured_tags.order(statuses_count: :desc) + end + + def featured_tag_params + params.permit(:name) + end +end diff --git a/app/serializers/rest/featured_tag_serializer.rb b/app/serializers/rest/featured_tag_serializer.rb new file mode 100644 index 0000000000..08121ff16d --- /dev/null +++ b/app/serializers/rest/featured_tag_serializer.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class REST::FeaturedTagSerializer < ActiveModel::Serializer + attributes :id, :name, :statuses_count, :last_status_at + + def id + object.id.to_s + end +end diff --git a/config/routes.rb b/config/routes.rb index fe8425341a..1ebf9e0668 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -380,6 +380,12 @@ Rails.application.routes.draw do resource :accounts, only: [:show, :create, :destroy], controller: 'lists/accounts' end + namespace :featured_tags do + get :suggestions, to: 'suggestions#index' + end + + resources :featured_tags, only: [:index, :create, :destroy] + resources :polls, only: [:create, :show] do resources :votes, only: :create, controller: 'polls/votes' end From 9fa5c43d80bb067bf57543625f66c4bcdeb42e67 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2019 19:40:30 +0900 Subject: [PATCH 07/43] Bump tesseract.js from 2.0.0-alpha.13 to 2.0.0-alpha.15 (#11779) Bumps [tesseract.js](https://github.com/naptha/tesseract.js) from 2.0.0-alpha.13 to 2.0.0-alpha.15. - [Release notes](https://github.com/naptha/tesseract.js/releases) - [Commits](https://github.com/naptha/tesseract.js/compare/v2.0.0-alpha.13...v2.0.0-alpha.15) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 135ba684a2..9a9287913d 100644 --- a/package.json +++ b/package.json @@ -156,7 +156,7 @@ "stringz": "^2.0.0", "substring-trie": "^1.0.2", "terser-webpack-plugin": "^1.4.1", - "tesseract.js": "^2.0.0-alpha.13", + "tesseract.js": "^2.0.0-alpha.15", "throng": "^4.0.0", "tiny-queue": "^0.2.1", "uuid": "^3.1.0", diff --git a/yarn.lock b/yarn.lock index cd8618714f..1122135653 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9921,10 +9921,10 @@ terser@^4.1.2: source-map "~0.6.1" source-map-support "~0.5.12" -tesseract.js-core@^2.0.0-beta.10: - version "2.0.0-beta.10" - resolved "https://registry.yarnpkg.com/tesseract.js-core/-/tesseract.js-core-2.0.0-beta.10.tgz#b8f0dd2be4686650c4350f648900adccfaf58d6b" - integrity sha512-QmNgMA9m5ES5uMTqpOAPysrUA80vUx/6WKQlfkK3zhOeAgqv8DjwwcDv9tQv2TgRzOQ+LFKrJn94Y2rw5b2IGw== +tesseract.js-core@^2.0.0-beta.11: + version "2.0.0-beta.11" + resolved "https://registry.yarnpkg.com/tesseract.js-core/-/tesseract.js-core-2.0.0-beta.11.tgz#c35e3e689efad30138603977ad7eaaac44c7fd37" + integrity sha512-07haKH2JYYo0OfIJoioMS9dDiI5Hrl7+r1MqjeNAAT5WpKO0ATe4cpncC8s1kz0e3s1kaC5WOwL3YJcjbJE+hg== tesseract.js-utils@^1.0.0-beta.8: version "1.0.0-beta.8" @@ -9938,10 +9938,10 @@ tesseract.js-utils@^1.0.0-beta.8: is-url "^1.2.4" zlibjs "^0.3.1" -tesseract.js@^2.0.0-alpha.13: - version "2.0.0-alpha.13" - resolved "https://registry.yarnpkg.com/tesseract.js/-/tesseract.js-2.0.0-alpha.13.tgz#87bb3d71fe646c0993b073552241d203d9dfef3a" - integrity sha512-ZFEdak7jWtN5vIDwZcw8OdAqA7RvG0QRailZKQFS5rtnl/Yy5vC4WcqfJh9+o+cA3bdr2zV5SENoWDtEihlSVA== +tesseract.js@^2.0.0-alpha.15: + version "2.0.0-alpha.15" + resolved "https://registry.yarnpkg.com/tesseract.js/-/tesseract.js-2.0.0-alpha.15.tgz#9887f4d1c10e25bb098fde7a10580c865c362fad" + integrity sha512-qM1XUFVlTO+tx6oVRpd9QQ8PwQLxo3qhbfIHByUlUVIqWx6y/U9xlHIaG033/Tjfs2EQ0NAehPTOJ+eNElsXEg== dependencies: axios "^0.18.0" check-types "^7.4.0" @@ -9949,7 +9949,7 @@ tesseract.js@^2.0.0-alpha.13: node-fetch "^2.3.0" opencollective-postinstall "^2.0.2" resolve-url "^0.2.1" - tesseract.js-core "^2.0.0-beta.10" + tesseract.js-core "^2.0.0-beta.11" tesseract.js-utils "^1.0.0-beta.8" test-exclude@^5.0.0: From c12cdbe81c2833902bb10357423a99bbe4990837 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2019 19:42:39 +0900 Subject: [PATCH 08/43] Bump @babel/preset-env from 7.5.5 to 7.6.0 (#11780) Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.5.5 to 7.6.0. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md) - [Commits](https://github.com/babel/babel/compare/v7.5.5...v7.6.0) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 68 ++++++++++++++++++++++++++-------------------------- 2 files changed, 35 insertions(+), 35 deletions(-) diff --git a/package.json b/package.json index 9a9287913d..cf741905a3 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ "@babel/plugin-transform-react-jsx-self": "^7.2.0", "@babel/plugin-transform-react-jsx-source": "^7.5.0", "@babel/plugin-transform-runtime": "^7.5.5", - "@babel/preset-env": "^7.5.5", + "@babel/preset-env": "^7.6.0", "@babel/preset-react": "^7.0.0", "@babel/runtime": "^7.5.4", "@clusterws/cws": "^0.15.0", diff --git a/yarn.lock b/yarn.lock index 1122135653..f26c8a5924 100644 --- a/yarn.lock +++ b/yarn.lock @@ -428,10 +428,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-block-scoping@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.5.5.tgz#a35f395e5402822f10d2119f6f8e045e3639a2ce" - integrity sha512-82A3CLRRdYubkG85lKwhZB0WZoHxLGsJdux/cOVaJCJpvYFl1LVzAIFyRsa7CvXqW8rBM4Zf3Bfn8PHt5DP0Sg== +"@babel/plugin-transform-block-scoping@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.0.tgz#c49e21228c4bbd4068a35667e6d951c75439b1dc" + integrity sha512-tIt4E23+kw6TgL/edACZwP1OUKrjOTyMrFMLoT5IOFrfMRabCgekjqFd5o6PaAMildBu46oFkekIdMuGkkPEpA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" lodash "^4.17.13" @@ -457,10 +457,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-destructuring@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.5.0.tgz#f6c09fdfe3f94516ff074fe877db7bc9ef05855a" - integrity sha512-YbYgbd3TryYYLGyC7ZR+Tq8H/+bCmwoaxHfJHupom5ECstzbRLTch6gOQbhEY9Z4hiCNHEURgq06ykFv9JZ/QQ== +"@babel/plugin-transform-destructuring@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz#44bbe08b57f4480094d57d9ffbcd96d309075ba6" + integrity sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -526,10 +526,10 @@ "@babel/helper-plugin-utils" "^7.0.0" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-commonjs@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.5.0.tgz#425127e6045231360858eeaa47a71d75eded7a74" - integrity sha512-xmHq0B+ytyrWJvQTc5OWAC4ii6Dhr0s22STOoydokG51JjWhyYo5mRPXoi+ZmtHQhZZwuXNN+GG5jy5UZZJxIQ== +"@babel/plugin-transform-modules-commonjs@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz#39dfe957de4420445f1fcf88b68a2e4aa4515486" + integrity sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g== dependencies: "@babel/helper-module-transforms" "^7.4.4" "@babel/helper-plugin-utils" "^7.0.0" @@ -553,12 +553,12 @@ "@babel/helper-module-transforms" "^7.1.0" "@babel/helper-plugin-utils" "^7.0.0" -"@babel/plugin-transform-named-capturing-groups-regex@^7.4.5": - version "7.4.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.5.tgz#9d269fd28a370258199b4294736813a60bbdd106" - integrity sha512-z7+2IsWafTBbjNsOxU/Iv5CvTJlr5w4+HGu1HovKYTtgJ362f7kBcQglkfmlspKKZ3bgrbSGvLfNx++ZJgCWsg== +"@babel/plugin-transform-named-capturing-groups-regex@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.0.tgz#1e6e663097813bb4f53d42df0750cf28ad3bb3f1" + integrity sha512-jem7uytlmrRl3iCAuQyw8BpB4c4LWvSpvIeXKpMb+7j84lkx4m4mYr5ErAcmN5KM7B6BqrAvRGjBIbbzqCczew== dependencies: - regexp-tree "^0.1.6" + regexp-tree "^0.1.13" "@babel/plugin-transform-new-target@^7.4.4": version "7.4.4" @@ -701,10 +701,10 @@ "@babel/helper-regex" "^7.4.4" regexpu-core "^4.5.4" -"@babel/preset-env@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.5.5.tgz#bc470b53acaa48df4b8db24a570d6da1fef53c9a" - integrity sha512-GMZQka/+INwsMz1A5UEql8tG015h5j/qjptpKY2gJ7giy8ohzU710YciJB5rcKsWGWHiW3RUnHib0E5/m3Tp3A== +"@babel/preset-env@^7.6.0": + version "7.6.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.6.0.tgz#aae4141c506100bb2bfaa4ac2a5c12b395619e50" + integrity sha512-1efzxFv/TcPsNXlRhMzRnkBFMeIqBBgzwmZwlFDw5Ubj0AGLeufxugirwZmkkX/ayi3owsSqoQ4fw8LkfK9SYg== dependencies: "@babel/helper-module-imports" "^7.0.0" "@babel/helper-plugin-utils" "^7.0.0" @@ -722,10 +722,10 @@ "@babel/plugin-transform-arrow-functions" "^7.2.0" "@babel/plugin-transform-async-to-generator" "^7.5.0" "@babel/plugin-transform-block-scoped-functions" "^7.2.0" - "@babel/plugin-transform-block-scoping" "^7.5.5" + "@babel/plugin-transform-block-scoping" "^7.6.0" "@babel/plugin-transform-classes" "^7.5.5" "@babel/plugin-transform-computed-properties" "^7.2.0" - "@babel/plugin-transform-destructuring" "^7.5.0" + "@babel/plugin-transform-destructuring" "^7.6.0" "@babel/plugin-transform-dotall-regex" "^7.4.4" "@babel/plugin-transform-duplicate-keys" "^7.5.0" "@babel/plugin-transform-exponentiation-operator" "^7.2.0" @@ -734,10 +734,10 @@ "@babel/plugin-transform-literals" "^7.2.0" "@babel/plugin-transform-member-expression-literals" "^7.2.0" "@babel/plugin-transform-modules-amd" "^7.5.0" - "@babel/plugin-transform-modules-commonjs" "^7.5.0" + "@babel/plugin-transform-modules-commonjs" "^7.6.0" "@babel/plugin-transform-modules-systemjs" "^7.5.0" "@babel/plugin-transform-modules-umd" "^7.2.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.4.5" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.6.0" "@babel/plugin-transform-new-target" "^7.4.4" "@babel/plugin-transform-object-super" "^7.5.5" "@babel/plugin-transform-parameters" "^7.4.4" @@ -750,7 +750,7 @@ "@babel/plugin-transform-template-literals" "^7.4.4" "@babel/plugin-transform-typeof-symbol" "^7.2.0" "@babel/plugin-transform-unicode-regex" "^7.4.4" - "@babel/types" "^7.5.5" + "@babel/types" "^7.6.0" browserslist "^4.6.0" core-js-compat "^3.1.1" invariant "^2.2.2" @@ -822,10 +822,10 @@ globals "^11.1.0" lodash "^4.17.13" -"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.2.0", "@babel/types@^7.2.2", "@babel/types@^7.3.0", "@babel/types@^7.3.4", "@babel/types@^7.4.4", "@babel/types@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.5.5.tgz#97b9f728e182785909aa4ab56264f090a028d18a" - integrity sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw== +"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.2.0", "@babel/types@^7.2.2", "@babel/types@^7.3.0", "@babel/types@^7.3.4", "@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.6.0": + version "7.6.1" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.1.tgz#53abf3308add3ac2a2884d539151c57c4b3ac648" + integrity sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g== dependencies: esutils "^2.0.2" lodash "^4.17.13" @@ -8795,10 +8795,10 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp-tree@^0.1.6: - version "0.1.10" - resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.10.tgz#d837816a039c7af8a8d64d7a7c3cf6a1d93450bc" - integrity sha512-K1qVSbcedffwuIslMwpe6vGlj+ZXRnGkvjAtFHfDZZZuEdA/h0dxljAPu9vhUo6Rrx2U2AwJ+nSQ6hK+lrP5MQ== +regexp-tree@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.13.tgz#5b19ab9377edc68bc3679256840bb29afc158d7f" + integrity sha512-hwdV/GQY5F8ReLZWO+W1SRoN5YfpOKY6852+tBFcma72DKBIcHjPRIlIvQN35bCOljuAfP2G2iB0FC/w236mUw== regexpp@^2.0.1: version "2.0.1" From 3b10307e2c2b09f851a248d0662ce8e9d3c7101c Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2019 19:49:13 +0900 Subject: [PATCH 09/43] Bump devise from 4.7.0 to 4.7.1 (#11784) * Bump devise from 4.7.0 to 4.7.1 Bumps [devise](https://github.com/plataformatec/devise) from 4.7.0 to 4.7.1. - [Release notes](https://github.com/plataformatec/devise/releases) - [Changelog](https://github.com/plataformatec/devise/blob/master/CHANGELOG.md) - [Commits](https://github.com/plataformatec/devise/compare/v4.7.0...v4.7.1) Signed-off-by: dependabot-preview[bot] * bcrypt (3.1.12) --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index b0f6bf083f..a146500246 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -188,7 +188,7 @@ GEM rack (>= 1) rake (> 10, < 13) thor (~> 0.19) - devise (4.7.0) + devise (4.7.1) bcrypt (~> 3.0) orm_adapter (~> 0.1) railties (>= 4.1.0) From 3feacd2b14aeb60999c9ee83422c6c8090ed3ac2 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2019 19:49:54 +0900 Subject: [PATCH 10/43] Bump faker from 2.2.1 to 2.2.2 (#11787) Bumps [faker](https://github.com/faker-ruby/faker) from 2.2.1 to 2.2.2. - [Release notes](https://github.com/faker-ruby/faker/releases) - [Changelog](https://github.com/faker-ruby/faker/blob/master/CHANGELOG.md) - [Commits](https://github.com/faker-ruby/faker/compare/v2.2.1...v2.2.2) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index a146500246..7f46fda129 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -231,8 +231,8 @@ GEM tzinfo excon (0.62.0) fabrication (2.20.2) - faker (2.2.1) - i18n (>= 0.8) + faker (2.2.2) + i18n (~> 1.6.0) faraday (0.15.0) multipart-post (>= 1.2, < 3) fast_blank (1.0.0) From 261e52268c05d2da4459a23e2898555dd5db5771 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 9 Sep 2019 12:50:09 +0200 Subject: [PATCH 11/43] Add batch approve/reject for pending hashtags in admin UI (#11791) --- app/controllers/admin/tags_controller.rb | 41 +++++++++++++++++++--- app/javascript/styles/mastodon/tables.scss | 10 ++++++ app/models/form/tag_batch.rb | 33 +++++++++++++++++ app/views/admin/tags/_tag.html.haml | 30 +++++++++------- app/views/admin/tags/index.html.haml | 37 ++++++++++++++++++- config/locales/en.yml | 1 + config/routes.rb | 9 ++++- 7 files changed, 142 insertions(+), 19 deletions(-) create mode 100644 app/models/form/tag_batch.rb diff --git a/app/controllers/admin/tags_controller.rb b/app/controllers/admin/tags_controller.rb index 8bd4e5f8b7..376ebe44d3 100644 --- a/app/controllers/admin/tags_controller.rb +++ b/app/controllers/admin/tags_controller.rb @@ -3,12 +3,33 @@ module Admin class TagsController < BaseController before_action :set_tags, only: :index - before_action :set_tag, except: :index - before_action :set_usage_by_domain, except: :index - before_action :set_counters, except: :index + before_action :set_tag, except: [:index, :batch, :approve_all, :reject_all] + before_action :set_usage_by_domain, except: [:index, :batch, :approve_all, :reject_all] + before_action :set_counters, except: [:index, :batch, :approve_all, :reject_all] def index authorize :tag, :index? + + @form = Form::TagBatch.new + end + + def batch + @form = Form::TagBatch.new(form_tag_batch_params.merge(current_account: current_account, action: action_from_button)) + @form.save + rescue ActionController::ParameterMissing + flash[:alert] = I18n.t('admin.accounts.no_account_selected') + ensure + redirect_to admin_tags_path(filter_params) + end + + def approve_all + Form::TagBatch.new(current_account: current_account, tag_ids: Tag.pending_review.pluck(:id), action: 'approve').save + redirect_to admin_tags_path(filter_params) + end + + def reject_all + Form::TagBatch.new(current_account: current_account, tag_ids: Tag.pending_review.pluck(:id), action: 'reject').save + redirect_to admin_tags_path(filter_params) end def show @@ -61,7 +82,7 @@ module Admin end def filter_params - params.slice(:context, :review).permit(:context, :review) + params.slice(:context, :review, :page).permit(:context, :review, :page) end def tag_params @@ -75,5 +96,17 @@ module Admin date.to_time(:utc).beginning_of_day.to_i end end + + def form_tag_batch_params + params.require(:form_tag_batch).permit(:action, tag_ids: []) + end + + def action_from_button + if params[:approve] + 'approve' + elsif params[:reject] + 'reject' + end + end end end diff --git a/app/javascript/styles/mastodon/tables.scss b/app/javascript/styles/mastodon/tables.scss index fe6beba5db..2aef099e6a 100644 --- a/app/javascript/styles/mastodon/tables.scss +++ b/app/javascript/styles/mastodon/tables.scss @@ -211,6 +211,16 @@ a.table-action-link { padding: 0; } } + + .directory__tag { + margin: 0; + width: 100%; + + a { + background: transparent; + border-radius: 0; + } + } } .status__content { diff --git a/app/models/form/tag_batch.rb b/app/models/form/tag_batch.rb new file mode 100644 index 0000000000..fd517a1a64 --- /dev/null +++ b/app/models/form/tag_batch.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +class Form::TagBatch + include ActiveModel::Model + include Authorization + + attr_accessor :tag_ids, :action, :current_account + + def save + case action + when 'approve' + approve! + when 'reject' + reject! + end + end + + private + + def tags + Tag.where(id: tag_ids) + end + + def approve! + tags.each { |tag| authorize(tag, :update?) } + tags.update_all(trendable: true, reviewed_at: Time.now.utc) + end + + def reject! + tags.each { |tag| authorize(tag, :update?) } + tags.update_all(trendable: false, reviewed_at: Time.now.utc) + end +end diff --git a/app/views/admin/tags/_tag.html.haml b/app/views/admin/tags/_tag.html.haml index 91af8e4927..670f3bc059 100644 --- a/app/views/admin/tags/_tag.html.haml +++ b/app/views/admin/tags/_tag.html.haml @@ -1,16 +1,20 @@ -.directory__tag - = link_to admin_tag_path(tag.id) do - %h4 - = fa_icon 'hashtag' - = tag.name +.batch-table__row + %label.batch-table__row__select.batch-table__row__select--aligned.batch-checkbox + = f.check_box :tag_ids, { multiple: true, include_hidden: false }, tag.id - %small - = t('admin.tags.in_directory', count: tag.accounts_count) - • - = t('admin.tags.unique_uses_today', count: tag.history.first[:accounts]) + .directory__tag + = link_to admin_tag_path(tag.id) do + %h4 + = fa_icon 'hashtag' + = tag.name - - if tag.trending? - = fa_icon 'fire fw' - = t('admin.tags.trending_right_now') + %small + = t('admin.tags.in_directory', count: tag.accounts_count) + • + = t('admin.tags.unique_uses_today', count: tag.history.first[:accounts]) - .trends__item__current= number_to_human tag.history.first[:uses], strip_insignificant_zeros: true + - if tag.trending? + = fa_icon 'fire fw' + = t('admin.tags.trending_right_now') + + .trends__item__current= number_to_human tag.history.first[:uses], strip_insignificant_zeros: true diff --git a/app/views/admin/tags/index.html.haml b/app/views/admin/tags/index.html.haml index d994955efe..324d13d3e7 100644 --- a/app/views/admin/tags/index.html.haml +++ b/app/views/admin/tags/index.html.haml @@ -1,6 +1,9 @@ - content_for :page_title do = t('admin.tags.title') +- content_for :header_tags do + = javascript_pack_tag 'admin', integrity: true, async: true, crossorigin: 'anonymous' + .filters .filter-subset %strong= t('admin.tags.context') @@ -18,5 +21,37 @@ %hr.spacer/ -= render @tags += form_for(@form, url: batch_admin_tags_path) do |f| + = hidden_field_tag :page, params[:page] || 1 + = hidden_field_tag :context, params[:context] + = hidden_field_tag :review, params[:review] + + .batch-table + .batch-table__toolbar + %label.batch-table__toolbar__select.batch-checkbox-all + = check_box_tag :batch_checkbox_all, nil, false + .batch-table__toolbar__actions + - if params[:review] == 'pending_review' + = f.button safe_join([fa_icon('check'), t('admin.accounts.approve')]), name: :approve, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + + = f.button safe_join([fa_icon('times'), t('admin.accounts.reject')]), name: :reject, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + - else + %span.neutral-hint= t('generic.no_batch_actions_available') + + .batch-table__body + - if @tags.empty? + = nothing_here 'nothing-here--under-tabs' + - else + = render partial: 'tag', collection: @tags, locals: { f: f } + = paginate @tags + +- if params[:review] == 'pending_review' + %hr.spacer/ + + %div{ style: 'overflow: hidden' } + %div{ style: 'float: right' } + = link_to t('admin.accounts.reject_all'), reject_all_admin_tags_path, method: :post, data: { confirm: t('admin.accounts.are_you_sure') }, class: 'button button--destructive' + + %div + = link_to t('admin.accounts.approve_all'), approve_all_admin_tags_path, method: :post, data: { confirm: t('admin.accounts.are_you_sure') }, class: 'button' diff --git a/config/locales/en.yml b/config/locales/en.yml index 687f5f2a04..42d8e0eb8b 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -727,6 +727,7 @@ en: all: All changes_saved_msg: Changes successfully saved! copy: Copy + no_batch_actions_available: No batch actions available on this page order_by: Order by save_changes: Save changes validation_errors: diff --git a/config/routes.rb b/config/routes.rb index 1ebf9e0668..534e68814a 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -251,7 +251,14 @@ Rails.application.routes.draw do end resources :account_moderation_notes, only: [:create, :destroy] - resources :tags, only: [:index, :show, :update] + + resources :tags, only: [:index, :show, :update] do + collection do + post :approve_all + post :reject_all + post :batch + end + end end get '/admin', to: redirect('/admin/dashboard', status: 302) From 3642021d58f8871bb16c49b128f936b8fa907665 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2019 19:50:38 +0900 Subject: [PATCH 12/43] Bump oj from 3.9.0 to 3.9.1 (#11789) Bumps [oj](https://github.com/ohler55/oj) from 3.9.0 to 3.9.1. - [Release notes](https://github.com/ohler55/oj/releases) - [Changelog](https://github.com/ohler55/oj/blob/develop/CHANGELOG.md) - [Commits](https://github.com/ohler55/oj/compare/v3.9.0...v3.9.1) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 7f46fda129..66625dbaeb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -389,7 +389,7 @@ GEM concurrent-ruby (~> 1.0, >= 1.0.2) sidekiq (>= 3.5) statsd-ruby (~> 1.4, >= 1.4.0) - oj (3.9.0) + oj (3.9.1) omniauth (1.9.0) hashie (>= 3.4.6, < 3.7.0) rack (>= 1.6.2, < 3) From a9ea638a495179ee5615de622baead3df3f91084 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2019 19:52:33 +0900 Subject: [PATCH 13/43] Bump json-ld-preloaded from 3.0.3 to 3.0.4 (#11790) Bumps [json-ld-preloaded](https://github.com/ruby-rdf/json-ld-preloaded) from 3.0.3 to 3.0.4. - [Release notes](https://github.com/ruby-rdf/json-ld-preloaded/releases) - [Commits](https://github.com/ruby-rdf/json-ld-preloaded/compare/3.0.3...3.0.4) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 66625dbaeb..de4323326f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -316,7 +316,7 @@ GEM jmespath (1.4.0) json (2.2.0) json-canonicalization (0.1.0) - json-ld-preloaded (3.0.3) + json-ld-preloaded (3.0.4) json-ld (~> 3.0) multi_json (~> 1.12) rdf (~> 3.0) From 5dcacde6a269dfa8c87e528ef221dacfedef9d6a Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2019 20:03:07 +0900 Subject: [PATCH 14/43] Bump mime-types from 3.2.2 to 3.3 (#11788) Bumps [mime-types](https://github.com/mime-types/ruby-mime-types) from 3.2.2 to 3.3. - [Release notes](https://github.com/mime-types/ruby-mime-types/releases) - [Changelog](https://github.com/mime-types/ruby-mime-types/blob/master/History.md) - [Commits](https://github.com/mime-types/ruby-mime-types/compare/v3.2.2...v3.3) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index d9740702fe..fc7160c825 100644 --- a/Gemfile +++ b/Gemfile @@ -59,7 +59,7 @@ gem 'httplog', '~> 1.3' gem 'idn-ruby', require: 'idn' gem 'kaminari', '~> 1.1' gem 'link_header', '~> 0.0' -gem 'mime-types', '~> 3.2', require: 'mime/types/columnar' +gem 'mime-types', '~> 3.3', require: 'mime/types/columnar' gem 'nilsimsa', git: 'https://github.com/witgo/nilsimsa', ref: 'fd184883048b922b176939f851338d0a4971a532' gem 'nokogiri', '~> 1.10' gem 'nsa', '~> 0.2' diff --git a/Gemfile.lock b/Gemfile.lock index de4323326f..c0394f247b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -364,9 +364,9 @@ GEM microformats (4.1.0) json (~> 2.1) nokogiri (~> 1.8, >= 1.8.3) - mime-types (3.2.2) + mime-types (3.3) mime-types-data (~> 3.2015) - mime-types-data (3.2018.0812) + mime-types-data (3.2019.0904) mimemagic (0.3.3) mini_mime (1.0.2) mini_portile2 (2.4.0) @@ -729,7 +729,7 @@ DEPENDENCIES mario-redis-lock (~> 1.2) memory_profiler microformats (~> 4.1) - mime-types (~> 3.2) + mime-types (~> 3.3) net-ldap (~> 0.10) nilsimsa! nokogiri (~> 1.10) From 4f3e183dc88feb7a312d19c24ee9116d0259cbb6 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2019 20:07:02 +0900 Subject: [PATCH 15/43] Bump jest from 24.8.0 to 24.9.0 (#11781) Bumps [jest](https://github.com/facebook/jest) from 24.8.0 to 24.9.0. - [Release notes](https://github.com/facebook/jest/releases) - [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md) - [Commits](https://github.com/facebook/jest/compare/v24.8.0...v24.9.0) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 716 ++++++++++++++++++++++++++++++++------------------- 2 files changed, 455 insertions(+), 263 deletions(-) diff --git a/package.json b/package.json index cf741905a3..b92fed5449 100644 --- a/package.json +++ b/package.json @@ -178,7 +178,7 @@ "eslint-plugin-jsx-a11y": "~6.2.3", "eslint-plugin-promise": "~4.2.1", "eslint-plugin-react": "~7.14.3", - "jest": "^24.8.0", + "jest": "^24.9.0", "raf": "^3.4.1", "react-intl-translations-manager": "^5.0.3", "react-test-renderer": "^16.8.6", diff --git a/yarn.lock b/yarn.lock index f26c8a5924..2a4cf6af06 100644 --- a/yarn.lock +++ b/yarn.lock @@ -900,48 +900,58 @@ chalk "^2.0.1" slash "^2.0.0" -"@jest/core@^24.8.0": - version "24.8.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.8.0.tgz#fbbdcd42a41d0d39cddbc9f520c8bab0c33eed5b" - integrity sha512-R9rhAJwCBQzaRnrRgAdVfnglUuATXdwTRsYqs6NMdVcAl5euG8LtWDe+fVkN27YfKVBW61IojVsXKaOmSnqd/A== +"@jest/console@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0" + integrity sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ== + dependencies: + "@jest/source-map" "^24.9.0" + chalk "^2.0.1" + slash "^2.0.0" + +"@jest/core@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.9.0.tgz#2ceccd0b93181f9c4850e74f2a9ad43d351369c4" + integrity sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A== dependencies: "@jest/console" "^24.7.1" - "@jest/reporters" "^24.8.0" - "@jest/test-result" "^24.8.0" - "@jest/transform" "^24.8.0" - "@jest/types" "^24.8.0" + "@jest/reporters" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" ansi-escapes "^3.0.0" chalk "^2.0.1" exit "^0.1.2" graceful-fs "^4.1.15" - jest-changed-files "^24.8.0" - jest-config "^24.8.0" - jest-haste-map "^24.8.0" - jest-message-util "^24.8.0" + jest-changed-files "^24.9.0" + jest-config "^24.9.0" + jest-haste-map "^24.9.0" + jest-message-util "^24.9.0" jest-regex-util "^24.3.0" - jest-resolve-dependencies "^24.8.0" - jest-runner "^24.8.0" - jest-runtime "^24.8.0" - jest-snapshot "^24.8.0" - jest-util "^24.8.0" - jest-validate "^24.8.0" - jest-watcher "^24.8.0" + jest-resolve "^24.9.0" + jest-resolve-dependencies "^24.9.0" + jest-runner "^24.9.0" + jest-runtime "^24.9.0" + jest-snapshot "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" + jest-watcher "^24.9.0" micromatch "^3.1.10" p-each-series "^1.0.0" - pirates "^4.0.1" realpath-native "^1.1.0" rimraf "^2.5.4" + slash "^2.0.0" strip-ansi "^5.0.0" -"@jest/environment@^24.8.0": - version "24.8.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.8.0.tgz#0342261383c776bdd652168f68065ef144af0eac" - integrity sha512-vlGt2HLg7qM+vtBrSkjDxk9K0YtRBi7HfRFaDxoRtyi+DyVChzhF20duvpdAnKVBV6W5tym8jm0U9EfXbDk1tw== +"@jest/environment@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.9.0.tgz#21e3afa2d65c0586cbd6cbefe208bafade44ab18" + integrity sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ== dependencies: - "@jest/fake-timers" "^24.8.0" - "@jest/transform" "^24.8.0" - "@jest/types" "^24.8.0" - jest-mock "^24.8.0" + "@jest/fake-timers" "^24.9.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + jest-mock "^24.9.0" "@jest/fake-timers@^24.8.0": version "24.8.0" @@ -952,15 +962,24 @@ jest-message-util "^24.8.0" jest-mock "^24.8.0" -"@jest/reporters@^24.8.0": - version "24.8.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.8.0.tgz#075169cd029bddec54b8f2c0fc489fd0b9e05729" - integrity sha512-eZ9TyUYpyIIXfYCrw0UHUWUvE35vx5I92HGMgS93Pv7du+GHIzl+/vh8Qj9MCWFK/4TqyttVBPakWMOfZRIfxw== +"@jest/fake-timers@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93" + integrity sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A== dependencies: - "@jest/environment" "^24.8.0" - "@jest/test-result" "^24.8.0" - "@jest/transform" "^24.8.0" - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" + jest-message-util "^24.9.0" + jest-mock "^24.9.0" + +"@jest/reporters@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.9.0.tgz#86660eff8e2b9661d042a8e98a028b8d631a5b43" + integrity sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw== + dependencies: + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" chalk "^2.0.1" exit "^0.1.2" glob "^7.1.2" @@ -968,13 +987,13 @@ istanbul-lib-instrument "^3.0.1" istanbul-lib-report "^2.0.4" istanbul-lib-source-maps "^3.0.1" - istanbul-reports "^2.1.1" - jest-haste-map "^24.8.0" - jest-resolve "^24.8.0" - jest-runtime "^24.8.0" - jest-util "^24.8.0" + istanbul-reports "^2.2.6" + jest-haste-map "^24.9.0" + jest-resolve "^24.9.0" + jest-runtime "^24.9.0" + jest-util "^24.9.0" jest-worker "^24.6.0" - node-notifier "^5.2.1" + node-notifier "^5.4.2" slash "^2.0.0" source-map "^0.6.0" string-length "^2.0.0" @@ -988,6 +1007,15 @@ graceful-fs "^4.1.15" source-map "^0.6.0" +"@jest/source-map@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714" + integrity sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg== + dependencies: + callsites "^3.0.0" + graceful-fs "^4.1.15" + source-map "^0.6.0" + "@jest/test-result@^24.8.0": version "24.8.0" resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.8.0.tgz#7675d0aaf9d2484caa65e048d9b467d160f8e9d3" @@ -997,15 +1025,24 @@ "@jest/types" "^24.8.0" "@types/istanbul-lib-coverage" "^2.0.0" -"@jest/test-sequencer@^24.8.0": - version "24.8.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.8.0.tgz#2f993bcf6ef5eb4e65e8233a95a3320248cf994b" - integrity sha512-OzL/2yHyPdCHXEzhoBuq37CE99nkme15eHkAzXRVqthreWZamEMA0WoetwstsQBCXABhczpK03JNbc4L01vvLg== +"@jest/test-result@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca" + integrity sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA== dependencies: - "@jest/test-result" "^24.8.0" - jest-haste-map "^24.8.0" - jest-runner "^24.8.0" - jest-runtime "^24.8.0" + "@jest/console" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/istanbul-lib-coverage" "^2.0.0" + +"@jest/test-sequencer@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz#f8f334f35b625a4f2f355f2fe7e6036dad2e6b31" + integrity sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A== + dependencies: + "@jest/test-result" "^24.9.0" + jest-haste-map "^24.9.0" + jest-runner "^24.9.0" + jest-runtime "^24.9.0" "@jest/transform@^24.8.0": version "24.8.0" @@ -1028,6 +1065,28 @@ source-map "^0.6.1" write-file-atomic "2.4.1" +"@jest/transform@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.9.0.tgz#4ae2768b296553fadab09e9ec119543c90b16c56" + integrity sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ== + dependencies: + "@babel/core" "^7.1.0" + "@jest/types" "^24.9.0" + babel-plugin-istanbul "^5.1.0" + chalk "^2.0.1" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.1.15" + jest-haste-map "^24.9.0" + jest-regex-util "^24.9.0" + jest-util "^24.9.0" + micromatch "^3.1.10" + pirates "^4.0.1" + realpath-native "^1.1.0" + slash "^2.0.0" + source-map "^0.6.1" + write-file-atomic "2.4.1" + "@jest/types@^24.8.0": version "24.8.0" resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.8.0.tgz#f31e25948c58f0abd8c845ae26fcea1491dea7ad" @@ -1037,6 +1096,15 @@ "@types/istanbul-reports" "^1.1.1" "@types/yargs" "^12.0.9" +"@jest/types@^24.9.0": + version "24.9.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" + integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^1.1.1" + "@types/yargs" "^13.0.0" + "@types/babel__core@^7.1.0": version "7.1.0" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.0.tgz#710f2487dda4dcfd010ca6abb2b4dc7394365c51" @@ -1131,11 +1199,23 @@ resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== -"@types/yargs@^12.0.2", "@types/yargs@^12.0.9": +"@types/yargs-parser@*": + version "13.1.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-13.1.0.tgz#c563aa192f39350a1d18da36c5a8da382bbd8228" + integrity sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg== + +"@types/yargs@^12.0.9": version "12.0.9" resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-12.0.9.tgz#693e76a52f61a2f1e7fb48c0eef167b95ea4ffd0" integrity sha512-sCZy4SxP9rN2w30Hlmg5dtdRwgYQfYRiLo9usw8X9cxlf+H4FqM1xX7+sNH7NNKVdbXMJWqva7iyy+fxh/V7fA== +"@types/yargs@^13.0.0": + version "13.0.2" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.2.tgz#a64674fc0149574ecd90ba746e932b5a5f7b3653" + integrity sha512-lwwgizwk/bIIU+3ELORkyuOgDjCh7zuWDFqRtPPhhVgq9N1F7CvLNKg1TX4f2duwtKQ0p044Au9r1PLIXHrIzQ== + dependencies: + "@types/yargs-parser" "*" + "@webassemblyjs/ast@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" @@ -1731,6 +1811,19 @@ babel-jest@^24.8.0: chalk "^2.4.2" slash "^2.0.0" +babel-jest@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.9.0.tgz#3fc327cb8467b89d14d7bc70e315104a783ccd54" + integrity sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw== + dependencies: + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/babel__core" "^7.1.0" + babel-plugin-istanbul "^5.1.0" + babel-preset-jest "^24.9.0" + chalk "^2.4.2" + slash "^2.0.0" + babel-loader@^8.0.6: version "8.0.6" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz#e33bdb6f362b03f4bb141a0c21ab87c501b70dfb" @@ -1782,6 +1875,13 @@ babel-plugin-jest-hoist@^24.6.0: dependencies: "@types/babel__traverse" "^7.0.6" +babel-plugin-jest-hoist@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz#4f837091eb407e01447c8843cbec546d0002d756" + integrity sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw== + dependencies: + "@types/babel__traverse" "^7.0.6" + babel-plugin-lodash@^3.3.4: version "3.3.4" resolved "https://registry.yarnpkg.com/babel-plugin-lodash/-/babel-plugin-lodash-3.3.4.tgz#4f6844358a1340baed182adbeffa8df9967bc196" @@ -1844,6 +1944,14 @@ babel-preset-jest@^24.6.0: "@babel/plugin-syntax-object-rest-spread" "^7.0.0" babel-plugin-jest-hoist "^24.6.0" +babel-preset-jest@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz#192b521e2217fb1d1f67cf73f70c336650ad3cdc" + integrity sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg== + dependencies: + "@babel/plugin-syntax-object-rest-spread" "^7.0.0" + babel-plugin-jest-hoist "^24.9.0" + babel-runtime@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" @@ -3267,10 +3375,10 @@ detect-passive-events@^1.0.2: resolved "https://registry.yarnpkg.com/detect-passive-events/-/detect-passive-events-1.0.4.tgz#6ed477e6e5bceb79079735dcd357789d37f9a91a" integrity sha1-btR35uW863kHlzXc01d4nTf5qRo= -diff-sequences@^24.3.0: - version "24.3.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.3.0.tgz#0f20e8a1df1abddaf4d9c226680952e64118b975" - integrity sha512-xLqpez+Zj9GKSnPWS0WZw1igGocZ+uua8+y+5dDNTT934N3QuY1sp2LkHzwiaYQGz60hMq0pjAshdeXm5VUOEw== +diff-sequences@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" + integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== diffie-hellman@^5.0.0: version "5.0.3" @@ -4037,17 +4145,17 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -expect@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-24.8.0.tgz#471f8ec256b7b6129ca2524b2a62f030df38718d" - integrity sha512-/zYvP8iMDrzaaxHVa724eJBCKqSHmO0FA7EDkBiRHxg6OipmMn1fN+C8T9L9K8yr7UONkOifu6+LLH+z76CnaA== +expect@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca" + integrity sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q== dependencies: - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" ansi-styles "^3.2.0" - jest-get-type "^24.8.0" - jest-matcher-utils "^24.8.0" - jest-message-util "^24.8.0" - jest-regex-util "^24.3.0" + jest-get-type "^24.9.0" + jest-matcher-utils "^24.9.0" + jest-message-util "^24.9.0" + jest-regex-util "^24.9.0" express@^4.16.3, express@^4.17.1: version "4.17.1" @@ -4708,10 +4816,10 @@ handle-thing@^2.0.0: resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== -handlebars@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67" - integrity sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw== +handlebars@^4.1.2: + version "4.2.0" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.2.0.tgz#57ce8d2175b9bbb3d8b3cf3e4217b1aec8ddcb2e" + integrity sha512-Kb4xn5Qh1cxAKvQnzNWZ512DhABzyFNmsaJf3OAkWNa4NkaqWcNI8Tao8Tasi0/F4JD9oyG0YxuFyvyR57d+Gw== dependencies: neo-async "^2.6.0" optimist "^0.6.1" @@ -5668,73 +5776,73 @@ istanbul-lib-source-maps@^3.0.1: rimraf "^2.6.2" source-map "^0.6.1" -istanbul-reports@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.1.1.tgz#72ef16b4ecb9a4a7bd0e2001e00f95d1eec8afa9" - integrity sha512-FzNahnidyEPBCI0HcufJoSEoKykesRlFcSzQqjH9x0+LC8tnnE/p/90PBLu8iZTxr8yYZNyTtiAujUqyN+CIxw== +istanbul-reports@^2.2.6: + version "2.2.6" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.6.tgz#7b4f2660d82b29303a8fe6091f8ca4bf058da1af" + integrity sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA== dependencies: - handlebars "^4.1.0" + handlebars "^4.1.2" -jest-changed-files@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.8.0.tgz#7e7eb21cf687587a85e50f3d249d1327e15b157b" - integrity sha512-qgANC1Yrivsq+UrLXsvJefBKVoCsKB0Hv+mBb6NMjjZ90wwxCDmU3hsCXBya30cH+LnPYjwgcU65i6yJ5Nfuug== +jest-changed-files@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.9.0.tgz#08d8c15eb79a7fa3fc98269bc14b451ee82f8039" + integrity sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg== dependencies: - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" execa "^1.0.0" throat "^4.0.0" -jest-cli@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.8.0.tgz#b075ac914492ed114fa338ade7362a301693e989" - integrity sha512-+p6J00jSMPQ116ZLlHJJvdf8wbjNbZdeSX9ptfHX06/MSNaXmKihQzx5vQcw0q2G6JsdVkUIdWbOWtSnaYs3yA== +jest-cli@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.9.0.tgz#ad2de62d07472d419c6abc301fc432b98b10d2af" + integrity sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg== dependencies: - "@jest/core" "^24.8.0" - "@jest/test-result" "^24.8.0" - "@jest/types" "^24.8.0" + "@jest/core" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" chalk "^2.0.1" exit "^0.1.2" import-local "^2.0.0" is-ci "^2.0.0" - jest-config "^24.8.0" - jest-util "^24.8.0" - jest-validate "^24.8.0" + jest-config "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" prompts "^2.0.1" realpath-native "^1.1.0" - yargs "^12.0.2" + yargs "^13.3.0" -jest-config@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.8.0.tgz#77db3d265a6f726294687cbbccc36f8a76ee0f4f" - integrity sha512-Czl3Nn2uEzVGsOeaewGWoDPD8GStxCpAe0zOYs2x2l0fZAgPbCr3uwUkgNKV3LwE13VXythM946cd5rdGkkBZw== +jest-config@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.9.0.tgz#fb1bbc60c73a46af03590719efa4825e6e4dd1b5" + integrity sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^24.8.0" - "@jest/types" "^24.8.0" - babel-jest "^24.8.0" + "@jest/test-sequencer" "^24.9.0" + "@jest/types" "^24.9.0" + babel-jest "^24.9.0" chalk "^2.0.1" glob "^7.1.1" - jest-environment-jsdom "^24.8.0" - jest-environment-node "^24.8.0" - jest-get-type "^24.8.0" - jest-jasmine2 "^24.8.0" + jest-environment-jsdom "^24.9.0" + jest-environment-node "^24.9.0" + jest-get-type "^24.9.0" + jest-jasmine2 "^24.9.0" jest-regex-util "^24.3.0" - jest-resolve "^24.8.0" - jest-util "^24.8.0" - jest-validate "^24.8.0" + jest-resolve "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" micromatch "^3.1.10" - pretty-format "^24.8.0" + pretty-format "^24.9.0" realpath-native "^1.1.0" -jest-diff@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.8.0.tgz#146435e7d1e3ffdf293d53ff97e193f1d1546172" - integrity sha512-wxetCEl49zUpJ/bvUmIFjd/o52J+yWcoc5ZyPq4/W1LUKGEhRYDIbP1KcF6t+PvqNrGAFk4/JhtxDq/Nnzs66g== +jest-diff@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da" + integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ== dependencies: chalk "^2.0.1" - diff-sequences "^24.3.0" - jest-get-type "^24.8.0" - pretty-format "^24.8.0" + diff-sequences "^24.9.0" + jest-get-type "^24.9.0" + pretty-format "^24.9.0" jest-docblock@^24.3.0: version "24.3.0" @@ -5743,44 +5851,44 @@ jest-docblock@^24.3.0: dependencies: detect-newline "^2.1.0" -jest-each@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.8.0.tgz#a05fd2bf94ddc0b1da66c6d13ec2457f35e52775" - integrity sha512-NrwK9gaL5+XgrgoCsd9svsoWdVkK4gnvyhcpzd6m487tXHqIdYeykgq3MKI1u4I+5Zf0tofr70at9dWJDeb+BA== +jest-each@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.9.0.tgz#eb2da602e2a610898dbc5f1f6df3ba86b55f8b05" + integrity sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog== dependencies: - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" chalk "^2.0.1" - jest-get-type "^24.8.0" - jest-util "^24.8.0" - pretty-format "^24.8.0" + jest-get-type "^24.9.0" + jest-util "^24.9.0" + pretty-format "^24.9.0" -jest-environment-jsdom@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.8.0.tgz#300f6949a146cabe1c9357ad9e9ecf9f43f38857" - integrity sha512-qbvgLmR7PpwjoFjM/sbuqHJt/NCkviuq9vus9NBn/76hhSidO+Z6Bn9tU8friecegbJL8gzZQEMZBQlFWDCwAQ== +jest-environment-jsdom@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz#4b0806c7fc94f95edb369a69cc2778eec2b7375b" + integrity sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA== dependencies: - "@jest/environment" "^24.8.0" - "@jest/fake-timers" "^24.8.0" - "@jest/types" "^24.8.0" - jest-mock "^24.8.0" - jest-util "^24.8.0" + "@jest/environment" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/types" "^24.9.0" + jest-mock "^24.9.0" + jest-util "^24.9.0" jsdom "^11.5.1" -jest-environment-node@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.8.0.tgz#d3f726ba8bc53087a60e7a84ca08883a4c892231" - integrity sha512-vIGUEScd1cdDgR6sqn2M08sJTRLQp6Dk/eIkCeO4PFHxZMOgy+uYLPMC4ix3PEfM5Au/x3uQ/5Tl0DpXXZsJ/Q== +jest-environment-node@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.9.0.tgz#333d2d2796f9687f2aeebf0742b519f33c1cbfd3" + integrity sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA== dependencies: - "@jest/environment" "^24.8.0" - "@jest/fake-timers" "^24.8.0" - "@jest/types" "^24.8.0" - jest-mock "^24.8.0" - jest-util "^24.8.0" + "@jest/environment" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/types" "^24.9.0" + jest-mock "^24.9.0" + jest-util "^24.9.0" -jest-get-type@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.8.0.tgz#a7440de30b651f5a70ea3ed7ff073a32dfe646fc" - integrity sha512-RR4fo8jEmMD9zSz2nLbs2j0zvPpk/KCEz3a62jJWbd2ayNo0cb+KFRxPHVhE4ZmgGJEQp0fosmNz84IfqM8cMQ== +jest-get-type@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" + integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== jest-haste-map@^24.8.0: version "24.8.0" @@ -5801,44 +5909,64 @@ jest-haste-map@^24.8.0: optionalDependencies: fsevents "^1.2.7" -jest-jasmine2@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.8.0.tgz#a9c7e14c83dd77d8b15e820549ce8987cc8cd898" - integrity sha512-cEky88npEE5LKd5jPpTdDCLvKkdyklnaRycBXL6GNmpxe41F0WN44+i7lpQKa/hcbXaQ+rc9RMaM4dsebrYong== +jest-haste-map@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d" + integrity sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ== + dependencies: + "@jest/types" "^24.9.0" + anymatch "^2.0.0" + fb-watchman "^2.0.0" + graceful-fs "^4.1.15" + invariant "^2.2.4" + jest-serializer "^24.9.0" + jest-util "^24.9.0" + jest-worker "^24.9.0" + micromatch "^3.1.10" + sane "^4.0.3" + walker "^1.0.7" + optionalDependencies: + fsevents "^1.2.7" + +jest-jasmine2@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz#1f7b1bd3242c1774e62acabb3646d96afc3be6a0" + integrity sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^24.8.0" - "@jest/test-result" "^24.8.0" - "@jest/types" "^24.8.0" + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" chalk "^2.0.1" co "^4.6.0" - expect "^24.8.0" + expect "^24.9.0" is-generator-fn "^2.0.0" - jest-each "^24.8.0" - jest-matcher-utils "^24.8.0" - jest-message-util "^24.8.0" - jest-runtime "^24.8.0" - jest-snapshot "^24.8.0" - jest-util "^24.8.0" - pretty-format "^24.8.0" + jest-each "^24.9.0" + jest-matcher-utils "^24.9.0" + jest-message-util "^24.9.0" + jest-runtime "^24.9.0" + jest-snapshot "^24.9.0" + jest-util "^24.9.0" + pretty-format "^24.9.0" throat "^4.0.0" -jest-leak-detector@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.8.0.tgz#c0086384e1f650c2d8348095df769f29b48e6980" - integrity sha512-cG0yRSK8A831LN8lIHxI3AblB40uhv0z+SsQdW3GoMMVcK+sJwrIIyax5tu3eHHNJ8Fu6IMDpnLda2jhn2pD/g== +jest-leak-detector@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz#b665dea7c77100c5c4f7dfcb153b65cf07dcf96a" + integrity sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA== dependencies: - pretty-format "^24.8.0" + jest-get-type "^24.9.0" + pretty-format "^24.9.0" -jest-matcher-utils@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.8.0.tgz#2bce42204c9af12bde46f83dc839efe8be832495" - integrity sha512-lex1yASY51FvUuHgm0GOVj7DCYEouWSlIYmCW7APSqB9v8mXmKSn5+sWVF0MhuASG0bnYY106/49JU1FZNl5hw== +jest-matcher-utils@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz#f5b3661d5e628dffe6dd65251dfdae0e87c3a073" + integrity sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA== dependencies: chalk "^2.0.1" - jest-diff "^24.8.0" - jest-get-type "^24.8.0" - pretty-format "^24.8.0" + jest-diff "^24.9.0" + jest-get-type "^24.9.0" + pretty-format "^24.9.0" jest-message-util@^24.8.0: version "24.8.0" @@ -5854,6 +5982,20 @@ jest-message-util@^24.8.0: slash "^2.0.0" stack-utils "^1.0.1" +jest-message-util@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3" + integrity sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw== + dependencies: + "@babel/code-frame" "^7.0.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/stack-utils" "^1.0.1" + chalk "^2.0.1" + micromatch "^3.1.10" + slash "^2.0.0" + stack-utils "^1.0.1" + jest-mock@^24.8.0: version "24.8.0" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.8.0.tgz#2f9d14d37699e863f1febf4e4d5a33b7fdbbde56" @@ -5861,6 +6003,13 @@ jest-mock@^24.8.0: dependencies: "@jest/types" "^24.8.0" +jest-mock@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" + integrity sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w== + dependencies: + "@jest/types" "^24.9.0" + jest-pnp-resolver@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a" @@ -5871,102 +6020,113 @@ jest-regex-util@^24.3.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.3.0.tgz#d5a65f60be1ae3e310d5214a0307581995227b36" integrity sha512-tXQR1NEOyGlfylyEjg1ImtScwMq8Oh3iJbGTjN7p0J23EuVX1MA8rwU69K4sLbCmwzgCUbVkm0FkSF9TdzOhtg== -jest-resolve-dependencies@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.8.0.tgz#19eec3241f2045d3f990dba331d0d7526acff8e0" - integrity sha512-hyK1qfIf/krV+fSNyhyJeq3elVMhK9Eijlwy+j5jqmZ9QsxwKBiP6qukQxaHtK8k6zql/KYWwCTQ+fDGTIJauw== - dependencies: - "@jest/types" "^24.8.0" - jest-regex-util "^24.3.0" - jest-snapshot "^24.8.0" +jest-regex-util@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.9.0.tgz#c13fb3380bde22bf6575432c493ea8fe37965636" + integrity sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA== -jest-resolve@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.8.0.tgz#84b8e5408c1f6a11539793e2b5feb1b6e722439f" - integrity sha512-+hjSzi1PoRvnuOICoYd5V/KpIQmkAsfjFO71458hQ2Whi/yf1GDeBOFj8Gxw4LrApHsVJvn5fmjcPdmoUHaVKw== +jest-resolve-dependencies@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz#ad055198959c4cfba8a4f066c673a3f0786507ab" + integrity sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g== dependencies: - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" + jest-regex-util "^24.3.0" + jest-snapshot "^24.9.0" + +jest-resolve@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.9.0.tgz#dff04c7687af34c4dd7e524892d9cf77e5d17321" + integrity sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ== + dependencies: + "@jest/types" "^24.9.0" browser-resolve "^1.11.3" chalk "^2.0.1" jest-pnp-resolver "^1.2.1" realpath-native "^1.1.0" -jest-runner@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.8.0.tgz#4f9ae07b767db27b740d7deffad0cf67ccb4c5bb" - integrity sha512-utFqC5BaA3JmznbissSs95X1ZF+d+4WuOWwpM9+Ak356YtMhHE/GXUondZdcyAAOTBEsRGAgH/0TwLzfI9h7ow== +jest-runner@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.9.0.tgz#574fafdbd54455c2b34b4bdf4365a23857fcdf42" + integrity sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg== dependencies: "@jest/console" "^24.7.1" - "@jest/environment" "^24.8.0" - "@jest/test-result" "^24.8.0" - "@jest/types" "^24.8.0" + "@jest/environment" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" chalk "^2.4.2" exit "^0.1.2" graceful-fs "^4.1.15" - jest-config "^24.8.0" + jest-config "^24.9.0" jest-docblock "^24.3.0" - jest-haste-map "^24.8.0" - jest-jasmine2 "^24.8.0" - jest-leak-detector "^24.8.0" - jest-message-util "^24.8.0" - jest-resolve "^24.8.0" - jest-runtime "^24.8.0" - jest-util "^24.8.0" + jest-haste-map "^24.9.0" + jest-jasmine2 "^24.9.0" + jest-leak-detector "^24.9.0" + jest-message-util "^24.9.0" + jest-resolve "^24.9.0" + jest-runtime "^24.9.0" + jest-util "^24.9.0" jest-worker "^24.6.0" source-map-support "^0.5.6" throat "^4.0.0" -jest-runtime@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.8.0.tgz#05f94d5b05c21f6dc54e427cd2e4980923350620" - integrity sha512-Mq0aIXhvO/3bX44ccT+czU1/57IgOMyy80oM0XR/nyD5zgBcesF84BPabZi39pJVA6UXw+fY2Q1N+4BiVUBWOA== +jest-runtime@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.9.0.tgz#9f14583af6a4f7314a6a9d9f0226e1a781c8e4ac" + integrity sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw== dependencies: "@jest/console" "^24.7.1" - "@jest/environment" "^24.8.0" + "@jest/environment" "^24.9.0" "@jest/source-map" "^24.3.0" - "@jest/transform" "^24.8.0" - "@jest/types" "^24.8.0" - "@types/yargs" "^12.0.2" + "@jest/transform" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/yargs" "^13.0.0" chalk "^2.0.1" exit "^0.1.2" glob "^7.1.3" graceful-fs "^4.1.15" - jest-config "^24.8.0" - jest-haste-map "^24.8.0" - jest-message-util "^24.8.0" - jest-mock "^24.8.0" + jest-config "^24.9.0" + jest-haste-map "^24.9.0" + jest-message-util "^24.9.0" + jest-mock "^24.9.0" jest-regex-util "^24.3.0" - jest-resolve "^24.8.0" - jest-snapshot "^24.8.0" - jest-util "^24.8.0" - jest-validate "^24.8.0" + jest-resolve "^24.9.0" + jest-snapshot "^24.9.0" + jest-util "^24.9.0" + jest-validate "^24.9.0" realpath-native "^1.1.0" slash "^2.0.0" strip-bom "^3.0.0" - yargs "^12.0.2" + yargs "^13.3.0" jest-serializer@^24.4.0: version "24.4.0" resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.4.0.tgz#f70c5918c8ea9235ccb1276d232e459080588db3" integrity sha512-k//0DtglVstc1fv+GY/VHDIjrtNjdYvYjMlbLUed4kxrE92sIUewOi5Hj3vrpB8CXfkJntRPDRjCrCvUhBdL8Q== -jest-snapshot@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.8.0.tgz#3bec6a59da2ff7bc7d097a853fb67f9d415cb7c6" - integrity sha512-5ehtWoc8oU9/cAPe6fez6QofVJLBKyqkY2+TlKTOf0VllBB/mqUNdARdcjlZrs9F1Cv+/HKoCS/BknT0+tmfPg== +jest-serializer@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73" + integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ== + +jest-snapshot@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.9.0.tgz#ec8e9ca4f2ec0c5c87ae8f925cf97497b0e951ba" + integrity sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew== dependencies: "@babel/types" "^7.0.0" - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" chalk "^2.0.1" - expect "^24.8.0" - jest-diff "^24.8.0" - jest-matcher-utils "^24.8.0" - jest-message-util "^24.8.0" - jest-resolve "^24.8.0" + expect "^24.9.0" + jest-diff "^24.9.0" + jest-get-type "^24.9.0" + jest-matcher-utils "^24.9.0" + jest-message-util "^24.9.0" + jest-resolve "^24.9.0" mkdirp "^0.5.1" natural-compare "^1.4.0" - pretty-format "^24.8.0" - semver "^5.5.0" + pretty-format "^24.9.0" + semver "^6.2.0" jest-util@^24.8.0: version "24.8.0" @@ -5986,29 +6146,47 @@ jest-util@^24.8.0: slash "^2.0.0" source-map "^0.6.0" -jest-validate@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.8.0.tgz#624c41533e6dfe356ffadc6e2423a35c2d3b4849" - integrity sha512-+/N7VOEMW1Vzsrk3UWBDYTExTPwf68tavEPKDnJzrC6UlHtUDU/fuEdXqFoHzv9XnQ+zW6X3qMZhJ3YexfeLDA== +jest-util@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162" + integrity sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg== dependencies: - "@jest/types" "^24.8.0" - camelcase "^5.0.0" + "@jest/console" "^24.9.0" + "@jest/fake-timers" "^24.9.0" + "@jest/source-map" "^24.9.0" + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + callsites "^3.0.0" chalk "^2.0.1" - jest-get-type "^24.8.0" - leven "^2.1.0" - pretty-format "^24.8.0" + graceful-fs "^4.1.15" + is-ci "^2.0.0" + mkdirp "^0.5.1" + slash "^2.0.0" + source-map "^0.6.0" -jest-watcher@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.8.0.tgz#58d49915ceddd2de85e238f6213cef1c93715de4" - integrity sha512-SBjwHt5NedQoVu54M5GEx7cl7IGEFFznvd/HNT8ier7cCAx/Qgu9ZMlaTQkvK22G1YOpcWBLQPFSImmxdn3DAw== +jest-validate@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab" + integrity sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ== dependencies: - "@jest/test-result" "^24.8.0" - "@jest/types" "^24.8.0" - "@types/yargs" "^12.0.9" + "@jest/types" "^24.9.0" + camelcase "^5.3.1" + chalk "^2.0.1" + jest-get-type "^24.9.0" + leven "^3.1.0" + pretty-format "^24.9.0" + +jest-watcher@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.9.0.tgz#4b56e5d1ceff005f5b88e528dc9afc8dd4ed2b3b" + integrity sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw== + dependencies: + "@jest/test-result" "^24.9.0" + "@jest/types" "^24.9.0" + "@types/yargs" "^13.0.0" ansi-escapes "^3.0.0" chalk "^2.0.1" - jest-util "^24.8.0" + jest-util "^24.9.0" string-length "^2.0.0" jest-worker@^24.6.0: @@ -6019,13 +6197,21 @@ jest-worker@^24.6.0: merge-stream "^1.0.1" supports-color "^6.1.0" -jest@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-24.8.0.tgz#d5dff1984d0d1002196e9b7f12f75af1b2809081" - integrity sha512-o0HM90RKFRNWmAWvlyV8i5jGZ97pFwkeVoGvPW1EtLTgJc2+jcuqcbbqcSZLE/3f2S5pt0y2ZBETuhpWNl1Reg== +jest-worker@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" + integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== + dependencies: + merge-stream "^2.0.0" + supports-color "^6.1.0" + +jest@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-24.9.0.tgz#987d290c05a08b52c56188c1002e368edb007171" + integrity sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw== dependencies: import-local "^2.0.0" - jest-cli "^24.8.0" + jest-cli "^24.9.0" js-base64@^2.1.9: version "2.5.0" @@ -6261,10 +6447,10 @@ left-pad@^1.3.0: resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== -leven@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" - integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA= +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== levn@^0.3.0, levn@~0.3.0: version "0.3.0" @@ -6551,6 +6737,11 @@ merge-stream@^1.0.1: dependencies: readable-stream "^2.0.1" +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + merge@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" @@ -6907,12 +7098,13 @@ node-modules-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= -node-notifier@^5.2.1: - version "5.3.0" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.3.0.tgz#c77a4a7b84038733d5fb351aafd8a268bfe19a01" - integrity sha512-AhENzCSGZnZJgBARsUjnQ7DnZbzyP+HxlVXuD0xqAnvL8q+OqtSX7lGg9e8nHzwXkMMXNdVeqq4E2M3EUAqX6Q== +node-notifier@^5.4.2: + version "5.4.3" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.3.tgz#cb72daf94c93904098e28b9c590fd866e464bd50" + integrity sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q== dependencies: growly "^1.3.0" + is-wsl "^1.1.0" semver "^5.5.0" shellwords "^0.1.1" which "^1.3.0" @@ -8090,12 +8282,12 @@ prepend-http@^1.0.0: resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= -pretty-format@^24.8.0: - version "24.8.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.8.0.tgz#8dae7044f58db7cb8be245383b565a963e3c27f2" - integrity sha512-P952T7dkrDEplsR+TuY7q3VXDae5Sr7zmQb12JU/NDQa/3CH7/QW0yvqLcGN6jL+zQFKaoJcPc+yJxMTGmosqw== +pretty-format@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" + integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== dependencies: - "@jest/types" "^24.8.0" + "@jest/types" "^24.9.0" ansi-regex "^4.0.0" ansi-styles "^3.2.0" react-is "^16.8.4" @@ -9226,7 +9418,7 @@ semver@4.3.2: resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.2.tgz#c7a07158a80bedd052355b770d82d6640f803be7" integrity sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c= -semver@^6.0.0, semver@^6.1.0, semver@^6.1.2, semver@^6.3.0: +semver@^6.0.0, semver@^6.1.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -10769,7 +10961,7 @@ yargs-parser@^13.1.0, yargs-parser@^13.1.1: camelcase "^5.0.0" decamelize "^1.2.0" -yargs@12.0.5, yargs@^12.0.2: +yargs@12.0.5: version "12.0.5" resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== From 9aa2a5320eb1ee6f45581eec0e91362f80ec2aba Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2019 20:08:45 +0900 Subject: [PATCH 16/43] Bump sanitize from 5.0.0 to 5.1.0 (#11786) Bumps [sanitize](https://github.com/rgrove/sanitize) from 5.0.0 to 5.1.0. - [Release notes](https://github.com/rgrove/sanitize/releases) - [Changelog](https://github.com/rgrove/sanitize/blob/master/HISTORY.md) - [Commits](https://github.com/rgrove/sanitize/compare/v5.0.0...v5.1.0) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index fc7160c825..73edb2a6ac 100644 --- a/Gemfile +++ b/Gemfile @@ -77,7 +77,7 @@ gem 'rails-settings-cached', '~> 0.6' gem 'redis', '~> 4.1', require: ['redis', 'redis/connection/hiredis'] gem 'mario-redis-lock', '~> 1.2', require: 'redis_lock' gem 'rqrcode', '~> 0.10' -gem 'sanitize', '~> 5.0' +gem 'sanitize', '~> 5.1' gem 'sidekiq', '~> 5.2' gem 'sidekiq-scheduler', '~> 3.0' gem 'sidekiq-unique-jobs', '~> 6.0' diff --git a/Gemfile.lock b/Gemfile.lock index c0394f247b..f74fb729cc 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -382,7 +382,7 @@ GEM nio4r (2.4.0) nokogiri (1.10.4) mini_portile2 (~> 2.4.0) - nokogumbo (2.0.0) + nokogumbo (2.0.1) nokogiri (~> 1.8, >= 1.8.4) nsa (0.2.7) activesupport (>= 4.2, < 6) @@ -565,7 +565,7 @@ GEM rufus-scheduler (3.5.2) fugit (~> 1.1, >= 1.1.5) safe_yaml (1.0.5) - sanitize (5.0.0) + sanitize (5.1.0) crass (~> 1.0.2) nokogiri (>= 1.8.0) nokogumbo (~> 2.0) @@ -769,7 +769,7 @@ DEPENDENCIES rspec-sidekiq (~> 3.0) rubocop (~> 0.74) rubocop-rails (~> 2.3) - sanitize (~> 5.0) + sanitize (~> 5.1) sidekiq (~> 5.2) sidekiq-bulk (~> 0.2.0) sidekiq-scheduler (~> 3.0) From 7b1b968b73212d2ea4f7820b9b5b70d172d9d8e6 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2019 20:10:17 +0900 Subject: [PATCH 17/43] Bump fastimage from 2.1.5 to 2.1.7 (#11785) Bumps [fastimage](https://github.com/sdsykes/fastimage) from 2.1.5 to 2.1.7. - [Release notes](https://github.com/sdsykes/fastimage/releases) - [Commits](https://github.com/sdsykes/fastimage/compare/v2.1.5...v2.1.7) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index f74fb729cc..b8cdbd1516 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -236,7 +236,7 @@ GEM faraday (0.15.0) multipart-post (>= 1.2, < 3) fast_blank (1.0.0) - fastimage (2.1.5) + fastimage (2.1.7) ffi (1.10.0) fog-core (2.1.0) builder From ec2a439a22bc74d21a99beedde4c0ae25f682d05 Mon Sep 17 00:00:00 2001 From: ThibG Date: Mon, 9 Sep 2019 14:15:52 +0200 Subject: [PATCH 18/43] Add account bio to account admin view (#11473) * Add account bio to account admin view * Change styling to make bio fields / content more readable --- app/javascript/styles/mastodon/admin.scss | 44 +++++++++++++++++++++++ app/lib/formatter.rb | 3 +- app/views/admin/accounts/show.html.haml | 28 +++++++++++++++ 3 files changed, 73 insertions(+), 2 deletions(-) diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss index f625bc1398..5d4fe4ef81 100644 --- a/app/javascript/styles/mastodon/admin.scss +++ b/app/javascript/styles/mastodon/admin.scss @@ -716,3 +716,47 @@ a.name-tag, text-overflow: ellipsis; vertical-align: middle; } + +.admin-account-bio { + display: flex; + flex-wrap: wrap; + margin: 0 -5px; + margin-top: 20px; + + > div { + box-sizing: border-box; + padding: 0 5px; + margin-bottom: 10px; + flex: 1 0 50%; + } + + .account__header__fields, + .account__header__content { + background: lighten($ui-base-color, 8%); + border-radius: 4px; + height: 100%; + } + + .account__header__fields { + margin: 0; + border: 0; + + a { + color: lighten($ui-highlight-color, 8%); + } + + dl:first-child .verified { + border-radius: 0 4px 0 0; + } + + .verified a { + color: $valid-value-color; + } + } + + .account__header__content { + box-sizing: border-box; + padding: 20px; + color: $primary-text-color; + } +} diff --git a/app/lib/formatter.rb b/app/lib/formatter.rb index b5f42305fe..990b9f63ed 100644 --- a/app/lib/formatter.rb +++ b/app/lib/formatter.rb @@ -84,8 +84,7 @@ class Formatter end def format_field(account, str, **options) - return reformat(str).html_safe unless account.local? # rubocop:disable Rails/OutputSafety - html = encode_and_link_urls(str, me: true) + html = account.local? ? encode_and_link_urls(str, me: true) : reformat(str) html = encode_custom_emojis(html, account.emojis, options[:autoplay]) if options[:custom_emojify] html.html_safe # rubocop:disable Rails/OutputSafety end diff --git a/app/views/admin/accounts/show.html.haml b/app/views/admin/accounts/show.html.haml index 59babd3b00..40a936e869 100644 --- a/app/views/admin/accounts/show.html.haml +++ b/app/views/admin/accounts/show.html.haml @@ -3,6 +3,34 @@ = render 'application/card', account: @account +- account = @account +- proofs = account.identity_proofs.active +- fields = account.fields +- unless fields.empty? && proofs.empty? && account.note.blank? + .admin-account-bio + - unless fields.empty? && proofs.empty? + %div + .account__header__fields + - proofs.each do |proof| + %dl + %dt= proof.provider.capitalize + %dd.verified + = link_to fa_icon('check'), proof.badge.proof_url, class: 'verified__mark', title: t('accounts.link_verified_on', date: l(proof.updated_at)) + = link_to proof.provider_username, proof.badge.profile_url + + - fields.each do |field| + %dl + %dt.emojify{ title: field.name }= Formatter.instance.format_field(account, field.name, custom_emojify: true) + %dd{ title: field.value, class: custom_field_classes(field) } + - if field.verified? + %span.verified__mark{ title: t('accounts.link_verified_on', date: l(field.verified_at)) } + = fa_icon 'check' + = Formatter.instance.format_field(account, field.value, custom_emojify: true) + + - if account.note.present? + %div + .account__header__content.emojify= Formatter.instance.simplified_format(account, custom_emojify: true) + .dashboard__counters{ style: 'margin-top: 10px' } %div = link_to admin_account_statuses_path(@account.id) do From 14d4a783cda4dd58e61bace172c3bebbe01d2ece Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 9 Sep 2019 20:42:43 +0200 Subject: [PATCH 19/43] Fix display of instance actor in reports UI (#11798) --- app/views/admin/reports/index.html.haml | 4 +++- app/views/admin/reports/show.html.haml | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/views/admin/reports/index.html.haml b/app/views/admin/reports/index.html.haml index d73faccb0d..bfbd32108e 100644 --- a/app/views/admin/reports/index.html.haml +++ b/app/views/admin/reports/index.html.haml @@ -28,7 +28,9 @@ - reports.each do |report| .report-card__summary__item .report-card__summary__item__reported-by - - if report.account.local? + - if report.account.instance_actor? + = site_hostname + - elsif report.account.local? = admin_account_link_to report.account - else = report.account.domain diff --git a/app/views/admin/reports/show.html.haml b/app/views/admin/reports/show.html.haml index 863dada9e2..bbe83c979a 100644 --- a/app/views/admin/reports/show.html.haml +++ b/app/views/admin/reports/show.html.haml @@ -29,7 +29,9 @@ %td= table_link_to 'file', pluralize(@report.target_account.targeted_moderation_notes.count, t('admin.reports.account.note')), admin_reports_path(target_account_id: @report.target_account.id) %tr %th= t('admin.reports.reported_by') - - if @report.account.local? + - if @report.account.instance_actor? + %td{ colspan: 3 }= site_hostname + - elsif @report.account.local? %td= admin_account_link_to @report.account %td= table_link_to 'flag', pluralize(@report.account.targeted_reports.count, t('admin.reports.account.report')), admin_reports_path(target_account_id: @report.account.id) %td= table_link_to 'file', pluralize(@report.account.targeted_moderation_notes.count, t('admin.reports.account.note')), admin_reports_path(target_account_id: @report.account.id) From 1110ea1a9162d5488e1ed5dbccd0803618e713f8 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 9 Sep 2019 22:44:17 +0200 Subject: [PATCH 20/43] Add batch actions and categories to admin UI for custom emojis (#11793) --- .../admin/custom_emojis_controller.rb | 102 ++++++----------- app/javascript/styles/mastodon/tables.scss | 41 +++++++ app/models/custom_emoji.rb | 6 + app/models/custom_emoji_category.rb | 2 + app/models/custom_emoji_filter.rb | 8 +- app/models/form/custom_emoji_batch.rb | 106 ++++++++++++++++++ .../custom_emojis/_custom_emoji.html.haml | 55 ++++----- app/views/admin/custom_emojis/index.html.haml | 66 ++++++++--- config/locales/en.yml | 3 + config/routes.rb | 8 +- .../admin/custom_emojis_controller_spec.rb | 60 ---------- 11 files changed, 281 insertions(+), 176 deletions(-) create mode 100644 app/models/form/custom_emoji_batch.rb diff --git a/app/controllers/admin/custom_emojis_controller.rb b/app/controllers/admin/custom_emojis_controller.rb index f776991667..2af90f0513 100644 --- a/app/controllers/admin/custom_emojis_controller.rb +++ b/app/controllers/admin/custom_emojis_controller.rb @@ -2,19 +2,20 @@ module Admin class CustomEmojisController < BaseController - before_action :set_custom_emoji, except: [:index, :new, :create] - before_action :set_filter_params - include ObfuscateFilename + obfuscate_filename [:custom_emoji, :image] def index authorize :custom_emoji, :index? + @custom_emojis = filtered_custom_emojis.eager_load(:local_counterpart).page(params[:page]) + @form = Form::CustomEmojiBatch.new end def new authorize :custom_emoji, :create? + @custom_emoji = CustomEmoji.new end @@ -31,69 +32,17 @@ module Admin end end - def update - authorize @custom_emoji, :update? - - if @custom_emoji.update(resource_params) - log_action :update, @custom_emoji - flash[:notice] = I18n.t('admin.custom_emojis.updated_msg') - else - flash[:alert] = I18n.t('admin.custom_emojis.update_failed_msg') - end - redirect_to admin_custom_emojis_path(page: params[:page], **@filter_params) - end - - def destroy - authorize @custom_emoji, :destroy? - @custom_emoji.destroy! - log_action :destroy, @custom_emoji - flash[:notice] = I18n.t('admin.custom_emojis.destroyed_msg') - redirect_to admin_custom_emojis_path(page: params[:page], **@filter_params) - end - - def copy - authorize @custom_emoji, :copy? - - emoji = CustomEmoji.find_or_initialize_by(domain: nil, - shortcode: @custom_emoji.shortcode) - emoji.image = @custom_emoji.image - - if emoji.save - log_action :create, emoji - flash[:notice] = I18n.t('admin.custom_emojis.copied_msg') - else - flash[:alert] = I18n.t('admin.custom_emojis.copy_failed_msg') - end - - redirect_to admin_custom_emojis_path(page: params[:page], **@filter_params) - end - - def enable - authorize @custom_emoji, :enable? - @custom_emoji.update!(disabled: false) - log_action :enable, @custom_emoji - flash[:notice] = I18n.t('admin.custom_emojis.enabled_msg') - redirect_to admin_custom_emojis_path(page: params[:page], **@filter_params) - end - - def disable - authorize @custom_emoji, :disable? - @custom_emoji.update!(disabled: true) - log_action :disable, @custom_emoji - flash[:notice] = I18n.t('admin.custom_emojis.disabled_msg') - redirect_to admin_custom_emojis_path(page: params[:page], **@filter_params) + def batch + @form = Form::CustomEmojiBatch.new(form_custom_emoji_batch_params.merge(current_account: current_account, action: action_from_button)) + @form.save + rescue ActionController::ParameterMissing + flash[:alert] = I18n.t('admin.accounts.no_account_selected') + ensure + redirect_to admin_custom_emojis_path(filter_params) end private - def set_custom_emoji - @custom_emoji = CustomEmoji.find(params[:id]) - end - - def set_filter_params - @filter_params = filter_params.to_hash.symbolize_keys - end - def resource_params params.require(:custom_emoji).permit(:shortcode, :image, :visible_in_picker) end @@ -103,12 +52,29 @@ module Admin end def filter_params - params.permit( - :local, - :remote, - :by_domain, - :shortcode - ) + params.slice(:local, :remote, :by_domain, :shortcode, :page).permit(:local, :remote, :by_domain, :shortcode, :page) + end + + def action_from_button + if params[:update] + 'update' + elsif params[:list] + 'list' + elsif params[:unlist] + 'unlist' + elsif params[:enable] + 'enable' + elsif params[:disable] + 'disable' + elsif params[:copy] + 'copy' + elsif params[:delete] + 'delete' + end + end + + def form_custom_emoji_batch_params + params.require(:form_custom_emoji_batch).permit(:action, :category_id, :category_name, custom_emoji_ids: []) end end end diff --git a/app/javascript/styles/mastodon/tables.scss b/app/javascript/styles/mastodon/tables.scss index 2aef099e6a..d6403986fa 100644 --- a/app/javascript/styles/mastodon/tables.scss +++ b/app/javascript/styles/mastodon/tables.scss @@ -180,6 +180,18 @@ a.table-action-link { } } + &__form { + padding: 16px; + border: 1px solid darken($ui-base-color, 8%); + border-top: 0; + background: $ui-base-color; + + .fields-row { + padding-top: 0; + margin-bottom: 0; + } + } + &__row { border: 1px solid darken($ui-base-color, 8%); border-top: 0; @@ -210,6 +222,35 @@ a.table-action-link { &--unpadded { padding: 0; } + + &--with-image { + display: flex; + align-items: center; + } + + &__image { + flex: 0 0 auto; + display: flex; + justify-content: center; + align-items: center; + margin-right: 10px; + + .emojione { + width: 32px; + height: 32px; + } + } + + &__text { + flex: 1 1 auto; + } + + &__extra { + flex: 0 0 auto; + text-align: right; + color: $darker-text-color; + font-weight: 500; + } } .directory__tag { diff --git a/app/models/custom_emoji.rb b/app/models/custom_emoji.rb index b21ad9042a..0a4201a14b 100644 --- a/app/models/custom_emoji.rb +++ b/app/models/custom_emoji.rb @@ -59,6 +59,12 @@ class CustomEmoji < ApplicationRecord :emoji end + def copy! + copy = self.class.find_or_initialize_by(domain: nil, shortcode: shortcode) + copy.image = image + copy.save! + end + class << self def from_text(text, domain) return [] if text.blank? diff --git a/app/models/custom_emoji_category.rb b/app/models/custom_emoji_category.rb index 7d8c0ee2de..3c87f2b2e5 100644 --- a/app/models/custom_emoji_category.rb +++ b/app/models/custom_emoji_category.rb @@ -12,4 +12,6 @@ class CustomEmojiCategory < ApplicationRecord has_many :emojis, class_name: 'CustomEmoji', foreign_key: 'category_id', inverse_of: :category + + validates :name, presence: true, uniqueness: true end diff --git a/app/models/custom_emoji_filter.rb b/app/models/custom_emoji_filter.rb index 7649055d28..15b8da1d12 100644 --- a/app/models/custom_emoji_filter.rb +++ b/app/models/custom_emoji_filter.rb @@ -11,6 +11,8 @@ class CustomEmojiFilter scope = CustomEmoji.alphabetic params.each do |key, value| + next if key.to_s == 'page' + scope.merge!(scope_for(key, value)) if value.present? end @@ -22,13 +24,13 @@ class CustomEmojiFilter def scope_for(key, value) case key.to_s when 'local' - CustomEmoji.local + CustomEmoji.local.left_joins(:category).reorder(Arel.sql('custom_emoji_categories.name ASC NULLS FIRST, custom_emojis.shortcode ASC')) when 'remote' CustomEmoji.remote when 'by_domain' - CustomEmoji.where(domain: value.downcase) + CustomEmoji.where(domain: value.strip.downcase) when 'shortcode' - CustomEmoji.search(value) + CustomEmoji.search(value.strip) else raise "Unknown filter: #{key}" end diff --git a/app/models/form/custom_emoji_batch.rb b/app/models/form/custom_emoji_batch.rb new file mode 100644 index 0000000000..076e8c9e39 --- /dev/null +++ b/app/models/form/custom_emoji_batch.rb @@ -0,0 +1,106 @@ +# frozen_string_literal: true + +class Form::CustomEmojiBatch + include ActiveModel::Model + include Authorization + include AccountableConcern + + attr_accessor :custom_emoji_ids, :action, :current_account, + :category_id, :category_name, :visible_in_picker + + def save + case action + when 'update' + update! + when 'list' + list! + when 'unlist' + unlist! + when 'enable' + enable! + when 'disable' + disable! + when 'copy' + copy! + when 'delete' + delete! + end + end + + private + + def custom_emojis + CustomEmoji.where(id: custom_emoji_ids) + end + + def update! + custom_emojis.each { |custom_emoji| authorize(custom_emoji, :update?) } + + category = begin + if category_id.present? + CustomEmojiCategory.find(category_id) + elsif category_name.present? + CustomEmojiCategory.create!(name: category_name) + end + end + + custom_emojis.each do |custom_emoji| + custom_emoji.update(category_id: category&.id) + log_action :update, custom_emoji + end + end + + def list! + custom_emojis.each { |custom_emoji| authorize(custom_emoji, :update?) } + + custom_emojis.each do |custom_emoji| + custom_emoji.update(visible_in_picker: true) + log_action :update, custom_emoji + end + end + + def unlist! + custom_emojis.each { |custom_emoji| authorize(custom_emoji, :update?) } + + custom_emojis.each do |custom_emoji| + custom_emoji.update(visible_in_picker: false) + log_action :update, custom_emoji + end + end + + def enable! + custom_emojis.each { |custom_emoji| authorize(custom_emoji, :enable?) } + + custom_emojis.each do |custom_emoji| + custom_emoji.update(disabled: false) + log_action :enable, custom_emoji + end + end + + def disable! + custom_emojis.each { |custom_emoji| authorize(custom_emoji, :disable?) } + + custom_emojis.each do |custom_emoji| + custom_emoji.update(disabled: true) + log_action :disable, custom_emoji + end + end + + def copy! + custom_emojis.each { |custom_emoji| authorize(custom_emoji, :copy?) } + + custom_emojis.each do |custom_emoji| + copied_custom_emoji = custom_emoji.copy! + log_action :create, copied_custom_emoji + end + end + + def delete! + custom_emojis.each { |custom_emoji| authorize(custom_emoji, :destroy?) } + + custom_emojis.each do |custom_emoji| + custom_emoji.destroy + log_action :destroy, custom_emoji + end + end +end diff --git a/app/views/admin/custom_emojis/_custom_emoji.html.haml b/app/views/admin/custom_emojis/_custom_emoji.html.haml index fbaa9a1749..9e06a3b424 100644 --- a/app/views/admin/custom_emojis/_custom_emoji.html.haml +++ b/app/views/admin/custom_emojis/_custom_emoji.html.haml @@ -1,28 +1,31 @@ -%tr - %td - = custom_emoji_tag(custom_emoji) - %td - %samp= ":#{custom_emoji.shortcode}:" - %td - - if custom_emoji.local? - = t('admin.accounts.location.local') - - else - = link_to custom_emoji.domain, admin_custom_emojis_path(by_domain: custom_emoji.domain) - %td - - if custom_emoji.local? - - if custom_emoji.visible_in_picker - = table_link_to 'eye', t('admin.custom_emojis.listed'), admin_custom_emoji_path(custom_emoji, custom_emoji: { visible_in_picker: false }, page: params[:page], **@filter_params), method: :patch +.batch-table__row + %label.batch-table__row__select.batch-table__row__select--aligned.batch-checkbox + = f.check_box :custom_emoji_ids, { multiple: true, include_hidden: false }, custom_emoji.id + .batch-table__row__content.batch-table__row__content--with-image + .batch-table__row__content__image + = custom_emoji_tag(custom_emoji) + + .batch-table__row__content__text + %samp= ":#{custom_emoji.shortcode}:" + + - if custom_emoji.local? + %span.account-role.bot= custom_emoji.category&.name || t('admin.custom_emojis.uncategorized') + + .batch-table__row__content__extra + - if custom_emoji.local? + = t('admin.accounts.location.local') - else - = table_link_to 'eye-slash', t('admin.custom_emojis.unlisted'), admin_custom_emoji_path(custom_emoji, custom_emoji: { visible_in_picker: true }, page: params[:page], **@filter_params), method: :patch - - else - - if custom_emoji.local_counterpart.present? - = link_to safe_join([custom_emoji_tag(custom_emoji.local_counterpart), t('admin.custom_emojis.overwrite')]), copy_admin_custom_emoji_path(custom_emoji, page: params[:page], **@filter_params), method: :post, class: 'table-action-link' + = custom_emoji.domain + + %br/ + + - if custom_emoji.disabled? + = t('admin.custom_emojis.disabled') - else - = table_link_to 'copy', t('admin.custom_emojis.copy'), copy_admin_custom_emoji_path(custom_emoji, page: params[:page], **@filter_params), method: :post - %td - - if custom_emoji.disabled? - = table_link_to 'power-off', t('admin.custom_emojis.enable'), enable_admin_custom_emoji_path(custom_emoji, page: params[:page], **@filter_params), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } - - else - = table_link_to 'power-off', t('admin.custom_emojis.disable'), disable_admin_custom_emoji_path(custom_emoji, page: params[:page], **@filter_params), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } - %td - = table_link_to 'times', t('admin.custom_emojis.delete'), admin_custom_emoji_path(custom_emoji, page: params[:page], **@filter_params), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') } + = t('admin.custom_emojis.enabled') + - if custom_emoji.local? + • + - if custom_emoji.visible_in_picker? + = t('admin.custom_emojis.listed') + - else + = t('admin.custom_emojis.unlisted') diff --git a/app/views/admin/custom_emojis/index.html.haml b/app/views/admin/custom_emojis/index.html.haml index 3a119276ca..7320ce1bbd 100644 --- a/app/views/admin/custom_emojis/index.html.haml +++ b/app/views/admin/custom_emojis/index.html.haml @@ -1,6 +1,9 @@ - content_for :page_title do = t('admin.custom_emojis.title') +- content_for :header_tags do + = javascript_pack_tag 'admin', integrity: true, async: true, crossorigin: 'anonymous' + .filters .filter-subset %strong= t('admin.accounts.location.title') @@ -20,8 +23,7 @@ = form_tag admin_custom_emojis_url, method: 'GET', class: 'simple_form' do .fields-group - Admin::FilterHelper::CUSTOM_EMOJI_FILTERS.each do |key| - - if params[key].present? - = hidden_field_tag key, params[key] + = hidden_field_tag key, params[key] if params[key].present? - %i(shortcode by_domain).each do |key| .input.string.optional @@ -31,18 +33,54 @@ %button= t('admin.accounts.search') = link_to t('admin.accounts.reset'), admin_custom_emojis_path, class: 'button negative' -.table-wrapper - %table.table - %thead - %tr - %th= t('admin.custom_emojis.emoji') - %th= t('admin.custom_emojis.shortcode') - %th= t('admin.accounts.domain') - %th - %th - %th - %tbody - = render @custom_emojis += form_for(@form, url: batch_admin_custom_emojis_path) do |f| + = hidden_field_tag :page, params[:page] || 1 + + - Admin::FilterHelper::CUSTOM_EMOJI_FILTERS.each do |key| + = hidden_field_tag key, params[key] if params[key].present? + + .batch-table + .batch-table__toolbar + %label.batch-table__toolbar__select.batch-checkbox-all + = check_box_tag :batch_checkbox_all, nil, false + .batch-table__toolbar__actions + - if params[:local] == '1' + = f.button safe_join([fa_icon('save'), t('generic.save_changes')]), name: :update, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + + = f.button safe_join([fa_icon('eye'), t('admin.custom_emojis.list')]), name: :list, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + + = f.button safe_join([fa_icon('eye-slash'), t('admin.custom_emojis.unlist')]), name: :unlist, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + + = f.button safe_join([fa_icon('power-off'), t('admin.custom_emojis.enable')]), name: :enable, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + + = f.button safe_join([fa_icon('power-off'), t('admin.custom_emojis.disable')]), name: :disable, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + + = f.button safe_join([fa_icon('times'), t('admin.custom_emojis.delete')]), name: :delete, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + + - unless params[:local] == '1' + = f.button safe_join([fa_icon('copy'), t('admin.custom_emojis.copy')]), name: :copy, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + + - if params[:local] == '1' + .batch-table__form.simple_form + .fields-row + .fields-group.fields-row__column.fields-row__column-6 + .input.select.optional + .label_input + = f.select :category_id, options_from_collection_for_select(CustomEmojiCategory.all, 'id', 'name'), prompt: t('admin.custom_emojis.assign_category'), class: 'select optional', 'aria-label': t('admin.custom_emojis.assign_category') + + .fields-group.fields-row__column.fields-row__column-6 + .input.string.optional + .label_input + = f.text_field :category_name, class: 'string optional', placeholder: t('admin.custom_emojis.create_new_category'), 'aria-label': t('admin.custom_emojis.create_new_category') + + .batch-table__body + - if @custom_emojis.empty? + = nothing_here 'nothing-here--under-tabs' + - else + = render partial: 'custom_emoji', collection: @custom_emojis, locals: { f: f } = paginate @custom_emojis + +%hr.spacer/ + = link_to t('admin.custom_emojis.upload'), new_admin_custom_emoji_path, class: 'button' diff --git a/config/locales/en.yml b/config/locales/en.yml index 42d8e0eb8b..52cb4a2692 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -225,10 +225,12 @@ en: deleted_status: "(deleted status)" title: Audit log custom_emojis: + assign_category: Assign category by_domain: Domain copied_msg: Successfully created local copy of the emoji copy: Copy copy_failed_msg: Could not make a local copy of that emoji + create_new_category: Create new category created_msg: Emoji successfully created! delete: Delete destroyed_msg: Emojo successfully destroyed! @@ -245,6 +247,7 @@ en: shortcode: Shortcode shortcode_hint: At least 2 characters, only alphanumeric characters and underscores title: Custom emojis + uncategorized: Uncategorized unlisted: Unlisted update_failed_msg: Could not update that emoji updated_msg: Emoji successfully updated! diff --git a/config/routes.rb b/config/routes.rb index 534e68814a..d22a9e56a9 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -242,11 +242,9 @@ Rails.application.routes.draw do resource :two_factor_authentication, only: [:destroy] end - resources :custom_emojis, only: [:index, :new, :create, :update, :destroy] do - member do - post :copy - post :enable - post :disable + resources :custom_emojis, only: [:index, :new, :create] do + collection do + post :batch end end diff --git a/spec/controllers/admin/custom_emojis_controller_spec.rb b/spec/controllers/admin/custom_emojis_controller_spec.rb index b7e2894e90..a8d96948ca 100644 --- a/spec/controllers/admin/custom_emojis_controller_spec.rb +++ b/spec/controllers/admin/custom_emojis_controller_spec.rb @@ -52,64 +52,4 @@ describe Admin::CustomEmojisController do end end end - - describe 'PUT #update' do - let(:custom_emoji) { Fabricate(:custom_emoji, shortcode: 'test') } - let(:image) { fixture_file_upload(Rails.root.join('spec', 'fixtures', 'files', 'emojo.png'), 'image/png') } - - before do - put :update, params: { id: custom_emoji.id, custom_emoji: params } - end - - context 'when parameter is valid' do - let(:params) { { shortcode: 'updated', image: image } } - - it 'succeeds in updating custom emoji' do - expect(flash[:notice]).to eq I18n.t('admin.custom_emojis.updated_msg') - expect(custom_emoji.reload).to have_attributes(shortcode: 'updated') - end - end - - context 'when parameter is invalid' do - let(:params) { { shortcode: 'u', image: image } } - - it 'fails to update custom emoji' do - expect(flash[:alert]).to eq I18n.t('admin.custom_emojis.update_failed_msg') - expect(custom_emoji.reload).to have_attributes(shortcode: 'test') - end - end - end - - describe 'POST #copy' do - subject { post :copy, params: { id: custom_emoji.id } } - - let(:custom_emoji) { Fabricate(:custom_emoji, shortcode: 'test') } - - it 'copies custom emoji' do - expect { subject }.to change { CustomEmoji.where(shortcode: 'test').count }.by(1) - expect(flash[:notice]).to eq I18n.t('admin.custom_emojis.copied_msg') - end - end - - describe 'POST #enable' do - let(:custom_emoji) { Fabricate(:custom_emoji, shortcode: 'test', disabled: true) } - - before { post :enable, params: { id: custom_emoji.id } } - - it 'enables custom emoji' do - expect(response).to redirect_to admin_custom_emojis_path - expect(custom_emoji.reload).to have_attributes(disabled: false) - end - end - - describe 'POST #disable' do - let(:custom_emoji) { Fabricate(:custom_emoji, shortcode: 'test', disabled: false) } - - before { post :disable, params: { id: custom_emoji.id } } - - it 'enables custom emoji' do - expect(response).to redirect_to admin_custom_emojis_path - expect(custom_emoji.reload).to have_attributes(disabled: true) - end - end end From 0005635f96f69ae282c2b2e53e438aa7e4f2d581 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 10 Sep 2019 12:43:06 +0200 Subject: [PATCH 21/43] New Crowdin translations (#11626) * New translations en.yml (Chinese Simplified) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations en.json (Greek) [ci skip] * New translations simple_form.en.yml (Greek) [ci skip] * New translations en.json (Greek) [ci skip] * New translations en.json (Esperanto) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations simple_form.en.yml (Esperanto) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations simple_form.en.yml (Esperanto) [ci skip] * New translations en.json (Thai) [ci skip] * New translations en.json (Thai) [ci skip] * New translations simple_form.en.yml (Thai) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations en.json (Persian) [ci skip] * New translations en.json (Persian) [ci skip] * New translations en.yml (Persian) [ci skip] * New translations en.json (Persian) [ci skip] * New translations en.yml (Persian) [ci skip] * New translations en.yml (Persian) [ci skip] * New translations en.yml (Persian) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations doorkeeper.en.yml (Turkish) [ci skip] * New translations activerecord.en.yml (Turkish) [ci skip] * New translations doorkeeper.en.yml (Turkish) [ci skip] * New translations devise.en.yml (Turkish) [ci skip] * New translations simple_form.en.yml (Turkish) [ci skip] * New translations devise.en.yml (Turkish) [ci skip] * New translations simple_form.en.yml (Turkish) [ci skip] * New translations simple_form.en.yml (Turkish) [ci skip] * New translations simple_form.en.yml (Turkish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations doorkeeper.en.yml (Turkish) [ci skip] * New translations devise.en.yml (Turkish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.json (Czech) [ci skip] * New translations en.json (Estonian) [ci skip] * New translations en.json (Dutch) [ci skip] * New translations en.json (Italian) [ci skip] * New translations en.json (Indonesian) [ci skip] * New translations en.json (Ido) [ci skip] * New translations en.json (Hungarian) [ci skip] * New translations en.json (Hebrew) [ci skip] * New translations en.json (Greek) [ci skip] * New translations en.json (German) [ci skip] * New translations en.json (Georgian) [ci skip] * New translations en.json (Galician) [ci skip] * New translations en.json (French) [ci skip] * New translations en.json (Finnish) [ci skip] * New translations en.json (Esperanto) [ci skip] * New translations en.json (Danish) [ci skip] * New translations en.json (Croatian) [ci skip] * New translations en.json (Corsican) [ci skip] * New translations en.json (Chinese Traditional, Hong Kong) [ci skip] * New translations en.json (Chinese Traditional) [ci skip] * New translations en.json (Chinese Simplified) [ci skip] * New translations en.json (Catalan) [ci skip] * New translations en.json (Bulgarian) [ci skip] * New translations en.json (Bengali) [ci skip] * New translations en.json (Basque) [ci skip] * New translations en.json (Asturian) [ci skip] * New translations en.json (Armenian) [ci skip] * New translations en.json (Arabic) [ci skip] * New translations en.json (Albanian) [ci skip] * New translations en.json (Kazakh) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.json (Spanish) [ci skip] * New translations en.json (Occitan) [ci skip] * New translations en.json (Persian) [ci skip] * New translations en.json (Polish) [ci skip] * New translations en.json (Portuguese) [ci skip] * New translations en.json (Portuguese, Brazilian) [ci skip] * New translations en.json (Romanian) [ci skip] * New translations en.json (Russian) [ci skip] * New translations en.json (Serbian (Cyrillic)) [ci skip] * New translations en.json (Serbian (Latin)) [ci skip] * New translations en.json (Slovak) [ci skip] * New translations en.json (Slovenian) [ci skip] * New translations en.json (Swedish) [ci skip] * New translations en.json (Malay) [ci skip] * New translations en.json (Tamil) [ci skip] * New translations en.json (Telugu) [ci skip] * New translations en.json (Thai) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.json (Ukrainian) [ci skip] * New translations en.json (Welsh) [ci skip] * New translations en.json (Norwegian) [ci skip] * New translations en.json (Lithuanian) [ci skip] * New translations en.json (Latvian) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.json (Czech) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations simple_form.en.yml (Japanese) [ci skip] * New translations en.json (Japanese) [ci skip] * New translations en.json (Slovak) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations activerecord.en.yml (Bulgarian) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.json (Esperanto) [ci skip] * New translations en.json (Korean) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations simple_form.en.yml (Esperanto) [ci skip] * New translations simple_form.en.yml (Korean) [ci skip] * New translations en.json (Danish) [ci skip] * New translations en.json (Danish) [ci skip] * New translations en.json (Slovak) [ci skip] * New translations en.yml (Danish) [ci skip] * New translations en.yml (Danish) [ci skip] * New translations en.json (Danish) [ci skip] * New translations en.yml (Danish) [ci skip] * New translations en.json (Greek) [ci skip] * New translations en.json (Greek) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations en.json (Basque) [ci skip] * New translations en.yml (Basque) [ci skip] * New translations en.yml (Estonian) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.yml (Russian) [ci skip] * New translations en.yml (Korean) [ci skip] * New translations en.yml (Lithuanian) [ci skip] * New translations en.yml (Norwegian) [ci skip] * New translations en.yml (Occitan) [ci skip] * New translations en.yml (Persian) [ci skip] * New translations en.yml (Polish) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations en.yml (Romanian) [ci skip] * New translations en.yml (Serbian (Cyrillic)) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Serbian (Latin)) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations en.yml (Slovenian) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations en.yml (Welsh) [ci skip] * New translations en.yml (Kazakh) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations en.yml (Albanian) [ci skip] * New translations en.yml (Arabic) [ci skip] * New translations en.yml (Basque) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations en.yml (Chinese Traditional) [ci skip] * New translations en.yml (Chinese Traditional, Hong Kong) [ci skip] * New translations en.yml (Corsican) [ci skip] * New translations en.yml (Danish) [ci skip] * New translations en.yml (Dutch) [ci skip] * New translations en.yml (Esperanto) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Georgian) [ci skip] * New translations en.yml (German) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations en.yml (Danish) [ci skip] * New translations en.yml (Danish) [ci skip] * New translations en.yml (Danish) [ci skip] * New translations en.json (Arabic) [ci skip] * New translations en.yml (Arabic) [ci skip] * New translations en.yml (Arabic) [ci skip] * New translations en.json (Arabic) [ci skip] * New translations en.yml (Arabic) [ci skip] * New translations en.json (Arabic) [ci skip] * New translations en.yml (Corsican) [ci skip] * New translations en.json (Corsican) [ci skip] * New translations en.yml (Corsican) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.json (German) [ci skip] * New translations en.yml (German) [ci skip] * New translations en.yml (German) [ci skip] * New translations simple_form.en.yml (German) [ci skip] * New translations en.json (German) [ci skip] * New translations en.json (German) [ci skip] * New translations en.json (Slovak) [ci skip] * New translations en.yml (German) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations simple_form.en.yml (German) [ci skip] * New translations activerecord.en.yml (German) [ci skip] * New translations devise.en.yml (German) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations simple_form.en.yml (French) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.json (Ukrainian) [ci skip] * New translations en.json (Ukrainian) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations en.json (Ukrainian) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations simple_form.en.yml (Ukrainian) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations en.json (Slovak) [ci skip] * New translations en.json (French) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations en.json (Ukrainian) [ci skip] * New translations en.json (Ukrainian) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations en.json (Ukrainian) [ci skip] * New translations simple_form.en.yml (Ukrainian) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations simple_form.en.yml (Ukrainian) [ci skip] * New translations simple_form.en.yml (Ukrainian) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations simple_form.en.yml (Ukrainian) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations en.yml (Ukrainian) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.json (Turkish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Corsican) [ci skip] * New translations en.yml (Corsican) [ci skip] * New translations en.json (Galician) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations simple_form.en.yml (Galician) [ci skip] * i18n-tasks normalize * yarn manage:translations --- app/javascript/mastodon/locales/ar.json | 57 +-- app/javascript/mastodon/locales/ast.json | 17 +- app/javascript/mastodon/locales/bg.json | 15 +- app/javascript/mastodon/locales/bn.json | 15 +- app/javascript/mastodon/locales/ca.json | 37 +- app/javascript/mastodon/locales/co.json | 21 +- app/javascript/mastodon/locales/cs.json | 37 +- app/javascript/mastodon/locales/cy.json | 15 +- app/javascript/mastodon/locales/da.json | 213 ++++++----- app/javascript/mastodon/locales/de.json | 19 +- .../mastodon/locales/defaultMessages.json | 13 + app/javascript/mastodon/locales/el.json | 45 ++- app/javascript/mastodon/locales/eo.json | 29 +- app/javascript/mastodon/locales/es.json | 17 +- app/javascript/mastodon/locales/et.json | 17 +- app/javascript/mastodon/locales/eu.json | 33 +- app/javascript/mastodon/locales/fa.json | 47 ++- app/javascript/mastodon/locales/fi.json | 15 +- app/javascript/mastodon/locales/fr.json | 57 +-- app/javascript/mastodon/locales/gl.json | 37 +- app/javascript/mastodon/locales/he.json | 15 +- app/javascript/mastodon/locales/hi.json | 15 +- app/javascript/mastodon/locales/hr.json | 15 +- app/javascript/mastodon/locales/hu.json | 17 +- app/javascript/mastodon/locales/hy.json | 15 +- app/javascript/mastodon/locales/id.json | 15 +- app/javascript/mastodon/locales/io.json | 15 +- app/javascript/mastodon/locales/it.json | 31 +- app/javascript/mastodon/locales/ja.json | 19 +- app/javascript/mastodon/locales/ka.json | 15 +- app/javascript/mastodon/locales/kk.json | 15 +- app/javascript/mastodon/locales/ko.json | 19 +- app/javascript/mastodon/locales/lt.json | 17 +- app/javascript/mastodon/locales/lv.json | 15 +- app/javascript/mastodon/locales/ms.json | 17 +- app/javascript/mastodon/locales/nl.json | 35 +- app/javascript/mastodon/locales/no.json | 15 +- app/javascript/mastodon/locales/oc.json | 17 +- app/javascript/mastodon/locales/pl.json | 17 +- app/javascript/mastodon/locales/pt-BR.json | 15 +- app/javascript/mastodon/locales/pt.json | 15 +- app/javascript/mastodon/locales/ro.json | 15 +- app/javascript/mastodon/locales/ru.json | 17 +- app/javascript/mastodon/locales/sk.json | 29 +- app/javascript/mastodon/locales/sl.json | 17 +- app/javascript/mastodon/locales/sq.json | 15 +- app/javascript/mastodon/locales/sr-Latn.json | 15 +- app/javascript/mastodon/locales/sr.json | 15 +- app/javascript/mastodon/locales/sv.json | 17 +- app/javascript/mastodon/locales/ta.json | 15 +- app/javascript/mastodon/locales/te.json | 15 +- app/javascript/mastodon/locales/th.json | 33 +- app/javascript/mastodon/locales/tr.json | 119 +++--- app/javascript/mastodon/locales/uk.json | 39 +- app/javascript/mastodon/locales/zh-CN.json | 39 +- app/javascript/mastodon/locales/zh-HK.json | 15 +- app/javascript/mastodon/locales/zh-TW.json | 15 +- config/locales/activerecord.bg.yml | 6 + config/locales/activerecord.da.yml | 4 + config/locales/activerecord.tr.yml | 4 + config/locales/ar.yml | 44 ++- config/locales/ast.yml | 7 +- config/locales/bg.yml | 3 + config/locales/bn.yml | 3 + config/locales/ca.yml | 83 +++- config/locales/co.yml | 37 +- config/locales/cs.yml | 105 ++++- config/locales/cy.yml | 16 +- config/locales/da.yml | 125 +++++- config/locales/de.yml | 37 +- config/locales/devise.da.yml | 5 +- config/locales/devise.fr.yml | 2 +- config/locales/devise.tr.yml | 60 +++ config/locales/doorkeeper.ar.yml | 5 + config/locales/doorkeeper.da.yml | 7 + config/locales/doorkeeper.fr.yml | 6 + config/locales/doorkeeper.tr.yml | 89 +++++ config/locales/el.yml | 75 +++- config/locales/eo.yml | 44 ++- config/locales/es.yml | 12 +- config/locales/et.yml | 12 +- config/locales/eu.yml | 22 +- config/locales/fa.yml | 74 +++- config/locales/fi.yml | 6 +- config/locales/fr.yml | 95 ++++- config/locales/gl.yml | 79 +++- config/locales/he.yml | 3 + config/locales/hr.yml | 3 + config/locales/hu.yml | 12 +- config/locales/hy.yml | 3 + config/locales/id.yml | 3 + config/locales/io.yml | 3 + config/locales/it.yml | 68 +++- config/locales/ja.yml | 47 ++- config/locales/ka.yml | 6 +- config/locales/kk.yml | 12 +- config/locales/ko.yml | 15 +- config/locales/lt.yml | 9 +- config/locales/lv.yml | 3 + config/locales/ms.yml | 3 + config/locales/nl.yml | 66 +++- config/locales/no.yml | 6 +- config/locales/oc.yml | 12 +- config/locales/pl.yml | 18 +- config/locales/pt-BR.yml | 12 +- config/locales/pt.yml | 14 +- config/locales/ro.yml | 9 +- config/locales/ru.yml | 24 +- config/locales/simple_form.ar.yml | 4 + config/locales/simple_form.ca.yml | 11 +- config/locales/simple_form.co.yml | 5 +- config/locales/simple_form.cs.yml | 15 +- config/locales/simple_form.cy.yml | 1 - config/locales/simple_form.da.yml | 9 + config/locales/simple_form.de.yml | 5 +- config/locales/simple_form.el.yml | 5 +- config/locales/simple_form.eo.yml | 6 +- config/locales/simple_form.es.yml | 1 - config/locales/simple_form.et.yml | 1 - config/locales/simple_form.eu.yml | 1 - config/locales/simple_form.fa.yml | 1 - config/locales/simple_form.fr.yml | 19 +- config/locales/simple_form.gl.yml | 9 +- config/locales/simple_form.hu.yml | 1 - config/locales/simple_form.it.yml | 7 +- config/locales/simple_form.ja.yml | 7 +- config/locales/simple_form.ko.yml | 5 +- config/locales/simple_form.nl.yml | 4 +- config/locales/simple_form.oc.yml | 1 - config/locales/simple_form.pl.yml | 1 - config/locales/simple_form.pt-BR.yml | 1 - config/locales/simple_form.pt.yml | 1 - config/locales/simple_form.ro.yml | 1 - config/locales/simple_form.ru.yml | 1 - config/locales/simple_form.sk.yml | 4 +- config/locales/simple_form.sl.yml | 1 - config/locales/simple_form.sq.yml | 1 - config/locales/simple_form.sr.yml | 1 - config/locales/simple_form.th.yml | 4 +- config/locales/simple_form.tr.yml | 76 ++++ config/locales/simple_form.uk.yml | 8 +- config/locales/simple_form.zh-CN.yml | 1 - config/locales/simple_form.zh-TW.yml | 1 - config/locales/sk.yml | 49 ++- config/locales/sl.yml | 14 +- config/locales/sq.yml | 9 +- config/locales/sr-Latn.yml | 6 +- config/locales/sr.yml | 11 +- config/locales/sv.yml | 6 +- config/locales/ta.yml | 3 + config/locales/te.yml | 3 + config/locales/th.yml | 5 +- config/locales/tr.yml | 362 +++++++++++++++++- config/locales/uk.yml | 55 ++- config/locales/zh-CN.yml | 23 +- config/locales/zh-HK.yml | 6 +- config/locales/zh-TW.yml | 6 +- 157 files changed, 2889 insertions(+), 862 deletions(-) diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index e7a21523a4..6424cd1a79 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -4,11 +4,11 @@ "account.block": "حظر @{name}", "account.block_domain": "إخفاء كل شيئ قادم من اسم النطاق {domain}", "account.blocked": "محظور", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "إلغاء طلب المتابَعة", "account.direct": "رسالة خاصة إلى @{name}", "account.domain_blocked": "النطاق مخفي", "account.edit_profile": "تعديل الملف الشخصي", - "account.endorse": "خاصّية على الملف الشخصي", + "account.endorse": "أوصِ به على صفحتك", "account.follow": "تابِع", "account.followers": "متابعون", "account.followers.empty": "لا أحد يتبع هذا الحساب بعد.", @@ -16,29 +16,33 @@ "account.follows.empty": "هذا الحساب لا يتبع أحدًا بعد.", "account.follows_you": "يتابعك", "account.hide_reblogs": "إخفاء ترقيات @{name}", + "account.last_status": "آخر نشاط", "account.link_verified_on": "تم التحقق مِن مِلْكية هذا الرابط بتاريخ {date}", "account.locked_info": "تم تأمين خصوصية هذا الحساب عبر قفل. صاحب الحساب يُراجِع يدويا طلبات المتابَعة و الاشتراك بحسابه.", "account.media": "وسائط", - "account.mention": "أُذكُر/ي @{name}", + "account.mention": "أذكُر @{name}", "account.moved_to": "{name} انتقل إلى:", - "account.mute": "كتم @{name}", + "account.mute": "أكتم @{name}", "account.mute_notifications": "كتم الإخطارات من @{name}", "account.muted": "مكتوم", - "account.posts": "التبويقات", + "account.never_active": "أبدا", + "account.posts": "تبويقات", "account.posts_with_replies": "التبويقات و الردود", - "account.report": "أبلغ/ي عن @{name}", + "account.report": "ابلِغ عن @{name}", "account.requested": "في انتظار الموافقة. اضْغَطْ/ي لإلغاء طلب المتابعة", "account.share": "مشاركة حساب @{name}", - "account.show_reblogs": "عرض ترقيات @{name}", + "account.show_reblogs": "اعرض ترقيات @{name}", "account.unblock": "إلغاء الحظر عن @{name}", "account.unblock_domain": "فك الخْفى عن {domain}", - "account.unendorse": "إزالة ترويجه مِن الملف الشخصي", + "account.unendorse": "أزل ترويجه مِن الملف الشخصي", "account.unfollow": "إلغاء المتابعة", "account.unmute": "إلغاء الكتم عن @{name}", "account.unmute_notifications": "إلغاء كتم إخطارات @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "لقد طرأ هناك خطأ غير متوقّع.", "alert.unexpected.title": "المعذرة!", - "autosuggest_hashtag.per_week": "{count} per week", + "autosuggest_hashtag.per_week": "{count} في الأسبوع", "boost_modal.combo": "يمكنك/ي ضغط {combo} لتخطّي هذه في المرّة القادمة", "bundle_column_error.body": "لقد وقع هناك خطأ أثناء عملية تحميل هذا العنصر.", "bundle_column_error.retry": "إعادة المحاولة", @@ -49,6 +53,7 @@ "column.blocks": "الحسابات المحجوبة", "column.community": "الخيط العام المحلي", "column.direct": "الرسائل المباشرة", + "column.directory": "Browse profiles", "column.domain_blocks": "النطاقات المخفية", "column.favourites": "المفضلة", "column.follow_requests": "طلبات المتابعة", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "هل تود حقا حذف هذه القائمة ؟", "confirmations.domain_block.confirm": "إخفاء اسم النطاق كاملا", "confirmations.domain_block.message": "متأكد من أنك تود حظر اسم النطاق {domain} بالكامل ؟ في غالب الأحيان يُستَحسَن كتم أو حظر بعض الحسابات بدلا من حظر نطاق بالكامل.\nلن تتمكن مِن رؤية محتوى هذا النطاق لا على خيوطك العمومية و لا في إشعاراتك. سوف يتم كذلك إزالة كافة متابعيك المنتمين إلى هذا النطاق.", + "confirmations.logout.confirm": "خروج", + "confirmations.logout.message": "متأكد من أنك تريد الخروج؟", "confirmations.mute.confirm": "أكتم", "confirmations.mute.message": "هل أنت متأكد أنك تريد كتم {name} ؟", "confirmations.redraft.confirm": "إزالة و إعادة الصياغة", @@ -103,6 +110,10 @@ "confirmations.reply.message": "الرد في الحين سوف يُعيد كتابة الرسالة التي أنت بصدد كتابتها. متأكد من أنك تريد المواصلة؟", "confirmations.unfollow.confirm": "إلغاء المتابعة", "confirmations.unfollow.message": "متأكد من أنك تريد إلغاء متابعة {name} ؟", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "يمكنكم إدماج هذا المنشور على موقعكم الإلكتروني عن طريق نسخ الشفرة أدناه.", "embed.preview": "هكذا ما سوف يبدو عليه:", "emoji_button.activity": "الأنشطة", @@ -118,7 +129,7 @@ "emoji_button.search": "ابحث...", "emoji_button.search_results": "نتائج البحث", "emoji_button.symbols": "رموز", - "emoji_button.travel": "أماكن و أسفار", + "emoji_button.travel": "الأماكن والسفر", "empty_column.account_timeline": "ليس هناك تبويقات!", "empty_column.account_unavailable": "الملف الشخصي غير متوفر", "empty_column.blocks": "لم تقم بحظر أي مستخدِم بعد.", @@ -155,10 +166,10 @@ "hashtag.column_settings.tag_mode.any": "أي كان مِن هذه", "hashtag.column_settings.tag_mode.none": "لا شيء مِن هذه", "hashtag.column_settings.tag_toggle": "إدراج الوسوم الإضافية لهذا العمود", - "home.column_settings.basic": "أساسية", + "home.column_settings.basic": "الأساسية", "home.column_settings.show_reblogs": "عرض الترقيات", - "home.column_settings.show_replies": "عرض الردود", - "home.column_settings.update_live": "تحديث في الوقت الحالي", + "home.column_settings.show_replies": "اعرض الردود", + "home.column_settings.update_live": "Update in real-time", "intervals.full.days": "{number, plural, one {# يوم} other {# أيام}}", "intervals.full.hours": "{number, plural, one {# ساعة} other {# ساعات}}", "intervals.full.minutes": "{number, plural, one {# دقيقة} other {# دقائق}}", @@ -218,7 +229,7 @@ "lists.account.add": "أضف إلى القائمة", "lists.account.remove": "احذف من القائمة", "lists.delete": "احذف القائمة", - "lists.edit": "تعديل القائمة", + "lists.edit": "عدّل القائمة", "lists.edit.submit": "تعديل العنوان", "lists.new.create": "إنشاء قائمة", "lists.new.title_placeholder": "عنوان القائمة الجديدة", @@ -227,7 +238,7 @@ "load_pending": "{count, plural, one {# new item} other {# new items}}", "loading_indicator.label": "تحميل...", "media_gallery.toggle_visible": "عرض / إخفاء", - "missing_indicator.label": "تعذر العثور عليه", + "missing_indicator.label": "غير موجود", "missing_indicator.sublabel": "تعذر العثور على هذا المورد", "mute_modal.hide_notifications": "هل تود إخفاء الإخطارات القادمة من هذا المستخدم ؟", "navigation_bar.apps": "تطبيقات الأجهزة المحمولة", @@ -250,7 +261,6 @@ "navigation_bar.personal": "شخصي", "navigation_bar.pins": "التبويقات المثبتة", "navigation_bar.preferences": "التفضيلات", - "navigation_bar.profile_directory": "دليل المستخدِمين", "navigation_bar.public_timeline": "الخيط العام الموحد", "navigation_bar.security": "الأمان", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -263,9 +273,9 @@ "notifications.clear_confirmation": "أمتأكد من أنك تود مسح جل الإخطارات الخاصة بك و المتلقاة إلى حد الآن ؟", "notifications.column_settings.alert": "إشعارات سطح المكتب", "notifications.column_settings.favourite": "المُفَضَّلة:", - "notifications.column_settings.filter_bar.advanced": "عرض كافة الفئات", + "notifications.column_settings.filter_bar.advanced": "اعرض كافة الفئات", "notifications.column_settings.filter_bar.category": "شريط الفلترة السريعة", - "notifications.column_settings.filter_bar.show": "عرض", + "notifications.column_settings.filter_bar.show": "اعرض", "notifications.column_settings.follow": "متابعُون جُدُد:", "notifications.column_settings.mention": "الإشارات:", "notifications.column_settings.poll": "نتائج استطلاع الرأي:", @@ -358,6 +368,7 @@ "status.show_more": "أظهر المزيد", "status.show_more_all": "توسيع الكل", "status.show_thread": "الكشف عن المحادثة", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "فك الكتم عن المحادثة", "status.unpin": "فك التدبيس من الملف الشخصي", "suggestions.dismiss": "إلغاء الاقتراح", @@ -373,20 +384,20 @@ "time_remaining.moments": "لحظات متبقية", "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", "trends.count_by_accounts": "{count} {rawCount, plural, one {person} آخرون {people}} يتحدثون", - "trends.refresh": "Refresh", + "trends.trending_now": "المتداولة الآن", "ui.beforeunload": "سوف تفقد مسودتك إن تركت ماستدون.", "upload_area.title": "اسحب ثم أفلت للرفع", "upload_button.label": "إضافة وسائط ({formats})", "upload_error.limit": "لقد تم بلوغ الحد الأقصى المسموح به لإرسال الملفات.", "upload_error.poll": "لا يمكن إدراج ملفات في استطلاعات الرأي.", "upload_form.description": "وصف للمعاقين بصريا", - "upload_form.edit": "Edit", + "upload_form.edit": "تعديل", "upload_form.undo": "حذف", - "upload_modal.analyzing_picture": "Analyzing picture…", - "upload_modal.apply": "Apply", + "upload_modal.analyzing_picture": "جارٍ فحص الصورة…", + "upload_modal.apply": "طبّق", "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", "upload_modal.detect_text": "Detect text from picture", - "upload_modal.edit_media": "Edit media", + "upload_modal.edit_media": "تعديل الوسائط", "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.", "upload_modal.preview_label": "Preview ({ratio})", "upload_progress.label": "يرفع...", diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json index c9b5d6061c..ef17d6d64f 100644 --- a/app/javascript/mastodon/locales/ast.json +++ b/app/javascript/mastodon/locales/ast.json @@ -16,6 +16,7 @@ "account.follows.empty": "Esti usuariu entá nun sigue a naide.", "account.follows_you": "Síguete", "account.hide_reblogs": "Hide boosts from @{name}", + "account.last_status": "Last active", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "Media", @@ -24,10 +25,11 @@ "account.mute": "Silenciar a @{name}", "account.mute_notifications": "Mute notifications from @{name}", "account.muted": "Muted", + "account.never_active": "Never", "account.posts": "Toots", "account.posts_with_replies": "Toots y rempuestes", "account.report": "Report @{name}", - "account.requested": "Awaiting approval. Click to cancel follow request", + "account.requested": "Awaiting approval", "account.share": "Share @{name}'s profile", "account.show_reblogs": "Show boosts from @{name}", "account.unblock": "Desbloquiar a @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "Unfollow", "account.unmute": "Unmute @{name}", "account.unmute_notifications": "Unmute notifications from @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Asocedió un fallu inesperáu.", "alert.unexpected.title": "¡Ups!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "Usuarios bloquiaos", "column.community": "Llinia temporal llocal", "column.direct": "Mensaxes direutos", + "column.directory": "Browse profiles", "column.domain_blocks": "Dominios anubríos", "column.favourites": "Favoritos", "column.follow_requests": "Solicitúes de siguimientu", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "¿De xuru que quies desaniciar dafechu esta llista?", "confirmations.domain_block.confirm": "Anubrir tol dominiu", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Mute", "confirmations.mute.message": "¿De xuru que quies silenciar a {name}?", "confirmations.redraft.confirm": "Desaniciar y reeditar", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.unfollow.confirm": "Unfollow", "confirmations.unfollow.message": "¿De xuru que quies dexar de siguir a {name}?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Empotra esti estáu nun sitiu web copiando'l códigu d'embaxo.", "embed.preview": "Asina ye como va vese:", "emoji_button.activity": "Actividaes", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Personal", "navigation_bar.pins": "Toots fixaos", "navigation_bar.preferences": "Preferencies", - "navigation_bar.profile_directory": "Profile directory", "navigation_bar.public_timeline": "Llinia temporal federada", "navigation_bar.security": "Seguranza", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Amosar más", "status.show_more_all": "Show more for all", "status.show_thread": "Show thread", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Desfixar del perfil", "suggestions.dismiss": "Dismiss suggestion", @@ -373,7 +384,7 @@ "time_remaining.moments": "Moments remaining", "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "El borrador va perdese si coles de Mastodon.", "upload_area.title": "Drag & drop to upload", "upload_button.label": "Add media", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index 3cb5900f4c..b0954f1990 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -16,6 +16,7 @@ "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "Твой последовател", "account.hide_reblogs": "Hide boosts from @{name}", + "account.last_status": "Last active", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "Media", @@ -24,6 +25,7 @@ "account.mute": "Mute @{name}", "account.mute_notifications": "Mute notifications from @{name}", "account.muted": "Muted", + "account.never_active": "Never", "account.posts": "Публикации", "account.posts_with_replies": "Toots with replies", "account.report": "Report @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "Не следвай", "account.unmute": "Unmute @{name}", "account.unmute_notifications": "Unmute notifications from @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "An unexpected error occurred.", "alert.unexpected.title": "Oops!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "Blocked users", "column.community": "Local timeline", "column.direct": "Direct messages", + "column.directory": "Browse profiles", "column.domain_blocks": "Hidden domains", "column.favourites": "Favourites", "column.follow_requests": "Follow requests", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?", "confirmations.domain_block.confirm": "Hide entire domain", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Mute", "confirmations.mute.message": "Are you sure you want to mute {name}?", "confirmations.redraft.confirm": "Delete & redraft", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.unfollow.confirm": "Unfollow", "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Personal", "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Предпочитания", - "navigation_bar.profile_directory": "Profile directory", "navigation_bar.public_timeline": "Публичен канал", "navigation_bar.security": "Security", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Show more", "status.show_more_all": "Show more for all", "status.show_thread": "Show thread", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", "suggestions.dismiss": "Dismiss suggestion", @@ -373,7 +384,7 @@ "time_remaining.moments": "Moments remaining", "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", "upload_area.title": "Drag & drop to upload", "upload_button.label": "Добави медия", diff --git a/app/javascript/mastodon/locales/bn.json b/app/javascript/mastodon/locales/bn.json index ee79b0eddf..241b43573a 100644 --- a/app/javascript/mastodon/locales/bn.json +++ b/app/javascript/mastodon/locales/bn.json @@ -16,6 +16,7 @@ "account.follows.empty": "এই ব্যবহারকারী কাওকে এখনো অনুসরণ করেন না।", "account.follows_you": "আপনাকে অনুসরণ করে", "account.hide_reblogs": "@{name}র সমর্থনগুলি সরিয়ে ফেলুন", + "account.last_status": "Last active", "account.link_verified_on": "এই লিংকের মালিকানা চেক করা হয়েছে {date} তারিকে", "account.locked_info": "এই নিবন্ধনের গোপনীয়তার ক্ষেত্র তালা দেওয়া আছে। নিবন্ধনকারী অনুসরণ করার অনুমতি যাদেরকে দেবেন, শুধু তারাই অনুসরণ করতে পারবেন।", "account.media": "ছবি বা ভিডিও", @@ -24,6 +25,7 @@ "account.mute": "@{name} সব কার্যক্রম আপনার সময়রেখা থেকে সরিয়ে ফেলতে", "account.mute_notifications": "@{name}র প্রজ্ঞাপন আপনার কাছ থেকে সরিয়ে ফেলুন", "account.muted": "সরানো আছে", + "account.never_active": "Never", "account.posts": "টুট", "account.posts_with_replies": "টুট এবং মতামত", "account.report": "@{name} কে রিপোর্ট করতে", @@ -36,6 +38,8 @@ "account.unfollow": "অনুসরণ না করতে", "account.unmute": "@{name}র কার্যকলাপ আবার দেখুন", "account.unmute_notifications": "@{name}র প্রজ্ঞাপন দেওয়ার অনুমতি দিন", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "অপ্রত্যাশিত একটি সমস্যা হয়েছে।", "alert.unexpected.title": "ওহো!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "যাদের বন্ধ করে রাখা হয়েছে", "column.community": "স্থানীয় সময়সারি", "column.direct": "সরাসরি লেখা", + "column.directory": "Browse profiles", "column.domain_blocks": "সরিয়ে ফেলা ওয়েবসাইট", "column.favourites": "পছন্দের গুলো", "column.follow_requests": "অনুসরণের অনুমতি চেয়েছে যারা", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "আপনি কি নিশ্চিত যে আপনি এই তালিকাটি স্থায়িভাবে মুছে ফেলতে চান ?", "confirmations.domain_block.confirm": "এই ওয়েবসাইট থেকে সব সরান", "confirmations.domain_block.message": "আপনি কি সত্যি সত্যি নিশ্চিত যে {domain} ওয়েবসাইট থেকে সব সরাতে চান ? সাধারণত কিছু লক্ষ্যবস্তু বন্ধ এবং সরানোযা যথেষ্ট। নিশ্চিত করলে ওই ওয়েবসাইট থেকে কোনোকিছু কোনখানে দেখবেন না। যারা আপনাকে অনুসরণ করে ওই ওয়েবসাইট থেকে তাদেরকেও মুছে ফেলা হবে।", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "সরিয়ে ফেলুন", "confirmations.mute.message": "আপনি কি নিশ্চিত {name} সরিয়ে ফেলতে চান ?", "confirmations.redraft.confirm": "মুছে ফেলুন এবং আবার সম্পাদন করুন", @@ -103,6 +110,10 @@ "confirmations.reply.message": "এখন মতামত লিখতে গেলে আপনার এখন যেটা লিখছেন সেটা মুছে যাবে। আপনি নি নিশ্চিত এটা করতে চান ?", "confirmations.unfollow.confirm": "অনুসরণ করা বাতিল করতে", "confirmations.unfollow.message": "আপনি কি নিশ্চিত {name} কে আর অনুসরণ করতে চান না ?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "এই লেখাটি আপনার ওয়েবসাইটে যুক্ত করতে নিচের কোডটি বেবহার করুন।", "embed.preview": "সেটা দেখতে এরকম হবে:", "emoji_button.activity": "কার্যকলাপ", @@ -250,7 +261,6 @@ "navigation_bar.personal": "নিজস্ব", "navigation_bar.pins": "পিন দেওয়া টুট", "navigation_bar.preferences": "পছন্দসমূহ", - "navigation_bar.profile_directory": "নিজস্ব পাতার তালিকা", "navigation_bar.public_timeline": "যুক্তবিশ্বের সময়রেখা", "navigation_bar.security": "নিরাপত্তা", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "আরো দেখাতে", "status.show_more_all": "সবগুলোতে আরো দেখতে", "status.show_thread": "আলোচনা দেখতে", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "আলোচনার প্রজ্ঞাপন চালু করতে", "status.unpin": "নিজের পাতা থেকে পিন করে রাখাটির পিন খুলতে", "suggestions.dismiss": "সাহায্যের পরামর্শগুলো সরাতে", @@ -373,7 +384,7 @@ "time_remaining.moments": "সময় বাকি আছে", "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} বাকি আছে", "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} কথা বলছে", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "যে পর্যন্ত এটা লেখা হয়েছে, মাস্টাডন থেকে চলে গেলে এটা মুছে যাবে।", "upload_area.title": "টেনে এখানে ছেড়ে দিলে এখানে যুক্ত করা যাবে", "upload_button.label": "ছবি বা ভিডিও যুক্ত করতে (এসব ধরণের: JPEG, PNG, GIF, WebM, MP4, MOV)", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 4554ff04e8..4554500f5d 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -4,7 +4,7 @@ "account.block": "Bloqueja @{name}", "account.block_domain": "Amaga-ho tot de {domain}", "account.blocked": "Bloquejat", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "Anul·la la sol·licitud de seguiment", "account.direct": "Missatge directe @{name}", "account.domain_blocked": "Domini ocult", "account.edit_profile": "Editar el perfil", @@ -16,6 +16,7 @@ "account.follows.empty": "Aquest usuari encara no segueix a ningú.", "account.follows_you": "Et segueix", "account.hide_reblogs": "Amaga els impulsos de @{name}", + "account.last_status": "Last active", "account.link_verified_on": "La propietat d'aquest enllaç es va verificar el dia {date}", "account.locked_info": "Aquest estat de privadesa del compte està definit com a bloquejat. El propietari revisa manualment qui pot seguir-lo.", "account.media": "Mèdia", @@ -24,6 +25,7 @@ "account.mute": "Silencia @{name}", "account.mute_notifications": "Notificacions desactivades de @{name}", "account.muted": "Silenciat", + "account.never_active": "Never", "account.posts": "Toots", "account.posts_with_replies": "Toots i respostes", "account.report": "Informe @{name}", @@ -36,9 +38,11 @@ "account.unfollow": "Deixa de seguir", "account.unmute": "Treure silenci de @{name}", "account.unmute_notifications": "Activar notificacions de @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "S'ha produït un error inesperat.", "alert.unexpected.title": "Vaja!", - "autosuggest_hashtag.per_week": "{count} per week", + "autosuggest_hashtag.per_week": "{count} per setmana", "boost_modal.combo": "Pots premer {combo} per saltar-te això el proper cop", "bundle_column_error.body": "S'ha produït un error en carregar aquest component.", "bundle_column_error.retry": "Torna-ho a provar", @@ -49,6 +53,7 @@ "column.blocks": "Usuaris bloquejats", "column.community": "Línia de temps local", "column.direct": "Missatges directes", + "column.directory": "Browse profiles", "column.domain_blocks": "Dominis ocults", "column.favourites": "Favorits", "column.follow_requests": "Peticions per seguir-te", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Estàs segur que vols suprimir permanentment aquesta llista?", "confirmations.domain_block.confirm": "Amaga tot el domini", "confirmations.domain_block.message": "Estàs segur, realment segur que vols bloquejar totalment {domain}? En la majoria dels casos bloquejar o silenciar uns pocs objectius és suficient i preferible. No veuràs contingut d’aquest domini en cap de les línies públiques ni en les notificacions. Els teus seguidors d’aquest domini seran eliminats.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Silencia", "confirmations.mute.message": "Estàs segur que vols silenciar {name}?", "confirmations.redraft.confirm": "Esborrar i refer", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Responen ara es sobreescriurà el missatge que estàs editant. Estàs segur que vols continuar?", "confirmations.unfollow.confirm": "Deixa de seguir", "confirmations.unfollow.message": "Estàs segur que vols deixar de seguir {name}?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Incrusta aquest toot al lloc web copiant el codi a continuació.", "embed.preview": "Aquí tenim quin aspecte tindrá:", "emoji_button.activity": "Activitat", @@ -158,7 +169,7 @@ "home.column_settings.basic": "Bàsic", "home.column_settings.show_reblogs": "Mostrar impulsos", "home.column_settings.show_replies": "Mostrar respostes", - "home.column_settings.update_live": "Actualització en temps real", + "home.column_settings.update_live": "Update in real-time", "intervals.full.days": "{number, plural, one {# dia} other {# dies}}", "intervals.full.hours": "{number, plural, one {# hora} other {# hores}}", "intervals.full.minutes": "{number, plural, one {# minut} other {# minuts}}", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Personal", "navigation_bar.pins": "Toots fixats", "navigation_bar.preferences": "Preferències", - "navigation_bar.profile_directory": "Directori de perfils", "navigation_bar.public_timeline": "Línia de temps federada", "navigation_bar.security": "Seguretat", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Mostra més", "status.show_more_all": "Mostra més per a tot", "status.show_thread": "Mostra el fil", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Activar conversació", "status.unpin": "Deslliga del perfil", "suggestions.dismiss": "Descartar suggeriment", @@ -373,22 +384,22 @@ "time_remaining.moments": "Moments restants", "time_remaining.seconds": "{number, plural, one {# segon} other {# segons}} restants", "trends.count_by_accounts": "{count} {rawCount, plural, one {persona} other {gent}} talking", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "El teu esborrany es perdrà si surts de Mastodon.", "upload_area.title": "Arrossega i deixa anar per a carregar", "upload_button.label": "Afegir multimèdia (JPEG, PNG, GIF, WebM, MP4, MOV)", "upload_error.limit": "S'ha superat el límit de càrrega d'arxius.", "upload_error.poll": "No es permet l'enviament de fitxers en les enquestes.", "upload_form.description": "Descriure els problemes visuals", - "upload_form.edit": "Edit", + "upload_form.edit": "Edita", "upload_form.undo": "Esborra", - "upload_modal.analyzing_picture": "Analyzing picture…", - "upload_modal.apply": "Apply", - "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", - "upload_modal.detect_text": "Detect text from picture", - "upload_modal.edit_media": "Edit media", - "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.", - "upload_modal.preview_label": "Preview ({ratio})", + "upload_modal.analyzing_picture": "Analitzant imatge…", + "upload_modal.apply": "Aplica", + "upload_modal.description_placeholder": "Uns salts ràpids de guineu marró sobre el gos gandul", + "upload_modal.detect_text": "Detecta el text de l'imatge", + "upload_modal.edit_media": "Editar multimèdia", + "upload_modal.hint": "Fes clic o arrossega el cercle en la previsualització per escollir el punt focal que sempre serà visible de totes les miniatures.", + "upload_modal.preview_label": "Previsualitza ({ratio})", "upload_progress.label": "Pujant...", "video.close": "Tancar el vídeo", "video.exit_fullscreen": "Sortir de pantalla completa", diff --git a/app/javascript/mastodon/locales/co.json b/app/javascript/mastodon/locales/co.json index 428c993a6a..b54857e369 100644 --- a/app/javascript/mastodon/locales/co.json +++ b/app/javascript/mastodon/locales/co.json @@ -16,6 +16,7 @@ "account.follows.empty": "St'utilizatore ùn seguita nisunu.", "account.follows_you": "Vi seguita", "account.hide_reblogs": "Piattà spartere da @{name}", + "account.last_status": "Ultima attività", "account.link_verified_on": "A prupietà di stu ligame hè stata verificata u {date}", "account.locked_info": "U statutu di vita privata di u contu hè chjosu. U pruprietariu esamina manualmente e dumande d'abbunamentu.", "account.media": "Media", @@ -24,6 +25,7 @@ "account.mute": "Piattà @{name}", "account.mute_notifications": "Piattà nutificazione da @{name}", "account.muted": "Piattatu", + "account.never_active": "Mai", "account.posts": "Statuti", "account.posts_with_replies": "Statuti è risposte", "account.report": "Palisà @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "Ùn siguità più", "account.unmute": "Ùn piattà più @{name}", "account.unmute_notifications": "Ùn piattà più nutificazione da @{name}", + "alert.rate_limited.message": "Pruvate ancu dop'à {retry_time, time, medium}.", + "alert.rate_limited.title": "Ghjettu limitatu", "alert.unexpected.message": "Un prublemu inaspettatu hè accadutu.", "alert.unexpected.title": "Uups!", "autosuggest_hashtag.per_week": "{count} per settimana", @@ -49,6 +53,7 @@ "column.blocks": "Utilizatori bluccati", "column.community": "Linea pubblica lucale", "column.direct": "Missaghji diretti", + "column.directory": "Percorre i prufili", "column.domain_blocks": "Duminii piattati", "column.favourites": "Favuriti", "column.follow_requests": "Dumande d'abbunamentu", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Site sicuru·a che vulete supprime sta lista?", "confirmations.domain_block.confirm": "Piattà tuttu u duminiu", "confirmations.domain_block.message": "Site sicuru·a che vulete piattà tuttu à {domain}? Saria forse abbastanza di bluccà ò piattà alcuni conti da quallà. Ùn viderete più nunda da quallà indè e linee pubbliche o e nutificazione. I vostri abbunati da stu duminiu saranu tolti.", + "confirmations.logout.confirm": "Scunnettassi", + "confirmations.logout.message": "Site sicuru·a che vulete scunnettà vi?", "confirmations.mute.confirm": "Piattà", "confirmations.mute.message": "Site sicuru·a che vulete piattà @{name}?", "confirmations.redraft.confirm": "Sguassà è riscrive", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Risponde avà sguasserà u missaghju chì scrivite. Site sicuru·a chì vulete cuntinuà?", "confirmations.unfollow.confirm": "Disabbunassi", "confirmations.unfollow.message": "Site sicuru·a ch'ùn vulete più siguità @{name}?", + "directory.federated": "Da u fediverse cunisciutu", + "directory.local": "Solu da {domain}", + "directory.new_arrivals": "Ultimi arrivi", + "directory.recently_active": "Attività ricente", "embed.instructions": "Integrà stu statutu à u vostru situ cù u codice quì sottu.", "embed.preview": "Assumiglierà à qualcosa cusì:", "emoji_button.activity": "Attività", @@ -158,7 +169,7 @@ "home.column_settings.basic": "Bàsichi", "home.column_settings.show_reblogs": "Vede e spartere", "home.column_settings.show_replies": "Vede e risposte", - "home.column_settings.update_live": "Mette à ghjornu in tempu reale", + "home.column_settings.update_live": "Update in real-time", "intervals.full.days": "{number, plural, one {# ghjornu} other {# ghjorni}}", "intervals.full.hours": "{number, plural, one {# ora} other {# ore}}", "intervals.full.minutes": "{number, plural, one {# minuta} other {# minute}}", @@ -250,10 +261,9 @@ "navigation_bar.personal": "Persunale", "navigation_bar.pins": "Statuti puntarulati", "navigation_bar.preferences": "Preferenze", - "navigation_bar.profile_directory": "Annuariu di i prufili", "navigation_bar.public_timeline": "Linea pubblica glubale", "navigation_bar.security": "Sicurità", - "notification.and_n_others": "è {count, plural, one {# altru} other {# altri}}", + "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", "notification.favourite": "{name} hà aghjuntu u vostru statutu à i so favuriti", "notification.follow": "{name} v'hà seguitatu", "notification.mention": "{name} v'hà mintuvatu", @@ -358,6 +368,7 @@ "status.show_more": "Slibrà", "status.show_more_all": "Slibrà tuttu", "status.show_thread": "Vede u filu", + "status.uncached_media_warning": "Micca dispunibule", "status.unmute_conversation": "Ùn piattà più a cunversazione", "status.unpin": "Spuntarulà da u prufile", "suggestions.dismiss": "Righjittà a pruposta", @@ -373,7 +384,7 @@ "time_remaining.moments": "Ci fermanu qualchi mumentu", "time_remaining.seconds": "{number, plural, one {# siconda ferma} other {# siconde fermanu}}", "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} parlanu", - "trends.refresh": "Attualizà", + "trends.trending_now": "Tindenze d'avà", "ui.beforeunload": "A bruttacopia sarà persa s'ellu hè chjosu Mastodon.", "upload_area.title": "Drag & drop per caricà un fugliale", "upload_button.label": "Aghjunghje un media (JPEG, PNG, GIF, WebM, MP4, MOV)", @@ -384,7 +395,7 @@ "upload_form.undo": "Sguassà", "upload_modal.analyzing_picture": "Analisi di u ritrattu…", "upload_modal.apply": "Affettà", - "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", + "upload_modal.description_placeholder": "Chì tempi brevi ziu, quandu solfeghji", "upload_modal.detect_text": "Ditettà testu da u ritrattu", "upload_modal.edit_media": "Cambià media", "upload_modal.hint": "Cliccate o sguillate u chjerchju nant'à a vista per sceglie u puntu fucale chì sarà sempre in vista indè tutte e miniature.", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index 46a57b3b82..b3d1e81577 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -4,7 +4,7 @@ "account.block": "Zablokovat uživatele @{name}", "account.block_domain": "Skrýt vše z {domain}", "account.blocked": "Blokován/a", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "Zrušit požadavek o sledování", "account.direct": "Poslat přímou zprávu uživateli @{name}", "account.domain_blocked": "Doména skryta", "account.edit_profile": "Upravit profil", @@ -16,6 +16,7 @@ "account.follows.empty": "Tento uživatel ještě nikoho nesleduje.", "account.follows_you": "Sleduje vás", "account.hide_reblogs": "Skrýt boosty od uživatele @{name}", + "account.last_status": "Naposledy aktivní", "account.link_verified_on": "Vlastnictví tohoto odkazu bylo zkontrolováno {date}", "account.locked_info": "Stav soukromí tohoto účtu je nastaven na zamčeno. Jeho vlastník ručně posuzuje, kdo ho může sledovat.", "account.media": "Média", @@ -24,6 +25,7 @@ "account.mute": "Skrýt uživatele @{name}", "account.mute_notifications": "Skrýt oznámení od uživatele @{name}", "account.muted": "Skryt/a", + "account.never_active": "Nikdy", "account.posts": "Tooty", "account.posts_with_replies": "Tooty a odpovědi", "account.report": "Nahlásit uživatele @{name}", @@ -36,9 +38,11 @@ "account.unfollow": "Přestat sledovat", "account.unmute": "Odkrýt uživatele @{name}", "account.unmute_notifications": "Odkrýt oznámení od uživatele @{name}", + "alert.rate_limited.message": "Prosím zkuste to znovu za {retry_time, time, medium}.", + "alert.rate_limited.title": "Rychlost omezena", "alert.unexpected.message": "Objevila se neočekávaná chyba.", "alert.unexpected.title": "Jejda!", - "autosuggest_hashtag.per_week": "{count} per week", + "autosuggest_hashtag.per_week": "{count} za týden", "boost_modal.combo": "Příště můžete pro přeskočení kliknout na {combo}", "bundle_column_error.body": "Při načítání tohoto komponentu se něco pokazilo.", "bundle_column_error.retry": "Zkuste to znovu", @@ -49,6 +53,7 @@ "column.blocks": "Blokovaní uživatelé", "column.community": "Místní časová osa", "column.direct": "Přímé zprávy", + "column.directory": "Prozkoumat profily", "column.domain_blocks": "Skryté domény", "column.favourites": "Oblíbené", "column.follow_requests": "Požadavky o sledování", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Jste si jistý/á, že chcete tento seznam navždy smazat?", "confirmations.domain_block.confirm": "Skrýt celou doménu", "confirmations.domain_block.message": "Jste si opravdu, opravdu jistý/á, že chcete blokovat celou doménu {domain}? Ve většině případů stačí zablokovat nebo skrýt pár konkrétních uživatelů, což se doporučuje. Z této domény neuvidíte obsah v žádné veřejné časové ose ani v oznámeních. Vaši sledující z této domény budou odstraněni.", + "confirmations.logout.confirm": "Odhlásit", + "confirmations.logout.message": "Jste si jistý/á, že se chcete odhlásit?", "confirmations.mute.confirm": "Skrýt", "confirmations.mute.message": "Jste si jistý/á, že chcete skrýt uživatele {name}?", "confirmations.redraft.confirm": "Smazat a přepsat", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Odpovězením nyní přepíšete zprávu, kterou aktuálně píšete. Jste si jistý/á, že chcete pokračovat?", "confirmations.unfollow.confirm": "Přestat sledovat", "confirmations.unfollow.message": "jste si jistý/á, že chcete přestat sledovat uživatele {name}?", + "directory.federated": "Ze známého fedivesmíru", + "directory.local": "Pouze z {domain}", + "directory.new_arrivals": "Nově příchozí", + "directory.recently_active": "Nedávno aktivní", "embed.instructions": "Pro přidání tootu na vaši webovou stránku zkopírujte níže uvedený kód.", "embed.preview": "Takhle to bude vypadat:", "emoji_button.activity": "Aktivita", @@ -158,7 +169,7 @@ "home.column_settings.basic": "Základní", "home.column_settings.show_reblogs": "Zobrazit boosty", "home.column_settings.show_replies": "Zobrazit odpovědi", - "home.column_settings.update_live": "Aktualizovat v reálném čase", + "home.column_settings.update_live": "Update in real-time", "intervals.full.days": "{number, plural, one {# den} few {# dny} many {# dne} other {# dní}}", "intervals.full.hours": "{number, plural, one {# hodina} few {# hodiny} many {# hodiny} other {# hodin}}", "intervals.full.minutes": "{number, plural, one {# minuta} few {# minuty} many {# minuty} other {# minut}}", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Osobní", "navigation_bar.pins": "Připnuté tooty", "navigation_bar.preferences": "Předvolby", - "navigation_bar.profile_directory": "Adresář profilů", "navigation_bar.public_timeline": "Federovaná časová osa", "navigation_bar.security": "Zabezpečení", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Zobrazit více", "status.show_more_all": "Zobrazit více pro všechny", "status.show_thread": "Zobrazit vlákno", + "status.uncached_media_warning": "Nedostupné", "status.unmute_conversation": "Odkrýt konverzaci", "status.unpin": "Odepnout z profilu", "suggestions.dismiss": "Odmítnout návrh", @@ -373,22 +384,22 @@ "time_remaining.moments": "Zbývá několik sekund", "time_remaining.seconds": "{number, plural, one {Zbývá # sekunda} few {Zbývají # sekundy} many {Zbývá # sekundy} other {Zbývá # sekund}}", "trends.count_by_accounts": "{count} {rawCount, plural, one {člověk} few {lidé} many {lidí} other {lidí}} hovoří", - "trends.refresh": "Refresh", + "trends.trending_now": "Aktuální trendy", "ui.beforeunload": "Váš koncept se ztratí, pokud Mastodon opustíte.", "upload_area.title": "Přetažením nahrajete", "upload_button.label": "Přidat média (JPEG, PNG, GIF, WebM, MP4, MOV)", "upload_error.limit": "Byl překročen limit nahraných souborů.", "upload_error.poll": "Nahrávání souborů není povoleno u anket.", "upload_form.description": "Popis pro zrakově postižené", - "upload_form.edit": "Edit", + "upload_form.edit": "Upravit", "upload_form.undo": "Smazat", - "upload_modal.analyzing_picture": "Analyzing picture…", - "upload_modal.apply": "Apply", - "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", - "upload_modal.detect_text": "Detect text from picture", - "upload_modal.edit_media": "Edit media", - "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.", - "upload_modal.preview_label": "Preview ({ratio})", + "upload_modal.analyzing_picture": "Analyzuji obrázek…", + "upload_modal.apply": "Použít", + "upload_modal.description_placeholder": "Příliš žluťoučký kůň úpěl ďábelské ódy", + "upload_modal.detect_text": "Detekovat text z obrázku", + "upload_modal.edit_media": "Upravit média", + "upload_modal.hint": "Kliknutím na nebo přetáhnutím kruhu na náhledu vyberte bod soustředění, který bude vždy zobrazen na všech náhledech.", + "upload_modal.preview_label": "Náhled ({ratio})", "upload_progress.label": "Nahrávám…", "video.close": "Zavřít video", "video.exit_fullscreen": "Ukončit celou obrazovku", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index 0bd6f19d2c..bc65d601e3 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -16,6 +16,7 @@ "account.follows.empty": "Nid yw'r defnyddiwr hwn yn dilyn unrhyw un eto.", "account.follows_you": "Yn eich dilyn chi", "account.hide_reblogs": "Cuddio bwstiau o @{name}", + "account.last_status": "Last active", "account.link_verified_on": "Gwiriwyd perchnogaeth y ddolen yma ar {date}", "account.locked_info": "Mae'r statws preifatrwydd cyfrif hwn wedi'i osod i gloi. Mae'r perchennog yn adolygu'r sawl sy'n gallu eu dilyn.", "account.media": "Cyfryngau", @@ -24,6 +25,7 @@ "account.mute": "Tawelu @{name}", "account.mute_notifications": "Cuddio hysbysiadau o @{name}", "account.muted": "Distewyd", + "account.never_active": "Never", "account.posts": "Tŵtiau", "account.posts_with_replies": "Tŵtiau ac atebion", "account.report": "Adrodd @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "Dad-ddilyn", "account.unmute": "Dad-dawelu @{name}", "account.unmute_notifications": "Dad-dawelu hysbysiadau o @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Digwyddodd gwall annisgwyl.", "alert.unexpected.title": "Wps!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "Defnyddwyr a flociwyd", "column.community": "Ffrwd lleol", "column.direct": "Negeseuon preifat", + "column.directory": "Browse profiles", "column.domain_blocks": "Parthau cuddiedig", "column.favourites": "Ffefrynnau", "column.follow_requests": "Ceisiadau dilyn", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Ydych chi'n sicr eich bod eisiau dileu y rhestr hwn am byth?", "confirmations.domain_block.confirm": "Cuddio parth cyfan", "confirmations.domain_block.message": "A ydych yn hollol, hollol sicr eich bod am flocio y {domain} cyfan? Yn y nifer helaeth o achosion mae blocio neu tawelu ambell gyfrif yn ddigonol ac yn well. Ni fyddwch yn gweld cynnwys o'r parth hwnnw mewn unrhyw ffrydiau cyhoeddus na chwaith yn eich hysbysiadau. Bydd hyn yn cael gwared o'ch dilynwyr o'r parth hwnnw.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Tawelu", "confirmations.mute.message": "Ydych chi'n sicr eich bod am ddistewi {name}?", "confirmations.redraft.confirm": "Dileu & ailddrafftio", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Bydd ateb nawr yn cymryd lle y neges yr ydych yn cyfansoddi ar hyn o bryd. Ydych chi'n sicr yr ydych am barhau?", "confirmations.unfollow.confirm": "Dad-ddilynwch", "confirmations.unfollow.message": "Ydych chi'n sicr eich bod am ddad-ddilyn {name}?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Mewnblannwch y tŵt hwn ar eich gwefan drwy gopïo'r côd isod.", "embed.preview": "Dyma sut olwg fydd arno:", "emoji_button.activity": "Gweithgarwch", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Personol", "navigation_bar.pins": "Tŵtiau wedi eu pinio", "navigation_bar.preferences": "Dewisiadau", - "navigation_bar.profile_directory": "Cyfeiriadur Proffil", "navigation_bar.public_timeline": "Ffrwd y ffederasiwn", "navigation_bar.security": "Diogelwch", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Dangos mwy", "status.show_more_all": "Dangos mwy i bawb", "status.show_thread": "Dangos edefyn", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Dad-dawelu sgwrs", "status.unpin": "Dadbinio o'r proffil", "suggestions.dismiss": "Diswyddo", @@ -373,7 +384,7 @@ "time_remaining.moments": "Munudau ar ôl", "time_remaining.seconds": "{number, plural, one {# eiliad} other {# o eiliadau}} ar ôl", "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} yn siarad", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "Mi fyddwch yn colli eich drafft os gadewch Mastodon.", "upload_area.title": "Llusgwch & gollwing i uwchlwytho", "upload_button.label": "Ychwanegwch gyfryngau (JPEG, PNG, GIF, WebM, MP4, MOV)", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index b021f9aa11..dff8c3c050 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -4,7 +4,7 @@ "account.block": "Bloker @{name}", "account.block_domain": "Skjul alt fra {domain}", "account.blocked": "Blokeret", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "Annullér følgeranmodning", "account.direct": "Send en direkte besked til @{name}", "account.domain_blocked": "Domænet er blevet skjult", "account.edit_profile": "Rediger profil", @@ -16,14 +16,16 @@ "account.follows.empty": "Denne bruger følger endnu ikke nogen.", "account.follows_you": "Følger dig", "account.hide_reblogs": "Skjul fremhævelserne fra @{name}", + "account.last_status": "Sidst aktiv", "account.link_verified_on": "Ejerskabet af dette link blev tjekket den %{date}", - "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", + "account.locked_info": "Denne kontos privatlivsstatus er sat til låst. Ejeren bedømmer manuelt, hvem der kan følge dem.", "account.media": "Medie", "account.mention": "Nævn @{name}", "account.moved_to": "{name} er flyttet til:", "account.mute": "Dæmp @{name}", "account.mute_notifications": "Dæmp notifikationer fra @{name}", "account.muted": "Dæmpet", + "account.never_active": "Aldrig", "account.posts": "Trut", "account.posts_with_replies": "Trut og svar", "account.report": "Rapporter @{name}", @@ -36,9 +38,11 @@ "account.unfollow": "Følg ikke længere", "account.unmute": "Fjern dæmpningen af @{name}", "account.unmute_notifications": "Fjern dæmpningen af notifikationer fra @{name}", + "alert.rate_limited.message": "Prøv venligst igen efter {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Der opstod en uventet fejl.", "alert.unexpected.title": "Ups!", - "autosuggest_hashtag.per_week": "{count} per week", + "autosuggest_hashtag.per_week": "{count} per uge", "boost_modal.combo": "Du kan trykke {combo} for at springe dette over næste gang", "bundle_column_error.body": "Noget gik galt under indlæsningen af dette komponent.", "bundle_column_error.retry": "Prøv igen", @@ -49,6 +53,7 @@ "column.blocks": "Blokerede brugere", "column.community": "Lokal tidslinje", "column.direct": "Direkte beskeder", + "column.directory": "Gennemse profiler", "column.domain_blocks": "Skjulte domæner", "column.favourites": "Favoritter", "column.follow_requests": "Anmodning om at følge", @@ -73,20 +78,20 @@ "compose_form.lock_disclaimer": "Din konto er ikke {locked}. Alle kan følge dig for at se dine følger-kun indlæg.", "compose_form.lock_disclaimer.lock": "låst", "compose_form.placeholder": "Hvad har du på hjertet?", - "compose_form.poll.add_option": "Add a choice", - "compose_form.poll.duration": "Poll duration", - "compose_form.poll.option_placeholder": "Choice {number}", - "compose_form.poll.remove_option": "Remove this choice", + "compose_form.poll.add_option": "Tilføj valgmulighed", + "compose_form.poll.duration": "Afstemningens varighed", + "compose_form.poll.option_placeholder": "Valgmulighed {number}", + "compose_form.poll.remove_option": "Fjern denne valgmulighed", "compose_form.publish": "Trut", "compose_form.publish_loud": "{publish}!", - "compose_form.sensitive.hide": "Mark media as sensitive", + "compose_form.sensitive.hide": "Markér medie som følsomt", "compose_form.sensitive.marked": "Medie er markeret som værende følsomt", "compose_form.sensitive.unmarked": "Mediet er ikke markeret som værende følsomt", "compose_form.spoiler.marked": "Teksten er skjult bag en advarsel", "compose_form.spoiler.unmarked": "Teksten er ikke skjult", "compose_form.spoiler_placeholder": "Skriv din advarsel her", "confirmation_modal.cancel": "Annuller", - "confirmations.block.block_and_report": "Block & Report", + "confirmations.block.block_and_report": "Blokér og anmeld", "confirmations.block.confirm": "Bloker", "confirmations.block.message": "Er du sikker på, du vil blokere {name}?", "confirmations.delete.confirm": "Slet", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Er du sikker på, du vil slette denne liste?", "confirmations.domain_block.confirm": "Skjul helt domæne", "confirmations.domain_block.message": "Er du helt sikker på du vil blokere hele {domain} domænet? I de fleste tilfælde vil få specifikke blokeringer eller dæmpninger være nok og at fortrække. Du vil ikke se indhold fra det domæne hverken på offentlige tidslinjer eller i dine notifikationer. Dine følgere fra det domæne vil blive fjernet.", + "confirmations.logout.confirm": "Log ud", + "confirmations.logout.message": "Er du sikker på du vil logge ud?", "confirmations.mute.confirm": "Dæmp", "confirmations.mute.message": "Er du sikker på, du vil dæmpe {name}?", "confirmations.redraft.confirm": "Slet & omskriv", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Hvis du svarer nu vil du overskrive den besked du er ved at skrive. Er du sikker på, du vil fortsætte?", "confirmations.unfollow.confirm": "Følg ikke længere", "confirmations.unfollow.message": "Er du sikker på, du ikke længere vil følge {name}?", + "directory.federated": "Fra kendt fedivers", + "directory.local": "Kun fra {domain}", + "directory.new_arrivals": "Nye ankomster", + "directory.recently_active": "Senest aktiv", "embed.instructions": "Indlejre denne status på din side ved at kopiere nedenstående kode.", "embed.preview": "Det kommer til at se således ud:", "emoji_button.activity": "Aktivitet", @@ -113,14 +124,14 @@ "emoji_button.nature": "Natur", "emoji_button.not_found": "Ingen emojos!! (╯°□°)╯︵ ┻━┻", "emoji_button.objects": "Objekter", - "emoji_button.people": "Mennesker", + "emoji_button.people": "Personer", "emoji_button.recent": "Oftest brugt", "emoji_button.search": "Søg...", "emoji_button.search_results": "Søgeresultater", "emoji_button.symbols": "Symboler", "emoji_button.travel": "Rejser & steder", "empty_column.account_timeline": "Ingen bidrag her!", - "empty_column.account_unavailable": "Profile unavailable", + "empty_column.account_unavailable": "Profil utilgængelig", "empty_column.blocks": "Du har ikke blokeret nogen endnu.", "empty_column.community": "Den lokale tidslinje er tom. Skriv noget offentligt for at starte lavinen!", "empty_column.direct": "Du har endnu ingen direkte beskeder. Når du sender eller modtager en, vil den vises her.", @@ -139,7 +150,7 @@ "follow_request.authorize": "Godkend", "follow_request.reject": "Afvis", "getting_started.developers": "Udviklere", - "getting_started.directory": "Profile directory", + "getting_started.directory": "Profilliste", "getting_started.documentation": "Dokumentation", "getting_started.heading": "Kom igang", "getting_started.invite": "Inviter folk", @@ -149,36 +160,36 @@ "hashtag.column_header.tag_mode.all": "og {additional}", "hashtag.column_header.tag_mode.any": "eller {additional}", "hashtag.column_header.tag_mode.none": "uden {additional}", - "hashtag.column_settings.select.no_options_message": "No suggestions found", - "hashtag.column_settings.select.placeholder": "Enter hashtags…", - "hashtag.column_settings.tag_mode.all": "All of these", - "hashtag.column_settings.tag_mode.any": "Any of these", - "hashtag.column_settings.tag_mode.none": "None of these", + "hashtag.column_settings.select.no_options_message": "Ingen forslag fundet", + "hashtag.column_settings.select.placeholder": "Indtast hashtags…", + "hashtag.column_settings.tag_mode.all": "Alle disse", + "hashtag.column_settings.tag_mode.any": "Nogle af disse", + "hashtag.column_settings.tag_mode.none": "Ingen af disse", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", "home.column_settings.basic": "Grundlæggende", "home.column_settings.show_reblogs": "Vis fremhævelser", "home.column_settings.show_replies": "Vis svar", "home.column_settings.update_live": "Update in real-time", - "intervals.full.days": "{number, plural, one {# day} other {# days}}", - "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", - "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", + "intervals.full.days": "{number, plural, one {# dag} other {# dage}}", + "intervals.full.hours": "{number, plural, one {# time} other {# timer}}", + "intervals.full.minutes": "{number, plural, one {# minut} other {# minutter}}", "introduction.federation.action": "Næste", - "introduction.federation.federated.headline": "Federated", + "introduction.federation.federated.headline": "Fælles", "introduction.federation.federated.text": "Offentlige bidrag fra andre servere af fediversen vil komme til syne i den federated timeline.", - "introduction.federation.home.headline": "Home", - "introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!", - "introduction.federation.local.headline": "Local", - "introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.", + "introduction.federation.home.headline": "Hjem", + "introduction.federation.home.text": "Statusser fra personer du følger vil blive vist i dit hjemmefeed. Du kan følge alle på enhver server!", + "introduction.federation.local.headline": "Lokal", + "introduction.federation.local.text": "Offentlige statusser fra personer på samme server som dig vil blive vist i det lokale feed.", "introduction.interactions.action": "Slut tutorial!", "introduction.interactions.favourite.headline": "Favorisere", - "introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.", + "introduction.interactions.favourite.text": "Du kan gemme en status til senere (og vise forfatteren at du kunne lide den) ved at favorisere den.", "introduction.interactions.reblog.headline": "Boost", - "introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.", + "introduction.interactions.reblog.text": "Du kan delete andres statusser med dine følgere ved at booste dem.", "introduction.interactions.reply.headline": "Svar", "introduction.interactions.reply.text": "Du kan svare andres og din egen bidrag, hvilke vil kæde dem sammen i en konversation.", "introduction.welcome.action": "Læd os gå!", "introduction.welcome.headline": "Første skridt", - "introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.", + "introduction.welcome.text": "Velkommen til fediverset! Om få øjeblikke vil du kunne dele statusser og tale med dine venner på en bred vifte af servere. Men denne server, {domain}, er speciel. Det er på denne server at din profil har hjemme så husk dens navn.", "keyboard_shortcuts.back": "for at navigere dig tilbage", "keyboard_shortcuts.blocked": "for at åbne listen over blokerede brugere", "keyboard_shortcuts.boost": "for at fremhæve", @@ -207,24 +218,24 @@ "keyboard_shortcuts.search": "for at fokusere søgningen", "keyboard_shortcuts.start": "for at åbne \"kom igen\" kolonnen", "keyboard_shortcuts.toggle_hidden": "for at vise/skjule tekst bag CW", - "keyboard_shortcuts.toggle_sensitivity": "to show/hide media", + "keyboard_shortcuts.toggle_sensitivity": "for at vise/skjule medier", "keyboard_shortcuts.toot": "for at påbegynde et helt nyt trut", "keyboard_shortcuts.unfocus": "for at fjerne fokus fra skriveområde/søgning", "keyboard_shortcuts.up": "for at bevæge dig op ad listen", "lightbox.close": "Luk", "lightbox.next": "Næste", "lightbox.previous": "Forrige", - "lightbox.view_context": "View context", + "lightbox.view_context": "Vis kontekst", "lists.account.add": "Tilføj til liste", "lists.account.remove": "Fjern fra liste", "lists.delete": "Slet liste", "lists.edit": "Rediger liste", - "lists.edit.submit": "Change title", + "lists.edit.submit": "Skift titel", "lists.new.create": "Tilføj liste", "lists.new.title_placeholder": "Ny liste titel", "lists.search": "Søg iblandt folk du følger", "lists.subheading": "Dine lister", - "load_pending": "{count, plural, one {# new item} other {# new items}}", + "load_pending": "{count, plural, one {# nyt punkt} other {# nye punkter}}", "loading_indicator.label": "Indlæser...", "media_gallery.toggle_visible": "Ændre synlighed", "missing_indicator.label": "Ikke fundet", @@ -241,7 +252,7 @@ "navigation_bar.favourites": "Favoritter", "navigation_bar.filters": "Dæmpede ord", "navigation_bar.follow_requests": "Følgeanmodninger", - "navigation_bar.follows_and_followers": "Follows and followers", + "navigation_bar.follows_and_followers": "Følger og følgere", "navigation_bar.info": "Om denne instans", "navigation_bar.keyboard_shortcuts": "Hurtigtast", "navigation_bar.lists": "Lister", @@ -250,50 +261,49 @@ "navigation_bar.personal": "Personligt", "navigation_bar.pins": "Fastgjorte trut", "navigation_bar.preferences": "Præferencer", - "navigation_bar.profile_directory": "Profile directory", "navigation_bar.public_timeline": "Fælles tidslinje", "navigation_bar.security": "Sikkerhed", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", "notification.favourite": "{name} favoriserede din status", "notification.follow": "{name} fulgte dig", "notification.mention": "{name} nævnte dig", - "notification.poll": "A poll you have voted in has ended", - "notification.reblog": "{name} fremhævede din status", + "notification.poll": "En afstemning, du stemte i, er slut", + "notification.reblog": "{name} boostede din status", "notifications.clear": "Ryd notifikationer", "notifications.clear_confirmation": "Er du sikker på, du vil rydde alle dine notifikationer permanent?", - "notifications.column_settings.alert": "Skrivebords notifikationer", + "notifications.column_settings.alert": "Skrivebordsnotifikationer", "notifications.column_settings.favourite": "Favoritter:", - "notifications.column_settings.filter_bar.advanced": "Display all categories", - "notifications.column_settings.filter_bar.category": "Quick filter bar", - "notifications.column_settings.filter_bar.show": "Show", + "notifications.column_settings.filter_bar.advanced": "Vis alle kategorier", + "notifications.column_settings.filter_bar.category": "Hurtigfilter", + "notifications.column_settings.filter_bar.show": "Vis", "notifications.column_settings.follow": "Nye følgere:", - "notifications.column_settings.mention": "Omtale:", - "notifications.column_settings.poll": "Poll results:", - "notifications.column_settings.push": "Push notifikationer", - "notifications.column_settings.reblog": "Fremhævelser:", + "notifications.column_settings.mention": "Statusser der nævner dig:", + "notifications.column_settings.poll": "Afstemningsresultat:", + "notifications.column_settings.push": "Pushnotifikationer", + "notifications.column_settings.reblog": "Boosts:", "notifications.column_settings.show": "Vis i kolonne", "notifications.column_settings.sound": "Afspil lyd", "notifications.filter.all": "Alle", "notifications.filter.boosts": "Boosts", "notifications.filter.favourites": "Favoritter", "notifications.filter.follows": "Følger", - "notifications.filter.mentions": "Mentions", - "notifications.filter.polls": "Poll results", + "notifications.filter.mentions": "Statusser der nævner dig", + "notifications.filter.polls": "Afstemningsresultat", "notifications.group": "{count} notifikationer", - "poll.closed": "Closed", - "poll.refresh": "Refresh", - "poll.total_votes": "{count, plural, one {# vote} other {# votes}}", - "poll.vote": "Vote", - "poll_button.add_poll": "Add a poll", - "poll_button.remove_poll": "Remove poll", - "privacy.change": "Ændre status privatliv", - "privacy.direct.long": "Post til kun de nævnte brugere", + "poll.closed": "Lukket", + "poll.refresh": "Opdatér", + "poll.total_votes": "{count, plural, one {# stemme} other {# stemmer}}", + "poll.vote": "Stem", + "poll_button.add_poll": "Tilføj en afstemning", + "poll_button.remove_poll": "Fjern afstemning", + "privacy.change": "Skift status visningsindstillinger", + "privacy.direct.long": "Udgiv kun til nævnte brugere", "privacy.direct.short": "Direkte", - "privacy.private.long": "Post kun til følgere", + "privacy.private.long": "Udgiv kun til følgere", "privacy.private.short": "Kun for følgere", - "privacy.public.long": "Post til offentlige tidslinjer", + "privacy.public.long": "Udgiv på offentlige tidslinjer", "privacy.public.short": "Offentligt", - "privacy.unlisted.long": "Post ikke til offentlige tidslinjer", + "privacy.unlisted.long": "Udgiv ikke på offentlige tidslinjer", "privacy.unlisted.short": "Ikke listet", "regeneration_indicator.label": "Indlæser…", "regeneration_indicator.sublabel": "Din startside er ved at blive forberedt!", @@ -305,32 +315,32 @@ "reply_indicator.cancel": "Annuller", "report.forward": "Videresend til {target}", "report.forward_hint": "Kontoen er fra en anden server. Vil du også sende en anonym kopi af anmeldelsen dertil?", - "report.hint": "Anmeldelsen vil blive sendt til moderatorene af din instans. Du kan give en forklaring for hvorfor du anmelder denne konto nedenfor:", + "report.hint": "Anmeldelsen vil blive sendt til moderatorene af din instans. Du kan give en forklaring på hvorfor du anmelder denne konto nedenfor:", "report.placeholder": "Yderligere kommentarer", "report.submit": "Indsend", "report.target": "Anmelder {target}", "search.placeholder": "Søg", "search_popout.search_format": "Avanceret søgeformat", - "search_popout.tips.full_text": "Simpel tekst returnerer statusser du har skrevet, favoriseret, fremhævet, eller er blevet nævnt i, lige så vel som matchende brugernavne, visningsnavne, og hashtags.", - "search_popout.tips.hashtag": "emnetag", + "search_popout.tips.full_text": "Simpel tekst returnerer statusser du har skrevet, favoriseret, boostet, eller er blevet nævnt i såvel som matchende brugernavne, profilnavne, og hashtags.", + "search_popout.tips.hashtag": "hashtag", "search_popout.tips.status": "status", - "search_popout.tips.text": "Simpelt tekst returnerer passende visningsnavne, brugernavne og hashtags", + "search_popout.tips.text": "Simpel tekst returnerer matchende profilnavne, brugernavne og hashtags", "search_popout.tips.user": "bruger", - "search_results.accounts": "Folk", - "search_results.hashtags": "Emnetags", + "search_results.accounts": "Personer", + "search_results.hashtags": "Hashtags", "search_results.statuses": "Trut", - "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", - "search_results.total": "{count, number} {count, plural, et {result} andre {results}}", - "status.admin_account": "Open moderation interface for @{name}", - "status.admin_status": "Open this status in the moderation interface", + "search_results.statuses_fts_disabled": "Denne Mastodonserver har ikke aktiveret for søgning af statusser via deres indhold.", + "search_results.total": "{count, number} {count, plural, one {resultat} other {resultater}}", + "status.admin_account": "Åben modereringsvisning for @{name}", + "status.admin_status": "Åben denne status i modereringsvisningen", "status.block": "Bloker @{name}", - "status.cancel_reblog_private": "Fremhæv ikke længere", - "status.cannot_reblog": "Denne post kan ikke fremhæves", - "status.copy": "Copy link to status", + "status.cancel_reblog_private": "Fjern boost", + "status.cannot_reblog": "Denne post kan ikke boostes", + "status.copy": "Kopiér link til status", "status.delete": "Slet", "status.detailed_status": "Detaljeret visning af samtale", "status.direct": "Send direkte besked til @{name}", - "status.embed": "Indlejre", + "status.embed": "Integrér", "status.favourite": "Favorit", "status.filtered": "Filtreret", "status.load_more": "Indlæs mere", @@ -343,13 +353,13 @@ "status.pin": "Fastgør til profil", "status.pinned": "Fastgjort trut", "status.read_more": "Læs mere", - "status.reblog": "Fremhæv", - "status.reblog_private": "Fremhæv til oprindeligt publikum", - "status.reblogged_by": "{name} fremhævede", - "status.reblogs.empty": "Der er endnu ingen der har fremhævet dette trut. Når der er nogen der gør, vil det blive vist her.", + "status.reblog": "Boost", + "status.reblog_private": "Boost til det oprindelige publikum", + "status.reblogged_by": "{name} boostede", + "status.reblogs.empty": "Der er endnu ingen der har boostet dette trut. Når der er nogen der gør, vil det blive vist her.", "status.redraft": "Slet og omskriv", - "status.reply": "Svar", - "status.replyAll": "Svar samtale", + "status.reply": "Besvar", + "status.replyAll": "Besvar samtale", "status.report": "Anmeld @{name}", "status.sensitive_warning": "Følsomt indhold", "status.share": "Del", @@ -357,41 +367,42 @@ "status.show_less_all": "Vis mindre for alle", "status.show_more": "Vis mere", "status.show_more_all": "Vis mere for alle", - "status.show_thread": "Show thread", - "status.unmute_conversation": "Fjern dæmpningen fra samtale", - "status.unpin": "Fjern som fastgjort fra profil", - "suggestions.dismiss": "Dismiss suggestion", - "suggestions.header": "You might be interested in…", + "status.show_thread": "Vis tråd", + "status.uncached_media_warning": "Ikke tilgængelig", + "status.unmute_conversation": "Genaktivér samtale", + "status.unpin": "Frigør fra profil", + "suggestions.dismiss": "Afvis foreslag", + "suggestions.header": "Du er måske interesseret i…", "tabs_bar.federated_timeline": "Fælles", "tabs_bar.home": "Hjem", "tabs_bar.local_timeline": "Lokal", "tabs_bar.notifications": "Notifikationer", "tabs_bar.search": "Søg", - "time_remaining.days": "{number, plural, one {# day} other {# days}} left", - "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", - "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", - "time_remaining.moments": "Moments remaining", - "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", - "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} snakker", - "trends.refresh": "Refresh", + "time_remaining.days": "{number, plural, one {# dag} other {# dage}} tilbage", + "time_remaining.hours": "{number, plural, one {# time} other {# timer}} tilbage", + "time_remaining.minutes": "{number, plural, one {# minut} other {# minutter}} tilbage", + "time_remaining.moments": "Få øjeblikke tilbage", + "time_remaining.seconds": "{number, plural, one {# sekund} other {# sekunder}} tilbage", + "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {personer}} snakker", + "trends.trending_now": "Hot lige nu", "ui.beforeunload": "Din kladde vil gå tabt hvis du forlader Mastodon.", "upload_area.title": "Træk og slip for at uploade", "upload_button.label": "Tilføj medie (JPEG, PNG, GIF, WebM, MP4, MOV)", - "upload_error.limit": "File upload limit exceeded.", - "upload_error.poll": "File upload not allowed with polls.", - "upload_form.description": "Beskriv for de svagtseende", - "upload_form.edit": "Edit", + "upload_error.limit": "Uploadgrænse overskredet.", + "upload_error.poll": "Filupload ikke tilladt sammen med afstemninger.", + "upload_form.description": "Beskriv for svagtseende", + "upload_form.edit": "Redigér", "upload_form.undo": "Slet", - "upload_modal.analyzing_picture": "Analyzing picture…", - "upload_modal.apply": "Apply", - "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", - "upload_modal.detect_text": "Detect text from picture", - "upload_modal.edit_media": "Edit media", - "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.", - "upload_modal.preview_label": "Preview ({ratio})", + "upload_modal.analyzing_picture": "Analyserer billede…", + "upload_modal.apply": "Anvend", + "upload_modal.description_placeholder": "En hurtig brun ræv hopper over den dovne hund", + "upload_modal.detect_text": "Find tekst i billede på automatisk vis", + "upload_modal.edit_media": "Redigér medie", + "upload_modal.hint": "Klik eller træk cirklen på billedet for at vælge et fokuspunkt.", + "upload_modal.preview_label": "Forhåndsvisning ({ratio})", "upload_progress.label": "Uploader...", "video.close": "Luk video", - "video.exit_fullscreen": "Gå ud af fuldskærm", + "video.exit_fullscreen": "Forlad fuldskærm", "video.expand": "Udvid video", "video.fullscreen": "Fuldskærm", "video.hide": "Skjul video", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 28b41baf74..a9b777c035 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -16,6 +16,7 @@ "account.follows.empty": "Dieses Profil folgt noch niemandem.", "account.follows_you": "Folgt dir", "account.hide_reblogs": "Geteilte Beiträge von @{name} verbergen", + "account.last_status": "Zuletzt aktiv", "account.link_verified_on": "Besitz dieses Links wurde geprüft am {date}", "account.locked_info": "Der Privatsphärenstatus dieses Accounts wurde auf gesperrt gesetzt. Die Person bestimmt manuell wer ihm/ihr folgen darf.", "account.media": "Medien", @@ -24,6 +25,7 @@ "account.mute": "@{name} stummschalten", "account.mute_notifications": "Benachrichtigungen von @{name} verbergen", "account.muted": "Stummgeschaltet", + "account.never_active": "Nie", "account.posts": "Beiträge", "account.posts_with_replies": "Beiträge und Antworten", "account.report": "@{name} melden", @@ -36,6 +38,8 @@ "account.unfollow": "Entfolgen", "account.unmute": "@{name} nicht mehr stummschalten", "account.unmute_notifications": "Benachrichtigungen von @{name} einschalten", + "alert.rate_limited.message": "Bitte versuche es nach {retry_time, time, medium}.", + "alert.rate_limited.title": "Anfragelimit überschritten", "alert.unexpected.message": "Ein unerwarteter Fehler ist aufgetreten.", "alert.unexpected.title": "Hoppla!", "autosuggest_hashtag.per_week": "{count} pro Woche", @@ -49,6 +53,7 @@ "column.blocks": "Blockierte Profile", "column.community": "Lokale Zeitleiste", "column.direct": "Direktnachrichten", + "column.directory": "Profile durchsuchen", "column.domain_blocks": "Versteckte Domains", "column.favourites": "Favoriten", "column.follow_requests": "Folgeanfragen", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Bist du dir sicher, dass du diese Liste permanent löschen möchtest?", "confirmations.domain_block.confirm": "Die ganze Domain verbergen", "confirmations.domain_block.message": "Bist du dir wirklich sicher, dass du die ganze Domain {domain} blockieren willst? In den meisten Fällen reichen ein paar gezielte Blockierungen oder Stummschaltungen aus. Nach der Blockierung wirst du nichts mehr von dieser Domain in öffentlichen Zeitleisten oder Benachrichtigungen sehen. Deine Folger_innen von dieser Domain werden auch entfernt.", + "confirmations.logout.confirm": "Abmelden", + "confirmations.logout.message": "Bist du sicher, dass du dich abmelden möchtest?", "confirmations.mute.confirm": "Stummschalten", "confirmations.mute.message": "Bist du dir sicher, dass du {name} stummschalten möchtest?", "confirmations.redraft.confirm": "Löschen und neu erstellen", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Wenn du jetzt antwortest wird es die gesamte Nachricht verwerfen, die du gerade schreibst. Möchtest du wirklich fortfahren?", "confirmations.unfollow.confirm": "Entfolgen", "confirmations.unfollow.message": "Bist du dir sicher, dass du {name} entfolgen möchtest?", + "directory.federated": "Aus dem Fediverse", + "directory.local": "Nur von {domain}", + "directory.new_arrivals": "Neue Benutzer", + "directory.recently_active": "Kürzlich aktiv", "embed.instructions": "Du kannst diesen Beitrag auf deiner Webseite einbetten, indem du den folgenden Code einfügst.", "embed.preview": "So wird es aussehen:", "emoji_button.activity": "Aktivitäten", @@ -158,7 +169,7 @@ "home.column_settings.basic": "Einfach", "home.column_settings.show_reblogs": "Geteilte Beiträge anzeigen", "home.column_settings.show_replies": "Antworten anzeigen", - "home.column_settings.update_live": "In Echtzeit aktualisieren", + "home.column_settings.update_live": "Update in real-time", "intervals.full.days": "{number, plural, one {# Tag} other {# Tage}}", "intervals.full.hours": "{number, plural, one {# Stunde} other {# Stunden}}", "intervals.full.minutes": "{number, plural, one {# Minute} other {# Minuten}}", @@ -250,10 +261,9 @@ "navigation_bar.personal": "Persönlich", "navigation_bar.pins": "Angeheftete Beiträge", "navigation_bar.preferences": "Einstellungen", - "navigation_bar.profile_directory": "Profilverzeichnis", "navigation_bar.public_timeline": "Föderierte Zeitleiste", "navigation_bar.security": "Sicherheit", - "notification.and_n_others": "und {count, plural, one {# andere Person} other {# andere Personen}}", + "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", "notification.favourite": "{name} hat deinen Beitrag favorisiert", "notification.follow": "{name} folgt dir", "notification.mention": "{name} hat dich erwähnt", @@ -358,6 +368,7 @@ "status.show_more": "Mehr anzeigen", "status.show_more_all": "Alle Inhaltswarnungen aufklappen", "status.show_thread": "Zeige Konversation", + "status.uncached_media_warning": "Nicht verfügbar", "status.unmute_conversation": "Stummschaltung von Konversation aufheben", "status.unpin": "Vom Profil lösen", "suggestions.dismiss": "Empfehlung ausblenden", @@ -373,7 +384,7 @@ "time_remaining.moments": "Schließt in Kürze", "time_remaining.seconds": "{number, plural, one {# Sekunde} other {# Sekunden}} verbleibend", "trends.count_by_accounts": "{count} {rawCount, plural, eine {Person} other {Personen}} reden darüber", - "trends.refresh": "Aktualisieren", + "trends.trending_now": "In den Trends", "ui.beforeunload": "Dein Entwurf geht verloren, wenn du Mastodon verlässt.", "upload_area.title": "Zum Hochladen hereinziehen", "upload_button.label": "Mediendatei hinzufügen ({formats})", diff --git a/app/javascript/mastodon/locales/defaultMessages.json b/app/javascript/mastodon/locales/defaultMessages.json index db2d1c7bd7..b3c25ebe68 100644 --- a/app/javascript/mastodon/locales/defaultMessages.json +++ b/app/javascript/mastodon/locales/defaultMessages.json @@ -1155,6 +1155,19 @@ ], "path": "app/javascript/mastodon/features/compose/containers/navigation_container.json" }, + { + "descriptors": [ + { + "defaultMessage": "Are you sure you want to log out?", + "id": "confirmations.logout.message" + }, + { + "defaultMessage": "Log out", + "id": "confirmations.logout.confirm" + } + ], + "path": "app/javascript/mastodon/features/compose/containers/navigation_container.json" + }, { "descriptors": [ { diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index 68c59817fd..4c8a587781 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -4,7 +4,7 @@ "account.block": "Αποκλισμός @{name}", "account.block_domain": "Απόκρυψε τα πάντα από το {domain}", "account.blocked": "Αποκλεισμένος/η", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "Ακύρωση αιτήματος παρακολούθησης", "account.direct": "Προσωπικό μήνυμα προς @{name}", "account.domain_blocked": "Κρυμμένος τομέας", "account.edit_profile": "Επεξεργασία προφίλ", @@ -16,6 +16,7 @@ "account.follows.empty": "Αυτός ο χρήστης δεν ακολουθεί κανέναν ακόμα.", "account.follows_you": "Σε ακολουθεί", "account.hide_reblogs": "Απόκρυψη προωθήσεων από @{name}", + "account.last_status": "Τελευταία δραστηριότητα", "account.link_verified_on": "Η ιδιοκτησία αυτού του συνδέσμου ελέχθηκε την {date}", "account.locked_info": "Η κατάσταση απορρήτου αυτού του λογαριασμού είναι κλειδωμένη. Ο ιδιοκτήτης επιβεβαιώνει χειροκίνητα ποιος μπορεί να τον ακολουθήσει.", "account.media": "Πολυμέσα", @@ -24,6 +25,7 @@ "account.mute": "Σώπασε @{name}", "account.mute_notifications": "Σώπασε τις ειδοποιήσεις από @{name}", "account.muted": "Αποσιωπημένος/η", + "account.never_active": "Ποτέ", "account.posts": "Τουτ", "account.posts_with_replies": "Τουτ και απαντήσεις", "account.report": "Κατάγγειλε @{name}", @@ -36,9 +38,11 @@ "account.unfollow": "Διακοπή παρακολούθησης", "account.unmute": "Διακοπή αποσιώπησης @{name}", "account.unmute_notifications": "Διακοπή αποσιώπησης ειδοποιήσεων του/της @{name}", + "alert.rate_limited.message": "Παρακαλούμε δοκίμασε ξανά αφού περάσει η {retry_time, time, medium}.", + "alert.rate_limited.title": "Περιορισμός συχνότητας", "alert.unexpected.message": "Προέκυψε απροσδόκητο σφάλμα.", "alert.unexpected.title": "Εεπ!", - "autosuggest_hashtag.per_week": "{count} per week", + "autosuggest_hashtag.per_week": "{count} ανα εβδομάδα", "boost_modal.combo": "Μπορείς να πατήσεις {combo} για να το προσπεράσεις αυτό την επόμενη φορά", "bundle_column_error.body": "Κάτι πήγε στραβά ενώ φορτωνόταν αυτό το στοιχείο.", "bundle_column_error.retry": "Δοκίμασε ξανά", @@ -49,6 +53,7 @@ "column.blocks": "Αποκλεισμένοι χρήστες", "column.community": "Τοπική ροή", "column.direct": "Προσωπικά μηνύματα", + "column.directory": "Δες προφίλ", "column.domain_blocks": "Κρυμμένοι τομείς", "column.favourites": "Αγαπημένα", "column.follow_requests": "Αιτήματα ακολούθησης", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Σίγουρα θες να διαγράψεις οριστικά αυτή τη λίστα;", "confirmations.domain_block.confirm": "Απόκρυψη ολόκληρου του τομέα", "confirmations.domain_block.message": "Σίγουρα θες να μπλοκάρεις ολόκληρο το {domain}; Συνήθως μερικά εστιασμένα μπλοκ ή αποσιωπήσεις επαρκούν και προτιμούνται. Δεν θα βλέπεις περιεχόμενο από αυτό τον κόμβο σε καμία δημόσια ροή, ούτε στις ειδοποιήσεις σου. Όσους ακόλουθους έχεις αυτό αυτό τον κόμβο θα αφαιρεθούν.", + "confirmations.logout.confirm": "Αποσύνδεση", + "confirmations.logout.message": "Σίγουρα θέλεις να αποσυνδεθείς;", "confirmations.mute.confirm": "Αποσιώπηση", "confirmations.mute.message": "Σίγουρα θες να αποσιωπήσεις {name};", "confirmations.redraft.confirm": "Διαγραφή & ξαναγράψιμο", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Απαντώντας τώρα θα αντικαταστήσεις το κείμενο που ήδη γράφεις. Σίγουρα θέλεις να συνεχίσεις;", "confirmations.unfollow.confirm": "Διακοπή παρακολούθησης", "confirmations.unfollow.message": "Σίγουρα θες να πάψεις να ακολουθείς τον/την {name};", + "directory.federated": "Από το γνωστό fediverse", + "directory.local": "Μόνο από {domain}", + "directory.new_arrivals": "Νέες αφίξεις", + "directory.recently_active": "Πρόσφατα ενεργοί", "embed.instructions": "Ενσωματώστε αυτή την κατάσταση στην ιστοσελίδα σας αντιγράφοντας τον παρακάτω κώδικα.", "embed.preview": "Ορίστε πως θα φαίνεται:", "emoji_button.activity": "Δραστηριότητα", @@ -155,10 +166,10 @@ "hashtag.column_settings.tag_mode.any": "Οποιοδήποτε από αυτά", "hashtag.column_settings.tag_mode.none": "Κανένα από αυτά", "hashtag.column_settings.tag_toggle": "Προσθήκη επιπλέον ταμπελών για την κολώνα", - "home.column_settings.basic": "Βασικά", + "home.column_settings.basic": "Βασικές ρυθμίσεις", "home.column_settings.show_reblogs": "Εμφάνιση προωθήσεων", "home.column_settings.show_replies": "Εμφάνιση απαντήσεων", - "home.column_settings.update_live": "Ζωντανή ενημέρωση", + "home.column_settings.update_live": "Update in real-time", "intervals.full.days": "{number, plural, one {# μέρα} other {# μέρες}}", "intervals.full.hours": "{number, plural, one {# ώρα} other {# ώρες}}", "intervals.full.minutes": "{number, plural, one {# λεπτό} other {# λεπτά}}", @@ -241,7 +252,7 @@ "navigation_bar.favourites": "Αγαπημένα", "navigation_bar.filters": "Αποσιωπημένες λέξεις", "navigation_bar.follow_requests": "Αιτήματα ακολούθησης", - "navigation_bar.follows_and_followers": "Ακολουθεί και ακολουθείται", + "navigation_bar.follows_and_followers": "Ακολουθείς και σε ακολουθούν", "navigation_bar.info": "Πληροφορίες κόμβου", "navigation_bar.keyboard_shortcuts": "Συντομεύσεις", "navigation_bar.lists": "Λίστες", @@ -250,14 +261,13 @@ "navigation_bar.personal": "Προσωπικά", "navigation_bar.pins": "Καρφιτσωμένα τουτ", "navigation_bar.preferences": "Προτιμήσεις", - "navigation_bar.profile_directory": "Κατάλογος λογαριασμών", "navigation_bar.public_timeline": "Ομοσπονδιακή ροή", "navigation_bar.security": "Ασφάλεια", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", "notification.favourite": "Ο/Η {name} σημείωσε ως αγαπημένη την κατάστασή σου", "notification.follow": "Ο/Η {name} σε ακολούθησε", "notification.mention": "Ο/Η {name} σε ανέφερε", - "notification.poll": "Έλαβε τέλος μια από τις ψηφοφορίες που συμμετείχες", + "notification.poll": "Τελείωσε μια από τις ψηφοφορίες που συμμετείχες", "notification.reblog": "Ο/Η {name} προώθησε την κατάστασή σου", "notifications.clear": "Καθαρισμός ειδοποιήσεων", "notifications.clear_confirmation": "Σίγουρα θέλεις να καθαρίσεις όλες τις ειδοποιήσεις σου;", @@ -358,13 +368,14 @@ "status.show_more": "Δείξε περισσότερα", "status.show_more_all": "Δείξε περισσότερα για όλα", "status.show_thread": "Εμφάνιση νήματος", + "status.uncached_media_warning": "Μη διαθέσιμα", "status.unmute_conversation": "Διέκοψε την αποσιώπηση της συζήτησης", "status.unpin": "Ξεκαρφίτσωσε από το προφίλ", "suggestions.dismiss": "Απόρριψη πρότασης", "suggestions.header": "Ίσως να ενδιαφέρεσαι για…", "tabs_bar.federated_timeline": "Ομοσπονδιακή", "tabs_bar.home": "Αρχική", - "tabs_bar.local_timeline": "Τοπικά", + "tabs_bar.local_timeline": "Τοπική", "tabs_bar.notifications": "Ειδοποιήσεις", "tabs_bar.search": "Αναζήτηση", "time_remaining.days": "απομένουν {number, plural, one {# ημέρα} other {# ημέρες}}", @@ -373,22 +384,22 @@ "time_remaining.moments": "Απομένουν στιγμές", "time_remaining.seconds": "απομένουν {number, plural, one {# δευτερόλεπτο} other {# δευτερόλεπτα}}", "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} μιλάνε", - "trends.refresh": "Refresh", + "trends.trending_now": "Δημοφιλή τώρα", "ui.beforeunload": "Το προσχέδιό σου θα χαθεί αν φύγεις από το Mastodon.", "upload_area.title": "Drag & drop για να ανεβάσεις", "upload_button.label": "Πρόσθεσε πολυμέσα (JPEG, PNG, GIF, WebM, MP4, MOV)", "upload_error.limit": "Υπέρβαση ορίου μεγέθους ανεβασμένων αρχείων.", "upload_error.poll": "Στις δημοσκοπήσεις δεν επιτρέπεται η μεταφόρτωση αρχείου.", "upload_form.description": "Περιέγραψε για όσους & όσες έχουν προβλήματα όρασης", - "upload_form.edit": "Edit", + "upload_form.edit": "Ενημέρωση", "upload_form.undo": "Διαγραφή", - "upload_modal.analyzing_picture": "Analyzing picture…", - "upload_modal.apply": "Apply", - "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", - "upload_modal.detect_text": "Detect text from picture", - "upload_modal.edit_media": "Edit media", - "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.", - "upload_modal.preview_label": "Preview ({ratio})", + "upload_modal.analyzing_picture": "Ανάλυση εικόνας…", + "upload_modal.apply": "Εφαρμογή", + "upload_modal.description_placeholder": "Λύκος μαύρος και ισχνός του πατέρα του καημός", + "upload_modal.detect_text": "Αναγνώριση κειμένου από την εικόνα", + "upload_modal.edit_media": "Επεξεργασία Πολυμέσων", + "upload_modal.hint": "Κάνε κλικ ή σείρε τον κύκλο στην προεπισκόπηση για να επιλέξεις το σημείο εστίασης που θα είναι πάντα εμφανές σε όλες τις μικρογραφίες.", + "upload_modal.preview_label": "Προεπισκόπηση ({ratio})", "upload_progress.label": "Ανεβαίνει...", "video.close": "Κλείσε το βίντεο", "video.exit_fullscreen": "Έξοδος από πλήρη οθόνη", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index 763c31bb82..a04a70cce2 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -4,7 +4,7 @@ "account.block": "Bloki @{name}", "account.block_domain": "Kaŝi ĉion de {domain}", "account.blocked": "Blokita", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "Nuligi peto de sekvado", "account.direct": "Rekte mesaĝi @{name}", "account.domain_blocked": "Domajno kaŝita", "account.edit_profile": "Redakti profilon", @@ -16,6 +16,7 @@ "account.follows.empty": "Tiu uzanto ankoraŭ ne sekvas iun.", "account.follows_you": "Sekvas vin", "account.hide_reblogs": "Kaŝi diskonigojn de @{name}", + "account.last_status": "Lasta aktiva", "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", @@ -24,6 +25,7 @@ "account.mute": "Silentigi @{name}", "account.mute_notifications": "Silentigi sciigojn el @{name}", "account.muted": "Silentigita", + "account.never_active": "Neniam", "account.posts": "Mesaĝoj", "account.posts_with_replies": "Kun respondoj", "account.report": "Signali @{name}", @@ -36,9 +38,11 @@ "account.unfollow": "Ne plu sekvi", "account.unmute": "Malsilentigi @{name}", "account.unmute_notifications": "Malsilentigi sciigojn de @{name}", + "alert.rate_limited.message": "Bonvolu reprovi poste {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Neatendita eraro okazis.", "alert.unexpected.title": "Ups!", - "autosuggest_hashtag.per_week": "{count} per week", + "autosuggest_hashtag.per_week": "{count} semajne", "boost_modal.combo": "Vi povas premi {combo} por preterpasi sekvafoje", "bundle_column_error.body": "Io misfunkciis en la ŝargado de ĉi tiu elemento.", "bundle_column_error.retry": "Bonvolu reprovi", @@ -49,6 +53,7 @@ "column.blocks": "Blokitaj uzantoj", "column.community": "Loka tempolinio", "column.direct": "Rektaj mesaĝoj", + "column.directory": "Browse profiles", "column.domain_blocks": "Kaŝitaj domajnoj", "column.favourites": "Stelumoj", "column.follow_requests": "Petoj de sekvado", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Ĉu vi certas, ke vi volas porĉiame forigi ĉi tiun liston?", "confirmations.domain_block.confirm": "Kaŝi la tutan domajnon", "confirmations.domain_block.message": "Ĉu vi vere, vere certas, ke vi volas tute bloki {domain}? Plej ofte, trafa blokado kaj silentigado sufiĉas kaj preferindas. Vi ne vidos enhavon de tiu domajno en publika tempolinio aŭ en viaj sciigoj. Viaj sekvantoj de tiu domajno estos forigitaj.", + "confirmations.logout.confirm": "Elsaluti", + "confirmations.logout.message": "Ĉu vi certas ke vi volas elsaluti?", "confirmations.mute.confirm": "Silentigi", "confirmations.mute.message": "Ĉu vi certas, ke vi volas silentigi {name}?", "confirmations.redraft.confirm": "Forigi kaj reskribi", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Respondi nun anstataŭigos la mesaĝon, kiun vi nun skribas. Ĉu vi certas, ke vi volas daŭrigi?", "confirmations.unfollow.confirm": "Ne plu sekvi", "confirmations.unfollow.message": "Ĉu vi certas, ke vi volas ĉesi sekvi {name}?", + "directory.federated": "El konata fediverso", + "directory.local": "Nur de {domain}", + "directory.new_arrivals": "Novaj veniĝoj", + "directory.recently_active": "Recently active", "embed.instructions": "Enkorpigu ĉi tiun mesaĝon en vian retejon per kopio de la suba kodo.", "embed.preview": "Ĝi aperos tiel:", "emoji_button.activity": "Agadoj", @@ -158,7 +169,7 @@ "home.column_settings.basic": "Bazaj agordoj", "home.column_settings.show_reblogs": "Montri diskonigojn", "home.column_settings.show_replies": "Montri respondojn", - "home.column_settings.update_live": "Ĝisdatigo en realtempa", + "home.column_settings.update_live": "Update in real-time", "intervals.full.days": "{number, plural, one {# tago} other {# tagoj}}", "intervals.full.hours": "{number, plural, one {# horo} other {# horoj}}", "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutoj}}", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Persone", "navigation_bar.pins": "Alpinglitaj mesaĝoj", "navigation_bar.preferences": "Preferoj", - "navigation_bar.profile_directory": "Profilujo", "navigation_bar.public_timeline": "Fratara tempolinio", "navigation_bar.security": "Sekureco", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Grandigi", "status.show_more_all": "Grandigi ĉiujn", "status.show_thread": "Montri la fadenon", + "status.uncached_media_warning": "Nedisponebla", "status.unmute_conversation": "Malsilentigi la konversacion", "status.unpin": "Depingli de profilo", "suggestions.dismiss": "Forigi la proponon", @@ -373,22 +384,22 @@ "time_remaining.moments": "Momenteto restas", "time_remaining.seconds": "{number, plural, one {# sekundo} other {# sekundoj}} restas", "trends.count_by_accounts": "{count} {rawCount, plural, one {persono} other {personoj}} parolas", - "trends.refresh": "Refresh", + "trends.trending_now": "Nunaj furoraĵoj", "ui.beforeunload": "Via malneto perdiĝos se vi eliras de Mastodon.", "upload_area.title": "Altreni kaj lasi por alŝuti", "upload_button.label": "Aldoni aŭdovidaĵon (JPEG, PNG, GIF, WebM, MP4, MOV)", "upload_error.limit": "Limo de dosiera alŝutado transpasita.", "upload_error.poll": "Alŝuto de dosiero ne permesita kun balotenketo.", "upload_form.description": "Priskribi por misvidantaj homoj", - "upload_form.edit": "Edit", + "upload_form.edit": "Redakti", "upload_form.undo": "Forigi", "upload_modal.analyzing_picture": "Analyzing picture…", - "upload_modal.apply": "Apply", + "upload_modal.apply": "Apliki", "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", "upload_modal.detect_text": "Detect text from picture", - "upload_modal.edit_media": "Edit media", + "upload_modal.edit_media": "Redakti aŭdvidaĵo", "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.", - "upload_modal.preview_label": "Preview ({ratio})", + "upload_modal.preview_label": "Antaŭvido ({ratio})", "upload_progress.label": "Alŝutado…", "video.close": "Fermi videon", "video.exit_fullscreen": "Eksigi plenekrana", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 415faf5098..3b36571b1c 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -16,6 +16,7 @@ "account.follows.empty": "Este usuario todavía no sigue a nadie.", "account.follows_you": "Te sigue", "account.hide_reblogs": "Ocultar retoots de @{name}", + "account.last_status": "Last active", "account.link_verified_on": "El proprietario de este link fue comprobado el {date}", "account.locked_info": "El estado de privacidad de esta cuenta està configurado como bloqueado. El proprietario debe revisar manualmente quien puede seguirle.", "account.media": "Multimedia", @@ -24,6 +25,7 @@ "account.mute": "Silenciar a @{name}", "account.mute_notifications": "Silenciar notificaciones de @{name}", "account.muted": "Silenciado", + "account.never_active": "Never", "account.posts": "Toots", "account.posts_with_replies": "Toots con respuestas", "account.report": "Reportar a @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "Dejar de seguir", "account.unmute": "Dejar de silenciar a @{name}", "account.unmute_notifications": "Dejar de silenciar las notificaciones de @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Hubo un error inesperado.", "alert.unexpected.title": "¡Ups!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "Usuarios bloqueados", "column.community": "Línea de tiempo local", "column.direct": "Mensajes directos", + "column.directory": "Browse profiles", "column.domain_blocks": "Dominios ocultados", "column.favourites": "Favoritos", "column.follow_requests": "Solicitudes de seguimiento", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "¿Seguro que quieres borrar esta lista permanentemente?", "confirmations.domain_block.confirm": "Ocultar dominio entero", "confirmations.domain_block.message": "¿Seguro de que quieres bloquear al dominio {domain} entero? En general unos cuantos bloqueos y silenciados concretos es suficiente y preferible.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Silenciar", "confirmations.mute.message": "¿Estás seguro de que quieres silenciar a {name}?", "confirmations.redraft.confirm": "Borrar y volver a borrador", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Responder sobrescribirá el mensaje que estás escribiendo. ¿Estás seguro de que deseas continuar?", "confirmations.unfollow.confirm": "Dejar de seguir", "confirmations.unfollow.message": "¿Estás seguro de que quieres dejar de seguir a {name}?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Añade este toot a tu sitio web con el siguiente código.", "embed.preview": "Así es como se verá:", "emoji_button.activity": "Actividad", @@ -158,7 +169,7 @@ "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Mostrar retoots", "home.column_settings.show_replies": "Mostrar respuestas", - "home.column_settings.update_live": "Actualizar en tiempo real", + "home.column_settings.update_live": "Update in real-time", "intervals.full.days": "{number, plural, one {# día} other {# días}}", "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}", "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Personal", "navigation_bar.pins": "Toots fijados", "navigation_bar.preferences": "Preferencias", - "navigation_bar.profile_directory": "Directorio de perfiles", "navigation_bar.public_timeline": "Historia federada", "navigation_bar.security": "Seguridad", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Mostrar más", "status.show_more_all": "Mostrar más para todo", "status.show_thread": "Ver hilo", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Dejar de silenciar conversación", "status.unpin": "Dejar de fijar", "suggestions.dismiss": "Descartar sugerencia", @@ -373,7 +384,7 @@ "time_remaining.moments": "Momentos restantes", "time_remaining.seconds": "{number, plural, one {# segundo restante} other {# segundos restantes}}", "trends.count_by_accounts": "{count} {rawCount, plural, one {persona} other {personas}} hablando", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "Tu borrador se perderá si sales de Mastodon.", "upload_area.title": "Arrastra y suelta para subir", "upload_button.label": "Subir multimedia (JPEG, PNG, GIF, WebM, MP4, MOV)", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index 0d708eac2f..63253a1776 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -16,6 +16,7 @@ "account.follows.empty": "See kasutaja ei jälgi veel kedagi.", "account.follows_you": "Jälgib sind", "account.hide_reblogs": "Peida upitused kasutajalt @{name}", + "account.last_status": "Last active", "account.link_verified_on": "Selle lingi autorsust kontrolliti {date}", "account.locked_info": "Selle konto privaatsus on lukustatud. Omanik vaatab manuaalselt üle, kes teda jägida saab.", "account.media": "Meedia", @@ -24,6 +25,7 @@ "account.mute": "Vaigista @{name}", "account.mute_notifications": "Vaigista teated kasutajalt @{name}", "account.muted": "Vaigistatud", + "account.never_active": "Never", "account.posts": "Tuututused", "account.posts_with_replies": "Tuututused ja vastused", "account.report": "Raporteeri @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "Ära jälgi", "account.unmute": "Ära vaigista @{name}", "account.unmute_notifications": "Ära vaigista teateid kasutajalt @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Tekkis ootamatu viga.", "alert.unexpected.title": "Oih!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "Blokeeritud kasutajad", "column.community": "Kohalik ajajoon", "column.direct": "Otsesõnumid", + "column.directory": "Browse profiles", "column.domain_blocks": "Peidetud domeenid", "column.favourites": "Lemmikud", "column.follow_requests": "Jälgimistaotlused", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Oled kindel, et soovid selle nimekirja püsivalt kustutada?", "confirmations.domain_block.confirm": "Peida terve domeen", "confirmations.domain_block.message": "Oled ikka päris kindel, et soovid blokeerida terve {domain}? Enamikul juhtudel piisab mõnest sihitud blokist või vaigistusest, mis on eelistatav. Sa ei näe selle domeeni sisu üheski avalikus ajajoones või teadetes. Sinu jälgijad sellest domeenist eemaldatakse.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Vaigista", "confirmations.mute.message": "Oled kindel, et soovid {name} vaigistada?", "confirmations.redraft.confirm": "Kustuta & taasalusta", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Kohene vastamine kirjutab üle sõnumi, mida hetkel koostad. Oled kindel, et soovid jätkata?", "confirmations.unfollow.confirm": "Ära jälgi", "confirmations.unfollow.message": "Oled kindel, et ei soovi jälgida {name}?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Manusta see staatus oma veebilehele, kopeerides alloleva koodi.", "embed.preview": "Nii näeb see välja:", "emoji_button.activity": "Tegevus", @@ -158,7 +169,7 @@ "home.column_settings.basic": "Peamine", "home.column_settings.show_reblogs": "Näita upitusi", "home.column_settings.show_replies": "Näita vastuseid", - "home.column_settings.update_live": "Uuenda reaalajas", + "home.column_settings.update_live": "Update in real-time", "intervals.full.days": "{number, plural, one {# päev} other {# päevad}}", "intervals.full.hours": "{number, plural, one {# tund} other {# tundi}}", "intervals.full.minutes": "{number, plural, one {# minut} other {# minutit}}", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Isiklik", "navigation_bar.pins": "Kinnitatud tuutid", "navigation_bar.preferences": "Eelistused", - "navigation_bar.profile_directory": "Profiilikataloog", "navigation_bar.public_timeline": "Föderatiivne ajajoon", "navigation_bar.security": "Turvalisus", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Näita veel", "status.show_more_all": "Näita enam kõigile", "status.show_thread": "Kuva lõim", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Ära vaigista vestlust", "status.unpin": "Kinnita profiililt lahti", "suggestions.dismiss": "Eira soovitust", @@ -373,7 +384,7 @@ "time_remaining.moments": "Hetked jäänud", "time_remaining.seconds": "{number, plural, one {# sekund} other {# sekundit}} left", "trends.count_by_accounts": "{count} {rawCount, plural, one {inimene} other {inimesed}} talking", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "Sinu mustand läheb kaotsi, kui lahkud Mastodonist.", "upload_area.title": "Lohista & aseta üleslaadimiseks", "upload_button.label": "Lisa meedia (JPEG, PNG, GIF, WebM, MP4, MOV)", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index da16bf669b..e88bcfff16 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -4,7 +4,7 @@ "account.block": "Blokeatu @{name}", "account.block_domain": "Ezkutatu {domain} domeinuko guztia", "account.blocked": "Blokeatuta", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "Ezeztatu jarraitzeko eskaria", "account.direct": "Mezu zuzena @{name}(r)i", "account.domain_blocked": "Ezkutatutako domeinua", "account.edit_profile": "Aldatu profila", @@ -16,6 +16,7 @@ "account.follows.empty": "Erabiltzaile honek ez du inor jarraitzen oraindik.", "account.follows_you": "Jarraitzen dizu", "account.hide_reblogs": "Ezkutatu @{name}(r)en bultzadak", + "account.last_status": "Azkenekoz aktiboa", "account.link_verified_on": "Esteka honen jabetzaren egiaztaketa data: {date}", "account.locked_info": "Kontu honen pribatutasun egoera blokeatuta gisa ezarri da. Jabeak eskuz erabakitzen du nork jarraitu diezaioken.", "account.media": "Multimedia", @@ -24,6 +25,7 @@ "account.mute": "Mututu @{name}", "account.mute_notifications": "Mututu @{name}(r)en jakinarazpenak", "account.muted": "Mutututa", + "account.never_active": "Inoiz ez", "account.posts": "Toot", "account.posts_with_replies": "Toot eta erantzunak", "account.report": "Salatu @{name}", @@ -36,9 +38,11 @@ "account.unfollow": "Utzi jarraitzeari", "account.unmute": "Desmututu @{name}", "account.unmute_notifications": "Desmututu @{name}(r)en jakinarazpenak", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Ustekabeko errore bat gertatu da.", "alert.unexpected.title": "Ene!", - "autosuggest_hashtag.per_week": "{count} per week", + "autosuggest_hashtag.per_week": "{count} asteko", "boost_modal.combo": "{combo} sakatu dezakezu hurrengoan hau saltatzeko", "bundle_column_error.body": "Zerbait okerra gertatu da osagai hau kargatzean.", "bundle_column_error.retry": "Saiatu berriro", @@ -49,6 +53,7 @@ "column.blocks": "Blokeatutako erabiltzaileak", "column.community": "Denbora-lerro lokala", "column.direct": "Mezu zuzenak", + "column.directory": "Arakatu profilak", "column.domain_blocks": "Ezkutatutako domeinuak", "column.favourites": "Gogokoak", "column.follow_requests": "Jarraitzeko eskariak", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Ziur behin betiko ezabatu nahi duzula zerrenda hau?", "confirmations.domain_block.confirm": "Ezkutatu domeinu osoa", "confirmations.domain_block.message": "Ziur, erabat ziur, {domain} domeinu osoa blokeatu nahi duzula? Gehienetan gutxi batzuk blokeatu edo mututzearekin nahikoa da. Ez duzu domeinu horretako edukirik ikusiko denbora lerroetan edo jakinarazpenetan. Domeinu horretako zure jarraitzaileak kenduko dira ere.", + "confirmations.logout.confirm": "Amaitu saioa", + "confirmations.logout.message": "Ziur saioa amaitu nahi duzula?", "confirmations.mute.confirm": "Mututu", "confirmations.mute.message": "Ziur {name} mututu nahi duzula?", "confirmations.redraft.confirm": "Ezabatu eta berridatzi", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Orain erantzuteak idazten ari zaren mezua gainidatziko du. Ziur jarraitu nahi duzula?", "confirmations.unfollow.confirm": "Utzi jarraitzeari", "confirmations.unfollow.message": "Ziur {name} jarraitzeari utzi nahi diozula?", + "directory.federated": "Fedibertso ezagunekoak", + "directory.local": "{domain} domeinukoak soilik", + "directory.new_arrivals": "Iritsi berriak", + "directory.recently_active": "Duela gutxi aktibo", "embed.instructions": "Txertatu mezu hau zure webgunean beheko kodea kopatuz.", "embed.preview": "Hau da izango duen itxura:", "emoji_button.activity": "Jarduera", @@ -158,7 +169,7 @@ "home.column_settings.basic": "Oinarrizkoa", "home.column_settings.show_reblogs": "Erakutsi bultzadak", "home.column_settings.show_replies": "Erakutsi erantzunak", - "home.column_settings.update_live": "Eguneratu denbora errealean", + "home.column_settings.update_live": "Update in real-time", "intervals.full.days": "{number, plural, one {egun #} other {# egun}}", "intervals.full.hours": "{number, plural, one {ordu #} other {# ordu}}", "intervals.full.minutes": "{number, plural, one {minutu #} other {# minutu}}", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Pertsonala", "navigation_bar.pins": "Finkatutako toot-ak", "navigation_bar.preferences": "Hobespenak", - "navigation_bar.profile_directory": "Profilen direktorioa", "navigation_bar.public_timeline": "Federatutako denbora-lerroa", "navigation_bar.security": "Segurtasuna", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Erakutsi gehiago", "status.show_more_all": "Erakutsi denetarik gehiago", "status.show_thread": "Erakutsi haria", + "status.uncached_media_warning": "Ez eskuragarri", "status.unmute_conversation": "Desmututu elkarrizketa", "status.unpin": "Desfinkatu profiletik", "suggestions.dismiss": "Errefusatu proposamena", @@ -373,22 +384,22 @@ "time_remaining.moments": "Amaitzekotan", "time_remaining.seconds": "{number, plural, one {segundo #} other {# segundo}} amaitzeko", "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} hitz egiten", - "trends.refresh": "Refresh", + "trends.trending_now": "Joera orain", "ui.beforeunload": "Zure zirriborroa galduko da Mastodon uzten baduzu.", "upload_area.title": "Arrastatu eta jaregin igotzeko", "upload_button.label": "Gehitu multimedia (JPEG, PNG, GIF, WebM, MP4, MOV)", "upload_error.limit": "Fitxategi igoera muga gaindituta.", "upload_error.poll": "Ez da inkestetan fitxategiak igotzea onartzen.", "upload_form.description": "Deskribatu ikusmen arazoak dituztenentzat", - "upload_form.edit": "Edit", + "upload_form.edit": "Editatu", "upload_form.undo": "Ezabatu", - "upload_modal.analyzing_picture": "Analyzing picture…", - "upload_modal.apply": "Apply", + "upload_modal.analyzing_picture": "Irudia aztertzen…", + "upload_modal.apply": "Aplikatu", "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", - "upload_modal.detect_text": "Detect text from picture", - "upload_modal.edit_media": "Edit media", + "upload_modal.detect_text": "Antzeman irudiko testua", + "upload_modal.edit_media": "Editatu multimedia", "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.", - "upload_modal.preview_label": "Preview ({ratio})", + "upload_modal.preview_label": "Aurreikusi({ratio})", "upload_progress.label": "Igotzen...", "video.close": "Itxi bideoa", "video.exit_fullscreen": "Irten pantaila osotik", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index 9804cd4c82..632698c468 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -4,7 +4,7 @@ "account.block": "مسدودسازی @{name}", "account.block_domain": "پنهان‌سازی همه چیز از سرور {domain}", "account.blocked": "مسدودشده", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "لغو درخواست پیگیری", "account.direct": "پیغام خصوصی به @{name}", "account.domain_blocked": "دامین پنهان‌شده", "account.edit_profile": "ویرایش نمایه", @@ -16,7 +16,8 @@ "account.follows.empty": "این کاربر هنوز هیچ کسی را پی نمی‌گیرد.", "account.follows_you": "پیگیر شماست", "account.hide_reblogs": "پنهان کردن بازبوق‌های @{name}", - "account.link_verified_on": "مالکیت این نشانی در تایخ {date} بررسی شد", + "account.last_status": "Last active", + "account.link_verified_on": "مالکیت این نشانی در تاریخ {date} بررسی شد", "account.locked_info": "این حساب خصوصی است. صاحب این حساب تصمیم می‌گیرد که چه کسی می‌تواند پیگیرش باشد.", "account.media": "عکس و ویدیو", "account.mention": "نام‌بردن از @{name}", @@ -24,6 +25,7 @@ "account.mute": "بی‌صدا کردن @{name}", "account.mute_notifications": "بی‌صداکردن اعلان‌ها از طرف @{name}", "account.muted": "بی‌صداشده", + "account.never_active": "Never", "account.posts": "نوشته‌ها", "account.posts_with_replies": "نوشته‌ها و پاسخ‌ها", "account.report": "گزارش @{name}", @@ -36,9 +38,11 @@ "account.unfollow": "پایان پیگیری", "account.unmute": "باصدا کردن @{name}", "account.unmute_notifications": "باصداکردن اعلان‌ها از طرف @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "خطای پیش‌بینی‌نشده‌ای رخ داد.", "alert.unexpected.title": "ای وای!", - "autosuggest_hashtag.per_week": "{count} per week", + "autosuggest_hashtag.per_week": "{count} در هفته", "boost_modal.combo": "دکمهٔ {combo} را بزنید تا دیگر این را نبینید", "bundle_column_error.body": "هنگام بازکردن این بخش خطایی رخ داد.", "bundle_column_error.retry": "تلاش دوباره", @@ -49,6 +53,7 @@ "column.blocks": "کاربران مسدودشده", "column.community": "نوشته‌های محلی", "column.direct": "پیغام‌های خصوصی", + "column.directory": "Browse profiles", "column.domain_blocks": "دامین‌های پنهان‌شده", "column.favourites": "پسندیده‌ها", "column.follow_requests": "درخواست‌های پیگیری", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "آیا واقعاً می‌خواهید این فهرست را برای همیشه پاک کنید؟", "confirmations.domain_block.confirm": "پنهان‌سازی کل دامین", "confirmations.domain_block.message": "آیا جدی جدی می‌خواهید کل دامین {domain} را مسدود کنید؟ بیشتر وقت‌ها مسدودکردن یا بی‌صداکردن چند حساب کاربری خاص کافی است و توصیه می‌شود. پس از این کار شما هیچ نوشته‌ای را از این دامین در فهرست نوشته‌های عمومی یا اعلان‌هایتان نخواهید دید. پیگیران شما از این دامین هم حذف خواهد شد.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "بی‌صدا کن", "confirmations.mute.message": "آیا واقعاً می‌خواهید {name} را بی‌صدا کنید؟", "confirmations.redraft.confirm": "پاک‌کردن و بازنویسی", @@ -103,6 +110,10 @@ "confirmations.reply.message": "اگر الان پاسخ دهید، چیزی که در حال نوشتنش بودید پاک خواهد شد. آیا همین را می‌خواهید؟", "confirmations.unfollow.confirm": "لغو پیگیری", "confirmations.unfollow.message": "آیا واقعاً می‌خواهید به پیگیری از {name} پایان دهید؟", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "برای جاگذاری این نوشته در سایت خودتان، کد زیر را کپی کنید.", "embed.preview": "نوشتهٔ جاگذاری‌شده این گونه به نظر خواهد رسید:", "emoji_button.activity": "فعالیت", @@ -128,7 +139,7 @@ "empty_column.favourited_statuses": "شما هنوز هیچ بوقی را نپسندیده‌اید. وقتی بوقی را بپسندید، این‌جا نمایش خواهد یافت.", "empty_column.favourites": "هنوز هیچ کسی این بوق را نپسندیده است. وقتی کسی آن را بپسندد، نامش این‌جا نمایش خواهد یافت.", "empty_column.follow_requests": "شما هنوز هیچ درخواست پیگیری‌ای ندارید. وقتی چنین درخواستی بگیرید، این‌جا نمایش خواهد یافت.", - "empty_column.hashtag": "هنوز هیچ چیزی با این هشتگ نیست.", + "empty_column.hashtag": "هنوز هیچ چیزی با این برچسب (هشتگ) نیست.", "empty_column.home": "شما هنوز پیگیر کسی نیستید. {public} را ببینید یا چیزی را جستجو کنید تا کاربران دیگر را ببینید.", "empty_column.home.public_timeline": "فهرست نوشته‌های همه‌جا", "empty_column.list": "در این فهرست هنوز چیزی نیست. وقتی اعضای این فهرست چیزی بنویسند، این‌جا ظاهر خواهد شد.", @@ -158,7 +169,7 @@ "home.column_settings.basic": "اصلی", "home.column_settings.show_reblogs": "نمایش بازبوق‌ها", "home.column_settings.show_replies": "نمایش پاسخ‌ها", - "home.column_settings.update_live": "به‌روزرسانی لحظه‌ای", + "home.column_settings.update_live": "Update in real-time", "intervals.full.days": "{number, plural, one {# روز} other {# روز}}", "intervals.full.hours": "{number, plural, one {# ساعت} other {# ساعت}}", "intervals.full.minutes": "{number, plural, one {# دقیقه} other {# دقیقه}}", @@ -250,7 +261,6 @@ "navigation_bar.personal": "شخصی", "navigation_bar.pins": "نوشته‌های ثابت", "navigation_bar.preferences": "ترجیحات", - "navigation_bar.profile_directory": "فهرست گزیدهٔ کاربران", "navigation_bar.public_timeline": "نوشته‌های همه‌جا", "navigation_bar.security": "امنیت", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -312,12 +322,12 @@ "search.placeholder": "جستجو", "search_popout.search_format": "راهنمای جستجوی پیشرفته", "search_popout.tips.full_text": "جستجوی متنی ساده می‌تواند بوق‌هایی که شما نوشته‌اید، پسندیده‌اید، بازبوقیده‌اید، یا در آن‌ها از شما نام برده شده است را پیدا کند. همچنین نام‌های کاربری، نام نمایش‌یافته، و هشتگ‌ها را هم شامل می‌شود.", - "search_popout.tips.hashtag": "هشتگ", + "search_popout.tips.hashtag": "برچسب", "search_popout.tips.status": "نوشته", - "search_popout.tips.text": "جستجوی متنی ساده برای نام‌ها، نام‌های کاربری، و هشتگ‌ها", + "search_popout.tips.text": "جستجوی متنی ساده برای نام‌ها، نام‌های کاربری، و برچسب‌ها", "search_popout.tips.user": "کاربر", "search_results.accounts": "افراد", - "search_results.hashtags": "هشتگ‌ها", + "search_results.hashtags": "برچسب‌ها", "search_results.statuses": "بوق‌ها", "search_results.statuses_fts_disabled": "جستجوی محتوای بوق‌ها در این سرور ماستدون ممکن نیست.", "search_results.total": "{count, number} {count, plural, one {نتیجه} other {نتیجه}}", @@ -358,6 +368,7 @@ "status.show_more": "نمایش", "status.show_more_all": "نمایش بیشتر همه", "status.show_thread": "نمایش گفتگو", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "باصداکردن گفتگو", "status.unpin": "برداشتن نوشتهٔ ثابت نمایه", "suggestions.dismiss": "پیشنهاد را نادیده بگیر", @@ -373,22 +384,22 @@ "time_remaining.moments": "زمان باقی‌مانده", "time_remaining.seconds": "{number, plural, one {# ثانیه} other {# ثانیه}} باقی مانده", "trends.count_by_accounts": "{count} {rawCount, plural, one {نفر نوشته است} other {نفر نوشته‌اند}}", - "trends.refresh": "Refresh", + "trends.trending_now": "پرطرفدار", "ui.beforeunload": "اگر از ماستدون خارج شوید پیش‌نویس شما پاک خواهد شد.", "upload_area.title": "برای بارگذاری به این‌جا بکشید", "upload_button.label": "افزودن عکس و ویدیو (JPEG, PNG, GIF, WebM, MP4, MOV)", "upload_error.limit": "از حد مجاز باگذاری فراتر رفتید.", "upload_error.poll": "باگذاری پرونده در نظرسنجی‌ها ممکن نیست.", "upload_form.description": "نوشتهٔ توضیحی برای کم‌بینایان و نابینایان", - "upload_form.edit": "Edit", + "upload_form.edit": "ویرایش", "upload_form.undo": "حذف", - "upload_modal.analyzing_picture": "Analyzing picture…", - "upload_modal.apply": "Apply", - "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", - "upload_modal.detect_text": "Detect text from picture", - "upload_modal.edit_media": "Edit media", - "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.", - "upload_modal.preview_label": "Preview ({ratio})", + "upload_modal.analyzing_picture": "در حال پردازش تصویر…", + "upload_modal.apply": "اجرا", + "upload_modal.description_placeholder": "مردی با بیل مادرزنش را کشت", + "upload_modal.detect_text": "پیدا کردن نوشته از درون تصویر", + "upload_modal.edit_media": "ویرایش تصویر", + "upload_modal.hint": "حتی اگر تصویر بریده یا کوچک شود، نقطهٔ کانونی آن همیشه دیده خواهد شد. نقطهٔ کانونی را با کلیک یا جابه‌جا کردن آن تنظیم کنید.", + "upload_modal.preview_label": "پیش‌نمایش ({ratio})", "upload_progress.label": "بارگذاری...", "video.close": "بستن ویدیو", "video.exit_fullscreen": "خروج از حالت تمام صفحه", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index baed4f0a5f..8f8e9fc586 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -16,6 +16,7 @@ "account.follows.empty": "Tämä käyttäjä ei vielä seuraa ketään.", "account.follows_you": "Seuraa sinua", "account.hide_reblogs": "Piilota buustaukset käyttäjältä @{name}", + "account.last_status": "Last active", "account.link_verified_on": "Tämän linkin omistaja tarkistettiin {date}", "account.locked_info": "Tämän tili on yksityinen. Käyttäjä vahvistaa itse kuka voi seurata häntä.", "account.media": "Media", @@ -24,6 +25,7 @@ "account.mute": "Mykistä @{name}", "account.mute_notifications": "Mykistä ilmoitukset käyttäjältä @{name}", "account.muted": "Mykistetty", + "account.never_active": "Never", "account.posts": "Tuuttaukset", "account.posts_with_replies": "Tuuttaukset ja vastaukset", "account.report": "Raportoi @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "Lakkaa seuraamasta", "account.unmute": "Poista käyttäjän @{name} mykistys", "account.unmute_notifications": "Poista mykistys käyttäjän @{name} ilmoituksilta", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Tapahtui odottamaton virhe.", "alert.unexpected.title": "Hups!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "Estetyt käyttäjät", "column.community": "Paikallinen aikajana", "column.direct": "Viestit", + "column.directory": "Browse profiles", "column.domain_blocks": "Piilotetut verkkotunnukset", "column.favourites": "Suosikit", "column.follow_requests": "Seuraamispyynnöt", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Haluatko varmasti poistaa tämän listan kokonaan?", "confirmations.domain_block.confirm": "Piilota koko verkko-osoite", "confirmations.domain_block.message": "Haluatko aivan varmasti estää koko verkko-osoitteen {domain}? Useimmiten jokunen kohdistettu esto ja mykistys riittää, ja se on suositeltavampi tapa toimia.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Mykistä", "confirmations.mute.message": "Haluatko varmasti mykistää käyttäjän {name}?", "confirmations.redraft.confirm": "Poista & palauta muokattavaksi", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Jos vastaat nyt, vastaus korvaa tällä hetkellä työstämäsi viestin. Oletko varma, että haluat jatkaa?", "confirmations.unfollow.confirm": "Lakkaa seuraamasta", "confirmations.unfollow.message": "Haluatko varmasti lakata seuraamasta käyttäjää {name}?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Upota statuspäivitys sivullesi kopioimalla alla oleva koodi.", "embed.preview": "Se tulee näyttämään tältä:", "emoji_button.activity": "Aktiviteetit", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Personal", "navigation_bar.pins": "Kiinnitetyt tuuttaukset", "navigation_bar.preferences": "Asetukset", - "navigation_bar.profile_directory": "Profile directory", "navigation_bar.public_timeline": "Yleinen aikajana", "navigation_bar.security": "Tunnukset", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Näytä lisää", "status.show_more_all": "Näytä lisää kaikista", "status.show_thread": "Show thread", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Poista keskustelun mykistys", "status.unpin": "Irrota profiilista", "suggestions.dismiss": "Dismiss suggestion", @@ -373,7 +384,7 @@ "time_remaining.moments": "Moments remaining", "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "Luonnos häviää, jos poistut Mastodonista.", "upload_area.title": "Lataa raahaamalla ja pudottamalla tähän", "upload_button.label": "Lisää mediaa", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 12025baff7..72158c413e 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -4,11 +4,11 @@ "account.block": "Bloquer @{name}", "account.block_domain": "Tout masquer venant de {domain}", "account.blocked": "Bloqué", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "Annuler la demande de suivi", "account.direct": "Envoyer un message direct à @{name}", "account.domain_blocked": "Domaine caché", "account.edit_profile": "Modifier le profil", - "account.endorse": "Figure sur le profil", + "account.endorse": "Mettre en avant sur le profil", "account.follow": "Suivre", "account.followers": "Abonné⋅e⋅s", "account.followers.empty": "Personne ne suit cet utilisateur·rice pour l’instant.", @@ -16,6 +16,7 @@ "account.follows.empty": "Cet·te utilisateur·rice ne suit personne pour l’instant.", "account.follows_you": "Vous suit", "account.hide_reblogs": "Masquer les partages de @{name}", + "account.last_status": "Dernière activité", "account.link_verified_on": "La propriété de ce lien a été vérifiée le {date}", "account.locked_info": "Ce compte est verrouillé. Son propriétaire approuve manuellement qui peut le ou la suivre.", "account.media": "Média", @@ -24,6 +25,7 @@ "account.mute": "Masquer @{name}", "account.mute_notifications": "Ignorer les notifications de @{name}", "account.muted": "Silencé", + "account.never_active": "Jamais", "account.posts": "Pouets", "account.posts_with_replies": "Pouets et réponses", "account.report": "Signaler @{name}", @@ -32,14 +34,16 @@ "account.show_reblogs": "Afficher les partages de @{name}", "account.unblock": "Débloquer @{name}", "account.unblock_domain": "Ne plus masquer {domain}", - "account.unendorse": "Ne figure pas sur le profil", + "account.unendorse": "Ne pas mettre en avant sur le profil", "account.unfollow": "Ne plus suivre", "account.unmute": "Ne plus masquer @{name}", "account.unmute_notifications": "Réactiver les notifications de @{name}", + "alert.rate_limited.message": "Veuillez réessayer après {retry_time, time, medium}.", + "alert.rate_limited.title": "Taux limité", "alert.unexpected.message": "Une erreur inattendue s’est produite.", "alert.unexpected.title": "Oups !", - "autosuggest_hashtag.per_week": "{count} per week", - "boost_modal.combo": "Vous pouvez appuyer sur {combo} pour pouvoir passer ceci, la prochaine fois", + "autosuggest_hashtag.per_week": "{count} par semaine", + "boost_modal.combo": "Vous pouvez appuyer sur {combo} pour passer ceci, la prochaine fois", "bundle_column_error.body": "Une erreur s’est produite lors du chargement de ce composant.", "bundle_column_error.retry": "Réessayer", "bundle_column_error.title": "Erreur réseau", @@ -48,7 +52,8 @@ "bundle_modal_error.retry": "Réessayer", "column.blocks": "Comptes bloqués", "column.community": "Fil public local", - "column.direct": "Messages directs", + "column.direct": "Messages privés", + "column.directory": "Parcourir les profils", "column.domain_blocks": "Domaines cachés", "column.favourites": "Favoris", "column.follow_requests": "Demandes de suivi", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Êtes-vous sûr·e de vouloir supprimer définitivement cette liste ?", "confirmations.domain_block.confirm": "Masquer le domaine entier", "confirmations.domain_block.message": "Êtes-vous vraiment, vraiment sûr⋅e de vouloir bloquer {domain} en entier ? Dans la plupart des cas, quelques blocages ou masquages ciblés sont suffisants et préférables. Vous ne verrez plus de contenu provenant de ce domaine, ni dans fils publics, ni dans vos notifications. Vos abonné·e·s utilisant ce domaine seront retiré·e·s.", + "confirmations.logout.confirm": "Déconnexion", + "confirmations.logout.message": "Êtes-vous sûr de vouloir vous déconnecter ?", "confirmations.mute.confirm": "Masquer", "confirmations.mute.message": "Confirmez-vous le masquage de {name} ?", "confirmations.redraft.confirm": "Effacer et ré-écrire", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Répondre maintenant écrasera le message que vous êtes en train de composer. Voulez-vous vraiment continuer ?", "confirmations.unfollow.confirm": "Ne plus suivre", "confirmations.unfollow.message": "Voulez-vous arrêter de suivre {name} ?", + "directory.federated": "De la fédiverse connue", + "directory.local": "De {domain} seulement", + "directory.new_arrivals": "Nouveaux arrivants", + "directory.recently_active": "Récemment actif", "embed.instructions": "Intégrez ce statut à votre site en copiant le code ci-dessous.", "embed.preview": "Il apparaîtra comme cela :", "emoji_button.activity": "Activités", @@ -158,7 +169,7 @@ "home.column_settings.basic": "Basique", "home.column_settings.show_reblogs": "Afficher les partages", "home.column_settings.show_replies": "Afficher les réponses", - "home.column_settings.update_live": "Mettre à jour en temps réel", + "home.column_settings.update_live": "Update in real-time", "intervals.full.days": "{number, plural, one {# jour} other {# jours}}", "intervals.full.hours": "{number, plural, one {# heure} other {# heures}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", @@ -171,7 +182,7 @@ "introduction.federation.local.text": "Les messages publics de personnes se trouvant sur le même serveur que vous apparaîtront sur le fil public local.", "introduction.interactions.action": "Finir le tutoriel !", "introduction.interactions.favourite.headline": "Favoris", - "introduction.interactions.favourite.text": "Vous pouvez garder un pouet pour plus tard, et faire savoir à son auteur·ice que vous l'avez aimé, en le favorisant.", + "introduction.interactions.favourite.text": "Vous pouvez garder un pouet pour plus tard et faire savoir à son auteur·ice que vous l’avez aimé, en le favorisant.", "introduction.interactions.reblog.headline": "Repartager", "introduction.interactions.reblog.text": "Vous pouvez partager les pouets d'autres personnes avec vos abonné·e·s en les repartageant.", "introduction.interactions.reply.headline": "Répondre", @@ -242,7 +253,7 @@ "navigation_bar.filters": "Mots silenciés", "navigation_bar.follow_requests": "Demandes de suivi", "navigation_bar.follows_and_followers": "Abonnements et abonné⋅e·s", - "navigation_bar.info": "Plus d’informations", + "navigation_bar.info": "À propos de ce serveur", "navigation_bar.keyboard_shortcuts": "Raccourcis clavier", "navigation_bar.lists": "Listes", "navigation_bar.logout": "Déconnexion", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Personnel", "navigation_bar.pins": "Pouets épinglés", "navigation_bar.preferences": "Préférences", - "navigation_bar.profile_directory": "Annuaire des profils", "navigation_bar.public_timeline": "Fil public global", "navigation_bar.security": "Sécurité", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -321,8 +331,8 @@ "search_results.statuses": "Pouets", "search_results.statuses_fts_disabled": "La recherche de pouets par leur contenu n'est pas activée sur ce serveur Mastodon.", "search_results.total": "{count, number} {count, plural, one {résultat} other {résultats}}", - "status.admin_account": "Ouvrir l'interface de modération pour @{name}", - "status.admin_status": "Ouvrir ce statut dans l'interface de modération", + "status.admin_account": "Ouvrir l’interface de modération pour @{name}", + "status.admin_status": "Ouvrir ce statut dans l’interface de modération", "status.block": "Bloquer @{name}", "status.cancel_reblog_private": "Dé-booster", "status.cannot_reblog": "Cette publication ne peut être boostée", @@ -358,6 +368,7 @@ "status.show_more": "Déplier", "status.show_more_all": "Tout déplier", "status.show_thread": "Lire le fil", + "status.uncached_media_warning": "Indisponible", "status.unmute_conversation": "Ne plus masquer la conversation", "status.unpin": "Retirer du profil", "suggestions.dismiss": "Rejeter la suggestion", @@ -373,22 +384,22 @@ "time_remaining.moments": "Encore quelques instants", "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} restantes", "trends.count_by_accounts": "{count} {rawCount, plural, one {personne} other {personnes}} discutent", - "trends.refresh": "Refresh", + "trends.trending_now": "Tendance en ce moment", "ui.beforeunload": "Votre brouillon sera perdu si vous quittez Mastodon.", "upload_area.title": "Glissez et déposez pour envoyer", - "upload_button.label": "Joindre un média (JPEG, PNG, GIF, WebM, MP4, MOV)", + "upload_button.label": "Joindre un média ({formats})", "upload_error.limit": "Taille maximale d'envoi de fichier dépassée.", - "upload_error.poll": "L'envoi de fichiers n'est pas autorisé avec les sondages.", + "upload_error.poll": "L’envoi de fichiers n’est pas autorisé avec les sondages.", "upload_form.description": "Décrire pour les malvoyant·e·s", - "upload_form.edit": "Edit", + "upload_form.edit": "Modifier", "upload_form.undo": "Supprimer", - "upload_modal.analyzing_picture": "Analyzing picture…", - "upload_modal.apply": "Apply", - "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", - "upload_modal.detect_text": "Detect text from picture", - "upload_modal.edit_media": "Edit media", - "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.", - "upload_modal.preview_label": "Preview ({ratio})", + "upload_modal.analyzing_picture": "Analyse de l’image en cours…", + "upload_modal.apply": "Appliquer", + "upload_modal.description_placeholder": "Buvez de ce whisky que le patron juge fameux", + "upload_modal.detect_text": "Détecter le texte de l’image", + "upload_modal.edit_media": "Modifier le média", + "upload_modal.hint": "Cliquez ou faites glisser le cercle sur l’aperçu pour choisir le point focal qui sera toujours visible sur toutes les miniatures.", + "upload_modal.preview_label": "Aperçu ({ratio})", "upload_progress.label": "Envoi en cours…", "video.close": "Fermer la vidéo", "video.exit_fullscreen": "Quitter le plein écran", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index fcbc160177..1bf37c8985 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -4,7 +4,7 @@ "account.block": "Bloquear @{name}", "account.block_domain": "Ocultar calquer contido de {domain}", "account.blocked": "Bloqueada", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "Cancelar petición de seguemento", "account.direct": "Mensaxe directa @{name}", "account.domain_blocked": "Dominio agochado", "account.edit_profile": "Editar perfil", @@ -16,6 +16,7 @@ "account.follows.empty": "Esta usuaria aínda non segue a ninguén.", "account.follows_you": "Séguete", "account.hide_reblogs": "Ocultar repeticións de @{name}", + "account.last_status": "Último activo", "account.link_verified_on": "A propiedade de esta ligazón foi comprobada en {date}", "account.locked_info": "O estado da intimidade de esta conta estableceuse en pechado. A persoa dona da conta revisa quen pode seguila.", "account.media": "Medios", @@ -24,6 +25,7 @@ "account.mute": "Acalar @{name}", "account.mute_notifications": "Acalar as notificacións de @{name}", "account.muted": "Acalada", + "account.never_active": "Nunca", "account.posts": "Toots", "account.posts_with_replies": "Toots e respostas", "account.report": "Informar sobre @{name}", @@ -36,9 +38,11 @@ "account.unfollow": "Non seguir", "account.unmute": "Non acalar @{name}", "account.unmute_notifications": "Desbloquear as notificacións de @{name}", + "alert.rate_limited.message": "Por favor inténteo tras {retry_time, time, medium}.", + "alert.rate_limited.title": "Taxa limitada", "alert.unexpected.message": "Aconteceu un fallo non agardado.", "alert.unexpected.title": "Vaia!", - "autosuggest_hashtag.per_week": "{count} per week", + "autosuggest_hashtag.per_week": "{count} por semana", "boost_modal.combo": "Pulse {combo} para saltar esto a próxima vez", "bundle_column_error.body": "Houbo un fallo mentras se cargaba este compoñente.", "bundle_column_error.retry": "Inténteo de novo", @@ -49,6 +53,7 @@ "column.blocks": "Usuarias bloqueadas", "column.community": "Liña temporal local", "column.direct": "Mensaxes directas", + "column.directory": "Ver perfiles", "column.domain_blocks": "Dominios agochados", "column.favourites": "Favoritas", "column.follow_requests": "Peticións de seguimento", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Estás seguro de que queres eliminar permanentemente esta lista?", "confirmations.domain_block.confirm": "Agochar un dominio completo", "confirmations.domain_block.message": "Realmente está segura de que quere bloquear por completo o dominio {domain}? Normalmente é suficiente, e preferible, bloquear de xeito selectivo varios elementos. Non verá contidos de ese dominio en ningunha liña temporal ou nas notificacións. As súas seguidoras en ese dominio serán eliminadas.", + "confirmations.logout.confirm": "Desconectar", + "confirmations.logout.message": "Seguro que desexa desconectar?", "confirmations.mute.confirm": "Acalar", "confirmations.mute.message": "Está segura de que quere acalar a {name}?", "confirmations.redraft.confirm": "Eliminar e reescribir", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Respostando agora sobreescribirá a mensaxe que está a compoñer. Segura de querer proceder?", "confirmations.unfollow.confirm": "Deixar de seguir", "confirmations.unfollow.message": "Quere deixar de seguir a {name}?", + "directory.federated": "Desde o fediverso coñecido", + "directory.local": "Só desde {domain}", + "directory.new_arrivals": "Novas achegas", + "directory.recently_active": "Activo recentemente", "embed.instructions": "Copie o código inferior para incrustar no seu sitio web este estado.", "embed.preview": "Así será mostrado:", "emoji_button.activity": "Actividade", @@ -158,7 +169,7 @@ "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Mostrar repeticións", "home.column_settings.show_replies": "Mostrar respostas", - "home.column_settings.update_live": "Actualizar en tempo real", + "home.column_settings.update_live": "Update in real-time", "intervals.full.days": "{number, plural,one {# día} other {# días}}", "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}", "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Persoal", "navigation_bar.pins": "Mensaxes fixadas", "navigation_bar.preferences": "Preferencias", - "navigation_bar.profile_directory": "Directorio de perfil", "navigation_bar.public_timeline": "Liña temporal federada", "navigation_bar.security": "Seguridade", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Mostrar máis", "status.show_more_all": "Mostrar máis para todas", "status.show_thread": "Mostrar fío", + "status.uncached_media_warning": "Non dispoñible", "status.unmute_conversation": "Non acalar a conversa", "status.unpin": "Despegar do perfil", "suggestions.dismiss": "Rexeitar suxestión", @@ -373,22 +384,22 @@ "time_remaining.moments": "Está rematando", "time_remaining.seconds": "{number, plural, one {# segundo} other {# segundos}} restantes", "trends.count_by_accounts": "{count} {rawCount, plural, one {person} outras {people}} conversando", - "trends.refresh": "Refresh", + "trends.trending_now": "Tendencias actuais", "ui.beforeunload": "O borrador perderase se sae de Mastodon.", "upload_area.title": "Arrastre e solte para subir", "upload_button.label": "Engadir medios ({formats})", "upload_error.limit": "Excedeu o límite de subida de ficheiros.", "upload_error.poll": "Non se poden subir ficheiros nas sondaxes.", "upload_form.description": "Describa para deficientes visuais", - "upload_form.edit": "Edit", + "upload_form.edit": "Editar", "upload_form.undo": "Eliminar", - "upload_modal.analyzing_picture": "Analyzing picture…", - "upload_modal.apply": "Apply", - "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", - "upload_modal.detect_text": "Detect text from picture", - "upload_modal.edit_media": "Edit media", - "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.", - "upload_modal.preview_label": "Preview ({ratio})", + "upload_modal.analyzing_picture": "Analizando imaxe…", + "upload_modal.apply": "Aplicar", + "upload_modal.description_placeholder": "Un raposo moi feitiño salta sobre o can preguiceiro", + "upload_modal.detect_text": "Detectar texto na imaxe", + "upload_modal.edit_media": "Editar medios", + "upload_modal.hint": "Prema ou arrastre o círculo na vista previa para escolle o punto focal que se verá na vista de todas as miniaturas.", + "upload_modal.preview_label": "Vista previa ({ratio})", "upload_progress.label": "Subindo...", "video.close": "Pechar video", "video.exit_fullscreen": "Saír da pantalla completa", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index e17d451ca7..fd7e40c532 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -16,6 +16,7 @@ "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "במעקב אחריך", "account.hide_reblogs": "להסתיר הידהודים מאת @{name}", + "account.last_status": "Last active", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "מדיה", @@ -24,6 +25,7 @@ "account.mute": "להשתיק את @{name}", "account.mute_notifications": "להסתיר התראות מאת @{name}", "account.muted": "Muted", + "account.never_active": "Never", "account.posts": "הודעות", "account.posts_with_replies": "Toots with replies", "account.report": "לדווח על @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "הפסקת מעקב", "account.unmute": "הפסקת השתקת @{name}", "account.unmute_notifications": "להפסיק הסתרת הודעות מעם @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "אירעה שגיאה בלתי צפויה.", "alert.unexpected.title": "אופס!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "חסימות", "column.community": "ציר זמן מקומי", "column.direct": "Direct messages", + "column.directory": "Browse profiles", "column.domain_blocks": "Hidden domains", "column.favourites": "חיבובים", "column.follow_requests": "בקשות מעקב", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?", "confirmations.domain_block.confirm": "הסתר קהילה שלמה", "confirmations.domain_block.message": "באמת באמת לחסום את כל קהילת {domain}? ברב המקרים השתקות נבחרות של מספר משתמשים מסויימים צריכה להספיק.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "להשתיק", "confirmations.mute.message": "להשתיק את {name}?", "confirmations.redraft.confirm": "Delete & redraft", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.unfollow.confirm": "להפסיק מעקב", "confirmations.unfollow.message": "להפסיק מעקב אחרי {name}?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "ניתן להטמיע את ההודעה באתרך ע\"י העתקת הקוד שלהלן.", "embed.preview": "דוגמא כיצד זה יראה:", "emoji_button.activity": "פעילות", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Personal", "navigation_bar.pins": "חיצרוצים מקובעים", "navigation_bar.preferences": "העדפות", - "navigation_bar.profile_directory": "Profile directory", "navigation_bar.public_timeline": "ציר זמן בין-קהילתי", "navigation_bar.security": "Security", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "הראה יותר", "status.show_more_all": "Show more for all", "status.show_thread": "Show thread", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "הסרת השתקת שיחה", "status.unpin": "לשחרר מקיבוע באודות", "suggestions.dismiss": "Dismiss suggestion", @@ -373,7 +384,7 @@ "time_remaining.moments": "Moments remaining", "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "הטיוטא תאבד אם תעזבו את מסטודון.", "upload_area.title": "ניתן להעלות על ידי Drag & drop", "upload_button.label": "הוספת מדיה", diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json index 980b4e4573..55b383d599 100644 --- a/app/javascript/mastodon/locales/hi.json +++ b/app/javascript/mastodon/locales/hi.json @@ -16,6 +16,7 @@ "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "Follows you", "account.hide_reblogs": "Hide boosts from @{name}", + "account.last_status": "Last active", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "Media", @@ -24,6 +25,7 @@ "account.mute": "Mute @{name}", "account.mute_notifications": "Mute notifications from @{name}", "account.muted": "Muted", + "account.never_active": "Never", "account.posts": "Toots", "account.posts_with_replies": "Toots and replies", "account.report": "Report @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "Unfollow", "account.unmute": "Unmute @{name}", "account.unmute_notifications": "Unmute notifications from @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "An unexpected error occurred.", "alert.unexpected.title": "Oops!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "Blocked users", "column.community": "Local timeline", "column.direct": "Direct messages", + "column.directory": "Browse profiles", "column.domain_blocks": "Hidden domains", "column.favourites": "Favourites", "column.follow_requests": "Follow requests", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?", "confirmations.domain_block.confirm": "Hide entire domain", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Mute", "confirmations.mute.message": "Are you sure you want to mute {name}?", "confirmations.redraft.confirm": "Delete & redraft", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.unfollow.confirm": "Unfollow", "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Personal", "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Preferences", - "navigation_bar.profile_directory": "Profile directory", "navigation_bar.public_timeline": "Federated timeline", "navigation_bar.security": "Security", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Show more", "status.show_more_all": "Show more for all", "status.show_thread": "Show thread", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", "suggestions.dismiss": "Dismiss suggestion", @@ -373,7 +384,7 @@ "time_remaining.moments": "Moments remaining", "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", "upload_area.title": "Drag & drop to upload", "upload_button.label": "Add media (JPEG, PNG, GIF, WebM, MP4, MOV)", diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json index d718915c8f..8d7cb436ce 100644 --- a/app/javascript/mastodon/locales/hr.json +++ b/app/javascript/mastodon/locales/hr.json @@ -16,6 +16,7 @@ "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "te slijedi", "account.hide_reblogs": "Hide boosts from @{name}", + "account.last_status": "Last active", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "Media", @@ -24,6 +25,7 @@ "account.mute": "Utišaj @{name}", "account.mute_notifications": "Mute notifications from @{name}", "account.muted": "Muted", + "account.never_active": "Never", "account.posts": "Postovi", "account.posts_with_replies": "Toots with replies", "account.report": "Prijavi @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "Prestani slijediti", "account.unmute": "Poništi utišavanje @{name}", "account.unmute_notifications": "Unmute notifications from @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "An unexpected error occurred.", "alert.unexpected.title": "Oops!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "Blokirani korisnici", "column.community": "Lokalni timeline", "column.direct": "Direct messages", + "column.directory": "Browse profiles", "column.domain_blocks": "Hidden domains", "column.favourites": "Favoriti", "column.follow_requests": "Zahtjevi za slijeđenje", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?", "confirmations.domain_block.confirm": "Sakrij cijelu domenu", "confirmations.domain_block.message": "Jesi li zaista, zaista siguran da želiš potpuno blokirati {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Utišaj", "confirmations.mute.message": "Jesi li siguran da želiš utišati {name}?", "confirmations.redraft.confirm": "Delete & redraft", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.unfollow.confirm": "Unfollow", "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Aktivnost", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Personal", "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Postavke", - "navigation_bar.profile_directory": "Profile directory", "navigation_bar.public_timeline": "Federalni timeline", "navigation_bar.security": "Security", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Pokaži više", "status.show_more_all": "Show more for all", "status.show_thread": "Show thread", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Poništi utišavanje razgovora", "status.unpin": "Unpin from profile", "suggestions.dismiss": "Dismiss suggestion", @@ -373,7 +384,7 @@ "time_remaining.moments": "Moments remaining", "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", "upload_area.title": "Povuci i spusti kako bi uploadao", "upload_button.label": "Dodaj media", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index f06e748a8d..513f2a22a7 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -16,6 +16,7 @@ "account.follows.empty": "Ez a felhasználó még senkit sem követ.", "account.follows_you": "Követ téged", "account.hide_reblogs": "@{name} megtolásainak némítása", + "account.last_status": "Last active", "account.link_verified_on": "A linket ellenőriztük: {date}", "account.locked_info": "Ez a fiók zárt. A tulaj engedélyezi, ki követheti őt.", "account.media": "Média", @@ -24,6 +25,7 @@ "account.mute": "@{name} némítása", "account.mute_notifications": "@{name} értesítéseinek némítása", "account.muted": "Némítva", + "account.never_active": "Never", "account.posts": "Tülkölés", "account.posts_with_replies": "Tülkölés válaszokkal", "account.report": "@{name} jelentése", @@ -36,6 +38,8 @@ "account.unfollow": "Követés vége", "account.unmute": "@{name} némítás feloldása", "account.unmute_notifications": "@{name} némított értesítéseinek feloldása", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Váratlan hiba történt.", "alert.unexpected.title": "Hoppá!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "Letiltott felhasználók", "column.community": "Helyi idővonal", "column.direct": "Közvetlen üzenetek", + "column.directory": "Browse profiles", "column.domain_blocks": "Rejtett domainek", "column.favourites": "Kedvencek", "column.follow_requests": "Követési kérelmek", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Biztos, hogy véglegesen törölni szeretnéd ezt a listát?", "confirmations.domain_block.confirm": "Teljes domain elrejtése", "confirmations.domain_block.message": "Egészen biztos, hogy le szeretnéd tiltani a teljes {domain}-t? A legtöbb esetben néhány célzott tiltás vagy némítás elegendő és kívánatosabb megoldás. Semmilyen tartalmat nem fogsz látni ebből a domainből se idővonalakon, se értesítésekben. Az ebben a domainben lévő követőidet is eltávolítjuk.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Némítás", "confirmations.mute.message": "Biztos, hogy némítani szeretnéd {name}?", "confirmations.redraft.confirm": "Törlés és újraírás", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Ha most válaszolsz, ez felülírja a most szerkesztés alatt álló üzenetet. Mégis ezt szeretnéd?", "confirmations.unfollow.confirm": "Követés visszavonása", "confirmations.unfollow.message": "Biztos, hogy vissza szeretnéd vonni {name} követését?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Ágyazd be ezt a tülköt a weboldaladba az alábbi kód kimásolásával.", "embed.preview": "Így fog kinézni:", "emoji_button.activity": "Aktivitás", @@ -158,7 +169,7 @@ "home.column_settings.basic": "Alapértelmezések", "home.column_settings.show_reblogs": "Megtolások mutatása", "home.column_settings.show_replies": "Válaszok mutatása", - "home.column_settings.update_live": "Frissítés valós időben", + "home.column_settings.update_live": "Update in real-time", "intervals.full.days": "{number, plural, one {# nap} other {# nap}}", "intervals.full.hours": "{number, plural, one {# óra} other {# óra}}", "intervals.full.minutes": "{number, plural, one {# perc} other {# perc}}", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Személyes", "navigation_bar.pins": "Kitűzött tülkök", "navigation_bar.preferences": "Beállítások", - "navigation_bar.profile_directory": "Profilok", "navigation_bar.public_timeline": "Föderációs idővonal", "navigation_bar.security": "Biztonság", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Többet", "status.show_more_all": "Többet mindenhol", "status.show_thread": "Szál mutatása", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Beszélgetés némításának kikapcsolása", "status.unpin": "Kitűzés eltávolítása a profilodról", "suggestions.dismiss": "Javaslat elvetése", @@ -373,7 +384,7 @@ "time_remaining.moments": "Pillanatok vannak hátra", "time_remaining.seconds": "{number, plural, one {# másodperc} other {# másodperc}} van hátra", "trends.count_by_accounts": "{count} {rawCount, plural, one {résztvevő} other {résztvevő}} beszélget", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "A piszkozatod el fog veszni, ha elhagyod a Mastodon-t.", "upload_area.title": "Húzd ide a feltöltéshez", "upload_button.label": "Média hozzáadása (JPEG, PNG, GIF, WebM, MP4, MOV)", diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json index 47e9ee68b2..1c3f1eec0a 100644 --- a/app/javascript/mastodon/locales/hy.json +++ b/app/javascript/mastodon/locales/hy.json @@ -16,6 +16,7 @@ "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "Հետեւում է քեզ", "account.hide_reblogs": "Թաքցնել @{name}֊ի տարածածները", + "account.last_status": "Last active", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "Մեդիա", @@ -24,6 +25,7 @@ "account.mute": "Լռեցնել @{name}֊ին", "account.mute_notifications": "Անջատել ծանուցումները @{name}֊ից", "account.muted": "Muted", + "account.never_active": "Never", "account.posts": "Գրառումներ", "account.posts_with_replies": "Toots with replies", "account.report": "Բողոքել @{name}֊ից", @@ -36,6 +38,8 @@ "account.unfollow": "Չհետեւել", "account.unmute": "Ապալռեցնել @{name}֊ին", "account.unmute_notifications": "Միացնել ծանուցումները @{name}֊ից", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "An unexpected error occurred.", "alert.unexpected.title": "Վա՜յ", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "Արգելափակված օգտատերեր", "column.community": "Տեղական հոսք", "column.direct": "Direct messages", + "column.directory": "Browse profiles", "column.domain_blocks": "Hidden domains", "column.favourites": "Հավանածներ", "column.follow_requests": "Հետեւելու հայցեր", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Վստա՞հ ես, որ ուզում ես մշտապես ջնջել այս ցանկը։", "confirmations.domain_block.confirm": "Թաքցնել ամբողջ տիրույթը", "confirmations.domain_block.message": "Հաստատ֊հաստա՞տ վստահ ես, որ ուզում ես արգելափակել ամբողջ {domain} տիրույթը։ Սովորաբար մի երկու թիրախավորված արգելափակում կամ լռեցում բավական է ու նախընտրելի։", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Լռեցնել", "confirmations.mute.message": "Վստա՞հ ես, որ ուզում ես {name}֊ին լռեցնել։", "confirmations.redraft.confirm": "Delete & redraft", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.unfollow.confirm": "Ապահետեւել", "confirmations.unfollow.message": "Վստա՞հ ես, որ ուզում ես այլեւս չհետեւել {name}֊ին։", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Այս թութը քո կայքում ներդնելու համար կարող ես պատճենել ներքոհիշյալ կոդը։", "embed.preview": "Ահա, թե ինչ տեսք կունենա այն՝", "emoji_button.activity": "Զբաղմունքներ", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Անձնական", "navigation_bar.pins": "Ամրացված թթեր", "navigation_bar.preferences": "Նախապատվություններ", - "navigation_bar.profile_directory": "Profile directory", "navigation_bar.public_timeline": "Դաշնային հոսք", "navigation_bar.security": "Անվտանգություն", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Ավելին", "status.show_more_all": "Show more for all", "status.show_thread": "Show thread", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Ապալռեցնել խոսակցությունը", "status.unpin": "Հանել անձնական էջից", "suggestions.dismiss": "Dismiss suggestion", @@ -373,7 +384,7 @@ "time_remaining.moments": "Moments remaining", "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "Քո սեւագիրը կկորի, եթե լքես Մաստոդոնը։", "upload_area.title": "Քաշիր ու նետիր՝ վերբեռնելու համար", "upload_button.label": "Ավելացնել մեդիա", diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json index 0757e8ff38..5e1f318be6 100644 --- a/app/javascript/mastodon/locales/id.json +++ b/app/javascript/mastodon/locales/id.json @@ -16,6 +16,7 @@ "account.follows.empty": "Pengguna ini belum mengikuti siapapun.", "account.follows_you": "Mengikuti anda", "account.hide_reblogs": "Sembunyikan boosts dari @{name}", + "account.last_status": "Last active", "account.link_verified_on": "Kepemilikan tautan ini telah dicek pada {date}", "account.locked_info": "Status privasi akun ini disetel untuk dikunci. Pemilik secara manual meninjau siapa yang dapat mengikuti mereka.", "account.media": "Media", @@ -24,6 +25,7 @@ "account.mute": "Bisukan @{name}", "account.mute_notifications": "Sembunyikan notifikasi dari @{name}", "account.muted": "Dibisukan", + "account.never_active": "Never", "account.posts": "Toot", "account.posts_with_replies": "Postingan dengan balasan", "account.report": "Laporkan @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "Berhenti mengikuti", "account.unmute": "Berhenti membisukan @{name}", "account.unmute_notifications": "Munculkan notifikasi dari @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Terjadi kesalahan yang tidak terduga.", "alert.unexpected.title": "Oops!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "Pengguna diblokir", "column.community": "Linimasa Lokal", "column.direct": "Pesan langsung", + "column.directory": "Browse profiles", "column.domain_blocks": "Topik tersembunyi", "column.favourites": "Favorit", "column.follow_requests": "Permintaan mengikuti", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Apakah anda yakin untuk menghapus daftar ini secara permanen?", "confirmations.domain_block.confirm": "Sembunyikan keseluruhan domain", "confirmations.domain_block.message": "Apakah anda benar benar yakin untuk memblokir keseluruhan {domain}? Dalam kasus tertentu beberapa pemblokiran atau penyembunyian lebih baik.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Bisukan", "confirmations.mute.message": "Apa anda yakin ingin membisukan {name}?", "confirmations.redraft.confirm": "Hapus dan konsep ulang", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Membalas sekarang akan menimpa pesan yang sedang Anda buat. Anda yakin ingin melanjutkan?", "confirmations.unfollow.confirm": "Berhenti mengikuti", "confirmations.unfollow.message": "Apakah anda ingin berhenti mengikuti {name}?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Sematkan status ini di website anda dengan menyalin kode di bawah ini.", "embed.preview": "Seperti ini nantinya:", "emoji_button.activity": "Aktivitas", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Personal", "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Pengaturan", - "navigation_bar.profile_directory": "Profile directory", "navigation_bar.public_timeline": "Linimasa gabungan", "navigation_bar.security": "Security", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Tampilkan semua", "status.show_more_all": "Show more for all", "status.show_thread": "Show thread", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", "suggestions.dismiss": "Dismiss suggestion", @@ -373,7 +384,7 @@ "time_remaining.moments": "Moments remaining", "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "Naskah anda akan hilang jika anda keluar dari Mastodon.", "upload_area.title": "Seret & lepaskan untuk mengunggah", "upload_button.label": "Tambahkan media", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index ff096f5cf7..afbd970ecb 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -16,6 +16,7 @@ "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "Sequas tu", "account.hide_reblogs": "Hide boosts from @{name}", + "account.last_status": "Last active", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "Media", @@ -24,6 +25,7 @@ "account.mute": "Celar @{name}", "account.mute_notifications": "Mute notifications from @{name}", "account.muted": "Muted", + "account.never_active": "Never", "account.posts": "Mesaji", "account.posts_with_replies": "Toots with replies", "account.report": "Denuncar @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "Ne plus sequar", "account.unmute": "Ne plus celar @{name}", "account.unmute_notifications": "Unmute notifications from @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "An unexpected error occurred.", "alert.unexpected.title": "Oops!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "Blokusita uzeri", "column.community": "Lokala tempolineo", "column.direct": "Direct messages", + "column.directory": "Browse profiles", "column.domain_blocks": "Hidden domains", "column.favourites": "Favorati", "column.follow_requests": "Demandi di sequado", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?", "confirmations.domain_block.confirm": "Hide entire domain", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Mute", "confirmations.mute.message": "Are you sure you want to mute {name}?", "confirmations.redraft.confirm": "Delete & redraft", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.unfollow.confirm": "Unfollow", "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Personal", "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Preferi", - "navigation_bar.profile_directory": "Profile directory", "navigation_bar.public_timeline": "Federata tempolineo", "navigation_bar.security": "Security", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Montrar plue", "status.show_more_all": "Show more for all", "status.show_thread": "Show thread", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", "suggestions.dismiss": "Dismiss suggestion", @@ -373,7 +384,7 @@ "time_remaining.moments": "Moments remaining", "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", "upload_area.title": "Tranar faligar por kargar", "upload_button.label": "Adjuntar kontenajo", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index 0e791e13da..caabf6ef3e 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -4,7 +4,7 @@ "account.block": "Blocca @{name}", "account.block_domain": "Nascondi tutto da {domain}", "account.blocked": "Bloccato", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "Annulla richiesta di seguito", "account.direct": "Invia messaggio privato a @{name}", "account.domain_blocked": "Dominio nascosto", "account.edit_profile": "Modifica profilo", @@ -16,6 +16,7 @@ "account.follows.empty": "Questo utente non segue ancora nessuno.", "account.follows_you": "Ti segue", "account.hide_reblogs": "Nascondi condivisioni da @{name}", + "account.last_status": "Last active", "account.link_verified_on": "La proprietà di questo link è stata controllata il {date}", "account.locked_info": "Il livello di privacy di questo account è impostato a \"bloccato\". Il proprietario esamina manualmente le richieste di seguirlo.", "account.media": "Media", @@ -24,6 +25,7 @@ "account.mute": "Silenzia @{name}", "account.mute_notifications": "Silenzia notifiche da @{name}", "account.muted": "Silenziato", + "account.never_active": "Never", "account.posts": "Toot", "account.posts_with_replies": "Toot e risposte", "account.report": "Segnala @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "Non seguire", "account.unmute": "Non silenziare @{name}", "account.unmute_notifications": "Non silenziare più le notifiche da @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Si è verificato un errore inatteso.", "alert.unexpected.title": "Oops!", "autosuggest_hashtag.per_week": "{count} per settimana", @@ -49,6 +53,7 @@ "column.blocks": "Utenti bloccati", "column.community": "Timeline locale", "column.direct": "Messaggi diretti", + "column.directory": "Browse profiles", "column.domain_blocks": "Domini nascosti", "column.favourites": "Apprezzati", "column.follow_requests": "Richieste di amicizia", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Sei sicuro di voler cancellare definitivamente questa lista?", "confirmations.domain_block.confirm": "Nascondi intero dominio", "confirmations.domain_block.message": "Sei davvero sicuro che vuoi bloccare l'intero {domain}? Nella maggior parte dei casi, pochi blocchi o silenziamenti mirati sono sufficienti e preferibili. Non vedrai nessun contenuto di quel dominio né nelle timeline pubbliche né nelle notifiche. I tuoi seguaci di quel dominio saranno eliminati.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Silenzia", "confirmations.mute.message": "Sei sicuro di voler silenziare {name}?", "confirmations.redraft.confirm": "Cancella e riscrivi", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Se rispondi ora, il messaggio che stai componendo sarà sovrascritto. Sei sicuro di voler continuare?", "confirmations.unfollow.confirm": "Smetti di seguire", "confirmations.unfollow.message": "Sei sicuro che non vuoi più seguire {name}?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Inserisci questo status nel tuo sito copiando il codice qui sotto.", "embed.preview": "Ecco come apparirà:", "emoji_button.activity": "Attività", @@ -158,7 +169,7 @@ "home.column_settings.basic": "Semplice", "home.column_settings.show_reblogs": "Mostra post condivisi", "home.column_settings.show_replies": "Mostra risposte", - "home.column_settings.update_live": "Aggiornama in tempo reale", + "home.column_settings.update_live": "Update in real-time", "intervals.full.days": "{number, plural, one {# giorno} other {# giorni}}", "intervals.full.hours": "{number, plural, one {# ora} other {# ore}}", "intervals.full.minutes": "{number, plural, one {# minuto} other {# minuti}}", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Personale", "navigation_bar.pins": "Toot fissati in cima", "navigation_bar.preferences": "Impostazioni", - "navigation_bar.profile_directory": "Directory dei profili", "navigation_bar.public_timeline": "Timeline federata", "navigation_bar.security": "Sicurezza", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Mostra di più", "status.show_more_all": "Mostra di più per tutti", "status.show_thread": "Mostra thread", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Annulla silenzia conversazione", "status.unpin": "Non fissare in cima al profilo", "suggestions.dismiss": "Elimina suggerimento", @@ -373,22 +384,22 @@ "time_remaining.moments": "Restano pochi istanti", "time_remaining.seconds": "{number, plural, one {# secondo} other {# secondi}} left", "trends.count_by_accounts": "{count} {rawCount, plural, one {persona ne sta} other {persone ne stanno}} parlando", - "trends.refresh": "Aggiorna", + "trends.trending_now": "Di tendenza ora", "ui.beforeunload": "La bozza andrà persa se esci da Mastodon.", "upload_area.title": "Trascina per caricare", "upload_button.label": "Aggiungi file multimediale", "upload_error.limit": "Limite al caricamento di file superato.", "upload_error.poll": "Caricamento file non consentito nei sondaggi.", "upload_form.description": "Descrizione per utenti con disabilità visive", - "upload_form.edit": "Edit", + "upload_form.edit": "Modifica", "upload_form.undo": "Cancella", - "upload_modal.analyzing_picture": "Analyzing picture…", + "upload_modal.analyzing_picture": "Analisi immagine…", "upload_modal.apply": "Apply", - "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", - "upload_modal.detect_text": "Detect text from picture", - "upload_modal.edit_media": "Edit media", + "upload_modal.description_placeholder": "Ma la volpe col suo balzo ha raggiunto il quieto Fido", + "upload_modal.detect_text": "Rileva testo dall'immagine", + "upload_modal.edit_media": "Modifica media", "upload_modal.hint": "Clicca o trascina il cerchio sull'anteprima per scegliere il punto focale che sarà sempre visualizzato su tutte le miniature.", - "upload_modal.preview_label": "Preview ({ratio})", + "upload_modal.preview_label": "Anteprima ({ratio})", "upload_progress.label": "Sto caricando...", "video.close": "Chiudi video", "video.exit_fullscreen": "Esci da modalità a schermo intero", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 352a00c1ef..1960dafba2 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -16,6 +16,7 @@ "account.follows.empty": "まだ誰もフォローしていません。", "account.follows_you": "フォローされています", "account.hide_reblogs": "@{name}さんからのブーストを非表示", + "account.last_status": "最後の活動", "account.link_verified_on": "このリンクの所有権は{date}に確認されました", "account.locked_info": "このアカウントは承認制アカウントです。相手が承認するまでフォローは完了しません。", "account.media": "メディア", @@ -24,6 +25,7 @@ "account.mute": "@{name}さんをミュート", "account.mute_notifications": "@{name}さんからの通知を受け取らない", "account.muted": "ミュート済み", + "account.never_active": "活動なし", "account.posts": "投稿", "account.posts_with_replies": "投稿と返信", "account.report": "@{name}さんを通報", @@ -36,6 +38,8 @@ "account.unfollow": "フォロー解除", "account.unmute": "@{name}さんのミュートを解除", "account.unmute_notifications": "@{name}さんからの通知を受け取るようにする", + "alert.rate_limited.message": "{retry_time, time, medium} 後に再試行してください。", + "alert.rate_limited.title": "制限に達しました", "alert.unexpected.message": "不明なエラーが発生しました。", "alert.unexpected.title": "エラー!", "autosuggest_hashtag.per_week": "{count} 回 / 週", @@ -49,6 +53,7 @@ "column.blocks": "ブロックしたユーザー", "column.community": "ローカルタイムライン", "column.direct": "ダイレクトメッセージ", + "column.directory": "Browse profiles", "column.domain_blocks": "非表示にしたドメイン", "column.favourites": "お気に入り", "column.follow_requests": "フォローリクエスト", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "本当にこのリストを完全に削除しますか?", "confirmations.domain_block.confirm": "ドメイン全体を非表示", "confirmations.domain_block.message": "本当に{domain}全体を非表示にしますか? 多くの場合は個別にブロックやミュートするだけで充分であり、また好ましいです。公開タイムラインにそのドメインのコンテンツが表示されなくなり、通知も届かなくなります。そのドメインのフォロワーはアンフォローされます。", + "confirmations.logout.confirm": "ログアウト", + "confirmations.logout.message": "本当にログアウトしますか?", "confirmations.mute.confirm": "ミュート", "confirmations.mute.message": "本当に{name}さんをミュートしますか?", "confirmations.redraft.confirm": "削除して下書きに戻す", @@ -103,6 +110,10 @@ "confirmations.reply.message": "今返信すると現在作成中のメッセージが上書きされます。本当に実行しますか?", "confirmations.unfollow.confirm": "フォロー解除", "confirmations.unfollow.message": "本当に{name}さんのフォローを解除しますか?", + "directory.federated": "既知の連合全体", + "directory.local": "{domain} のみ", + "directory.new_arrivals": "新着順", + "directory.recently_active": "最近の活動順", "embed.instructions": "下記のコードをコピーしてウェブサイトに埋め込みます。", "embed.preview": "表示例:", "emoji_button.activity": "活動", @@ -158,7 +169,7 @@ "home.column_settings.basic": "基本設定", "home.column_settings.show_reblogs": "ブースト表示", "home.column_settings.show_replies": "返信表示", - "home.column_settings.update_live": "リアルタイムで更新", + "home.column_settings.update_live": "Update in real-time", "intervals.full.days": "{number}日", "intervals.full.hours": "{number}時間", "intervals.full.minutes": "{number}分", @@ -250,7 +261,6 @@ "navigation_bar.personal": "個人用", "navigation_bar.pins": "固定したトゥート", "navigation_bar.preferences": "ユーザー設定", - "navigation_bar.profile_directory": "ディレクトリ", "navigation_bar.public_timeline": "連合タイムライン", "navigation_bar.security": "セキュリティ", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "もっと見る", "status.show_more_all": "全て見る", "status.show_thread": "スレッドを表示", + "status.uncached_media_warning": "利用できません", "status.unmute_conversation": "会話のミュートを解除", "status.unpin": "プロフィールへの固定を解除", "suggestions.dismiss": "隠す", @@ -373,7 +384,7 @@ "time_remaining.moments": "まもなく終了", "time_remaining.seconds": "残り{number}秒", "trends.count_by_accounts": "{count}人がトゥート", - "trends.refresh": "更新", + "trends.trending_now": "トレンドタグ", "ui.beforeunload": "Mastodonから離れると送信前の投稿は失われます。", "upload_area.title": "ドラッグ&ドロップでアップロード", "upload_button.label": "メディアを追加 ({formats})", @@ -384,7 +395,7 @@ "upload_form.undo": "削除", "upload_modal.analyzing_picture": "画像を解析中…", "upload_modal.apply": "適用", - "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", + "upload_modal.description_placeholder": "素早い茶色の狐はのろまな犬を飛び越える", "upload_modal.detect_text": "画像からテキストを検出", "upload_modal.edit_media": "メディアを編集", "upload_modal.hint": "画像をクリックするか円をドラッグすると全てのサムネイルで注目する場所を選ぶことができます", diff --git a/app/javascript/mastodon/locales/ka.json b/app/javascript/mastodon/locales/ka.json index fecfb519cb..d3018c0bf2 100644 --- a/app/javascript/mastodon/locales/ka.json +++ b/app/javascript/mastodon/locales/ka.json @@ -16,6 +16,7 @@ "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "მოგყვებათ", "account.hide_reblogs": "დაიმალოს ბუსტები @{name}-სგან", + "account.last_status": "Last active", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "მედია", @@ -24,6 +25,7 @@ "account.mute": "გააჩუმე @{name}", "account.mute_notifications": "გააჩუმე შეტყობინებები @{name}-სგან", "account.muted": "გაჩუმებული", + "account.never_active": "Never", "account.posts": "ტუტები", "account.posts_with_replies": "ტუტები და პასუხები", "account.report": "დაარეპორტე @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "ნუღარ მიჰყვები", "account.unmute": "ნუღარ აჩუმებ @{name}-ს", "account.unmute_notifications": "ნუღარ აჩუმებ შეტყობინებებს @{name}-სგან", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "წარმოიშვა მოულოდნელი შეცდომა.", "alert.unexpected.title": "უპს!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "დაბლოკილი მომხმარებლები", "column.community": "ლოკალური თაიმლაინი", "column.direct": "პირდაპირი წერილები", + "column.directory": "Browse profiles", "column.domain_blocks": "დამალული დომენები", "column.favourites": "ფავორიტები", "column.follow_requests": "დადევნების მოთხოვნები", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "დარწმუნებული ხართ, გსურთ სამუდამოდ გააუქმოთ ეს სია?", "confirmations.domain_block.confirm": "მთელი დომენის დამალვა", "confirmations.domain_block.message": "ნაღდად, ნაღდად, დარწმუნებული ხართ, გსურთ დაბლოკოთ მთელი {domain}? უმეტეს შემთხვევაში რამდენიმე გამიზნული ბლოკი ან გაჩუმება საკმარისი და უკეთესია. კონტენტს ამ დომენიდან ვერ იხილავთ ვერც ერთ ღია თაიმლაინზე ან თქვენს შეტყობინებებში. ამ დომენიდან არსებული მიმდევრები ამოიშლება.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "გაჩუმება", "confirmations.mute.message": "დარწმუნებული ხართ, გსურთ გააჩუმოთ {name}?", "confirmations.redraft.confirm": "გაუქმება და გადანაწილება", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.unfollow.confirm": "ნუღარ მიჰყვები", "confirmations.unfollow.message": "დარწმუნებული ხართ, აღარ გსურთ მიჰყვებოდეთ {name}-ს?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "ეს სტატუსი ჩასვით თქვენს ვებ-საიტზე შემდეგი კოდის კოპირებით.", "embed.preview": "ესაა თუ როგორც გამოჩნდება:", "emoji_button.activity": "აქტივობა", @@ -250,7 +261,6 @@ "navigation_bar.personal": "პირადი", "navigation_bar.pins": "აპინული ტუტები", "navigation_bar.preferences": "პრეფერენსიები", - "navigation_bar.profile_directory": "Profile directory", "navigation_bar.public_timeline": "ფედერალური თაიმლაინი", "navigation_bar.security": "უსაფრთხოება", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "აჩვენე მეტი", "status.show_more_all": "აჩვენე მეტი ყველაზე", "status.show_thread": "Show thread", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "საუბარზე გაჩუმების მოშორება", "status.unpin": "პროფილიდან პინის მოშორება", "suggestions.dismiss": "Dismiss suggestion", @@ -373,7 +384,7 @@ "time_remaining.moments": "Moments remaining", "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} საუბრობს", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "თქვენი დრაფტი გაუქმდება თუ დატოვებთ მასტოდონს.", "upload_area.title": "გადმოწიეთ და ჩააგდეთ ასატვირთათ", "upload_button.label": "მედიის დამატება", diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json index 8710ae90b6..5d671d9074 100644 --- a/app/javascript/mastodon/locales/kk.json +++ b/app/javascript/mastodon/locales/kk.json @@ -16,6 +16,7 @@ "account.follows.empty": "Ешкімге жазылмапты.", "account.follows_you": "Сізге жазылыпты", "account.hide_reblogs": "@{name} атты қолданушының әрекеттерін жасыру", + "account.last_status": "Last active", "account.link_verified_on": "Сілтеме меншігі расталған күн {date}", "account.locked_info": "Бұл қолданушы өзі туралы мәліметтерді жасырған. Тек жазылғандар ғана көре алады.", "account.media": "Медиа", @@ -24,6 +25,7 @@ "account.mute": "Үнсіз қылу @{name}", "account.mute_notifications": "@{name} туралы ескертпелерді жасыру", "account.muted": "Үнсіз", + "account.never_active": "Never", "account.posts": "Жазбалар", "account.posts_with_replies": "Жазбалар мен жауаптар", "account.report": "Шағымдану @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "Оқымау", "account.unmute": "@{name} ескертпелерін қосу", "account.unmute_notifications": "@{name} ескертпелерін көрсету", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Бір нәрсе дұрыс болмады.", "alert.unexpected.title": "Өй!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "Бұғатталғандар", "column.community": "Жергілікті желі", "column.direct": "Жеке хаттар", + "column.directory": "Browse profiles", "column.domain_blocks": "Жасырылған домендер", "column.favourites": "Таңдаулылар", "column.follow_requests": "Жазылу сұранымдары", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Бұл тізімді жоясыз ба шынымен?", "confirmations.domain_block.confirm": "Бұл доменді бұғатта", "confirmations.domain_block.message": "Бұл домендегі {domain} жазбаларды шынымен бұғаттайсыз ба? Кейде үнсіз қылып тастау да жеткілікті.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Үнсіз қылу", "confirmations.mute.message": "{name} атты қолданушы үнсіз болсын ба?", "confirmations.redraft.confirm": "Өшіруді құптау", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Жауабыңыз жазып жатқан жазбаңыздың үстіне кетеді. Жалғастырамыз ба?", "confirmations.unfollow.confirm": "Оқымау", "confirmations.unfollow.message": "\"{name} атты қолданушыға енді жазылғыңыз келмей ме?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Төмендегі кодты көшіріп алу арқылы жазбаны басқа сайттарға да орналастыра аласыз.", "embed.preview": "Былай көрінетін болады:", "emoji_button.activity": "Белсенділік", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Жеке", "navigation_bar.pins": "Жабыстырылғандар", "navigation_bar.preferences": "Басымдықтар", - "navigation_bar.profile_directory": "Profile directory", "navigation_bar.public_timeline": "Жаһандық желі", "navigation_bar.security": "Қауіпсіздік", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Толығырақ", "status.show_more_all": "Бәрін толығымен", "status.show_thread": "Желіні көрсет", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Пікірталасты үнсіз қылмау", "status.unpin": "Профильден алып тастау", "suggestions.dismiss": "Өткізіп жіберу", @@ -373,7 +384,7 @@ "time_remaining.moments": "Қалған уақыт", "time_remaining.seconds": "{number, plural, one {# секунд} other {# секунд}}", "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} жазған екен", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "Mastodon желісінен шықсаңыз, нобайыңыз сақталмайды.", "upload_area.title": "Жүктеу үшін сүйреп әкеліңіз", "upload_button.label": "Медиа қосу (JPEG, PNG, GIF, WebM, MP4, MOV)", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index ac6a3ca91d..50f7ca543e 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -16,6 +16,7 @@ "account.follows.empty": "이 유저는 아직 아무도 팔로우 하고 있지 않습니다.", "account.follows_you": "날 팔로우합니다", "account.hide_reblogs": "@{name}의 부스트를 숨기기", + "account.last_status": "마지막 활동", "account.link_verified_on": "{date}에 이 링크의 소유권이 확인 됨", "account.locked_info": "이 계정의 프라이버시 설정은 잠금으로 설정되어 있습니다. 계정 소유자가 수동으로 팔로어를 승인합니다.", "account.media": "미디어", @@ -24,6 +25,7 @@ "account.mute": "@{name} 뮤트", "account.mute_notifications": "@{name}의 알림을 뮤트", "account.muted": "뮤트 됨", + "account.never_active": "없음", "account.posts": "툿", "account.posts_with_replies": "툿과 답장", "account.report": "@{name} 신고", @@ -36,6 +38,8 @@ "account.unfollow": "팔로우 해제", "account.unmute": "뮤트 해제", "account.unmute_notifications": "@{name}의 알림 뮤트 해제", + "alert.rate_limited.message": "{retry_time, time, medium}에 다시 시도해 주세요.", + "alert.rate_limited.title": "빈도 제한", "alert.unexpected.message": "예측하지 못한 에러가 발생했습니다.", "alert.unexpected.title": "앗!", "autosuggest_hashtag.per_week": "주간 {count}회", @@ -49,6 +53,7 @@ "column.blocks": "차단 중인 사용자", "column.community": "로컬 타임라인", "column.direct": "다이렉트 메시지", + "column.directory": "프로필 둘러보기", "column.domain_blocks": "숨겨진 도메인", "column.favourites": "즐겨찾기", "column.follow_requests": "팔로우 요청", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "정말로 이 리스트를 삭제하시겠습니까?", "confirmations.domain_block.confirm": "도메인 전체를 숨김", "confirmations.domain_block.message": "정말로 {domain} 전체를 숨기시겠습니까? 대부분의 경우 개별 차단이나 뮤트로 충분합니다. 모든 공개 타임라인과 알림에서 해당 도메인에서 작성된 컨텐츠를 보지 못합니다. 해당 도메인 팔로워와의 관계가 사라집니다.", + "confirmations.logout.confirm": "로그아웃", + "confirmations.logout.message": "정말로 로그아웃 하시겠습니까?", "confirmations.mute.confirm": "뮤트", "confirmations.mute.message": "정말로 {name}를 뮤트하시겠습니까?", "confirmations.redraft.confirm": "삭제하고 다시 쓰기", @@ -103,6 +110,10 @@ "confirmations.reply.message": "답글을 달기 위해 현재 작성 중인 메시지가 덮어 씌워집니다. 진행하시겠습니까?", "confirmations.unfollow.confirm": "언팔로우", "confirmations.unfollow.message": "정말로 {name}를 언팔로우하시겠습니까?", + "directory.federated": "알려진 연합우주로부터", + "directory.local": "{domain}에서만", + "directory.new_arrivals": "새로운 사람들", + "directory.recently_active": "최근 활동", "embed.instructions": "아래의 코드를 복사하여 대화를 원하는 곳으로 공유하세요.", "embed.preview": "다음과 같이 표시됩니다:", "emoji_button.activity": "활동", @@ -158,7 +169,7 @@ "home.column_settings.basic": "기본 설정", "home.column_settings.show_reblogs": "부스트 표시", "home.column_settings.show_replies": "답글 표시", - "home.column_settings.update_live": "실시간 업데이트", + "home.column_settings.update_live": "Update in real-time", "intervals.full.days": "{number} 일", "intervals.full.hours": "{number} 시간", "intervals.full.minutes": "{number} 분", @@ -250,10 +261,9 @@ "navigation_bar.personal": "개인용", "navigation_bar.pins": "고정된 툿", "navigation_bar.preferences": "사용자 설정", - "navigation_bar.profile_directory": "프로필 디렉토리", "navigation_bar.public_timeline": "연합 타임라인", "navigation_bar.security": "보안", - "notification.and_n_others": "그리고 {count}개의 기타 항목", + "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", "notification.favourite": "{name}님이 즐겨찾기 했습니다", "notification.follow": "{name}님이 나를 팔로우 했습니다", "notification.mention": "{name}님이 답글을 보냈습니다", @@ -358,6 +368,7 @@ "status.show_more": "더 보기", "status.show_more_all": "모두 펼치기", "status.show_thread": "글타래 보기", + "status.uncached_media_warning": "사용할 수 없음", "status.unmute_conversation": "이 대화의 뮤트 해제하기", "status.unpin": "고정 해제", "suggestions.dismiss": "추천 지우기", @@ -373,7 +384,7 @@ "time_remaining.moments": "남은 시간", "time_remaining.seconds": "{number} 초 남음", "trends.count_by_accounts": "{count} 명의 사람들이 말하고 있습니다", - "trends.refresh": "새로고침", + "trends.trending_now": "지금 유행중", "ui.beforeunload": "지금 나가면 저장되지 않은 항목을 잃게 됩니다.", "upload_area.title": "드래그 & 드롭으로 업로드", "upload_button.label": "미디어 추가 (JPEG, PNG, GIF, WebM, MP4, MOV)", diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json index b844e28989..7d0776dff4 100644 --- a/app/javascript/mastodon/locales/lt.json +++ b/app/javascript/mastodon/locales/lt.json @@ -16,6 +16,7 @@ "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "Follows you", "account.hide_reblogs": "Hide boosts from @{name}", + "account.last_status": "Last active", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "Media", @@ -24,10 +25,11 @@ "account.mute": "Mute @{name}", "account.mute_notifications": "Mute notifications from @{name}", "account.muted": "Muted", + "account.never_active": "Never", "account.posts": "Toots", "account.posts_with_replies": "Toots and replies", "account.report": "Report @{name}", - "account.requested": "Awaiting approval. Click to cancel follow request", + "account.requested": "Awaiting approval", "account.share": "Share @{name}'s profile", "account.show_reblogs": "Show boosts from @{name}", "account.unblock": "Unblock @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "Unfollow", "account.unmute": "Unmute @{name}", "account.unmute_notifications": "Unmute notifications from @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "An unexpected error occurred.", "alert.unexpected.title": "Oops!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "Blocked users", "column.community": "Local timeline", "column.direct": "Direct messages", + "column.directory": "Browse profiles", "column.domain_blocks": "Hidden domains", "column.favourites": "Favourites", "column.follow_requests": "Follow requests", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?", "confirmations.domain_block.confirm": "Hide entire domain", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Mute", "confirmations.mute.message": "Are you sure you want to mute {name}?", "confirmations.redraft.confirm": "Delete & redraft", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.unfollow.confirm": "Unfollow", "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Personal", "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Preferences", - "navigation_bar.profile_directory": "Profile directory", "navigation_bar.public_timeline": "Federated timeline", "navigation_bar.security": "Security", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Show more", "status.show_more_all": "Show more for all", "status.show_thread": "Show thread", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", "suggestions.dismiss": "Dismiss suggestion", @@ -373,7 +384,7 @@ "time_remaining.moments": "Moments remaining", "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", "upload_area.title": "Drag & drop to upload", "upload_button.label": "Add media ({formats})", diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index b4e45a8540..d9b1256951 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -16,6 +16,7 @@ "account.follows.empty": "Šis lietotājs pagaidām nevienam neseko.", "account.follows_you": "Seko tev", "account.hide_reblogs": "Paslēpt paceltos ierakstus no lietotāja @{name}", + "account.last_status": "Last active", "account.link_verified_on": "Šīs saites piederība ir pārbaudīta {date}", "account.locked_info": "Šī konta privātuma status ir iestatīts slēgts. Īpašnieks izskatīs un izvēlēsies kas viņam drīkst sekot.", "account.media": "Mēdiji", @@ -24,6 +25,7 @@ "account.mute": "Apklusināt @{name}", "account.mute_notifications": "Nerādīt paziņojumus no @{name}", "account.muted": "Apklusināts", + "account.never_active": "Never", "account.posts": "Ieraksti", "account.posts_with_replies": "Ieraksti un atbildes", "account.report": "Ziņot par lietotāju @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "Nesekot", "account.unmute": "Noņemt apklusinājumu no lietotāja @{name}", "account.unmute_notifications": "Rādīt paziņojumus no lietotāja @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Negaidīta kļūda.", "alert.unexpected.title": "Ups!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "Bloķētie lietotāji", "column.community": "Lokālā laika līnija", "column.direct": "Privātās ziņas", + "column.directory": "Browse profiles", "column.domain_blocks": "Paslēptie domēni", "column.favourites": "Favorīti", "column.follow_requests": "Sekotāju pieprasījumi", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Vai tiešam vēlies neatgriezeniski dzēst šo sarakstu?", "confirmations.domain_block.confirm": "Paslēpt visu domēnu", "confirmations.domain_block.message": "Vai tu tiešām, tiešam vēlies bloķēt visu domēnu {domain}? Lielākajā daļā gadījumu pietiek ja nobloķē vai apklusini kādu. Tu neredzēsi saturu vai paziņojumus no šī domēna nevienā laika līnijā. Tavi sekotāji no šī domēna tiks noņemti.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Apklusināt", "confirmations.mute.message": "Vai Tu tiešām velies apklusināt {name}?", "confirmations.redraft.confirm": "Dzēst un pārrakstīt", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Atbildot tagad tava ziņa ko šobrīd raksti tiks pārrakstīta. Vai tiešām vēlies turpināt?", "confirmations.unfollow.confirm": "Nesekot", "confirmations.unfollow.message": "Vai tiešam vairs nevēlies sekot lietotājam {name}?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Iegul šo ziņojumu savā mājaslapā kopējot kodu zemāk.", "embed.preview": "Tas izskatīsies šādi:", "emoji_button.activity": "Aktivitāte", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Personal", "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Preferences", - "navigation_bar.profile_directory": "Profile directory", "navigation_bar.public_timeline": "Federated timeline", "navigation_bar.security": "Security", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Show more", "status.show_more_all": "Show more for all", "status.show_thread": "Show thread", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", "suggestions.dismiss": "Dismiss suggestion", @@ -373,7 +384,7 @@ "time_remaining.moments": "Moments remaining", "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", "upload_area.title": "Drag & drop to upload", "upload_button.label": "Add media ({formats})", diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json index 5562047532..b83d26a0a5 100644 --- a/app/javascript/mastodon/locales/ms.json +++ b/app/javascript/mastodon/locales/ms.json @@ -16,6 +16,7 @@ "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "Follows you", "account.hide_reblogs": "Hide boosts from @{name}", + "account.last_status": "Last active", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "Media", @@ -24,10 +25,11 @@ "account.mute": "Mute @{name}", "account.mute_notifications": "Mute notifications from @{name}", "account.muted": "Muted", + "account.never_active": "Never", "account.posts": "Toots", "account.posts_with_replies": "Toots and replies", "account.report": "Report @{name}", - "account.requested": "Awaiting approval. Click to cancel follow request", + "account.requested": "Awaiting approval", "account.share": "Share @{name}'s profile", "account.show_reblogs": "Show boosts from @{name}", "account.unblock": "Unblock @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "Unfollow", "account.unmute": "Unmute @{name}", "account.unmute_notifications": "Unmute notifications from @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "An unexpected error occurred.", "alert.unexpected.title": "Oops!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "Blocked users", "column.community": "Local timeline", "column.direct": "Direct messages", + "column.directory": "Browse profiles", "column.domain_blocks": "Hidden domains", "column.favourites": "Favourites", "column.follow_requests": "Follow requests", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?", "confirmations.domain_block.confirm": "Hide entire domain", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Mute", "confirmations.mute.message": "Are you sure you want to mute {name}?", "confirmations.redraft.confirm": "Delete & redraft", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.unfollow.confirm": "Unfollow", "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Personal", "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Preferences", - "navigation_bar.profile_directory": "Profile directory", "navigation_bar.public_timeline": "Federated timeline", "navigation_bar.security": "Security", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Show more", "status.show_more_all": "Show more for all", "status.show_thread": "Show thread", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", "suggestions.dismiss": "Dismiss suggestion", @@ -373,7 +384,7 @@ "time_remaining.moments": "Moments remaining", "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "Your draft will be lost if you leave Mastodon.", "upload_area.title": "Drag & drop to upload", "upload_button.label": "Add media ({formats})", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 6cfcf6bd66..439dccbb3e 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -4,7 +4,7 @@ "account.block": "Blokkeer @{name}", "account.block_domain": "Verberg alles van {domain}", "account.blocked": "Geblokkeerd", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "Volgverzoek annuleren", "account.direct": "Direct Message @{name}", "account.domain_blocked": "Domein verborgen", "account.edit_profile": "Profiel bewerken", @@ -16,6 +16,7 @@ "account.follows.empty": "Deze gebruiker volgt nog niemand.", "account.follows_you": "Volgt jou", "account.hide_reblogs": "Verberg boosts van @{name}", + "account.last_status": "Last active", "account.link_verified_on": "Eigendom van deze link is gecontroleerd op {date}", "account.locked_info": "De privacystatus van dit account is op besloten gezet. De eigenaar bepaalt handmatig wie hen kan volgen.", "account.media": "Media", @@ -24,6 +25,7 @@ "account.mute": "Negeer @{name}", "account.mute_notifications": "Negeer meldingen van @{name}", "account.muted": "Genegeerd", + "account.never_active": "Never", "account.posts": "Toots", "account.posts_with_replies": "Toots en reacties", "account.report": "Rapporteer @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "Ontvolgen", "account.unmute": "@{name} niet langer negeren", "account.unmute_notifications": "@{name} meldingen niet langer negeren", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Er deed zich een onverwachte fout voor", "alert.unexpected.title": "Oeps!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "Geblokkeerde gebruikers", "column.community": "Lokale tijdlijn", "column.direct": "Directe berichten", + "column.directory": "Browse profiles", "column.domain_blocks": "Genegeerde servers", "column.favourites": "Favorieten", "column.follow_requests": "Volgverzoeken", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Weet je zeker dat je deze lijst definitief wilt verwijderen?", "confirmations.domain_block.confirm": "Verberg alles van deze server", "confirmations.domain_block.message": "Weet je het echt heel erg zeker dat je alles van {domain} wilt negeren? In de meeste gevallen is het blokkeren of negeren van een paar specifieke personen voldoende en beter. Je zult geen toots van deze server op openbare tijdlijnen zien of in jouw meldingen. Jouw volgers van deze server worden verwijderd.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Negeren", "confirmations.mute.message": "Weet je het zeker dat je {name} wilt negeren?", "confirmations.redraft.confirm": "Verwijderen en herschrijven", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Door nu te reageren overschrijf je de toot die je op dit moment aan het schrijven bent. Weet je zeker dat je verder wil gaan?", "confirmations.unfollow.confirm": "Ontvolgen", "confirmations.unfollow.message": "Weet je het zeker dat je {name} wilt ontvolgen?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Embed deze toot op jouw website, door de onderstaande code te kopiëren.", "embed.preview": "Zo komt het eruit te zien:", "emoji_button.activity": "Activiteiten", @@ -224,7 +235,7 @@ "lists.new.title_placeholder": "Naam nieuwe lijst", "lists.search": "Zoek naar mensen die je volgt", "lists.subheading": "Jouw lijsten", - "load_pending": "{count, plural, one {# new item} other {# new items}}", + "load_pending": "{count, plural, one {# nieuw item} other {# nieuwe items}}", "loading_indicator.label": "Laden…", "media_gallery.toggle_visible": "Media wel/niet tonen", "missing_indicator.label": "Niet gevonden", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Persoonlijk", "navigation_bar.pins": "Vastgezette toots", "navigation_bar.preferences": "Instellingen", - "navigation_bar.profile_directory": "Gebruikersgids", "navigation_bar.public_timeline": "Globale tijdlijn", "navigation_bar.security": "Beveiliging", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -319,7 +329,7 @@ "search_results.accounts": "Gebruikers", "search_results.hashtags": "Hashtags", "search_results.statuses": "Toots", - "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", + "search_results.statuses_fts_disabled": "Het zoeken in toots is op deze Mastodonserver niet ingeschakeld.", "search_results.total": "{count, number} {count, plural, one {resultaat} other {resultaten}}", "status.admin_account": "Moderatie-omgeving van @{name} openen", "status.admin_status": "Deze toot in de moderatie-omgeving openen", @@ -358,6 +368,7 @@ "status.show_more": "Meer tonen", "status.show_more_all": "Alles meer tonen", "status.show_thread": "Gesprek tonen", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Gesprek niet langer negeren", "status.unpin": "Van profielpagina losmaken", "suggestions.dismiss": "Voorstel verwerpen", @@ -373,22 +384,22 @@ "time_remaining.moments": "Nog enkele ogenblikken resterend", "time_remaining.seconds": "{number, plural, one {# seconde} other {# seconden}} te gaan", "trends.count_by_accounts": "{count} {rawCount, plural, one {persoon praat} other {mensen praten}} hierover", - "trends.refresh": "Refresh", + "trends.trending_now": "Trends", "ui.beforeunload": "Je concept zal verloren gaan als je Mastodon verlaat.", "upload_area.title": "Hiernaar toe slepen om te uploaden", "upload_button.label": "Media toevoegen ({formats})", "upload_error.limit": "Uploadlimiet van bestand overschreden.", "upload_error.poll": "Het uploaden van bestanden is in polls niet toegestaan.", "upload_form.description": "Omschrijf dit voor mensen met een visuele beperking", - "upload_form.edit": "Edit", + "upload_form.edit": "Bewerken", "upload_form.undo": "Verwijderen", - "upload_modal.analyzing_picture": "Analyzing picture…", - "upload_modal.apply": "Apply", + "upload_modal.analyzing_picture": "Afbeelding analyseren…", + "upload_modal.apply": "Toepassen", "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", - "upload_modal.detect_text": "Detect text from picture", - "upload_modal.edit_media": "Edit media", - "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.", - "upload_modal.preview_label": "Preview ({ratio})", + "upload_modal.detect_text": "Tekst in een afbeelding detecteren", + "upload_modal.edit_media": "Media bewerken", + "upload_modal.hint": "Klik of sleep de cirkel in de voorvertoning naar een centraal punt dat op elke thumbnail zichtbaar moet blijven.", + "upload_modal.preview_label": "Voorvertoning ({ratio})", "upload_progress.label": "Uploaden...", "video.close": "Video sluiten", "video.exit_fullscreen": "Volledig scherm sluiten", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index b310efd696..77ddad7e01 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -16,6 +16,7 @@ "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "Følger deg", "account.hide_reblogs": "Skjul fremhevinger fra @{name}", + "account.last_status": "Last active", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "Media", @@ -24,6 +25,7 @@ "account.mute": "Demp @{name}", "account.mute_notifications": "Ignorer varsler fra @{name}", "account.muted": "Muted", + "account.never_active": "Never", "account.posts": "Innlegg", "account.posts_with_replies": "Toots with replies", "account.report": "Rapportér @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "Avfølg", "account.unmute": "Avdemp @{name}", "account.unmute_notifications": "Vis varsler fra @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "An unexpected error occurred.", "alert.unexpected.title": "Oops!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "Blokkerte brukere", "column.community": "Lokal tidslinje", "column.direct": "Direct messages", + "column.directory": "Browse profiles", "column.domain_blocks": "Hidden domains", "column.favourites": "Likt", "column.follow_requests": "Følgeforespørsler", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Er du sikker på at du vil slette denne listen permanent?", "confirmations.domain_block.confirm": "Skjul alt fra domenet", "confirmations.domain_block.message": "Er du sikker på at du vil skjule hele domenet {domain}? I de fleste tilfeller er det bedre med målrettet blokkering eller demping.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Demp", "confirmations.mute.message": "Er du sikker på at du vil dempe {name}?", "confirmations.redraft.confirm": "Delete & redraft", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.unfollow.confirm": "Slutt å følge", "confirmations.unfollow.message": "Er du sikker på at du vil slutte å følge {name}?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Kopier koden under for å bygge inn denne statusen på hjemmesiden din.", "embed.preview": "Slik kommer det til å se ut:", "emoji_button.activity": "Aktivitet", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Personal", "navigation_bar.pins": "Festa tuter", "navigation_bar.preferences": "Preferanser", - "navigation_bar.profile_directory": "Profile directory", "navigation_bar.public_timeline": "Felles tidslinje", "navigation_bar.security": "Security", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Vis mer", "status.show_more_all": "Show more for all", "status.show_thread": "Show thread", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Ikke demp samtale", "status.unpin": "Angre festing på profilen", "suggestions.dismiss": "Dismiss suggestion", @@ -373,7 +384,7 @@ "time_remaining.moments": "Moments remaining", "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "Din kladd vil bli forkastet om du forlater Mastodon.", "upload_area.title": "Dra og slipp for å laste opp", "upload_button.label": "Legg til media", diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json index 76b5780211..10501796df 100644 --- a/app/javascript/mastodon/locales/oc.json +++ b/app/javascript/mastodon/locales/oc.json @@ -16,6 +16,7 @@ "account.follows.empty": "Aqueste utilizaire sèc pas degun pel moment.", "account.follows_you": "Vos sèc", "account.hide_reblogs": "Rescondre los partatges de @{name}", + "account.last_status": "Last active", "account.link_verified_on": "La proprietat d’aqueste ligam foguèt verificada lo {date}", "account.locked_info": "L’estatut de privacitat del compte es configurat sus clavat. Lo proprietari causís qual pòt sègre son compte.", "account.media": "Mèdias", @@ -24,6 +25,7 @@ "account.mute": "Rescondre @{name}", "account.mute_notifications": "Rescondre las notificacions de @{name}", "account.muted": "Mes en silenci", + "account.never_active": "Never", "account.posts": "Tuts", "account.posts_with_replies": "Tuts e responsas", "account.report": "Senhalar @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "Quitar de sègre", "account.unmute": "Quitar de rescondre @{name}", "account.unmute_notifications": "Mostrar las notificacions de @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Una error s’es producha.", "alert.unexpected.title": "Ops !", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "Personas blocadas", "column.community": "Flux public local", "column.direct": "Messatges dirèctes", + "column.directory": "Browse profiles", "column.domain_blocks": "Domenis resconduts", "column.favourites": "Favorits", "column.follow_requests": "Demandas d’abonament", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Volètz vertadièrament suprimir aquesta lista per totjorn ?", "confirmations.domain_block.confirm": "Amagar tot lo domeni", "confirmations.domain_block.message": "Volètz vertadièrament blocar complètament {domain} ? De còps cal pas que blocar o rescondre unas personas solament.\nVeiretz pas cap de contengut d’aquel domeni dins cap de flux public o dins vòstras notificacions. Vòstres seguidors d’aquel domeni seràn levats.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Rescondre", "confirmations.mute.message": "Volètz vertadièrament rescondre {name} ?", "confirmations.redraft.confirm": "Escafar & tornar formular", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Respondre remplaçarà lo messatge que sètz a escriure. Volètz vertadièrament contunhar ?", "confirmations.unfollow.confirm": "Quitar de sègre", "confirmations.unfollow.message": "Volètz vertadièrament quitar de sègre {name} ?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Embarcar aqueste estatut per lo far veire sus un site Internet en copiar lo còdi çai-jos.", "embed.preview": "Semblarà aquò :", "emoji_button.activity": "Activitats", @@ -158,7 +169,7 @@ "home.column_settings.basic": "Basic", "home.column_settings.show_reblogs": "Mostrar los partatges", "home.column_settings.show_replies": "Mostrar las responsas", - "home.column_settings.update_live": "Actualizacion en dirècte", + "home.column_settings.update_live": "Update in real-time", "intervals.full.days": "{number, plural, one {# jorn} other {# jorns}}", "intervals.full.hours": "{number, plural, one {# ora} other {# oras}}", "intervals.full.minutes": "{number, plural, one {# minuta} other {# minutas}}", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Personal", "navigation_bar.pins": "Tuts penjats", "navigation_bar.preferences": "Preferéncias", - "navigation_bar.profile_directory": "Annuari de perfils", "navigation_bar.public_timeline": "Flux public global", "navigation_bar.security": "Seguretat", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Desplegar", "status.show_more_all": "Los desplegar totes", "status.show_thread": "Mostrar lo fil", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Tornar mostrar la conversacion", "status.unpin": "Tirar del perfil", "suggestions.dismiss": "Regetar la suggestion", @@ -373,7 +384,7 @@ "time_remaining.moments": "Moments restants", "time_remaining.seconds": "demòra{number, plural, one { # segonda} other {n # segondas}}", "trends.count_by_accounts": "{count} {rawCount, plural, one {person} ne charra other {people}} ne charran", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "Vòstre brolhon serà perdut se quitatz Mastodon.", "upload_area.title": "Lisatz e depausatz per mandar", "upload_button.label": "Ajustar un mèdia (JPEG, PNG, GIF, WebM, MP4, MOV)", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index 651ca351f6..e6c82c4f3f 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -16,6 +16,7 @@ "account.follows.empty": "Ten użytkownik nie śledzi jeszcze nikogo.", "account.follows_you": "Śledzi Cię", "account.hide_reblogs": "Ukryj podbicia od @{name}", + "account.last_status": "Last active", "account.link_verified_on": "Własność tego odnośnika została potwierdzona {date}", "account.locked_info": "To konto jest prywatne. Właściciel ręcznie wybiera kto może go śledzić.", "account.media": "Zawartość multimedialna", @@ -24,6 +25,7 @@ "account.mute": "Wycisz @{name}", "account.mute_notifications": "Wycisz powiadomienia o @{name}", "account.muted": "Wyciszony", + "account.never_active": "Never", "account.posts": "Wpisy", "account.posts_with_replies": "Wpisy i odpowiedzi", "account.report": "Zgłoś @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "Przestań śledzić", "account.unmute": "Cofnij wyciszenie @{name}", "account.unmute_notifications": "Cofnij wyciszenie powiadomień od @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Wystąpił nieoczekiwany błąd.", "alert.unexpected.title": "O nie!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "Zablokowani użytkownicy", "column.community": "Lokalna oś czasu", "column.direct": "Wiadomości bezpośrednie", + "column.directory": "Browse profiles", "column.domain_blocks": "Ukryte domeny", "column.favourites": "Ulubione", "column.follow_requests": "Prośby o śledzenie", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Czy na pewno chcesz bezpowrotnie usunąć tą listę?", "confirmations.domain_block.confirm": "Ukryj wszysyko z domeny", "confirmations.domain_block.message": "Czy na pewno chcesz zablokować całą domenę {domain}? Zwykle lepszym rozwiązaniem jest blokada lub wyciszenie kilku użytkowników.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Wycisz", "confirmations.mute.message": "Czy na pewno chcesz wyciszyć {name}?", "confirmations.redraft.confirm": "Usuń i przeredaguj", @@ -103,6 +110,10 @@ "confirmations.reply.message": "W ten sposób utracisz wpis który obecnie tworzysz. Czy na pewno chcesz to zrobić?", "confirmations.unfollow.confirm": "Przestań śledzić", "confirmations.unfollow.message": "Czy na pewno zamierzasz przestać śledzić {name}?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Osadź ten wpis na swojej stronie wklejając poniższy kod.", "embed.preview": "Tak będzie to wyglądać:", "emoji_button.activity": "Aktywność", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Osobiste", "navigation_bar.pins": "Przypięte wpisy", "navigation_bar.preferences": "Preferencje", - "navigation_bar.profile_directory": "Katalog profilów", "navigation_bar.public_timeline": "Globalna oś czasu", "navigation_bar.security": "Bezpieczeństwo", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Rozwiń", "status.show_more_all": "Rozwiń wszystkie", "status.show_thread": "Pokaż wątek", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Cofnij wyciszenie konwersacji", "status.unpin": "Odepnij z profilu", "suggestions.dismiss": "Odrzuć sugestię", @@ -373,7 +384,7 @@ "time_remaining.moments": "Pozostała chwila", "time_remaining.seconds": "{number, plural, one {Pozostała # sekunda} few {Pozostały # sekundy} many {Pozostało # sekund} other {Pozostało # sekund}}", "trends.count_by_accounts": "{count} {rawCount, plural, one {osoba rozmawia} few {osoby rozmawiają} other {osób rozmawia}} o tym", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "Utracisz tworzony wpis, jeżeli opuścisz Mastodona.", "upload_area.title": "Przeciągnij i upuść aby wysłać", "upload_button.label": "Dodaj zawartość multimedialną (JPEG, PNG, GIF, WebM, MP4, MOV)", @@ -383,7 +394,7 @@ "upload_form.edit": "Edit", "upload_form.undo": "Usuń", "upload_modal.analyzing_picture": "Analyzing picture…", - "upload_modal.apply": "Apply", + "upload_modal.apply": "Zastosuj", "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", "upload_modal.detect_text": "Detect text from picture", "upload_modal.edit_media": "Edit media", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index 5233782760..e11141f6c6 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -16,6 +16,7 @@ "account.follows.empty": "Esse usuário não segue ninguém no momento.", "account.follows_you": "Segue você", "account.hide_reblogs": "Esconder compartilhamentos de @{name}", + "account.last_status": "Last active", "account.link_verified_on": "A posse desse link foi verificada em {date}", "account.locked_info": "Essa conta está trancada. Se você a seguir sua solicitação será revisada manualmente.", "account.media": "Mídia", @@ -24,6 +25,7 @@ "account.mute": "Silenciar @{name}", "account.mute_notifications": "Silenciar notificações de @{name}", "account.muted": "Silenciado", + "account.never_active": "Never", "account.posts": "Toots", "account.posts_with_replies": "Toots e respostas", "account.report": "Denunciar @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "Deixar de seguir", "account.unmute": "Não silenciar @{name}", "account.unmute_notifications": "Retirar silêncio das notificações vindas de @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Um erro inesperado ocorreu.", "alert.unexpected.title": "Eita!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "Usuários bloqueados", "column.community": "Local", "column.direct": "Mensagens diretas", + "column.directory": "Browse profiles", "column.domain_blocks": "Domínios escondidos", "column.favourites": "Favoritos", "column.follow_requests": "Seguidores pendentes", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Você tem certeza que quer deletar permanentemente a lista?", "confirmations.domain_block.confirm": "Esconder o domínio inteiro", "confirmations.domain_block.message": "Você quer mesmo bloquear {domain} inteiro? Na maioria dos casos, silenciar ou bloquear alguns usuários é o suficiente e o recomendado. Você não vai ver conteúdo desse domínio em nenhuma das timelines públicas ou nas suas notificações. Seus seguidores desse domínio serão removidos.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Silenciar", "confirmations.mute.message": "Você tem certeza de que quer silenciar {name}?", "confirmations.redraft.confirm": "Apagar & usar como rascunho", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Responder agora vai sobrescrever a mensagem que você está compondo. Você tem certeza que quer continuar?", "confirmations.unfollow.confirm": "Deixar de seguir", "confirmations.unfollow.message": "Você tem certeza de que quer deixar de seguir {name}?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Incorpore esta postagem em seu site copiando o código abaixo.", "embed.preview": "Aqui está uma previsão de como ficará:", "emoji_button.activity": "Atividades", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Pessoal", "navigation_bar.pins": "Postagens fixadas", "navigation_bar.preferences": "Preferências", - "navigation_bar.profile_directory": "Diretório de perfis", "navigation_bar.public_timeline": "Global", "navigation_bar.security": "Segurança", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Mostrar mais", "status.show_more_all": "Mostrar mais para todas as mensagens", "status.show_thread": "Mostrar sequência", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Desativar silêncio desta conversa", "status.unpin": "Desafixar do perfil", "suggestions.dismiss": "Ignorar a sugestão", @@ -373,7 +384,7 @@ "time_remaining.moments": "Momentos restantes", "time_remaining.seconds": "{number, plural, one {# segundo restante} other {# segundos restantes}}", "trends.count_by_accounts": "{count} {rawCount, plural, one {pessoa} other {pessoas}} falando sobre", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "Seu rascunho será perdido se você sair do Mastodon.", "upload_area.title": "Arraste e solte para enviar", "upload_button.label": "Adicionar mídia (JPEG, PNG, GIF, WebM, MP4, MOV)", diff --git a/app/javascript/mastodon/locales/pt.json b/app/javascript/mastodon/locales/pt.json index 7ce6284223..63a078c4e9 100644 --- a/app/javascript/mastodon/locales/pt.json +++ b/app/javascript/mastodon/locales/pt.json @@ -16,6 +16,7 @@ "account.follows.empty": "Este utilizador ainda não segue alguém.", "account.follows_you": "É teu seguidor", "account.hide_reblogs": "Esconder partilhas de @{name}", + "account.last_status": "Last active", "account.link_verified_on": "A posse deste link foi verificada em {date}", "account.locked_info": "O estatuto de privacidade desta conta é fechado. O dono revê manualmente que a pode seguir.", "account.media": "Média", @@ -24,6 +25,7 @@ "account.mute": "Silenciar @{name}", "account.mute_notifications": "Silenciar notificações de @{name}", "account.muted": "Silenciada", + "account.never_active": "Never", "account.posts": "Publicações", "account.posts_with_replies": "Publicações e respostas", "account.report": "Denunciar @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "Deixar de seguir", "account.unmute": "Não silenciar @{name}", "account.unmute_notifications": "Deixar de silenciar @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Ocorreu um erro inesperado.", "alert.unexpected.title": "Bolas!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "Utilizadores Bloqueados", "column.community": "Cronologia local", "column.direct": "Mensagens directas", + "column.directory": "Browse profiles", "column.domain_blocks": "Domínios escondidos", "column.favourites": "Favoritos", "column.follow_requests": "Seguidores pendentes", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Tens a certeza de que desejas eliminar permanentemente esta lista?", "confirmations.domain_block.confirm": "Esconder tudo deste domínio", "confirmations.domain_block.message": "De certeza que queres bloquear completamente o domínio {domain}? Na maioria dos casos, silenciar ou bloquear alguns utilizadores é suficiente e é o recomendado. Não irás ver conteúdo daquele domínio em cronologia alguma nem nas tuas notificações. Os teus seguidores daquele domínio serão removidos.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Silenciar", "confirmations.mute.message": "De certeza que queres silenciar {name}?", "confirmations.redraft.confirm": "Apagar & redigir", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Responder agora irá reescrever a mensagem que estás a compor actualmente. Tens a certeza que queres continuar?", "confirmations.unfollow.confirm": "Deixar de seguir", "confirmations.unfollow.message": "De certeza que queres deixar de seguir {name}?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Publica esta publicação no teu site copiando o código abaixo.", "embed.preview": "Podes ver aqui como irá ficar:", "emoji_button.activity": "Actividade", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Pessoal", "navigation_bar.pins": "Toots afixados", "navigation_bar.preferences": "Preferências", - "navigation_bar.profile_directory": "Directório de perfis", "navigation_bar.public_timeline": "Cronologia federada", "navigation_bar.security": "Segurança", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Mostrar mais", "status.show_more_all": "Mostrar mais para todas", "status.show_thread": "Mostrar conversa", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Deixar de silenciar esta conversa", "status.unpin": "Não fixar no perfil", "suggestions.dismiss": "Dispensar a sugestão", @@ -373,7 +384,7 @@ "time_remaining.moments": "Momentos restantes", "time_remaining.seconds": "{número, plural, um {# second} outro {# seconds}} faltam", "trends.count_by_accounts": "{count} {rawCount, plural, uma {person} outra {people}} a falar", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "O teu rascunho será perdido se abandonares o Mastodon.", "upload_area.title": "Arraste e solte para enviar", "upload_button.label": "Adicionar media", diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json index 141ccd5ab8..27e4addda7 100644 --- a/app/javascript/mastodon/locales/ro.json +++ b/app/javascript/mastodon/locales/ro.json @@ -16,6 +16,7 @@ "account.follows.empty": "Acest utilizator nu urmărește pe nimeni incă.", "account.follows_you": "Te urmărește", "account.hide_reblogs": "Ascunde redistribuirile de la @{name}", + "account.last_status": "Last active", "account.link_verified_on": "Deținerea acestui link a fost verificată la {date}", "account.locked_info": "Acest profil este privat. Această persoană gestioneaz manual cine o urmărește.", "account.media": "Media", @@ -24,6 +25,7 @@ "account.mute": "Oprește @{name}", "account.mute_notifications": "Oprește notificările de la @{name}", "account.muted": "Oprit", + "account.never_active": "Never", "account.posts": "Postări", "account.posts_with_replies": "Postări și replici", "account.report": "Raportează @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "Nu mai urmări", "account.unmute": "Activează notificările de la @{name}", "account.unmute_notifications": "Activează notificările de la @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "A apărut o eroare neașteptată.", "alert.unexpected.title": "Hopa!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "Utilizatori blocați", "column.community": "Fluxul Local", "column.direct": "Mesaje directe", + "column.directory": "Browse profiles", "column.domain_blocks": "Domenii ascunse", "column.favourites": "Favorite", "column.follow_requests": "Cereri de urmărire", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Ești sigur că vrei să ștergi permanent această listă?", "confirmations.domain_block.confirm": "Ascunde tot domeniul", "confirmations.domain_block.message": "Ești absolut sigur că vrei să blochezi complet {domain}? În cele mai multe cazuri raportarea sau oprirea anumitor lucruri este suficientă și de preferat. Nu vei mai vedea nici un conținut de la acest domeniu in nici un flux public sau în notificările tale. Urmăritorii tăi de la acele domenii vor fi eliminați.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Oprește", "confirmations.mute.message": "Ești sigur că vrei să oprești {name}?", "confirmations.redraft.confirm": "Șterge și salvează ca ciornă", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Răspunzând la asta acum, mesajul pe care îl compui în prezent se va șterge. Ești sigur că vrei să continui?", "confirmations.unfollow.confirm": "Nu mai urmări", "confirmations.unfollow.message": "Ești sigur că nu mai vrei să îl urmărești pe {name}?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Inserează această postare pe site-ul tău adăugând codul de mai jos.", "embed.preview": "Cam așa va arăta:", "emoji_button.activity": "Activitate", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Personal", "navigation_bar.pins": "Postări fixate", "navigation_bar.preferences": "Preferințe", - "navigation_bar.profile_directory": "Profile directory", "navigation_bar.public_timeline": "Flux global", "navigation_bar.security": "Securitate", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Arată mai mult", "status.show_more_all": "Arată mai mult pentru toți", "status.show_thread": "Arată topicul", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Repornește conversația", "status.unpin": "Eliberează din profil", "suggestions.dismiss": "Omite sugestia", @@ -373,7 +384,7 @@ "time_remaining.moments": "Moments remaining", "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} vorbesc", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "Postarea se va pierde dacă părăsești pagina.", "upload_area.title": "Trage și eliberează pentru a încărca", "upload_button.label": "Adaugă media (JPEG, PNG, GIF, WebM, MP4, MOV)", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index afc064a6b5..efbaa25a08 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -16,6 +16,7 @@ "account.follows.empty": "Этот пользователь ни на кого не подписан.", "account.follows_you": "Подписан(а) на вас", "account.hide_reblogs": "Скрыть реблоги от @{name}", + "account.last_status": "Last active", "account.link_verified_on": "Владение этой ссылкой было проверено {date}", "account.locked_info": "Это закрытый аккаунт. Его владелец вручную одобряет подписчиков.", "account.media": "Медиа", @@ -24,6 +25,7 @@ "account.mute": "Скрыть @{name}", "account.mute_notifications": "Скрыть уведомления от @{name}", "account.muted": "Скрыт", + "account.never_active": "Never", "account.posts": "Посты", "account.posts_with_replies": "Посты с ответами", "account.report": "Пожаловаться", @@ -36,6 +38,8 @@ "account.unfollow": "Отписаться", "account.unmute": "Снять глушение", "account.unmute_notifications": "Показывать уведомления от @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Что-то пошло не так.", "alert.unexpected.title": "Ой!", "autosuggest_hashtag.per_week": "{count} / неделю", @@ -49,6 +53,7 @@ "column.blocks": "Список блокировки", "column.community": "Локальная лента", "column.direct": "Личные сообщения", + "column.directory": "Browse profiles", "column.domain_blocks": "Скрытые домены", "column.favourites": "Понравившееся", "column.follow_requests": "Запросы на подписку", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Вы действительно хотите навсегда удалить этот список?", "confirmations.domain_block.confirm": "Блокировать весь домен", "confirmations.domain_block.message": "Вы на самом деле уверены, что хотите блокировать весь {domain}? В большинстве случаев нескольких отдельных блокировок или глушений достаточно.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Заглушить", "confirmations.mute.message": "Вы уверены, что хотите заглушить {name}?", "confirmations.redraft.confirm": "Удалить и исправить", @@ -103,6 +110,10 @@ "confirmations.reply.message": "При ответе текст набираемого сообщения будет перезаписан. Продолжить?", "confirmations.unfollow.confirm": "Отписаться", "confirmations.unfollow.message": "Вы уверены, что хотите отписаться от {name}?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Встройте этот статус на Вашем сайте, скопировав код внизу.", "embed.preview": "Так это будет выглядеть:", "emoji_button.activity": "Занятия", @@ -158,7 +169,7 @@ "home.column_settings.basic": "Основные", "home.column_settings.show_reblogs": "Показывать продвижения", "home.column_settings.show_replies": "Показывать ответы", - "home.column_settings.update_live": "Обновлять в реальном времени", + "home.column_settings.update_live": "Update in real-time", "intervals.full.days": "{number, plural, one {# день} few {# дня} other {# дней}}", "intervals.full.hours": "{number, plural, one {# час} few {# часа} other {# часов}}", "intervals.full.minutes": "{number, plural, one {# минута} few {# минуты} other {# минут}}", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Личное", "navigation_bar.pins": "Закреплённые посты", "navigation_bar.preferences": "Опции", - "navigation_bar.profile_directory": "Каталог профилей", "navigation_bar.public_timeline": "Глобальная лента", "navigation_bar.security": "Безопасность", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Развернуть", "status.show_more_all": "Развернуть для всех", "status.show_thread": "Показать обсуждение", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Снять глушение с обсуждения", "status.unpin": "Открепить от профиля", "suggestions.dismiss": "Удалить предложение", @@ -373,7 +384,7 @@ "time_remaining.moments": "остались считанные мгновения", "time_remaining.seconds": "{number, plural, one {осталась # секунду} few {осталось # секунды} many {осталось # секунд} other {осталось # секунд}}", "trends.count_by_accounts": "Популярно у {count} {rawCount, plural, one {человека} few {человек} many {человек} other {человек}}", - "trends.refresh": "Обновить", + "trends.trending_now": "Trending now", "ui.beforeunload": "Ваш черновик будет утерян, если вы покинете Mastodon.", "upload_area.title": "Перетащите сюда, чтобы загрузить", "upload_button.label": "Добавить медиаконтент", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index 4a7625aaef..312f633015 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -16,14 +16,16 @@ "account.follows.empty": "Tento užívateľ ešte nikoho nenásleduje.", "account.follows_you": "Následuje ťa", "account.hide_reblogs": "Skry vyzdvihnutia od @{name}", + "account.last_status": "Naposledy aktívny", "account.link_verified_on": "Vlastníctvo tohto odkazu bolo skontrolované {date}", "account.locked_info": "Stav súkromia pre tento účet je nastavený na zamknutý. Jeho vlastník sám prehodnocuje, kto ho môže sledovať.", "account.media": "Médiá", "account.mention": "Spomeň @{name}", "account.moved_to": "{name} sa presunul/a na:", - "account.mute": "Ignorovať @{name}", + "account.mute": "Nevšímaj si @{name}", "account.mute_notifications": "Stĺm oboznámenia od @{name}", "account.muted": "Utíšený/á", + "account.never_active": "Nikdy", "account.posts": "Príspevkov", "account.posts_with_replies": "Príspevky aj s odpoveďami", "account.report": "Nahlás @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "Prestaň následovať", "account.unmute": "Prestaň ignorovať @{name}", "account.unmute_notifications": "Zruš stĺmenie oboznámení od @{name}", + "alert.rate_limited.message": "Prosím, skús to znova za {retry_time, time, medium}.", + "alert.rate_limited.title": "Tempo obmedzené", "alert.unexpected.message": "Vyskytla sa nečakaná chyba.", "alert.unexpected.title": "Ups!", "autosuggest_hashtag.per_week": "{count} týždenne", @@ -49,6 +53,7 @@ "column.blocks": "Blokovaní užívatelia", "column.community": "Miestna časová os", "column.direct": "Súkromné správy", + "column.directory": "Prehľadávaj profily", "column.domain_blocks": "Skryté domény", "column.favourites": "Obľúbené", "column.follow_requests": "Žiadosti o sledovanie", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Si si istý/á, že chceš natrvalo vymazať tento zoznam?", "confirmations.domain_block.confirm": "Skry celú doménu", "confirmations.domain_block.message": "Si si naozaj istý/á, že chceš blokovať celú doménu {domain}? Vo väčšine prípadov stačí blokovať alebo ignorovať pár konkrétnych užívateľov, čo sa doporučuje. Neuvidíš obsah z tejto domény v žiadnej verejnej časovej osi, ani v oznámeniach. Tvoji následovníci pochádzajúci z tejto domény budú odstránení.", + "confirmations.logout.confirm": "Odhlás sa", + "confirmations.logout.message": "Si si istý/á, že sa chceš odhlásiť?", "confirmations.mute.confirm": "Ignoruj", "confirmations.mute.message": "Naozaj chceš ignorovať {name}?", "confirmations.redraft.confirm": "Vyčisti a prepíš", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Odpovedaním akurát teraz prepíšeš správu, ktorú máš práve rozpísanú. Si si istý/á, že chceš pokračovať?", "confirmations.unfollow.confirm": "Nesleduj", "confirmations.unfollow.message": "Naozaj chceš prestať sledovať {name}?", + "directory.federated": "Zo známého fedivesmíru", + "directory.local": "Iba z {domain}", + "directory.new_arrivals": "Nové príchody", + "directory.recently_active": "Nedávno aktívne", "embed.instructions": "Umiestni kód uvedený nižšie pre pridanie tohto statusu na tvoju web stránku.", "embed.preview": "Tu je ako to bude vyzerať:", "emoji_button.activity": "Aktivita", @@ -158,7 +169,7 @@ "home.column_settings.basic": "Základné", "home.column_settings.show_reblogs": "Zobraziť povýšené", "home.column_settings.show_replies": "Ukázať odpovede", - "home.column_settings.update_live": "Aktualizuj v reálnom čase", + "home.column_settings.update_live": "Update in real-time", "intervals.full.days": "{number, plural, one {# deň} few {# dní} many {# dní} other {# dní}}", "intervals.full.hours": "{number, plural, one {# hodina} few {# hodín} many {# hodín} other {# hodín}}", "intervals.full.minutes": "{number, plural, one {# minúta} few {# minút} many {# minút} other {# minút}}", @@ -250,10 +261,9 @@ "navigation_bar.personal": "Osobné", "navigation_bar.pins": "Pripnuté príspevky", "navigation_bar.preferences": "Voľby", - "navigation_bar.profile_directory": "Katalóg profilov", "navigation_bar.public_timeline": "Federovaná časová os", "navigation_bar.security": "Zabezbečenie", - "notification.and_n_others": "a {count, plural,one {# ostatní} other {# ostatných}}", + "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", "notification.favourite": "{name} si obľúbil/a tvoj príspevok", "notification.follow": "{name} ťa začal/a následovať", "notification.mention": "{name} ťa spomenul/a", @@ -358,6 +368,7 @@ "status.show_more": "Ukáž viac", "status.show_more_all": "Všetkým ukáž viac", "status.show_thread": "Ukáž diskusné vlákno", + "status.uncached_media_warning": "Nedostupný/é", "status.unmute_conversation": "Prestaň ignorovať konverzáciu", "status.unpin": "Odopni z profilu", "suggestions.dismiss": "Zavrhni návrh", @@ -373,7 +384,7 @@ "time_remaining.moments": "Ostáva už iba chviľka", "time_remaining.seconds": "Ostáva {number, plural, one {# sekunda} few {# sekúnd} many {# sekúnd} other {# sekúnd}}", "trends.count_by_accounts": "{count} {rawCount, plural, one {človek vraví} other {ľudia vravia}}", - "trends.refresh": "Obnov", + "trends.trending_now": "Teraz populárne", "ui.beforeunload": "Čo máš rozpísané sa stratí, ak opustíš Mastodon.", "upload_area.title": "Pretiahni a pusť pre nahratie", "upload_button.label": "Pridaj médiálny súbor (JPEG, PNG, GIF, WebM, MP4, MOV)", @@ -382,13 +393,13 @@ "upload_form.description": "Opis pre slabo vidiacich", "upload_form.edit": "Uprav", "upload_form.undo": "Vymaž", - "upload_modal.analyzing_picture": "Analyzing picture…", + "upload_modal.analyzing_picture": "Analyzujem obrázok…", "upload_modal.apply": "Použi", - "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", - "upload_modal.detect_text": "Detect text from picture", + "upload_modal.description_placeholder": "Rýchla hnedá líška skáče ponad lenivého psa", + "upload_modal.detect_text": "Rozpoznaj text z obrázka", "upload_modal.edit_media": "Uprav médiá", "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.", - "upload_modal.preview_label": "Preview ({ratio})", + "upload_modal.preview_label": "Náhľad ({ratio})", "upload_progress.label": "Nahráva sa...", "video.close": "Zavri video", "video.exit_fullscreen": "Vypni zobrazenie na celú obrazovku", diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json index 8a5a0d4bb5..fa5d22fd14 100644 --- a/app/javascript/mastodon/locales/sl.json +++ b/app/javascript/mastodon/locales/sl.json @@ -16,6 +16,7 @@ "account.follows.empty": "Ta uporabnik še ne sledi nikomur.", "account.follows_you": "Sledi tebi", "account.hide_reblogs": "Skrij spodbude od @{name}", + "account.last_status": "Last active", "account.link_verified_on": "Lastništvo te povezave je bilo preverjeno {date}", "account.locked_info": "Stanje zasebnosti računa je nastavljeno na zaklenjeno. Lastnik ročno pregleda, kdo ga lahko spremlja.", "account.media": "Mediji", @@ -24,6 +25,7 @@ "account.mute": "Utišaj @{name}", "account.mute_notifications": "Utišaj obvestila od @{name}", "account.muted": "Utišan", + "account.never_active": "Never", "account.posts": "Tuti", "account.posts_with_replies": "Tuti in odgovori", "account.report": "Prijavi @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "Prenehaj slediti", "account.unmute": "Odtišaj @{name}", "account.unmute_notifications": "Vklopi obvestila od @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Zgodila se je nepričakovana napaka.", "alert.unexpected.title": "Uups!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "Blokirani uporabniki", "column.community": "Lokalna časovnica", "column.direct": "Neposredna sporočila", + "column.directory": "Browse profiles", "column.domain_blocks": "Skrite domene", "column.favourites": "Priljubljene", "column.follow_requests": "Sledi prošnjam", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Ali ste prepričani, da želite trajno izbrisati ta seznam?", "confirmations.domain_block.confirm": "Skrij celotno domeno", "confirmations.domain_block.message": "Ali ste res, res prepričani, da želite blokirati celotno {domain}? V večini primerov je nekaj ciljnih blokiranj ali utišanj dovolj in boljše. Vsebino iz te domene ne boste videli v javnih časovnicah ali obvestilih. Vaši sledilci iz te domene bodo odstranjeni.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Utišanje", "confirmations.mute.message": "Ali ste prepričani, da želite utišati {name}?", "confirmations.redraft.confirm": "Izbriši in preoblikuj", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Odgovarjanje bo prepisalo sporočilo, ki ga trenutno sestavljate. Ali ste prepričani, da želite nadaljevati?", "confirmations.unfollow.confirm": "Prenehaj slediti", "confirmations.unfollow.message": "Ali ste prepričani, da ne želite več slediti {name}?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Vstavi ta status na svojo spletno stran tako, da kopirate spodnjo kodo.", "embed.preview": "Tako bo izgledalo:", "emoji_button.activity": "Dejavnost", @@ -158,7 +169,7 @@ "home.column_settings.basic": "Osnovno", "home.column_settings.show_reblogs": "Pokaži spodbude", "home.column_settings.show_replies": "Pokaži odgovore", - "home.column_settings.update_live": "Posodabljaj v realnem času", + "home.column_settings.update_live": "Update in real-time", "intervals.full.days": "{number, plural, one {# dan} two {# dni} few {# dni} other {# dni}}", "intervals.full.hours": "{number, plural, one {# ura} two {# uri} few {# ure} other {# ur}}", "intervals.full.minutes": "{number, plural, one {# minuta} two {# minuti} few {# minute} other {# minut}}", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Osebno", "navigation_bar.pins": "Pripeti tuti", "navigation_bar.preferences": "Nastavitve", - "navigation_bar.profile_directory": "Imenik profilov", "navigation_bar.public_timeline": "Združena časovnica", "navigation_bar.security": "Varnost", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Prikaži več", "status.show_more_all": "Prikaži več za vse", "status.show_thread": "Prikaži objavo", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Odtišaj pogovor", "status.unpin": "Odpni iz profila", "suggestions.dismiss": "Zavrni predlog", @@ -373,7 +384,7 @@ "time_remaining.moments": "Preostali trenutki", "time_remaining.seconds": "{number, plural, one {# sekunda} other {# sekund}} je ostalo", "trends.count_by_accounts": "{count} {rawCount, plural, one {oseba} other {ljudi}} govori", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "Vaš osnutek bo izgubljen, če zapustite Mastodona.", "upload_area.title": "Za pošiljanje povlecite in spustite", "upload_button.label": "Dodaj medije ({formats})", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index 9877ca93f8..12f66cafd3 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -16,6 +16,7 @@ "account.follows.empty": "Ky përdorues ende s’ndjek njeri.", "account.follows_you": "Ju ndjek", "account.hide_reblogs": "Fshih përforcime nga @{name}", + "account.last_status": "Last active", "account.link_verified_on": "Pronësia e kësaj lidhjeje qe kontrolluar më {date}", "account.locked_info": "Gjendja e privatësisë së kësaj llogarie është caktuar si e kyçur. I zoti merr dorazi në shqyrtim cilët mund ta ndjekin.", "account.media": "Media", @@ -24,6 +25,7 @@ "account.mute": "Heshtoni @{name}", "account.mute_notifications": "Heshtoji njoftimet prej @{name}", "account.muted": "Heshtuar", + "account.never_active": "Never", "account.posts": "Mesazhe", "account.posts_with_replies": "Mesazhe dhe përgjigje", "account.report": "Raportojeni @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "Resht së ndjekuri", "account.unmute": "Ktheji zërin @{name}", "account.unmute_notifications": "Hiqua ndalimin e shfaqjes njoftimeve nga @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Ndodhi një gabim të papritur.", "alert.unexpected.title": "Hëm!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "Përdorues të bllokuar", "column.community": "Rrjedhë kohore vendore", "column.direct": "Mesazhe të drejtpërdrejta", + "column.directory": "Browse profiles", "column.domain_blocks": "Përkatësi të fshehura", "column.favourites": "Të parapëlqyer", "column.follow_requests": "Kërkesa për ndjekje", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Jeni i sigurt që doni të fshihet përgjithmonë kjo listë?", "confirmations.domain_block.confirm": "Fshih krejt përkatësinë", "confirmations.domain_block.message": "Jeni i sigurt, shumë i sigurt se doni të bllokohet krejt {domain}? Në shumicën e rasteve, ndoca bllokime ose heshtime me synim të caktuar janë të mjaftueshme dhe të parapëlqyera. S’keni për të parë lëndë nga kjo përkatësi në ndonjë rrjedhë kohore publike, apo te njoftimet tuaja. Ndjekësit tuaj prej asaj përkatësie do të hiqen.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Heshtoje", "confirmations.mute.message": "Jeni i sigurt se doni të heshtohet {name}?", "confirmations.redraft.confirm": "Fshijeni & rihartojeni", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Përgjigja tani do të shkaktojë mbishkrimin e mesazhit që po hartoni. Jeni i sigurt se doni të vazhdohet më tej?", "confirmations.unfollow.confirm": "Resht së ndjekuri", "confirmations.unfollow.message": "Jeni i sigurt se doni të mos ndiqet më {name}?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Trupëzojeni këtë gjendje në sajtin tuaj duke kopjuar kodin më poshtë.", "embed.preview": "Ja si do të duket:", "emoji_button.activity": "Veprimtari", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Personale", "navigation_bar.pins": "Mesazhe të fiksuar", "navigation_bar.preferences": "Parapëlqime", - "navigation_bar.profile_directory": "Profile directory", "navigation_bar.public_timeline": "Rrjedhë kohore të federuarish", "navigation_bar.security": "Siguri", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Shfaq më tepër", "status.show_more_all": "Shfaq më tepër për të tërë", "status.show_thread": "Shfaq rrjedhën", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Ktheji zërin bisedës", "status.unpin": "Shfiksoje nga profili", "suggestions.dismiss": "Mos e merr parasysh sugjerimin", @@ -373,7 +384,7 @@ "time_remaining.moments": "Moments remaining", "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", "trends.count_by_accounts": "{count} {rawCount, plural, një {person} {people} të tjerë} po flasin", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "Skica juaj do të humbë nëse dilni nga Mastodon-i.", "upload_area.title": "Merreni & vëreni që të ngarkohet", "upload_button.label": "Shtoni media (JPEG, PNG, GIF, WebM, MP4, MOV)", diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json index e60e2c7e82..72ea3490ff 100644 --- a/app/javascript/mastodon/locales/sr-Latn.json +++ b/app/javascript/mastodon/locales/sr-Latn.json @@ -16,6 +16,7 @@ "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "Prati Vas", "account.hide_reblogs": "Sakrij podrške koje daje korisnika @{name}", + "account.last_status": "Last active", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "Mediji", @@ -24,6 +25,7 @@ "account.mute": "Ućutkaj korisnika @{name}", "account.mute_notifications": "Isključi obaveštenja od korisnika @{name}", "account.muted": "Muted", + "account.never_active": "Never", "account.posts": "Statusa", "account.posts_with_replies": "Toots with replies", "account.report": "Prijavi @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "Otprati", "account.unmute": "Ukloni ućutkavanje korisniku @{name}", "account.unmute_notifications": "Uključi nazad obaveštenja od korisnika @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "An unexpected error occurred.", "alert.unexpected.title": "Oops!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "Blokirani korisnici", "column.community": "Lokalna lajna", "column.direct": "Direct messages", + "column.directory": "Browse profiles", "column.domain_blocks": "Hidden domains", "column.favourites": "Omiljeni", "column.follow_requests": "Zahtevi za praćenje", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Da li ste sigurni da želite da bespovratno obrišete ovu listu?", "confirmations.domain_block.confirm": "Sakrij ceo domen", "confirmations.domain_block.message": "Da li ste stvarno, stvarno sigurno da želite da blokirate ceo domen {domain}? U većini slučajeva, par dobrih blokiranja ili ućutkavanja su dovoljna i preporučljiva.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Ućutkaj", "confirmations.mute.message": "Da li stvarno želite da ućutkate korisnika {name}?", "confirmations.redraft.confirm": "Delete & redraft", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.unfollow.confirm": "Otprati", "confirmations.unfollow.message": "Da li ste sigurni da želite da otpratite korisnika {name}?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Ugradi ovaj status na Vaš veb sajt kopiranjem koda ispod.", "embed.preview": "Ovako će da izgleda:", "emoji_button.activity": "Aktivnost", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Personal", "navigation_bar.pins": "Prikačeni tutovi", "navigation_bar.preferences": "Podešavanja", - "navigation_bar.profile_directory": "Profile directory", "navigation_bar.public_timeline": "Federisana lajna", "navigation_bar.security": "Security", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Prikaži više", "status.show_more_all": "Show more for all", "status.show_thread": "Show thread", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Uključi prepisku", "status.unpin": "Otkači sa profila", "suggestions.dismiss": "Dismiss suggestion", @@ -373,7 +384,7 @@ "time_remaining.moments": "Moments remaining", "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "Ako napustite Mastodont, izgubićete napisani nacrt.", "upload_area.title": "Prevucite ovde da otpremite", "upload_button.label": "Dodaj multimediju", diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json index 82833630c6..c77927ec1a 100644 --- a/app/javascript/mastodon/locales/sr.json +++ b/app/javascript/mastodon/locales/sr.json @@ -16,6 +16,7 @@ "account.follows.empty": "Корисник тренутно не прати никога.", "account.follows_you": "Прати Вас", "account.hide_reblogs": "Сакриј подршке које даје корисника @{name}", + "account.last_status": "Last active", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "Медији", @@ -24,6 +25,7 @@ "account.mute": "Ућуткај корисника @{name}", "account.mute_notifications": "Искључи обавештења од корисника @{name}", "account.muted": "Ућуткан", + "account.never_active": "Never", "account.posts": "Трубе", "account.posts_with_replies": "Трубе и одговори", "account.report": "Пријави @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "Отпрати", "account.unmute": "Уклони ућуткавање кориснику @{name}", "account.unmute_notifications": "Укључи назад обавештења од корисника @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Појавила се неочекивана грешка.", "alert.unexpected.title": "Упс!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "Блокирани корисници", "column.community": "Локална временска линија", "column.direct": "Директне поруке", + "column.directory": "Browse profiles", "column.domain_blocks": "Скривени домени", "column.favourites": "Омиљене", "column.follow_requests": "Захтеви за праћење", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Да ли сте сигурни да желите да бесповратно обришете ову листу?", "confirmations.domain_block.confirm": "Сакриј цео домен", "confirmations.domain_block.message": "Да ли сте заиста сигурни да желите да блокирате цео домен {domain}? У већини случајева, неколико добро промишљених блокирања или ућуткавања су довољна и препоручљива.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Ућуткај", "confirmations.mute.message": "Да ли стварно желите да ућуткате корисника {name}?", "confirmations.redraft.confirm": "Избриши и преправи", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.unfollow.confirm": "Отпрати", "confirmations.unfollow.message": "Да ли сте сигурни да желите да отпратите корисника {name}?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Угради овај статус на Ваш веб сајт копирањем кода испод.", "embed.preview": "Овако ће да изгледа:", "emoji_button.activity": "Активност", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Personal", "navigation_bar.pins": "Прикачене трубе", "navigation_bar.preferences": "Подешавања", - "navigation_bar.profile_directory": "Profile directory", "navigation_bar.public_timeline": "Здружена временска линија", "navigation_bar.security": "Безбедност", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Прикажи више", "status.show_more_all": "Прикажи више за све", "status.show_thread": "Show thread", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Укључи преписку", "status.unpin": "Откачи са профила", "suggestions.dismiss": "Dismiss suggestion", @@ -373,7 +384,7 @@ "time_remaining.moments": "Moments remaining", "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", "trends.count_by_accounts": "{count} {rawCount, plural, one {човек} other {људи}} прича", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "Ако напустите Мастодонт, изгубићете написани нацрт.", "upload_area.title": "Превуците овде да отпремите", "upload_button.label": "Додај мултимедију (JPEG, PNG, GIF, WebM, MP4, MOV)", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index db28900baa..6783da15d6 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -16,6 +16,7 @@ "account.follows.empty": "Den här användaren följer inte någon ännu.", "account.follows_you": "Följer dig", "account.hide_reblogs": "Dölj knuffar från @{name}", + "account.last_status": "Last active", "account.link_verified_on": "Ägarskapet för det här kontot kontrollerades den {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "Media", @@ -24,6 +25,7 @@ "account.mute": "Tysta @{name}", "account.mute_notifications": "Stäng av notifieringar från @{name}", "account.muted": "Tystad", + "account.never_active": "Never", "account.posts": "Inlägg", "account.posts_with_replies": "Toots och svar", "account.report": "Rapportera @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "Sluta följa", "account.unmute": "Sluta tysta @{name}", "account.unmute_notifications": "Återaktivera notifikationer från @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "Ett oväntat fel uppstod.", "alert.unexpected.title": "Hoppsan!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "Blockerade användare", "column.community": "Lokal tidslinje", "column.direct": "Direktmeddelanden", + "column.directory": "Browse profiles", "column.domain_blocks": "Dolda domäner", "column.favourites": "Favoriter", "column.follow_requests": "Följförfrågningar", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Är du säker på att du vill radera denna lista permanent?", "confirmations.domain_block.confirm": "Dölj hela domänen", "confirmations.domain_block.message": "Är du verkligen säker på att du vill blockera hela {domain}? I de flesta fall är några riktade blockeringar eller nedtystade konton tillräckligt och att föredra. Du kommer sluta se innehåll från {domain}-domänen i den allmänna tidslinjen och i dina egna notifieringar. Du kommer även sluta följa alla eventuella följare du har från {domain}.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "Tysta", "confirmations.mute.message": "Är du säker du vill tysta ner {name}?", "confirmations.redraft.confirm": "Radera och gör om", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Om du svarar nu kommer det att ersätta meddelandet du håller på att skriva. Är du säker på att du vill fortsätta?", "confirmations.unfollow.confirm": "Sluta följa", "confirmations.unfollow.message": "Är du säker på att du vill sluta följa {name}?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "Bädda in den här statusen på din webbplats genom att kopiera koden nedan.", "embed.preview": "Så här kommer det att se ut:", "emoji_button.activity": "Aktivitet", @@ -158,7 +169,7 @@ "home.column_settings.basic": "Grundläggande", "home.column_settings.show_reblogs": "Visa knuffar", "home.column_settings.show_replies": "Visa svar", - "home.column_settings.update_live": "Uppdatera i realtid", + "home.column_settings.update_live": "Update in real-time", "intervals.full.days": "{number, plural, one {# dag} other {# dagar}}", "intervals.full.hours": "{hours, plural, one {# timme} other {# timmar}}", "intervals.full.minutes": "{minutes, plural, one {1 minut} other {# minuter}}", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Personal", "navigation_bar.pins": "Nålade inlägg (toots)", "navigation_bar.preferences": "Inställningar", - "navigation_bar.profile_directory": "Profile directory", "navigation_bar.public_timeline": "Förenad tidslinje", "navigation_bar.security": "Säkerhet", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Visa mer", "status.show_more_all": "Visa mer för alla", "status.show_thread": "Visa tråd", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Öppna konversation", "status.unpin": "Ångra fäst i profil", "suggestions.dismiss": "Dismiss suggestion", @@ -373,7 +384,7 @@ "time_remaining.moments": "Moments remaining", "time_remaining.seconds": "{hours, plural, one {# sekund} other {# sekunder}} kvar", "trends.count_by_accounts": "{count} {rawCount, plural, en {person} andra {people}} pratar", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "Ditt utkast kommer att förloras om du lämnar Mastodon.", "upload_area.title": "Dra & släpp för att ladda upp", "upload_button.label": "Lägg till media", diff --git a/app/javascript/mastodon/locales/ta.json b/app/javascript/mastodon/locales/ta.json index 7fa7db98b2..3266102b1d 100644 --- a/app/javascript/mastodon/locales/ta.json +++ b/app/javascript/mastodon/locales/ta.json @@ -16,6 +16,7 @@ "account.follows.empty": "இந்த பயனர் இதுவரை யாரையும் பின்தொடரவில்லை.", "account.follows_you": "நீ பின் தொடர்கிறாய்", "account.hide_reblogs": "இருந்து ஊக்கியாக மறை @{name}", + "account.last_status": "Last active", "account.link_verified_on": "இந்த இணைப்பை உரிமையாளர் சரிபார்க்கப்பட்டது {date}", "account.locked_info": "இந்தக் கணக்கு தனியுரிமை நிலை பூட்டப்பட்டுள்ளது. அவர்களைப் பின்தொடர்பவர் யார் என்பதை உரிமையாளர் கைமுறையாக மதிப்பாய்வு செய்கிறார்.", "account.media": "Media", @@ -24,6 +25,7 @@ "account.mute": "ஊமையான @{name}", "account.mute_notifications": "அறிவிப்புகளை முடக்கு @{name}", "account.muted": "முடக்கியது", + "account.never_active": "Never", "account.posts": "Toots", "account.posts_with_replies": "Toots மற்றும் பதில்கள்", "account.report": "Report @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "பின்தொடராட்", "account.unmute": "தடுப்புநீக்கு @{name}", "account.unmute_notifications": "அறிவிப்புகளை அகற்றவும் @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "எதிர் பாராத பிழை ஏற்பட்டு விட்டது.", "alert.unexpected.title": "அச்சச்சோ!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "தடுக்கப்பட்ட பயனர்கள்", "column.community": "உள்ளூர் காலக்கெடு", "column.direct": "நேரடி செய்திகள்", + "column.directory": "Browse profiles", "column.domain_blocks": "மறைந்த களங்கள்", "column.favourites": "விருப்பத்துக்குகந்த", "column.follow_requests": "கோரிக்கைகளை பின்பற்றவும்", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "இந்த பட்டியலில் நிரந்தரமாக நீக்க விரும்புகிறீர்களா?", "confirmations.domain_block.confirm": "முழு டொமைனை மறை", "confirmations.domain_block.message": "நீங்கள் உண்மையில், நிச்சயமாக நீங்கள் முழு தடுக்க வேண்டும் நிச்சயமாக {domain}? பெரும்பாலான சந்தர்ப்பங்களில் ஒரு சில இலக்குகள் அல்லது மியூட்கள் போதுமானவை மற்றும் சிறந்தவை. எந்த பொது நேரத்திலும் அல்லது உங்கள் அறிவிப்புகளிலும் அந்தக் களத்திலிருந்து உள்ளடக்கத்தை நீங்கள் பார்க்க மாட்டீர்கள். அந்த களத்தில் இருந்து உங்கள் ஆதரவாளர்கள் அகற்றப்படுவார்கள்.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "ஊமையான", "confirmations.mute.message": "நிச்சயமாக நீங்கள் முடக்க விரும்புகிறீர்களா {name}?", "confirmations.redraft.confirm": "நீக்கு & redraft", @@ -103,6 +110,10 @@ "confirmations.reply.message": "இப்போது பதில், தற்போது நீங்கள் உருவாக்கும் செய்தி மேலெழுதப்படும். நீங்கள் தொடர விரும்புகிறீர்களா?", "confirmations.unfollow.confirm": "பின்தொடராட்", "confirmations.unfollow.message": "நிச்சயமாக நீங்கள் பின்தொடர விரும்புகிறீர்களா {name}?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "கீழே உள்ள குறியீட்டை நகலெடுப்பதன் மூலம் உங்கள் இணையதளத்தில் இந்த நிலையை உட்பொதிக்கவும்.", "embed.preview": "இது போன்ற தோற்றத்தை இங்கு காணலாம்:", "emoji_button.activity": "நடவடிக்கை", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Personal", "navigation_bar.pins": "பொருத்தப்பட்டன toots", "navigation_bar.preferences": "விருப்பங்கள்", - "navigation_bar.profile_directory": "Profile directory", "navigation_bar.public_timeline": "கூட்டாட்சி காலக்கெடு", "navigation_bar.security": "பத்திரம்", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "மேலும் காட்ட", "status.show_more_all": "அனைவருக்கும் மேலும் காட்டு", "status.show_thread": "நூல் காட்டு", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "ஊமையாக உரையாடல் இல்லை", "status.unpin": "சுயவிவரத்திலிருந்து நீக்கவும்", "suggestions.dismiss": "பரிந்துரை விலக்க", @@ -373,7 +384,7 @@ "time_remaining.moments": "தருணங்கள் மீதமுள்ளன", "time_remaining.seconds": "{number, plural, one {# second} மற்ற {# seconds}} left", "trends.count_by_accounts": "{count} {rawCount, plural, one {person} மற்ற {people}} உரையாடு", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "நீங்கள் வெளியே சென்றால் உங்கள் வரைவு இழக்கப்படும் மஸ்தோடோன்.", "upload_area.title": "பதிவேற்ற & இழுக்கவும்", "upload_button.label": "மீடியாவைச் சேர்க்கவும் (JPEG, PNG, GIF, WebM, MP4, MOV)", diff --git a/app/javascript/mastodon/locales/te.json b/app/javascript/mastodon/locales/te.json index 0f7a617bb9..ee7293aa7c 100644 --- a/app/javascript/mastodon/locales/te.json +++ b/app/javascript/mastodon/locales/te.json @@ -16,6 +16,7 @@ "account.follows.empty": "ఈ వినియోగదారి ఇంకా ఎవరినీ అనుసరించడంలేదు.", "account.follows_you": "మిమ్మల్ని అనుసరిస్తున్నారు", "account.hide_reblogs": "@{name} నుంచి బూస్ట్ లను దాచిపెట్టు", + "account.last_status": "Last active", "account.link_verified_on": "ఈ లంకె యొక్క యాజమాన్యం {date}న పరీక్షించబడింది", "account.locked_info": "ఈ ఖాతా యొక్క గోప్యత స్థితి లాక్ చేయబడి వుంది. ఈ ఖాతాను ఎవరు అనుసరించవచ్చో యజమానే నిర్ణయం తీసుకుంటారు.", "account.media": "మీడియా", @@ -24,6 +25,7 @@ "account.mute": "@{name}ను మ్యూట్ చెయ్యి", "account.mute_notifications": "@{name}నుంచి ప్రకటనలను మ్యూట్ చెయ్యి", "account.muted": "మ్యూట్ అయినవి", + "account.never_active": "Never", "account.posts": "టూట్లు", "account.posts_with_replies": "టూట్లు మరియు ప్రత్యుత్తరములు", "account.report": "@{name}పై ఫిర్యాదుచేయు", @@ -36,6 +38,8 @@ "account.unfollow": "అనుసరించవద్దు", "account.unmute": "@{name}పై మ్యూట్ ని తొలగించు", "account.unmute_notifications": "@{name} నుంచి ప్రకటనలపై మ్యూట్ ని తొలగించు", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "అనుకోని తప్పు జరిగినది.", "alert.unexpected.title": "అయ్యో!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "బ్లాక్ చేయబడిన వినియోగదారులు", "column.community": "స్థానిక కాలక్రమం", "column.direct": "ప్రత్యక్ష సందేశాలు", + "column.directory": "Browse profiles", "column.domain_blocks": "దాచిన డొమైన్లు", "column.favourites": "ఇష్టపడినవి", "column.follow_requests": "అనుసరించడానికి అభ్యర్ధనలు", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "మీరు ఖచ్చితంగా ఈ జాబితాను శాశ్వతంగా తొలగించాలనుకుంటున్నారా?", "confirmations.domain_block.confirm": "మొత్తం డొమైన్ను దాచు", "confirmations.domain_block.message": "మీరు నిజంగా నిజంగా మొత్తం {domain} ని బ్లాక్ చేయాలనుకుంటున్నారా? చాలా సందర్భాలలో కొన్ని లక్ష్యంగా ఉన్న బ్లాక్స్ లేదా మ్యూట్స్ సరిపోతాయి మరియు ఉత్తమమైనవి. మీరు ఆ డొమైన్ నుండి కంటెంట్ను ఏ ప్రజా కాలక్రమాలలో లేదా మీ నోటిఫికేషన్లలో చూడలేరు. ఆ డొమైన్ నుండి మీ అనుచరులు తీసివేయబడతారు.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "మ్యూట్ చేయి", "confirmations.mute.message": "{name}ను మీరు ఖచ్చితంగా మ్యూట్ చేయాలనుకుంటున్నారా?", "confirmations.redraft.confirm": "తొలగించు & తిరగరాయు", @@ -103,6 +110,10 @@ "confirmations.reply.message": "ఇప్పుడే ప్రత్యుత్తరం ఇస్తే మీరు ప్రస్తుతం వ్రాస్తున్న సందేశం తిరగరాయబడుతుంది. మీరు ఖచ్చితంగా కొనసాగించాలనుకుంటున్నారా?", "confirmations.unfollow.confirm": "అనుసరించవద్దు", "confirmations.unfollow.message": "{name}ను మీరు ఖచ్చితంగా అనుసరించవద్దనుకుంటున్నారా?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "దిగువ కోడ్ను కాపీ చేయడం ద్వారా మీ వెబ్సైట్లో ఈ స్టేటస్ ని పొందుపరచండి.", "embed.preview": "అది ఈ క్రింది విధంగా కనిపిస్తుంది:", "emoji_button.activity": "కార్యకలాపాలు", @@ -250,7 +261,6 @@ "navigation_bar.personal": "వ్యక్తిగతం", "navigation_bar.pins": "అతికించిన టూట్లు", "navigation_bar.preferences": "ప్రాధాన్యతలు", - "navigation_bar.profile_directory": "Profile directory", "navigation_bar.public_timeline": "సమాఖ్య కాలక్రమం", "navigation_bar.security": "భద్రత", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "ఇంకా చూపించు", "status.show_more_all": "అన్నిటికీ ఇంకా చూపించు", "status.show_thread": "గొలుసును చూపించు", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "సంభాషణను అన్మ్యూట్ చేయి", "status.unpin": "ప్రొఫైల్ నుండి పీకివేయు", "suggestions.dismiss": "సూచనను రద్దు చేయి", @@ -373,7 +384,7 @@ "time_remaining.moments": "కొన్ని క్షణాలు మాత్రమే మిగిలి ఉన్నాయి", "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} మాట్లాడుతున్నారు", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "మీరు మాస్టొడొన్ను వదిలివేస్తే మీ డ్రాఫ్ట్లు పోతాయి.", "upload_area.title": "అప్లోడ్ చేయడానికి డ్రాగ్ & డ్రాప్ చేయండి", "upload_button.label": "మీడియాను జోడించండి (JPEG, PNG, GIF, WebM, MP4, MOV)", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index 5bf79ded8c..3ff56f947c 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -4,7 +4,7 @@ "account.block": "ปิดกั้น @{name}", "account.block_domain": "ซ่อนทุกอย่างจาก {domain}", "account.blocked": "ปิดกั้นอยู่", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "ยกเลิกคำขอติดตาม", "account.direct": "ส่งข้อความโดยตรงถึง @{name}", "account.domain_blocked": "ซ่อนโดเมนอยู่", "account.edit_profile": "แก้ไขโปรไฟล์", @@ -16,6 +16,7 @@ "account.follows.empty": "ผู้ใช้นี้ยังไม่ได้ติดตามใคร", "account.follows_you": "ติดตามคุณ", "account.hide_reblogs": "ซ่อนการดันจาก @{name}", + "account.last_status": "Last active", "account.link_verified_on": "ตรวจสอบความเป็นเจ้าของของลิงก์นี้เมื่อ {date}", "account.locked_info": "มีการตั้งสถานะความเป็นส่วนตัวของบัญชีนี้เป็นล็อคอยู่ เจ้าของตรวจทานผู้ที่สามารถติดตามเขาด้วยตนเอง", "account.media": "สื่อ", @@ -24,6 +25,7 @@ "account.mute": "ปิดเสียง @{name}", "account.mute_notifications": "ปิดเสียงการแจ้งเตือนจาก @{name}", "account.muted": "ปิดเสียงอยู่", + "account.never_active": "Never", "account.posts": "โพสต์", "account.posts_with_replies": "โพสต์และการตอบกลับ", "account.report": "รายงาน @{name}", @@ -36,9 +38,11 @@ "account.unfollow": "เลิกติดตาม", "account.unmute": "เลิกปิดเสียง @{name}", "account.unmute_notifications": "เลิกปิดเสียงการแจ้งเตือนจาก @{name}", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "เกิดข้อผิดพลาดที่ไม่คาดคิด", "alert.unexpected.title": "อุปส์!", - "autosuggest_hashtag.per_week": "{count} per week", + "autosuggest_hashtag.per_week": "{count} ต่อสัปดาห์", "boost_modal.combo": "คุณสามารถกด {combo} เพื่อข้ามสิ่งนี้ในครั้งถัดไป", "bundle_column_error.body": "มีบางอย่างผิดพลาดขณะโหลดส่วนประกอบนี้", "bundle_column_error.retry": "ลองอีกครั้ง", @@ -49,6 +53,7 @@ "column.blocks": "ผู้ใช้ที่ปิดกั้นอยู่", "column.community": "เส้นเวลาในเว็บ", "column.direct": "ข้อความโดยตรง", + "column.directory": "Browse profiles", "column.domain_blocks": "โดเมนที่ซ่อนอยู่", "column.favourites": "รายการโปรด", "column.follow_requests": "คำขอติดตาม", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "คุณแน่ใจหรือไม่ว่าต้องการลบรายการนี้อย่างถาวร?", "confirmations.domain_block.confirm": "ซ่อนทั้งโดเมน", "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable.", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "ปิดเสียง", "confirmations.mute.message": "คุณแน่ใจหรือไม่ว่าต้องการปิดเสียง {name}?", "confirmations.redraft.confirm": "ลบแล้วร่างใหม่", @@ -103,6 +110,10 @@ "confirmations.reply.message": "การตอบกลับตอนนี้จะเขียนทับข้อความที่คุณกำลังเขียน คุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อ?", "confirmations.unfollow.confirm": "เลิกติดตาม", "confirmations.unfollow.message": "คุณแน่ใจหรือไม่ว่าต้องการเลิกติดตาม {name}?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "ฝังสถานะนี้ในเว็บไซต์ของคุณโดยคัดลอกโค้ดด้านล่าง", "embed.preview": "นี่คือลักษณะที่จะปรากฏ:", "emoji_button.activity": "กิจกรรม", @@ -158,7 +169,7 @@ "home.column_settings.basic": "พื้นฐาน", "home.column_settings.show_reblogs": "แสดงการดัน", "home.column_settings.show_replies": "แสดงการตอบกลับ", - "home.column_settings.update_live": "อัปเดตตามเวลาจริง", + "home.column_settings.update_live": "Update in real-time", "intervals.full.days": "{number, plural, other {# วัน}}", "intervals.full.hours": "{number, plural, other {# ชั่วโมง}}", "intervals.full.minutes": "{number, plural, other {# นาที}}", @@ -250,7 +261,6 @@ "navigation_bar.personal": "ส่วนบุคคล", "navigation_bar.pins": "โพสต์ที่ปักหมุด", "navigation_bar.preferences": "การกำหนดลักษณะ", - "navigation_bar.profile_directory": "ไดเรกทอรีโปรไฟล์", "navigation_bar.public_timeline": "เส้นเวลาที่ติดต่อกับภายนอก", "navigation_bar.security": "ความปลอดภัย", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "แสดงเพิ่มเติม", "status.show_more_all": "แสดงเพิ่มเติมทั้งหมด", "status.show_thread": "แสดงกระทู้", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "เลิกปิดเสียงการสนทนา", "status.unpin": "ถอนหมุดจากโปรไฟล์", "suggestions.dismiss": "ยกเลิกข้อเสนอแนะ", @@ -372,23 +383,23 @@ "time_remaining.minutes": "เหลืออีก {number, plural, other {# นาที}}", "time_remaining.moments": "ช่วงเวลาที่เหลือ", "time_remaining.seconds": "เหลืออีก {number, plural, other {# วินาที}}", - "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking", - "trends.refresh": "Refresh", + "trends.count_by_accounts": "{count} {rawCount, plural, other {คน}}กำลังคุย", + "trends.trending_now": "แนวโน้มตอนนี้", "ui.beforeunload": "แบบร่างของคุณจะหายไปหากคุณออกจาก Mastodon", "upload_area.title": "ลากแล้วปล่อยเพื่ออัปโหลด", "upload_button.label": "เพิ่มสื่อ (JPEG, PNG, GIF, WebM, MP4, MOV)", "upload_error.limit": "เกินขีดจำกัดการอัปโหลดไฟล์", "upload_error.poll": "ไม่อนุญาตให้อัปโหลดไฟล์กับการลงคะแนน", "upload_form.description": "อธิบายสำหรับผู้บกพร่องทางการมองเห็น", - "upload_form.edit": "Edit", + "upload_form.edit": "แก้ไข", "upload_form.undo": "ลบ", - "upload_modal.analyzing_picture": "Analyzing picture…", - "upload_modal.apply": "Apply", + "upload_modal.analyzing_picture": "กำลังวิเคราะห์รูปภาพ…", + "upload_modal.apply": "นำไปใช้", "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", "upload_modal.detect_text": "Detect text from picture", - "upload_modal.edit_media": "Edit media", + "upload_modal.edit_media": "แก้ไขสื่อ", "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.", - "upload_modal.preview_label": "Preview ({ratio})", + "upload_modal.preview_label": "ตัวอย่าง ({ratio})", "upload_progress.label": "กำลังอัปโหลด...", "video.close": "ปิดวิดีโอ", "video.exit_fullscreen": "ออกจากเต็มหน้าจอ", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index 3638b05825..ec9bd0f8f9 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -1,45 +1,49 @@ { - "account.add_or_remove_from_list": "Listelere ekle veya kaldır", + "account.add_or_remove_from_list": "Listeye ekle veya kaldır", "account.badges.bot": "Bot", - "account.block": "Engelle @{name}", + "account.block": "@{name} adlı kişiyi engelle", "account.block_domain": "{domain} alanından her şeyi gizle", "account.blocked": "Engellenmiş", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "Takip isteğini iptal et", "account.direct": "Mesaj gönder : @{name}", "account.domain_blocked": "Alan adı gizlendi", "account.edit_profile": "Profili düzenle", "account.endorse": "Profildeki özellik", "account.follow": "Takip et", - "account.followers": "Takipçiler", + "account.followers": "Takipçi", "account.followers.empty": "Henüz kimse bu kullanıcıyı takip etmiyor.", "account.follows": "Takip ettikleri", "account.follows.empty": "Bu kullanıcı henüz kimseyi takip etmiyor.", "account.follows_you": "Seni takip ediyor", - "account.hide_reblogs": "@{name} kişisinden boost'ları gizle", + "account.hide_reblogs": "@{name} kişisinin yinelemelerini gizle", + "account.last_status": "Son aktivite", "account.link_verified_on": "Bu bağlantının mülkiyeti {date} tarihinde kontrol edildi", - "account.locked_info": "Bu hesabın gizlilik durumu kilitli olarak ayarlanmış. Sahibi, onu kimin takip edebileceğini elle inceler.", + "account.locked_info": "Bu hesabın gizlilik durumu kilitli olarak ayarlanmış. Sahibi, onu kimin takip edebileceğini elle inceliyor.", "account.media": "Medya", "account.mention": "@{name} kullanıcısından bahset", "account.moved_to": "{name} şuraya taşındı:", - "account.mute": "@{name} kullanıcısını sessize al", - "account.mute_notifications": "@{name} kullanıcısının bildirimlerini kapat", - "account.muted": "Sesi kısık", - "account.posts": "Gönderiler", + "account.mute": "@{name} adlı kişiyi sessize al", + "account.mute_notifications": "@{name} adlı kişinin bildirimlerini kapat", + "account.muted": "Susturuldu", + "account.never_active": "Asla", + "account.posts": "Gönderi", "account.posts_with_replies": "Gönderiler ve yanıtlar", - "account.report": "@{name} kullanıcısını bildir", - "account.requested": "Onay bekliyor. Takip isteğini iptal etmek için tıklayın", + "account.report": "@{name} adlı kişiyi bildir", + "account.requested": "Onay Bekleniyor. Takip isteğini iptal etmek için tıklayın", "account.share": "@{name} kullanıcısının profilini paylaş", - "account.show_reblogs": "@{name} kullanıcısından boostları göster", - "account.unblock": "Engeli kaldır @{name}", + "account.show_reblogs": "@{name} kullanıcısının yinelemelerini göster", + "account.unblock": "@{name} adlı kişinin engelini kaldır", "account.unblock_domain": "{domain} göster", "account.unendorse": "Profilde özellik yok", - "account.unfollow": "Takipten vazgeç", - "account.unmute": "Sesi aç : @{name}", - "account.unmute_notifications": "@{name} kullanıcısından bildirimleri aç", + "account.unfollow": "Takipi bırak", + "account.unmute": "@{name} adlı kişinin sesini aç", + "account.unmute_notifications": "@{name} adlı kişinin bildirimlerini aç", + "alert.rate_limited.message": "Lütfen sonra tekrar deneyin {retry_time, time, medium}.", + "alert.rate_limited.title": "Oran sınırlıdır", "alert.unexpected.message": "Beklenmedik bir hata oluştu.", "alert.unexpected.title": "Hay aksi!", - "autosuggest_hashtag.per_week": "{count} per week", - "boost_modal.combo": "Bir dahaki sefere {combo} tuşuna basabilirsiniz", + "autosuggest_hashtag.per_week": "Haftada {count}", + "boost_modal.combo": "Bir daha ki sefere {combo} tuşuna basabilirsiniz", "bundle_column_error.body": "Bu bileşen yüklenirken bir şeyler ters gitti.", "bundle_column_error.retry": "Tekrar deneyin", "bundle_column_error.title": "Ağ hatası", @@ -49,6 +53,7 @@ "column.blocks": "Engellenen kullanıcılar", "column.community": "Yerel zaman tüneli", "column.direct": "Doğrudan mesajlar", + "column.directory": "Profillere göz at", "column.domain_blocks": "Gizli alan adları", "column.favourites": "Favoriler", "column.follow_requests": "Takip istekleri", @@ -79,7 +84,7 @@ "compose_form.poll.remove_option": "Bu seçimi kaldır", "compose_form.publish": "Gönder", "compose_form.publish_loud": "{publish}!", - "compose_form.sensitive.hide": "Mark media as sensitive", + "compose_form.sensitive.hide": "Medyayı hassas olarak işaretle", "compose_form.sensitive.marked": "Medya hassas olarak işaretlendi", "compose_form.sensitive.unmarked": "Medya hassas olarak işaretlenmemiş", "compose_form.spoiler.marked": "Metin uyarının arkasına gizlenir", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Bu listeyi kalıcı olarak silmek istediğinize emin misiniz?", "confirmations.domain_block.confirm": "Alan adının tamamını gizle", "confirmations.domain_block.message": "tüm {domain} alan adını engellemek istediğinizden emin misiniz? Genellikle birkaç hedefli engel ve susturma işi görür ve tercih edilir.", + "confirmations.logout.confirm": "Çıkış Yap", + "confirmations.logout.message": "Çıkış yapmak istediğinize emin misiniz?", "confirmations.mute.confirm": "Sessize al", "confirmations.mute.message": "{name} kullanıcısını sessize almak istiyor musunuz?", "confirmations.redraft.confirm": "Sil ve yeniden tasarla", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Şimdi yanıtlarken o an oluşturduğunuz mesajın üzerine yazılır. Devam etmek istediğinize emin misiniz?", "confirmations.unfollow.confirm": "Takibi kaldır", "confirmations.unfollow.message": "{name}'yi takipten çıkarmak istediğinizden emin misiniz?", + "directory.federated": "From known fediverse", + "directory.local": "Yalnızca {domain} adresinden", + "directory.new_arrivals": "Yeni gelenler", + "directory.recently_active": "Son zamanlarda aktif", "embed.instructions": "Aşağıdaki kodu kopyalayarak bu durumu sitenize gömün.", "embed.preview": "İşte nasıl görüneceği:", "emoji_button.activity": "Aktivite", @@ -120,7 +131,7 @@ "emoji_button.symbols": "Semboller", "emoji_button.travel": "Seyahat ve Yerler", "empty_column.account_timeline": "Burada hiç gönderi yok!", - "empty_column.account_unavailable": "Profile unavailable", + "empty_column.account_unavailable": "Profil kullanılamıyor", "empty_column.blocks": "Henüz bir kullanıcıyı engellemediniz.", "empty_column.community": "Yerel zaman çizelgesi boş. Daha fazla eğlence için herkese açık bir gönderi paylaşın!", "empty_column.direct": "Henüz doğrudan mesajınız yok. Bir tane gönderdiğinizde veya aldığınızda burada görünecektir.", @@ -159,20 +170,20 @@ "home.column_settings.show_reblogs": "Boost edilenleri göster", "home.column_settings.show_replies": "Cevapları göster", "home.column_settings.update_live": "Update in real-time", - "intervals.full.days": "{number, plural, one {# day} other {# days}}", - "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", - "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", + "intervals.full.days": "{number, plural, one {# gün} other {# gün}}", + "intervals.full.hours": "{number, plural, one {# saat} other {# saat}}", + "intervals.full.minutes": "{number, plural, one {# dakika} other {# dakika}}", "introduction.federation.action": "İleri", "introduction.federation.federated.headline": "Birleşik", "introduction.federation.federated.text": "Diğer dosya sunucularından gelen genel gönderiler, birleşik zaman çizelgesinde görünecektir.", "introduction.federation.home.headline": "Ana sayfa", - "introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!", + "introduction.federation.home.text": "Takip ettiğiniz kişilerin yayınları ana sayfada gösterilecek. Herhangi bir sunucudaki herkesi takip edebilirsiniz!", "introduction.federation.local.headline": "Yerel", "introduction.federation.local.text": "Aynı sunucudaki kişilerin gönderileri yerel zaman tünelinde gözükecektir.", "introduction.interactions.action": "Öğreticiyi bitirin!", "introduction.interactions.favourite.headline": "Favori", "introduction.interactions.favourite.text": "Bir gönderiyi favorilerinize alarak sonrası için saklayabilirsiniz ve yazara gönderiyi beğendiğinizi söyleyebilirsiniz.", - "introduction.interactions.reblog.headline": "Boost", + "introduction.interactions.reblog.headline": "Yinele", "introduction.interactions.reblog.text": "Başkalarının gönderilerini boostlayarak kendi takipçilerinizle paylaşabillirsiniz.", "introduction.interactions.reply.headline": "Yanıt", "introduction.interactions.reply.text": "Başkalarının gönderilerini ve kendi gönderilerinizi yanıtlayabilirsiniz. Bir konuşmada zincirli bir şekilde olacaklardır.", @@ -207,14 +218,14 @@ "keyboard_shortcuts.search": "aramaya odaklanmak için", "keyboard_shortcuts.start": "\"başlayın\" sütununu açmak için", "keyboard_shortcuts.toggle_hidden": "CW'den önceki yazıyı göstermek/gizlemek için", - "keyboard_shortcuts.toggle_sensitivity": "to show/hide media", + "keyboard_shortcuts.toggle_sensitivity": "medyayı göstermek/gizlemek için", "keyboard_shortcuts.toot": "yeni bir gönderiye başlamak için", "keyboard_shortcuts.unfocus": "aramada bir gönderiye odaklanmamak için", "keyboard_shortcuts.up": "listede yukarıya çıkmak için", "lightbox.close": "Kapat", "lightbox.next": "Sonraki", "lightbox.previous": "Önceli", - "lightbox.view_context": "View context", + "lightbox.view_context": "İçeriği göster", "lists.account.add": "Listeye ekle", "lists.account.remove": "Listeden kaldır", "lists.delete": "Listeyi sil", @@ -224,7 +235,7 @@ "lists.new.title_placeholder": "Yeni liste başlığı", "lists.search": "Takip ettiğiniz kişiler arasından arayın", "lists.subheading": "Listeleriniz", - "load_pending": "{count, plural, one {# new item} other {# new items}}", + "load_pending": "{count, plural, one {# yeni öğe} other {# yeni öğe}}", "loading_indicator.label": "Yükleniyor...", "media_gallery.toggle_visible": "Görünürlüğü değiştir", "missing_indicator.label": "Bulunamadı", @@ -241,7 +252,7 @@ "navigation_bar.favourites": "Favoriler", "navigation_bar.filters": "Susturulmuş kelimeler", "navigation_bar.follow_requests": "Takip istekleri", - "navigation_bar.follows_and_followers": "Follows and followers", + "navigation_bar.follows_and_followers": "Takip edilenler ve takipçiler", "navigation_bar.info": "Genişletilmiş bilgi", "navigation_bar.keyboard_shortcuts": "Klavye kısayolları", "navigation_bar.lists": "Listeler", @@ -250,13 +261,12 @@ "navigation_bar.personal": "Kişisel", "navigation_bar.pins": "Sabitlenmiş gönderiler", "navigation_bar.preferences": "Tercihler", - "navigation_bar.profile_directory": "Profile directory", "navigation_bar.public_timeline": "Federe zaman tüneli", "navigation_bar.security": "Güvenlik", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", "notification.favourite": "{name} senin durumunu favorilere ekledi", "notification.follow": "{name} seni takip ediyor", - "notification.mention": "{name} mentioned you", + "notification.mention": "{name} senden bahsetti", "notification.poll": "Oy verdiğiniz bir anket bitti", "notification.reblog": "{name} senin durumunu boost etti", "notifications.clear": "Bildirimleri temizle", @@ -282,7 +292,7 @@ "notifications.group": "{count} bildirim", "poll.closed": "Kapandı", "poll.refresh": "Yenile", - "poll.total_votes": "{count, plural, one {# vote} other {# votes}}", + "poll.total_votes": "{count, plural, one {# oy} other {# oy}}", "poll.vote": "Oy ver", "poll_button.add_poll": "Bir anket ekleyin", "poll_button.remove_poll": "Anket kaldır", @@ -311,15 +321,15 @@ "report.target": "Raporlama", "search.placeholder": "Ara", "search_popout.search_format": "Gelişmiş arama formatı", - "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", - "search_popout.tips.hashtag": "hashtag", + "search_popout.tips.full_text": "Basit metin yazdığınız, tercih ettiğiniz, yinelediğiniz veya bunlardan bahsettiğiniz durumların yanı sıra kullanıcı adlarını, görünen adları ve hashtag'leri eşleştiren durumları döndürür.", + "search_popout.tips.hashtag": "etiketler", "search_popout.tips.status": "durum", - "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", + "search_popout.tips.text": "Basit metin, eşleşen görünen adları, kullanıcı adlarını ve hashtag'leri döndürür", "search_popout.tips.user": "kullanıcı", "search_results.accounts": "İnsanlar", "search_results.hashtags": "Hashtagler", "search_results.statuses": "Gönderiler", - "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", + "search_results.statuses_fts_disabled": "Bu Mastodon sunucusunda gönderi içeriğine göre arama etkin değil.", "search_results.total": "{count, number} {count, plural, one {sonuç} other {sonuçlar}}", "status.admin_account": "@{name} için denetim arayüzünü açın", "status.admin_status": "Denetim arayüzünde bu durumu açın", @@ -358,7 +368,8 @@ "status.show_more": "Daha fazla göster", "status.show_more_all": "Hepsi için daha fazla göster", "status.show_thread": "Başlığı göster", - "status.unmute_conversation": "Unmute conversation", + "status.uncached_media_warning": "Mevcut değil", + "status.unmute_conversation": "Sohbeti aç", "status.unpin": "Profilden sabitlemeyi kaldır", "suggestions.dismiss": "Öneriyi görmezden gel", "suggestions.header": "Şuna ilgi duyuyor olabilirsiniz…", @@ -367,28 +378,28 @@ "tabs_bar.local_timeline": "Yerel", "tabs_bar.notifications": "Bildirimler", "tabs_bar.search": "Ara", - "time_remaining.days": "{number, plural, one {# day} other {# days}} left", - "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", - "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", - "time_remaining.moments": "Moments remaining", - "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", - "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking", - "trends.refresh": "Refresh", + "time_remaining.days": "{number, plural, one {# gün} other {# gün}} kaldı", + "time_remaining.hours": "{number, plural, one {# saat} other {# saat}} kaldı", + "time_remaining.minutes": "{number, plural, one {# dakika} other {# dakika}} kaldı", + "time_remaining.moments": "Sadece birkaç dakika kaldı", + "time_remaining.seconds": "{number, plural, one {# saniye} other {# saniye}} kaldı", + "trends.count_by_accounts": "{count} {rawCount, plural, one {kişi} other {kişi}} konuşuyor", + "trends.trending_now": "Şu an popüler", "ui.beforeunload": "Mastodon'dan ayrılırsanız taslağınız kaybolacak.", "upload_area.title": "Karşıya yükleme için sürükle bırak yapınız", "upload_button.label": "Görsel ekle", "upload_error.limit": "Dosya yükleme sınırı aşıldı.", "upload_error.poll": "Anketlerde dosya yüklemesine izin verilmez.", - "upload_form.description": "Describe for the visually impaired", - "upload_form.edit": "Edit", + "upload_form.description": "Görme engelliler için açıklama", + "upload_form.edit": "Düzenle", "upload_form.undo": "Geri al", - "upload_modal.analyzing_picture": "Analyzing picture…", - "upload_modal.apply": "Apply", - "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", - "upload_modal.detect_text": "Detect text from picture", - "upload_modal.edit_media": "Edit media", - "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.", - "upload_modal.preview_label": "Preview ({ratio})", + "upload_modal.analyzing_picture": "Resmi analiz ediyor…", + "upload_modal.apply": "Uygula", + "upload_modal.description_placeholder": "Pijamalı hasta yağız şoföre çabucak güvendi", + "upload_modal.detect_text": "Resimdeki metni algıla", + "upload_modal.edit_media": "Medyayı düzenle", + "upload_modal.hint": "Her zaman tüm küçük resimlerde görüntülenecek odak noktasını seçmek için ön izlemedeki daireyi tıklayın veya sürükleyin.", + "upload_modal.preview_label": "Ön izleme ({ratio})", "upload_progress.label": "Yükleniyor...", "video.close": "Videoyu kapat", "video.exit_fullscreen": "Tam ekrandan çık", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index 69bf016f9a..605ebdc08c 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -4,7 +4,7 @@ "account.block": "Заблокувати @{name}", "account.block_domain": "Заглушити {domain}", "account.blocked": "Заблоковані", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "Скасувати запит на підписку", "account.direct": "Пряме повідомлення @{name}", "account.domain_blocked": "Домен приховано", "account.edit_profile": "Редагувати профіль", @@ -16,6 +16,7 @@ "account.follows.empty": "Цей користувач ще ні на кого не підписався.", "account.follows_you": "Підписаний(-а) на Вас", "account.hide_reblogs": "Сховати передмухи від @{name}", + "account.last_status": "Крайня активність", "account.link_verified_on": "Права власності на це посилання були перевірені {date}", "account.locked_info": "Статус конфіденційності цього облікового запису встановлено у заблокований. Власник вручну переглядає, хто може за ним стежити.", "account.media": "Медіа", @@ -24,6 +25,7 @@ "account.mute": "Заглушити @{name}", "account.mute_notifications": "Не показувати сповіщення від @{name}", "account.muted": "Заглушений", + "account.never_active": "Ніколи", "account.posts": "Дмухи", "account.posts_with_replies": "Дмухи й відповіді", "account.report": "Поскаржитися на @{name}", @@ -36,9 +38,11 @@ "account.unfollow": "Відписатися", "account.unmute": "Зняти глушення з @{name}", "account.unmute_notifications": "Показувати сповіщення від @{name}", + "alert.rate_limited.message": "Спробуйте ще раз через {retry_time, time, medium}.", + "alert.rate_limited.title": "Швидкість обмежена", "alert.unexpected.message": "Трапилась неочікувана помилка.", "alert.unexpected.title": "Ой!", - "autosuggest_hashtag.per_week": "{count} per week", + "autosuggest_hashtag.per_week": "{count} в тиждень", "boost_modal.combo": "Ви можете натиснути {combo}, щоб пропустити це наступного разу", "bundle_column_error.body": "Щось пішло не так під час завантаження компоненту.", "bundle_column_error.retry": "Спробуйте ще раз", @@ -49,6 +53,7 @@ "column.blocks": "Заблоковані користувачі", "column.community": "Локальна стрічка", "column.direct": "Прямі повідомлення", + "column.directory": "Переглянути профілі", "column.domain_blocks": "Приховані домени", "column.favourites": "Вподобане", "column.follow_requests": "Запити на підписку", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "Ви впевнені, що хочете видалити цей список назавжди?", "confirmations.domain_block.confirm": "Сховати весь домен", "confirmations.domain_block.message": "Ви точно, точно впевнені, що хочете заблокувати весь домен {domain}? У більшості випадків для нормальної роботи краще заблокувати/заглушити лише деяких користувачів. Ви не зможете бачити контент з цього домену у будь-яких стрічках або ваших сповіщеннях. Ваші підписники з цього домену будуть відписані від вас.", + "confirmations.logout.confirm": "Вийти", + "confirmations.logout.message": "Ви впевнені, що хочете вийти?", "confirmations.mute.confirm": "Заглушити", "confirmations.mute.message": "Ви впевнені, що хочете заглушити {name}?", "confirmations.redraft.confirm": "Видалити та перестворити", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Поточна відповідь перезапише повідомлення, яке ви зараз пишете. Ви впевнені, що хочете продовжити?", "confirmations.unfollow.confirm": "Відписатися", "confirmations.unfollow.message": "Ви впевнені, що хочете відписатися від {name}?", + "directory.federated": "З відомого федесвіту", + "directory.local": "Тільки з домену {domain}", + "directory.new_arrivals": "Нові надходження", + "directory.recently_active": "Активні нещодавно", "embed.instructions": "Вбудуйте цей статус до вашого вебсайту, скопіювавши код нижче.", "embed.preview": "Ось як він виглядатиме:", "emoji_button.activity": "Заняття", @@ -158,7 +169,7 @@ "home.column_settings.basic": "Основні", "home.column_settings.show_reblogs": "Показувати передмухи", "home.column_settings.show_replies": "Показувати відповіді", - "home.column_settings.update_live": "Оновлювати в реальному часі", + "home.column_settings.update_live": "Update in real-time", "intervals.full.days": "{number, plural, one {# день} few {# дні} other {# днів}}", "intervals.full.hours": "{number, plural, one {# година} few {# години} other {# годин}}", "intervals.full.minutes": "{number, plural, one {# хвилина} few {# хвилини} other {# хвилин}}", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Особисте", "navigation_bar.pins": "Закріплені дмухи", "navigation_bar.preferences": "Налаштування", - "navigation_bar.profile_directory": "Каталог профілів", "navigation_bar.public_timeline": "Глобальна стрічка", "navigation_bar.security": "Безпека", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "Розгорнути", "status.show_more_all": "Show more for all", "status.show_thread": "Показати ланцюжок", + "status.uncached_media_warning": "Недоступно", "status.unmute_conversation": "Зняти глушення з діалогу", "status.unpin": "Відкріпити від профілю", "suggestions.dismiss": "Відхилити пропозицію", @@ -372,23 +383,23 @@ "time_remaining.minutes": "{number, plural, one {# хвилина} few {# хвилини} other {# хвилин}}", "time_remaining.moments": "Moments remaining", "time_remaining.seconds": "{number, plural, one {# секунда} few {# секунди} other {# секунд}}", - "trends.count_by_accounts": "{count} {rawCount, plural, one {людина} few {людини} many {людей} other {людей}} talking", - "trends.refresh": "Refresh", + "trends.count_by_accounts": "{count} {rawCount, plural, one {людина} few {людини} many {людей} other {людей}} обговорюють це", + "trends.trending_now": "Актуальні", "ui.beforeunload": "Вашу чернетку буде втрачено, якщо ви покинете Mastodon.", "upload_area.title": "Перетягніть сюди, щоб завантажити", "upload_button.label": "Додати медіаконтент ({formats})", "upload_error.limit": "Ліміт завантаження файлів перевищено.", "upload_error.poll": "Не можна завантажувати файли до опитувань.", "upload_form.description": "Опишіть для людей з вадами зору", - "upload_form.edit": "Edit", + "upload_form.edit": "Змінити", "upload_form.undo": "Видалити", - "upload_modal.analyzing_picture": "Analyzing picture…", - "upload_modal.apply": "Apply", - "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", - "upload_modal.detect_text": "Detect text from picture", - "upload_modal.edit_media": "Edit media", - "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.", - "upload_modal.preview_label": "Preview ({ratio})", + "upload_modal.analyzing_picture": "Аналізуємо малюнок…", + "upload_modal.apply": "Застосувати", + "upload_modal.description_placeholder": "Щурячий бугай із їжаком-харцизом в'ючись підписали ґешефт у єнах", + "upload_modal.detect_text": "Виявити текст на малюнку", + "upload_modal.edit_media": "Редагувати медіа", + "upload_modal.hint": "Клацніть або перетягніть коло на превью, щоб обрати точку, яку буде завжди видно на мініатюрах.", + "upload_modal.preview_label": "Переглянути ({ratio})", "upload_progress.label": "Завантаження...", "video.close": "Закрити відео", "video.exit_fullscreen": "Вийти з повноекранного режиму", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 16848831cd..8ab7046c1b 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -4,7 +4,7 @@ "account.block": "屏蔽 @{name}", "account.block_domain": "隐藏来自 {domain} 的内容", "account.blocked": "已屏蔽", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "取消关注请求", "account.direct": "发送私信给 @{name}", "account.domain_blocked": "网站已屏蔽", "account.edit_profile": "修改个人资料", @@ -16,6 +16,7 @@ "account.follows.empty": "此用户目前尚未关注任何人。", "account.follows_you": "关注了你", "account.hide_reblogs": "隐藏来自 @{name} 的转嘟", + "account.last_status": "Last active", "account.link_verified_on": "此链接的所有权已在 {date} 检查", "account.locked_info": "此账户已锁嘟。账户的主人会手动审核关注者。", "account.media": "媒体", @@ -24,6 +25,7 @@ "account.mute": "隐藏 @{name}", "account.mute_notifications": "隐藏来自 @{name} 的通知", "account.muted": "已隐藏", + "account.never_active": "Never", "account.posts": "嘟文", "account.posts_with_replies": "嘟文和回复", "account.report": "举报 @{name}", @@ -36,9 +38,11 @@ "account.unfollow": "取消关注", "account.unmute": "不再隐藏 @{name}", "account.unmute_notifications": "不再隐藏来自 @{name} 的通知", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "发生了意外错误。", "alert.unexpected.title": "哎呀!", - "autosuggest_hashtag.per_week": "{count} per week", + "autosuggest_hashtag.per_week": "每星期 {count} 条", "boost_modal.combo": "下次按住 {combo} 即可跳过此提示", "bundle_column_error.body": "载入这个组件时发生了错误。", "bundle_column_error.retry": "重试", @@ -49,6 +53,7 @@ "column.blocks": "已屏蔽的用户", "column.community": "本站时间轴", "column.direct": "私信", + "column.directory": "Browse profiles", "column.domain_blocks": "已屏蔽的网站", "column.favourites": "收藏", "column.follow_requests": "关注请求", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "你确定要永久删除这个列表吗?", "confirmations.domain_block.confirm": "隐藏整个网站的内容", "confirmations.domain_block.message": "你真的确定要隐藏所有来自 {domain} 的内容吗?多数情况下,屏蔽或隐藏几个特定的用户就已经足够了。来自该网站的内容将不再出现在你的任何公共时间轴或通知列表里。来自该网站的关注者将会被移除。", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "隐藏", "confirmations.mute.message": "你确定要隐藏 {name} 吗?", "confirmations.redraft.confirm": "删除并重新编辑", @@ -103,6 +110,10 @@ "confirmations.reply.message": "回复此消息将会覆盖当前正在编辑的信息。确定继续吗?", "confirmations.unfollow.confirm": "取消关注", "confirmations.unfollow.message": "你确定要取消关注 {name} 吗?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "要在你的网站上嵌入这条嘟文,请复制以下代码。", "embed.preview": "它会像这样显示出来:", "emoji_button.activity": "活动", @@ -158,7 +169,7 @@ "home.column_settings.basic": "基本设置", "home.column_settings.show_reblogs": "显示转嘟", "home.column_settings.show_replies": "显示回复", - "home.column_settings.update_live": "实时更新", + "home.column_settings.update_live": "Update in real-time", "intervals.full.days": "{number} 天", "intervals.full.hours": "{number} 小时", "intervals.full.minutes": "{number} 分钟", @@ -224,7 +235,7 @@ "lists.new.title_placeholder": "新列表的标题", "lists.search": "搜索你关注的人", "lists.subheading": "你的列表", - "load_pending": "{count, plural, one {# new item} other {# new items}}", + "load_pending": "{count} 项", "loading_indicator.label": "加载中……", "media_gallery.toggle_visible": "切换显示/隐藏", "missing_indicator.label": "找不到内容", @@ -250,7 +261,6 @@ "navigation_bar.personal": "个人", "navigation_bar.pins": "置顶嘟文", "navigation_bar.preferences": "首选项", - "navigation_bar.profile_directory": "用户目录", "navigation_bar.public_timeline": "跨站公共时间轴", "navigation_bar.security": "安全", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "显示内容", "status.show_more_all": "显示所有内容", "status.show_thread": "显示全部对话", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "不再隐藏此对话", "status.unpin": "在个人资料页面取消置顶", "suggestions.dismiss": "关闭建议", @@ -373,22 +384,22 @@ "time_remaining.moments": "即将结束", "time_remaining.seconds": "剩余 {number, plural, one {# 秒} other {# 秒}}", "trends.count_by_accounts": "{count} 人正在讨论", - "trends.refresh": "Refresh", + "trends.trending_now": "现在流行", "ui.beforeunload": "如果你现在离开 Mastodon,你的草稿内容将会丢失。", "upload_area.title": "将文件拖放到此处开始上传", "upload_button.label": "上传媒体文件 (JPEG, PNG, GIF, WebM, MP4, MOV)", "upload_error.limit": "文件大小超过限制。", "upload_error.poll": "投票中不允许上传文件。", "upload_form.description": "为视觉障碍人士添加文字说明", - "upload_form.edit": "Edit", + "upload_form.edit": "编辑", "upload_form.undo": "删除", - "upload_modal.analyzing_picture": "Analyzing picture…", - "upload_modal.apply": "Apply", - "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", - "upload_modal.detect_text": "Detect text from picture", - "upload_modal.edit_media": "Edit media", - "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.", - "upload_modal.preview_label": "Preview ({ratio})", + "upload_modal.analyzing_picture": "分析图片…", + "upload_modal.apply": "应用", + "upload_modal.description_placeholder": "天地玄黄 宇宙洪荒 日月盈仄 辰宿列张", + "upload_modal.detect_text": "从图片中检测文本", + "upload_modal.edit_media": "编辑媒体", + "upload_modal.hint": "在预览图上点击或拖动圆圈,以选择缩略图的焦点。", + "upload_modal.preview_label": "预览 ({ratio})", "upload_progress.label": "上传中……", "video.close": "关闭视频", "video.exit_fullscreen": "退出全屏", diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json index f09ceffb3a..d63a9dd346 100644 --- a/app/javascript/mastodon/locales/zh-HK.json +++ b/app/javascript/mastodon/locales/zh-HK.json @@ -16,6 +16,7 @@ "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "關注你", "account.hide_reblogs": "隱藏 @{name} 的轉推", + "account.last_status": "Last active", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "媒體", @@ -24,6 +25,7 @@ "account.mute": "將 @{name} 靜音", "account.mute_notifications": "將來自 @{name} 的通知靜音", "account.muted": "靜音", + "account.never_active": "Never", "account.posts": "文章", "account.posts_with_replies": "包含回覆的文章", "account.report": "舉報 @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "取消關注", "account.unmute": "取消 @{name} 的靜音", "account.unmute_notifications": "取消來自 @{name} 通知的靜音", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "發生不可預期的錯誤。", "alert.unexpected.title": "噢!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "封鎖用戶", "column.community": "本站時間軸", "column.direct": "個人訊息", + "column.directory": "Browse profiles", "column.domain_blocks": "隱藏的服務站", "column.favourites": "最愛的文章", "column.follow_requests": "關注請求", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "你確定要永久刪除這列表嗎?", "confirmations.domain_block.confirm": "隱藏整個網站", "confirmations.domain_block.message": "你真的真的確定要隱藏整個 {domain} ?多數情況下,比較推薦封鎖或靜音幾個特定目標就好。你從此將不會再看到該站的內容和通知。來自該站的關注者亦會被移除。", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "靜音", "confirmations.mute.message": "你確定要將{name}靜音嗎?", "confirmations.redraft.confirm": "刪除並編輯", @@ -103,6 +110,10 @@ "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", "confirmations.unfollow.confirm": "取消關注", "confirmations.unfollow.message": "真的不要繼續關注 {name} 了嗎?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "要內嵌此文章,請將以下代碼貼進你的網站。", "embed.preview": "看上去會是這樣:", "emoji_button.activity": "活動", @@ -250,7 +261,6 @@ "navigation_bar.personal": "Personal", "navigation_bar.pins": "置頂文章", "navigation_bar.preferences": "偏好設定", - "navigation_bar.profile_directory": "Profile directory", "navigation_bar.public_timeline": "跨站時間軸", "navigation_bar.security": "安全", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "顯示更多", "status.show_more_all": "顯示更多這類文章", "status.show_thread": "Show thread", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "解禁對話", "status.unpin": "解除置頂", "suggestions.dismiss": "Dismiss suggestion", @@ -373,7 +384,7 @@ "time_remaining.moments": "Moments remaining", "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", "trends.count_by_accounts": "{count} 位用戶在討論", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "如果你現在離開 Mastodon,你的草稿內容將會被丟棄。", "upload_area.title": "將檔案拖放至此上載", "upload_button.label": "上載媒體檔案", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index af988b3205..d0b95da8c0 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -16,6 +16,7 @@ "account.follows.empty": "這位使用者尚未關注任何使用者。", "account.follows_you": "關注了你", "account.hide_reblogs": "隱藏來自 @{name} 的轉推", + "account.last_status": "Last active", "account.link_verified_on": "已在 {date} 檢查此連結的擁有者權限", "account.locked_info": "這隻帳戶的隱私狀態被設成鎖定。該擁有者會手動審核能關注這隻帳號的人。", "account.media": "媒體", @@ -24,6 +25,7 @@ "account.mute": "靜音 @{name}", "account.mute_notifications": "靜音來自 @{name} 的通知", "account.muted": "已靜音", + "account.never_active": "Never", "account.posts": "嘟文", "account.posts_with_replies": "嘟文與回覆", "account.report": "檢舉 @{name}", @@ -36,6 +38,8 @@ "account.unfollow": "取消關注", "account.unmute": "取消靜音 @{name}", "account.unmute_notifications": "重新接收來自 @{name} 的通知", + "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", + "alert.rate_limited.title": "Rate limited", "alert.unexpected.message": "發生了非預期的錯誤。", "alert.unexpected.title": "哎呀!", "autosuggest_hashtag.per_week": "{count} per week", @@ -49,6 +53,7 @@ "column.blocks": "封鎖的使用者", "column.community": "本機時間軸", "column.direct": "私訊", + "column.directory": "Browse profiles", "column.domain_blocks": "隱藏的網域", "column.favourites": "收藏", "column.follow_requests": "關注請求", @@ -95,6 +100,8 @@ "confirmations.delete_list.message": "確定永久刪除此名單?", "confirmations.domain_block.confirm": "隱藏整個網域", "confirmations.domain_block.message": "真的非常確定封鎖整個 {domain} 嗎?大部分情況下,你只需要封鎖或靜音少數特定的人就能滿足需求了。你將不能在任何公開的時間軸及通知中看到那個網域的內容。你來自該網域的關注者也會被移除。", + "confirmations.logout.confirm": "Log out", + "confirmations.logout.message": "Are you sure you want to log out?", "confirmations.mute.confirm": "靜音", "confirmations.mute.message": "確定靜音 {name} ?", "confirmations.redraft.confirm": "刪除並重新編輯", @@ -103,6 +110,10 @@ "confirmations.reply.message": "現在回覆將蓋掉您目前正在撰寫的訊息。是否仍要回覆?", "confirmations.unfollow.confirm": "取消關注", "confirmations.unfollow.message": "真的要取消關注 {name} 嗎?", + "directory.federated": "From known fediverse", + "directory.local": "From {domain} only", + "directory.new_arrivals": "New arrivals", + "directory.recently_active": "Recently active", "embed.instructions": "要嵌入此嘟文,請將以下程式碼貼進你的網站。", "embed.preview": "他會顯示成這樣:", "emoji_button.activity": "活動", @@ -250,7 +261,6 @@ "navigation_bar.personal": "個人", "navigation_bar.pins": "釘選的嘟文", "navigation_bar.preferences": "偏好設定", - "navigation_bar.profile_directory": "Profile directory", "navigation_bar.public_timeline": "聯邦時間軸", "navigation_bar.security": "安全性", "notification.and_n_others": "and {count, plural, one {# other} other {# others}}", @@ -358,6 +368,7 @@ "status.show_more": "顯示更多", "status.show_more_all": "顯示更多這類嘟文", "status.show_thread": "顯示討論串", + "status.uncached_media_warning": "Not available", "status.unmute_conversation": "解除此對話的靜音", "status.unpin": "解除置頂", "suggestions.dismiss": "關閉建議", @@ -373,7 +384,7 @@ "time_remaining.moments": "剩餘時間", "time_remaining.seconds": "剩餘 {number, plural, one {# 秒} other {# 秒}}", "trends.count_by_accounts": "{count} 位使用者在討論", - "trends.refresh": "Refresh", + "trends.trending_now": "Trending now", "ui.beforeunload": "如果離開 Mastodon,你的草稿將會不見。", "upload_area.title": "拖放來上傳", "upload_button.label": "上傳媒體檔案 (JPEG, PNG, GIF, WebM, MP4, MOV)", diff --git a/config/locales/activerecord.bg.yml b/config/locales/activerecord.bg.yml index d0e375da96..a1f60b45a7 100644 --- a/config/locales/activerecord.bg.yml +++ b/config/locales/activerecord.bg.yml @@ -1 +1,7 @@ +--- bg: + activerecord: + attributes: + poll: + expires_at: Краен срок + options: Избори diff --git a/config/locales/activerecord.da.yml b/config/locales/activerecord.da.yml index 5e7266ef10..e7367a4af7 100644 --- a/config/locales/activerecord.da.yml +++ b/config/locales/activerecord.da.yml @@ -1,6 +1,10 @@ --- da: activerecord: + attributes: + poll: + expires_at: Deadline + options: Valgmuligheder errors: models: account: diff --git a/config/locales/activerecord.tr.yml b/config/locales/activerecord.tr.yml index 1cc2d98760..8ce55599cb 100644 --- a/config/locales/activerecord.tr.yml +++ b/config/locales/activerecord.tr.yml @@ -1,6 +1,10 @@ --- tr: activerecord: + attributes: + poll: + expires_at: Son Teslim Tarihi + options: Seçenekler errors: models: account: diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 14562db03a..82d2485a75 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -11,7 +11,7 @@ ar: apps: تطبيقات الأجهزة المحمولة apps_platforms: إستخدم ماستودون في iOS، أندرويد وأنظمة أخرى browse_directory: تصفح دليل المستخدمين وافرز بالمصالح - browse_public_posts: تصفح تيار مباشر من منشورات عامة على ماستدون + browse_public_posts: تصفح تيارًا مباشرًا مِن منشورات عامة على ماستدون contact: للتواصل معنا contact_missing: لم يتم تعيينه contact_unavailable: غير متوفر @@ -65,6 +65,7 @@ ar: media: الوسائط moved_html: "%{name} إنتقلَ إلى %{new_profile_link}:" network_hidden: إنّ المعطيات غير متوفرة + never_active: أبدا nothing_here: لا يوجد أي شيء هنا! people_followed_by: الأشخاص الذين يتبعهم %{name} people_who_follow: الأشخاص الذين يتبعون %{name} @@ -267,10 +268,13 @@ ar: feature_profile_directory: دليل الحسابات feature_registrations: التسجيلات feature_relay: المُرحّل الفديرالي + feature_spam_check: مكافح البريد المزعج feature_timeline_preview: معاينة الخيط الزمني features: الميّزات hidden_service: الفيديرالية مع الخدمات الخفية open_reports: فتح الشكاوى + pending_tags: وسوم في انتظار المراجعة + pending_users: مستخدمين في انتظار مراجعة recent_users: أحدث المستخدِمين search: البحث النصي الكامل single_user_mode: وضع المستخدِم الأوحد @@ -421,6 +425,8 @@ ar: custom_css: desc_html: يقوم بتغيير المظهر بواسطة سي أس أس يُحمَّل على كافة الصفحات title: سي أس أس مخصص + domain_blocks: + all: للجميع hero: desc_html: معروض على الصفحة الأولى. لا يقل عن 600 × 100 بكسل. عند عدم التعيين ، تعود الصورة إلى النسخة المصغرة على سبيل المثال title: الصورة الرأسية @@ -445,6 +451,7 @@ ar: title: المستخدِمون المصرح لهم لإرسال الدعوات registrations_mode: modes: + approved: طلب الموافقة لازم عند إنشاء حساب none: لا أحد يمكنه إنشاء حساب open: يمكن للجميع إنشاء حساب title: طريقة إنشاء الحسابات @@ -473,12 +480,15 @@ ar: desc_html: عرض الخيط العمومي على صفحة الاستقبال title: مُعاينة الخيط العام title: إعدادات الموقع + trends: + title: الوسوم المتداولة statuses: back_to_account: العودة إلى صفحة الحساب batch: delete: حذف nsfw_off: تعيينه كمنشور غير حساس nsfw_on: تعيينه كمنشور حساس + deleted: محذوف failed_to_execute: خطأ في التفعيل media: title: الوسائط @@ -488,7 +498,11 @@ ar: with_media: تحتوي على وسائط tags: context: السياق + in_directory: "%{count} في سجل حسابات المستخدمين" title: الوسوم + trending_right_now: متداول اللحظة + unreviewed: غير مُراجَع + updated_msg: تم تحديث إعدادات الوسوم بنجاح title: الإدارة warning_presets: add_new: إضافة واحد جديد @@ -505,6 +519,7 @@ ar: subject: تقرير جديد ل%{instance} (#%{id}) appearance: advanced_web_interface: واجهة الويب المتقدمة + animations_and_accessibility: الإتاحة والحركة confirmation_dialogs: نوافذ التأكيد discovery: استكشاف sensitive_content: محتوى حساس @@ -529,6 +544,8 @@ ar: checkbox_agreement_without_rules_html: أوافق على شروط الخدمة delete_account: حذف حساب delete_account_html: إن كنت ترغب في حذف حسابك يُمكنك المواصلة هنا. سوف يُطلَبُ منك التأكيد قبل الحذف. + description: + prefix_sign_up: أنشئ حسابًا على ماستدون اليوم! didnt_get_confirmation: لم تتلق تعليمات التأكيد ؟ forgot_password: نسيت كلمة المرور ؟ invalid_reset_password_token: رمز إعادة تعيين كلمة المرور غير صالح أو منتهي الصلاحية. يرجى طلب واحد جديد. @@ -546,6 +563,8 @@ ar: reset_password: إعادة تعيين كلمة المرور security: الأمان set_new_password: إدخال كلمة مرور جديدة + setup: + title: الضبط status: account_status: حالة الحساب functional: حسابك جاهز. @@ -576,28 +595,26 @@ ar: x_months: "%{count} شه" x_seconds: "%{count}ث" deletes: - bad_password_msg: محاولة جيدة يا هاكرز! كلمة السر خاطئة + bad_password_msg: إنّ الكلمة السرية التي أدخلتها غير صحيحة confirm_password: قم بإدخال كلمتك السرية الحالية للتحقق من هويتك proceed: حذف حساب success_msg: تم حذف حسابك بنجاح - warning_title: توافر المحتوى المنشور و المبعثَر directories: directory: سِجلّ الحسابات - enabled: إنّ حسابك الآن ضمن فهرس المستخدِمين. explanation: استكشف مستخدِمين آخرين حسب المواضيع التي تهمهم explore_mastodon: استكشف %{title} - people: - few: "%{count} شخص" - many: "%{count} شخص" - one: "%{count} شخص" - other: "%{count} شخص" - two: "%{count} شخص" - zero: "%{count} شخص" + domain_blocks: + domain: النطاق + severity: القوّة + silence: اكتم + suspension: علّقه domain_validator: invalid_domain: ليس بإسم نطاق صالح errors: + '400': The request you submitted was invalid or malformed. '403': ليس لك الصلاحيات الكافية لعرض هذه الصفحة. '404': إنّ الصفحة التي تبحث عنها لا وجود لها أصلا. + '406': This page is not available in the requested format. '410': إنّ الصفحة التي تبحث عنها لم تعد موجودة. '422': content: فشل التحقق الآمن. ربما منعتَ كعكات الكوكيز؟ @@ -606,6 +623,7 @@ ar: '500': content: نحن متأسفون، لقد حدث خطأ ما مِن جانبنا. title: هذه الصفحة خاطئة + '503': The page could not be served due to a temporary server failure. noscript_html: يرجى تفعيل الجافا سكريبت لاستخدام تطبيق الويب لماستدون، أو عِوض ذلك قوموا بتجريب إحدى التطبيقات الأصلية الدّاعمة لماستدون على منصّتكم. existing_username_validator: not_found_multiple: تعذر العثور على %{usernames} @@ -646,6 +664,7 @@ ar: developers: المطورون more: المزيد… resources: الموارد + trending_now: المتداولة الآن generic: all: الكل changes_saved_msg: تم حفظ التعديلات بنجاح! @@ -787,6 +806,7 @@ ar: errors: already_voted: لقد قمت بالتصويت على استطلاع الرأي هذا مِن قبل duplicate_options: يحتوي على عناصر مكررة + duration_too_long: بعيد جدا في المستقبَل duration_too_short: مبكّر جدا expired: لقد انتهى استطلاع الرأي preferences: @@ -799,6 +819,7 @@ ar: last_active: آخر نشاط most_recent: الأحدث moved: هاجر + mutual: متبادل primary: رئيسي relationship: العلاقة remove_selected_domains: احذف كافة المتابِعين القادمين مِن النطاقات المختارة @@ -960,6 +981,7 @@ ar: title: المغادرة بأرشيف الحساب warning: review_server_policies: مراجعة شروط السيرفر + statuses: 'خصيصا لـ:' subject: disable: تم تجميد حسابك %{acct} none: تحذير إلى %{acct} diff --git a/config/locales/ast.yml b/config/locales/ast.yml index 30390c1633..e801d4b517 100644 --- a/config/locales/ast.yml +++ b/config/locales/ast.yml @@ -133,19 +133,18 @@ ast: deletes: bad_password_msg: "¡Bon intentu, crackers! Contraseña incorreuta" confirm_password: Introduz la contraseña pa verificar la to identidá - directories: - people: - one: "%{count} persona" - other: "%{count} persones" errors: + '400': The request you submitted was invalid or malformed. '403': Nun tienes permisu pa ver esta páxina. '404': La páxina que tabes guetando nun esiste. + '406': This page is not available in the requested format. '410': La páxina que tabes guetando yá nun esiste. '422': content: Falló la verificación de seguranza. ¿Tas bloquiando les cookies? title: Falló la verificación de seguranza '429': Ficiéronse milenta solicitúes '500': + '503': The page could not be served due to a temporary server failure. exports: archive_takeout: date: Data diff --git a/config/locales/bg.yml b/config/locales/bg.yml index e11340542f..85431bc8df 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -48,12 +48,15 @@ bg: x_months: "%{count} м" x_seconds: "%{count} сек" errors: + '400': The request you submitted was invalid or malformed. '403': You don't have permission to view this page. '404': The page you are looking for isn't here. + '406': This page is not available in the requested format. '410': The page you were looking for doesn't exist here anymore. '422': '429': Throttled '500': + '503': The page could not be served due to a temporary server failure. exports: blocks: Вашите блокирания follows: Вашите следвания diff --git a/config/locales/bn.yml b/config/locales/bn.yml index b3eb0bd624..5f05fe30e6 100644 --- a/config/locales/bn.yml +++ b/config/locales/bn.yml @@ -140,12 +140,15 @@ bn: pending: পয্র্যবেক্ষণের অপেক্ষায় আছে perform_full_suspension: বাতিল করা errors: + '400': The request you submitted was invalid or malformed. '403': You don't have permission to view this page. '404': The page you are looking for isn't here. + '406': This page is not available in the requested format. '410': The page you were looking for doesn't exist here anymore. '422': '429': Throttled '500': + '503': The page could not be served due to a temporary server failure. invites: expires_in: '1800': 30 minutes diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 64bd68e54b..a23b6ddf47 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -45,6 +45,8 @@ ca: what_is_mastodon: Què és Mastodon? accounts: choices_html: 'Eleccions de %{name}:' + endorsements_hint: Pots recomanar persones que segueixes a l'interfície de web, que apareixeran aquí. + featured_tags_hint: Pots presentar etiquetes específiques que seràn mostrades aquí. follow: Segueix followers: one: Seguidor @@ -186,6 +188,7 @@ ca: username: Nom d'usuari warn: Avís web: Web + whitelisted: Llista blanca action_logs: actions: assigned_to_self_report: "%{name} han assignat l'informe %{target} a ells mateixos" @@ -246,6 +249,7 @@ ca: updated_msg: Emoji s'ha actualitzat correctament! upload: Carrega dashboard: + authorized_fetch_mode: Mode d'obtenció autoritzat backlog: treballs en espera config: Configuració feature_deletions: Supressions del compte @@ -258,6 +262,8 @@ ca: features: Característiques hidden_service: Federació amb serveis ocults open_reports: informes oberts + pending_tags: etiquetes pendents de revisar + pending_users: usuaris pendents de revisar recent_users: Usuaris recents search: Cerca de text complet single_user_mode: Mode d'usuari únic @@ -269,11 +275,18 @@ ca: week_interactions: interaccions d'aquesta setmana week_users_active: usuaris actius aquesta setmana week_users_new: nous usuaris aquest setmana + whitelist_mode: Mode llista blanca + domain_allows: + add_new: Dominis autoritzats + created_msg: El domini ha estat correctament autoritzat + destroyed_msg: S'ha esborrat el domini de la llista blanca + undo: Treure de la llista blanca domain_blocks: add_new: Afegir nou bloqueig de domini created_msg: El bloqueig de domini ara s'està processant destroyed_msg: El bloqueig de domini s'ha desfet domain: Domini + edit: Editar el bloqueig del domini existing_domain_block_html: Ja has imposat uns limits més estrictes a %{name}, l'hauries de desbloquejar-lo primer. new: create: Crea un bloqueig @@ -284,6 +297,10 @@ ca: silence: Silenci suspend: Suspensió title: Bloqueig de domini nou + private_comment: Comentari privat + private_comment_hint: Comentari sobre aquesta limitació del domini per a ús intern dels moderadors. + public_comment: Comentari públic + public_comment_hint: Comentari pel públic general sobre aquesta limitació del domini, si la publicació de la llista de limitacions de domini està habilitada. reject_media: Rebutja els fitxers multimèdia reject_media_hint: Elimina els fitxers multimèdia emmagatzemats localment i impedeix baixar-ne cap en el futur. Irrellevant en les suspensions reject_reports: Rebutja informes @@ -303,6 +320,7 @@ ca: title: Desfés el bloqueig de domini de %{domain} undo: Desfés undo: Desfés el bloqueig del domini + view: Veure el bloqueig del domini email_domain_blocks: add_new: Afegir nou created_msg: S'ha creat el bloc de domini de correu electrònic @@ -326,6 +344,8 @@ ca: all: Totes limited: Limitades title: Moderació + private_comment: Comentari privat + public_comment: Comentari públic title: Federació total_blocked_by_us: Bloquejats per nosaltres total_followed_by_them: Seguits per ells @@ -403,6 +423,13 @@ ca: custom_css: desc_html: Modifica l'aspecte amb CSS carregat a cada pàgina title: CSS personalitzat + domain_blocks: + all: Per a tothom + disabled: Per a ningú + title: Mostra els bloquejos de domini + users: Per als usuaris locals en línia + domain_blocks_rationale: + title: Mostra el raonament hero: desc_html: Es mostra en pàgina frontal. Recomanat al menys 600x100px. Si no es configura es mostrarà el del servidor title: Imatge d’heroi @@ -463,6 +490,9 @@ ca: desc_html: Mostra la línia de temps pública a la pàgina inicial title: Vista prèvia de la línia de temps title: Configuració del lloc + trends: + desc_html: Mostra públicament les etiquetes revisades anteriorment que actualment estan en tendència + title: Etiquetes tendència statuses: back_to_account: Torna a la pàgina del compte batch: @@ -477,7 +507,19 @@ ca: title: Estats del compte with_media: Amb contingut multimèdia tags: + accounts_today: Usos únics actuals + accounts_week: Usos únics d'aquesta setmana + breakdown: Desglossament de l’ús actual per origen + context: Context + directory: En el directori + in_directory: "%{count} en el directori" + review: Revisar l'estat + reviewed: Revisades title: Etiquetes + trending_right_now: Actualment en tendència + unique_uses_today: "%{count} publicacions d'avui" + unreviewed: Sense revisar + updated_msg: Ajustaments d'etiquetes actualitzats amb èxit title: Administració warning_presets: add_new: Afegir nou @@ -493,11 +535,15 @@ ca: body: "%{reporter} ha informat de %{target}" body_remote: Algú des de el domini %{domain} ha informat sobre %{target} subject: Informe nou per a %{instance} (#%{id}) + new_trending_tag: + body: 'La etiqueta #%{name} està actualment en tendència però no s''ha revisat prèviament. No es mostrarà públicament tret que ho permetis o guardis el formulari tal com està per a no tornar a escoltar res al respecte.' + subject: Nova etiqueta pendent de revisió a %{instance} (#%{name}) appearance: advanced_web_interface: Interfície web avançada advanced_web_interface_hint: 'Si vols fer ús de tota l''amplada de la teva pantalla, l''interfície web avançada et permet configurar diverses columnes per a veure molta més informació al mateix temps: Inici, notificacions, línia de temps federada i qualsevol número de llistes i etiquetes.' animations_and_accessibility: Animacions i accessibilitat confirmation_dialogs: Diàlegs de confirmació + discovery: Descobriment sensitive_content: Contingut sensible application_mailer: notification_preferences: Canvia les preferències de correu @@ -518,6 +564,7 @@ ca: apply_for_account: Demana una invitació change_password: Contrasenya checkbox_agreement_html: Estic d'acord amb les normes del servidor i els termes del servei + checkbox_agreement_without_rules_html: Acepto els termes del servei delete_account: Suprimeix el compte delete_account_html: Si vols suprimir el compte pots fer-ho aquí. Se't demanarà confirmació. didnt_get_confirmation: No has rebut el correu de confirmació? @@ -544,6 +591,7 @@ ca: status: account_status: Estat del compte confirming: Esperant que es completi la confirmació del correu electrònic. + functional: El teu compte és plenament operatiu. pending: La vostra sol·licitud està pendent de revisió pel nostre personal. Això pot trigar una mica. Rebreu un correu electrònic quan sigui aprovada. trouble_logging_in: Problemes per iniciar la sessió? authorize_follow: @@ -574,24 +622,36 @@ ca: deletes: bad_password_msg: Bon intent hackers! La contrasenya no és correcta confirm_password: Introdueix la contrasenya actual per a verificar la identitat - description_html: Això eliminarà de forma irreversible i permanent el contingut del teu compte i el desactivarà. El teu nom d'usuari romandrà reservat per evitar que algú volgués fer-se passar per tu. proceed: Suprimeix el compte success_msg: El compte s'ha eliminat correctament - warning_html: Només és garantida l'eliminació del contingut d'aquest servidor en particular. El contingut que s'ha compartit àmpliament deixa petjades. Els servidors fora de línia i els que ja no estan subscrits no actualitzaran les seves bases de dades. - warning_title: Disponibilitat de contingut disseminat directories: directory: Directori de perfils - enabled: Actualment estàs inclòs al directori. - enabled_but_waiting: Has optat per aparèixer al directori però encara no tens el nombre mínim de seguidors (%{min_followers}) per ser-hi. explanation: Descobreix usuaris segons els seus interessos explore_mastodon: Explora %{title} - how_to_enable: Actualment no tens activat ser al directori. Pots optar-hi a continuació. Utilitza etiquetes en el teu text bio per incloure't sota etiquetes especifiques! - people: - one: "%{count} persona" - other: "%{count} gent" + domain_blocks: + blocked_domains: Llistat dels dominis limitats i bloquejats + description: Aquesta és la llista de servidors que %{instance} limita o en rebutja la federació. + domain: Domini + media_block: Bloqueig multimèdia + no_domain_blocks: "(Sense bloquejos de domini)" + severity: Severitat + severity_legend: + media_block: Els fitxers multimèdia procedents del servidor no es poden recuperar, emmagatzemar ni mostrar a l'usuari. + silence: Es poden trobar comptes de servidors silenciats, seguits i amb interacció, però els seus tuts no apareixeran en les línies de temps públiques i les seves notificacions no arribaran als usuaris locals que no els segueixen. + suspension: No s’emmagatzema ni es mostra contingut de servidors en suspens, ni se’ls envia cap contingut. S'ignoren les interaccions dels servidors suspesos. + suspension_disclaimer: Els servidors suspesos poden ocasionalment recuperar contingut públic d’aquest servidor. + title: Severitats + show_rationale: Mostra el raonament + silence: Silenci + suspension: Suspensió + title: "%{instance} Llistat de les instàncies bloquejades" + domain_validator: + invalid_domain: no es un nom de domini vàlid errors: + '400': The request you submitted was invalid or malformed. '403': No tens permís per a veure aquesta pàgina. '404': La pàgina que estàs cercant no és aquí. + '406': This page is not available in the requested format. '410': La pàgina que estàs cercant ja no existeix. '422': content: La verificació de seguretat ha fallat. Tens les galetes blocades? @@ -600,6 +660,7 @@ ca: '500': content: Ho sentim, però alguna cosa ha fallat a la nostra banda. title: Aquesta pàgina no es correcta + '503': The page could not be served due to a temporary server failure. noscript_html: Per a utilitzar Mastodon, activa el JavaScript. També pots provar una de les aplicacions natives de Mastodon per a la vostra plataforma. existing_username_validator: not_found: no s'ha pogut trobar cap usuari local amb aquest nom d'usuari @@ -623,6 +684,7 @@ ca: add_new: Afegir nova errors: limit: Ja has mostrat la quantitat màxima d'etiquetes + hint_html: "Què son les etiquetes destacades? Es mostren de manera destacada en el teu perfil públic i permeten a les persones navegar per les teves publicacions amb aquestes etiquetes. Són una gran eina per fer un seguiment de treballs creatius o de projectes a llarg termini." filters: contexts: home: Línia de temps Inici @@ -643,6 +705,7 @@ ca: developers: Desenvolupadors more: Més… resources: Recursos + trending_now: En tendència generic: all: Tot changes_saved_msg: Els canvis s'han desat correctament! @@ -925,6 +988,8 @@ ca: pinned: Toot fixat reblogged: ha impulsat sensitive_content: Contingut sensible + tags: + does_not_match_previous_name: no coincideix amb el nom anterior terms: body_html: |

Política de Privacitat

diff --git a/config/locales/co.yml b/config/locales/co.yml index 94c3635119..8ecff0d595 100644 --- a/config/locales/co.yml +++ b/config/locales/co.yml @@ -58,6 +58,7 @@ co: media: Media moved_html: "%{name} hà cambiatu di contu, avà hè nant’à %{new_profile_link}:" network_hidden: St'infurmazione ùn hè micca dispunibule + never_active: Mai nothing_here: Ùn c’hè nunda quì! people_followed_by: Seguitati da %{name} people_who_follow: Seguitanu %{name} @@ -224,10 +225,12 @@ co: deleted_status: "(statutu sguassatu)" title: Ghjurnale d’audit custom_emojis: + assign_category: Aghjunghje categuria by_domain: Duminiu copied_msg: Copia lucale di l’emoji creata copy: Cupià copy_failed_msg: Ùn s’hè micca pussutu creà una copia di l’emoji + create_new_category: Creà nova categuria created_msg: L’emoji hè stata creata! delete: Toglie destroyed_msg: L’emoji hè stata tolta! @@ -244,6 +247,7 @@ co: shortcode: Accorta shortcode_hint: 2 caratteri o più, solu lettere, numeri è liniette basse title: Emoji parsunalizate + uncategorized: Micca categurizatu unlisted: Micca listata update_failed_msg: Ùn s’hè micca pussutu mette à ghjornu l’emoji updated_msg: L’emoji hè stata messa à ghjornu! @@ -499,6 +503,7 @@ co: delete: Toglie nsfw_off: Indicà cum’è micca sensibile nsfw_on: Indicà cum’è sensibile + deleted: Sguassatu failed_to_execute: Esecuzione impussibule media: title: Media @@ -567,6 +572,10 @@ co: checkbox_agreement_without_rules_html: Accettu i termini di u serviziu delete_account: Sguassà u contu delete_account_html: S’è voi vulete toglie u vostru contu ghjè quì. Duverete cunfirmà a vostra scelta. + description: + prefix_invited_by_user: "@%{name} v'invita à raghjunghje stu servore di Mastodon!" + prefix_sign_up: Arregistratevi nant'à Mastodon oghji! + suffix: Cù un contu, puderete siguità l'altri, pustà statuti è scambià missaghji cù l'utilizatori di tutti i servori Mastodon è ancu di più! didnt_get_confirmation: Ùn avete micca ricevutu l’istruzione di cunfirmazione? forgot_password: Chjave scurdata? invalid_reset_password_token: U ligame di riinizializazione di a chjave d’accessu hè spiratu o ùn hè micca validu. Pudete dumandà un'altru ligame. @@ -622,21 +631,23 @@ co: deletes: bad_password_msg: È nò! Sta chjave ùn hè curretta confirm_password: Entrate a vostra chjave d’accessu attuale per verificà a vostra identità - description_html: U contu sarà deattivatu è u cuntenutu sarà sguassatu di manera permanente è irreversibile. Ùn sarà micca pussibule piglià stu cugnome torna per evità l’impusture. proceed: Sguassà u contu success_msg: U vostru contu hè statu sguassatu - warning_html: Pudete esse sicuru·a solu chì u cuntenutu sarà sguassatu di stu servore. S’ellu hè statu spartutu in altrò, sarà forse sempre quallà. I servori scunettati è quelli ch'ùn sò più abbunati à e vostre pubblicazione ùn anu micca da mette à ghjornu e so database. - warning_title: Dispunibilità di i cuntenuti sparsi + warning: + before: 'Nanz''à cuntinuà, leghjete ste note attentamente:' + caches: U cuntinutu indè u cache di l'altri servori sarà forse cunservatu + data_removal: I vostri posti è dati saranu sguassati di manera permanente + email_change_html: Pudete cambià u vostr'indirizzu e-mail senza toglie u vostru contu + email_contact_html: S'ellu ùn hè sempre micca rimettu, pudete dumandà aiutu à %{email} + email_reconfirmation_html: S'e voi ùn ricevete micca l'e-mail di cunfirmazione, pudete richiestà un'altru + irreversible: Ùn puderete micca ricuperà o riattivà u vostru contu + more_details_html: Per più di ditagli, videte a pulitica di vita privata. + username_available: U vostru cugnome riduvinterà dispunibule + username_unavailable: U vostru cugnome ùn sarà sempre micca dispunibule directories: directory: Annuariu di i prufili - enabled: Site inscrittu·a indè l'annuariu. - enabled_but_waiting: Avete sceltu d'esse inscrittu·a indè l'annuariu, mà ùn avete micca ancu u numeru minimale d'abbunati (%{min_followers}) per esse listatu·a. explanation: Scopre utilizatori à partesi di i so centri d'interessu explore_mastodon: Scopre à %{title} - how_to_enable: Ùn site micca ancu inscrittu·a indè l'annuariu. Pudete inscrive vi quì sottu. Utilizate qualchi hashtag indè a vostra biugrafia per esse listatu·a indè tag specifichi! - people: - one: "%{count} persona" - other: "%{count} persone" domain_blocks: blocked_domains: Lista di dumini bluccati è limitati description: Quessa ghjè a lista di i servori limitati da o cù quelli %{instance} righjetta a federazione. @@ -657,8 +668,10 @@ co: domain_validator: invalid_domain: ùn hè micca un nome di duminiu currettu errors: + '400': A richiesta mandata ùn era micca valida o curretta. '403': Ùn site micca auturizatu·a à vede sta pagina. '404': Sta pagina ùn esiste micca quì. + '406': A pagina ùn hè micca dispunivule in u furmatu riquisitu. '410': Sta pagina ùn esiste più quì. '422': content: C’hè statu un prublemu cù a verificazione di sicurità. Forse bluccate cookies? @@ -667,6 +680,7 @@ co: '500': content: Scusate, mà c’hè statu un prublemu cù u nostru servore. title: Sta pagina ùn hè curretta + '503': A pagina ùn hè micca stata servita per via di un prublemu timpuraneu di u servore. noscript_html: Mastodon nant’à u web hà bisognu di JavaScript per funziunà. Pudete ancu pruvà l’applicazione native per a vostra piattaforma. existing_username_validator: not_found: ùn si pudeva micca truvà un'utilizatore lucale cù stu cugnome @@ -716,6 +730,7 @@ co: all: Tuttu changes_saved_msg: Cambiamenti salvati! copy: Cupià + no_batch_actions_available: Alcun'azzione di gruppu nant'à sta pagina order_by: Urdinà da save_changes: Salvà e mudificazione validation_errors: @@ -1101,7 +1116,7 @@ co: recovery_codes: Codici di ricuperazione recovery_codes_regenerated: Codici di ricuperazione ricreati recovery_instructions_html: Pudete fà usu di i codici quì sottu per sempre avè accessu à u vostru contu s’ellu hè statu persu u vostru telefuninu. Guardateli in una piazza sicura. Per esempiu, stampati è cunservati cù altri ducumenti impurtanti. - setup: Installà + setup: Attivà wrong_code: U codice ùn hè micca currettu! Site sicuru che l’ora di u telefuninu è di u servore sò esatte? user_mailer: backup_ready: @@ -1113,7 +1128,9 @@ co: disable: Quandu u vostru contu hè ghjacciatu, i vostri dati stannu intatti, mà ùn pudete fà nunda fin'à ch'ellu sia sbluccatu. silence: Quandu u vostru contu hè limitatu, solu quelli chì sò digià abbunati à u vostru contu viderenu i vostri statuti nant'à quessu servore, è puderete esse esclusu·a di parechje liste pubbliche. Però, altri conti puderenu sempre seguitavi. suspend: U vostru contu hè statu suspesu, è tutti i vo statuti è fugliali media caricati sò stati sguassati di manera irreversibile di stu servore, è di i servori induve aviate abbunati. + get_in_touch: Pudete risponde à quest'e-mail per cuntattà a squadra di muderazione di %{instance}. review_server_policies: Leghje e pulitiche di u servore + statuses: 'Più pricisamente, per:' subject: disable: U vostru contu %{acct} hè statu ghjacciatu none: Avertimentu pè %{acct} diff --git a/config/locales/cs.yml b/config/locales/cs.yml index c07da52456..46700be56b 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -49,6 +49,8 @@ cs: what_is_mastodon: Co je Mastodon? accounts: choices_html: 'Volby uživatele %{name}:' + endorsements_hint: Z webového rozhraní můžete podpořit lidi, které sledujete. Ti se poté zobrazí zde. + featured_tags_hint: Můžete vybrat konkrétní hashtagy, které se zobrazí zde. follow: Sledovat followers: few: Sledující @@ -62,6 +64,7 @@ cs: media: Média moved_html: "%{name} se přesunul/a na %{new_profile_link}:" network_hidden: Tato informace není k dispozici + never_active: Nikdy nothing_here: Tady nic není! people_followed_by: Lidé, které sleduje %{name} people_who_follow: Lidé, kteří sledují uživatele %{name} @@ -194,6 +197,7 @@ cs: username: Uživatelské jméno warn: Varovat web: Web + whitelisted: Na bílé listině action_logs: actions: assigned_to_self_report: "%{name} přidělil/a hlášení %{target} sobě" @@ -254,6 +258,7 @@ cs: updated_msg: Emoji úspěšně aktualizováno! upload: Nahrát dashboard: + authorized_fetch_mode: Autorizovaný režim fetch backlog: opožděné úlohy config: Konfigurace feature_deletions: Smazání účtů @@ -266,6 +271,8 @@ cs: features: Vlastnosti hidden_service: Federace se skrytými službami open_reports: otevřená hlášení + pending_tags: hashtagů čeká na posouzení + pending_users: uživatelů recent_users: Nedávní uživatelé search: Fulltextové vyhledávání single_user_mode: Režim jednoho uživatele @@ -277,11 +284,18 @@ cs: week_interactions: interakcí tento týden week_users_active: aktivních tento týden week_users_new: uživatelů tento týden + whitelist_mode: Režim bílé listiny + domain_allows: + add_new: Přidat doménu na bílou listinu + created_msg: Doména byla úspěšně přidána na bílou listinu + destroyed_msg: Doména byla odstraněna z bílé listiny + undo: Odstranit z bílé listiny domain_blocks: add_new: Přidat novou blokaci domény created_msg: Blokace domény se právě vyřizuje destroyed_msg: Blokace domény byla zrušena domain: Doména + edit: Upravit doménovou blokaci existing_domain_block_html: Pro účet %{name} jste již nastavil/a přísnější omezení, musíte jej nejdříve odblokovat. new: create: Vytvořit blokaci @@ -292,6 +306,10 @@ cs: silence: Utišit suspend: Pozastavit title: Nová doménová blokace + private_comment: Soukromý komentář + private_comment_hint: Komentář o tomto omezení domény pro vnitřní použití moderátory. + public_comment: Veřejný komentář + public_comment_hint: Komentář o tomto omezení domény pro obecnou veřejnost, pokud je povoleno zobrazování seznamu omezení domén. reject_media: Odmítat mediální soubory reject_media_hint: Odstraní lokálně uložené mediální soubory a odmítne jejich stahování v budoucnosti. Nepodstatné pro pozastavení reject_reports: Odmítat nahlášení @@ -313,6 +331,7 @@ cs: title: Zrušit blokaci domény %{domain} undo: Odvolat undo: Odvolat blokaci domény + view: Zobrazit doménovou blokaci email_domain_blocks: add_new: Přidat nový created_msg: E-mailová doména úspěšně přidána na černou listinu @@ -338,6 +357,8 @@ cs: all: Všechny limited: Omezené title: Moderování + private_comment: Soukromý komentář + public_comment: Veřejný komentář title: Federace total_blocked_by_us: Blokované námi total_followed_by_them: Sledované jimi @@ -415,6 +436,13 @@ cs: custom_css: desc_html: Pozměnit vzhled pomocí šablony CSS načtené na každé stránce title: Vlastní CSS + domain_blocks: + all: Všem + disabled: Nikomu + title: Zobrazit doménové blokace + users: Přihlášeným místním uživatelům + domain_blocks_rationale: + title: Zobrazit odůvodnění hero: desc_html: Zobrazuje se na hlavní stránce. Doporučuje se rozlišení alespoň 600x100 px. Pokud toto není nastaveno, bude zobrazena miniatura serveru title: Hlavní obrázek @@ -475,12 +503,16 @@ cs: desc_html: Zobrazit na hlavní straně veřejnou časovou osu title: Náhled časové osy title: Nastavení stránky + trends: + desc_html: Veřejně zobrazit předtím schválené hashtagy, které jsou aktuálně populární + title: Populární hashtagy statuses: back_to_account: Zpět na stránku účtu batch: delete: Smazat nsfw_off: Označit, že není citlivý nsfw_on: Označit jako citlivý + deleted: Smazáno failed_to_execute: Nepodařilo se vykonat media: title: Média @@ -489,7 +521,19 @@ cs: title: Tooty účtu with_media: S médii tags: + accounts_today: Jedinečná použití dnes + accounts_week: Jedinečná použití tento týden + breakdown: Přehled dnešního používání podle zdroje + context: Kontext + directory: V adresáři + in_directory: "%{count} v adresáři" + review: Stav schválení + reviewed: Schválen title: Hashtagy + trending_right_now: Aktuální trendy + unique_uses_today: "%{count} dnes píší" + unreviewed: Neposouzeno + updated_msg: Nastavení hashtagu bylo úspěšně aktualizováno title: Administrace warning_presets: add_new: Přidat nové @@ -505,11 +549,15 @@ cs: body: "%{reporter} nahlásil/a uživatele %{target}" body_remote: Někdo z %{domain} nahlásil uživatele %{target} subject: Nové nahlášení pro %{instance} (#%{id}) + new_trending_tag: + body: 'Hashtag #%{name} je dnes populární, nebyl však dříve schválen. Nebude zobrazen veřejně, pokud to nedovolíte. Můžete také pouze uložit formulář tak, jak je, a nikdy o něm opět neslyšet.' + subject: Nový hashtag ke schválení na %{instance} (#%{name}) appearance: advanced_web_interface: Pokročilé webové rozhraní advanced_web_interface_hint: 'Chcete-li využít celé šířky vaší obrazovky, dovolí vám pokročilé webové rozhraní nastavit si mnoho různých sloupců, takže můžete vidět ve stejnou chvíli tolik informací, kolik chcete: domovskou časovou osu, oznámení, federovanou časovou osu a libovolný počet seznamů a hashtagů.' animations_and_accessibility: Animace a přístupnost confirmation_dialogs: Potvrzovací dialogy + discovery: Objevování sensitive_content: Citlivý obsah application_mailer: notification_preferences: Změnit volby e-mailu @@ -530,8 +578,13 @@ cs: apply_for_account: Vyžádat si pozvánku change_password: Heslo checkbox_agreement_html: Souhlasím s pravidly serveru a podmínkami používání + checkbox_agreement_without_rules_html: Souhlasím s podmínkami používání delete_account: Odstranit účet delete_account_html: Chcete-li odstranit svůj účet, pokračujte zde. Budete požádán/a o potvrzení. + description: + prefix_invited_by_user: "@%{name} vás zve, abyste se přidal/a na tento server Mastodon!" + prefix_sign_up: Registrujte se na Mastodonu již dnes! + suffix: S účtem budete moci sledovat lidi, psát příspěvky a vyměňovat si zprávy s uživateli z kteréhokoliv serveru Mastodon a dalších služeb! didnt_get_confirmation: Neobdržel/a jste pokyny pro potvrzení? forgot_password: Zapomněl/a jste heslo? invalid_reset_password_token: Token pro obnovení hesla je buď neplatný, nebo vypršel. Prosím vyžádejte si nový. @@ -556,6 +609,7 @@ cs: status: account_status: Stav účtu confirming: Čekám na dokončení potvrzení e-mailu. + functional: Váš účet je zcela funkční. pending: Váš požadavek čeká na schválení naším personálem. To může nějakou dobu trvat. Pokud bude váš požadavek schválen, obdržíte e-mail. trouble_logging_in: Problémy s přihlašováním? authorize_follow: @@ -586,26 +640,47 @@ cs: deletes: bad_password_msg: Dobrý pokus, hackeři! Nesprávné heslo confirm_password: Zadejte svoje současné heslo pro ověření vaší identity - description_html: Tímto trvale a nenávratně odstraníte obsah z vašeho účtu a deaktivujete ho. Vaše uživatelské jméno zůstane rezervované pro zabránění budoucím napodobováním. proceed: Odstranit účet success_msg: Váš účet byl úspěšně odstraněn - warning_html: Pouze vymazání obsahu z tohoto konkrétního serveru je zaručeno. Obsah, který byl široce sdílen, po sobě pravděpodobně zanechá stopy. U offline serverů a serverů, které vaše aktualizace již neodebírají, nebudou databáze aktualizovány. - warning_title: Dostupnost rozšířeného obsahu + warning: + before: 'Před pokračováním si prosím pečlivě přečtěte tyto poznámky:' + caches: Obsah, který byl uložen do cache jiných serverů, nemusí být smazán + data_removal: Vaše příspěvky a další data budou trvale smazána + email_change_html: Můžete si změnit svou e-mailovou adresu bez smazání účtu + email_contact_html: Pokud stále nepřijde, můžete požádat o pomoc zasláním e-mailu na %{email} + email_reconfirmation_html: Pokud neobdržíte potvrzovací e-mail, můžete si ho vyžádat znovu + irreversible: Nebudete moci obnovit nebo znovu aktivovat váš účet + more_details_html: Více detailů najdete v zásadách soukromí. + username_available: Vaše uživatelské jméno bude opět dostupné + username_unavailable: Vaše uživatelské jméno zůstane nedostupným directories: directory: Adresář profilů - enabled: Aktuálně jste v adresáři uveden/a. - enabled_but_waiting: Přihlásil/a jste se k uvedení v adresáři, ale ještě nemáte minimální počet sledujících (%{min_followers}) pro uvedení. explanation: Objevujte uživatele podle jejich zájmů explore_mastodon: Prozkoumejte %{title} - how_to_enable: Aktuálně nejste přihlášen/a do adresáře. Přihlásit se můžete níže. Použijte ve svém popisu profilu hashtagy, abyste mohl/a být uveden/a pod konkrétními hashtagy! - people: - few: "%{count} lidé" - many: "%{count} lidí" - one: "%{count} člověk" - other: "%{count} lidí" + domain_blocks: + blocked_domains: Seznam omezených a blokovaných domén + description: Tohle je seznam serverů, které server %{instance} omezuje nebo odmítá federaci. + domain: Doména + media_block: Blokace médií + no_domain_blocks: "(Žádné blokované domény)" + severity: Přísnost + severity_legend: + media_block: Mediální soubory přicházející ze serveru nejsou stahovány, ukládány ani zobrazovány uživatelům. + silence: Účty z utišených serverů lze nalézt, sledovat a interagovat s nimi, ale jejich tooty nebudou zobrazovány na veřejných časových osách a oznámení od nich se nedostanou k místním uživatelům, kteří je nesledují. + suspension: Z pozastavených serverů se neukládá ani nezobrazuje žádný obsah, ani se naně žádný obsah neposílá. Interakce z pozastavených serverů jsou ignorovány. + suspension_disclaimer: Pozastavené servery mohou občas stahovat veřejný obsah z tohoto serveru. + title: Přísnosti + show_rationale: Zobrazit odůvodnění + silence: Utišení + suspension: Pozastavení + title: "%{instance} Seznam blokovaných serverů" + domain_validator: + invalid_domain: není platné doménové jméno errors: + '400': Požadavek, který jste odeslal/a, byl neplatný nebo poškozený. '403': Nemáte povolení zobrazit tuto stránku. '404': Stránka, kterou hledáte, tu není. + '406': Tato stránka není dostupná v požadovaném formátu. '410': Stránka, kterou hledáte, tu již neexistuje. '422': content: Bezpečnostní ověření selhalo. Neblokujete cookies? @@ -614,6 +689,7 @@ cs: '500': content: Omlouváme se, ale něco se u nás pokazilo. title: Tato stránka není správná + '503': Stránku nelze načíst kvůli dočasnému selhání serveru. noscript_html: Pro použití webové aplikace Mastodon prosím povolte JavaScript. Nebo zkuste jednu z nativních aplikací pro Mastodon pro vaši platformu. existing_username_validator: not_found: nelze najít místního uživatele s tímto uživatelským jménem @@ -637,6 +713,7 @@ cs: add_new: Přidat nový errors: limit: Již jste zvýraznil/a maximální počet hashtagů + hint_html: "Co jsou zvýrazněné hashtagy? Zobrazují se prominentně na vašem veřejném profilu a dovolují lidem prohlížet si vaše veřejné příspěvky konkrétně pod těmi hashtagy. Je to skvělý nástroj pro sledování kreativních děl nebo dlouhodobých projektů." filters: contexts: home: Domovská časová osa @@ -657,10 +734,12 @@ cs: developers: Vývojáři more: Více… resources: Zdroje + trending_now: Aktuální trendy generic: all: Všechny changes_saved_msg: Změny byly úspěšně uloženy! copy: Kopírovat + no_batch_actions_available: Pro tuto stránku nejsou dostupny žádné souhrnné akce order_by: Seřadit od save_changes: Uložit změny validation_errors: @@ -955,6 +1034,8 @@ cs: pinned: Připnutý toot reblogged: boostnul/a sensitive_content: Citlivý obsah + tags: + does_not_match_previous_name: se neshoduje s předchozím názvem terms: body_html: |

Zásady soukromí

@@ -1072,7 +1153,9 @@ cs: disable: Zatímco je váš účet zmražen, zůstávají data vašeho účtu nedotčená, ale nemůžete vykonávat žádné akce, dokud nebude odemčen. silence: Zatímco je váš účet omezen, mohou vaše tooty na tomto serveru vidět pouze lidé, kteří váš již sledují, a můžete být vyloučen/a z různých veřejných výpisů. Ostatní vás však pořád mohou manuálně sledovat. suspend: Váš účet byl pozastaven a všechny vaše tooty a vaše nahrané mediální soubory byly nenávratně odstraněny z tohoto serveru a serverů, na kterých jste měl/a sledující. + get_in_touch: Můžete odpovědět na tento e-mail a spojit se s personálem serveru %{instance}. review_server_policies: Posoudit politiku serveru + statuses: 'Konkrétně kvůli:' subject: disable: Váš účet %{acct} byl zmražen none: Varování pro uživatele %{acct} diff --git a/config/locales/cy.yml b/config/locales/cy.yml index 0763341a36..a1d637f2e1 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -583,28 +583,17 @@ cy: deletes: bad_password_msg: Go dda, hacwyr! Cyfrinair anghywir confirm_password: Mewnbynnwch eich cyfrinair presennol i gadarnhau mai chi sydd yno - description_html: Bydd hyn yn cael gwared ar gynnwys o'ch cyfrif am byth heb fodd i'w adfer ac yn diffodd y cyfrif. Caiff eich eich enw defnyddiwr ei gadw i atal unrhyw ddynwarediadau yn y dyfodol. proceed: Dileu cyfrif success_msg: Llwyddwyd i ddileu eich cyfrif - warning_html: Dim ond dileu cynnwys o'r achos hwn ellid bod yn sicr ei fod wedi ei ddileu. Mae cynnwys sydd wedi ei rannu'n eang yn debygol o adael olion. Ni fydd gweinyddwyr all-lein a gweinyddwyr sydd wedi dad-danysgrifio o'ch diwedderiadau ddim yn diweddaru eu cronfeydd data. - warning_title: Argaeledd cynnwys wedi'i rannu directories: directory: Cyfeiriadur proffil - enabled: Rydych chi wedi'ch rhestru yn y cyfeiriadur ar hyn o bryd. - enabled_but_waiting: Rydych wedi dewis i chi gael eich rhestru yn y cyfeiriadur, ond nid oes gennych y nifer lleiaf o ddilynwyr (%{min_followers}) i'w rhestru eto. explanation: Darganfod defnyddwyr yn seiliedig ar eu diddordebau explore_mastodon: Archwilio %{title} - how_to_enable: Ar hyn o bryd nid ydych chi wedi dewis y cyfeiriadur. Gallwch ddewis i mewn isod. Defnyddiwch hashnodau yn eich bio-destun i'w restru dan hashnodau penodol! - people: - few: "%{count} o bobl" - many: "%{count} o bobl" - one: "%{count} berson" - other: "%{count} o bobl" - two: "%{count} o bobl" - zero: "%{count} person" errors: + '400': The request you submitted was invalid or malformed. '403': Nid oes gennych ganiatad i weld y dudalen hon. '404': Nid yw'r dudalen yr oeddech yn chwilio amdani'n bodoli. + '406': This page is not available in the requested format. '410': Nid yw'r dudalen yr oeddech yn chwilio amdani'n bodoli mwyach. '422': content: Methwyd i ddilysu diogelwch. A ydych chi'n blocio cwcîs? @@ -613,6 +602,7 @@ cy: '500': content: Mae'n ddrwg gennym ni, ond fe aeth rhywbeth o'i le ar ein rhan ni. title: Nid yw'r dudalen hon yn gywir + '503': The page could not be served due to a temporary server failure. noscript_html: I ddefnyddio ap gwe Mastodon, galluogwch JavaScript os gwlwch yn dda. Fel arall, gallwch drio un o'r apiau cynhenid ar gyfer Mastodon ar eich platfform. existing_username_validator: not_found: ni ddarganfwyd defnyddiwr lleol gyda'r enw cyfrif hynny diff --git a/config/locales/da.yml b/config/locales/da.yml index 160460cc2e..70397c77b1 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -4,21 +4,29 @@ da: about_hashtag_html: Disse er offentlige trut der indeholder tagget #%{hashtag}. Du kan interagere med dem hvis du har en konto hvor som helst i fediverset. about_mastodon_html: Mastodon er et socialt netværk der er baseret på åbne web protokoller og frit, open-source source software. Der er decentraliseret ligesom e-mail tjenester. about_this: Om + active_count_after: aktive administered_by: 'Administreret af:' + api: API apps: Apps til mobilen apps_platforms: Brug Mastodon på iOS, Android og andre platformer contact: Kontakt contact_missing: Ikke sat contact_unavailable: Ikke tilgængeligt + discover_users: Opdag brugere documentation: Dokumentation extended_description_html: |

Et godt sted for regler

Den udvidede beskrivelse er endnu ikke blevet opsat.

generic_description: "%{domain} er en server i netværket" + get_apps: Prøv en mobil app hosted_on: Mostodon hostet på %{domain} learn_more: Lær mere privacy_policy: Privatlivspolitik + see_whats_happening: Se hvad der sker source_code: Kildekode + status_count_after: + one: status + other: statusser status_count_before: Som har skrevet terms: Vilkår for service user_count_after: @@ -34,10 +42,12 @@ da: other: Følgere following: Følger joined: Tilmeldt den %{date} + last_active: sidst aktiv link_verified_on: Ejerskabet af dette link blev tjekket den %{date} media: Medier moved_html: "%{name} er flyttet til %{new_profile_link}:" network_hidden: Denne information er ikke tilgængelig + never_active: Aldrig nothing_here: Der er intet her! people_followed_by: Folk som %{name} følger people_who_follow: Folk der følger %{name} @@ -53,6 +63,7 @@ da: admin: Administrator bot: Robot moderator: Moderator + unavailable: Profil utilgængelig unfollow: Følg ikke længere admin: account_actions: @@ -63,6 +74,8 @@ da: delete: Slet destroyed_msg: Moderator notat succesfuldt destrueret! accounts: + approve: Godkend + approve_all: Godkend alle are_you_sure: Er du sikker? avatar: Profilbillede by_domain: Domæne @@ -76,6 +89,7 @@ da: confirm: Bekræft confirmed: Bekræftet confirming: Bekræfter + deleted: Slettet demote: Degrader disable: Deaktiver disable_two_factor_authentication: Deaktiver 2FA @@ -90,7 +104,9 @@ da: followers_url: Link til følgere follows: Følger inbox_url: Link til indbakke + invited_by: Inviteret af ip: IP-adresse + joined: Tilmeldt den location: all: Alle local: Lokalt @@ -100,7 +116,9 @@ da: media_attachments: Medie bilag memorialize: Omdan til et memoriam moderation: + active: Aktiv all: Alle + pending: Afventer silenced: Dæmpet suspended: Udelukket title: Moderasion @@ -116,6 +134,8 @@ da: public: Offentligt push_subscription_expires: PuSH abonnement udløber redownload: Opdater profil + reject: Afvis + reject_all: Afvis alle remove_avatar: Fjern profilbillede resend_confirmation: already_confirmed: Denne bruger er allerede blevet bekræftet @@ -147,11 +167,14 @@ da: undo_suspension: Fortryd udelukkelse unsubscribe: Abonner ikke længere username: Brugernavn + warn: Advar + whitelisted: Hvidlistet action_logs: actions: assigned_to_self_report: "%{name} tildelte anmeldelsen %{target} til sig selv" change_email_user: "%{name} ændrede email adressen for brugeren %{target}" confirm_user: "%{name} bekræftede %{target}s email adresse" + create_account_warning: "%{name} sendte en advarsel til %{target}" create_custom_emoji: "%{name} uploadede humørikonet %{target}" create_domain_block: "%{name} blokerede domænet %{target}" create_email_domain_block: "%{name} sortlistede email domænet %{target}" @@ -209,6 +232,7 @@ da: config: Konfiguration feature_deletions: Konto sletninger feature_invites: Invitations links + feature_profile_directory: Profilliste feature_registrations: Registreringer feature_relay: Føderations relæ features: Funktioner @@ -224,6 +248,8 @@ da: week_interactions: interaktioner denne uge week_users_active: aktive denne uge week_users_new: brugere denne uge + domain_allows: + undo: Fjern fra hvidliste domain_blocks: add_new: Tilføj ny domain block created_msg: Domæne blokade bliver nu behandlet @@ -238,6 +264,8 @@ da: silence: Dæmp suspend: Udeluk title: Ny domæne blokering + private_comment: Privat kommentar + public_comment: Offentlig kommentar reject_media: Afvis medie filer reject_media_hint: Fjerner lokalt lagrede multimedie filer og nægter at hente nogen i fremtiden. Irrelevant for udelukkelser reject_reports: Afvis anmeldelser @@ -263,8 +291,18 @@ da: title: Email sortliste followers: back_to_account: Tilbage til konto + title: "%{acct}'s følgere" instances: + by_domain: Domæne + moderation: + all: Alle + limited: Begrænset + private_comment: Privat kommentar + public_comment: Offentlig kommentar title: Førderation + total_blocked_by_us: Blokeret af os + total_followed_by_them: Fulgt af dem + total_followed_by_us: Fulgt af os invites: deactivate_all: Deaktiver alle filter: @@ -286,6 +324,7 @@ da: pending: Venter på godkendelse fra relæet save_and_enable: Gem og aktiver setup: Opsæt en videresendelses forbindelse + status: Status title: Videresendelser report_notes: created_msg: Anmeldelse note blev oprettet! @@ -315,6 +354,7 @@ da: reported_by: Anmeldt af resolved: Løst resolved_msg: Anmeldelse er sat til at være løst! + status: Status title: Anmeldelser unassign: Utildel unresolved: Uløst @@ -332,6 +372,9 @@ da: custom_css: desc_html: Ændre udseendet med CSS indlæst på hver side title: Brugerdefineret CSS + domain_blocks: + all: Til alle + disabled: Til ingen hero: desc_html: Vist på forsiden. Mindst 600x100px anbefales. Hvis ikke sat, vil dette falde tilbage til billedet fra serveren title: Billede af helt @@ -351,6 +394,10 @@ da: min_invite_role: disabled: Ingen title: Tillad invitationer af + registrations_mode: + modes: + none: Ingen kan tilmelde sig + open: Alle kan tilmelde sig show_known_fediverse_at_about_page: desc_html: Når slået til, vil det vise trut fra hele det kendte fedivers på forhåndsvisning. Ellers vil det kun vise lokale trut. title: Vis kendte fedivers på tidslinje forhåndsvisning @@ -383,6 +430,7 @@ da: delete: Slet nsfw_off: Marker som værende ikke følsomt nsfw_on: Marker som værende følsomt + deleted: Slettet failed_to_execute: Udførelsen kunne ikke lade sig gøre media: title: Multimedier @@ -390,13 +438,24 @@ da: no_status_selected: Ingen statusser blev ændret eller ingen blev valgt title: Konto statusser with_media: Med multimedier + tags: + accounts_today: Unikke brug i dag + accounts_week: Unikke brug denne uge + context: Kontekst + warning_presets: + delete: Slet + edit: Rediger admin_mailer: new_report: body: "%{reporter} har anmeldt %{target}" body_remote: Nogen fra %{domain} har anmeldt %{target} subject: Ny anmeldelse for %{instance} (#%{id}) + appearance: + discovery: Opdagelse + sensitive_content: Følsomt indhold application_mailer: notification_preferences: Ændre email præferencer + salutation: "%{name}" settings: 'Ændre email præferencer: %{link}' view: 'Se:' view_profile: Se profil @@ -410,9 +469,12 @@ da: warning: Vær meget forsigtig med disse data. Del dem aldrig med nogen! your_token: Din adgangs token auth: + apply_for_account: Anmod om en invitation change_password: Kodeord delete_account: Slet konto delete_account_html: Hvis du ønsker at slette din konto, kan du gøre det her. Du vil blive bedt om bekræftelse. + description: + prefix_sign_up: Tilmeld dig Mastodon i dag! didnt_get_confirmation: Har du endnu ikke modtaget instrukser for bekræftelse? forgot_password: Glemt dit kodeord? invalid_reset_password_token: Adgangskode nulstillings token er ugyldig eller udløbet. Anmod venligst om en ny. @@ -422,10 +484,14 @@ da: migrate_account_html: Hvis du ønsker at omdirigere denne konto til en anden, kan du gøre det her. or_log_in_with: Eller log in med register: Opret dig + registration_closed: "%{instance} accepterer ikke nye medlemmer" resend_confirmation: Gensend bekræftelses instrukser reset_password: Nulstil kodeord security: Sikkerhed set_new_password: Sæt et nyt kodeord + status: + account_status: Kontostatus + trouble_logging_in: Har du problemer med at logge på? authorize_follow: already_following: Du følger allerede denne konto error: Der opstod desværre en fejl under søgningen af denne fjerne konto @@ -450,14 +516,21 @@ da: deletes: bad_password_msg: Godt forsøg, hackere! Forkert kodeord confirm_password: Indtast dit nuværende kodeord for at bekræfte din identitet - description_html: Dette vil permanent, uigenkaldeligt fjerne indhold fra din konto samt deaktivere den. Dit brugernavn vil forblive reserveret for at forhindre fremtidige efterligninger. proceed: Slet konto success_msg: Din konto er nu blevet slettet - warning_html: Kun sletning af indhold fra denne specifikke server er garanteret. Indhold der er blevet delt rundt omkring vil sandsynligvis efterlade spor. Offline servere og servere der ikke længere abonnerer på dine opdateringer vil ikke opdatere deres databaser. - warning_title: Tilgængelighed af delt indhold + warning: + username_available: Dit brugernavn vil blive tilgængeligt igen + username_unavailable: Dit brugernavn vil forblive utilgængeligt + directories: + directory: Profilliste + explore_mastodon: Uforsk %{title} + domain_blocks: + domain: Domæne errors: + '400': The request you submitted was invalid or malformed. '403': Du har ikke tilladelse til at se denne side. '404': Den side du leder efter findes ikke. + '406': This page is not available in the requested format. '410': Den side du leder efter findes ikke mere. '422': content: Sikkerhedsbekræftelse mislykkedes. Blokerer du cookies? @@ -466,7 +539,11 @@ da: '500': content: Beklager men der gik noget galt i vores ende. title: Siden er ikke korrekt + '503': The page could not be served due to a temporary server failure. noscript_html: For at bruge Mastodon web applikationen, aktiver JavaScript. Alternativt kan du prøve en af disse apps til Mastodon for din platform. + existing_username_validator: + not_found: kunne ikke finde en lokal bruger med dette brugenavn + not_found_multiple: kunne ikke finde %{usernames} exports: archive_takeout: date: Dato @@ -476,7 +553,9 @@ da: request: Anmod om dit arkiv size: Størrelse blocks: Du blokerer + csv: CSV follows: Du følger + lists: Lister mutes: Du dæmper storage: Medie lager filters: @@ -499,14 +578,22 @@ da: developers: Udviklere more: Mere… resources: Ressourcer + trending_now: Hot lige nu generic: + all: Alle changes_saved_msg: Ændringerne blev gemt! copy: Kopier + order_by: Sorter efter save_changes: Gem ændringer validation_errors: one: Der er noget der ikke er helt som det bør være! Tag lige et kig på følgende fejl forneden other: Der er noget der ikke er helt som det bør være! Tag lige et kig på følgende %{count} fejl forneden + identity_proofs: + i_am_html: Jeg er %{username} på %{service}. + identity: Identitet imports: + modes: + overwrite: Overskriv preface: Du kan importere data du har eksporteret fra en anden server, så som en liste over folk du følger eller blokerer. success: Dine data blev succesfuldt uploaded og vil nu blive behandlet hurtigst muligt types: @@ -597,8 +684,19 @@ da: older: Ældre prev: Forrige truncate: "...…" + polls: + errors: + duration_too_long: er for langt ude i fremtiden + duration_too_short: er for tidligy + expired: Denne afstemning er allerede afsluttet preferences: other: Andet + public_timelines: Offentlige tidslinjer + relationships: + last_active: Sidst aktiv + moved: Flyttet + mutual: Fælles + primary: Primær remote_follow: acct: Indtast dit brugernavn@domæne du vil handle fra missing_resource: Kunne ikke finde det påkrævede omdirigerings link for din konto @@ -607,6 +705,7 @@ da: prompt: 'Du er ved at følge:' sessions: activity: Sidste aktivitet + browser: Browser browsers: alipay: Ali-pay blackberry: Blackberry OS @@ -628,11 +727,15 @@ da: current_session: Nuværrende session description: "%{browser} på %{platform}" explanation: Disse er de web browsere der på nuværende tidspunkt er logget ind på din Mastodon konto. + ip: IP platforms: adobe_air: Adobe air + android: Android blackberry: Blackberry OS chrome_os: Chromeos firefox_os: Firefox Os + ios: iOS + linux: Linux mac: Mac. other: ukendt platform windows: Microsoft windows @@ -642,6 +745,9 @@ da: revoke_success: Sessionen blev tilbagekaldt title: Sessioner settings: + account: Konto + account_settings: Kontoindstillinger + appearance: Udseende authorized_apps: Godkendte apps back: Tilbage til Mastodon delete: Sletning af konto @@ -649,9 +755,12 @@ da: edit_profile: Rediger profil export: Data eksportering import: Importer + import_and_export: Importer og eksporter migrate: Konto migrering notifications: Notifikationer preferences: Præferencer + profile: Profil + relationships: Følger og følgere two_factor_authentication: To-faktor godkendelse statuses: attached: @@ -659,6 +768,9 @@ da: image: one: "%{count} billede" other: "%{count} billeder" + video: + one: "%{count} video" + other: "%{count} videoer" boosted_from_html: Fremhævet fra %{acct_link} content_warning: 'Advarsel om indhold: %{warning}' disallowed_hashtags: @@ -672,6 +784,8 @@ da: ownership: Du kan ikke fastgøre en anden persons trut private: Ikke offentlige trut kan ikke blive fastgjort reblog: Fremhævede trut kan ikke fastgøres + poll: + vote: Stem show_more: Vis mere sign_in_to_participate: Log ind for at deltage i samtalen visibilities: @@ -713,6 +827,9 @@ da: explanation: Din anmodning for fuld backup af din Mastodon konto. Den er nu klar til at blive hentet! subject: Dit arkiv er klar til at blive hentet ned title: Udpluk af arkiv + warning: + title: + none: Advarsel welcome: edit_profile_action: Opsæt profil edit_profile_step: Du kan skræddersy din profil ved at uploade et profilbillede, overskrift, ændre dit visningsnavn og mere. Hvis du kunne tænke dig at gennemse nye følgere før de må følge dig, kan du låse din konto. @@ -736,3 +853,5 @@ da: otp_lost_help_html: Hvis du har mistet adgang til begge, kan du få kontakt via %{email} seamless_external_login: Du er logget ind via en ekstern service, så er kodeord og e-mail indstillinger ikke tilgængelige. signed_in_as: 'Logget ind som:' + verification: + verification: Verificering diff --git a/config/locales/de.yml b/config/locales/de.yml index 1e3e788787..0af7be2f42 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -45,7 +45,7 @@ de: what_is_mastodon: Was ist Mastodon? accounts: choices_html: "%{name} empfiehlt:" - endorsements_hint: Du kannst Personen unterstützen, die du von der Web-Schnittstelle folgen kannst, und sie werden hier angezeigt. + endorsements_hint: Du kannst Personen, denen du über die Weboberfläche folgst, auswählen, und sie werden hier angezeigt. featured_tags_hint: Du kannst spezifische Hashtags, die hier angezeigt werden, angeben. follow: Folgen followers: @@ -58,6 +58,7 @@ de: media: Medien moved_html: "%{name} ist auf %{new_profile_link} umgezogen:" network_hidden: Diese Informationen sind nicht verfügbar + never_active: Nie nothing_here: Hier gibt es nichts! people_followed_by: Profile, denen %{name} folgt people_who_follow: Profile, die %{name} folgen @@ -499,6 +500,7 @@ de: delete: Löschen nsfw_off: Als nicht heikel markieren nsfw_on: Als heikel markieren + deleted: Gelöscht failed_to_execute: Ausführen fehlgeschlagen media: title: Medien @@ -543,7 +545,7 @@ de: advanced_web_interface_hint: Wenn du mehr aus deiner Bildschirmbreite herausholen möchtest, erlaubt dir die fortgeschrittene Benutzeroberfläche viele unterschiedliche Spalten auf einmal zu sehen, wie z.B. deine Startseite, Benachrichtigungen, das gesamte bekannte Netz, deine Listen und beliebige Hashtags. animations_and_accessibility: Animationen und Barrierefreiheit confirmation_dialogs: Bestätigungsfenster - discovery: Erkennung + discovery: Entdecken sensitive_content: Heikle Inhalte application_mailer: notification_preferences: Ändere E-Mail-Einstellungen @@ -567,6 +569,10 @@ de: checkbox_agreement_without_rules_html: Ich stimme den Nutzungsbedingungen zu delete_account: Konto löschen delete_account_html: Falls du dein Konto löschen willst, kannst du hier damit fortfahren. Du wirst um Bestätigung gebeten werden. + description: + prefix_invited_by_user: "@%{name} lädt dich ein, diesem Server von Mastodon beizutreten!" + prefix_sign_up: Melde dich heute bei Mastodon an! + suffix: Mit einem Konto kannst du Leuten folgen, Updates veröffentlichen und Nachrichten mit Benutzern von jedem Mastodon-Server austauschen und mehr! didnt_get_confirmation: Keine Bestätigungs-Mail erhalten? forgot_password: Passwort vergessen? invalid_reset_password_token: Das Token zum Zurücksetzen des Passworts ist ungültig oder abgelaufen. Bitte fordere ein neues an. @@ -592,7 +598,7 @@ de: account_status: Kontostatus confirming: Warte auf die Bestätigung der E-Mail. functional: Dein Konto ist voll funktionsfähig. - pending: Deine Bewerbung wird von unseren Mitarbeitern noch nicht überprüft. Dies kann einige Zeit dauern. Du erhälst eine E-Mail, wenn deine Bewerbung genehmigt ist. + pending: Deine Bewerbung wird von unseren Mitarbeitern noch überprüft. Dies kann einige Zeit dauern. Du erhältst eine E-Mail, wenn deine Bewerbung genehmigt wurde. trouble_logging_in: Schwierigkeiten beim Anmelden? authorize_follow: already_following: Du folgst diesem Konto bereits @@ -622,21 +628,23 @@ de: deletes: bad_password_msg: Falsches Passwort confirm_password: Gib dein derzeitiges Passwort ein, um deine Identität zu bestätigen - description_html: Hiermit wird dauerhaft und unwiederbringlich der Inhalt deines Kontos gelöscht und dein Konto deaktiviert. Dein Profilname wird reserviert, um künftige Imitationen zu verhindern. proceed: Konto löschen success_msg: Dein Konto wurde erfolgreich gelöscht - warning_html: Wir können nur dafür garantieren, dass die Inhalte auf diesem einen Server gelöscht werden. Bei Inhalten, die weit verbreitet wurden, ist es wahrscheinlich, dass Spuren bleiben werden. Server, die offline sind oder keine Benachrichtigungen von deinem Konto mehr empfangen, werden ihre Datenbanken nicht bereinigen. - warning_title: Verfügbarkeit verstreuter Inhalte + warning: + before: 'Bevor du fortfährst, lese bitte diese Punkte sorgfältig durch:' + caches: Inhalte, die von anderen Servern zwischengespeichert wurden, können weiterhin bestehen + data_removal: Deine Beiträge und andere Daten werden dauerhaft entfernt + email_change_html: Du kannst deine E-Mail-Adresse ändern, ohne dein Konto zu löschen + email_contact_html: Wenn die Bestätigungs-E-Mail immer noch nicht ankam, kannst du eine E-Mail an %{email} senden, um weitere Hilfe zu erhalten + email_reconfirmation_html: Wenn du die Bestätigungs-E-Mail nicht erhalten hast, kannst du sie erneut anfordern + irreversible: Du kannst dein Konto nicht reaktivieren + more_details_html: Weitere Details findest du in der Datenschutzrichtlinie. + username_available: Dein Benutzername wird wieder verfügbar + username_unavailable: Dein Benutzername bleibt nicht verfügbar directories: directory: Profilverzeichnis - enabled: Du bist gerade in dem Verzeichnis gelistet. - enabled_but_waiting: Du bist damit einverstanden im Verzeichnis aufgelistet zu werden, aber du hast noch nicht genug Folger_innen (%{min_followers}). explanation: Entdecke Benutzer_innen basierend auf deren Interessen explore_mastodon: Entdecke %{title} - how_to_enable: Du hast dich gerade nicht dazu entschieden im Verzeichnis gelistet zu werden. Du kannst dich unten dafür eintragen. Benutze Hashtags in deiner Profilbeschreibung, um unter spezifischen Hashtags gelistet zu werden! - people: - one: "%{count} Person" - other: "%{count} Leute" domain_blocks: blocked_domains: Liste der begrenzten und blockierten Domains description: Dies ist die Liste der Server, die %{instance} limitiert oder dessen Föderation ablehnt. @@ -657,8 +665,10 @@ de: domain_validator: invalid_domain: ist kein gültiger Domain-Name errors: + '400': Die Anfrage, die du gesendet hast, war ungültig oder fehlerhaft. '403': Dir fehlt die Befugnis, diese Seite sehen zu können. '404': Die Seite nach der du gesucht hast wurde nicht gefunden. + '406': Diese Seite ist im gewünschten Format nicht verfügbar. '410': Die Seite nach der du gesucht hast existiert hier nicht mehr. '422': content: Sicherheitsüberprüfung fehlgeschlagen. Blockierst du Cookies? @@ -667,6 +677,7 @@ de: '500': content: Bitte verzeih, etwas ist bei uns schief gegangen. title: Diese Seite ist kaputt + '503': Die Seite konnte wegen eines temporären Serverfehlers nicht angezeigt werden. noscript_html: Bitte aktiviere JavaScript, um die Mastodon-Web-Anwendung zu verwenden. Alternativ kannst du auch eine der nativen Mastodon-Anwendungen für deine Plattform probieren. existing_username_validator: not_found: kann lokalen Benutzer nicht mit diesem Nuternamen finden @@ -1115,7 +1126,9 @@ de: disable: Solange dein Konto eingefroren ist, sind deine Benutzerdaten intakt; aber du kannst nichts tun, bis dein Konto entsperrt wurde. silence: Solange dein Konto limitiert ist, können nur die Leute, die dir bereits folgen, deine Beiträge auf dem Server sehen und es könnte sein, dass du von verschiedenen öffentlichen Listungen ausgeschlossen wirst. Andererseits können andere dir manuell folgen. suspend: Dein Konto wurde gesperrt und alle deine Beiträge und hochgeladenen Medien wurden unwiderruflich vom Server und anderen Servern, bei denen du Folgende hattest, gelöscht. + get_in_touch: Du kannst auf diese E-Mail antworten, um mit dem Personal von %{instance} in Kontakt zu treten. review_server_policies: Serverrichtlinien ansehen + statuses: 'Besonders für:' subject: disable: Dein Konto %{acct} wurde eingefroren none: Warnung für %{acct} diff --git a/config/locales/devise.da.yml b/config/locales/devise.da.yml index 4816d6456b..1b05d77c1d 100644 --- a/config/locales/devise.da.yml +++ b/config/locales/devise.da.yml @@ -2,7 +2,7 @@ da: devise: confirmations: - confirmed: Din email adresse er blevet succesfuldt bekræftet. + confirmed: Din e-mail er nu bekræftet. send_instructions: Du vil modtage en mail med instrukser for hvordan du bekræfter din email adresse om få minutter. Tjek venligst din spam mappe hvis du ikke har modtaget denne email. send_paranoid_instructions: Hvis din email adresse allerede findes i vores database, vil du modtage en email med instrukser for hvordan du bekræfter din email adresse om få minutter. Tjek gerne din spam mappe hvis du ikke modtager denne email. failure: @@ -12,6 +12,7 @@ da: last_attempt: Du har et forsøg tilbage før din konto låses. locked: Din konto er låst. not_found_in_database: Ugyldig %{authentication_keys} eller ugyldigt kodeord. + pending: Din konto er stadig under bedømmelse. timeout: Din session er udløbet. Log venligst ind igen for at fortsætte. unauthenticated: Du er nødt til at logge ind eller oprette dig for at fortsætte. unconfirmed: Du er nødt til at bekræfte din email adresse for at fortsætte. @@ -20,6 +21,7 @@ da: action: Bekræft email adresse action_with_app: Bekræft og vend tilbage til %{app} explanation: Du har oprettet en konto på %{host} med denne email adresse. Du er et klik fra at aktivere din konto. Hvis du ikke har oprettet dig, ignorer venligst denne email. + explanation_when_pending: Du har ansøgt om en invitation til %{host} med denne mailadresse. Når du bekræfter din mailadresse vil vi bedømme din ansøgning. Indtil da kan du ikke logge ind. Din data slettes hvis din ansøgning bliver afvist så du behøver ikke foretage yderligere handlinger. Hvis dette ikke var dig kan du ignorere denne mail. extra_html: Tjek også reglerne for serveren og vores betingelser. subject: 'Mastodon: Bekræftelses instrukser for %{instance}' title: Bekræft email adresse @@ -60,6 +62,7 @@ da: signed_up: Velkommen! Du har nu tilmeldt dig. signed_up_but_inactive: Du har nu oprettet dig. Vi kunne dog ikke logge dig ind da din konto endnu ikke er aktiveret. signed_up_but_locked: Du har nu oprettet dig. Vi kunne dog ikke logge dig ind da din konto er låst. + signed_up_but_pending: En besked med et bekræftelseslink er blevet sendt til din mailadresse. Vi vil behandle din ansøgning når du har trykket på dette link. Du får en meddelelse hvis din ansøgning bliver accepteret. signed_up_but_unconfirmed: En besked med et bekræftelses link er nu blevet sendt til din email adresse. Følg linket for at aktivere din konti. Tjek din spam mappe hvis du ikke har modtaget denne email. update_needs_confirmation: Du har succesfuldt opdateret din konto, men vi er nødt til at bekræfte din email adresse. Tjek venligst din email og følg bekræftelses linket for at bekræfte din nye email adresse. Tjek venligst din spam mappe hvis du ikke har modtaget denne email. updated: Din konto er nu blevet opdateret. diff --git a/config/locales/devise.fr.yml b/config/locales/devise.fr.yml index 2d3c86c1fb..321e72f4ad 100644 --- a/config/locales/devise.fr.yml +++ b/config/locales/devise.fr.yml @@ -21,7 +21,7 @@ fr: action: Vérifier l’adresse courriel action_with_app: Confirmer et retourner à %{app} explanation: Vous avez créé un compte sur %{host} avec cette adresse courriel. Vous êtes à un clic de l’activer. Si ce n’était pas vous, veuillez ignorer ce courriel. - explanation_when_pending: Vous avez demandé à vous inscrire à %{host} avec cette adresse courriel. Une fois que vous aurez confirmé cette adresse, nous étudierons votre demande. Vous ne pourrez pas vous connecté d'ici-là. Si votre demande est refusée, vos données seront supprimées du serveur, aucune action supplémentaire de votre part n'est donc requise. Si vous n'êtes pas à l'origine de cette demande, veuillez ignorer ce courriel. + explanation_when_pending: Vous avez demandé à vous inscrire à %{host} avec cette adresse de courriel. Une fois que vous aurez confirmé cette adresse, nous étudierons votre demande. Vous ne pourrez pas vous connecter d’ici-là. Si votre demande est refusée, vos données seront supprimées du serveur, aucune action supplémentaire de votre part n’est donc requise. Si vous n’êtes pas à l’origine de cette demande, veuillez ignorer ce message. extra_html: Merci de consultez également les règles du serveur et nos conditions d’utilisation. subject: 'Mastodon : Merci de confirmer votre inscription sur %{instance}' title: Vérifier l’adresse courriel diff --git a/config/locales/devise.tr.yml b/config/locales/devise.tr.yml index 0a504dd676..476d42317b 100644 --- a/config/locales/devise.tr.yml +++ b/config/locales/devise.tr.yml @@ -8,8 +8,68 @@ tr: failure: already_authenticated: Zaten oturum açtınız. inactive: Hesabınız henüz etkinleştirilmedi. + invalid: Geçersiz %{authentication_keys} ya da şifre. last_attempt: Hesabınız kilitlenmeden önce bir kez daha denemeniz gerekir. locked: Hesabınız kilitli. + not_found_in_database: Geçersiz %{authentication_keys} ya da şifre. + pending: Hesabınız hala inceleniyor. + timeout: Oturum süreniz sona erdi. Lütfen devam etmek için tekrar giriş yapınız. + unauthenticated: Devam etmeden önce oturum açmanız veya kayıt olmanız gerek. + unconfirmed: Devam etmeden önce e-posta adresini onaylamanız gerekli. mailer: confirmation_instructions: action: E-posta adresinizi doğrulayın + action_with_app: Onayla ve %{app}'a dön + explanation: Bu e-posta adresiyle %{host} bir hesap oluşturdunuz. Etkinleştirmekten bir tık uzaktasınız. Bu siz değilseniz, lütfen bu e-postayı dikkate almayın. + explanation_when_pending: Bu e-posta adresiyle %{host} adresine bir davetiye için başvuru yaptınız. E-posta adresinizi onayladıktan sonra başvurunuzu inceleyeceğiz. O zamana kadar giriş yapamazsınız. Başvurunuz reddedilirse, verileriniz silinecek, başka bir işlem yapmanız gerekmeyecek. Bu siz değilseniz, lütfen bu e-postayı dikkate almayın. + extra_html: Lütfen ayrıca sunucu kurallarını ve hizmet şartlarımızı inceleyin. + subject: 'Mastodon: %{instance} için onay talimatları' + title: E-posta adresini doğrulayın + email_changed: + explanation: 'Hesabınızın e-posta adresi şu şekilde değiştirildi:' + extra: E-posta adresinizi değiştirmediyseniz, büyük olasılıkla birileri hesabınıza erişti. Lütfen derhal parolanızı değiştirin veya hesabınız kilitlendiyse sunucu yöneticisine başvurun. + subject: 'Mastodon: E-posta değişti' + title: Yeni e-posta adresi + password_change: + explanation: Hesabınızın parolası değiştirildi. + extra: Parolanızı değiştirmediyseniz, büyük olasılıkla birileri hesabınıza erişmiş olabilir. Lütfen derhal parolanızı değiştirin veya hesabınız kilitlendiyse sunucu yöneticisine başvurun. + subject: 'Mastodon: Parola değiştirildi' + title: Parola değiştirildi + reconfirmation_instructions: + explanation: E-postanızı değiştirmek için yeni adresi onaylayın. + extra: Bu değişiklik sizin tarafınızdan başlatılmadıysa, lütfen bu e-postayı dikkate almayın. Mastodon hesabının e-posta adresi, yukarıdaki bağlantıya erişene kadar değişmez. + subject: 'Mastodon: %{instance} için e-postayı onayla' + title: E-posta adresinizi doğrulayın + reset_password_instructions: + action: Parolayı değiştir + explanation: Hesabınız için yeni bir parola istediniz. + extra: Bunu siz yapmadıysanız, lütfen bu e-postayı dikkate almayın. Parolanız yukarıdaki bağlantıya erişene ve yeni bir tane oluşturuncaya kadar değişmez. + subject: 'Mastodon: Parola sıfırlama talimatları' + title: Parola sıfırlama + unlock_instructions: + subject: 'Mastodon: Engel kaldırma talimatları' + passwords: + no_token: Bu sayfaya şifre sıfırlama e-postasından gelmeden erişemezsiniz. Şifre sıfırlama e-postasından geliyorsanız lütfen sağlanan tam URL'yi kullandığınızdan emin olun. + send_instructions: E-posta adresiniz veritabanımızda varsa, e-posta adresinize birkaç dakika içinde bir parola kurtarma bağlantısı gönderilir. Bu e-postayı almadıysanız, lütfen spam klasörünüzü kontrol edin. + send_paranoid_instructions: E-posta adresiniz veritabanımızda varsa, e-posta adresinize birkaç dakika içinde bir parola kurtarma bağlantısı gönderilir. Bu e-postayı almadıysanız, lütfen spam klasörünüzü kontrol edin. + updated: Parolanız başarıyla değiştirildi. Şuan oturumunuz açıldı. + updated_not_active: Parolanız başarıyla değiştirildi. + registrations: + destroyed: Görüşürüz! hesabın başarıyla iptal edildi. Umarız seni sonra tekrar görürüz. + signed_up: Hoş geldiniz! Başarılı bir şekilde oturum açtınız. + signed_up_but_inactive: Başarıyla kaydoldun. Ancak, seni içeri alamıyoruz çünkü hesabın henüz aktif değil. + signed_up_but_locked: Başarıyla kaydoldun. Ancak, seni içeri alamıyoruz çünkü hesabın kilitli. + signed_up_but_pending: Onay bağlantısına sahip bir mesaj e-posta adresinize gönderildi. Bağlantıyı tıkladıktan sonra başvurunuzu inceleyeceğiz. Onaylanması durumunda size bilgi verilecektir. + signed_up_but_unconfirmed: Onay bağlantısına sahip bir mesaj e-posta adresinize gönderildi. Lütfen hesabınızı etkinleştirmek için bağlantıyı takip edin. Bu e-postayı almadıysanız, lütfen spam klasörünüzü kontrol edin. + update_needs_confirmation: Hesabınızı başarıyla güncellediniz, ancak yeni e-posta adresinizi doğrulamamız gerekiyor. Lütfen e-postanızı kontrol edin ve yeni e-posta adresinizi onaylamak için onay bağlantısını izleyin. Bu e-postayı almadıysanız, lütfen spam klasörünüzü kontrol edin. + updated: Hesabınız başarıyla güncellendi. + sessions: + already_signed_out: Başarıyla çıkış yapıldı. + signed_in: Başarıyla giriş yapıldı. + signed_out: Başarıyla çıkış yapıldı. + unlocks: + send_instructions: Hesabınızı birkaç dakika içinde nasıl açacağınıza ilişkin talimatları içeren bir e-posta alacaksınız. Bu e-postayı almadıysanız, lütfen spam klasörünüzü kontrol edin. + send_paranoid_instructions: Hesabınız varsa, birkaç dakika içinde nasıl kilidini açacağınıza ilişkin talimatları içeren bir e-posta alacaksınız. Bu e-postayı almadıysanız, lütfen spam klasörünüzü kontrol edin. + errors: + messages: + not_found: bulunamadı diff --git a/config/locales/doorkeeper.ar.yml b/config/locales/doorkeeper.ar.yml index 6f9e38f8b3..f443d0dd3a 100644 --- a/config/locales/doorkeeper.ar.yml +++ b/config/locales/doorkeeper.ar.yml @@ -113,6 +113,11 @@ ar: application: title: طلب تصريح مفتوح OAuth scopes: + admin:read: قراءة كافة البيانات على الخادم + admin:read:accounts: قراءة المعلومات الحساسة عن كافة الحسابات + admin:write: تعديل كافة البيانات على الخادم + admin:write:accounts: اتخاذ إجراءات إشراف على الحسابات + admin:write:reports: اتخاذ إجراءات إشراف على الإبلاغات follow: تعديل علاقات الحساب push: تلقي إشعاراتك read: قراءة كافة بيانات حسابك diff --git a/config/locales/doorkeeper.da.yml b/config/locales/doorkeeper.da.yml index b0f50a8931..4d2c95affe 100644 --- a/config/locales/doorkeeper.da.yml +++ b/config/locales/doorkeeper.da.yml @@ -72,6 +72,7 @@ da: index: application: Applikation created_at: Godkendt + date_format: "%Y-%m-%d %H:%M:%S" scopes: Omfang title: Dine godkendte applikationer errors: @@ -113,6 +114,12 @@ da: application: title: OAuth godkendelse påkrævet scopes: + admin:read: læs al data på serveren + admin:read:accounts: læs sensitiv information fra alle konti + admin:read:reports: læs sensitiv information fra alle anmeldelser og anmeldte konti + admin:write: redigér al data på serveren + admin:write:accounts: udfør modereringshandlinger på konti + admin:write:reports: udfør modereringshandlinger på anmeldelser follow: ændre din kontos forhold push: modtage dine push notifikationer read: læse alle din kontos data diff --git a/config/locales/doorkeeper.fr.yml b/config/locales/doorkeeper.fr.yml index 3525617680..09908b89aa 100644 --- a/config/locales/doorkeeper.fr.yml +++ b/config/locales/doorkeeper.fr.yml @@ -114,6 +114,12 @@ fr: application: title: Autorisation OAuth requise scopes: + admin:read: lire toutes les données du serveur + admin:read:accounts: lire les informations sensibles de tous les comptes + admin:read:reports: lire les informations sensibles de tous les signalements et des comptes signalés + admin:write: modifier toutes les données sur le serveur + admin:write:accounts: effectuer des actions de modération sur les comptes + admin:write:reports: effectuer des actions de modération sur les singnalements follow: modifier les relations avec les comptes push: recevoir vos notifications read: lire toutes les données de votre compte diff --git a/config/locales/doorkeeper.tr.yml b/config/locales/doorkeeper.tr.yml index 686a018e0a..e421b6a80b 100644 --- a/config/locales/doorkeeper.tr.yml +++ b/config/locales/doorkeeper.tr.yml @@ -5,6 +5,15 @@ tr: doorkeeper/application: name: Uygulama adı website: Uygulama web sitesi + errors: + models: + doorkeeper/application: + attributes: + redirect_uri: + fragment_present: parça içeremez. + invalid_uri: geçerli bir URI olmalıdır. + relative_uri: mutlaka bir URI olmalıdır. + secured_uri: HTTPS/SSL URI olması gerekir. doorkeeper: applications: buttons: @@ -17,3 +26,83 @@ tr: destroy: Emin misiniz? edit: title: Uygulamayı düzenle + form: + error: Tüh! Muhtemel hatalar için formunuzu kontrol edin + help: + native_redirect_uri: Yerel testler için %{native_redirect_uri} kullanın + redirect_uri: URl başına bir satır kullanın + index: + application: Uygulama + callback_url: Geri Dönüş URL + delete: Sil + name: İsim + new: Yeni uygulama + show: Göster + title: Uygulamalarınız + new: + title: Yeni uygulama + show: + actions: Eylemler + title: 'Uygulama: %{name}' + authorizations: + buttons: + authorize: Yetkilendir + deny: Reddet + error: + title: Bir hata oluştu + new: + prompt: "%{client_name} uygulaması hesabınıza erişim istiyor" + title: Yetkilendirme gerekli + show: + title: Bu yetki kodunu kopyalayın ve uygulamaya yapıştırın. + authorized_applications: + buttons: + revoke: İptal + confirmations: + revoke: Emin misiniz? + index: + application: Uygulama + created_at: Yetkili + date_format: "%Y-%m-%d %H:%M:%S" + title: Yetkili uygulamalarınız + errors: + messages: + access_denied: Kaynak sahibi veya yetkilendirme sunucusu isteği reddetti. + credential_flow_not_configured: Kaynak Sahibi Şifresinin Bilgi akışı Doorkeeper.configure.resource_owner_from_credentials bilgilerinin yapılandırılmamış olması nedeniyle başarısız oldu. + invalid_client: İstemcinin kimlik doğrulaması bilinmeyen istemci, istemci kimlik doğrulamasının dahil olmaması veya desteklenmeyen kimlik doğrulama yöntemi nedeniyle başarısız oldu. + invalid_grant: Sağlanan yetkilendirme izni geçersiz, süresi dolmuş, iptal edilmiş, yetkilendirme isteğinde kullanılan yönlendirme URI'siyle eşleşmiyor veya başka bir müşteriye verilmiş. + invalid_redirect_uri: Dahil edilmiş yönlendirme Uri'si geçersiz. + invalid_request: İstekte gerekli bir parametre eksik, desteklenmeyen bir parametre değeri içeriyor veya başka türlü hatalı biçimlendirilmiş. + invalid_resource_owner: Sağlanan kaynak sahibi kimlik bilgileri geçerli değil veya kaynak sahibi bulunamıyor + invalid_scope: İstenen kapsam geçersiz, bilinmeyen veya hatalı biçimlendirilmiş olabilir. + invalid_token: + expired: Erişim belirtecinin süresi dolmuş + revoked: Erişim belirteci iptal edildi + unknown: Erişim belirteci geçersiz + resource_owner_authenticator_not_configured: Kaynak Sahibi yapılandırılmamış Doorkeeper.configure.resource_owner_authenticator nedeniyle başarısız oldu. + server_error: Yetkilendirme sunucusu, isteği yerine getirmesini engelleyen beklenmeyen bir koşulla karşılaştı. + temporarily_unavailable: Yetkilendirme sunucusu şu anda sunucunun geçici bir aşırı yüklenmesi veya bakımı nedeniyle isteği yerine getiremiyor. + unauthorized_client: İstemci bu yöntemi kullanarak bu isteği gerçekleştirmek için yetkili değil. + unsupported_grant_type: Yetkilendirme izni türü, yetkilendirme sunucusu tarafından desteklenmiyor. + unsupported_response_type: Yetkilendirme sunucusu bu yanıt türünü desteklemiyor. + layouts: + admin: + nav: + oauth2_provider: OAuth2 Sağlayıcısı + application: + title: OAuth yetkilendirme gerekli + scopes: + admin:read: sunucudaki tüm verileri oku + admin:read:accounts: tüm hesapların hassas bilgilerini oku + admin:read:reports: tüm raporların ve raporlanan hesapların hassas bilgilerini oku + read:accounts: hesap bilgilerini gör + read:favourites: favorilerini gör + read:follows: izlerini gör + write:accounts: profilini değiştir + write:favourites: favori durumlar + write:filters: filtre oluştur + write:follows: insanları takip et + write:lists: liste oluştur + write:media: medya dosyalarını yükle + write:mutes: insanları ve konuşmaları sustur + write:reports: diğer insanları bildir diff --git a/config/locales/el.yml b/config/locales/el.yml index af7d3cc9d8..43fec340a1 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -45,6 +45,8 @@ el: what_is_mastodon: Τι είναι το Mastodon; accounts: choices_html: 'Επιλογές από %{name}:' + endorsements_hint: Μπορεις να εγκρίνεις ανθρώπους που ακολουθείς μέσω της δικτυακής εφαρμογής και αυτοί θα εμφανίζονται εδώ. + featured_tags_hint: Μπορείς να επιλέξεις συγκεκριμένες ταμπέλες που θα εμφανίζονται εδώ. follow: Ακολούθησε followers: one: Ακόλουθος @@ -56,6 +58,7 @@ el: media: Πολυμέσα moved_html: 'Ο/Η %{name} μετακόμισε στο %{new_profile_link}:' network_hidden: Αυτή η πληροφορία δεν είναι διαθέσιμη + never_active: Ποτέ nothing_here: Δεν υπάρχει τίποτα εδώ! people_followed_by: Χρήστες που ακολουθεί ο/η %{name} people_who_follow: Χρήστες που ακολουθούν τον/την %{name} @@ -260,6 +263,8 @@ el: features: Λειτουργίες hidden_service: Ομοσπονδία με κρυμμένες υπηρεσίες open_reports: ανοιχτές καταγγελίες + pending_tags: ταμπέλες προς έγκριση + pending_users: χρήστες προς έγκριση recent_users: Πρόσφατοι χρήστες search: Αναζήτηση πλήρους κειμένου single_user_mode: Λειτουργία μοναδιαίου χρήστη @@ -282,6 +287,7 @@ el: created_msg: Ο αποκλεισμός τομέα είναι υπό επεξεργασία destroyed_msg: Ο αποκλεισμός τομέα άρθηκε domain: Τομέας + edit: Διαχείρηση αποκλεισμένου τομέα existing_domain_block_html: Έχεις ήδη επιβάλλει αυστηρότερους περιορισμούς στο %{name}, πρώτα θα πρέπει να τους αναιρέσεις. new: create: Δημιουργία αποκλεισμού @@ -292,6 +298,10 @@ el: silence: Σίγαση suspend: Αναστολή title: Αποκλεισμός νέου τομέα + private_comment: Ιδιωτικό σχόλιο + private_comment_hint: Σχόλιο για τον περιορισμό αυτού του τομέα για εσωτερική χρήση από τους διαχειριστές. + public_comment: Δημόσιο σχόλιο + public_comment_hint: Σχόλιο σχετικά με τον περιορισμό αυτού του τομέα προς το κοινό, αν η λειτουργία δημοσιοποίησης των περιορισμένων τομέων είναι ενεργοποιημένη. reject_media: Απόρριψη πολυμέσων reject_media_hint: Αφαιρεί τα τοπικά αποθηκευμένα αρχεία πολυμέσων και αποτρέπει τη λήψη άλλων στο μέλλον. Δεν έχει σημασία για τις αναστολές reject_reports: Απόρριψη καταγγελιών @@ -311,6 +321,7 @@ el: title: Αναίρεση αποκλεισμού για τον τομέα %{domain} undo: Αναίρεση undo: Αναίρεση + view: Εμφάνιση αποκλεισμού τομέα email_domain_blocks: add_new: Πρόσθεση νέου created_msg: Επιτυχής πρόσθεση email τομέα σε μαύρη λίστα @@ -334,6 +345,8 @@ el: all: Όλα limited: Περιορισμένα title: Διαμεσολάβηση + private_comment: Ιδιωτικό σχόλιο + public_comment: Δημόσιο σχόλιο title: Γνωστοί κόμβοι total_blocked_by_us: Μπλοκάρονται από εμάς total_followed_by_them: Ακολουθούνται από εκείνους @@ -411,6 +424,13 @@ el: custom_css: desc_html: Τροποποίηση της εμφάνισης μέσω CSS που φορτώνεται σε κάθε σελίδα title: Προσαρμοσμένο CSS + domain_blocks: + all: Για όλους + disabled: Για κανέναν + title: Εμφάνιση αποκλεισμένων τομέων + users: Προς συνδεδεμένους τοπικούς χρήστες + domain_blocks_rationale: + title: Εμφάνιση σκεπτικού hero: desc_html: Εμφανίζεται στην μπροστινή σελίδα. Συνίσταται τουλάχιστον 600x100px. Όταν λείπει, χρησιμοποιείται η μικρογραφία του κόμβου title: Εικόνα ήρωα @@ -480,6 +500,7 @@ el: delete: Διαγραφή nsfw_off: Σημείωσε ως μη ευαίσθητο nsfw_on: Σημείωσε ως ευαίσθητο + deleted: Διαγραμμένα failed_to_execute: Αποτυχία εκτέλεσης media: title: Πολυμέσα @@ -488,6 +509,9 @@ el: title: Καταστάσεις λογαριασμού with_media: Με πολυμέσα tags: + accounts_today: Μοναδικές χρήσεις ημέρας + accounts_week: Μοναδικές χρήσεις εβδομάδας + breakdown: Ανάλυση σημερινής χρήσης ανα πηγή context: Συνάφεια directory: Στον κατάλογο in_directory: "%{count} στον κατάλογο" @@ -496,6 +520,7 @@ el: title: Ταμπέλες trending_right_now: Δημοφιλείς αυτή τη στιγμή unique_uses_today: "%{count} σημερινές δημοσιεύσεις" + unreviewed: Εκκρεμεί έγκριση updated_msg: Οι ρυθμίσεις των ταμπελών ενημερώθηκαν επιτυχώς title: Διαχείριση warning_presets: @@ -544,6 +569,10 @@ el: checkbox_agreement_without_rules_html: Συμφωνώ με τους όρους χρήσης delete_account: Διαγραφή email delete_account_html: Αν θέλεις να διαγράψεις το λογαριασμό σου, μπορείς να συνεχίσεις εδώ. Θα σου ζητηθεί επιβεβαίωση. + description: + prefix_invited_by_user: Ο/Η @%{name} σε προσκαλεί να συνδεθείς με αυτό τον διακομιστή του Mastodon! + prefix_sign_up: Άνοιξε λογαριασμό στο Mastodon σήμερα! + suffix: Ανοίγοντας λογαριασμό θα μπορείς να ακολουθείς άλλους, να ανεβάζεις ενημερώσεις και να ανταλλάζεις μηνύματα με χρήστες σε οποιοδήποτε διακομιστή Mastodon, καθώς και άλλα! didnt_get_confirmation: Δεν έλαβες τις οδηγίες επιβεβαίωσης; forgot_password: Ξέχασες το συνθηματικό σου; invalid_reset_password_token: Το διακριτικό επαναφοράς συνθηματικού είναι άκυρο ή ληγμένο. Παρακαλώ αιτήσου νέο. @@ -599,24 +628,47 @@ el: deletes: bad_password_msg: Καλή προσπάθεια χάκερς! Λάθος συνθηματικό confirm_password: Γράψε το τρέχον συνθηματικό σου για να πιστοποιήσεις την ταυτότητά σου - description_html: Αυτό θα διαγράψει οριστικά και αμετάκλητα το περιεχόμενο του λογαριασμού σου και θα τον απενεργοποιήσει. Το όνομα χρήστη θα παραμείνει δεσμευμένο για να αποφευχθούν μελλοντικές πλαστοπροσωπίες. proceed: Διαγραφή λογαριασμού success_msg: Ο λογαριασμός σου διαγράφηκε με επιτυχία - warning_html: Μόνο η διαγραφή περιεχομένου από αυτό τον συγκεκριμένο κόμβο είναι εγγυημένη. Το περιεχόμενο που έχει διαμοιραστεί ευρέως είναι πιθανό να αφήσει ίχνη. Όσοι διακομιστές είναι εκτός σύνδεσης και όσοι έχουν διακόψει τη λήψη των ενημερώσεων του κόμβου σου, δε θα ενημερώσουν τις βάσεις δεδομένων τους. - warning_title: Διαθεσιμότητα ήδη διανεμημένου περιεχομένου + warning: + before: 'Πριν συνεχίσεις, παρακαλούμε να διαβάσεις τις παρακάτω σημειώσεις προσεκτικά:' + caches: Οποίο περιεχόμενο έχει αποθηκευτεί προσωρινά σε άλλους διακομιστές μπορεί να παραμείνει + data_removal: Οι δημοσιεύσεις σου και άλλα δεδομένα θα διαγραφούν οριστικά + email_change_html: Μπορείς να αλλάξεις τη διεύθυνση email σου Χωρίς να διαγράψεις το λογαριασμό σου + email_contact_html: Αν και πάλι δεν εμφανιστεί, μπορείς να στείλεις email προς %{email} για βοήθεια + email_reconfirmation_html: Αν δεν έχεις λάβει το email επιβεβαίωσης, μπορείς να το ζητήσεις ξανά + irreversible: Δεν θα μπορείς να ανακτήσεις ή ενεργοποιήσεις ξανά το λογαριασμό σου + more_details_html: Για περισσότερες πληροφορίες, δες την πολιτική απορρήτου. + username_available: Το όνομα χρήστη σου θα γίνει ξανά διαθέσιμο + username_unavailable: Το όνομα χρήστη σου θα παραμείνει μη διαθέσιμο directories: directory: Κατάλογος λογαριασμών - enabled: Περιλαμβάνεσαι στον κατάλογο. - enabled_but_waiting: Έχεις επιλέξει να εμφανίζεσαι στον κατάλογο μεν, αλλά ακόμα δεν έχεις τον ελάχιστο αριθμό ακόλουθων (%{min_followers}) που απαιτείται για να συμπεριληφθείς. explanation: Βρες χρήστες βάσει των ενδιαφερόντων τους explore_mastodon: Εξερεύνησε το %{title} - how_to_enable: Δεν έχεις επιλέξει να συμπεριληφθείς στον καταλογο. Μπορείς να επιλέξεις παρακάτω. Χρησιμοποίησε ταμπέλες στο κείμενο του βιογραφικού σου για να εμφανίζεσαι κάτω από συγκεκριμένες ταμπέλες! - people: - one: "%{count} άτομο" - other: "%{count} άτομα" + domain_blocks: + blocked_domains: Λίστα περιορισμένων και αποκλεισμένων τομέων + description: Αυτή είναι η λίστα των διακομιστών που ο %{instance} περιορίζει ή απορρίπτει τη σύνδεση μαζί τους. + domain: Τομέας + media_block: Αποκλεισμός πολυμέσων + no_domain_blocks: "(Χωρίς αποκλεισμό πολυμέσων)" + severity: Αυστηρότητα + severity_legend: + media_block: Τα αρχεία πολυμέσων από αυτό τον διακομιστή δεν ανακτώνται, δεν αποθηκεύονται και δεν προβάλλονται στο χρήστη. + silence: Οι λογαριασμοί από διακομιστές που έχουν αποσιωπηθεί μπορούν να βρεθούν, να ακολουθηθούν και να δεχτούν αλληλεπιδράσεις αλλά τα τουτ τους δε θα εμφανίζονται στις δημόσιες ροές και οι ειδοποιήσεις τους δε θα παραδίδονται στους τοπικούς χρήστες που δεν τους ακολουθούν. + suspension: Κανένα περιεχόμενο ανασταλμένων διακομιστών δεν αποθηκεύεται και δεν εμφανίζεται, ούτε αποστέλλεται σε αυτούς. Οι ενέργειες από τους ανασταλμένους διακομιστές αγνοούνται. + suspension_disclaimer: Οι ανασταλμενοι διακομιστές μπορεί περιστασιακά να ανακτήσουν δημόσιο περιεχόμενο από αυτό τον διακομιστή. + title: Αυστηρότητες + show_rationale: Εμφάνιση αιτιολογίας + silence: Αποσιώπηση + suspension: Αναστολή + title: "%{instance} Λίστα αποκλεισμένων κόμβων" + domain_validator: + invalid_domain: δεν είναι έγκυρο όνομα τομέα errors: + '400': Το αίτημα ήταν άκυρο ή με λάθος μορφή. '403': Δεν έχεις δικαίωμα πρόσβασης σε αυτή τη σελίδα. '404': Η σελίδα που ψάχνεις δεν υπάρχει. + '406': Η σελίδα αυτή δεν είναι διαθέσιμη στην αιτούμενη μορφή. '410': Η σελίδα που έψαχνες δεν υπάρχει πια εδώ. '422': content: Απέτυχε η επιβεβαίωση ασφαλείας. Μήπως μπλοκάρεις τα cookies; @@ -625,6 +677,7 @@ el: '500': content: Λυπούμαστε, κάτι πήγε στραβά από τη δική μας μεριά. title: Η σελίδα αυτή δεν είναι σωστή + '503': Η σελίδα δε μπόρεσε να εμφανιστεί λόγω προσωρινού σφάλματος του διακομιστή. noscript_html: Για να χρησιμοποιήσετε τη δικτυακή εφαρμογή του Mastodon, ενεργοποίησε την Javascript. Εναλλακτικά, δοκίμασε μια από τις εφαρμογές για το Mastodon στην πλατφόρμα σου. existing_username_validator: not_found: δεν βρέθηκε τοπικός χρήστης με αυτό το όνομα @@ -648,6 +701,7 @@ el: add_new: Προσθήκη νέας errors: limit: Έχεις ήδη προσθέσει το μέγιστο αριθμό ταμπελών + hint_html: "Τι είναι οι προβεβλημένες ταμπέλες; Προβάλλονται στο δημόσιο προφίλ σου επιτρέποντας σε όποιον το βλέπει να χαζέψει τις δημοσιεύσεις που τις χρησιμοποιούν. Είναι ωραίος τρόπος να παρακολουθείς κάποια δημιουργία ή ένα μακροπρόθεσμο έργο." filters: contexts: home: Αρχική ροή @@ -668,6 +722,7 @@ el: developers: Ανάπτυξη more: Περισσότερα… resources: Πόροι + trending_now: Τάσεις generic: all: Όλα changes_saved_msg: Οι αλλαγές αποθηκεύτηκαν! @@ -1069,7 +1124,9 @@ el: disable: Όσο ο λογαριασμός σου είναι παγωμένος, τα στοιχεία του παραμένουν άθικτα αλλά δεν μπορείς να κανείς καμία ενέργεια μέχρι να ξεκλειδωθείς. silence: Όσο ο λογαριασμός σου είναι περιορισμένος, μόνο όσοι σε ακολουθούν ήδη θα βλέπουν τα τουτ σου σε αυτό τον κόμβο ενώ μπορεί να εξαιρεθείς από διάφορες δημόσιες απαριθμήσεις. Πάντως, θα μπορούν να σε ακολουθήσουν χειροκίνητα. suspend: Ο λογαριασμός σου αναστάλθηκε μόνιμα, όλα τα τουτ και τα ανεβασμένα πολυμέσα σου διαγράφηκαν αμετάκλητα από αυτόν τον κόμβο και σε όσους άλλους είχες ακόλουθους. + get_in_touch: Μπορείς να απαντήσεις σε αυτό το email για να επικοινωνήσεις με το προσωπικό του %{instance}. review_server_policies: Αναθεώρηση πολιτικής του κόμβου + statuses: 'Συγκεκριμένα, για:' subject: disable: Ο λογαριασμός σου %{acct} έχει παγώσει none: Προειδοποίηση προς %{acct} diff --git a/config/locales/eo.yml b/config/locales/eo.yml index edab60586c..5785f9b20f 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -53,6 +53,7 @@ eo: media: Aŭdovidaĵoj moved_html: "%{name} moviĝis al %{new_profile_link}:" network_hidden: Tiu informo ne estas disponebla + never_active: Neniam nothing_here: Estas nenio ĉi tie! people_followed_by: Sekvatoj de %{name} people_who_follow: Sekvantoj de %{name} @@ -263,18 +264,22 @@ eo: space: Memorspaca uzado title: Kontrolpanelo total_users: uzantoj sume - trends: Furoroj + trends: Furoraĵoj week_interactions: interagoj tiusemajne week_users_active: aktivaj tiusemajne week_users_new: uzantoj tiusemajne whitelist_mode: En la blanka listo domain_allows: add_new: En la blanka listo domajno + created_msg: Domajno sukcese blanklistigita + destroyed_msg: Domajno estis forigita de la blanklisto + undo: Forigi de la blanklisto domain_blocks: add_new: Aldoni novan created_msg: Domajna blokado en traktado destroyed_msg: Domajna blokado malfarita domain: Domajno + edit: Redakti domajna blokado existing_domain_block_html: Vi jam trudis pli striktajn limojn al %{name}, vi devas malbloki ĝin unue. new: create: Krei blokadon @@ -306,6 +311,7 @@ eo: title: Malfari domajnan blokadon por %{domain} undo: Malfari undo: Malfari + view: Vidi domajna blokado email_domain_blocks: add_new: Aldoni novan created_msg: Retadreso sukcese aldonita al la nigra listo @@ -408,6 +414,11 @@ eo: custom_css: desc_html: Ŝanĝi la aspekton per CSS ŝargita en ĉiu pago title: Propra CSS + domain_blocks: + all: Al ciuj + disabled: Al neniu + title: Vidi domajna blokado + users: Al ensalutintaj lokaj uzantoj hero: desc_html: Montrata en la ĉefpaĝo. Almenaŭ 600x100px rekomendita. Kiam ne agordita, la bildeto de la servilo estos uzata title: Kapbildo @@ -467,12 +478,16 @@ eo: desc_html: Montri publikan templinion en komenca paĝo title: Tempolinia antaŭvido title: Retejaj agordoj + trends: + desc_html: Publike montri antaŭe kontrolitajn kradvortojn, kiuj nune furoras + title: Furoraj kradvortoj statuses: back_to_account: Reveni al konta paĝo batch: delete: Forigi nsfw_off: Marki ne tikla nsfw_on: Marki tikla + deleted: Forigita failed_to_execute: Ekigo malsukcesa media: title: Aŭdovidaĵoj @@ -483,9 +498,11 @@ eo: tags: context: Kunteksto directory: En la adresaro + in_directory: "%{count} en adresaro" review: La statuso de la recenzo reviewed: Recenzis title: Kradvortoj + trending_right_now: Nunaj furoraĵoj unreviewed: Ne recenzis title: Administrado warning_presets: @@ -502,10 +519,13 @@ eo: body: "%{reporter} signalis %{target}" body_remote: Iu de %{domain} signalis %{target} subject: Nova signalo por %{instance} (#%{id}) + new_trending_tag: + body: 'La kradvorto #%{name} furoras hodiaŭ, sed ankoraŭ ne estis kontrolita. Ĝi ne aperos publike sen via aprobo. Se vi ne volas tion, simple konservu la formularon tiel kiel.' + subject: Nova kradvorto kontrolebla en %{instance} (#%{name}) appearance: advanced_web_interface: Altnivela retpaĝa interfaco animations_and_accessibility: Animacioj kaj alirebleco - confirmation_dialogs: Konfirmaj dialogoj + confirmation_dialogs: Konfirmaj fenestroj sensitive_content: Tikla enhavo application_mailer: notification_preferences: Ŝanĝi retmesaĝajn preferojn @@ -579,24 +599,23 @@ eo: deletes: bad_password_msg: Malĝusta pasvorto confirm_password: Enmetu vian nunan pasvorton por konfirmi vian identecon - description_html: Tio porĉiame kaj neŝanĝeble forigos la enhavon de via konto kaj malaktivigos ĝin. Via uzantnomo restos rezervita por eviti postajn trompojn pri identeco. proceed: Forigi konton success_msg: Via konto estis sukcese forigita - warning_html: La forigo de la enhavo estas certa nur por ĉi tiu aparta servilo. Enhavo, kiu estis disvastigita verŝajne lasos spurojn. Eksterretaj serviloj kaj serviloj, kiuj ne abonas viajn ĝisdatigojn ne ĝisdatigos siajn datumbazojn. - warning_title: Disponebleco de disvastigita enhavo directories: directory: Profilujo - enabled: Vi estas listigata en la profilujo. - enabled_but_waiting: Vi elektis esti listigata en la profilujo, sed vi ankoraŭ ne havas la minimuman kvanton da sekvantoj (%{min_followers}) por esti listigata. explanation: Malkovru uzantojn per iliaj interesoj explore_mastodon: Esplori %{title} - how_to_enable: Vi ankoraŭ ne donis permeson listigi vin en la profilujo. Vi povas doni permeson ĉi-sube. Uzu kradvortojn en via biografia teksto por esti listigata sub specifaj kradvortoj! - people: - one: "%{count} persono" - other: "%{count} personoj" + domain_blocks: + domain: Domajno + no_domain_blocks: "(Nenio domajna blokado)" + silence: Silenta + domain_validator: + invalid_domain: ne estas valida domajna nomo errors: + '400': The request you submitted was invalid or malformed. '403': Vi ne havas la rajton por vidi ĉi tiun paĝon. '404': La paĝo ke kiun vi serĉas ne ekzistas ĉi tie. + '406': This page is not available in the requested format. '410': La paĝo, kiun vi serĉas, ne plu ekzistas ĉi tie. '422': content: Sekureca konfirmo malsukcesa. Ĉu vi blokas kuketojn? @@ -605,6 +624,7 @@ eo: '500': content: Ni bedaŭras, io malsukcesis niaflanke. title: Ĉi tiu paĝo ne estas ĝusta + '503': The page could not be served due to a temporary server failure. noscript_html: |- Por uzi la retan aplikaĵon de Mastodon, bonvolu ebligi JavaScript. Alimaniere, provu unu el la operaciumaj aplikaĵoj por Mastodon por via platformo. @@ -650,6 +670,7 @@ eo: developers: Programistoj more: Pli… resources: Rimedoj + trending_now: Nunaj furoraĵoj generic: all: Ĉio changes_saved_msg: Ŝanĝoj sukcese konservitaj! @@ -967,6 +988,7 @@ eo: silence: Dum via konto estas limigita, nur tiuj, kiuj jam sekvas vin, vidos viajn mesaĝojn en ĉi tiu servilo, kaj vi povus esti ekskludita de diversaj publikaj listoj. Tamen, aliaj ankoraŭ povas mane sekvi vin. suspend: Via konto estis haltigita, kaj ĉiuj el viaj mesaĝoj kaj alŝutitaj aŭdovidaj dosieroj estis nemalfareble forigitaj de ĉi tiu servilo, kaj de la serviloj, kie vi havis sekvantojn. review_server_policies: Superrigardi servilajn politikojn + statuses: 'Specife, per:' subject: disable: Via konto %{acct} estas frostigita none: Averto por %{acct} diff --git a/config/locales/es.yml b/config/locales/es.yml index 2d3e321e4e..184f0da0e5 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -611,26 +611,19 @@ es: deletes: bad_password_msg: "¡Buen intento, hackers! Contraseña incorrecta" confirm_password: Ingresa tu contraseña actual para demostrar tu identidad - description_html: Esto removerá el contenido de tu cuenta y la desactivará permanente e irrevesiblemente. Tu nombre de usuario quedará reservado para prevenir futuros robos de identidad. proceed: Eliminar cuenta success_msg: Tu cuenta se eliminó con éxito - warning_html: Se garantiza únicamente la eliminación del contenido de esta instancia. El contenido que se haya compartido extensamente dejará sus huellas. Los servidores fuera de línea y los que se hayan desuscrito de tus actualizaciones ya no actualizarán sus bases de datos. - warning_title: Disponibilidad diseminada del contenido directories: directory: Directorio de perfiles - enabled: Actualmente está listado en el directorio. - enabled_but_waiting: Ha optado por ser listado en el directorio, pero aún no cumple con el número mínimo de seguidores (%{min_followers}) para ser listado. explanation: Descubre usuarios según sus intereses explore_mastodon: Explorar %{title} - how_to_enable: Usted no está registrado por el directorio. Puede registrar por abajo. ¡Utilice hashtags en su bio para aparecer bajo hashtags específicos! - people: - one: "%{count} persona" - other: "%{count} personas" domain_validator: invalid_domain: no es un nombre de dominio válido errors: + '400': The request you submitted was invalid or malformed. '403': No tienes permiso para acceder a esta página. '404': La página que estabas buscando no existe. + '406': This page is not available in the requested format. '410': La página que estabas buscando no existe más. '422': content: Verificación de seguridad fallida. ¿Estás bloqueando algunas cookies? @@ -639,6 +632,7 @@ es: '500': content: Lo sentimos, algo ha funcionado mal por nuestra parte. title: Esta página no es correcta + '503': The page could not be served due to a temporary server failure. noscript_html: Para usar la aplicación web de Mastodon, por favor activa Javascript. Alternativamente, prueba alguna de las aplicaciones nativas para Mastodon para tu plataforma. existing_username_validator: not_found: no pudo encontrar un usuario local con ese nombre de usuario diff --git a/config/locales/et.yml b/config/locales/et.yml index fdb7432737..d02eb24bab 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -587,24 +587,17 @@ et: deletes: bad_password_msg: Hea proov, häkkerid! Vale salasõna confirm_password: Sisesta oma praegune salasõna, et kinnitada oma identiteet - description_html: Seda tehes kustutatakse igaveseks ja taastamatult kogu konto andmed ja sisselogimine keelatakse. Sinu kasutajanimi jääb reserveerituks, et vältida tulevikus kehastamist. proceed: Kustuta konto success_msg: Konto kustutamine õnnestus - warning_html: Ainult sellel serveril oleva sisu kustutamine on garanteeritud. Sisu, mis on laialdaselt jagatud, jätab tõenäoliselt jälgi. Serverid, mis on välja lülitatud, ning serverid, mis on sinu uuendustest loobunud, ei uuenda oma andmebaase. - warning_title: Levitatud sisu kättesaadavus directories: directory: Profiilikataloog - enabled: Te olete praegu nimekirjastatud kataloogis. - enabled_but_waiting: Te olete ennast lubanud kataloogi kanda, kuid teil ei ole miinimum kohustuslik jälgijate arv (%{min_followers}), et teid nimekirjastada. explanation: Avasta kasutajaid nende huvide põhjal explore_mastodon: Avasta %{title} - how_to_enable: Te ei ole hetkel kataloogis. Te saate end lisada allpool. Kasutage silte oma eluloos, et saaksite ilmuda kindlate siltide all! - people: - one: "%{count} inimene" - other: "%{count} inimest" errors: + '400': The request you submitted was invalid or malformed. '403': Sul puudub õigus seda lehte vaadata. '404': Soovitud lehte ei leitud. + '406': This page is not available in the requested format. '410': Soovitud lehekülge pole enam siin. '422': content: Turvalisuse kontroll ebaõnnestus. Kas Te blokeerite küpsiseid? @@ -613,6 +606,7 @@ et: '500': content: Palume vabandust, midagi läks valesti meie pool. title: See lehekülg pole õige + '503': The page could not be served due to a temporary server failure. noscript_html: Et kasutada Mastodoni veebirakendust, palun lubage JavaScript. Alternatiivselt, proovige mõnda rakendust Teie platvormile. existing_username_validator: not_found: ei suutnud leida kohalikku kasutajat selle kasutajanimega diff --git a/config/locales/eu.yml b/config/locales/eu.yml index 8000f931e8..56271f3c39 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -56,6 +56,7 @@ eu: media: Multimedia moved_html: "%{name} hona lekualdatu da %{new_profile_link}:" network_hidden: Informazio hau ez dago eskuragarri + never_active: Inoiz ez nothing_here: Ez dago ezer hemen! people_followed_by: "%{name}(e)k jarraitzen dituenak" people_who_follow: "%{name} jarraitzen dutenak" @@ -421,6 +422,9 @@ eu: custom_css: desc_html: Aldatu itxura orri bakoitzean kargatutako CSS bidez title: CSS pertsonala + domain_blocks: + all: Guztiei + disabled: Inori ez hero: desc_html: Azaleko orrian bistaratua. Gutxienez 600x100px aholkatzen da. Ezartzen ez bada, zerbitzariaren irudia hartuko du title: Azaleko irudia @@ -489,6 +493,7 @@ eu: delete: Ezabatu nsfw_off: Markatu ez hunkigarri gisa nsfw_on: Markatu hunkigarri gisa + deleted: Ezabatuta failed_to_execute: Ezin izan da burutu media: title: Multimedia @@ -608,26 +613,23 @@ eu: deletes: bad_password_msg: Saiakera ona hacker! Pasahitz okerra confirm_password: Sartu zure oraingo pasahitza zure identitatea baieztatzeko - description_html: Honek behin betirako eta atzera egiteko aukera gabe zure kontuko edukia kendu eta hau desaktibatuko du. Zure erabiltzaile-izena erreserbatuko da etorkizunean inork zure itxurak ez egiteko. proceed: Ezabatu kontua success_msg: Zure kontua ongi ezabatu da - warning_html: Zerbitzari honetako edukiak ezabatzea besterik ezin da bermatu. Asko partekatu den edukiaren arrastoak geratzea izan liteke. Deskonektatuta dauden zerbitzariak edo zure eguneraketetatik harpidetza kendu duten zerbitzariek ez dituzte beraien datu-baseak eguneratuko. - warning_title: Sakabanatutako edukiaren eskuragarritasuna directories: directory: Profilen direktorioa - enabled: Direktorioan zerrendatuta zaude orain. - enabled_but_waiting: Direktorioan zerrendatuta izatea aukeratu duzu, baina ez duzu oraindik gutxieneko jarraitzaile kopurua (%{min_followers}) zerrendan agertzeko. explanation: Deskubritu erabiltzaileak interesen arabera explore_mastodon: Esploratu %{title} - how_to_enable: Ez duzu aukeratu direktorioan zerrendatua izatea aukeratu. Behean aukeratu dezakezu. Erabili traolak zure biografiaren testuan traola zehatzetan agertzeko! - people: - one: pertsona %{count} - other: "%{count} pertsona" + domain_blocks: + domain: Domeinua + severity: Larritasuna + silence: Isilarazi domain_validator: invalid_domain: ez da domeinu izen baliogarria errors: + '400': The request you submitted was invalid or malformed. '403': Ez duzu orri hau ikusteko baimenik. '404': Bilatu duzun orria ez dago hemen. + '406': This page is not available in the requested format. '410': Bilatu duzun orria ez dago hemen jada. '422': content: Segurtasun egiaztaketak huts egin du. Cookie-ak blokeatzen dituzu? @@ -636,6 +638,7 @@ eu: '500': content: Sentitzen dugu, zerbait okerra gertatu da gure aldean. title: Orri hau ez da zuzena + '503': The page could not be served due to a temporary server failure. 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 @@ -679,6 +682,7 @@ eu: developers: Garatzaileak more: Gehiago… resources: Baliabideak + trending_now: Joera orain generic: all: Denak changes_saved_msg: Aldaketak ongi gorde dira! diff --git a/config/locales/fa.yml b/config/locales/fa.yml index 8a58ad6860..0b4d046f33 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -45,6 +45,8 @@ fa: what_is_mastodon: ماستدون چیست؟ accounts: choices_html: 'انتخاب‌های %{name}:' + endorsements_hint: شما می‌توانید از محیط وب ماستدون، کسانی را که پی می‌گیرید به دیگران هم پیشنهاد دهید تا این‌جا نشان داده شوند. + featured_tags_hint: شما می‌توانید برچسب‌های دلخواه خود را پیشنهاد دهید که این‌جا نمایش خواهند یافت. follow: پی بگیرید followers: one: پیگیر @@ -186,6 +188,7 @@ fa: username: نام کاربری warn: هشدار web: وب + whitelisted: فهرست مجاز action_logs: actions: assigned_to_self_report: "%{name} رسیدگی به گزارش %{target} را به عهده گرفت" @@ -258,6 +261,8 @@ fa: features: ویژگی‌ها hidden_service: ارتباط میان‌سروری با سرویس‌های نهفته open_reports: گزارش‌های فعال + pending_tags: برچسب منتظر بازبینی + pending_users: کاربران منتظر بازبینی recent_users: کاربران تازه search: جستجوی متنی single_user_mode: حالت تک‌کاربره @@ -265,15 +270,22 @@ fa: space: فضای مصرف‌شده title: ابزارهای مدیریت total_users: شمار کاربران - trends: هشتگ‌های پرکاربرد + trends: برچسب‌های پرکاربرد week_interactions: فعالیت‌ها در این هفته week_users_active: کاربران فعال هفتهٔ اخیر week_users_new: کاربران هفتهٔ اخیر + whitelist_mode: حالت فهرست مجاز + domain_allows: + add_new: دامین مجازشده + created_msg: این دامین با موفقیت مجاز شد + destroyed_msg: دامین از حالت مجاز خارج شد + undo: برداشتن از فهرست مجازها domain_blocks: add_new: افزودن مسدودسازی دامین تازه created_msg: مسدودکردن دامین در حال انجام است destroyed_msg: مسدودکردن دامین واگردانده شد domain: دامین + edit: ویرایش مسدودسازی دامین existing_domain_block_html: شما پیش‌تر محدودیت‌های سخت‌تری روی %{name} اعمال کرده‌اید، و باید نخست مسدودسازی را لغو کنید. new: create: مسدودسازی @@ -284,6 +296,10 @@ fa: silence: بی‌صداکردن suspend: معلق‌کردن title: مسدودسازی دامین دیگر + private_comment: یادداشت خصوصی + private_comment_hint: یادداشتی دربارهٔ محدودیت روی این دامین برای سایر ناظمان. + public_comment: یادداشت عمومی + public_comment_hint: یادداشتی دربارهٔ محدودیت روی این دامین برای عموم، در صورتی که فهرست دامین‌های محدود شده منتشر شود. reject_media: نپذیرفتن پرونده‌های تصویری reject_media_hint: تصویرهای ذخیره‌شده در این‌جا را پاک می‌کند و جلوی دریافت تصویرها را در آینده می‌گیرد. بی‌تأثیر برای معلق‌شده‌ها reject_reports: نپذیرفتن گزارش‌ها @@ -303,6 +319,7 @@ fa: title: واگردانی مسدودسازی دامنه برای %{domain} undo: واگردانی undo: واگردانی مسدودسازی دامین + view: دیدن مسدودسازی دامنه email_domain_blocks: add_new: افزودن تازه created_msg: مسدودسازی دامین ایمیل با موفقیت ساخته شد @@ -326,6 +343,8 @@ fa: all: همه limited: محدود title: مدیریت + private_comment: یادداشت خصوصی + public_comment: یادداشت عمومی title: ارتباط میان‌سروری total_blocked_by_us: مسدودشده از طرف ما total_followed_by_them: ما را پی می‌گیرند @@ -403,6 +422,13 @@ fa: custom_css: desc_html: ظاهر ماستدون را با CSS-ای که در همهٔ صفحه‌ها جاسازی می‌شود تغییر دهید title: سبک CSS سفارشی + domain_blocks: + all: برای همه + disabled: برای هیچ‌کدام + title: نمایش دامین‌های مسدودشده + users: برای کاربران محلی واردشده + domain_blocks_rationale: + title: دیدن دلیل hero: desc_html: در صفحهٔ آغازین نمایش می‌یابد. دست‌کم ۶۰۰×۱۰۰ پیکسل توصیه می‌شود. اگر تعیین نشود، با تصویر بندانگشتی سرور جایگزین خواهد شد title: تصویر سربرگ @@ -463,12 +489,16 @@ fa: desc_html: نوشته‌های عمومی این سرور را در صفحهٔ آغازین نشان دهید title: پیش‌نمایش نوشته‌ها title: تنظیمات سایت + trends: + desc_html: برچسب‌های عمومی که پیش‌تر بازبینی شده‌اند و هم‌اینک پرطرفدارند + title: برچسب‌های پرطرفدار statuses: back_to_account: بازگشت به صفحهٔ حساب batch: delete: پاک‌کردن nsfw_off: علامت‌زدن به عنوان غیرحساس nsfw_on: علامت‌زدن به عنوان حساس + deleted: پاک‌شده failed_to_execute: اجرا نشد media: title: رسانه @@ -477,7 +507,19 @@ fa: title: نوشته‌های حساب with_media: دارای عکس یا ویدیو tags: + accounts_today: کاربرد یکتا در امروز + accounts_week: کاربرد یکتا در این هفته + breakdown: کاربردهای امروز به تفکیک منبع + context: زمینه + directory: در فهرست + in_directory: "%{count} در فهرست" + review: وضعیت بازبینی + reviewed: بازبینی شده title: برچسب‌ها + trending_right_now: پرطرفدارهای کنونی + unique_uses_today: "%{count} امروز منتشر شده" + unreviewed: بازبینی نشده + updated_msg: تنظیمات برچسب‌ها با موفقیت به‌روز شد title: مدیریت سرور warning_presets: add_new: افزودن تازه @@ -493,11 +535,15 @@ fa: body: کاربر %{reporter} کاربر %{target} را گزارش داد body_remote: کسی از %{domain} گزارش %{target} را فرستاده subject: گزارش تازه‌ای برای %{instance} (#%{id}) + new_trending_tag: + body: 'برچسب #%{name} امروز پرطرفدار است، ولی تا حالا بازبینی نشده. تا وقتی که شما اجازه نداده‌اید، این برچسب به طور عمومی نمایش داده نخواهد شد. اگر فرم را به شکل فعلی ذخیره کنید، هیچ وقت چیزی دربارهٔ این برچسب نخواهید دید.' + subject: برچسب تازه‌ای در %{instance} نیازمند بررسی است (#%{name}) appearance: advanced_web_interface: رابط کاربری پیشرفته advanced_web_interface_hint: 'اگر می‌خواهید همهٔ فضای نمایشگر خود را به کار ببرید، می‌توانید به کمک رابط کاربری پیشرفته ستون‌های گوناگونی داشته باشید تا در یک نگاه همهٔ اطلاعاتی را که می‌خواهید ببینید: نوشته‌های دیگران، اعلان‌ها، فهرست نوشته‌های همه‌جا، و هر تعداد فهرست و برچسب که بخواهید.' animations_and_accessibility: پویانمایی‌های و دسترسی‌پذیری confirmation_dialogs: پیغام‌های تأیید + discovery: کاوش sensitive_content: محتوای حساس application_mailer: notification_preferences: تغییر ترجیحات ایمیل @@ -518,6 +564,7 @@ fa: apply_for_account: درخواست دعوت‌نامه change_password: رمز checkbox_agreement_html: من قانون‌های این سرور و شرایط کاربری را می‌پذیرم + checkbox_agreement_without_rules_html: من با شرایط استفاده موافقم delete_account: پاک‌کردن حساب delete_account_html: اگر می‌خواهید حساب خود را پاک کنید، از این‌جا پیش بروید. از شما درخواست تأیید خواهد شد. didnt_get_confirmation: راهنمایی برای تأیید را دریافت نکردید؟ @@ -537,6 +584,15 @@ fa: reset_password: بازنشانی رمز security: امنیت set_new_password: تعیین رمز تازه + setup: + email_below_hint_html: اگر نشانی ایمیل زیر نادرست است، می‌توانید آن را تغییر دهید و ایمیل تأیید دوباره‌ای دریافت کنید. + email_settings_hint_html: ایمیل تأیید به %{email} فرستاده شد. اگر این نشانی ایمیل درست نیست، می‌توانید از تنظیمات حساب آن را تغییر دهید. + title: راه اندازی + status: + account_status: وضعیت حساب + confirming: در حال انتظار برای کامل شدن تأیید ایمیل. + functional: حساب شما قابل استفاده است. + pending: درخواست شما منتظر تأیید مسئولان سایت است و این فرایند ممکن است کمی طول بکشد. اگر درخواست شما پذیرفته شود به شما ایمیلی فرستاده خواهد شد. trouble_logging_in: برای ورود مشکلی دارید؟ authorize_follow: already_following: شما همین الان هم این حساب را پی‌می‌گیرید @@ -566,24 +622,19 @@ fa: deletes: bad_password_msg: هکر گرامی، رمزی که وارد کردید اشتباه است ؛) confirm_password: رمز فعلی خود را وارد کنید تا معلوم شود که خود شمایید - description_html: این کار همهٔ محتوای حساب شما را برای همیشه و به‌طور بازگشت‌ناپذیری پاک کرده و حساب را غیرفعال می‌کند. نام کاربری شما برای جلوگیری از جعل هویت احتمالی در آینده از دسترس خارج خواهد شد. proceed: پاک‌کردن حساب success_msg: حساب شما با موفقیت پاک شد - warning_html: تنها پاک‌شدن محتوای حساب در این سرور خاص تضمین می‌شود. محتوایی که به گستردگی هم‌رسانی شده باشد ممکن است ردش همچنان باقی بماند. سرورهای آفلاین یا سرورهایی که دیگر مشترک شما نیستند پایگاه‌های دادهٔ خود را به‌روز نخواهند کرد. - warning_title: دسترس‌پذیری محتوای هم‌رسان‌شده directories: directory: فهرست گزیدهٔ کاربران - enabled: شما هم‌اینک در فهرست گزیدهٔ کاربران نمایش می‌یابید. - enabled_but_waiting: شما می‌خواهید در فهرست گزیدهٔ کاربران این سرور باشید، ولی تعداد پیگیران شما هنوز به مقدار لازم (%{min_followers}) نرسیده است. explanation: کاربران این سرور را بر اساس علاقه‌مندی‌هایشان پیدا کنید explore_mastodon: گشت و گذار در %{title} - how_to_enable: شما هنوز در فهرست گزیدهٔ کاربران این سرور نشان داده نمی‌شوید. این‌جا می‌توانید انتخابش کنید. اگر در بخش معرفی خود در نمایه‌تان برچسب (هشتگ) داشته باشد، نام شما هم برای آن هشتگ‌ها فهرست می‌شود! - people: - one: "%{count} نفر" - other: "%{count} نفر" + domain_blocks: + blocked_domains: فهرست دامین‌های محدود یا مسدود errors: + '400': The request you submitted was invalid or malformed. '403': شما اجازهٔ دیدن این صفحه را ندارید. '404': صفحه‌ای که به دنبالش هستید این‌جا نیست. + '406': This page is not available in the requested format. '410': صفحه‌ای که به دنبالش بودید دیگر این‌جا وجود ندارد. '422': content: تأیید امنیتی انجام نشد. آیا مرورگر شما کوکی‌ها را مسدود می‌کند؟ @@ -592,6 +643,7 @@ fa: '500': content: شرمنده، یک چیزی از سمت ما اشتباه شده. title: این صفحه درست نیست + '503': The page could not be served due to a temporary server failure. noscript_html: برای استفاده از نسخهٔ تحت وب ماستدون، لطفاً جاوااسکریپت را فعال کنید. یا به جایش می‌توانید یک اپ ماستدون را به‌کار ببرید. existing_username_validator: not_found: کاربری در این سرور با این نام کاربری پیدا نشد @@ -1050,7 +1102,7 @@ fa: edit_profile_step: 'شما می‌توانید نمایهٔ خود را به دلخواه خود تغییر دهید: می‌توانید تصویر نمایه، تصویر پس‌زمینه، نام، و چیزهای دیگری را تعیین کنید. اگر بخواهید، می‌توانید حساب خود را خصوصی کنید تا فقط کسانی که شما اجازه می‌دهید بتوانند پیگیر حساب شما شوند.' explanation: نکته‌هایی که برای آغاز کار به شما کمک می‌کنند final_action: چیزی منتشر کنید - final_step: 'چیزی بنویسید! حتی اگر الان کسی پیگیر شما نباشد، دیگران نوشته‌های عمومی شما را می‌بینند، مثلاً در فهرست نوشته‌های محلی و در هشتگ‌ها. شاید بخواهید با هشتگ #آشنایی خودتان را معرفی کنید.' + final_step: 'چیزی بنویسید! حتی اگر الان کسی پیگیر شما نباشد، دیگران نوشته‌های عمومی شما را می‌بینند، مثلاً در فهرست نوشته‌های محلی و در برچسب (هشتگ)ها. شاید بخواهید با برچسب #معرفی خودتان را معرفی کنید.' full_handle: نام کاربری کامل شما full_handle_hint: این چیزی است که باید به دوستان خود بگویید تا بتوانند به شما پیغام بفرستند یا از سرورهای دیگر پیگیر شما شوند. review_preferences_action: تغییر ترجیحات diff --git a/config/locales/fi.yml b/config/locales/fi.yml index beecdecb0a..5a3a8ad600 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -395,14 +395,13 @@ fi: deletes: bad_password_msg: Hyvä yritys, hakkerit! Väärä salasana confirm_password: Tunnistaudu syöttämällä nykyinen salasanasi - description_html: Tämä poistaa pysyvästi ja peruuttamattomasti kaiken tilisi sisällön ja poistaa tilin käytöstä. Käyttäjänimesi pysyy varattuna, jotta identiteettiäsi ei myöhemmin varasteta. proceed: Poista tili success_msg: Tilin poisto onnistui - warning_html: Sisällön poistaminen taataan vain tämän instanssin osalta. Jos sisältöä on jaettu paljon, siitä todennäköisesti jää jälkiä. Palvelimet, joihin ei saada yhteyttä tai jotka ovat lopettaneet päivitystesi tilaamisen, eivät päivitä tietokantojaan. - warning_title: Sisällön saatavuustieto levitetty errors: + '400': The request you submitted was invalid or malformed. '403': Sinulla ei ole lupaa nähdä tätä sivua. '404': Etsimääsi sivua ei ole olemassa. + '406': This page is not available in the requested format. '410': Etsimääsi sivua ei ole enää olemassa. '422': content: Turvallisuusvahvistus epäonnistui. Oletko estänyt evästeet? @@ -411,6 +410,7 @@ fi: '500': content: Valitettavasti jokin meni pieleen meidän päässämme. title: Sivu ei ole oikein + '503': The page could not be served due to a temporary server failure. noscript_html: Mastodon-selainsovelluksen käyttöön vaaditaan JavaScript. Voit vaihtoehtoisesti kokeilla jotakin omalle käyttöjärjestelmällesi tehtyä Mastodonsovellusta. exports: archive_takeout: diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 277d2f10ad..58b1607516 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -2,7 +2,7 @@ fr: about: about_hashtag_html: Figurent ci-dessous les pouets tagués avec #%{hashtag}. Vous pouvez interagir avec eux si vous avez un compte n’importe où dans le Fediverse. - about_mastodon_html: Mastodon est un réseau social utilisant des formats ouverts et des logiciels libres. Comme le courriel, il est décentralisé. + about_mastodon_html: Mastodon est un réseau social utilisant des protocoles Web ouverts et des logiciels libres. Tout comme le courriel, il est décentralisé. about_this: À propos active_count_after: actif·ve·s active_footnote: Utilisateur·rice·s actif·ve·s mensuels (MAU) @@ -24,6 +24,9 @@ fr: generic_description: "%{domain} est seulement un serveur du réseau" get_apps: Essayez une application mobile hosted_on: Serveur Mastodon hébergée par %{domain} + instance_actor_flash: | + Ce compte est un acteur virtuel utilisé pour représenter le serveur lui-même et non un utilisateur individuel. + Il est utilisé à des fins de fédération et ne doit pas être bloqué à moins que vous ne vouliez bloquer l’instance entière, dans ce cas vous devriez utiliser un bloqueur de domaine. learn_more: En savoir plus privacy_policy: Politique de vie privée see_whats_happening: Voir ce qui se passe @@ -42,6 +45,8 @@ fr: what_is_mastodon: Qu’est-ce que Mastodon ? accounts: choices_html: "%{name} recommande :" + endorsements_hint: Vous pouvez soutenir les personnes que vous suivez depuis l’interface web, et elles apparaîtront ici. + featured_tags_hint: Vous pouvez mettre en avant des hashtags spécifiques qui seront affichés ici. follow: Suivre followers: one: Abonné·e @@ -53,6 +58,7 @@ fr: media: Médias moved_html: "%{name} a changé de compte pour %{new_profile_link} :" network_hidden: Cette information n’est pas disponible + never_active: Jamais nothing_here: Rien à voir ici ! people_followed_by: Personnes suivies par %{name} people_who_follow: Personnes qui suivent %{name} @@ -244,6 +250,7 @@ fr: updated_msg: Émoji mis à jour avec succès ! upload: Téléverser dashboard: + authorized_fetch_mode: Mode de récupération autorisé backlog: tâches en attente config: Configuration feature_deletions: Suppressions de comptes @@ -273,11 +280,14 @@ fr: domain_allows: add_new: Mettre le domaine sur liste sur blanche created_msg: Ce domaine a été ajouté à la liste blanche avec succès + destroyed_msg: Le domaine a été supprimé de la liste blanche + undo: Supprimer de la liste blanche domain_blocks: add_new: Ajouter un nouveau bloqueur de domaine created_msg: Le blocage de domaine est désormais activé destroyed_msg: Le blocage de domaine a été désactivé domain: Domaine + edit: Modifier le bloqueur de domaine existing_domain_block_html: Vous avez déjà imposé des limites plus strictes à %{name}, vous devez d’abord le débloquer. new: create: Créer le blocage @@ -288,6 +298,10 @@ fr: silence: Masqué suspend: Suspendre title: Nouveau blocage de domaine + private_comment: Commentaire privé + private_comment_hint: Commenter sur cette limitation de domaine pour informer les modérateurs internes. + public_comment: Commentaire public + public_comment_hint: Commentaire sur cette limitation de domaine pour le grand public, si la visibilité publique de la liste des limitations de domaine est activée. reject_media: Fichiers média rejetés reject_media_hint: Supprime localement les fichiers média stockés et refuse d’en télécharger ultérieurement. Ne concerne pas les suspensions reject_reports: Rejeter les signalements @@ -307,6 +321,7 @@ fr: title: Annuler le blocage de domaine pour %{domain} undo: Annuler undo: Annuler le bloqueur de domaine + view: Afficher les bloqueurs de domaines email_domain_blocks: add_new: Ajouter created_msg: Le blocage de domaine de courriel est désormais activé @@ -409,6 +424,13 @@ fr: custom_css: desc_html: Modifier l’apparence avec une CSS chargée sur chaque page title: CSS personnalisé + domain_blocks: + all: À tout le monde + disabled: À personne + title: Afficher les bloqueurs de domaines + users: Pour les utilisateurs locaux connectés + domain_blocks_rationale: + title: Voir le raisonnement hero: desc_html: Affichée sur la page d’accueil. Au moins 600x100px recommandé. Lorsqu’elle n’est pas définie, se rabat sur la vignette du serveur title: Image d’en-tête @@ -459,6 +481,9 @@ fr: desc_html: Affichée sur la page des conditions d’utilisation du site
Vous pouvez utiliser des balises HTML title: Politique de confidentialité site_title: Nom du serveur + spam_check_enabled: + desc_html: Mastodon peut auto-silencer et signaler des comptes qui envoient des messages répétés non sollicités. Il peut y avoir de faux positifs. + title: Automatisation anti-spam thumbnail: desc_html: Utilisée pour les prévisualisations via OpenGraph et l’API. 1200x630px recommandé title: Vignette du serveur @@ -475,6 +500,7 @@ fr: delete: Supprimer nsfw_off: Marquer comme non-sensible nsfw_on: Marquer comme sensible + deleted: Supprimé failed_to_execute: Erreur d’exécution media: title: Médias @@ -483,11 +509,19 @@ fr: title: État du compte with_media: avec médias tags: + accounts_today: Utilisations uniques aujourd'hui + accounts_week: Utilisation unique cette semaine + breakdown: Répartition de l’utilisation actuelle par source + context: Contexte  + directory: Dans le répertoire + in_directory: "%{count} dans le répertoire" review: État de traitement reviewed: Traité title: Hashtags trending_right_now: Populaire en ce moment + unique_uses_today: "%{count} posts aujourd'hui" unreviewed: Non traité + updated_msg: Paramètres Hashtag mis à jour avec succès title: Administration warning_presets: add_new: Ajouter un nouveau @@ -511,6 +545,7 @@ fr: advanced_web_interface_hint: 'Si vous voulez utiliser toute la largeur de votre écran, l’interface web avancée vous permet de configurer plusieurs colonnes différentes pour voir autant d’informations que vous le souhaitez en même temps : Accueil, notifications, fil public fédéré, un nombre illimité de listes et hashtags.' animations_and_accessibility: Animations et accessibilité confirmation_dialogs: Dialogues de confirmation + discovery: Découverte sensitive_content: Contenu sensible application_mailer: notification_preferences: Modifier les préférences de courriel @@ -534,6 +569,10 @@ fr: checkbox_agreement_without_rules_html: J’accepte les conditions d’utilisation delete_account: Supprimer le compte delete_account_html: Si vous désirez supprimer votre compte, vous pouvez cliquer ici. Il vous sera demandé de confirmer cette action. + description: + prefix_invited_by_user: "@%{name} vous invite à rejoindre ce serveur Mastodon !" + prefix_sign_up: Inscrivez-vous aujourd’hui sur Mastodon ! + suffix: Avec un compte, vous pourrez suivre des gens, publier des statuts et échanger des messages avec les utilisateurs de n'importe quel serveur Mastodon et bien plus ! didnt_get_confirmation: Vous n’avez pas reçu les consignes de confirmation ? forgot_password: Mot de passe oublié ? invalid_reset_password_token: Le lien de réinitialisation du mot de passe est invalide ou a expiré. Merci de réessayer. @@ -551,8 +590,15 @@ fr: reset_password: Réinitialiser le mot de passe security: Sécurité set_new_password: Définir le nouveau mot de passe + setup: + email_below_hint_html: Si l’adresse e-mail ci-dessous est incorrecte, vous pouvez la modifier ici et recevoir un nouveau courriel de confirmation. + email_settings_hint_html: L’e-mail de confirmation a été envoyé à %{email}. Si cette adresse e-mail n’est pas correcte, vous pouvez la modifier dans les paramètres du compte. + title: Configuration status: + account_status: Statut du compte + confirming: En attente de la confirmation par e-mail à compléter. functional: Votre compte est entièrement opérationnel. + pending: Votre demande est en attente d'examen par notre personnel. Cela peut prendre un certain temps. Vous recevrez un courriel si votre demande est approuvée. trouble_logging_in: Vous avez un problème pour vous connecter ? authorize_follow: already_following: Vous suivez déjà ce compte @@ -582,26 +628,40 @@ fr: deletes: bad_password_msg: Bien essayé ! Mot de passe incorrect confirm_password: Entrez votre mot de passe pour vérifier votre identité - description_html: Cela va supprimer votre compte et le désactiver de manière permanente et irréversible. Votre nom d’utilisateur⋅ice restera réservé afin d’éviter la confusion. proceed: Supprimer compte success_msg: Votre compte a été supprimé avec succès - warning_html: Seule la suppression du contenu depuis ce serveur est garantie. Le contenu qui a été partagé est susceptible de laisser des traces. Les serveurs hors-ligne ainsi que ceux n’étant plus abonnées à vos publications ne mettront pas leur base de données à jour. - warning_title: Disponibilité du contenu disséminé + warning: + more_details_html: Pour plus de détails, voir la politique de confidentialité. + username_available: Votre nom d’utilisateur sera à nouveau disponible + username_unavailable: Votre nom d’utilisateur restera indisponible directories: directory: Annuaire des profils - enabled: Vous êtes actuellement listé dans l’annuaire. - enabled_but_waiting: Vous avez choisi d’être listé dans l’annuaire, mais vous n’avez pas encore le nombre minimum de suiveurs (%{min_followers}) pour y être inscrit. explanation: Découvrir des utilisateurs en se basant sur leurs centres d’intérêt explore_mastodon: Explorer %{title} - how_to_enable: Vous n’êtes pas encore inscrit dans l’annuaire. Vous pouvez vous inscrire ci-dessous. Utilisez des hashtags dans votre texte biographique pour être listé sous des hashtags spécifiques ! - people: - one: "%{count} personne" - other: "%{count} personne" + domain_blocks: + blocked_domains: Liste des domaines limités et bloqués + description: Ceci est la liste des serveurs envers qui %{instance} limite ou rejette la fédération. + domain: Domaine + media_block: Bloqueur de média + no_domain_blocks: "(Aucun bloqueur de domaine)" + severity: Sévérité + severity_legend: + media_block: Les fichiers de média provenant du serveur ne sont ni récupérés, ni stockés, ni affichés à l’utilisateur·rice. + silence: Les comptes des serveurs masqués peuvent être trouvés, suivis et interagis avec, mais leurs Toots n'apparaîtront pas dans les fil d'actualité publiques, et les notifications de ceux-ci ne parviendront pas aux utilisateurs locaux qui ne les suivent pas. + suspension: Aucun contenu des serveurs suspendus n'est stocké ou affiché, ni ne leur est communiqué. Les interactions des serveurs suspendus sont ignorées. + suspension_disclaimer: Les serveurs suspendus peuvent parfois récupérer du contenu public de ce serveur. + title: Séverités + show_rationale: Voir le raisonnement + silence: Masquer + suspension: Suspendre + title: "%{instance} Liste des instances bloquées" domain_validator: invalid_domain: n’est pas un nom de domaine valide errors: + '400': The request you submitted was invalid or malformed. '403': Vous n’avez pas accès à cette page. '404': La page que vous recherchez n’existe pas. + '406': Cette page n'est pas disponible au format demandé. '410': La page que vous recherchez n’existe plus. '422': content: Vérification de sécurité échouée. Bloquez-vous les cookies ? @@ -610,6 +670,7 @@ fr: '500': content: Nous sommes désolé·e·s, mais quelque chose s’est mal passé de notre côté. title: Cette page n’est pas correcte + '503': The page could not be served due to a temporary server failure. noscript_html: Pour utiliser Mastodon, veuillez activer JavaScript. Sinon, essayez l’une des applications natives pour Mastodon pour votre plate-forme. existing_username_validator: not_found: n’a pas trouvé d’utilisateur·rice local·e avec ce nom @@ -633,6 +694,7 @@ fr: add_new: Ajouter un nouvel hashtag errors: limit: Vous avez déjà mis en avant le nombre maximum de hashtags + hint_html: "Que sont les hashtags vedettes ? Ils sont affichés avec emphase sur votre flux d'actualités publique et permettent aux gens de parcourir vos messages publics spécifiquement sous ces hashtags. Ils sont un excellent outil pour garder trace des œuvres créatives ou des projets à long terme." filters: contexts: home: Accueil @@ -653,6 +715,7 @@ fr: developers: Développeurs more: Davantage… resources: Ressources + trending_now: Tendance en ce moment generic: all: Tous changes_saved_msg: Les modifications ont été enregistrées avec succès ! @@ -836,7 +899,7 @@ fr: browser: Navigateur browsers: alipay: Alipay - blackberry: Blackberry + blackberry: BlackBerry chrome: Chrome edge: Microsoft Edge electron: Electron @@ -850,7 +913,7 @@ fr: phantom_js: PhantomJS qq: QQ Browser safari: Safari - uc_browser: UCBrowser + uc_browser: UC Browser weibo: Weibo current_session: Session courante description: "%{browser} sur %{platform}" @@ -859,8 +922,8 @@ fr: platforms: adobe_air: Adobe Air android: Android - blackberry: Blackberry - chrome_os: ChromeOS + blackberry: BlackBerry + chrome_os: Chrome OS firefox_os: Firefox OS ios: iOS linux: Linux @@ -892,6 +955,8 @@ fr: profile: Profil relationships: Abonnements et abonné·e·s two_factor_authentication: Identification à deux facteurs + spam_check: + spam_detected_and_silenced: Ceci est un rapport automatisé. Du spam a été détecté et l’expéditeur a été silencié automatiquement. Si c’est une erreur, veuillez désactiver la sourdine du compte. statuses: attached: description: 'Attaché : %{attached}' @@ -1052,7 +1117,9 @@ fr: disable: Lorsque votre compte est gelé, les données de votre compte demeurent intactes, mais vous ne pouvez effectuer aucune action jusqu’à ce qu’il soit débloqué. silence: Lorsque votre compte est limité, seulement les utilisateurs qui vous suivent déjà verront vos pouets sur ce serveur, et vous pourriez être exclu de plusieurs listes publiques. Néanmoins, d’autres utilisateurs peuvent vous suivre manuellement. suspend: Votre compte a été suspendu, et tous vos pouets et vos fichiers multimédia téléversés ont été supprimés irréversiblement de ce serveur, et des serveurs où vous aviez des abonné⋅e⋅s. + get_in_touch: Vous pouvez répondre à cette adresse pour entrer en contact avec l’équipe de %{instance}. review_server_policies: Passer en revue les politiques du serveur + statuses: 'Spécialement, pour :' subject: disable: Votre compte %{acct} a été gelé none: Avertissement pour %{acct} diff --git a/config/locales/gl.yml b/config/locales/gl.yml index ec412dd8ff..0c515a2eca 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -45,6 +45,8 @@ gl: what_is_mastodon: Qué é Mastodon? accounts: choices_html: 'Eleccións de %{name}:' + endorsements_hint: Desde a interface web pode recomendar xente que segue, e aparecerán aquí. + featured_tags_hint: Pode destacar determinadas etiquetas que se mostrarán aquí. follow: Seguir followers: one: Seguidora @@ -56,6 +58,7 @@ gl: media: Medios moved_html: "%{name} mudouse a %{new_profile_link}:" network_hidden: A información non está dispoñible + never_active: Nunca nothing_here: Nada por aquí! people_followed_by: Personas que segue %{name} people_who_follow: Personas que seguen a %{name} @@ -222,10 +225,12 @@ gl: deleted_status: "(estado eliminado)" title: Rexistro de auditoría custom_emojis: + assign_category: Asignar categoría by_domain: Dominio copied_msg: Creouse con éxito unha copia local dos emoji copy: Copiar copy_failed_msg: Non se puido facer copia local de ese emoji + create_new_category: Crear nova categoría created_msg: Creou o emoji con satisfactoriamente! delete: Eliminar destroyed_msg: Emojo destruído satisfactoriamente! @@ -242,6 +247,7 @@ gl: shortcode: Código corto shortcode_hint: Cando menos 2 caracteres, só caracteres alfanuméricos e subliñados title: Emojis persoalizados + uncategorized: Sen categorizar unlisted: Non listado update_failed_msg: Non se puido actualizar ese emoji updated_msg: Actualizouse correctamente o emoji! @@ -260,6 +266,8 @@ gl: features: Características hidden_service: Federación con servizos ocultos open_reports: informes abertos + pending_tags: etiquetas agardando revisión + pending_users: usuarias agardando revisión recent_users: Usuarias recentes search: Busca de texto completo single_user_mode: Modo de usuario individual @@ -282,6 +290,7 @@ gl: created_msg: Estase a procesar o bloqueo do dominio destroyed_msg: Desfixose a acción de bloqueo de dominio domain: Dominio + edit: Editar bloqueo de dominio existing_domain_block_html: Xa estableceu límites estrictos para %{name}, precisa desbloqueala primeiro. new: create: Crear bloque @@ -292,6 +301,10 @@ gl: silence: Silenciar suspend: Suspender title: Novo bloqueo de dominio + private_comment: Comentario privado + private_comment_hint: Comentar entre moderadores para uso interno as limitacións de este dominio. + public_comment: Comentario público + public_comment_hint: Comentar sobre as limitacións de este dominio para o interese público, se o aviso da lista de dominios limitados está activado. reject_media: Rexeitar ficheiros de medios reject_media_hint: Eliminar ficheiros de medios almacenados localmente e rexeita descargalos no futuro. Irrelevante para as suspensións reject_reports: Rexeitar informes @@ -311,6 +324,7 @@ gl: title: Desfacer o bloqueo de dominio para %{domain} undo: Desfacer undo: Desfacer bloqueo de dominio + view: Ver dominios bloqueados email_domain_blocks: add_new: Engadir novo created_msg: Engadeuse correctamente o dominio de email a lista negra @@ -334,6 +348,8 @@ gl: all: Todo limited: Limitado title: Moderación + private_comment: Comentario privado + public_comment: Comentario público title: Federación total_blocked_by_us: Bloqueado por nós total_followed_by_them: Seguidas por eles @@ -411,6 +427,13 @@ gl: custom_css: desc_html: Modificar o aspecto con CSS cargado en cada páxina title: CSS persoalizado + domain_blocks: + all: Para todas + disabled: Para ninguén + title: Mostrar dominios bloqueados + users: Para usuarias locais conectadas + domain_blocks_rationale: + title: Mostrar razón hero: desc_html: Mostrado na portada. Recoméndase 600x100px como mínimo. Se non se establece, mostrará a imaxe por omisión do servidor title: Imáxe Heróe @@ -480,6 +503,7 @@ gl: delete: Eliminar nsfw_off: Marcar como non sensible nsfw_on: Marcar como sensible + deleted: Eliminado failed_to_execute: Fallou a execución media: title: Medios @@ -488,6 +512,9 @@ gl: title: Estados da conta with_media: con medios tags: + accounts_today: Usos únicos hoxe + accounts_week: Usos únicos esta semana + breakdown: Consumo do uso diario por fonte context: Contexto directory: No directorio in_directory: "%{count} no directorio" @@ -496,6 +523,7 @@ gl: title: Etiquetas trending_right_now: Agora como Tendencia unique_uses_today: "%{count} publicando hoxe" + unreviewed: Sen revisar updated_msg: Actualizaronse os axustes das etiquetas title: Administración warning_presets: @@ -544,6 +572,10 @@ gl: checkbox_agreement_without_rules_html: Acepto os termos do servizo delete_account: Eliminar conta delete_account_html: Se desexa eliminar a súa conta, pode facelo aquí. Pediráselle confirmación. + description: + prefix_invited_by_user: "@%{name} convídate a que te unas a este servidor Mastodon!" + prefix_sign_up: Rexístrate agora en Mastodon! + suffix: Ao abrir unha conta, poderás seguir a xente, actualizacións das publicacións e intercambiar mensaxes coas usuarias de calquera servidor de Mastodon e moito máis! didnt_get_confirmation: Non recibeu as instruccións de confirmación? forgot_password: Esqueceu o contrasinal? invalid_reset_password_token: O testemuño para restablecer o contrasinal non é válido ou caducou. Por favor solicite un novo. @@ -599,24 +631,47 @@ gl: deletes: bad_password_msg: Bo intento, hackers! Contrasinal incorrecto confirm_password: Introduza o seu contrasinal para verificar a súa identidade - description_html: Esto eliminará de xeito permanente e irreversible o contido da súa conta e será desactivada. O seu nome de usuaria permanecerá reservado para evitar futuras confusións de identidades. proceed: Eliminar conta success_msg: A súa conta eliminouse correctamente - warning_html: Só se garantiza a eliminación de contido de este servidor. O contido que foi compartido con outras instancias é probable que deixe rastros. O servidores fora de liña e servidores que se desuscribiron das súas actualizacións non actualizarán as súas bases de datos. - warning_title: Dispoñibilidade do contido espallado + warning: + before: 'Antes de seguir, por favor lé estas notas con atención:' + caches: O contido almacenado en outros servidores podería persistir + data_removal: As túas publicacións e outros datos serán permanentemente borrados + email_change_html: Podes cambiar o enderezo de correo sen eliminar a conta + email_contact_html: Se non o recibes, podes escribir a %{email} pedindo axuda + email_reconfirmation_html: Se non recibes o correo de confirmación, podes solicitalo de novo + irreversible: Non poderás restaurar ou reactivar a conta + more_details_html: Para máis detalles, mira a política de intimidade. + username_available: O nome de usuario estará dispoñible novamente + username_unavailable: O nome de usuario non estará dispoñible directories: directory: Directorio de perfil - enabled: Vostede está actualmente na lista do directorio. - enabled_but_waiting: Vostede optou por ser incluída no directorio, mais por agora non ten o número mínimo de seguidoras (%{min_followers}) para aparecer. explanation: Descubra usuarias según o seu interese explore_mastodon: Explorar %{title} - how_to_enable: Actualmente non solicitou ser incluída no directorio, pode facelo abaixo. Utilice etiquetas no texto de biografía para ser incluída baixo etiquetas específicas! - people: - one: "%{count} persoa" - other: "%{count} persoas" + domain_blocks: + blocked_domains: Lista de dominios limitados e bloqueados + description: Esta é a lista dos servidores cos que %{instance} limita ou rexeita federar. + domain: Dominio + media_block: Bloqueo de medios + no_domain_blocks: "(Sen bloqueo de medios)" + severity: Rigurosidade + severity_legend: + media_block: Os ficheiros de medios procedentes do servidor non se obterán, gardarán nin mostrarán as usuarias. + silence: As contas de servidores silenciados pódense atopar, seguir e interactuar con elas, pero os seus toots non aparecerán na liña temporal púbica, as notificacións procedentes deles non chegarán as usuarias que non as están a seguir. + suspension: Non se mostra nin garda ningún contido de servidores suspendidos, tampouco se lles envía contido. As interaccións con servidores suspendidos son ignoradas. + suspension_disclaimer: Os servidores suspendidos poderían obter ocasionalmente contido público de este servidor. + title: Rigurosidades + show_rationale: Mostrar razón + silence: Silenciar + suspension: Suspensión + title: "%{instance} Lista de instancias bloqueadas" + domain_validator: + invalid_domain: non é un nome de dominio válido errors: + '400': A solicitude que enviou non é válida ou ten formato incorrecto. '403': Non ten permiso para ver esta páxina. '404': A páxina que está a buscar non está aquí. + '406': Esta páxina non está dispoñible no formato solicitado. '410': A páxina que estaba a buscar xa non existe. '422': content: Fallou a verificación de seguridade. Está bloqueando as cookies? @@ -625,6 +680,7 @@ gl: '500': content: Sentímolo, pero algo do noso lado falloou. title: Esta páxina non é correcta + '503': A páxina non se puido servir debido a un fallo temporal no servidor. noscript_html: Para utilizar a aplicación web de Mastodon debe habilitar JavaScript. De xeito alternativo, intente unha das apps nativas para Mastodon da súa plataforma. existing_username_validator: not_found: non se atopou unha usuaria local con ese alcume @@ -648,6 +704,7 @@ gl: add_new: Engadir novo errors: limit: Xa acadou o número máximo de etiquetas + hint_html: "¿Qué son as etiquetas destacadas? Móstranse destacadas no seu perfil público e permítenlle a outras persoas ver os seus toots públicos nos que as utilizou. Son unha ferramenta moi útil para facer seguimento de traballos creativos e proxectos a longo prazo." filters: contexts: home: Liña temporal inicial @@ -668,10 +725,12 @@ gl: developers: Desenvolvedoras more: Máis… resources: Recursos + trending_now: Tendencia agora generic: all: Todo changes_saved_msg: Cambios gardados correctamente!! copy: Copiar + no_batch_actions_available: Non hai accións en pila dispoñibles nesta páxina order_by: Ordenar por save_changes: Gardar cambios validation_errors: @@ -1069,7 +1128,9 @@ gl: disable: Cando a súa conta está conxelada, os datos permanecen intactos, pero non pode levar a fin accións ate que se desbloquea. silence: Mentras a conta está limitada, só a xente que actualmente a segue verá os seus toots en este servidor, e vostede podería estar excluída de varias listas públicas. Porén, outras persoas poderíana seguila de xeito manual. suspend: A súa conta foi suspendida, e todos os seus toots e medios subidos foron eliminados de este servidor de xeito irreversible, e dos servidores onde tivese seguidoras. + get_in_touch: Pode responder a este correo para contactar coa administración de %{instance}. review_server_policies: Revisar políticas do servidor + statuses: 'En concreto, para:' subject: disable: A súa conta %{acct} foi conxelada none: Aviso para %{acct} diff --git a/config/locales/he.yml b/config/locales/he.yml index 12953c2234..62c04a8e84 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -212,14 +212,17 @@ he: x_months: "%{count} חודשים" x_seconds: "%{count} שניות" errors: + '400': The request you submitted was invalid or malformed. '403': חסרות לך הרשאות לצפיה בעמוד זה. '404': הדף המבוקש לא קיים. + '406': This page is not available in the requested format. '410': הדף המבוקש כבר לא קיים. '422': content: בדיקת אבטחה נכשלה. החסמת עוגיותיך מפנינו? title: בדיקת בטיחות נכשלה '429': הוחנק '500': + '503': The page could not be served due to a temporary server failure. exports: blocks: רשימת חסימות follows: רשימת נעקבים diff --git a/config/locales/hr.yml b/config/locales/hr.yml index a4fe620553..67d83525b3 100644 --- a/config/locales/hr.yml +++ b/config/locales/hr.yml @@ -44,12 +44,15 @@ hr: x_months: "%{count}mj" x_seconds: "%{count}sek" errors: + '400': The request you submitted was invalid or malformed. '403': You don't have permission to view this page. '404': The page you are looking for isn't here. + '406': This page is not available in the requested format. '410': The page you were looking for doesn't exist here anymore. '422': '429': Throttled '500': + '503': The page could not be served due to a temporary server failure. exports: blocks: Blokirao si follows: Slijediš diff --git a/config/locales/hu.yml b/config/locales/hu.yml index e8534a9922..7aa75434cb 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -613,26 +613,19 @@ hu: deletes: bad_password_msg: Haha, hekker! Helytelen jelszó confirm_password: Személyazonosságod megerősítéséhez írd be a jelenlegi jelszavad - description_html: Ezzel véglegesen és visszafordíthatatlanul törlöd minden tartalmadat és deaktiválod a fiókodat. A felhasználónevedet megtartjuk, hogy megakadályozzuk a neveddel történő jövőbeni visszaélések lehetőségét. proceed: Felhasználói fiók törlése success_msg: Felhasználói fiókod sikeresen töröltük - warning_html: Csak azt tudjuk garantálni, hogy az általad létrehozott tartalmat erről a szerverről töröljük. Ha egyes tartalmaidat sokan megosztották, valószínűleg marad nyomuk a megosztások miatt. Nem fogjuk tudni frissíteni azon szerverek adatbázisát, amelyek nem kapcsolódnak a föderációhoz vagy amelyek leiratkoztak a tülkjeidről. - warning_title: Szórt tartalmak elérése directories: directory: Profilok - enabled: Szerepelsz a profil adatbázisban. - enabled_but_waiting: Engedélyezted, hogy szerepelj a profil adatbázisban, de még nincs elegendő követőd (%{min_followers}) ehhez. explanation: Találj másokra érdeklődésük alapján explore_mastodon: "%{title} felfedezése" - how_to_enable: Nem engedélyezted a profil adatbázisban való megjelenésed. Engedélyezheted alább. Használj hashtageket az életrajzodban, hogy az ezekhez tartozó listákba bekerülj! - people: - one: "%{count} ember" - other: "%{count} ember" domain_validator: invalid_domain: nem egy valódi domain név errors: + '400': The request you submitted was invalid or malformed. '403': Nincs jogosultságod az oldal megtekintéséhez. '404': Az általad keresett oldal nem található. + '406': This page is not available in the requested format. '410': Az általad keresett oldal már nem létezik. '422': content: Megerősítés sikertelen. Nem tiltottad le esetleg a sütiket? @@ -641,6 +634,7 @@ hu: '500': content: Sajnáljuk, valami hiba történt a mi oldalunkon. title: Az oldal nem megfelelő + '503': The page could not be served due to a temporary server failure. noscript_html: A Mastodon webalkalmazás használatához engedélyezned kell a JavaScriptet. A másik megoldás, hogy kipróbálsz egy platformodnak megfelelő alkalmazást. existing_username_validator: not_found: ezzel a névvel nem találtunk helyi felhasználót diff --git a/config/locales/hy.yml b/config/locales/hy.yml index 197ddae79e..203351893d 100644 --- a/config/locales/hy.yml +++ b/config/locales/hy.yml @@ -12,12 +12,15 @@ hy: auth: login: Մտնել errors: + '400': The request you submitted was invalid or malformed. '403': You don't have permission to view this page. '404': The page you are looking for isn't here. + '406': This page is not available in the requested format. '410': The page you were looking for doesn't exist here anymore. '422': '429': Throttled '500': + '503': The page could not be served due to a temporary server failure. invites: expires_in: '1800': 30 minutes diff --git a/config/locales/id.yml b/config/locales/id.yml index 16098b1890..81a8ffd1fd 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -226,14 +226,17 @@ id: x_months: "%{count}bln" x_seconds: "%{count}dtk" errors: + '400': The request you submitted was invalid or malformed. '403': Anda tidak mempunyai izin untuk melihat halaman ini. '404': Halaman yang anda cari tidak ditemukan + '406': This page is not available in the requested format. '410': Halaman yang anda cari sudah tidak dapat ditemukan lagi. '422': content: Verifikasi keamanan gagal. Apa anda memblokir cookie? title: Verifikasi keamanan gagal '429': Throttled '500': + '503': The page could not be served due to a temporary server failure. exports: blocks: Anda blokir follows: Anda ikuti diff --git a/config/locales/io.yml b/config/locales/io.yml index 559bf0f534..2b3e506917 100644 --- a/config/locales/io.yml +++ b/config/locales/io.yml @@ -73,12 +73,15 @@ io: half_a_minute: Jus less_than_x_seconds: Jus errors: + '400': The request you submitted was invalid or malformed. '403': You don't have permission to view this page. '404': La pagino quan tu serchas ne existas. + '406': This page is not available in the requested format. '410': La pagino quan tu serchas ne plus existas. '422': '429': Throttled '500': + '503': The page could not be served due to a temporary server failure. exports: blocks: Tu blokusas follows: Tu sequas diff --git a/config/locales/it.yml b/config/locales/it.yml index 781d999197..f62d309dfc 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -8,7 +8,7 @@ it: active_footnote: Utenti Attivi Mensili (MAU) administered_by: 'Amministrato da:' api: API - apps: Applicazioni Mobile + apps: Applicazioni per dispositivi mobili apps_platforms: Usa Mastodon da iOS, Android e altre piattaforme browse_directory: Sfoglia la directory dei profili e filtra per interessi browse_public_posts: Sfoglia il flusso in tempo reale di post pubblici su Mastodon @@ -24,6 +24,9 @@ it: generic_description: "%{domain} è un server nella rete" get_apps: Prova un'app per smartphone hosted_on: Mastodon ospitato su %{domain} + instance_actor_flash: | + Questo account è un attore virtuale utilizzato per rappresentare il server stesso e non un particolare utente. + È utilizzato per scopi di federazione e non dovrebbe essere bloccato a meno che non si voglia bloccare l'intera istanza: in questo caso si dovrebbe utilizzare un blocco di dominio. learn_more: Scopri altro privacy_policy: Politica della privacy see_whats_happening: Guarda cosa succede @@ -52,7 +55,7 @@ it: last_active: ultima attività link_verified_on: La proprietà di questo link è stata controllata il %{date} media: Media - moved_html: "%{name} è stato spostato su %{new_profile_link}:" + moved_html: "%{name} si è spostato su %{new_profile_link}:" network_hidden: Questa informazione non e' disponibile nothing_here: Qui non c'è nulla! people_followed_by: Persone seguite da %{name} @@ -64,7 +67,7 @@ it: other: Toot posts_tab_heading: Toot posts_with_replies: Toot e risposte - reserved_username: Il nome utente è gia stato preso + reserved_username: Questo nome utente è già stato preso roles: admin: Amministratore bot: Bot @@ -88,7 +91,7 @@ it: by_domain: Dominio change_email: changed_msg: Account email cambiato con successo! - current_email: Email corrente + current_email: Email attuale label: Cambia email new_email: Nuova email submit: Cambia email @@ -99,7 +102,7 @@ it: deleted: Cancellato demote: Declassa disable: Disabilita - disable_two_factor_authentication: Disabilita 2FA + disable_two_factor_authentication: Disabilita l'autenticazione a due fattori disabled: Disabilitato display_name: Nome visualizzato domain: Dominio @@ -116,7 +119,7 @@ it: inbox_url: URL inbox invited_by: Invitato da ip: IP - joined: Unito + joined: Iscritto da location: all: Tutto local: Locale @@ -134,7 +137,7 @@ it: title: Moderazione moderation_notes: Note di moderazione most_recent_activity: Attività più recenti - most_recent_ip: IP più recenti + most_recent_ip: IP più recente no_account_selected: Nessun account è stato modificato visto che non ne è stato selezionato nessuno no_limits_imposed: Nessun limite imposto not_subscribed: Non sottoscritto @@ -281,6 +284,7 @@ it: created_msg: Il blocco del dominio sta venendo processato destroyed_msg: Il blocco del dominio è stato rimosso domain: Dominio + edit: Modifica blocco di dominio existing_domain_block_html: Hai già impostato limitazioni più stringenti su %{name}, dovresti sbloccare prima. new: create: Crea blocco @@ -292,7 +296,9 @@ it: suspend: Sospendi title: Nuovo blocco dominio private_comment: Commento privato + private_comment_hint: Commento su questa limitazione di dominio per uso interno da parte dei moderatori. public_comment: Commento pubblico + public_comment_hint: Commento pubblico su questa limitazione di dominio, se l'elenco delle limitazioni di dominio è pubblico. reject_media: Rifiuta file media reject_media_hint: Rimuovi i file media salvati in locale e blocca i download futuri. Irrilevante per le sospensioni reject_reports: Respingi rapporti @@ -312,6 +318,7 @@ it: title: Annulla il blocco del dominio per %{domain} undo: Annulla undo: Annulla + view: Visualizza blocco di dominio email_domain_blocks: add_new: Aggiungi nuovo created_msg: Dominio email aggiunto con successo alla lista nera @@ -414,6 +421,13 @@ it: custom_css: desc_html: Modifica l'aspetto con il CSS caricato in ogni pagina title: CSS personalizzato + domain_blocks: + all: A tutti + disabled: A nessuno + title: Mostra blocchi di dominio + users: Agli utenti locali connessi + domain_blocks_rationale: + title: Mostra motivazione hero: desc_html: Mostrata nella pagina iniziale. Almeno 600x100 px consigliati. Se non impostata, sarà usato il thumbnail del server title: Immagine dell'eroe @@ -483,6 +497,7 @@ it: delete: Elimina nsfw_off: Segna come non sensibile nsfw_on: Segna come sensibile + deleted: Cancellato failed_to_execute: Impossibile eseguire media: title: Media @@ -496,7 +511,11 @@ it: breakdown: Suddivisione dell'utilizzo di oggi per fonte context: Contesto directory: Nella directory + in_directory: "%{count} nella directory" + reviewed: Controllato title: Hashtag + trending_right_now: Di tendenza ora + unreviewed: Non controllato updated_msg: Impostazioni degli hashtag aggiornate title: Amministrazione warning_presets: @@ -513,6 +532,9 @@ it: body: "%{reporter} ha segnalato %{target}" body_remote: Qualcuno da %{domain} ha segnalato %{target} subject: Nuova segnalazione per %{instance} (#%{id}) + new_trending_tag: + body: 'L''hashtag #%{name} oggi è di tendenza, ma non è stato mai controllato. Non sarà visualizzato pubblicamente se non lo permetti; se salvi il form senza modifiche non lo vedrai mai più.' + subject: Nuovo hashtag pronto per essere controllato su %{instance} (%{name}) appearance: advanced_web_interface: Interfaccia web avanzata advanced_web_interface_hint: |- @@ -597,26 +619,36 @@ it: deletes: bad_password_msg: Ci avete provato, hacker! Password errata confirm_password: Inserisci la tua password attuale per verificare la tua identità - description_html: Questa azione eliminerà in modo permanente e irreversibile tutto il contenuto del tuo account e lo disattiverà. Il tuo nome utente resterà riservato per prevenire che qualcuno in futuro assuma la tua identità. proceed: Cancella l'account success_msg: Il tuo account è stato cancellato - warning_html: È garantita la cancellazione del contenuto solo da questo server. I contenuti che sono stati ampiamente condivisi probabilmente lasceranno delle tracce. I server offline e quelli che non ricevono più i tuoi aggiornamenti non aggiorneranno i loro database. - warning_title: Disponibilità di contenuto diffuso directories: directory: Directory dei profili - enabled: Attualmente sei elencato nella directory. - enabled_but_waiting: Hai scelto di essere elencato nella directory, ma non hai ancora il numero minimo di seguaci (%{min_followers}) per comparire. explanation: Scopri utenti in base ai loro interessi explore_mastodon: Esplora %{title} - how_to_enable: Attualmente non hai scelto di comparire nella directory. Puoi farlo qui sotto. Se vuoi comparire sotto determinati hashtag, usali nel testo della tua biografia. - people: - one: "%{count} persona" - other: "%{count} persone" + domain_blocks: + blocked_domains: Elenco dei domini limitati e bloccati + description: Questo è l'elenco dei server con cui %{instance} limita o rifiuta la federazione. + domain: Dominio + media_block: Blocco dei media + no_domain_blocks: "(Nessun blocco di dominio)" + severity: Gravità + severity_legend: + media_block: I file multimediali provenienti dal server non sono recuperati, memorizzati o visualizzati all'utente. + silence: Gli account di server silenziati possono essere trovati e seguiti, e gli utenti possono interagire con essi, ma i loro toot non appariranno nelle timeline pubbliche e le relative notifiche non raggiungeranno gli utenti locali che non li seguono. + suspension: Nessun contenuto dai server sospesi è memorizzato o visualizzato, e nessun contenuto gli viene inviato. Le interazioni dai server sospesi sono ignorate. + suspension_disclaimer: I server sospesi possono talvolta recuperare contenuti pubblici da questo server. + title: Gravità + show_rationale: Mostra motivazione + silence: Silenzia + suspension: Sospensione + title: "%{instance} Elenco delle istanze bloccate" domain_validator: invalid_domain: non è un nome di dominio valido errors: + '400': The request you submitted was invalid or malformed. '403': Non sei autorizzato a visualizzare questa pagina. '404': La pagina che stavi cercando non esiste. + '406': This page is not available in the requested format. '410': La pagina che stavi cercando qui non esiste più. '422': content: Verifica di sicurezza non riuscita. Stai bloccando i cookies? @@ -625,6 +657,7 @@ it: '500': content: Siamo spiacenti, ma qualcosa non ha funzionato dal nostro lato. title: Questa pagina non è corretta + '503': The page could not be served due to a temporary server failure. noscript_html: Per usare l'interfaccia web di Mastodon dovi abilitare JavaScript. In alternativa puoi provare una delle app native per Mastodon per la tua piattaforma. existing_username_validator: not_found: impossibile trovare un utente locale con quel nome utente @@ -669,6 +702,7 @@ it: developers: Sviluppatori more: Altro… resources: Risorse + trending_now: Di tendenza ora generic: all: Tutto changes_saved_msg: Modifiche effettuate con successo! @@ -989,7 +1023,9 @@ it: disable: Mentre il tuo account è congelato, i tuoi dati dell'account rimangono intatti, ma non potrai eseguire nessuna azione fintanto che non viene sbloccato. silence: Mentre il tuo account è limitato, solo le persone che già ti seguono possono vedere i tuoi toot su questo server, e potresti essere escluso da vari elenchi pubblici. Comunque, altri possono manualmente seguirti. suspend: Il tuo account è stato sospeso, e tutti i tuoi toot ed i tuoi file media caricati sono stati irreversibilmente rimossi da questo server, e dai server dove avevi dei seguaci. + get_in_touch: Puoi rispondere a questa email per entrare in contatto con lo staff di %{instance}. review_server_policies: Rivedi regole del server + statuses: 'Nello specifico, per:' subject: disable: Il tuo account %{acct} è stato congelato none: Avviso per %{acct} diff --git a/config/locales/ja.yml b/config/locales/ja.yml index e34d90c2d8..d4c6058bf2 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -43,6 +43,8 @@ ja: what_is_mastodon: Mastodon とは? accounts: choices_html: "%{name} によるおすすめ:" + endorsements_hint: あなたがフォローしている中でおすすめしたい人をここで紹介できます。 + featured_tags_hint: 特定のハッシュタグをここに表示できます。 follow: フォロー followers: other: フォロワー @@ -53,6 +55,7 @@ ja: media: メディア moved_html: "%{name} さんは引っ越しました %{new_profile_link}:" network_hidden: この情報は利用できません + never_active: 活動なし nothing_here: 何もありません! people_followed_by: "%{name} さんがフォロー中のアカウント" people_who_follow: "%{name} さんをフォロー中のアカウント" @@ -182,6 +185,7 @@ ja: username: ユーザー名 warn: 警告 web: Web + whitelisted: ホワイトリストに登録済み action_logs: actions: assigned_to_self_report: "%{name} さんが通報 %{target} を自身の担当に割り当てました" @@ -270,6 +274,7 @@ ja: week_users_new: 今週登録した人数 whitelist_mode: ホワイトリストモード domain_allows: + add_new: ホワイトリストに追加 created_msg: ドメインのホワイトリストへの登録が正常に完了しました destroyed_msg: ドメインがホワイトリストから削除されました undo: ホワイトリストから削除 @@ -413,6 +418,13 @@ ja: custom_css: desc_html: 全ページに適用されるCSSの編集 title: カスタムCSS + domain_blocks: + all: 誰でも許可 + disabled: 誰も許可しない + title: ドメインブロックを表示 + users: ログイン済みローカルユーザーのみ許可 + domain_blocks_rationale: + title: コメントを表示 hero: desc_html: フロントページに表示されます。サイズは600x100px以上推奨です。未設定の場合、標準のサムネイルが使用されます title: ヒーローイメージ @@ -482,6 +494,7 @@ ja: delete: 削除 nsfw_off: 閲覧注意をはずす nsfw_on: 閲覧注意にする + deleted: 削除済み failed_to_execute: 実行に失敗しました media: title: メディア @@ -570,6 +583,7 @@ ja: setup: email_below_hint_html: 下記のメールアドレスが間違っている場合、ここで変更することで新たに確認メールを受信できます。 email_settings_hint_html: 確認用のメールを %{email} に送信しました。メールアドレスが正しくない場合、以下より変更することができます。 + title: セットアップ status: account_status: アカウントの状態 confirming: メールアドレスの確認が完了するのを待っています。 @@ -604,25 +618,36 @@ ja: deletes: bad_password_msg: パスワードが違います confirm_password: 本人確認のため、現在のパスワードを入力してください - description_html: あなたのアカウントに含まれるコンテンツは全て削除され、アカウントは無効化されます。これは恒久的なもので、取り消すことはできません。なりすましを防ぐために、同じユーザー名で再度登録することはできなくなります。 proceed: アカウントを削除する success_msg: アカウントは正常に削除されました - warning_html: 削除が保証されるのはこのサーバー上のコンテンツのみです。他のサーバー等、外部に広く共有されたコンテンツについては痕跡が残ることがあります。また、現在接続できないサーバーや、あなたの更新を受け取らなくなったサーバーに対しては、削除は反映されません。 - warning_title: 共有されたコンテンツについて directories: directory: ディレクトリ - enabled: あなたはディレクトリに掲載されています。 - enabled_but_waiting: あなたはディレクトリへの掲載を選択しましたが、掲載に必要な最小フォロワー数 (%{min_followers} 人) を満たしていません。 explanation: 関心を軸にユーザーを発見しよう explore_mastodon: "%{title}を探索" - how_to_enable: あなたはディレクトリへの掲載を選択していません。下記から選択できます。ハッシュタグカラムに掲載するにはプロフィール文にハッシュタグを使用してください。 - people: - other: "%{count} 人" + domain_blocks: + blocked_domains: ドメインブロックリスト + description: "%{instance} が連合を制限または拒否しているサーバーのリストです。" + domain: ドメイン + media_block: メディアを拒否 + no_domain_blocks: "(ドメインブロックなし)" + severity: 重大性 + severity_legend: + media_block: サーバーから送信されるメディアファイルは取得も保存もされず、またユーザーには表示されません。 + silence: サイレンスされたサーバーのアカウントは検索やフォロー、交流することができますが、トゥートは公開タイムラインに表示されません。またフォローしていないユーザーには通知が届きません。 + suspension: 停止されたサーバーからのコンテンツは保存も表示もされず、また送信もされません。停止されたサーバーからの交流は拒否されます。 + suspension_disclaimer: 停止されたサーバーでもこのサーバーから公開コンテンツを取得することがあります。 + title: 重大性 + show_rationale: コメントを表示 + silence: サイレンス + suspension: 停止 + title: "%{instance} のドメインブロックリスト" domain_validator: invalid_domain: は無効なドメイン名です errors: + '400': 送信されたリクエストは無効であるか、または不正なフォーマットです。 '403': このページを表示する権限がありません。 '404': お探しのページは見つかりませんでした。 + '406': このページは要求された形式では利用できません。 '410': お探しのページはもう存在しません。 '422': content: セキュリティ認証に失敗しました。Cookieをブロックしていませんか? @@ -631,6 +656,7 @@ ja: '500': content: もうしわけありませんが、なにかが間違っています。 title: このページは正しくありません + '503': 一時的なサーバー障害のため利用することができません。 noscript_html: Mastodonのウェブアプリケーションを利用する場合はJavaScriptを有効にしてください。またはあなたのプラットフォーム向けのMastodonネイティブアプリを探すことができます。 existing_username_validator: not_found: そのようなユーザー名はローカルに見つかりませんでした @@ -654,6 +680,7 @@ ja: add_new: 追加 errors: limit: 注目のハッシュタグの上限に達しました + hint_html: "注目のハッシュタグとは?プロフィールページに目立つ形で表示され、そのハッシュタグのついたあなたの公開投稿だけを抽出して閲覧できるようにします。クリエイティブな仕事や長期的なプロジェクトを追うのに優れた機能です。" filters: contexts: home: ホームタイムライン @@ -949,6 +976,8 @@ ja: pinned: 固定されたトゥート reblogged: さんがブースト sensitive_content: 閲覧注意 + tags: + does_not_match_previous_name: 以前の名前と一致しません terms: body_html: |

プライバシーポリシー

@@ -1066,7 +1095,9 @@ ja: disable: アカウントが凍結されている間、データはそのまま残りますが、凍結が解除されるまでは何の操作もできません。 silence: あなたのアカウントは制限されていますが、あなたをフォローしているユーザーのみ、このサーバー上の投稿を見ることができます。そしてあなたは様々な公開リストから除外されるかもしれません。ただし、他のユーザーは手動であなたをフォローすることができます。 suspend: あなたのアカウントは停止されています。あなたの投稿とアップロードされたメディアファイルは、このサーバーとあなたのフォロワーが参加していたサーバーから完全に削除されました。 + get_in_touch: このメールに返信することで %{instance} のスタッフと連絡を取ることができます。 review_server_policies: サーバーのポリシーを確認 + statuses: '特に次のトゥート:' subject: disable: あなたのアカウント %{acct} は凍結されています none: "%{acct} に対する警告" diff --git a/config/locales/ka.yml b/config/locales/ka.yml index ba114e7c08..b9b9b664ff 100644 --- a/config/locales/ka.yml +++ b/config/locales/ka.yml @@ -436,14 +436,13 @@ ka: deletes: bad_password_msg: კარგად სცადეთ, ჰაკერებო! არასწორი პაროლი confirm_password: იდენტობის დასამოწმებლად შეიყვანეთ მიმდინარე პაროლი - description_html: ეს სამუდამოდ, დაუბრუნებლად გააუქმებს კონტენტს თქვენი ანგარიშიდან და მოახდენს მის დეაქტივაციას. მომხმარებლის სახელი კი, სამომავლო იმპერსონაციების შესაჩერებლად, გახდება რეზერვირებული. proceed: ანგარიშის გაუქმება success_msg: თქვენი ანგარიში წარმატებით გაუქმდა - warning_html: მოცულობის გაუქმება გარანტირებულია მხოლოდ ამ ინსტანციაზე. კონტენტი რომელიც ფართო მასშტაბით გაზიარდა უფრო დატოვებს კვალს. ოფლაინ სერვერები და სერვერები, რომლებმაც შეწყვიტეს თქვენი განახლებების გამოწერა არ განაახლებენ მონაცემთა ბაზებს. - warning_title: წვდომა გავრცელებულ კონტენტზე errors: + '400': The request you submitted was invalid or malformed. '403': ამ გვერდის ხილვის უფლება არ გაქვთ. '404': გვერდი რომელსაც ეძებთ არ არსებობს. + '406': This page is not available in the requested format. '410': გვერდი რომელსაც ეძებდით აღარ არსებობს. '422': content: უსაფრთხოების ვერიფიკაცია ვერ მოხერხდა. ბლოკავთ ქუქის? @@ -452,6 +451,7 @@ ka: '500': content: ბოდიში, ჩვენ მხარეს რაღაც არია. title: გვერდი არაა სწორი + '503': The page could not be served due to a temporary server failure. noscript_html: მასტოდონ ვებ-აპლიკაციის გამოყენებისთვის, გთხოვთ ჩართოთ ჯავასკრიპტი. სხვა შემთხვევაში, მასტოდონის თქვენი პატფორმისთვის სცადეთ გამოიყენოთ ერთ-ერთი მშობლიური აპლიკაცია. exports: archive_takeout: diff --git a/config/locales/kk.yml b/config/locales/kk.yml index 8ee0439301..736816425f 100644 --- a/config/locales/kk.yml +++ b/config/locales/kk.yml @@ -512,24 +512,17 @@ kk: deletes: bad_password_msg: Болмады ма, хакер бала? Құпиясөз қате confirm_password: Қазіргі құпиясөзіңізді жазыңыз - description_html: This will permanently, irreversibly remove content from your account аnd deactivate it. Your username will remain reserved to prevent future impersonations. proceed: Аккаунт өшіру success_msg: Аккаунтыңыз сәтті өшірілді - warning_html: Only deletion of content from this particular server is guaranteed. Content that has been widely sharеd is likely to leave traces. Offline servers and servers that have unsubscribed from your updates will not update their databases. - warning_title: Бөлінген мазмұнның қол жетімділігі directories: directory: Профильдер каталогы - enabled: Каталогтағы тізімге ендіңіз. - enabled_but_waiting: Каталогта көрінгіңіз келетінін түсінеміз, бірақ ол үшін кем дегенде (%{min_followers}) оқырманыңыз болуы қажет. explanation: Қолданушыларды қызығушылықтарына қарай реттеу explore_mastodon: "%{title} шарлау" - how_to_enable: Сіз қазіргі уақытта каталогқа қосылмағансыз. Төменде қосылуға болады. Арнайы био мәтініндегі хэштегтерді қолданыңыз! - people: - one: "%{count} адам" - other: "%{count} адам" errors: + '400': The request you submitted was invalid or malformed. '403': Бұны көру үшін сізде рұқсат жоқ. '404': Сіз іздеген бет бұл жерде емес екен. + '406': This page is not available in the requested format. '410': Сіз іздеген бет қазір жоқ екен. '422': content: Қауіпсіздік растауы қате. кукилерді блоктағансыз ба? @@ -538,6 +531,7 @@ kk: '500': content: Кешірерсіз, бірақ қазір бір қате пайда болып тұр. title: Бұл бет дұрыс емес екен + '503': The page could not be served due to a temporary server failure. noscript_html: Mastodon веб қосымшасын қолдану үшін, JavaScript қосыңыз. Болмай жатса, мына қосымшаларды қосып көріңіз, Mastodon қолдану үшін. exports: archive_takeout: diff --git a/config/locales/ko.yml b/config/locales/ko.yml index a2b98ebe20..1c4170d8af 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -55,6 +55,7 @@ ko: media: 미디어 moved_html: "%{name}은 %{new_profile_link}으로 이동되었습니다:" network_hidden: 이 정보는 사용할 수 없습니다 + never_active: 없음 nothing_here: 아무 것도 없습니다! people_followed_by: "%{name} 님이 팔로우 중인 계정" people_who_follow: "%{name} 님을 팔로우 중인 계정" @@ -495,6 +496,7 @@ ko: delete: 삭제 nsfw_off: NSFW 끄기 nsfw_on: NSFW 켜기 + deleted: 삭제됨 failed_to_execute: 실행을 실패하였습니다 media: title: 미디어 @@ -618,20 +620,12 @@ ko: deletes: bad_password_msg: 비밀번호가 올바르지 않습니다 confirm_password: 본인 확인을 위해 현재 사용 중인 암호를 입력해 주십시오 - description_html: 계정에 업로드된 모든 컨텐츠가 삭제되며, 계정은 비활성화 됩니다. 이것은 영구적으로 이루어지는 것이므로 되돌릴 수 없습니다. 사칭 행위를 방지하기 위해 같은 아이디로 다시 등록하는 것은 불가능합니다. proceed: 계정 삭제 success_msg: 계정이 성공적으로 삭제되었습니다 - warning_html: 삭제가 보장되는 것은 이 서버 상에서의 컨텐츠에 한합니다. 타 서버 등, 외부에 멀리 공유된 컨텐츠는 흔적이 남아 삭제되지 않는 경우도 있습니다. 그리고 현재 접속이 불가능한 서버나, 업데이트를 받지 않게 된 서버에 대해서는 삭제가 반영되지 않을 수도 있습니다. - warning_title: 공유된 컨텐츠에 대해서 directories: directory: 프로필 디렉토리 - enabled: 당신은 디렉터리에 표시 되고 있습니다. - enabled_but_waiting: 디렉터리에 표시 되기 위해서는 수동으로 참여해야 합니다, 하지만 디렉터리에 표시 되기 위한 최소 팔로워(%{min_followers})수에 미치지 못했습니다. explanation: 관심사에 대한 유저들을 발견합니다 explore_mastodon: "%{title} 탐사하기" - how_to_enable: 아직 디렉터리에 참여하지 않았습니다. 아래에서 참여할 수 있습니다. 바이오 텍스트에 해시태그를 사용해 특정 해시태그 디렉터리에 표시 될 수 있습니다! - people: - other: "%{count}명" domain_blocks: blocked_domains: 제한 되거나 차단 된 도메인 목록 description: 이것은 %{instance}가 제한하거나 연합을 거부한 서버들의 목록입니다. @@ -652,8 +646,10 @@ ko: domain_validator: invalid_domain: 올바른 도메인 네임이 아닙니다 errors: + '400': 제출한 요청이 올바르지 않습니다. '403': 이 페이지를 표시할 권한이 없습니다. '404': 당신이 찾으려는 페이지는 존재하지 않습니다. + '406': 이 페이지는 요청한 자료형으로 제공되지 않습니다. '410': 당신이 보려는 페이지는 더이상 여기에 존재하지 않습니다. '422': content: 보안 인증에 실패했습니다. 쿠키를 차단하고 있진 않습니까? @@ -662,6 +658,7 @@ ko: '500': content: 죄송합니다, 뭔가 잘못 되었습니다. title: 이 페이지는 잘못되었습니다 + '503': 이 페이지는 임시적인 서버 문제로 인해 제공 될 수 없습니다. noscript_html: 마스토돈을 사용하기 위해서는 자바스크립트를 켜 주십시오. 아니면 네이티브 앱 중 하나를 사용할 수 있습니다. existing_username_validator: not_found: 해당 유저네임에 대한 로컬 유저를 찾을 수 없습니다 @@ -1100,7 +1097,9 @@ ko: disable: 당신의 계정이 동결 된 동안 당신의 계정은 유지 됩니다. 하지만 잠금이 풀릴 때까지 당신은 아무 것도 할 수 없습니다. silence: 당신의 계정이 제한 된 동안엔 당신의 팔로워 이외엔 툿을 받아 볼 수 없고 공개 리스팅에서 제외 됩니다. 하지만 다른 사람들은 여전히 당신을 팔로우 가능합니다. suspend: 당신의 계정은 정지 되었으며, 모든 툿과 업로드 한 미디어가 서버에서 삭제 되어 되돌릴 수 없습니다. + get_in_touch: 이 메일에 대해 답장해서 %{instance}의 스태프와 연락 할 수 있습니다. review_server_policies: 서버 정책 검토하기 + statuses: '구체적으로:' subject: disable: 당신의 계정 %{acct}가 동결 되었습니다 none: "%{acct}에게의 경고" diff --git a/config/locales/lt.yml b/config/locales/lt.yml index cf1ae2709a..a5dd5cbf5d 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -492,21 +492,17 @@ lt: deletes: bad_password_msg: Geras bandymas, programišiau! Neteisingas slaptažodis confirm_password: Kad patvirtintumėte savo tapatybę, įveskite dabartini slaptažodį - description_html: Tai be sugrąžinimo, visam laikui panaikins visa turini iš Jūsų paskyros ir deaktyvuos ją. Jūsų vartotojo vardas paliks rezervuotas, kad išvengtumėme tapatybės pavagimo ateityje. proceed: Ištrinti paskyrą success_msg: Jūsų paskyra sėkmingai ištrinta - warning_html: Tiktai panaikinimas turinio iš šio serverio garantuotas. Turinys, kuris buvo viešai prieinamas ir dalinamas kituose serveriuose paliks pėdsakus. Serveriai, kurie neseka jūsų, kurie nėra tinkle, nepakeis savo duomenų sistemos. - warning_title: Platinamo turinio prieinamumas directories: directory: Profilio direktorija - enabled: Jūs esate rodomas šioje direktorijoje. - enabled_but_waiting: Jūs pasirinkote būti įtrauktas į direktorija, bet jūs neturite minimalaus sekėjų skaičiaus (%{min_followers}), kad būtumėte rodomas. explanation: Raskite vartotojus, remiantis tuo, kuo jie domisi explore_mastodon: Naršyti %{title} - how_to_enable: Jūs nesate prisijungęs prie šios direktorijos. Galite prisijungti žemiau. Naudokite saitažodžius savo biografiniame tekste, kad būtumėte rastas naudojantis specifinius saitažodžius! errors: + '400': The request you submitted was invalid or malformed. '403': Jūs neturie prieigos matyti šiam puslapiui. '404': Puslapis nerastas. + '406': This page is not available in the requested format. '410': Puslapis neegzistuoja. '422': content: Apsaugos patvirtinmas klaidingas. Ar jūs blokuojate sausainius? @@ -515,6 +511,7 @@ lt: '500': content: Atsiprašome, tačiau mūsų pusėje įvyko klaida. title: Netinkamas puslapis + '503': The page could not be served due to a temporary server failure. noscript_html: Kad naudotumėtės Mastodon web aplikacija, prašome įsijungti JavaScript. Alternatyviai, pabandykite viena iš vietinių aplikacijų Mastodon savo platformai. exports: archive_takeout: diff --git a/config/locales/lv.yml b/config/locales/lv.yml index 971450a89b..f6625dd41f 100644 --- a/config/locales/lv.yml +++ b/config/locales/lv.yml @@ -1,12 +1,15 @@ --- lv: errors: + '400': The request you submitted was invalid or malformed. '403': You don't have permission to view this page. '404': The page you are looking for isn't here. + '406': This page is not available in the requested format. '410': The page you were looking for doesn't exist here anymore. '422': '429': Throttled '500': + '503': The page could not be served due to a temporary server failure. invites: expires_in: '1800': 30 minutes diff --git a/config/locales/ms.yml b/config/locales/ms.yml index 3597ccd15f..4573d53dd2 100644 --- a/config/locales/ms.yml +++ b/config/locales/ms.yml @@ -297,12 +297,15 @@ ms: create_and_resolve: Selesaikan dengan nota placeholder: Terangkan tindakan apa yang telah diambil, atau sebarang kemas kini lain yang berkaitan... errors: + '400': The request you submitted was invalid or malformed. '403': You don't have permission to view this page. '404': The page you are looking for isn't here. + '406': This page is not available in the requested format. '410': The page you were looking for doesn't exist here anymore. '422': '429': Throttled '500': + '503': The page could not be served due to a temporary server failure. exports: archive_takeout: in_progress: Mengkompil arkib anda... diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 9ef60b7019..25e6c6591f 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -183,6 +183,7 @@ nl: username: Gebruikersnaam warn: Waarschuwen web: Webapp + whitelisted: Op de witte lijst action_logs: actions: assigned_to_self_report: "%{name} heeft rapportage %{target} aan zichzelf toegewezen" @@ -243,6 +244,7 @@ nl: updated_msg: Bijwerken van emoji is geslaagd! upload: Uploaden dashboard: + authorized_fetch_mode: Geautoriseerde ophaalmodus backlog: achterstallige taken config: Configuratie feature_deletions: Verwijderen van account @@ -250,10 +252,13 @@ nl: feature_profile_directory: Gebruikersgids feature_registrations: Registraties feature_relay: Federatierelay + feature_spam_check: Anti-spam feature_timeline_preview: Voorvertoning van tijdlijn features: Functies hidden_service: Federatie met verborgen diensten open_reports: onopgeloste rapportages + pending_tags: hashtags die op een beoordeling wachten + pending_users: gebruikers die op een beoordeling wachten recent_users: Recente gebruikers search: In volledige tekst zoeken single_user_mode: Modus voor één gebruiker @@ -265,11 +270,18 @@ nl: week_interactions: interacties deze week week_users_active: actieve gebruikers deze week week_users_new: nieuwe gebruikers deze week + whitelist_mode: Modus voor de witte lijst + domain_allows: + add_new: Domein voor de witte lijst + created_msg: Het domein is succesvol aan de witte lijst toegevoegd + destroyed_msg: Het domein is van de witte lijst verwijderd + undo: Van de witte lijst verwijderen domain_blocks: add_new: Nieuwe domeinblokkade toevoegen created_msg: Domeinblokkade wordt nu verwerkt destroyed_msg: Domeinblokkade is ongedaan gemaakt domain: Domein + edit: Domeinblokkade bewerken existing_domain_block_html: Jij hebt al strengere beperkingen opgelegd aan %{name}, je moet het domein eerst deblokkeren. new: create: Blokkade aanmaken @@ -280,6 +292,10 @@ nl: silence: Negeren suspend: Opschorten title: Nieuwe domeinblokkade + private_comment: Privé-opmerking + private_comment_hint: Opmerking over deze domeinbeperking voor intern gebruik door de moderatoren. + public_comment: Openbare opmerking + public_comment_hint: Opmerking over deze domeinbeperking voor het grote publiek, voor wanneer de openbare lijst met domeinbeperkingen is ingeschakeld. reject_media: Mediabestanden weigeren reject_media_hint: Verwijderd lokaal opgeslagen mediabestanden en weigert deze in de toekomst te downloaden. Irrelevant voor opgeschorte domeinen reject_reports: Rapportages weigeren @@ -299,6 +315,7 @@ nl: title: Domeinblokkade voor %{domain} ongedaan maken undo: Ongedaan maken undo: domeinblokkade ongedaan maken + view: Domeinblokkade bekijken email_domain_blocks: add_new: Nieuwe toevoegen created_msg: Blokkeren e-maildomein geslaagd @@ -322,6 +339,8 @@ nl: all: Alles limited: Beperkt title: Moderatie + private_comment: Privé-opmerking + public_comment: Openbare opmerking title: Andere domeinen total_blocked_by_us: Door ons geblokkeerd total_followed_by_them: Door hun gevolgd @@ -399,6 +418,13 @@ nl: custom_css: desc_html: Het uiterlijk van deze server met CSS aanpassen title: Aangepaste CSS + domain_blocks: + all: Naar iedereen + disabled: Naar niemand + title: Domeinblokkades tonen + users: Naar ingelogde lokale gebruikers + domain_blocks_rationale: + title: Motivering tonen hero: desc_html: Wordt op de voorpagina getoond. Tenminste 600x100px aanbevolen. Wanneer dit niet is ingesteld wordt de thumbnail van de Mastodonserver getoond title: Hero-afbeelding @@ -456,12 +482,15 @@ nl: desc_html: Toon een openbare tijdlijn op de voorpagina title: Tijdlijn op de voorpagina tonen title: Server-instellingen + trends: + title: Trending hashtags statuses: back_to_account: Terug naar accountpagina batch: delete: Verwijderen nsfw_off: Als niet gevoelig markeren nsfw_on: Als gevoelig markeren + deleted: Verwijderd failed_to_execute: Uitvoeren mislukt media: title: Media @@ -470,7 +499,16 @@ nl: title: Toots van account with_media: Met media tags: + accounts_today: Aantal unieke keren vandaag gebruikt + accounts_week: Aantal unieke keren deze week gebruikt + context: Context + directory: In de gebruikersgids + in_directory: "%{count} keer in de gebruikersgids" + review: Status beoordelen + reviewed: Beoordeeld title: Hashtags + trending_right_now: Op dit moment trending + unreviewed: Niet beoordeeld title: Beheer warning_presets: add_new: Nieuwe toevoegen @@ -491,6 +529,7 @@ nl: advanced_web_interface_hint: 'Wanneer je van de hele schermbreedte gebruik wilt maken, stelt de geavanceerde webomgeving je in staat om meerdere verschillende kolommen te configureren. Hiermee kun je zoveel mogelijk informatie op hetzelfde moment bekijken, zoals: Start, meldingen, de globale tijdlijn, meerdere lijsten en hashtags.' animations_and_accessibility: Animaties en toegankelijkheid confirmation_dialogs: Bevestigingen + discovery: Ontdekken sensitive_content: Gevoelige inhoud application_mailer: notification_preferences: E-mailvoorkeuren wijzigen @@ -530,6 +569,10 @@ nl: reset_password: Wachtwoord opnieuw instellen security: Beveiliging set_new_password: Nieuw wachtwoord instellen + setup: + title: Instellen + status: + account_status: Accountstatus trouble_logging_in: Problemen met inloggen? authorize_follow: already_following: Je volgt dit account al @@ -559,24 +602,27 @@ nl: deletes: bad_password_msg: Goed geprobeerd hackers! Ongeldig wachtwoord confirm_password: Voer jouw huidige wachtwoord in om jouw identiteit te bevestigen - description_html: Hierdoor worden alle gegevens van jouw account permanent, onomkeerbaar verwijderd en wordt deze gedeactiveerd. Om toekomstige identiteitsdiefstal te voorkomen, kan op deze server jouw gebruikersnaam niet meer gebruikt worden. proceed: Account verwijderen success_msg: Jouw account is succesvol verwijderd - warning_html: We kunnen alleen garanderen dat jouw gegevens op deze server worden verwijderd. Berichten (toots), incl. media, die veel zijn gedeeld laten mogelijk sporen achter. Offline servers en servers die niet meer op jouw updates zijn geabonneerd zullen niet hun databases updaten. - warning_title: Verwijdering gegevens op andere servers directories: directory: Gebruikersgids - enabled: Je staat momenteel in de gebruikersgids vermeldt. - enabled_but_waiting: Je hebt er voor gekozen om in de gebruikersgids te worden vermeldt, maar je hebt daarvoor nog niet het minimaal aantal volgers (%{min_followers}). explanation: Ontdek gebruikers aan de hand van hun interesses explore_mastodon: "%{title} verkennen" - how_to_enable: Je geeft momenteel geen toestemming om in de gebruikersgids te worden vermeldt. Je kunt hieronder toestemming geven. Gebruik hashtags in de tekst van jouw bio, om onder bepaalde hashtags te worden vermeldt! - people: - one: "%{count} gebruikers" - other: "%{count} gebruikers" + domain_blocks: + domain: Domein + media_block: Mediabestanden weigeren + no_domain_blocks: "(geen domeinblokkades)" + severity: Zwaarte + severity_legend: + media_block: Mediabestanden die van deze server komen worden niet opgehaald, opgeslagen en aan de gebruiker getoond. + title: Zwaartes + show_rationale: Motivering tonen + silence: Negeren errors: + '400': The request you submitted was invalid or malformed. '403': Jij hebt geen toestemming om deze pagina te bekijken. '404': De pagina waarnaar jij op zoek bent bestaat niet. + '406': This page is not available in the requested format. '410': De pagina waarnaar jij op zoek bent bestaat niet meer. '422': content: Veiligheidsverificatie mislukt. Blokkeer je toevallig cookies? @@ -585,6 +631,7 @@ nl: '500': content: Het spijt ons, er is aan onze kant iets fout gegaan. title: Er is iets mis + '503': The page could not be served due to a temporary server failure. noscript_html: Schakel JavaScript in om de webapp van Mastodon te kunnen gebruiken. Als alternatief kan je een Mastodon-app zoeken voor jouw platform. existing_username_validator: not_found: Kon geen lokale gebruiker met die gebruikersnaam vinden @@ -628,6 +675,7 @@ nl: developers: Ontwikkelaars more: Meer… resources: Hulpmiddelen + trending_now: Trends generic: all: Alles changes_saved_msg: Wijzigingen succesvol opgeslagen! diff --git a/config/locales/no.yml b/config/locales/no.yml index fbf1383937..4cf080be91 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -328,14 +328,13 @@ deletes: bad_password_msg: Godt forsøk, hacker! Feil passord confirm_password: Skriv inn ditt passord for å verifisere din identitet - description_html: Dette vil permanent, irreversibelt fjerne innhold fra din konto og deaktivere den. Ditt brukernavn vil forbli reservert for å forhindre fremtidige etterligninger. proceed: Slett konto success_msg: Din konto ble slettet - warning_html: Kun sletting av innhold fra denne instansen er garantert. Innhold som har blitt delt i stor utstrekning vil sannsynligvis legge igjen spor. Tjenere som er frakoblet og tjenere som ikke abbonerer på dine oppdatereringer vil ikke oppdatere sine databaser. - warning_title: Tilgjengelighet av spredt innhold errors: + '400': The request you submitted was invalid or malformed. '403': Du har ikke tillatelse til å vise denne siden. '404': Siden du leter etter finnes ikke. + '406': This page is not available in the requested format. '410': Siden du leter etter finnes ikke lenger. '422': content: Sikkerhetsverifisering feilet. Blokkerer du informasjonskapsler? @@ -344,6 +343,7 @@ '500': content: Beklager men noe gikk galt ved vår ende. title: Denne siden er ikke korrekt + '503': The page could not be served due to a temporary server failure. noscript_html: For å bruke Mastodon webapplikasjon må du aktivere JavaScript. Alternativt kan du forsøke en av de mange integrerte appene for Mastodon til din plattform. exports: blocks: Du blokkerer diff --git a/config/locales/oc.yml b/config/locales/oc.yml index aac54639c1..65e381b3a2 100644 --- a/config/locales/oc.yml +++ b/config/locales/oc.yml @@ -582,24 +582,17 @@ oc: deletes: bad_password_msg: Ben ensajat pirata ! Senhal incorrècte confirm_password: Picatz vòstre senhal actual per verificar vòstra identitat - description_html: Aquò suprimirà definitivament e sens possibilitat de retorn lo contengut de vòstre compte e lo desactivarà. Lo nom d’utilizaire serà gardat per evitar una futura impostura. proceed: Suprimir lo compte success_msg: Compte ben suprimit - warning_html: La supression del contengut d’aqueste servidor es sola assegurada. Lo contengut fòrça partejat daissarà probablament de traças. Los servidors fòra-linha e los que vos sègon pas mai auràn pas la mesa a jorn de lor basa de donada. - warning_title: Disponibilitat del contengut difusat directories: directory: Annuari de perfils - enabled: Sètz actualament listat dins l'annuari. - enabled_but_waiting: Avètz causit d'èsser listat dins l'annuari mas avètz pas encara lo nombre minimum de seguidors (%{min_followers}) per i èsser listat. explanation: Trobar d’utilizaires segon lor interèsses explore_mastodon: Explorar %{title} - how_to_enable: Sètz pas actualament listat dins l’annuari. Podètz cambiar aquò çai-jos. Utilizatz d'etiquetas dins vòstre tèxt de bio per èsser listat amb d’etiquetas especificas ! - people: - one: "%{count} persona" - other: "%{count} personas" errors: + '400': The request you submitted was invalid or malformed. '403': Avètz pas l’autorizacion de veire aquesta pagina. '404': La pagina que cercatz existís pas aquí. + '406': This page is not available in the requested format. '410': La pagina que cercatz existís pas mai aquí. '422': content: Verificacion de seguretat fracassada. Blocatz los cookies ? @@ -608,6 +601,7 @@ oc: '500': content: Un quicomet a pas foncionat coma caliá. title: Aquesta pagina es pas corrècta + '503': The page could not be served due to a temporary server failure. noscript_html: Per utilizar l’aplicacion web de Mastodon, mercés d’activar JavaScript. O podètz utilizar una aplicacion per vòstra plataforma coma alernativa. existing_username_validator: not_found: impossible de trobar un utilizaire local amb aqueste nom d’utilizaire diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 6d6f407b30..0671979fef 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -571,26 +571,17 @@ pl: deletes: bad_password_msg: Niezła próba, hakerze! Wprowadzono nieprawidłowe hasło confirm_password: Wprowadź aktualne hasło, aby potwierdzić tożsamość - description_html: Ta opcja usunie bezpowrotnie i nieodwracalnie całą zawartość konta i zdezaktywuje je. Twoja nazwa użytkownika pozostanie zarezerwowana, aby zapobiec nadużyciom. proceed: Usuń konto success_msg: Twoje konto zostało pomyślnie usunięte - warning_html: Możemy usunąć zawartość jedynie w obrębie tego serwera. Zawartość udostępniona publicznie pozostawia trwałe ślady. Serwery niepodłączone do sieci bądź nieśledzące Twoich aktualizacji mogą zachować Twoje dane. - warning_title: Dostępność usuniętej zawartości directories: directory: Katalog profilów - enabled: Jesteś obecnie zapisany(-a) do katalogu - enabled_but_waiting: Jesteś zapisany(-a) do katalogu, ale jeszcze nie śledzi Cię wystarczająca liczba osób (%{min_followers}), aby się tam pojawić. explanation: Poznaj profile na podstawie zainteresowań explore_mastodon: Odkrywaj %{title} - how_to_enable: Nie jesteś obecnie zapisany(-a) do katalogu. Poniżej możesz zapisać się. Użyj hashtagów w swoim opisie, aby zostać wyświetlonym pod określonymi hashtagami! - people: - few: "%{count} osoby" - many: "%{count} osób" - one: "%{count} osoba" - other: "%{count} osób" errors: + '400': The request you submitted was invalid or malformed. '403': Nie masz uprawnień, aby wyświetlić tę stronę. '404': Strona, którą próbujesz odwiedzić, nie istnieje. + '406': This page is not available in the requested format. '410': Strona, którą próbujesz odwiedzić, przestała istnieć. '422': content: Sprawdzanie bezpieczeństwa nie powiodło się. Czy blokujesz pliki cookie? @@ -599,6 +590,7 @@ pl: '500': content: Przepraszamy, coś poszło nie tak, po naszej stronie. title: Ta strona jest nieprawidłowa + '503': The page could not be served due to a temporary server failure. noscript_html: Aby korzystać z aplikacji Mastodon, włącz JavaScript. Możesz też skorzystać z jednej z natywnych aplikacji obsługującej Twoje urządzenie. existing_username_validator: not_found: nie znaleziono lokalnego użytkownika o tej nazwie @@ -1005,9 +997,9 @@ pl:

Korzystanie ze strony przez dzieci

-

Jeżeli serwer znajduje się w UE lub w EOG: Ta strona, produkty i usługi są przeznaczone dla osób, które ukończyły 16 lat. Jeżeli nie ukończyłeś(-aś) 16 roku życia, zgodnie z wymogami COPPA (Prawo o Ochronie Prywatności Dzieci w Internecie), nie używaj tej strony.

+

Jeżeli serwer znajduje się w UE lub w EOG: Ta strona, produkty i usługi są przeznaczone dla osób, które ukończyły 16 lat. Jeżeli nie ukończyłeś(-aś) 16 roku życia, zgodnie z wymogami RODO (Ogólne rozporządzenie o ochronie danych), nie używaj tej strony.

-

Jeżeli serwer znajduje się w USA: Ta strona, produkty i usługi są przeznaczone dla osób, które ukończyły 13 lat. Jeżeli nie ukończyłeś(-aś) 13 roku życia, zgodnie z wymogami RODO (Ogólne rozporządzenie o ochronie danych), nie używaj tej strony.

+

Jeżeli serwer znajduje się w USA: Ta strona, produkty i usługi są przeznaczone dla osób, które ukończyły 13 lat. Jeżeli nie ukończyłeś(-aś) 13 roku życia, zgodnie z wymogami COPPA (Prawo o Ochronie Prywatności Dzieci w Internecie), nie używaj tej strony.

Wymogi mogą być inne, jeżeli serwer znajduje się w innym kraju.

diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index d653671830..af4d117e0b 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -528,24 +528,17 @@ pt-BR: deletes: bad_password_msg: Boa tentativa, hackers! Senha incorreta confirm_password: Insira a sua senha atual para verificar a sua identidade - description_html: Isto vai permanente e irreversivelmente remover conteúdo de sua conta e desativá-la. O seu nome de usuário permanecerá reservado para previnir futuros roubos de identidade. proceed: Excluir conta success_msg: A sua conta foi excluída com sucesso - warning_html: Apenas a exclusão de conteúdo desta instância em particular é garantida. Conteúdo que tenha sido largamente compartilhado muito provavelmente deixará traços. Servidores offline e servidores que se desinscreveram de suas atualizações não irão atualizar as suas bases de dados. - warning_title: Disponibilidade de conteúdo disseminado directories: directory: Diretório de perfis - enabled: Você está na lista do diretório. - enabled_but_waiting: Você escolheu ser listado no diretório, mas você ainda não tem o mínimo de seguidores (%{min_followers}) para ser listado. explanation: Descobrir usuários baseado em seus interesses explore_mastodon: Explorar %{title} - how_to_enable: Você não se inscreveu no diretório. Você pode se inscrever abaixo. Use hashtags no texto da sua bio para ser listado em hashtags específicas! - people: - one: "%{count} pessoa" - other: "%{count} pessoas" errors: + '400': The request you submitted was invalid or malformed. '403': Você não tem permissão para ver esta página. '404': A página pela qual você está procurando não existe. + '406': This page is not available in the requested format. '410': A página pela qual você está procurando não existe mais. '422': content: A verificação de segurança falhou. Você desativou o uso de cookies? @@ -554,6 +547,7 @@ pt-BR: '500': content: Desculpe, algo deu errado. title: Esta página não está certa + '503': The page could not be served due to a temporary server failure. noscript_html: Para usar o aplicativo web do Mastodon, por favor ative o JavaScript. Ou, se quiser, experimente um dos apps nativos para o Mastodon em sua plataforma. existing_username_validator: not_found: não foi possível encontrar um usuário local com esse nome de usuário diff --git a/config/locales/pt.yml b/config/locales/pt.yml index 4f04419918..eeb158f6c3 100644 --- a/config/locales/pt.yml +++ b/config/locales/pt.yml @@ -501,26 +501,17 @@ pt: deletes: bad_password_msg: Boa tentativa, hackers! Palavra-passe incorreta confirm_password: Introduz a palavra-passe atual para verificar a tua identidade - description_html: Isto vai permanente e irreversivelmente remover conteúdo da tua conta e desativá-la. O teu nome de utilizador permanecerá reservado para prevenir futuros roubos de identidade. proceed: Eliminar conta success_msg: A tua conta foi eliminada com sucesso - warning_html: |- - Apenas a eliminação de conteúdo desta instância é garantido. - Conteúdo que tenha sido partilhado com outras instâncias muito provavelmente deixará pegadas. Servidores offline e servidores que se desinscreveram das tuas atualizações não atualizarão as suas bases de dados. - warning_title: Disponibilidade de conteúdo disseminado directories: directory: Dirétorio de perfil - enabled: Neste momento tu estás listado no dirétorio. - enabled_but_waiting: Tu escolheste ser listado no diretório, mas ainda não tens o número mínimo de seguidores (%{min_followers}) para integrares esta lista. explanation: Descobre utilizadores com base nos seus interesses explore_mastodon: Explorar %{title} - how_to_enable: Tu ainda não integras este directório. Podes fazer isso abaixo. Usa hashtags na tua biografia para seres listado em hashtags específicas! - people: - one: "%{count} pessoa" - other: "%{count} pessoas" errors: + '400': The request you submitted was invalid or malformed. '403': Não tens a permissão necessária para ver esta página. '404': A página que estás a procurar não existe. + '406': This page is not available in the requested format. '410': A página que estás a procurar não existe mais. '422': content: "A verificação de segurança falhou. \nDesativaste o uso de cookies?" @@ -529,6 +520,7 @@ pt: '500': content: Desculpe, mas algo correu mal. title: Esta página não está correta + '503': The page could not be served due to a temporary server failure. noscript_html: Para usar o aplicativo web do Mastodon, por favor ativa o JavaScript. Alternativamente, experimenta um dos apps nativos para o Mastodon na sua plataforma. exports: archive_takeout: diff --git a/config/locales/ro.yml b/config/locales/ro.yml index 0f0d6b8922..d04d0015f7 100644 --- a/config/locales/ro.yml +++ b/config/locales/ro.yml @@ -45,20 +45,16 @@ ro: deletes: bad_password_msg: Bună încercare, hackere! Parolă incorectă confirm_password: Introdu parola curentă pentru a-ți verifica identitatea - description_html: Această acțiune este permanentă și ireversibilă, elimină conținutul și dezactivează contul tău. Acest username va rămâne permanent rezervat pentru a evita furtul de identitate. proceed: Șterge contul success_msg: Contul tău a fost șterg. Nu mai poate fi recuperat :D - warning_html: Doar ștergerea conținutului de pe acest server este garantată. Conținutul tău care a fost redistribuit în alte instațe e posibil să lase urme. Serverele deconecate sau care nu mai sunt abonate la actualizările contului tău nu își vor mai actualiza baza de date. directories: explanation: Descoperă oameni și companii în funcție de interesele lor explore_mastodon: Explorează %{title} - people: - few: "%{count} persoană" - one: "%{count} persoană" - other: "%{count} oameni" errors: + '400': The request you submitted was invalid or malformed. '403': Nu ai permisiunea să vizitezi această pagină. '404': Pagina pe care o cauți nu există. + '406': This page is not available in the requested format. '410': Pagina pe care o cauți nu mai există. '422': content: Verificarea securității a eșuat. Ai blocat cookiurile? @@ -67,6 +63,7 @@ ro: '500': content: Ne pare rău, dar ceva a funcționat greșit. Încercați din nou!? title: Această pagină nu este corectă + '503': The page could not be served due to a temporary server failure. noscript_html: Pentru a utiliza o aplicație web Mastodon, te rog activează JavaScript. Alternativ, încearcă una din aplicațiile native Mastodon pentru platforma ta. exports: archive_takeout: diff --git a/config/locales/ru.yml b/config/locales/ru.yml index ec639c7a9c..d1ed8d1de1 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -279,6 +279,7 @@ ru: week_users_new: пользователей на этой неделе whitelist_mode: Белый список domain_allows: + add_new: Внести в белый список created_msg: Домен добавлен в белый список destroyed_msg: Домен убран из белого списка undo: Убрать из белого списка @@ -345,9 +346,11 @@ ru: all: Все limited: Ограниченные title: Модерация + private_comment: Приватный комментарий + public_comment: Публичный комментарий title: Известные узлы total_blocked_by_us: Заблокировано нами - total_followed_by_them: Заблокировано ими + total_followed_by_them: Их подписчиков total_followed_by_us: Наших подписчиков total_reported: Жалобы на них total_storage: Медиафайлы @@ -495,6 +498,7 @@ ru: title: Статусы аккаунта with_media: С медиаконтентом tags: + context: Контекст title: Хэштеги title: Администрирование warning_presets: @@ -581,26 +585,19 @@ ru: deletes: bad_password_msg: Не вышло, хакеры! Неверный пароль confirm_password: Введите текущий пароль для подтверждения Вашей личности - description_html: Это действие перманентно и необратимо удалит контент Вашего аккаунта и деактивирует его. Ваше имя пользователя будет зарезервировано для предотвращения имперсонации в будущем. proceed: Удалить аккаунт success_msg: Ваш аккаунт был успешно удален - warning_html: Гарантируется удаление контента только на этом узле. Широко распространившийся контент, скорее всего, оставит следы. Сервера, отключенные от сети или отписавшиеся от Ваших обновлений, не обновят свои базы данных. - warning_title: О доступности распространившегося контента directories: directory: Каталог профилей - enabled: В настоящий момент вы указаны в каталоге. - enabled_but_waiting: Вы согласились находиться в каталоге, но у вас ещё нет необходимого количества подписчиков (%{min_followers}), чтобы оказаться в каталоге. explanation: Находите пользователей по интересам explore_mastodon: Изучайте %{title} - how_to_enable: Вы ещё не находитесь в каталоге. Можете добавиться ниже. Используйте хэштеги в разделе "о себе", чтобы вас находили по этим хэштегам! - people: - few: "%{count} человека" - many: "%{count} человек" - one: "%{count} человек" - other: "%{count} человек" + domain_blocks: + domain: Домен errors: + '400': The request you submitted was invalid or malformed. '403': У Вас нет доступа к просмотру этой страницы. '404': Страница, которую Вы искали, не существует. + '406': This page is not available in the requested format. '410': Страница, которую Вы искали, больше не существует. '422': content: Проверка безопасности не удалась. Возможно, Вы блокируете cookies? @@ -609,6 +606,7 @@ ru: '500': content: Приносим извинения, но на нашей стороне что-то пошло не так. title: Страница неверна + '503': The page could not be served due to a temporary server failure. noscript_html: Для работы с Mastodon, пожалуйста, включите JavaScript. Кроме того, вы можете использовать одно из приложений Mastodon для Вашей платформы. existing_username_validator: not_found: не удалось найти локального пользователя с таким именем @@ -1073,7 +1071,7 @@ ru: suspend: Аккаунт заблокирован welcome: edit_profile_action: Настроить профиль - edit_profile_step: Вы можете настроить свой профиль, загрузив аватар, обложку, сменив имя и много чего ещё. Если вы хотите фильтровать подписчиков до того, как они смогут на вас подписаться, вы можете закрыть свой аккаунт. + edit_profile_step: Настройте свой профиль, загрузив аватарку, шапку, изменив отображаемое имя и ещё много чего. Если вы хотите вручную рассматривать и подтверждать подписчиков, можно закрыть свой аккаунт. explanation: Несколько советов для новичков final_action: Начать постить final_step: 'Начните постить! Ваши публичные посты могут видеть другие, например, в локальной ленте или по хэштегам, даже если у вас нет подписчиков. Вы также можете поздороваться с остальными и представиться, используя хэштег #приветствие.' diff --git a/config/locales/simple_form.ar.yml b/config/locales/simple_form.ar.yml index 963693d02b..e09f92205a 100644 --- a/config/locales/simple_form.ar.yml +++ b/config/locales/simple_form.ar.yml @@ -103,6 +103,7 @@ ar: setting_show_application: اكشف اسم التطبيقات المستخدمة لنشر التبويقات setting_system_font_ui: استخدم الخطوط الافتراضية للنظام setting_theme: سمة الموقع + setting_trends: اعرض ما يُتداوَل اليوم setting_unfollow_modal: إظهار مربع حوار للتأكيد قبل إلغاء متابعة أي حساب setting_use_pending_items: الوضع البطيء severity: القوّة @@ -126,6 +127,9 @@ ar: mention: ابعث بريداً إلكترونيًا عندما يُشير إليك أو يذكُرك أحدهم reblog: ابعث بريداً إلكترونيًا عندما يقوم أحدهم بترقية منشورك report: إرسال رسالة إلكترونية عند تلقّي إبلاغ جديد + tag: + name: الوسم + usable: اسمح للتبويقات باستخدام هذا الوسم 'no': لا recommended: موصى بها required: diff --git a/config/locales/simple_form.ca.yml b/config/locales/simple_form.ca.yml index 33d5a84931..6a13e81e35 100644 --- a/config/locales/simple_form.ca.yml +++ b/config/locales/simple_form.ca.yml @@ -15,7 +15,6 @@ ca: bot: Aquest compte realitza principalment accions automatitzades i pot no estar controlat per cap persona context: Un o diversos contextos on s'ha d'aplicar el filtre digest: Només s'envia després d'un llarg període d'inactivitat amb un resum de les mencions que has rebut en la teva absència - discoverable_html: El directori permet trobar usuaris en funció dels interessos i activitat. Requereix almenys %{min_followers} seguidors email: Se t'enviarà un correu electrònic de confirmació fields: Pots tenir fins a 4 elements que es mostren com a taula al teu perfil header: PNG, GIF o JPG. Màxim %{size}. S'escalarà a %{dimensions}px @@ -38,6 +37,8 @@ ca: setting_use_pending_items: Amaga les actualitzacions de la línia de temps després d'un clic en comptes de desplaçar-se automàticament username: El teu nom d'usuari serà únic a %{domain} whole_word: Quan la paraula clau o la frase sigui només alfanumèrica, s'aplicarà si coincideix amb la paraula sencera + domain_allow: + domain: Aquest domini podrà obtenir dades d’aquest servidor i les dades entrants d’aquests seran processades i emmagatzemades featured_tag: name: 'És possible que vulguis utilitzar un d''aquests:' imports: @@ -46,6 +47,8 @@ ca: text: Això ens ajudarà a revisar la teva petició sessions: otp: 'Introdueix el codi de dos factors generat per el teu telèfon o utilitza un dels teus codis de recuperació:' + tag: + name: Només pots canviar la caixa de les lletres, per exemple, per fer-la més llegible user: chosen_languages: Quan estigui marcat, només es mostraran els toots de les llengües seleccionades en les línies de temps públiques labels: @@ -110,6 +113,7 @@ ca: setting_show_application: Desvela l'aplicació utilitzada per enviar toots setting_system_font_ui: Utilitza el tipus de lletra predeterminat del sistema setting_theme: Tema del lloc + setting_trends: Mostra les tendències d'avui setting_unfollow_modal: Mostra el diàleg de confirmació abans de deixar de seguir a algú setting_use_blurhash: Mostra degradats de colors per als Mèdia amagats setting_use_pending_items: Mode lent @@ -135,6 +139,11 @@ ca: pending_account: Envia un correu electrònic quan es necessiti revisar un compte nou reblog: Envia un correu electrònic si algú comparteix el teu estat report: Envia un correu electrònic quan s'enviï un nou informe + trending_tag: Envia un correu quan una etiqueta sense revisar està en tendència + tag: + listable: Permet que aquesta etiqueta aparegui en les cerques i en el directori de perfils + trendable: Permet que aquesta etiqueta aparegui en les tendències + usable: Permet als tuts emprar aquesta etiqueta 'no': 'No' recommended: Recomanat required: diff --git a/config/locales/simple_form.co.yml b/config/locales/simple_form.co.yml index 636d5f7aaa..eeb5a913a4 100644 --- a/config/locales/simple_form.co.yml +++ b/config/locales/simple_form.co.yml @@ -5,6 +5,7 @@ co: account_warning_preset: text: Pudete utilizà a sintassa di i statuti, per esempiu l'URL, hashtag, minzione admin_account_action: + include_statuses: L'utilizatore viderà i statuti rispunsevuli di l'azzione o l'avertimentu di muderazione send_email_notification: L'utilizatore hà da riceve una spiegazione di cio chì hè accadutu à u so contu text_html: In uzzione. Pudete utilizà a sintassa di i statuti. Pudete ancu aghjustà preselezzione d'avertimentu per piglià tempu type_html: Sceglie chì fà cù %{acct} @@ -15,7 +16,7 @@ co: bot: Stu contu hè autumatizatu è ùn hè forse micca survegliatu context: Cuntestu·i induve u filtru deve esse applicatu digest: Solu mandatu dopu à una longa perioda d’inattività, è solu s’elli ci sò novi missaghji diretti - discoverable_html: L'annuariu permette à a ghjente di truvà conti à partesi d'interessi è d'attività. Ci vole à avè almenu %{min_followers} abbunati + discoverable: L'annuariu di i prufili hè un'altra manera per u vostru contu di tuccà un'audienza più larga email: Avete da riceve un'e-mail di cunfirmazione fields: Pudete avè fin’à 4 elementi mustrati cum’un tavulone nant’à u vostru prufile header: Furmatu PNG, GIF o JPG. %{size} o menu. Sarà ridottu à %{dimensions}px @@ -60,6 +61,7 @@ co: account_warning_preset: text: Testu preselezziunatu admin_account_action: + include_statuses: Inchjude i statuti palisati indè l'e-mail send_email_notification: Nutificà l'utilizatore cù un'e-mail text: Avertimentu persunalizatu type: Azzione @@ -143,6 +145,7 @@ co: trending_tag: Mandà un'e-mail quandu un hashtag micca verificatu hè in e tendenze tag: listable: Auturizà stu hashtag à esse vistu nant'à l'annuariu di i prufili + name: Hashtag trendable: Auturizà stu hashtag à esse vistu in e tendenze usable: Auturizà i statuti à utilizà stu hashtag 'no': Nò diff --git a/config/locales/simple_form.cs.yml b/config/locales/simple_form.cs.yml index beabcd0870..b6b61747f2 100644 --- a/config/locales/simple_form.cs.yml +++ b/config/locales/simple_form.cs.yml @@ -5,6 +5,7 @@ cs: account_warning_preset: text: Můžete používat syntaxi tootů, jako například URL, hashtagy a zmínky admin_account_action: + include_statuses: Uživatel uvidí, které tooty způsobily moderátorskou akci nebo varování send_email_notification: Uživatel obdrží vysvětlení toho, co se stalo s jeho účtem text_html: Volitelné. Můžete používat syntaxi tootů. Pro ušetření času si můžete přidat předlohy pro varování type_html: Vyberte, co chcete udělat s účtem %{acct} @@ -15,7 +16,7 @@ cs: bot: Tento účet provádí hlavně automatizované akce a nemusí být spravován context: Jeden či více kontextů, ve kterých má být filtr uplatněn digest: Odesíláno pouze po dlouhé době nečinnosti a pouze, pokud jste při své nepřítomnosti obdržel/a osobní zprávy - discoverable_html: Adresář dovoluje lidem najít účty podle zájmů a aktivity. Vyžaduje alespoň %{min_followers} sledujících + discoverable: Adresář profilů je další způsob, díky kterému se může váš účet dostat k širšímu publiku email: Bude vám poslán potvrzovací e-mail fields: Na profilu můžete mít až 4 položky zobrazené jako tabulka header: PNG, GIF či JPG. Maximálně %{size}. Bude zmenšen na %{dimensions} px @@ -38,6 +39,8 @@ cs: setting_use_pending_items: Skrýt aktualizace časový osy a načíst je kliknutím namísto automatického rolování proudu username: Vaše uživatelské jméno bude na %{domain} unikátní whole_word: Je-li klíčové slovo či fráze pouze alfanumerická, bude aplikována pouze, pokud se shoduje s celým slovem + domain_allow: + domain: Tato doména bude moci stahovat data z tohoto serveru a příchozí data z ní budou zpracována a uložena featured_tag: name: 'Nejspíš budete chtít použít jeden z těchto:' imports: @@ -46,6 +49,8 @@ cs: text: To nám pomůže posoudit váš požadavek sessions: otp: 'Napište dvoufázový kód vygenerovaný vaší mobilní aplikací, nebo použijte jeden z vašich záložních kódů:' + tag: + name: Můžete měnit pouze velikost písmen, například kvůli lepší čitelnosti user: chosen_languages: Je-li tohle zaškrtnuto, budou ve veřejných časových osách zobrazeny pouze tooty ve zvolených jazycích labels: @@ -56,6 +61,7 @@ cs: account_warning_preset: text: Text předlohy admin_account_action: + include_statuses: Zahrnout v e-mailu nahlášené tooty send_email_notification: Informovat uživatele e-mailem text: Vlastní varování type: Akce @@ -110,6 +116,7 @@ cs: setting_show_application: Zobrazit aplikaci používanou k psaní tootů setting_system_font_ui: Použít výchozí písmo systému setting_theme: Motiv stránky + setting_trends: Zobrazit dnešní trendy setting_unfollow_modal: Zobrazovat před zrušením sledování potvrzovací okno setting_use_blurhash: Zobrazit pro skrytá média barevné gradienty setting_use_pending_items: Pomalý režim @@ -135,6 +142,12 @@ cs: pending_account: Posílat e-maily, když je třeba posoudit nový účet reblog: Posílat e-maily, když někdo boostne váš toot report: Posílat e-maily, je-li odesláno nové nahlášení + trending_tag: Posílat e-maily, když se neschválený hashtag stane populárním + tag: + listable: Dovolit tomuto hashtagu objevovat se v hledáních a v adresáři profilů + name: Hashtag + trendable: Dovolit tomuto hashtagu objevovat se v trendech + usable: Dovolit tootům používat tento hashtag 'no': Ne recommended: Doporučeno required: diff --git a/config/locales/simple_form.cy.yml b/config/locales/simple_form.cy.yml index 9f4ef0708e..1d5ecae959 100644 --- a/config/locales/simple_form.cy.yml +++ b/config/locales/simple_form.cy.yml @@ -15,7 +15,6 @@ cy: bot: Mae'r cyfrif hwn yn perfformio gweithredoedd awtomatig yn bennaf ac mae'n bosib nad yw'n cael ei fonitro context: Un neu fwy cyd-destun lle dylai'r hidlydd weithio digest: Ond yn cael eu hanfon ar ôl cyfnod hir o anweithgarwch ac ond os ydych wedi derbyn unrhyw negeseuon personol yn eich absenoldeb - discoverable_html: Mae'r cyfeiriadur yn gadael i bobl ddarganfod cyfrifau wedi'i seilio ar ddiddordebau a gweithgareddau.. Mae hyn angen o leiaf %{min_followers} o ddilynwyr email: Byddwch yn derbyn e-bost i gadarnhau fields: Mae modd i chi arddangos hyd at 4 eitem fel tabl ar eich proffil header: PNG, GIF neu JPG. %{size} ar y mwyaf. Ceith ei israddio i %{dimensions}px diff --git a/config/locales/simple_form.da.yml b/config/locales/simple_form.da.yml index 324afece65..48a0a68834 100644 --- a/config/locales/simple_form.da.yml +++ b/config/locales/simple_form.da.yml @@ -26,6 +26,8 @@ da: setting_noindex: Påvirker din offentlige profil og status sider username: Dit brugernavn vil være unikt på %{domain} whole_word: Når nøgle ordet eller udtrykket kun er alfanumerisk, vil det kun blive brugt hvis det passer hele ordet + featured_tag: + name: 'Du kunne måske tænke dig at bruge en af følgende:' imports: data: CSV fil eksporteret fra en anden Mastodon server sessions: @@ -83,6 +85,7 @@ da: setting_system_font_ui: Brug systemets standard font setting_theme: Tema for side setting_unfollow_modal: Vis bekræftelses dialog før du stopper med at følge nogen + setting_use_pending_items: Langsom tilstand severity: Omfang type: Importtype username: Brugernavn @@ -92,6 +95,8 @@ da: must_be_follower: Bloker notifikationer fra folk der ikke følger dig must_be_following: Bloker notifikationer fra folk du ikke følger must_be_following_dm: Bloker direkte beskeder fra folk du ikke følger + invite_request: + text: Hvorfor ønsker du at tilmelde dig? notification_emails: digest: Send sammendrag via emails favourite: Send email når nogen favoriserer din status @@ -100,7 +105,11 @@ da: mention: Send e-mail når nogen nævner dig reblog: Send email når nogen fremhæver din status report: Send email når en ny anmeldelse bliver indsendt + tag: + name: Hashtag 'no': Nej + recommended: Anbefalet required: + mark: "*" text: påkrævet 'yes': Ja diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml index b9e7c01d3c..ac153805e9 100644 --- a/config/locales/simple_form.de.yml +++ b/config/locales/simple_form.de.yml @@ -5,6 +5,7 @@ de: account_warning_preset: text: Du kannst Beitragssyntax benutzen, wie z.B. URLs, Hashtags und Erwähnungen admin_account_action: + include_statuses: Der Benutzer wird sehen, welche Beiträge diese Maßnahme verursacht haben send_email_notification: Benutzer_in wird Bescheid gegeben, was mit dem Konto geschehen ist text_html: Optional. Du kannst Beitragssyntax nutzen. Du kannst Warnungsvorlagen benutzen um Zeit zu sparen type_html: Wähle aus, was du mit %{acct} machen möchtest @@ -15,7 +16,7 @@ de: bot: Dieses Konto führt lediglich automatisierte Aktionen durch und wird möglicherweise nicht überwacht context: Ein oder mehrere Kontexte, wo der Filter aktiv werden soll digest: Wenn du eine lange Zeit inaktiv bist, wird dir eine Zusammenfassung von Erwähnungen zugeschickt, die du in deiner Abwesenheit empfangen hast - discoverable_html: Das Verzeichnis erlaubt es dein Profil durch deine Hashtags und deine Aktivitäten zu entdecken. Voraussetzung ist allerdings mindestens %{min_followers} Folger_innen + discoverable: Das Profilverzeichnis ist eine andere Möglichkeit, mit der dein Konto ein größeres Publikum erreichen kann email: Du wirst eine Bestätigungs-E-Mail erhalten fields: Du kannst bis zu 4 Elemente auf deinem Profil anzeigen lassen, die als Tabelle dargestellt werden header: PNG, GIF oder JPG. Maximal %{size}. Wird auf %{dimensions} px herunterskaliert @@ -60,6 +61,7 @@ de: account_warning_preset: text: Vorlagentext admin_account_action: + include_statuses: Meldungen der E-Mail beifügen send_email_notification: Benachrichtige den Nutzer per E-Mail text: Eigene Warnung type: Aktion @@ -143,6 +145,7 @@ de: trending_tag: E-Mail senden, wenn ein ausstehender Hashtag angesagt ist tag: listable: Erlaube diesem Hashtag im Profilverzeichnis zu erscheinen + name: Hashtag trendable: Erlaube es diesen Hashtag in den Trends erscheinen zu lassen usable: Beiträge erlauben, diesen Hashtag zu verwenden 'no': Nein diff --git a/config/locales/simple_form.el.yml b/config/locales/simple_form.el.yml index 30252458c5..4eb0ce7104 100644 --- a/config/locales/simple_form.el.yml +++ b/config/locales/simple_form.el.yml @@ -5,6 +5,7 @@ el: account_warning_preset: text: Μπορεις να χρησιμοποιήσεις συντακτικό ενός τουτ όπως διευθύνσεις URL, ταμπέλες και αναφορές admin_account_action: + include_statuses: Ο χρήστης θα δει ποια τουτ προκάλεσαν την προειδοποίηση ή την ενέργεια των διαχειριστών send_email_notification: Ο χρήστης θα λάβει μια εξήγηση του τι συνέβη με τον λογαριασμό του text_html: Προαιρετικό. Μπορείς να χρησιμοποιήσεις συντακτικό ενός τουτ. Μπορείς να ορίσεις προκαθορισμένες προειδοποιήσεις για να γλυτώσεις χρόνο type_html: Διάλεξε τι θα κανείς με τον %{acct} @@ -15,7 +16,7 @@ el: bot: Ο λογαριασμός αυτός εκτελεί κυρίως αυτοματοποιημένες ενέργειες και ίσως να μην παρακολουθείται context: Ένα ή περισσότερα πλαίσια στα οποία μπορεί να εφαρμόζεται αυτό το φίλτρο digest: Αποστέλλεται μόνο μετά από μακρά περίοδο αδράνειας και μόνο αν έχεις λάβει προσωπικά μηνύματα κατά την απουσία σου - discoverable_html: "Ο κατάλογος \nσου επιτρέπει να βρεις λογαριασμούς βάσει ενδιαφερόντων και δραστηριότητας. Απαιτεί τουλάχιστον %{min_followers} ακόλουθους" + discoverable: Ο κατάλογος λογαριασμών είναι ένας ακόμα τρόπος ώστε ο λογαριασμός σου να βρει μεγαλύτερο κοινό email: Θα σου σταλεί email επιβεβαίωσης fields: Μπορείς να έχεις έως 4 σημειώσεις σε μορφή πίνακα στο προφίλ σου header: PNG, GIF ή JPG. Έως %{size}. Θα περιοριστεί σε διάσταση %{dimensions}px @@ -60,6 +61,7 @@ el: account_warning_preset: text: Προκαθορισμένο κείμενο admin_account_action: + include_statuses: Συμπερίληψη των καταγγελλομένων τουτ στο email send_email_notification: Ενημέρωση χρήστη μέσω email text: Προσαρμοσμένη προειδοποίηση type: Ενέργεια @@ -143,6 +145,7 @@ el: trending_tag: Αποστολή email όταν μια μη-εγκεκριμένη ταμπέλα γίνεται δημοφιλής tag: listable: Εμφάνιση αυτής της ταμπέλας στο δημόσιο κατάλογο + name: Ταμπέλα trendable: Εμφάνιση της ταμπέλας στις τάσεις usable: Χρήση της ταμπέλας σε τουτ 'no': Όχι diff --git a/config/locales/simple_form.eo.yml b/config/locales/simple_form.eo.yml index f8c213858b..b6bacde3ab 100644 --- a/config/locales/simple_form.eo.yml +++ b/config/locales/simple_form.eo.yml @@ -15,7 +15,6 @@ eo: bot: Tiu konto ĉefe faras aŭtomatajn agojn, kaj povas esti ne kontrolata context: Unu ol pluraj kuntekstoj kie la filtrilo devus agi digest: Sendita nur post longa tempo de neaktiveco, kaj nur se vi ricevis personan mesaĝon en via foresto - discoverable_html: La profilujo permesas al homoj trovi kontojn laŭ interesoj kaj aktiveco. Postulas almenaŭ %{min_followers} sekvantojn email: Vi ricevos konfirman retmesaĝon fields: Vi povas havi ĝis 4 tabelajn elementojn en via profilo header: Formato PNG, GIF aŭ JPG. Ĝis %{size}. Estos malgrandigita al %{dimensions}px @@ -108,7 +107,7 @@ eo: setting_show_application: Publikigi la aplikaĵon uzatan por sendi mesaĝojn setting_system_font_ui: Uzi la dekomencan tiparon de la sistemo setting_theme: Reteja etoso - setting_trends: Montru Hodiaujn tendencojn + setting_trends: Montri hodiaŭajn furoraĵojn setting_unfollow_modal: Montri fenestron por konfirmi antaŭ ol ĉesi sekvi iun setting_use_pending_items: Malrapida reĝimo severity: Graveco @@ -133,7 +132,10 @@ eo: pending_account: Sendi retmesaĝon kiam nova konto bezonas kontrolon reblog: Sendi retmesaĝon kiam iu diskonigas vian mesaĝon report: Sendi retmesaĝon kiam nova signalo estas sendita + trending_tag: Sendi retpoŝtmesaĝon kiam nekontrolita kradvorto furoras tag: + name: Kradvorto + trendable: Permesi al ĉi tiu kradvorto aperi en furoraĵoj usable: Permesi tootojn uzi ĉiun tiun haketon 'no': Ne recommended: Rekomendita diff --git a/config/locales/simple_form.es.yml b/config/locales/simple_form.es.yml index 4f227dd9d7..35cebcad80 100644 --- a/config/locales/simple_form.es.yml +++ b/config/locales/simple_form.es.yml @@ -15,7 +15,6 @@ es: bot: Esta cuenta ejecuta principalmente acciones automatizadas y podría no ser monitorizada context: Uno o múltiples contextos en los que debe aplicarse el filtro digest: Solo enviado tras un largo periodo de inactividad y solo si has recibido mensajes personales durante tu ausencia - discoverable_html: El directorio permite a la gente encontrar cuentas basadas en intereses y actividad. Requiere al menos %{min_followers} seguidores email: Se le enviará un correo de confirmación fields: Puedes tener hasta 4 elementos mostrándose como una tabla en tu perfil header: PNG, GIF o JPG. Máximo %{size}. Será escalado a %{dimensions}px diff --git a/config/locales/simple_form.et.yml b/config/locales/simple_form.et.yml index c87db1042a..c52818a354 100644 --- a/config/locales/simple_form.et.yml +++ b/config/locales/simple_form.et.yml @@ -15,7 +15,6 @@ et: bot: See konto teeb enamjaolt automatiseeritud tegevusi ja ei pruugi olla järelvalve all context: Üks või mitu konteksti, mille vastu see filter peaks rakenduma digest: Saadetakse ainult pärast pikka perioodi tegevusetust ja ainult siis, kui Teile on saadetud privaatseid sõnumeid - discoverable_html: Kataloog aitab inimestel leida kontosi sarnaste huvide ja aktiivsuse alusel. Nõuab vähemalt %{min_followers} jälgijat email: Teile saadetakse kinnituskiri e-posti teel fields: Te saate oma profiilil tabelina kuvada kuni 4 asja header: PNG, GIF või JPG. Kõige rohkem %{size}. Vähendatakse %{dimensions} pikslini diff --git a/config/locales/simple_form.eu.yml b/config/locales/simple_form.eu.yml index 0a88116f16..65fa6c846b 100644 --- a/config/locales/simple_form.eu.yml +++ b/config/locales/simple_form.eu.yml @@ -15,7 +15,6 @@ eu: bot: Kontu honek nagusiki automatizatutako ekintzak burutzen ditu eta agian ez du inork monitorizatzen context: Iragazkia aplikatzeko testuinguru bat edo batzuk digest: Jarduerarik gabeko epe luze bat eta gero mezu pertsonalen bat jaso baduzu, besterik ez - discoverable_html: Direktorioak Jendea interesen eta jardueraren arabera aurkitzea ahalbidetzen du. Gutxienez %{min_followers} jarraitzaile behar dira bertan agertzeko email: Baieztapen e-mail bat bidaliko zaizu fields: 4 elementu bistaratu ditzakezu taula batean zure profilean header: PNG, GIF edo JPG. Gehienez %{size}. %{dimensions}px eskalara txikituko da diff --git a/config/locales/simple_form.fa.yml b/config/locales/simple_form.fa.yml index 655c57bc3d..90e644e556 100644 --- a/config/locales/simple_form.fa.yml +++ b/config/locales/simple_form.fa.yml @@ -15,7 +15,6 @@ fa: bot: این حساب بیشتر به طور خودکار فعالیت می‌کند و نظارت پیوسته‌ای روی آن وجود ندارد context: یک یا چند زمینه که فیلتر باید در آن‌ها اعمال شود digest: تنها وقتی فرستاده می‌شود که مدتی طولانی فعالیتی نداشته باشید و در این مدت برای شما پیغام خصوصی‌ای نوشته شده باشد - discoverable_html: با فهرست گزیدهٔ کاربران مردم می‌توانند حساب‌های این سرور را بر اساس علاقه‌مندی‌ها و فعالیت‌شان پیدا کنند. هر حساب دست‌کم باید %{min_followers} پیگیر داشته باشد email: به شما ایمیل تأییدی فرستاده خواهد شد fields: شما می‌توانید تا چهار مورد را در یک جدول در نمایهٔ خود نمایش دهید header: یکی از قالب‌های PNG یا GIF یا JPG. بیشترین اندازه %{size}. تصویر به اندازهٔ %{dimensions} پیکسل تبدیل خواهد شد diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml index 6b3aa9bfba..a92c20f105 100644 --- a/config/locales/simple_form.fr.yml +++ b/config/locales/simple_form.fr.yml @@ -5,6 +5,7 @@ fr: account_warning_preset: text: Vous pouvez utiliser la syntaxe des pouets, comme les URLs, les hashtags et les mentions admin_account_action: + include_statuses: L’utilisateur·rice verra quels sont les pouets qui ont provoqué l’action de modération ou l’avertissement send_email_notification: L’utilisateur recevra une explication de ce qu’il s’est passé avec son compte text_html: Optionnel. Vous pouvez utilisez la syntaxe des pouets. Vous pouvez ajouter des présélections d’attention pour économiser du temps type_html: Choisir que faire avec %{acct} @@ -15,7 +16,7 @@ fr: bot: Ce compte exécute principalement des actions automatisées et pourrait ne pas être surveillé context: Un ou plusieurs contextes où le filtre devrait s’appliquer digest: Uniquement envoyé après une longue période d’inactivité et uniquement si vous avez reçu des messages personnels pendant votre absence - discoverable_html: L’annuaire permet aux gens de trouver des comptes en se basant sur les intérêts et les activités. Nécessite au moins %{min_followers} abonnés + discoverable: L’annuaire des profils est une autre façon pour votre compte d’atteindre une plus grand audience email: Vous recevrez un courriel de confirmation fields: Vous pouvez avoir jusqu’à 4 éléments affichés en tant que tableau sur votre profil header: Au format PNG, GIF ou JPG. %{size} maximum. Sera réduit à %{dimensions}px @@ -34,8 +35,12 @@ fr: setting_hide_network: Ceux que vous suivez et ceux qui vous suivent ne seront pas affichés sur votre profil setting_noindex: Affecte votre profil public ainsi que vos statuts setting_show_application: Le nom de l’application que vous utilisez afin d’envoyer des pouets sera affiché dans la vue détaillée de ceux-ci + setting_use_blurhash: Les dégradés sont basés sur les couleurs des visuels cachés mais ne divulgent pas les détails + setting_use_pending_items: Masquer les mises à jour chronologiques derrière un clic au lieu de les montrer automatiquement en faisant défiler le flux d'actualités username: Votre nom d’utilisateur sera unique sur %{domain} whole_word: Lorsque le mot-clef ou la phrase-clef est uniquement alphanumérique, ça sera uniquement appliqué s’il correspond au mot entier + domain_allow: + domain: Ce domaine pourra récupérer des données de ce serveur et les données entrantes seront traitées et stockées featured_tag: name: 'Vous pourriez vouloir utiliser l’un d’entre eux :' imports: @@ -44,6 +49,8 @@ fr: text: Cela nous aidera à considérer votre demande sessions: otp: 'Entrez le code d’authentification à deux facteurs généré par l’application de votre téléphone ou utilisez un de vos codes de récupération :' + tag: + name: Vous ne pouvez modifier que la casse des lettres, par exemple, pour le rendre plus lisible user: chosen_languages: Lorsque coché, seuls les pouets dans les langues sélectionnées seront affichés sur les fils publics labels: @@ -54,6 +61,7 @@ fr: account_warning_preset: text: Texte de présélection admin_account_action: + include_statuses: Inclure les pouets signalés dans le courriel send_email_notification: Notifier l’utilisateur par courriel text: Attention personnalisée type: Action @@ -108,7 +116,10 @@ fr: setting_show_application: Dévoiler le nom de l’application utilisée pour envoyer des pouets setting_system_font_ui: Utiliser la police par défaut du système setting_theme: Thème du site + setting_trends: Afficher les tendances du jour setting_unfollow_modal: Afficher une fenêtre de confirmation avant de vous désabonner d’un compte + setting_use_blurhash: Afficher les dégradés colorés pour les médias cachés + setting_use_pending_items: Mode lent severity: Sévérité type: Type d’import username: Identifiant @@ -131,6 +142,12 @@ fr: pending_account: Envoyer un courriel lorsqu’un nouveau compte est en attente d’approbation reblog: Envoyer un courriel lorsque quelqu’un partage mes statuts report: Envoyer un courriel lorsqu’un nouveau rapport est soumis + trending_tag: Envoyer un e-mail quand un hashtag non contrôlé est en tendance actuelle + tag: + listable: Autoriser ce hashtag à apparaître dans les recherches et dans l’annuaire des profils + name: Hashtag + trendable: Autoriser ce hashtag à apparaître sous les tendances du jour + usable: Autoriser les toots à utiliser ce hashtag 'no': Non recommended: Recommandé required: diff --git a/config/locales/simple_form.gl.yml b/config/locales/simple_form.gl.yml index f4966a0307..adb06bc2c6 100644 --- a/config/locales/simple_form.gl.yml +++ b/config/locales/simple_form.gl.yml @@ -3,8 +3,9 @@ gl: simple_form: hints: account_warning_preset: - text: Vostede pode darlle formato ao toot, como URLs, etiquetas e mencións + text: Pódeslle dar formato ao toot, como URLs, etiquetas e mencións admin_account_action: + include_statuses: A usuaria verá que toots causaron a acción da moderación ou aviso send_email_notification: A usuaria recibirá unha explicación sobre o que lle aconteceu a súa conta text_html: Optativo. Pode utilizar formato no toot. Pode engadir avisos preestablecidos para aforrar tempo type_html: Escolla que facer con %{acct} @@ -15,7 +16,7 @@ gl: bot: Esta conta realiza principalmente accións automatizadas e podería non estar monitorizada context: Un ou varios contextos onde se debería aplicar o filtro digest: Enviar só tras un longo período de inactividade e só si recibeu algunha mensaxe persoal na súa ausencia - discoverable_html: O directorio permite atopar contas en función de intereses e actividade. Require ter ao menos %{min_followers} seguidoras + discoverable: O directorio de perfil é outro xeito para que a túa conta alcance unha maior audiencia email: Enviaráselle un correo-e de confirmación fields: Pode ter ate 4 elementos no seu perfil mostrados como unha táboa header: PNG, GIF ou JPG. Máximo %{size}. Será reducida a %{dimensions}px @@ -48,6 +49,8 @@ gl: text: Esto axudaranos a revisar a súa aplicación sessions: otp: 'Introduza o código de dobre-factor creado pola aplicación do seu móbil ou utilice un dos seus códigos de recuperación:' + tag: + name: Só pode cambiar maiús/minúsculas, por exemplo, mellorar a lexibilidade user: chosen_languages: Se ten marca, só os toots nos idiomas seleccionados serán mostrados en liñas temporais públicas labels: @@ -58,6 +61,7 @@ gl: account_warning_preset: text: Texto preestablecido admin_account_action: + include_statuses: Incluír toots reportados no correo send_email_notification: Notificar a usuaria por correo-e text: Aviso personalizado type: Acción @@ -141,6 +145,7 @@ gl: trending_tag: Enviar correo cando unha etiqueta non revisada é tendencia tag: listable: Permitir a esta etiqueta aparecer no directorio de perfil + name: Etiqueta trendable: Permitir a esta etiqueta aparecer baixo Tendencias usable: Permitir que os toots utilicen esta etiqueta 'no': Non diff --git a/config/locales/simple_form.hu.yml b/config/locales/simple_form.hu.yml index fe7556bc3c..e3875cd6bc 100644 --- a/config/locales/simple_form.hu.yml +++ b/config/locales/simple_form.hu.yml @@ -15,7 +15,6 @@ hu: bot: Ez a fiók automatikus műveleteket végez és valószínűleg nem figyeljük context: Kontextusok, ahol a szűrőnek működnie kell digest: Csak hosszú távollét esetén küldődik és csak ha személyes üzenetet kaptál távollétedben - discoverable_html: A profilok adatbázisa lehetővé teszi, hogy embereket közös érdeklődés vagy tevékenység alapján találj meg. Legalább %{min_followers} követőre van szükség az adatbázisba való bekerüléshez email: Kapsz egy megerősítő e-mailt fields: A profilodon legfeljebb 4 bejegyzés szerepelhet táblázatos formában header: PNG, GIF vagy JPG. Maximum %{size}. Átméretezzük %{dimensions} pixelre diff --git a/config/locales/simple_form.it.yml b/config/locales/simple_form.it.yml index 1778d7ece9..21c86da9e1 100644 --- a/config/locales/simple_form.it.yml +++ b/config/locales/simple_form.it.yml @@ -5,6 +5,7 @@ it: account_warning_preset: text: Puoi usare la sintassi dei toot, come URL, hashtag e menzioni admin_account_action: + include_statuses: L'utente vedrà quali toot hanno causato l'azione di moderazione o l'avviso send_email_notification: L'utente riceverà una spiegazione di ciò che è successo con suo account text_html: Opzionale. Puoi usare la sintassi dei toot. Puoi aggiungere avvisi preimpostati per risparmiare tempo type_html: Decidi cosa fare con %{acct} @@ -15,7 +16,6 @@ it: bot: Questo account esegue principalmente operazioni automatiche e potrebbe non essere tenuto sotto controllo da una persona context: Uno o più contesti nei quali il filtro dovrebbe essere applicato digest: Inviata solo dopo un lungo periodo di inattività e solo se hai ricevuto qualche messaggio personale in tua assenza - discoverable_html: La directory permette alle persone di trovare account in base a determinati interessi o attività. Richiede almeno %{min_followers} seguaci email: Ti manderemo una email di conferma fields: Puoi avere fino a 4 voci visualizzate come una tabella sul tuo profilo header: PNG, GIF o JPG. Al massimo %{size}. Verranno scalate a %{dimensions}px @@ -60,6 +60,7 @@ it: account_warning_preset: text: Testo preimpostato admin_account_action: + include_statuses: Includi i toots segnalati nell'email send_email_notification: Informa l'utente via email text: Avviso personalizzato type: Azione @@ -130,7 +131,7 @@ it: must_be_following: Blocca notifiche dalle persone che non segui must_be_following_dm: Blocca i messaggi diretti dalle persone che non segui invite_request: - text: Perchè vuoi unirti? + text: Perché vuoi iscriverti? notification_emails: digest: Invia email riassuntive favourite: Invia email quando segna come preferito al tuo stato @@ -140,8 +141,10 @@ it: pending_account: Invia e-mail quando un nuovo account richiede l'approvazione reblog: Invia email quando qualcuno da un boost al tuo stato report: Manda una mail quando viene inviato un nuovo rapporto + trending_tag: Invia e-mail quando un hashtag non controllato è in tendenza tag: listable: Permetti a questo hashtag di apparire nella directory dei profili + name: Hashtag trendable: Permetti a questo hashtag di apparire nelle tendenze usable: Permetti ai toot di utilizzare questo hashtag 'no': 'No' diff --git a/config/locales/simple_form.ja.yml b/config/locales/simple_form.ja.yml index 4a0d160286..2205dcf8fb 100644 --- a/config/locales/simple_form.ja.yml +++ b/config/locales/simple_form.ja.yml @@ -5,6 +5,7 @@ ja: account_warning_preset: text: URL、ハッシュタグ、メンションなど、投稿に用いる構文が使用できます admin_account_action: + include_statuses: ユーザーは取られた制限や警告の原因となったトゥートを確認できるようになります send_email_notification: ユーザーは自分のアカウントに何が起こったのか説明を受け取ります text_html: オプションです。投稿に用いる構文を使うことができます。簡略化のためプリセット警告文を追加することができます type_html: "%{acct}さんに対し、何を行うか選択してください" @@ -15,7 +16,7 @@ ja: bot: このアカウントは主に自動で動作し、人が見ていない可能性があります context: フィルターを適用する対象 (複数選択可) digest: 長期間使用していない場合と不在時に返信を受けた場合のみ送信されます - discoverable_html: ディレクトリ は興味や活動をもとにアカウントを見つけることを可能にします。 掲載には %{min_followers} 人以上のフォロワーが必要です + discoverable: ディレクトリはあなたのアカウントをより多くの人に見つけてもらうためのひとつの手段です email: 確認のメールが送信されます fields: プロフィールに表として4つまでの項目を表示することができます header: "%{size}までのPNG、GIF、JPGが利用可能です。 %{dimensions}pxまで縮小されます" @@ -38,6 +39,8 @@ ja: setting_use_pending_items: 新着があってもタイムラインを自動的にスクロールしないようにします username: あなたのユーザー名は %{domain} の中で重複していない必要があります whole_word: キーワードまたはフレーズが英数字のみの場合、単語全体と一致する場合のみ適用されるようになります + domain_allow: + domain: 登録するとこのサーバーからデータを受信したり、このドメインから受信するデータを処理して保存できるようになります featured_tag: name: 'これらを使うといいかもしれません:' imports: @@ -58,6 +61,7 @@ ja: account_warning_preset: text: プリセット警告文 admin_account_action: + include_statuses: 通報されたトゥートをメールに含める send_email_notification: メールでユーザーに通知 text: カスタム警告文 type: アクション @@ -141,6 +145,7 @@ ja: trending_tag: 未審査のハッシュタグが人気の時にメールで通知する tag: listable: 検索とディレクトリへの使用を許可する + name: ハッシュタグ trendable: トレンドへの表示を許可する usable: トゥートへの使用を許可する 'no': いいえ diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml index 2baf72e874..118bf50d4a 100644 --- a/config/locales/simple_form.ko.yml +++ b/config/locales/simple_form.ko.yml @@ -5,6 +5,7 @@ ko: account_warning_preset: text: URL, 해시태그, 멘션과 같은 툿 문법을 사용할 수 있습니다 admin_account_action: + include_statuses: 사용자는 어떤 툿에 대해 경고나 조치가 취해졌는지 볼 수 있게 됩니다 send_email_notification: 유저는 어떤 일이 일어났는 지에 대한 설명을 받게 됩니다 text_html: 선택사항. 툿 문법을 사용할 수 있습니다. 경고 틀을 추가하여 시간을 절약할 수 있습니다 type_html: "%{acct}에 대해 취할 행동 선택" @@ -15,7 +16,7 @@ ko: bot: 사람들에게 계정이 사람이 아님을 알립니다 context: 필터를 적용 할 한 개 이상의 컨텍스트 digest: 오랫동안 활동하지 않았을 때 받은 멘션들에 대한 요약 받기 - discoverable_html: 디렉토리 는 사람들의 관심사와 활동에 관련 된 계정들을 찾을 수 있게 해 줍니다. 최소 %{min_followers}명의 팔로어가 필요합니다 + discoverable: 프로필 디렉터리는 내 계정이 더 많은 관심을 갖게 할 수 있는 다른 방법입니다 email: 당신은 확인 메일을 받게 됩니다 fields: 당신의 프로파일에 최대 4개까지 표 형식으로 나타낼 수 있습니다 header: PNG, GIF 혹은 JPG. 최대 %{size}. %{dimensions}px로 다운스케일 됨 @@ -60,6 +61,7 @@ ko: account_warning_preset: text: 프리셋 텍스트 admin_account_action: + include_statuses: 신고된 툿을 이메일에 포함 send_email_notification: 이메일로 유저에게 알리기 text: 커스텀 경고 type: 조치 @@ -143,6 +145,7 @@ ko: trending_tag: 리뷰 되지 않은 해시태그가 유행할 때 이메일 보내기 tag: listable: 이 해시태그가 프로필 디렉토리에 보여지도록 허용 + name: 해시태그 trendable: 이 해시태그가 유행에 보여지도록 허용 usable: 이 해시태그를 툿에 사용 가능하도록 허용 'no': 아니오 diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml index 58d29ce12c..cda4e9ead0 100644 --- a/config/locales/simple_form.nl.yml +++ b/config/locales/simple_form.nl.yml @@ -15,7 +15,6 @@ nl: bot: Dit is een geautomatiseerd account en wordt mogelijk niet gemonitord context: Een of meerdere locaties waar de filter actief moet zijn digest: Wordt alleen na een lange periode van inactiviteit verzonden en alleen wanneer je tijdens jouw afwezigheid persoonlijke berichten hebt ontvangen - discoverable_html: In de gebruikersgids kunnen mensen andere accounts vinden aan de hand van interesses en activiteit. Dit vereist tenminste %{min_followers} volgers email: Je krijgt een bevestigingsmail fields: Je kan maximaal 4 items als een tabel op je profiel weergeven header: PNG, GIF of JPG. Maximaal %{size}. Wordt teruggeschaald naar %{dimensions}px @@ -109,6 +108,7 @@ nl: setting_system_font_ui: Standaardlettertype van jouw systeem gebruiken setting_theme: Thema website setting_unfollow_modal: Vraag voor het ontvolgen van iemand een bevestiging + setting_use_pending_items: Langzame modus severity: Zwaarte type: Importtype username: Gebruikersnaam @@ -131,6 +131,8 @@ nl: pending_account: Een e-mail verzenden wanneer een nieuw account moet worden beoordeeld reblog: Een e-mail versturen wanneer iemand jouw toot heeft geboost report: Verstuur een e-mail wanneer een nieuw rapportage is ingediend + tag: + name: Hashtag 'no': Nee recommended: Aanbevolen required: diff --git a/config/locales/simple_form.oc.yml b/config/locales/simple_form.oc.yml index 9ebd64a905..9336a98466 100644 --- a/config/locales/simple_form.oc.yml +++ b/config/locales/simple_form.oc.yml @@ -15,7 +15,6 @@ oc: bot: Avisar lo monde qu’aqueste compte es pas d’una persona context: Un o mai de contèxtes ont lo filtre deuriá s’aplicar digest: Solament enviat aprèp un long moment d’inactivitat e solament s’avètz recebut de messatges personals pendent vòstra abséncia - discoverable_html: L’annuari permet al monde de trobar de comptes segon lor interèsses e activitats. Requerís almens %{min_followers} seguidors email: Vos mandarem un corrièl de confirmacion fields: Podètz far veire cap a 4 elements sus vòstre perfil header: PNG, GIF o JPG. Maximum %{size}. Serà retalhada en %{dimensions}px diff --git a/config/locales/simple_form.pl.yml b/config/locales/simple_form.pl.yml index 553900855e..6958179851 100644 --- a/config/locales/simple_form.pl.yml +++ b/config/locales/simple_form.pl.yml @@ -15,7 +15,6 @@ pl: bot: To konto wykonuje głównie zautomatyzowane działania i może nie być monitorowane context: Jedno lub wiele miejsc, w których filtr zostanie zastosowany digest: Wysyłane tylko po długiej nieaktywności, jeżeli w tym czasie otrzymaleś jakąś wiadomość bezpośrednią - discoverable_html: Katalog pozwala znaleźć konta na podstawie zainteresowań i aktywności. Profil musi śledzić przynajmniej %{min_followers} osób email: Otrzymasz e-mail potwierdzający fields: Możesz ustawić maksymalnie 4 niestandardowe pola wyświetlane jako tabela na Twoim profilu header: PNG, GIF lub JPG. Maksymalnie %{size}. Zostanie zmniejszony do %{dimensions}px diff --git a/config/locales/simple_form.pt-BR.yml b/config/locales/simple_form.pt-BR.yml index 10475e5154..8400951f03 100644 --- a/config/locales/simple_form.pt-BR.yml +++ b/config/locales/simple_form.pt-BR.yml @@ -15,7 +15,6 @@ pt-BR: bot: Essa conta executa principalmente ações automatizadas e pode não ser monitorada context: Um ou mais contextos onde o filtro deve ser aplicado digest: Enviado após um longo período de inatividade com um resumo das menções que você recebeu em sua ausência - discoverable_html: O diretório permite encontrar contas baseado em seus interesses e atividades. Requer pelo menos %{min_followers} seguidores email: Você receberá um email de confirmação fields: Você pode ter até 4 itens exibidos em forma de tabela no seu perfil header: PNG, GIF or JPG. Arquivos de até %{size}. Eles serão diminuídos para %{dimensions}px diff --git a/config/locales/simple_form.pt.yml b/config/locales/simple_form.pt.yml index bf63818898..9f9d0fdc24 100644 --- a/config/locales/simple_form.pt.yml +++ b/config/locales/simple_form.pt.yml @@ -15,7 +15,6 @@ pt: bot: Esta conta executa essencialmente acções automáticas e pode não poder ser monitorizada context: Um ou múltiplos contextos nos quais o filtro deve ser aplicado digest: Enviado após um longo período de inatividade e apenas se foste mencionado na tua ausência - discoverable_html: O directory permite encontrar contas de pessoas com base nos seus interesses e actividades. Exige, pelo menos %{min_followers} seguidores email: Será enviado um e-mail de confirmação fields: Podes ter até 4 itens expostos, em forma de tabela, no teu perfil header: PNG, GIF or JPG. Arquivos até %{size}. Vão ser reduzidos para %{dimensions}px diff --git a/config/locales/simple_form.ro.yml b/config/locales/simple_form.ro.yml index 4df2fe1610..ac4c344f19 100644 --- a/config/locales/simple_form.ro.yml +++ b/config/locales/simple_form.ro.yml @@ -15,7 +15,6 @@ ro: bot: Acest cont performează în cea mai mare parte acțiuni automate și nu poate fi monitorizat context: Contextele în care filtrul trebuie aplicat digest: Este trimis doar după o lungă perioadă de inactivitate și numai dacă primești mesaje personale în perioada de absență - discoverable_html: Directorul permite utilizatorilor să găsească conturi după interese și activități. Necesită minim %{min_followers} urmăritori email: Vei primi un e-mail de confirmare fields: Poti afișa pană la maxim 4 adrese sub formă de tabel pe pofilul tău header: PNG, GIF sau JPG. Cel mult %{size}. Vor fi redimensionate la %{dimensions}px diff --git a/config/locales/simple_form.ru.yml b/config/locales/simple_form.ru.yml index 2835cdb30a..c4560100aa 100644 --- a/config/locales/simple_form.ru.yml +++ b/config/locales/simple_form.ru.yml @@ -15,7 +15,6 @@ ru: bot: Этот аккаунт обычно выполяет автоматизированные действия и может не просматриваться владельцем context: Один или несколько контекстов, к которым должны быть применены фильтры digest: Отсылается лишь после длительной неактивности, если вы в это время получали личные сообщения - discoverable_html: Каталог позволяет пользователям искать людей по интересам и активности. Необходимо наличие не менее %{min_followers} подписчиков email: Вам будет отправлено электронное письмо с подтверждением fields: В профиле можно отобразить до 4 пунктов как таблицу header: Поддерживается PNG, GIF и JPG. Максимальный размер — %{size}. Будет уменьшена до %{dimensions}px diff --git a/config/locales/simple_form.sk.yml b/config/locales/simple_form.sk.yml index c307856127..b908c0196c 100644 --- a/config/locales/simple_form.sk.yml +++ b/config/locales/simple_form.sk.yml @@ -5,6 +5,7 @@ sk: account_warning_preset: text: Môžeš používať rovnakú syntaxiu ako v rámci príspevkov, čiže URL, haštagy, a spomenutia admin_account_action: + include_statuses: Užívateľ uvidí, ktoré príspevky majú za následok moderačný zásah, alebo upozornenie send_email_notification: Užívateľ dostane vysvetlenie ohľadom toho, čo sa stalo s ich účtom text_html: Voliteľné. Môžeš používať rovnakú syntaxiu ako v príspevkoch. Môžeš pridať varovné predlohy a ušetriť tak čas type_html: Vyber si, čo urobiť s účtom %{acct} @@ -15,7 +16,6 @@ sk: bot: Tento účet vykonáva hlavne automatizované akcie, a je pravdepodobne nespravovaný context: Jedno, alebo viac kritérií, v ktorých má byť filtrovanie uplatnené digest: Odoslané iba v prípade dlhodobej neprítomnosti, a len ak si obdržal/a nejaké osobné správy kým si bol/a preč - discoverable_html: Táto databáza umožňuje ľudom nájsť profily podľa záujmu a aktívnosti. Vyžaduje aby mali aspoň %{min_followers} sledovateľov email: Bude ti odoslaný potvrdzujúci email fields: Až štyri položky môžeš mať na svojom profile zobrazené vo forme tabuľky header: PNG, GIF, alebo JPG. Maximálne %{size}. Bude zmenšený na %{dimensions}px @@ -57,6 +57,7 @@ sk: account_warning_preset: text: Text predlohy admin_account_action: + include_statuses: Zahrnúť nahlásené príspevky v emaile send_email_notification: Oznam užívateľovi cez email text: Špecifické varovanie type: Úkon @@ -140,6 +141,7 @@ sk: trending_tag: Pošli email, ak sa neoverený haštag stane populárnym tag: listable: Povoľ zobrazovanie tohto haštagu v zozname profilov + name: Haštag trendable: Povoľ zobrazovanie tohto haštagu medzi trendujúcimi usable: Povoľ používanie tohto haštagu v príspevkoch 'no': Nie diff --git a/config/locales/simple_form.sl.yml b/config/locales/simple_form.sl.yml index 405af24c60..771edf3837 100644 --- a/config/locales/simple_form.sl.yml +++ b/config/locales/simple_form.sl.yml @@ -15,7 +15,6 @@ sl: bot: Ta račun v glavnem opravlja samodejna dejanja in morda ni pod nadzorom context: En ali več kontekstov, kjer naj se uporabi filter digest: Pošlje se le po dolgem obdobju nedejavnosti in samo, če ste prejeli osebna sporočila v vaši odsotnosti - discoverable_html: Imenik ljudem omogoča iskanje računov na podlagi interesov in dejavnosti. Potrebuje najmanj %{min_followers} sledilcev email: Poslali vam bomo potrditveno e-pošto fields: Na svojem profilu lahko imate do 4 predmete prikazane kot tabelo. header: PNG, GIF ali JPG. Največ %{size}. Zmanjšana bo na %{dimensions}px diff --git a/config/locales/simple_form.sq.yml b/config/locales/simple_form.sq.yml index 04ef12c9a7..b365bdda86 100644 --- a/config/locales/simple_form.sq.yml +++ b/config/locales/simple_form.sq.yml @@ -15,7 +15,6 @@ sq: bot: Kjo llogari kryesisht bën veprime të automatizuara dhe mund të mos mbikëqyret dot context: Një ose disa kontekste kur duhet të zbatohet filtri digest: I dërguar vetëm pas një periudhe të gjatë pasiviteti dhe vetëm nëse keni marrë ndonjë mesazh personal gjatë mungesës suaj - discoverable_html: Drejtoria u lejon njerëzve të gjejnë llogari bazuar në interesat dhe veprimtarinë. Lyp të paktën %{min_followers} ndjekës email: Do t’ju dërgohet një email ripohimi fields: Te profili juaj mund të keni deri në 4 objekte të shfaqur si tabelë header: PNG, GIF ose JPG. E shumta %{size}. Do të ripërmasohet në %{dimensions}px diff --git a/config/locales/simple_form.sr.yml b/config/locales/simple_form.sr.yml index a097be5dd3..6901b842c1 100644 --- a/config/locales/simple_form.sr.yml +++ b/config/locales/simple_form.sr.yml @@ -15,7 +15,6 @@ sr: bot: Овај налог углавном врши аутоматизоване радње и можда се не надгледа context: Један или више контекста у којима треба да се примени филтер digest: Послато после дужег периода неактивности са прегледом свих битних ствари које сте добили док сте били одсутни - discoverable_html: Директоријум омогућава људима да пронађу налоге засноване на интересима и активности. Захтева бар %{min_followers} пратиоца email: Биће вам послата е-пошта са потврдом fields: Можете имати до 4 ставке приказане као табела на вашем профилу header: PNG, GIF или JPG. Највише %{size}. Биће смањена на %{dimensions}px diff --git a/config/locales/simple_form.th.yml b/config/locales/simple_form.th.yml index 6554835699..8caae951c6 100644 --- a/config/locales/simple_form.th.yml +++ b/config/locales/simple_form.th.yml @@ -15,7 +15,6 @@ th: bot: บัญชีนี้ทำการกระทำอัตโนมัติเป็นหลักและอาจไม่ได้รับการสังเกตการณ์ context: บริบทจำนวนหนึ่งหรือมากกว่าที่ตัวกรองควรใช้ digest: ส่งเฉพาะหลังจากไม่มีการใช้งานเป็นเวลานานและในกรณีที่คุณได้รับข้อความส่วนบุคคลใด ๆ เมื่อคุณไม่อยู่เท่านั้น - discoverable_html: ไดเรกทอรี ช่วยให้ผู้คนค้นหาบัญชีตามความสนใจและกิจกรรม ต้องการอย่างน้อย %{min_followers} ผู้ติดตาม email: คุณจะได้รับอีเมลยืนยัน fields: คุณสามารถมีได้มากถึง 4 รายการแสดงเป็นตารางในโปรไฟล์ของคุณ header: PNG, GIF หรือ JPG สูงสุด %{size} จะถูกย่อขนาดเป็น %{dimensions}px @@ -135,6 +134,9 @@ th: pending_account: ส่งอีเมลเมื่อบัญชีใหม่ต้องการการตรวจทาน reblog: ส่งอีเมลเมื่อใครสักคนดันสถานะของคุณ report: ส่งอีเมลเมื่อมีการส่งรายงานใหม่ + tag: + name: แฮชแท็ก + usable: อนุญาตให้โพสต์ใช้แฮชแท็กนี้ 'no': ไม่ recommended: แนะนำ required: diff --git a/config/locales/simple_form.tr.yml b/config/locales/simple_form.tr.yml index 68b4c24c97..fd971daa84 100644 --- a/config/locales/simple_form.tr.yml +++ b/config/locales/simple_form.tr.yml @@ -4,49 +4,125 @@ tr: hints: admin_account_action: send_email_notification: Kullanıcı, hesabına ne olduğu hakkında bir bildirim alacak + type_html: "%{acct} ile ne yapılacağını seçin" warning_preset_id: İsteğe bağlı. Hazır ayarın sonuna hala özel metin ekleyebilirsiniz defaults: autofollow: Davetiyeyle kaydolan kişiler sizi otomatik olarak takip eder avatar: En fazla %{size} olacak şekilde PNG, GIF veya JPG formatında yükleyiniz. %{dimensions}px büyüklüğüne indirgenecektir + bot: Bu hesap temelde otomatik eylemler gerçekleştirir ve izlenmeyebilir + context: Filtrenin geçerli olması gereken bir veya daha fazla içerik + digest: Yalnızca uzun süre kullanılmadığında ve yalnızca yokluğunda kişisel mesajlar aldıysanız gönderilir + discoverable: Profil dizini, hesabınızın daha geniş bir kitleye ulaşmasının başka bir yoludur + email: Onay e-postası gönderilecek header: En fazla %{size} olacak şekilde PNG, GIF veya JPG formatında yükleyiniz. %{dimensions}px büyüklüğüne indirgenecektir. + irreversible: Filtre uygulanmış gönderiler, filtre daha sonra çıkartılsa bile geri dönüşümsüz biçimde kaybolur + locale: Kullanıcı arayüzünün dili, e-postalar ve push bildirimleri locked: Takipçilerinizi manuel olarak kabul etmenizi ve gönderilerinizi varsayılan olarak sadece takipçilerinizin göreceği şekilde paylaşmanızı sağlar. + password: En az 8 karakter kullanın + setting_default_sensitive: Hassas medya varsayılan olarak gizlenir ve bir tıklama ile görüntülenebilir + setting_display_media_default: Hassas olarak işaretlenmiş medyayı gizle + setting_display_media_hide_all: Tüm medyayı gizle + setting_display_media_show_all: Hassas olarak işaretlenmiş medyayı göster + setting_hide_network: Takip edilenler ve takipçiler profilinizde gösterilmeyecek + setting_noindex: Herkese açık profilinizi ve durum sayfalarınızı etkiler + username: Kullanıcı adınız %{domain} alanında benzersiz olacak + whole_word: Anahtar kelime veya kelime öbeği yalnızca alfasayısal olduğunda, yalnızca tüm sözcükle eşleşirse uygulanır + featured_tag: + name: 'Bunlardan birini kullanmak isteyebilirsiniz:' imports: data: Diğer Mastodon sunucusundan dışarı aktardığınız CSV dosyası + invite_request: + text: Bu, başvurunuzu gözden geçirmemize yardımcı olacaktır sessions: otp: Telefonunuzdaki two-factor kodunuzu giriniz veya kurtarma kodlarınızdan birini giriniz. + user: + chosen_languages: İşaretlendiğinde, yalnızca seçilen dillerdeki karakterler genel zaman çizelgelerinde görüntülenir labels: + account: + fields: + name: Etiket + value: İçerik + admin_account_action: + send_email_notification: E-postayla kullanıcıyı bilgilendir + text: Özel uyarı + type: Eylem + types: + disable: Devre dışı + none: Hiç birşey + silence: Sessiz + suspend: Hesap verilerini askıya alın ve geri alınamaz şekilde silin defaults: + autofollow: Hesabınızı takip etmeye davet edin avatar: Profil resmi + bot: Bu bir bot hesabı + chosen_languages: Dilleri filtrele confirm_new_password: Yeni parolanız (tekrar) confirm_password: Parolanız (tekrar) + context: İçeriği filtrele current_password: Mevcut parolanız data: Dosya display_name: Görünen adınız email: E-posta adresiniz + fields: Profil Metaverisi header: Kapak resmi locale: Dil locked: Hesabımı kilitle + max_uses: Maksimum kullanım sayısı new_password: Yeni parolanız note: Kişisel bilgiler otp_attempt: İki-faktörlü kod password: Parolanız + phrase: Anahtar kelime veya kelime öbeği + setting_advanced_layout: Gelişmiş web arayüzünü etkinleştir setting_auto_play_gif: GIF'leri otomatik oynatt setting_boost_modal: Boost etmeden önce onay diyaloğu göster setting_default_privacy: Gönderi gizliliği + setting_default_sensitive: Her zaman hassas medya olarak işaretle + setting_delete_modal: Bir gönderiyi silmeden önce onay iletişim kutusunu göster + setting_display_media: Medya görünümü + setting_display_media_default: Varsayılan + setting_display_media_hide_all: Tümünü gizle + setting_display_media_show_all: Tümünü göster + setting_hide_network: Ağını gizle + setting_noindex: Arama motoru endekslemesini iptal et + setting_reduce_motion: Animasyonlarda hareketi azalt + setting_show_application: İçerik göndermek için kullanılan uygulamayı belirt + setting_system_font_ui: Sistemin varsayılan yazı tipini kullan + setting_theme: Site teması + setting_trends: Bugünün trendlerini göster + setting_unfollow_modal: Birini takip etmeden önce onay iletişim kutusunu göster + setting_use_blurhash: Gizli ortamlar için renkli gradyen göster + setting_use_pending_items: Yavaş mod severity: Zorluk type: Dosya türü username: Kullanıcı adınız + username_or_email: Kullanıcı adı ya da email + whole_word: Tüm dünya + featured_tag: + name: Hashtag interactions: must_be_follower: Takipçim olmayan kişilerden gelen bildirimleri engelle must_be_following: Takip etmediğim kişilerden gelen bildirimleri engelle + must_be_following_dm: Takip etmediğiniz kişilerin doğrudan ileti göndermesini engelle + invite_request: + text: Neden katılmak istiyorsun? notification_emails: digest: Özet e-postaları gönder favourite: Biri durumumu favorilerine eklediginde bana e-posta gönder follow: Biri beni takip ettiğinde bana e-posta gönder follow_request: Biri bana takip isteği gönderdiğinde, bana e-posta gönder mention: Biri benden bahsettiğinde, bana e-posta gönder + pending_account: Yeni bir hesap incelemesi gerektiğinde e-posta gönder reblog: Biri durumumu paylaştığında, bana e-posta gönder + report: Yeni bir rapor gönderildiğinde e-posta gönder + trending_tag: İncelenmemiş bir hashtag trend olduğunda e-posta gönder + tag: + listable: Bu etiketin aramalarda ve profil dizininde görünmesine izin ver + name: Hashtag + trendable: Bu etiketin trendlerin altında görünmesine izin ver 'no': Hayır + recommended: Önerilen required: + mark: "*" text: gerekli 'yes': Evet diff --git a/config/locales/simple_form.uk.yml b/config/locales/simple_form.uk.yml index 825abf7a9d..1e4a262e71 100644 --- a/config/locales/simple_form.uk.yml +++ b/config/locales/simple_form.uk.yml @@ -5,6 +5,7 @@ uk: account_warning_preset: text: Ви можете використовувати синтаксис дмухів, наприклад URLи, хештеґи та згадки admin_account_action: + include_statuses: Користувач побачить, які дмухи призвели до адміністративних дій або попереджень send_email_notification: Користувач отримає роз'яснення, що сталося з його обліковим записом text_html: Необов'язково. Ви можете використовувати синтакс дмухів. Ви можете додати шаблони попереджень, щоб заощадити час type_html: Оберіть, що робити з %{acct} @@ -14,7 +15,7 @@ uk: avatar: PNG, GIF, або JPG. Максимум - %{size}. Буде зменшено до %{dimensions}px bot: Цей аккаунт в основному виконує автоматичні дії та може не відстежуватіся digest: Буде послано тільки після довгого періоду неактивності, та тільки якщо ви отримаєте персональне повідомлення у цей період - discoverable_html: каталог дає змогу шукати облікові записи за інтересами та активністю. Вимагає щонайменше %{min_followers} підписників + discoverable: Ще один шлях, за яким про вас можуть дізнатися користувачі — каталог профілів email: Вам надійде електронний лист з підтвердженням fields: До 4 елементів може бути відображено як таблиця у вашому профілі header: PNG, GIF, або JPG. Максимум - %{size}. Буде зменшено до %{dimensions}px @@ -24,6 +25,7 @@ uk: locked: Буде вимагати від Вас самостійного підтверждення підписників, змінить приватність постів за замовчуванням на "тільки для підписників" password: Не менше 8 символів phrase: Шукає без врахування регістру у тексті дмуха або у його попередженні про вміст + setting_aggregate_reblogs: Не показувати передмухи для дмухів, які нещодавно вже були передмухнуті (не вплине на вже отримані передмухи) setting_default_sensitive: Дражливі медіа приховані за промовчанням та можуть бути розкрити кліком setting_display_media_default: Приховувати медіа, помічені як дражливі setting_display_media_hide_all: Приховувати будь-які медіа @@ -32,6 +34,7 @@ uk: setting_noindex: Впливає на ваш публічний профіль та сторінки статусу setting_show_application: Застосунок, за допомогою якого ви дмухнули, буде відображено серед деталей дмуху setting_use_blurhash: Градієнти, що базуються на кольорах прихованих медіа, але роблять нерозрізненними будь-які деталі + setting_use_pending_items: Не додавати нові повідомлення до стрічок миттєво. Показувати їх тільки після додаткового клацання. username: Ваше ім'я користувача буде унікальним у %{domain} whole_word: Якщо пошукове слово або фраза містить тільки літери та цифри, воно має співпадати цілком domain_allow: @@ -56,6 +59,7 @@ uk: account_warning_preset: text: Текст шаблону admin_account_action: + include_statuses: Додати дмухи, на які ви скаржитесь, до електронного листа send_email_notification: Сповістити користувача електронною поштою text: Користувацьке попередження type: Дія @@ -78,6 +82,7 @@ uk: discoverable: Оприлюднити обліковий запис у каталозі display_name: Ім'я email: Email адреса + fields: Метадані профіля header: Заголовок inbox_url: URL поштової скриньки ретранслятора irreversible: Видалити назавжди, а не просто сховати @@ -136,6 +141,7 @@ uk: trending_tag: Надсилати електронного листа, коли нерозглянутий хештеґ стає популярним tag: listable: Дозволити появу цього хештеґа у каталозі профілів + name: Хештеґ trendable: Дозволити появу цього хештеґа у списку популярних хештеґів usable: Дозволити дмухам використовувати цей хештеґ 'no': Ні diff --git a/config/locales/simple_form.zh-CN.yml b/config/locales/simple_form.zh-CN.yml index 04ae16ecdd..9bff15d1d7 100644 --- a/config/locales/simple_form.zh-CN.yml +++ b/config/locales/simple_form.zh-CN.yml @@ -15,7 +15,6 @@ zh-CN: bot: 来自这个帐户的绝大多数操作都是自动进行的,并且可能无人监控 context: 过滤器的应用场景 digest: 仅在你长时间未登录,且收到了私信时发送 - discoverable_html: 用户目录 让大家能根据兴趣和活动寻找用户。需要至少 %{min_followers} 位关注者 email: 我们会向你发送一封确认邮件 fields: 这将会在个人资料页上以表格的形式展示,最多 4 个项目 header: 文件大小限制 %{size},只支持 PNG、GIF 或 JPG 格式。图片分辨率将会压缩至 %{dimensions}px diff --git a/config/locales/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml index 4da117b61a..97f2d0cff7 100644 --- a/config/locales/simple_form.zh-TW.yml +++ b/config/locales/simple_form.zh-TW.yml @@ -15,7 +15,6 @@ zh-TW: bot: 此帳戶主要執行自動操作且可能未被監控 context: 應該套用過濾器的一項或多項內容 digest: 僅在你長時間未登入且在未登入期間收到私訊時傳送 - discoverable_html: 目錄 讓使用者們能基於興趣與活動尋找帳戶。需要至少 %{min_followers} 位關注者 email: 您將收到一封確認電子郵件 fields: 您可在個人資料上有至多 4 個以表格形式顯示的項目 header: 支援 PNG, GIF 或 JPG 圖片,檔案最大為 %{size},會按比例縮小成 %{dimensions} 像素 diff --git a/config/locales/sk.yml b/config/locales/sk.yml index dc75706b14..980e4613ec 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -39,16 +39,18 @@ sk: other: príspevky status_count_before: Ktorí napísali tagline: Následuj kamarátov, a objavuj nových - terms: Podmienky užívania + terms: Podmienky užitia user_count_after: few: užívateľov - many: užívateľov + many: užívatelia one: užívateľ - other: uživatelia + other: užívateľov user_count_before: Domov pre what_is_mastodon: Čo je Mastodon? accounts: choices_html: "%{name}vé voľby:" + endorsements_hint: Môžeš ukázať sledovaných užívateľov, s ktorými si spriaznený/á cez webové rozhranie, a tí tu budú zobrazení. + featured_tags_hint: Môžeš zvýrazniť určité haštagy, ktoré tu budú zobrazené. follow: Následuj followers: few: Sledovateľov @@ -62,6 +64,7 @@ sk: media: Médiá moved_html: "%{name} účet bol presunutý na %{new_profile_link}:" network_hidden: Táto informácia nieje k dispozícii + never_active: Nikdy nothing_here: Nič tu nie je! people_followed_by: Ľudia, ktorých %{name} sleduje people_who_follow: Ľudia sledujúci %{name} @@ -434,6 +437,7 @@ sk: all: Všetkým disabled: Nikomu title: Ukáž blokované domény + users: Prihláseným, miestnym užívateľom domain_blocks_rationale: title: Ukáž zdôvodnenie hero: @@ -505,6 +509,7 @@ sk: delete: Vymaž nsfw_off: Označ ako nechúlostivé nsfw_on: Označ ako chúlostivé + deleted: Vymazané failed_to_execute: Nepodarilo sa vykonať media: title: Médiá @@ -572,6 +577,9 @@ sk: checkbox_agreement_without_rules_html: Súhlasím s podmienkami užívania delete_account: Vymaž účet delete_account_html: Pokiaľ chceš svoj účet odtiaľto vymazať, môžeš tak urobiť tu. Budeš požiadaný/á o potvrdenie tohto kroku. + description: + prefix_invited_by_user: "@%{name} ťa pozýva na tento Mastodon server!" + prefix_sign_up: Zaregistruj sa na Mastodone už dnes! didnt_get_confirmation: Neobdržal/a si kroky na potvrdenie? forgot_password: Zabudnuté heslo? invalid_reset_password_token: Token na obnovu hesla vypršal. Prosím vypítaj si nový. @@ -624,28 +632,38 @@ sk: deletes: bad_password_msg: Dobrý pokus, hakeri! Nesprávne heslo confirm_password: Napíšte svoje terajšie heslo pre overenie vašej identity - description_html: Týmto natrvalo, nenavrátiteľne vymažeš obsah tvojho účtu, a deaktivuješ ho. Tvoja prezývka ale ostane rezervovaná ako prevencia pred budúcimi impersonáciami. proceed: Vymaž účet success_msg: Tvoj účet bol úspešne vymazaný - warning_html: Iba vymazanie obsahu z tohto konkrétneho serveru je zaručené. Obsah, ktorý bol zdieľaný široko-ďaleko pravdepodobne zanechá nejaké stopy. Servery ktoré sú offline a tie ktoré ignorujú tvoje zmeny teda nezaktualizujú svoje databázy. - warning_title: Dostupnosť rozšírovaného obsahu + warning: + before: 'Predtým, než budeš pokračovať, prosím pozorne si prečítaj tieto poznámky:' + caches: Obsah, ktorý bol predčítaný inými servermi môže zanechať pozostatky + username_unavailable: Tvoja prezývka ostane neprístupná directories: directory: Katalóg profilov - enabled: Momentálne si uvedený/á na zozname profilov. - enabled_but_waiting: Vyjadril/a si záujem o uvedenie na zozname profilov, lenže ešte nemáš minimálny vyžadovaný počet následovateľov (%{min_followers}), aby si tam bol/a uveden/á. explanation: Pátraj po užívateľoch podľa ich záujmov explore_mastodon: Prebádaj %{title} - how_to_enable: Momentálne niesi zaradený/á do verejnej profilovej databázy. Prihlásiť sa môžeš nižšie. Použi haštagy vo svojom biografickom popise na profile, ak chceš byť uvedený/á aj pod konkrétnými haštagmi! - people: - few: "%{count} ľudí" - many: "%{count} ľudí" - one: "%{count} človek" - other: "%{count} ľudia" + domain_blocks: + blocked_domains: Zoznam obmedzovaných a blokovaných domén + description: Toto je zoznam serverov, ktorých federáciu %{instance} obmedzuje, alebo nepríjma. + domain: Doména + media_block: Blokovanie médií + no_domain_blocks: "(Žiadne domény niesú blokované)" + severity: Závažnosť + severity_legend: + media_block: Mediálne súbory zo servera niesú ani zachytávané, ani ukladané, či zobrazované užívateľovi. + suspension_disclaimer: Vylúčené servery sa môžu občas dostať k verejnému obsahu tohto servera. + title: Závažnosti + show_rationale: Ukáž zdôvodnenie + silence: Stíš + suspension: Vylúčenie + title: Zoznam instancií, ktoré blokuje %{instance} domain_validator: invalid_domain: nieje správny tvar domény errors: + '400': The request you submitted was invalid or malformed. '403': Nemáš povolenie pre zobrazenie tejto stránky. '404': Stránka ktorú hľadáš nieje tu. + '406': This page is not available in the requested format. '410': Stránka ktorú si tu hľadal/a sa tu už viac nenachádza. '422': content: Bezpečtnostné overenie zlyhalo. Blokuješ cookies? @@ -654,6 +672,7 @@ sk: '500': content: Ospravedlňujem sa. Niečo sa pokazilo na našom konci. title: Táto stránka nieje v poriadku + '503': The page could not be served due to a temporary server failure. noscript_html: Aby bolo možné používať Mastodon web aplikáciu, povoľ prosím JavaScript. Alebo skús jednu z aplikácii dostupných pre vašu platformu. existing_username_validator: not_found: nepodarilo sa nájsť miestného užívateľa s takouto prezývkou @@ -697,6 +716,7 @@ sk: developers: Vývojári more: Viac… resources: Podklady + trending_now: Teraz populárne generic: all: Všetko changes_saved_msg: Zmeny boli úspešne uložené! @@ -1034,6 +1054,7 @@ sk: silence: Kým máš účet obmedzený, tvoje príspevky na tomto serveri uvidia iba tí ľudia, ktorí ťa už následujú, a môžeš byť vylúčený/á z rôznych verejných záznamov. Ostatní ťa však stále budú môcť následovať manuálne. suspend: Tvoj účet bol vylúčený, a všetky tvoje príspevky a nahraté médiálné súbory boli nenávratne zmazané z tohto serveru, a zo serverov na ktorých si mal následovateľov. review_server_policies: Prehodnoť pravidlá servera + statuses: 'Konkrétne kvôli:' subject: disable: Tvoj účet %{acct} bol zamrazený none: Varovanie pre %{acct} diff --git a/config/locales/sl.yml b/config/locales/sl.yml index 3cab1313b5..02507923be 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -593,26 +593,17 @@ sl: deletes: bad_password_msg: Lep poskus, hekerji! napačno geslo confirm_password: Vnesite svoje trenutno geslo, da potrdite svojo identiteto - description_html: S tem boste trajno, nepovratno odstranili vsebino iz vašega računa in jo deaktivirali. Vaše uporabniško ime bo ostalo rezervirano za preprečevanje prihodnjih lažnih predstav. proceed: Izbriši račun success_msg: Vaš račun je bil uspešno izbrisan - warning_html: Zagotovljeno je samo brisanje vsebine iz tega strežnika. Vsebina, ki je široko razširjena, bo verjetno pustila sledi. Strežniki brez povezave in strežniki, ki so se odjavili od vaših posodobitev, ne bodo posodabljali svojih podatkovnih baz. - warning_title: Razširjena razpoložljivost vsebine directories: directory: Imenik profilov - enabled: Trenutno ste navedeni v imeniku. - enabled_but_waiting: Vključili ste, da ste navedeni v imeniku, vendar še nimate najmanjšega števila sledilcev (%{min_followers}), da bi vas prikazalo. explanation: Odkrijte uporabnike glede na njihove interese explore_mastodon: Razišči %{title} - how_to_enable: Trenutno niste vključeni v imenik. Spodaj se lahko vključite. Uporabite ključnike v vaši biografiji, da boste navedeni pod specifične ključnike! - people: - few: "%{count} osebe" - one: "%{count} oseba" - other: "%{count} oseb" - two: "%{count} osebi" errors: + '400': The request you submitted was invalid or malformed. '403': Nimate dovoljenja za ogled te strani. '404': Iskana stran ne obstaja. + '406': This page is not available in the requested format. '410': Iskana stran ne obstaja več. '422': content: Varnostno preverjanje ni uspelo. Ali blokirate piškotke? @@ -621,6 +612,7 @@ sl: '500': content: Žal nam je, toda na našem koncu je prišlo do napake. title: Ta stran ni pravilna + '503': The page could not be served due to a temporary server failure. noscript_html: Če želite uporabljati spletno aplikacijo Mastodon, omogočite JavaScript. Druga možnost je, da za svojo platformo poskusite eno od lastnih aplikacij za Mastodon. existing_username_validator: not_found: s tem uporabniškim imenom ni bilo mogoče najti lokalnega uporabnika diff --git a/config/locales/sq.yml b/config/locales/sq.yml index 3373b6771f..68754ea24b 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -492,21 +492,17 @@ sq: deletes: bad_password_msg: Provë e bukur, trimosha! Fjalëkalim i pasaktë confirm_password: Jepni fjalëkalimin tuaj të tanishëm që të verifikohet identiteti juaj - description_html: Kjo të heqë në mënyrë të përhershme, të pakthyeshme lëndë nga llogaria juaj dhe do ta çaktivizojë atë. Emri juaj i përdoruesit do të mbetet i rezervuar për të shmangur sozi të ardhme. proceed: Fshini llogarinë success_msg: Llogaria juaj u fshi me sukses - warning_html: Garantohet vetëm fshirja e lëndës prej këtij shërbyesi të veçantë. Lënda që është ndarë gjerësisht me të tjerët ka gjasa të lërë gjurmë. Shërbyesit offline dhe shërbyesit që janë shpajtuar prej përditësimeve tuaja, s’do t’i përditësojnë bazat e tyre të të dhënave. - warning_title: Mund të ketë lëndë të përhapur directories: directory: Drejtori profilesh - enabled: Gjendeni te lista e drejtorisë. - enabled_but_waiting: Keni zgjedhur të jeni pjesë e drejtorisë, por ende s’keni numrin minimum të ndjekësve (%{min_followers}) për përfshirje në të. explanation: Zbuloni përdorues bazuar në interesat e tyre explore_mastodon: Eksploroni %{title} - how_to_enable: S’keni zgjedhur të jeni i pranishëm te drejtoria. Mund ta bëni më poshtë. Përdorni te teksti i jetëshkrimit tuaj hashtagë, për t’u përfshirë nën hashtagë specifikë! errors: + '400': The request you submitted was invalid or malformed. '403': S’keni leje të shihni këtë faqe. '404': Faqja që po kërkonit, s’gjendet këtu. + '406': This page is not available in the requested format. '410': Faqja që po kërkonit, s’gjendet më këtu. '422': content: Verifikimi i sigurisë dështoi. Mos i bllokoni gjë cookie-t? @@ -515,6 +511,7 @@ sq: '500': content: Na ndjeni, diçka shkoi ters në anën tonë. title: Kjo faqe s’është e saktë + '503': The page could not be served due to a temporary server failure. noscript_html: Që të përdorni aplikacionin web Mastodon, ju lutemi, aktivizoni JavaScript-in. Ndryshe, provoni për Mastodon-in një nga aplikacionet e brendshëm të platformës tuaj. exports: archive_takeout: diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml index 6530d4c762..c4a3199641 100644 --- a/config/locales/sr-Latn.yml +++ b/config/locales/sr-Latn.yml @@ -316,20 +316,20 @@ sr-Latn: deletes: bad_password_msg: Dobar pokušaj, hakeri! Neispravna lozinka confirm_password: Unesite trenutnu lozinku da bismo proverili Vaš identitet - description_html: Ovo će trajno, bespovratno ukloniti sadržaj sa Vašef naloga i deaktivirati ga. Vaše korisničko ime će ostati rezervisano da se spreči da se neko ne predstavlja kao Vi sutra. proceed: Obriši nalog success_msg: Vaš nalog je uspešno obrisan - warning_html: Garantovano je samo brisanje sadržaja sa ove instance. Sadržaj koji je deljen dalje će verovatno da ostavi neke tragove. Nedostupni i ugašeni serveri, kao i serveri koji su odjavljeni od primanja statusa od Vas, neće ažurirati svoje baze. - warning_title: Dostupnost rasejanog sadržaja errors: + '400': The request you submitted was invalid or malformed. '403': Nemate dozvola da vidite ovu stranu. '404': Strana koju ste tražili ne postoji. + '406': This page is not available in the requested format. '410': Strana koju ste tražili više ne postoji. '422': '429': Uspored '500': content: Izvinjavamo se, nešto je pošlo po zlu sa ove strane. title: Strana nije ispravna + '503': The page could not be served due to a temporary server failure. noscript_html: Da biste koristili Mastodont veb aplikaciju, omogućite JavaScript. U suprotnom, probajte neku od originalnih aplikacija za Mastodont za Vašu platformu. exports: blocks: Blokirali ste diff --git a/config/locales/sr.yml b/config/locales/sr.yml index ba83f0378d..992311201b 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -512,23 +512,17 @@ sr: deletes: bad_password_msg: Добар покушај, хакери! Неисправна лозинка confirm_password: Унесите тренутну лозинку да бисмо проверили Ваш идентитет - description_html: Ово ће трајно, бесповратно уклонити садржај са Вашеф налога и деактивирати га. Ваше корисничко име ће остати резервисано да се спречи да се неко не представља као Ви сутра. proceed: Обриши налог success_msg: Ваш налог је успешно обрисан - warning_html: Гарантовано је само брисање садржаја са ове инстанце. Садржај који је дељен даље ће вероватно да остави неке трагове. Недоступни и угашени сервери, као и сервери који су одјављени од примања статуса од Вас, неће ажурирати своје базе. - warning_title: Доступност расејаног садржаја directories: directory: Профил фасцикле - enabled: Ви сте тренутно видљиви у фасцикли. explanation: Откријте кориснике на основу њихових интереса explore_mastodon: Истражи %{title} - people: - few: "%{count} људе" - one: "%{count} особа/е" - other: "%{count} људи" errors: + '400': The request you submitted was invalid or malformed. '403': Немате дозвола да видите ову страну. '404': Страна коју сте тражили не постоји. + '406': This page is not available in the requested format. '410': Страна коју сте тражили више не постоји. '422': content: Безбедоносна провера није успела. Да не блокирате колачиће? @@ -537,6 +531,7 @@ sr: '500': content: Извињавамо се, нешто је пошло по злу са ове стране. title: Страна није исправна + '503': The page could not be served due to a temporary server failure. noscript_html: Да бисте користили Мастодонт веб апликацију, омогућите JavaScript. У супротном, пробајте неку од оригиналних апликација за Мастодонт за Вашу платформу. exports: archive_takeout: diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 3978f6d117..0297046719 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -379,14 +379,13 @@ sv: deletes: bad_password_msg: Bra försök, hackare! Fel lösenord confirm_password: Ange ditt lösenord för att verifiera din identitet - description_html: Detta vill permanent, irreversibelt ta bort innehåll från ditt konto och avaktivera det. Ditt användarnamn kommer att förbli reserverat för att förhindra framtida efterföljare. proceed: Ta bort konto success_msg: Ditt konto har tagits bort - warning_html: Endast borttagning av innehåll från denna speciella instans garanteras. Innehåll som har delats i stor utsträckning kommer sannolikt att lämna spår. Offline-servrar och servrar som har avstängt från dina uppdateringar uppdaterar inte sina databaser. - warning_title: Spridet innehåll och tillgänglighet errors: + '400': The request you submitted was invalid or malformed. '403': Du har inte behörighet att visa den här sidan. '404': Sidan du letade efter existerar inte. + '406': This page is not available in the requested format. '410': Sidan du letade efter existerar inte längre. '422': content: Säkerhetsverifiering misslyckades Blockerar du cookies? @@ -395,6 +394,7 @@ sv: '500': content: Vi är ledsna, men något gick fel från vårat håll. title: Den här sidan är inte korrekt + '503': The page could not be served due to a temporary server failure. noscript_html: För att använda Mastodon webbapplikationen, vänligen aktivera JavaScript. Alternativt kan du prova en av inhemska appar för Mastodon för din plattform. exports: archive_takeout: diff --git a/config/locales/ta.yml b/config/locales/ta.yml index eef06fa7ca..75bb81fad0 100644 --- a/config/locales/ta.yml +++ b/config/locales/ta.yml @@ -1,12 +1,15 @@ --- ta: errors: + '400': The request you submitted was invalid or malformed. '403': You don't have permission to view this page. '404': The page you are looking for isn't here. + '406': This page is not available in the requested format. '410': The page you were looking for doesn't exist here anymore. '422': '429': Throttled '500': + '503': The page could not be served due to a temporary server failure. invites: expires_in: '1800': 30 minutes diff --git a/config/locales/te.yml b/config/locales/te.yml index d4a2f507d7..560a295a6d 100644 --- a/config/locales/te.yml +++ b/config/locales/te.yml @@ -113,12 +113,15 @@ te: most_recent_activity: ఇటీవల యాక్టివిటీ most_recent_ip: ఇటీవలి IP errors: + '400': The request you submitted was invalid or malformed. '403': You don't have permission to view this page. '404': The page you are looking for isn't here. + '406': This page is not available in the requested format. '410': The page you were looking for doesn't exist here anymore. '422': '429': Throttled '500': + '503': The page could not be served due to a temporary server failure. invites: expires_in: '1800': 30 minutes diff --git a/config/locales/th.yml b/config/locales/th.yml index 73e6fb1787..f27c066175 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -428,11 +428,11 @@ th: directory: ไดเรกทอรีโปรไฟล์ explanation: ค้นพบผู้ใช้ตามความสนใจของเขา explore_mastodon: สำรวจ %{title} - people: - other: "%{count} คน" errors: + '400': The request you submitted was invalid or malformed. '403': คุณไม่มีสิทธิอนุญาตเพื่อดูหน้านี้ '404': หน้าที่คุณกำลังมองหาไม่ได้อยู่ที่นี่ + '406': This page is not available in the requested format. '410': หน้าที่คุณกำลังมองหาไม่มีอยู่ที่นี่อีกต่อไป '422': content: การตรวจสอบความปลอดภัยล้มเหลว คุณกำลังปิดกั้นคุกกี้หรือไม่? @@ -440,6 +440,7 @@ th: '429': Throttled '500': title: หน้านี้ไม่ถูกต้อง + '503': The page could not be served due to a temporary server failure. exports: archive_takeout: date: วันที่ diff --git a/config/locales/tr.yml b/config/locales/tr.yml index d9e7ce3335..550b1cc495 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -4,24 +4,39 @@ tr: about_hashtag_html: Bunlar #%{hashtag}X ile etiketlenen genel paylaşımlar. Açık alanda herhangi bir yerde bir hesabınız varsa, onlarla etkileşime geçebilirsiniz. about_mastodon_html: Mastodon ücretsiz ve açık kaynaklı bir sosyal ağdır. Merkezileştirilmemiş yapısı sayesinde diğer ticari sosyal platformların aksine iletişimininizin tek bir firmada tutulmasının/yönetilmesinin önüne geçer. Güvendiğiniz bir sunucuyu seçerek oradaki kişilerle etkileşimde bulunabilirsiniz. Herkes kendi Mastodon sunucusunu kurabilir ve sorunsuz bir şekilde Mastodon sosyal ağına dahil edebilir. about_this: Bu sunucu hakkında + active_count_after: etkin + active_footnote: Aylık Aktif Kullanıcılar (AAK) administered_by: 'Tarafından yönetildi:' + api: API apps: Mobil uygulamalar + apps_platforms: İos, Android ve diğer platformlardaki Mastodon'u kullanın + browse_directory: Bir profil dizinine göz atın ve ilgi alanlarına göre filtreleyin + browse_public_posts: Mastodon'daki herkese açık yayınlara göz atın contact: İletişim contact_missing: Ayarlanmadı contact_unavailable: Yok + discover_users: Kullanıcıları keşfet documentation: Belgeler extended_description_html: |

Kural için iyi bir yer

Genişletilmiş açıklama henüz ayarlanmamış.

+ federation_hint_html: "%{instance} hesabınızla, herhangi bir Mastodon sunucusundaki ve haricindeki kişileri takip edebilirsiniz." generic_description: "%{domain} ağdaki bir sunucudur" + get_apps: Bir mobil uygulamayı deneyin hosted_on: Mastodon %{domain} üzerinde barındırılıyor + instance_actor_flash: | + Bu hesap, herhangi bir kullanıcıyı değil sunucunun kendisini temsil etmek için kullanılan sanal bir aktördür. + Federasyon amaçlı kullanılır ve tüm yansıyı engellemek istemediğiniz sürece engellenmemelidir; bu durumda bir etki alanı bloğu kullanmanız gerekir. learn_more: Daha fazla bilgi edinin privacy_policy: Gizlilik politikası + see_whats_happening: Neler olduğunu görün + server_stats: 'Sunucu istatistikleri:' source_code: Kaynak kodu status_count_after: one: durum other: durum status_count_before: Şu ana kadar + tagline: Arkadaşlarını takip et ve yenilerini keşfet terms: Kullanım şartları user_count_after: one: kullanıcı @@ -30,27 +45,36 @@ tr: what_is_mastodon: Mastodon nedir? accounts: choices_html: "%{name} seçimleri:" + endorsements_hint: Takip ettiğiniz kişileri web arayüzünden onaylayabilirsiniz, burada görünecekler. + featured_tags_hint: Burada görüntülenecek belirli etiketlere sahip olabilirsiniz. follow: Takip et followers: one: Takipçi other: Takipçi following: Takip ediliyor joined: "%{date} tarihinde katıldı" + last_active: son aktivite link_verified_on: Bu bağlantının mülkiyeti %{date} tarihinde kontrol edildi media: Medya moved_html: "%{name}, %{new_profile_link} adresine taşındı:" network_hidden: Bu bilgi mevcut değil + never_active: Asla nothing_here: Burada henüz hiçbir gönderi yok! people_followed_by: Kullanıcı %{name}'in takip ettikleri people_who_follow: Kullanıcı %{name}'i takip edenler pin_errors: following: Onaylamak istediğiniz kişiyi zaten takip ediyor olmalısınız + posts: + one: Gönderi + other: Tootlar posts_tab_heading: Tootlar posts_with_replies: Tootlar ve yanıtlar reserved_username: Kullanıcı adı saklıdır roles: admin: Yönetici + bot: Bot moderator: Denetleyici + unavailable: Profil kullanılamıyor unfollow: Takibi bırak admin: account_actions: @@ -61,7 +85,10 @@ tr: delete: Sil destroyed_msg: Denetim notu başarıyla yok edildi! accounts: + approve: Onayla + approve_all: Tümünü onayla are_you_sure: Emin misiniz? + avatar: Avatar by_domain: Sunucu change_email: changed_msg: Hesap e-postası başarıyla değiştirildi! @@ -74,6 +101,7 @@ tr: confirmed: Onaylandı confirming: Onaylama deleted: Silinen + demote: Düşür disable: Devre dışı disable_two_factor_authentication: 2AD kapat disabled: Kapalı @@ -91,6 +119,7 @@ tr: header: Üstbilgi inbox_url: Gelen kutusu bağlantısı invited_by: Tarafından davet edildi + ip: IP joined: Katıldı location: all: Hepsi @@ -101,14 +130,20 @@ tr: media_attachments: Medya ekleri memorialize: Bir hatıraya dön moderation: + active: Etkin all: Hepsi + pending: Bekliyor silenced: Susturulanlar suspended: Uzaklaştırılanlar title: Yönetim moderation_notes: Denetleme 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 + no_limits_imposed: Sınır koymaz not_subscribed: Abone edilmedi + outbox_url: Giden Kutusu URL'si + pending: Bekleyen yorum perform_full_suspension: Askıya al profile_url: Profil linki promote: Yükselt @@ -116,6 +151,8 @@ tr: public: Herkese açık push_subscription_expires: PuSH aboneliği dolumu redownload: Profili yenile + reject: Reddet + reject_all: Tümünü reddet remove_avatar: Avatarı kaldır remove_header: Üstbilgiyi kaldır resend_confirmation: @@ -142,6 +179,7 @@ tr: statuses: Durumlar subscribe: Abone ol suspended: Askıya alındı + time_in_queue: "%{time} kuyruğunda bekliyor" title: Hesaplar unconfirmed_email: Onaylanmamış e-posta undo_silenced: Susturmayı geri al @@ -149,25 +187,98 @@ tr: unsubscribe: Abonelikten çık username: Kullanıcı adı warn: Uyar + web: Web + whitelisted: Beyaz listede action_logs: actions: + assigned_to_self_report: "%{name} kendilerine %{target} adlı raporu verdi" + change_email_user: "%{name}, %{target} kullanıcısının e-posta adresini değiştirdi" confirm_user: "%{name} %{target} kullanıcısının e-posta adresini onayladı" + create_account_warning: "%{name} %{target} 'a bir uyarı gönderdi" create_custom_emoji: "%{name} yeni ifade yükledi %{target}" + create_domain_block: "%{target} alanı, %{name} tarafından engellendi" + create_email_domain_block: "%{target} e-posta alanı, %{name} tarafından kara listeye alınmış" + destroy_custom_emoji: "%{target} emoji, %{name} tarafından kaldırıldı" + destroy_domain_block: "%{target} alan adının engeli %{name} tarafından kaldırıldı" + destroy_email_domain_block: "%{target} e-posta sunucusu, %{name} tarafından beyaz listeye alındı" disable_2fa_user: "%{name}, %{target} kullanıcısı için iki adım gereksinimini kapattı" + disable_custom_emoji: "%{target} emoji, %{name} tarafından devre dışı bırakıldı" + deleted_status: "(silinmiş durum)" + title: Denetim günlüğü + custom_emojis: + by_domain: Alan adı + copied_msg: Emojinin yerel kopyası başarıyla oluşturuldu + copy: Kopyala + copy_failed_msg: Bu emojinin yerel bir kopyası oluşturulamadı + create_new_category: Yeni kategori ekle + created_msg: Emoji başarıyla oluşturuldu! + delete: Sil + destroyed_msg: Emojo başarıyla yok edildi! + disable: Devre dışı bırak + disabled_msg: Bu emoji başarıyla devre dışı bırakıldı + emoji: İfadeler + enable: Etkinleştir + enabled_msg: Bu emojiyi başarıyla etkinleştirdi + image_hint: 50 KB'a kadar PNG + listed: Listelenen + new: + title: Yeni özel emoji ekle + overwrite: Üzerine yaz + shortcode_hint: En az 2 karakter, sadece alfanümerik karakterler ve alt çizgiler + title: Özel emojiler + uncategorized: Kategorilenmemiş + unlisted: Listelenmemiş + updated_msg: Emoji başarıyla güncellendi! + upload: Yükle + dashboard: + config: Yapılandırma + feature_deletions: Hesap silme + feature_profile_directory: Profil dizini + feature_registrations: Kayıtlar + feature_spam_check: Anti-spam + feature_timeline_preview: Zaman çizelgesi önizlemesi + features: Özellikler + hidden_service: Gizli servislere sahip federasyon + open_reports: raporları aç + pending_tags: inceleme için bekleyen hashtag'ler + pending_users: inceleme için bekleyen kullanıcılar + recent_users: Son kullanıcılar + search: Tam metin araması + single_user_mode: Tek kullanıcı modu + software: Yazılım + space: Alan kullanımı + title: Kontrol Paneli + total_users: toplam kullanıcı + trends: Trendler + week_interactions: bu haftaki etkileşimler + week_users_active: bu hafta aktif + week_users_new: bu hafta kullanıcılar + whitelist_mode: Beyaz liste modu + domain_allows: + created_msg: Alan adı başarıyla beyaz listeye alındı + destroyed_msg: Alan adı beyaz listeden kaldırıldı + undo: Beyaz listeden çıkar domain_blocks: add_new: Yeni ekle created_msg: Domain bloğu şu an işleniyor destroyed_msg: Domain bloğu silindi + domain: Alan adı + edit: Etki alanı bloğunu düzenle + existing_domain_block_html: '%{name}''e zaten daha katı sınırlar uyguladınız, önce engellemesini kaldırmanız gerekiyor.' 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. severity: desc_html: "Susturma, uygulanan hesabın gönderilerini, o hesabı takip etmeyen diğer herkese gizler. Uzaklaştırma hesabın bütün içeriğini, ortam dosyalarını ve profil verisini siler." + noop: Yok silence: Sustur suspend: Uzaklaştır title: Yeni domain bloğu + private_comment: Özel yorum + public_comment: Genel yorum reject_media: Ortam dosyalarını reddetme reject_media_hint: Yerel olarak depolanmış ortam dosyalarını ve gelecekte indirilecek olanları reddeder. Uzaklaştırma için uygun değildir + reject_reports: Raporları reddet show: affected_accounts: one: Veritabanındaki bir hesap etkilendi @@ -178,12 +289,43 @@ tr: title: "%{domain} domain'i için yapılan işlemi geri al" undo: Geri al undo: Geri al + email_domain_blocks: + add_new: Yeni ekle + delete: Sil + domain: Alan adı + new: + create: Alan adı ekle + title: E-posta kara listesi + followers: + back_to_account: Hesaba Geri Dön + title: "%{acct} Takipçileri" instances: + by_domain: Alan adı + known_accounts: + one: "%{count} bilinen hesap" + other: "%{count} bilinen hesap" + moderation: + all: Tümü title: Bilinen Sunucular + invites: + filter: + all: Tümü + relays: + delete: Sil + disable: Devre dışı + enabled: Etkin reports: + account: + note: not + report: şikayet + action_taken_by: tarafından gerçekleştirilen eylem + are_you_sure: Emin misiniz? comment: none: Yok mark_as_resolved: Giderildi olarak işaretle + notes: + create: Not Ekle + delete: Sil report: 'Şikayet #%{id}' reported_account: Şikayet edilen hesap reported_by: Şikayet eden @@ -192,13 +334,38 @@ tr: title: Şikayetler unresolved: Giderilmedi settings: + activity_api_enabled: + title: Kullanıcı etkinliği hakkında toplu istatistikler yayınlayın contact_information: email: Herkese açık e-posta adresiniz username: Bir kullanıcı adı giriniz + custom_css: + title: Özel CSS + domain_blocks: + all: Herkes için + domain_blocks_rationale: + title: Gerekçeyi göster + hero: + title: Kahraman görseli + mascot: + title: Maskot görseli + preview_sensitive_media: + desc_html: Medya duyarlı olarak işaretlenmiş olsa bile, diğer web sitelerindeki bağlantı ön izlemeleri küçük resim gösterecektir + title: OpenGraph ön izlemelerinde hassas medyayı göster + profile_directory: + desc_html: Kullanıcıların keşfedilebilir olmasına izin ver + title: Profil dizinini etkinleştir registrations: closed_message: desc_html: Kayıt alımları kapatıldığında ana sayfada görüntülenecek mesajdır.
HTML etiketleri kullanabilirsiniz title: Kayıt alımları kapatılma mesajı + min_invite_role: + title: tarafından yapılan davetlere izin ver + registrations_mode: + modes: + approved: Kayıt için onay gerekli + none: Hiç kimse kayıt olamaz + open: Herkes kaydolabilir site_description: desc_html: Ana sayfada paragraf olarak görüntülenecek bilgidir.
Özellikle <a> ve <em> olmak suretiyle HTML etiketlerini kullanabilirsiniz. title: Site açıklaması @@ -207,6 +374,8 @@ tr: title: Sunucu hakkında detaylı bilgi site_title: Site başlığı title: Site Ayarları + statuses: + no_status_selected: Hiçbiri seçilmediğinden hiçbir durum değiştirilmedi tags: title: Etiketler title: Yönetim @@ -214,16 +383,40 @@ tr: add_new: Yeni ekle delete: Sil edit: Düzenle + appearance: + advanced_web_interface_hint: 'Tüm ekran genişliğinizden yararlanmak istiyorsanız, gelişmiş web arayüzü istediğiniz kadar bilgi görecek kadar çok sayıda farklı sütunu yapılandırmanıza olanak tanır: Anasayfa, bildirimler, birleşik zaman çizelgesi, istediğiniz sayıda liste ve etiket.' + animations_and_accessibility: Animasyonlar ve erişilebilirlik + confirmation_dialogs: Onay iletişim kutuları + discovery: Keşfet + sensitive_content: Hassas içerik application_mailer: + notification_preferences: E-posta tercihlerini değiştir + salutation: "%{name}," settings: 'E-mail tercihlerini değiştir: %{link}' view: 'Görüntüle:' + view_profile: Profili Görüntüle + view_status: Durumu görüntüle applications: + created: Uygulama başarıyla oluşturuldu + destroyed: Uygulama başarıyla silindi invalid_url: Verilen URL geçerli değil + regenerate_token: Erişim belirtecini yeniden oluştur + warning: Bu verilere çok dikkat edin. Asla kimseyle paylaşmayın! + your_token: Erişim belirteciniz auth: + apply_for_account: Davet et + change_password: Parola + checkbox_agreement_html: sunucu kuralları vehizmet şartlarını kabul ediyorum + checkbox_agreement_without_rules_html: Hizmet şartlarını kabul ediyorum + delete_account: Hesabı sil + delete_account_html: Hesabınızı silmek isterseniz, buradan devam edebilirsiniz. Sizden onay istenecektir. didnt_get_confirmation: Hesap doğrulama mailini almadınız mı? forgot_password: Parolanızı unuttunuz mu? + invalid_reset_password_token: Parola sıfırlama belirteci geçersiz veya süresi dolmuş. Lütfen yeni bir tane talep edin. login: Giriş yap logout: Çıkış + migrate_account_html: Bu hesabı başka bir hesaba yönlendirmek istiyorsanız, buradan yapılandırabilirsiniz. + or_log_in_with: Veya giriş yapın register: Üye ol resend_confirmation: Doğrulama mailini tekrar gönder reset_password: Parolayı değiştir @@ -247,20 +440,68 @@ tr: x_minutes: "%{count}dk" x_months: "%{count}ay" x_seconds: "%{count}sn" + directories: + directory: Profil dizini + explanation: Kullanıcıları ilgi alanlarına göre keşfedin + explore_mastodon: "%{title} keşfet" + domain_blocks: + blocked_domains: Sınırlı ve engellenen alanların listesi + description: Bu, %{instance} öğesinin sınırladığı veya federasyonu reddettiği sunucuların listesidir. + domain: Alan adı + severity_legend: + media_block: Sunucudan gelen medya dosyaları alınmaz, saklanmaz veya kullanıcıya gösterilmez. + silence: Susturulmuş sunuculardaki hesaplar bulunabilir, takip edilebilinir ve onlarla etkileşime girilebilinir, ancak gönderileri genel zaman çizelgelerinde görünmez ve onlardan gelen bildirimler onları takip etmeyen yerel kullanıcılara ulaşmaz. + show_rationale: Gerekçeyi göster + domain_validator: + invalid_domain: geçerli bir alan adı değil errors: + '400': Gönderdiğiniz istek geçersiz veya hatalı biçimlendirilmiş. '403': Bu sayfayı görmek için izniniz yok. '404': Aradığınız sayfa bulunamadı. + '406': Bu sayfa istenen formatta mevcut değil. '410': Aradığınız sayfa artık yok. '422': content: Güvenlik doğrulaması başarısız oldu. Site cookie'lerini engellemiş olabilirsiniz. title: Güvenlik doğrulamasu başarısız '429': Throttled - '500': + '500': + content: Üzgünüz, ancak bir şey ters gitti. + title: Bu sayfa doğru değil + '503': Geçici sunucu hatası nedeniyle sayfa görüntülenemedi. + noscript_html: Mastodon web uygulamasını kullanmak için lütfen JavaScript'i etkinleştirin. Alternatif olarak, platformunuz için Mastodon yerel uygulamalardan birini deneyin. + existing_username_validator: + not_found: bu kullanıcı adına sahip yerel bir kullanıcı bulunamadı exports: + archive_takeout: + date: Tarih + download: Arşivinizi indirin + hint_html: "Gönderileriniz ve yüklediğiniz ortamların bir arşivini talep edebilirsiniz. Dışa aktarılan veriler, herhangi bir uyumlu yazılım tarafından okunabilen ActivityPub formatında olacaktır. Her 7 günde bir arşiv talep edebilirsiniz." + in_progress: Arşivinizi derliyoruz... + size: Boyut blocks: Blokladıklarınız + csv: CSV follows: Takip ettikleriniz + lists: Listeler mutes: Susturduklarınız storage: Ortam deposu + featured_tags: + add_new: Yeni ekle + errors: + limit: Zaten azami hashtag miktarı belirlediniz + hint_html: "Öne çıkan etiketler nelerdir? Genel profilinizde belirgin bir şekilde görüntülenirler ve kişilerin genel yayınlarınıza özellikle bu etiketler altında göz atmalarına izin verir. Yaratıcı çalışmaları veya uzun vadeli projeleri takip etmek için harika bir araçtır." + filters: + contexts: + home: Ana zaman çizelgesi + notifications: Bildirimler + public: Genel zaman çizelgesi + thread: Sohbetler + edit: + title: Filtreyi düzenle + index: + delete: Sil + title: Filtreler + new: + title: Yeni filtre ekle generic: changes_saved_msg: Değişiklikler başarıyla kaydedildi! save_changes: Değişiklikleri kaydet @@ -281,14 +522,33 @@ tr: '21600': 6 hours '3600': 1 hour '43200': 12 hours - '604800': 1 week - '86400': 1 day + '604800': 1 hafta + '86400': 1 gün + expires_in_prompt: Asla + generate: Oluştur + invited_by: 'Tarafından davet edildi:' + max_uses: + one: 1 kullanım + other: "%{count} kullanım" + max_uses_prompt: Limit yok + prompt: Bu sunucuya erişim vermek için bağlantılar oluşturun ve başkalarıyla paylaşın + table: + expires_at: Bitiş tarihi + uses: Kullanım + title: İnsanları davet et media_attachments: validations: images_and_video: Halihazırda görsel içeren bir gönderiye video ekleyemezsiniz too_many: 4'ten fazla dosya ekleyemezsiniz + migrations: + currently_redirecting: 'Profiliniz yönlendirmek üzere ayarlandı:' + proceed: Kaydet + updated_msg: Hesap taşıma ayarınız başarıyla güncellendi! + moderation: + title: Yönetim notification_mailer: digest: + action: Tüm bildirimleri görüntüle body: Son ziyaretiniz olan %{since}'den beri'da kaçırdığınız şeylerin özeti mention: "%{name} senden bahsetti:" new_followers_summary: @@ -297,41 +557,129 @@ tr: subject: one: "Son ziyaretinizden beri 1 yeni bildiriminiz var \U0001F418" other: "Son ziyaretinizden beri %{count} yeni bildiriminiz var \U0001F418" + title: Senin yokluğunda... favourite: body: "%{name} durumunuzu favorilere ekledi:" subject: "%{name} favorilere ekledi" + title: Yeni favori follow: body: "%{name} sizi takip etmeye başladı!" subject: "%{name} sizi takip etmeye başladı" + title: Yeni takipçi follow_request: + action: Takip isteklerini yönet body: "%{name} size takip isteği gönderdi" subject: 'Takip isteği: %{name}' + title: Yeni takip isteği mention: + action: Yanıt body: "%{name} sizden bahsetti:" subject: "%{name} sizden bahsetti" reblog: body: "%{name} durumunuzu boost etti:" subject: "%{name} durumunuzu boost etti" + title: Yeni gönderi + number: + human: + decimal_units: + format: "%n%u" + units: + billion: B + million: M + quadrillion: Q + thousand: K + trillion: T pagination: + newer: Daha yeni next: Sonraki + older: Daha Eski prev: Önceki + truncate: "…" + polls: + errors: + already_voted: Bu ankete daha önce oy verdiniz + expired: Anket çoktan sona erdi + over_character_limit: her biri %{max} karakterden daha uzun olamaz + too_few_options: birden fazla öğeye sahip olmalı + too_many_options: "%{max} öğeden fazla öğe içeremez" + preferences: + other: Diğer + relationships: + activity: Hesap etkinliği + last_active: Son aktivite + most_recent: En son remote_follow: acct: Takip edeceğiniz kişiyi kullaniciadi@sunuculinki şeklinde giriniz missing_resource: Hesabınız için yönlendirme linki bulunamadı proceed: Takip onayı prompt: Bu kullanıcıyı takip etmek istediğinize emin misiniz? + sessions: + ip: IP + platforms: + adobe_air: Adobe Air + android: Android + blackberry: Blackberry + chrome_os: ChromeOS + firefox_os: Firefox OS + ios: iOS + linux: GNU/Linux + mac: Mac + other: bilinmeyen platform + windows: Windows + windows_mobile: Windows Mobil + windows_phone: Windows Phone + revoke: İptal + revoke_success: Oturum başarıyla iptal edildi + title: Oturumlar settings: + account: Hesap + account_settings: Hesap ayarları + appearance: Görünüm authorized_apps: Yetkilendirilen uygulamalar back: Mastodon'a geri dön + delete: Hesap silme + development: Geliştirme edit_profile: Profili düzenle export: Dışa aktar + featured_tags: Öne çıkan hashtag'ler + identity_proofs: Kimlik belgesi import: İçe aktar + import_and_export: İçe al ve dışarı aktar + migrate: Hesap taşıma + notifications: Bildirim preferences: Tercihler + profile: Profil + relationships: Takip edilenler ve takipçiler two_factor_authentication: İki-faktörlü doğrulama statuses: + attached: + description: 'Ekli: %{attached}' + image: + one: "%{count} görsel" + other: "%{count} görsel" + video: + one: "%{count} video" + other: "%{count} video" + boosted_from_html: "%{acct_link} den yinelendi" + content_warning: 'İçerik uyarısı: %{warning}' + disallowed_hashtags: + one: 'izin verilmeyen bir etiket içeriyordu: %{tags}' + other: 'izin verilmeyen hashtag''leri içeriyordu: %{tags}' + language_detection: Dili otomatik olarak algıla open_in_web: Web sayfasında aç over_character_limit: "%{max} karakter limiti aşıldı" + pin_errors: + ownership: Başkasının gönderisi sabitlenemez + private: Halka açık olmayan gönderi sabitlenemez + reblog: Bir yineleme sabitlenemez + poll: + total_votes: + one: "%{count} oy" + other: "%{count} oy" + vote: Oy show_more: Daha fazla + sign_in_to_participate: Sohbete katılmak için oturum açın + title: '%{name}: "%{quote}"' visibilities: private: Sadece takipçiler private_long: Sadece takipçilerime gönder @@ -340,8 +688,16 @@ tr: unlisted: Listelenmemiş unlisted_long: Herkes görebilir fakat herkese açık zaman tünellerinde listelenmez stream_entries: + pinned: Sabitlenmiş gönderi reblogged: boost edildi sensitive_content: Hassas içerik + tags: + does_not_match_previous_name: önceki adla eşleşmiyor + terms: + title: "%{instance} Hizmet Şartları ve Gizlilik Politikası" + themes: + contrast: Mastodon (Yüksek karşıtlık) + default: Mastodon (Karanlık) two_factor_authentication: code_hint: Onaylamak için kimlik doğrulama uygulamanızın oluşturduğu kodu giriniz description_html: Eğer iki-faktörlü kimlik doğrulamayı aktif ederseniz, giriş yaparken sizin için giriş kodu üreten telefonunuza ihtiyaç duyacaksınız. diff --git a/config/locales/uk.yml b/config/locales/uk.yml index ac3ce62dd0..564b21db1a 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -62,6 +62,7 @@ uk: media: Медіа moved_html: "%{name} переїхав до %{new_profile_link}:" network_hidden: Ця інформація недоступна + never_active: Ніколи nothing_here: Тут нічого немає! people_followed_by: Люди, на яких підписаний(-а) %{name} people_who_follow: Підписники %{name} @@ -432,6 +433,12 @@ uk: custom_css: desc_html: Відобразити вигляд, коли CSS завантажено для кожної сторінки title: Користувацький CSS + domain_blocks: + all: Всi + disabled: Нікого + title: Показати, які домени заблоковані + domain_blocks_rationale: + title: Обґрунтування hero: desc_html: Відображається на головній сторінці. Рекомендовано як мінімум 600x100 пікселів. Якщо не вказано, буде використано передпоказ інстанції title: Банер інстанції @@ -501,6 +508,7 @@ uk: delete: Видалити nsfw_off: Відмітити прийнятним nsfw_on: Відмітити неприйнятним + deleted: Видалено failed_to_execute: Не вийшло media: title: Медіа @@ -541,6 +549,7 @@ uk: subject: Новий хештеґ надіслано на розгляд до %{instance} (#%{name}) appearance: advanced_web_interface: Розширений web-інтерфейс + advanced_web_interface_hint: 'Розширений веб-інтерфейс дає змогу бачити багато стовпчиків одночасно: основна сторінка, сповіщення, глобальна стрічка, будь-які списки та хештеґи. Потребує широкого екрана.' animations_and_accessibility: Анімація та доступність confirmation_dialogs: Діалоги підтвердження discovery: Виявлення @@ -567,6 +576,10 @@ uk: checkbox_agreement_without_rules_html: Я погоджуюся з умовами використання delete_account: Видалити обліковий запис delete_account_html: Якщо ви хочете видалити свій обліковий запис, ви можете перейти сюди. Вас попросять підтвердити дію. + description: + prefix_invited_by_user: "@%{name} запрошує вас приєднатися до цього сервера Mastodon!" + prefix_sign_up: Зареєструйтеся на Mastodon сьогодні! + suffix: Маючи обліковий запис, ви зможете підписуватися на людей, публікувати пости та листуватися з користувачами будь-якого сервера Mastodon! didnt_get_confirmation: Ви не отримали інструкції з підтвердження? forgot_password: Забули пароль? invalid_reset_password_token: Токен скидання паролю неправильний або просрочений. Спробуйте попросити новий. @@ -622,26 +635,41 @@ uk: deletes: bad_password_msg: Гарна спроба, гакери! Неправильний пароль confirm_password: Введіть актуальний пароль, щоб перевірити що ви це ви - description_html: Це безповоротно і назавжди видалить контент з вашого облікового запису та деактивує його. Ваше ім'я користувача буде залишатися зарезервованим для запобігання можливим підмінам особи. proceed: Видалити обліковий запис success_msg: Ваш обліковий запис було успішно видалено - warning_html: Ми можемо гарантувати видалення контенту лише з цього сайту. Контент, що був поширений, залишає сліди. Сервери, що є офлайн та ті, що відписалися від наших оновлень, не запишуть змін до своїх баз даних. - warning_title: Про доступність поширеного контенту + warning: + before: 'До того як продовжити, будь ласка уважно прочитайте це:' + caches: Інформація, кешована іншими серверами, може залишитися + data_removal: Ваші пости та інші дані будуть видалені назавжди + email_change_html: Ви можете змінити вашу електронну адресу, не видаляючи ваш обліковий запис + email_contact_html: Якщо його все ще немає, ви можете написали до %{email} для допомоги + email_reconfirmation_html: Якщо ви не отримали електронного листа з підтвердженням, ви можете запросити його знову + irreversible: Буде неможливо відновити ваш обліковий запис + more_details_html: Подробиці за посиланням політика конфіденційності. + username_available: Ваше ім'я користувача стане доступним для використання + username_unavailable: Ваше ім'я користувача залишиться недоступним для використання directories: directory: Каталог профілів - enabled: Ви вже присутні у цьому каталозі. explanation: Шукайте користувачів за їх інтересами explore_mastodon: Досліджуйте %{title} - people: - few: "%{count} людей" - many: "%{count} людей" - one: "%{count} людина" - other: "%{count} люди" + domain_blocks: + blocked_domains: Обмежені та заблоковані домени + description: Перелік серверів, з якими %{instance} не хоче або не буде вступати до федеративних відносин. + domain: Домен + no_domain_blocks: "(Немає заблокованих доменів)" + severity_legend: + media_block: Файли медіа з цього сервера не отримуються, не зберігаються та не відображаються. + suspension: Інформація з призупинених серверів не зберігається та не відображається. Ніякі дані не надсилаються до них, взаємодії ігноруються. + suspension_disclaimer: Призупинені сервери можуть інколи отримувати публічні дані з цього сервера. + show_rationale: Обґрунтування + title: "%{instance} Перелік заблокованих серверів" domain_validator: invalid_domain: не є допустимим ім'ям домену errors: + '400': Ваш запит був недійсним або неправильним. '403': У Вас немає доступу до перегляду даної сторінки. '404': Сторінки, яку Ви шукали, не існує. + '406': Ця сторінка недоступна у запрошеному форматі. '410': Сторінки, яку Ви шукали, більше не існує. '422': content: Перевірка безпеки не вдалася. Можливо, Ви блокуєте cookies? @@ -650,6 +678,7 @@ uk: '500': content: Пробачте, та щось пішло не так з нашого боку. title: Ця сторінка неправильна + '503': Ця сторінка не може бути оброблена через тимчасову відмову сервера. noscript_html: Для використання веб-застосунку Mastodon, будь-ласка увімкніть JavaScript. Якщо у вас немає такої можливості, скористайтесь одним із нативних застосунків для Mastodon для вашої платформи. existing_username_validator: not_found: не вдалося знайти локального користувача з таким ім'ям @@ -673,6 +702,7 @@ uk: add_new: Додати новий errors: limit: Ви досягли максимальної кількості хештеґів + hint_html: "Що таке виділені хештеґи? Це ті, що відображаються ни видному місці у вашому публічному профілі. Вони дають змогу людям фільтрувати ваші публічні пости за цими хештеґами. Це дуже корисно для відстеження мистецьких творів та довготривалих проектів." filters: contexts: home: Ваша стрічка @@ -693,6 +723,7 @@ uk: developers: Розробникам more: Більше… resources: Ресурси + trending_now: Актуальні generic: all: Усі changes_saved_msg: Зміни успішно збережені! @@ -713,10 +744,12 @@ uk: errors: failed: Не вдалося встановити це зашифроване з'єднання. Спробуйте ще раз за допомогою %{provider}. i_am_html: Я %{username} з %{service}. + identity: Ідентичність inactive: Неактивний publicize_checkbox: 'Та дмухнути це:' publicize_toot: 'Це доведено! Я таки %{username} з %{service}: %{url}' status: Стан перевірки + view_proof: Переглянути доказ imports: modes: merge: Злиття @@ -836,6 +869,7 @@ uk: too_many_options: не може мати більше ніж %{max} варіантів preferences: other: Інше + posting_defaults: Промовчання для постів public_timelines: Глобальні стрічки relationships: activity: Діяльність облікового запису @@ -923,6 +957,7 @@ uk: edit_profile: Редагувати профіль export: Експорт даних featured_tags: Рекомендовані хештеґи + identity_proofs: Докази ідентичності import: Імпорт import_and_export: Імпорт та експорт migrate: Міграція облікового запису @@ -985,6 +1020,7 @@ uk: tags: does_not_match_previous_name: не збігається з попереднім ім'ям terms: + body_html: "

Політика конфіденційності

\n

Яку інформацію ми збираємо?

\n\n
    \n
  • Основна інформація про обліковий запис: Якщо ви реєструєтесь на цьому сервері, вас можуть попросити ввести ім’я користувача, електронну адресу та пароль. Ви також можете ввести додаткову інформацію профілю, наприклад, ім'я для відображення та біографію, завантажити зображення профілю та зображення заголовка. Ім'я користувача, відображуване ім’я, біографія, зображення профілю та зображення заголовка завжди є загальнодоступними.
  • \n
  • Повідомлення, підписки та інша публічна інформація: Список людей, на яких ви підписані, є публічним, це ж стосується і списка ваших підписників. Коли ви надсилаєте повідомлення, дата та час зберігаються, а також програма, за допомогою якої ви надіслали повідомлення. Повідомлення можуть містити мультимедійні вкладення, такі як зображення та відео. Загальнодоступні публікації, навіть приховані зі стрічок, доступні для всіх. Коли ви розміщуєте публікацію у своєму профілі, це також загальнодоступна інформація. Ваші публікації доставляються вашим підписникам, у деяких випадках це означає, що вони доставляються на інші сервери і копії зберігаються там. Коли ви видаляєте публікації, ця інформація також доставляється вашим \nпідписникам. Перепости та вподобання завжди публічні.
  • \n
  • Прямі публікації та пости лише для підписників: Усі повідомлення зберігаються та обробляються на сервері. Публікації лише для підписників доставляються вашим підписникам та користувачам, які згадуються в них, а прямі повідомлення надсилаються лише тим користувачам, які в них згадуються. У \nдеяких випадках це означає, що вони доставляються на інші сервери і копії зберігаються там. Ми докладаємо сумлінних зусиль, щоб обмежити доступ до цих постів лише уповноваженим особам, але інші сервери можуть цього не зробити. Тому важливо переглянути сервери, до яких належать ваші підписники. Ви можете переключити параметр для схвалення та відхилення нових підписників вручну в налаштуваннях. Будь ласка, майте на увазі, що оператори нашого сервера та будь-якого приймаючого сервера, можуть переглядати такі повідомлення, і що одержувачі можуть робити скріншот, копіювати або повторно ділитися ними. Не діліться будь-якою небезпечною інформацією на Mastodon.
  • \n
  • IP-адреси та інші метадані: Коли ви входите в систему, ми записуємо IP-адресу, з якої ви входите, а також назву веб-переглядача. Усі сеанси, якими ви ввійшли в систему, доступні вам для перегляду та скасування в налаштуваннях. Остання використана IP-адреса зберігається до 12 місяців. Ми також можемо зберігати журнали серверів, які включають IP-адресу кожного запиту на наш сервер.
  • \n
\n\n
\n\n

Для чого ми використовуємо вашу інформацію?

\n\n

Будь-яка інформація, яку ми збираємо від вас, може використовуватися такими способами:

\n\n
    \n
  • Для забезпечення основної функціональності Mastodon. Ви можете взаємодіяти з вмістом інших людей та розміщувати власний вміст лише тоді, коли ви ввійшли в систему. Наприклад, ви можете підписатись на інших людей, щоб переглядати їх публікації об’єднаними на вашій власній персоналізованій локальній стрічці.
  • \n
  • Щоб сприяти модерації спільноти, наприклад, порівнюючи вашу IP-адресу з іншими відомими адресами для визначення ухилення від бану чи інших порушень.
  • \n
  • Електронна адреса, яку ви вводите, може використовуватися для надсилання вам інформації, сповіщень про інших людей, які взаємодіють з вашим вмістом або надсилають вам повідомлення, а також для відповіді на запити та/або інші запитання./li>\n
\n\n
\n\n

Як ми захищаємо вашу інформацію?

\n\n

Ми застосовуємо різноманітні заходи безпеки для підтримки безпеки вашої особистої інформації під час введення, подання чи доступу до вашої особистої інформації. Крім усього іншого, сеанс вашого веб-переглядача, а також трафік між вашими програмами та API захищені SSL, а ваш пароль хеширується за допомогою сильного одностороннього алгоритму. Ви можете дозволити двофакторну автентифікацію для подальшого захисту доступу до свого облікового запису.

\n\n
\n\n

Яка наша політика збереження даних?

\n\n

Ми докладемо зусиль для того, щоб:

\n\n
    \n
  • Зберігати журнали сервера, що містять IP-адресу всіх запитів на цьому сервері, але більше 90 днів.
  • \n
  • Зберігати IP-адреси, пов’язані з зареєстрованими користувачами, не більше 12 місяців.
  • \n
\n\n

Ви можете запитати та завантажити архів свого вмісту, включаючи ваші публікації, медіа-додатки, зображення профілю та зображення заголовка.

\n\n

Ви можете в будь-який час безповоротно видалити свій обліковий запис.

\n\n
\n\n

Чи використовуємо ми файли cookie?

\n\n

Так. Файли cookie — це невеликі файли, які сайт або його постачальник послуг передає на жорсткий диск вашого комп'ютера через веб-браузер (якщо ви це дозволите). Ці файли cookie дозволяють сайту розпізнавати ваш веб-переглядач і, якщо у вас зареєстрований обліковий запис, пов’язувати його зі своїм зареєстрованим обліковим записом.

\n\n

Ми використовуємо файли cookie, щоб зрозуміти і зберегти ваші налаштування для майбутніх відвідувань.

\n\n
\n\n

Чи розкриваємо ми будь-яку інформацію іншим сторонам?

\n\n

Ми не продаємо, не торгуємо та іншим чином не передаємо назовні вашої особистої інформації. Це не стосується довірених третіх осіб, які допомагають нам керувати нашим сайтом, вести наш бізнес або обслуговувати вас, якщо ці сторони погоджуються зберігати цю інформацію конфіденційною. Ми також можемо оприлюднити вашу інформацію, коли вважаємо, що випуск доцільний для дотримання законодавства, \nзастосування політики нашого веб-сайта чи захисту наших або інших прав, власності чи безпеки.

\n\n

Ваш загальнодоступний вміст може завантажуватися іншими серверами в мережі. Ваші загальнодоступні публікації та публікації лише для підписників, доставляються на сервери, де \"проживають\" ваші підписники, а прямі повідомлення надходять на сервери одержувачів, якщо ці підписники або одержувачі проживають на іншому сервері, ніж цей./p>\n\n

Коли ви дозволяєте додатку використовувати ваш обліковий запис, залежно від обсягу дозволів, які ви затверджуєте, він може отримати доступ до вашої інформації про загальнодоступний профіль, список ваших підписок, ваші підписники, ваші списки, всі ваші публікації та вибране. Програми ніколи не можуть отримати доступ до вашої електронної адреси чи пароля.

\n\n
\n\n

Використання сайту дітьми

\n\n

Якщо цей сервер знаходиться в ЄС або ЄЕП: наш сайт, продукти та послуги спрямовані на людей, яким не менше 16 років. Якщо вам не виповнилося 16 років, відповідно до вимог GDPR (Загальне положення про захист даних) не використовуйте цей веб-сайт.

\n\n

Якщо цей сервер знаходиться в США: наш сайт, продукти та послуги спрямовані на людей, яким не менше 13 років. Якщо вам не виповнилося 13 років, відповідно до вимог COPPA (Закон про захист конфіденційності дітей в Інтернеті) не використовуйте цей сайт.

\n\n

Законодавчі вимоги можуть бути різними, якщо цей сервер знаходиться в іншій юрисдикції.

\n\n
\n\n

Зміни в нашій Політиці конфіденційності

\n\n

Якщо ми вирішимо змінити нашу політику конфіденційності, ми опублікуємо ці зміни на цій сторінці.

\n\n

Цей документ є CC-BY-SA. Востаннє оновлено 7 березня 2018 року.

\n\n

Первісно адаптовано з політики конфіденційності дискурсу.

\n" title: Умови використання та Політика приватності %{instance} themes: contrast: Висока контрасність @@ -1020,6 +1056,7 @@ uk: disable: Поки ваш обліковий запис заморожений, його дані залишаються незмінними. Проте ви не зможете виконувати будь-які дії над обліковим записом, доки його не буде розблоковано. silence: Поки ваш обліковий запис обмежено, ваші дмухи на цьому сервері бачитимуть лише ті люди, які вже слідкують за вами, а вас може бути виключено з різних публічних списків. Тим не менш, інші можуть слідкувати за вами вручну. suspend: Ваш обліковий запис було призупинено, а всі ваші дмухи і вивантажені медіафайли - безповоротно видалено з цього сервера та серверів, де ви мали послідовників. + get_in_touch: Ви можете відповісти на цей електронний лист, щоб зконтактувати з працівниками %{instance}. review_server_policies: Переглянути політики сервера subject: disable: Ваш обліковий запис %{acct} було заморожено diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index e42c68055b..d2549bcb4d 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -276,6 +276,7 @@ zh-CN: created_msg: 正在进行域名屏蔽 destroyed_msg: 域名屏蔽已撤销 domain: 域名 + edit: 编辑域名屏蔽 existing_domain_block_html: 您已经对 %{name} 施加了更严格的限制,您需要先 解封。 new: create: 添加屏蔽 @@ -476,6 +477,7 @@ zh-CN: delete: 删除 nsfw_off: 标记为非敏感内容 nsfw_on: 标记为敏感内容 + deleted: 已删除 failed_to_execute: 执行失败 media: title: 媒体文件 @@ -487,6 +489,7 @@ zh-CN: accounts_today: 今日活跃用户 accounts_week: 本周活跃用户 directory: 在目录中 + review: 审核状态 reviewed: 已审核 title: 话题标签 trending_right_now: 当前热门 @@ -585,23 +588,23 @@ zh-CN: deletes: bad_password_msg: 想得美,黑客!密码输入错误 confirm_password: 输入你当前的密码来验证身份 - description_html: 继续操作将会永久地、不可撤销地删除帐户中的所有内容,然后冻结帐户。你的用户名将会被保留,以防有人冒用你的身份。 proceed: 删除帐户 success_msg: 你的帐户已经成功删除 - warning_html: 我们只能保证本服务器上的内容将会被彻底删除。对于已经被广泛传播的内容,它们在本服务器以外的某些地方可能仍然可见。此外,失去连接的服务器以及停止接收订阅的服务器所存储的数据亦无法删除。 - warning_title: 关于已传播的内容的警告 directories: directory: 用户目录 - enabled: 您已被收录在用户目录中。 - enabled_but_waiting: 你已选择将账号收录到用户目录中,但是你的关注者不足 (%{min_followers}) 人 。 explanation: 根据兴趣发现用户 explore_mastodon: 探索 %{title} - how_to_enable: 您目前没有被收录到用户目录中。您可以在下面选择收录。在个人简介中加上话题标签后,话题标签也会显示在用户目录上! - people: - other: "%{count} 人" + domain_blocks: + silence: 隐藏 + suspension: 屏蔽 + title: "%{instance} 已屏蔽实例列表" + domain_validator: + invalid_domain: 不是一个有效的域名 errors: + '400': 您提交的请求无效或格式不正确。 '403': 你没有访问这个页面的权限。 '404': 无法找到你所要访问的页面。 + '406': This page is not available in the requested format. '410': 你所要访问的页面此处已不存在。 '422': content: 无法确认登录信息。你是不是屏蔽了 Cookie? @@ -610,6 +613,7 @@ zh-CN: '500': content: 抱歉,我们的后台出错了。 title: 这个页面有问题 + '503': The page could not be served due to a temporary server failure. noscript_html: 使用 Mastodon 网页版应用需要启用 JavaScript。你也可以选择适用于你的平台的 Mastodon 应用。 existing_username_validator: not_found: 在本站找不到此用户 @@ -653,6 +657,7 @@ zh-CN: developers: 开发者 more: 更多… resources: 资源 + trending_now: 现在流行 generic: all: 全部 changes_saved_msg: 更改保存成功! @@ -925,6 +930,8 @@ zh-CN: pinned: 置顶嘟文 reblogged: 转嘟 sensitive_content: 敏感内容 + tags: + does_not_match_previous_name: 和之前的名称不匹配 terms: body_html: |

隐私政策

diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml index b1769871d8..75202fa688 100644 --- a/config/locales/zh-HK.yml +++ b/config/locales/zh-HK.yml @@ -393,14 +393,13 @@ zh-HK: deletes: bad_password_msg: 想得美,黑客!密碼輸入錯誤 confirm_password: 輸入你現在的密碼來驗證身份 - description_html: 繼續操作將會永久地、不可還原地刪除帳戶中的所有內容,然後凍結帳戶。你的用戶名將會被保留,以防有人冒用你的身份。 proceed: 刪除帳戶 success_msg: 你的帳戶已經成功刪除 - warning_html: 我們只能保證本服務站上的內容將會被徹底刪除。對於已經被廣泛傳播的內容,它們在本服務站以外的某些地方可能仍然可見。此外,失去連接的服務站以及停止接收訂閱的服務站所存儲的數據亦無法刪除。 - warning_title: 關於已傳播的內容的警告 errors: + '400': The request you submitted was invalid or malformed. '403': 你沒有觀看本頁的權限。 '404': 找不到內容。 + '406': This page is not available in the requested format. '410': 內容已被刪除。 '422': content: 無法確認登入資訊。會不會你阻擋了本站使用 Cookies 的權限? @@ -409,6 +408,7 @@ zh-HK: '500': content: 抱歉,我們的後台出錯了。 title: 這個頁面有問題 + '503': The page could not be served due to a temporary server failure. noscript_html: 使用 Mastodon 網頁版應用需要啟用 JavaScript。你也可以選擇適用於你的平台的 Mastodon 應用。 exports: archive_takeout: diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index b7a9a2ec28..95f7d7f9ac 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -467,14 +467,13 @@ zh-TW: deletes: bad_password_msg: 想得美,駭客! 密碼輸入錯誤 confirm_password: 輸入你現在的密碼來驗證身份 - description_html: 繼續操作將會永久地、不可還原地刪除帳戶中的所有內容,然後凍結帳戶。你的使用者名稱將會被保留,以防有人冒用你的身份。 proceed: 刪除帳戶 success_msg: 你的帳戶已經成功刪除 - warning_html: 我們只能保證本伺服器上的內容將會被徹底刪除。對於已經被廣泛傳播的內容,它們在本伺服器以外的某些地方可能仍然可見。此外,離線伺服器以及停止接收訂閱的伺服器所儲存的資料亦無法刪除。 - warning_title: 關於已傳播的內容警告 errors: + '400': The request you submitted was invalid or malformed. '403': 你沒有觀看這個頁面的權限。 '404': 您所尋找的網頁不存在。 + '406': This page is not available in the requested format. '410': 您所尋找的網頁此處已不存在。 '422': content: 安全驗證失敗。請確定有開啟瀏覽器 Cookies 功能? @@ -483,6 +482,7 @@ zh-TW: '500': content: 抱歉,我們的後台出現問題了。 title: 這個頁面有問題 + '503': The page could not be served due to a temporary server failure. noscript_html: 使用 Mastodon 網頁版應用需要啟用 JavaScript。你也可以選擇適用於你的平台的 Mastodon 應用。 exports: archive_takeout: From 9045f5e3f8aabcdff908058764882b7165a03925 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 10 Sep 2019 12:44:47 +0200 Subject: [PATCH 22/43] Bump webpush from 0.3.8 to 1.0.0 (#11614) Bumps [webpush](https://github.com/zaru/webpush) from 0.3.8 to 1.0.0. - [Release notes](https://github.com/zaru/webpush/releases) - [Changelog](https://github.com/zaru/webpush/blob/master/CHANGELOG.md) - [Commits](https://github.com/zaru/webpush/compare/v0.3.8...v1.0.0) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index b8cdbd1516..125cca4bab 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -321,7 +321,7 @@ GEM multi_json (~> 1.12) rdf (~> 3.0) jsonapi-renderer (0.2.2) - jwt (2.1.0) + jwt (2.2.1) kaminari (1.1.1) activesupport (>= 4.1.0) kaminari-actionview (= 1.1.1) @@ -654,7 +654,7 @@ GEM activesupport (>= 4.2) rack-proxy (>= 0.6.1) railties (>= 4.2) - webpush (0.3.8) + webpush (1.0.0) hkdf (~> 0.2) jwt (~> 2.0) websocket-driver (0.7.0) From 86748148256b504c0411119628435b1445959309 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 10 Sep 2019 13:48:48 +0200 Subject: [PATCH 23/43] Change tootctl to use inline parallelization instead of Sidekiq (#11776) - Remove --background option - Add --concurrency(=5) option - Add progress bars --- Gemfile | 1 + Gemfile.lock | 1 + app/models/media_attachment.rb | 1 + app/models/preview_card.rb | 2 + .../maintenance/destroy_media_worker.rb | 14 -- .../redownload_account_media_worker.rb | 16 -- .../maintenance/uncache_media_worker.rb | 18 -- .../maintenance/uncache_preview_worker.rb | 18 -- lib/mastodon/accounts_cli.rb | 192 +++++++----------- lib/mastodon/cache_cli.rb | 16 +- lib/mastodon/cli_helper.rb | 49 +++++ lib/mastodon/domains_cli.rb | 27 ++- lib/mastodon/feeds_cli.rb | 42 +--- lib/mastodon/media_cli.rb | 57 ++---- lib/mastodon/preview_cards_cli.rb | 83 +++----- 15 files changed, 200 insertions(+), 337 deletions(-) delete mode 100644 app/workers/maintenance/destroy_media_worker.rb delete mode 100644 app/workers/maintenance/redownload_account_media_worker.rb delete mode 100644 app/workers/maintenance/uncache_media_worker.rb delete mode 100644 app/workers/maintenance/uncache_preview_worker.rb diff --git a/Gemfile b/Gemfile index 73edb2a6ac..af0e8e2fcf 100644 --- a/Gemfile +++ b/Gemfile @@ -77,6 +77,7 @@ gem 'rails-settings-cached', '~> 0.6' gem 'redis', '~> 4.1', require: ['redis', 'redis/connection/hiredis'] gem 'mario-redis-lock', '~> 1.2', require: 'redis_lock' gem 'rqrcode', '~> 0.10' +gem 'ruby-progressbar', '~> 1.10' gem 'sanitize', '~> 5.1' gem 'sidekiq', '~> 5.2' gem 'sidekiq-scheduler', '~> 3.0' diff --git a/Gemfile.lock b/Gemfile.lock index 125cca4bab..6e931c6113 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -769,6 +769,7 @@ DEPENDENCIES rspec-sidekiq (~> 3.0) rubocop (~> 0.74) rubocop-rails (~> 2.3) + ruby-progressbar (~> 1.10) sanitize (~> 5.1) sidekiq (~> 5.2) sidekiq-bulk (~> 0.2.0) diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb index 44f8e6be63..b580250155 100644 --- a/app/models/media_attachment.rb +++ b/app/models/media_attachment.rb @@ -129,6 +129,7 @@ class MediaAttachment < ApplicationRecord scope :unattached, -> { where(status_id: nil, scheduled_status_id: nil) } scope :local, -> { where(remote_url: '') } scope :remote, -> { where.not(remote_url: '') } + scope :cached, -> { remote.where.not(file_file_name: nil) } default_scope { order(id: :asc) } diff --git a/app/models/preview_card.rb b/app/models/preview_card.rb index a792b352bd..9d6c1938a0 100644 --- a/app/models/preview_card.rb +++ b/app/models/preview_card.rb @@ -43,6 +43,8 @@ class PreviewCard < ApplicationRecord validates_attachment_size :image, less_than: LIMIT remotable_attachment :image, LIMIT + scope :cached, -> { where.not(image_file_name: [nil, '']) } + before_save :extract_dimensions, if: :link? def save_with_optional_image! diff --git a/app/workers/maintenance/destroy_media_worker.rb b/app/workers/maintenance/destroy_media_worker.rb deleted file mode 100644 index cde33d6d79..0000000000 --- a/app/workers/maintenance/destroy_media_worker.rb +++ /dev/null @@ -1,14 +0,0 @@ -# frozen_string_literal: true - -class Maintenance::DestroyMediaWorker - include Sidekiq::Worker - - sidekiq_options queue: 'pull' - - def perform(media_attachment_id) - media = media_attachment_id.is_a?(MediaAttachment) ? media_attachment_id : MediaAttachment.find(media_attachment_id) - media.destroy - rescue ActiveRecord::RecordNotFound - true - end -end diff --git a/app/workers/maintenance/redownload_account_media_worker.rb b/app/workers/maintenance/redownload_account_media_worker.rb deleted file mode 100644 index 6afbe6e19c..0000000000 --- a/app/workers/maintenance/redownload_account_media_worker.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -class Maintenance::RedownloadAccountMediaWorker - include Sidekiq::Worker - - sidekiq_options queue: 'pull', retry: false - - def perform(account_id) - account = account_id.is_a?(Account) ? account_id : Account.find(account_id) - account.reset_avatar! - account.reset_header! - account.save - rescue ActiveRecord::RecordNotFound - true - end -end diff --git a/app/workers/maintenance/uncache_media_worker.rb b/app/workers/maintenance/uncache_media_worker.rb deleted file mode 100644 index 4bc62ef755..0000000000 --- a/app/workers/maintenance/uncache_media_worker.rb +++ /dev/null @@ -1,18 +0,0 @@ -# frozen_string_literal: true - -class Maintenance::UncacheMediaWorker - include Sidekiq::Worker - - sidekiq_options queue: 'pull' - - def perform(media_attachment_id) - media = media_attachment_id.is_a?(MediaAttachment) ? media_attachment_id : MediaAttachment.find(media_attachment_id) - - return if media.file.blank? - - media.file.destroy - media.save - rescue ActiveRecord::RecordNotFound - true - end -end diff --git a/app/workers/maintenance/uncache_preview_worker.rb b/app/workers/maintenance/uncache_preview_worker.rb deleted file mode 100644 index 810ffd8ccf..0000000000 --- a/app/workers/maintenance/uncache_preview_worker.rb +++ /dev/null @@ -1,18 +0,0 @@ -# frozen_string_literal: true - -class Maintenance::UncachePreviewWorker - include Sidekiq::Worker - - sidekiq_options queue: 'pull' - - def perform(preview_card_id) - preview_card = PreviewCard.find(preview_card_id) - - return if preview_card.image.blank? - - preview_card.image.destroy - preview_card.save - rescue ActiveRecord::RecordNotFound - true - end -end diff --git a/lib/mastodon/accounts_cli.rb b/lib/mastodon/accounts_cli.rb index d1854acc02..b16bf2e389 100644 --- a/lib/mastodon/accounts_cli.rb +++ b/lib/mastodon/accounts_cli.rb @@ -7,6 +7,8 @@ require_relative 'cli_helper' module Mastodon class AccountsCLI < Thor + include CLIHelper + def self.exit_on_failure? true end @@ -26,18 +28,20 @@ module Mastodon if options[:all] processed = 0 delay = 0 + scope = Account.local.without_suspended + progress = create_progress_bar(scope.count) - Account.local.without_suspended.find_in_batches do |accounts| + scope.find_in_batches do |accounts| accounts.each do |account| rotate_keys_for_account(account, delay) + progress.increment processed += 1 - say('.', :green, false) end delay += 5.minutes end - say + progress.finish say("OK, rotated keys for #{processed} accounts", :green) elsif username.present? rotate_keys_for_account(Account.find_local(username)) @@ -206,6 +210,8 @@ module Mastodon say('OK', :green) end + option :concurrency, type: :numeric, default: 5, aliases: [:c] + option :verbose, type: :boolean, aliases: [:v] option :dry_run, type: :boolean desc 'cull', 'Remove remote accounts that no longer exist' long_desc <<-LONG_DESC @@ -215,63 +221,45 @@ module Mastodon Accounts that have had confirmed activity within the last week are excluded from the checks. - - Domains that are unreachable are not checked. - - With the --dry-run option, no deletes will actually be carried - out. LONG_DESC def cull skip_threshold = 7.days.ago - culled = 0 - dry_run_culled = [] - skip_domains = Set.new dry_run = options[:dry_run] ? ' (DRY RUN)' : '' + skip_domains = Concurrent::Set.new - Account.remote.where(protocol: :activitypub).partitioned.find_each do |account| - next if account.updated_at >= skip_threshold || (account.last_webfingered_at.present? && account.last_webfingered_at >= skip_threshold) + processed, culled = parallelize_with_progress(Account.remote.where(protocol: :activitypub).partitioned) do |account| + next if account.updated_at >= skip_threshold || (account.last_webfingered_at.present? && account.last_webfingered_at >= skip_threshold) || skip_domains.include?(account.domain) code = 0 - unless skip_domains.include?(account.domain) - begin - code = Request.new(:head, account.uri).perform(&:code) - rescue HTTP::ConnectionError - skip_domains << account.domain - rescue StandardError - next - end + + begin + code = Request.new(:head, account.uri).perform(&:code) + rescue HTTP::ConnectionError + skip_domains << account.domain end if [404, 410].include?(code) - if options[:dry_run] - dry_run_culled << account.acct - else - SuspendAccountService.new.call(account, destroy: true) - end - culled += 1 - say('+', :green, false) + SuspendAccountService.new.call(account, destroy: true) unless options[:dry_run] + 1 else - account.touch # Touch account even during dry run to avoid getting the account into the window again - say('.', nil, false) + # Touch account even during dry run to avoid getting the account into the window again + account.touch end end - say - say("Removed #{culled} accounts. #{skip_domains.size} servers skipped#{dry_run}", skip_domains.empty? ? :green : :yellow) + say("Visited #{processed} accounts, removed #{culled}#{dry_run}", :green) unless skip_domains.empty? - say('The following servers were not available during the check:', :yellow) + say('The following domains were not available during the check:', :yellow) skip_domains.each { |domain| say(' ' + domain) } end - - unless dry_run_culled.empty? - say('The following accounts would have been deleted:', :green) - dry_run_culled.each { |account| say(' ' + account) } - end end option :all, type: :boolean option :domain + option :concurrency, type: :numeric, default: 5, aliases: [:c] + option :verbose, type: :boolean, aliases: [:v] + option :dry_run, type: :boolean desc 'refresh [USERNAME]', 'Fetch remote user data and files' long_desc <<-LONG_DESC Fetch remote user data and files for one or multiple accounts. @@ -280,21 +268,23 @@ module Mastodon Through the --domain option, this can be narrowed down to a specific domain only. Otherwise, a single remote account must be specified with USERNAME. - - All processing is done in the background through Sidekiq. LONG_DESC def refresh(username = nil) + dry_run = options[:dry_run] ? ' (DRY RUN)' : '' + if options[:domain] || options[:all] - queued = 0 scope = Account.remote scope = scope.where(domain: options[:domain]) if options[:domain] - scope.select(:id).reorder(nil).find_in_batches do |accounts| - Maintenance::RedownloadAccountMediaWorker.push_bulk(accounts.map(&:id)) - queued += accounts.size + processed, = parallelize_with_progress(scope) do |account| + next if options[:dry_run] + + account.reset_avatar! + account.reset_header! + account.save end - say("Scheduled refreshment of #{queued} accounts", :green, true) + say("Refreshed #{processed} accounts#{dry_run}", :green, true) elsif username.present? username, domain = username.split('@') account = Account.find_remote(username, domain) @@ -304,76 +294,53 @@ module Mastodon exit(1) end - Maintenance::RedownloadAccountMediaWorker.perform_async(account.id) - say('OK', :green) + unless options[:dry_run] + account.reset_avatar! + account.reset_header! + account.save + end + + say("OK#{dry_run}", :green) else say('No account(s) given', :red) exit(1) end end - desc 'follow ACCT', 'Make all local accounts follow account specified by ACCT' - long_desc <<-LONG_DESC - Make all local accounts follow another local account specified by ACCT. - ACCT should be the username only. - LONG_DESC - def follow(acct) - if acct.include? '@' - say('Target account name should not contain a target instance, since it has to be a local account.', :red) - exit(1) - end - - target_account = ResolveAccountService.new.call(acct) - processed = 0 - failed = 0 + option :concurrency, type: :numeric, default: 5, aliases: [:c] + option :verbose, type: :boolean, aliases: [:v] + desc 'follow USERNAME', 'Make all local accounts follow account specified by USERNAME' + def follow(username) + target_account = Account.find_local(username) if target_account.nil? - say("Target account (#{acct}) could not be resolved", :red) + say('No such account', :red) exit(1) end - Account.local.without_suspended.find_each do |account| - begin - FollowService.new.call(account, target_account) - processed += 1 - say('.', :green, false) - rescue StandardError - failed += 1 - say('.', :red, false) - end + processed, = parallelize_with_progress(Account.local.without_suspended) do |account| + FollowService.new.call(account, target_account) end - say("OK, followed target from #{processed} accounts, skipped #{failed}", :green) + say("OK, followed target from #{processed} accounts", :green) end + option :concurrency, type: :numeric, default: 5, aliases: [:c] + option :verbose, type: :boolean, aliases: [:v] desc 'unfollow ACCT', 'Make all local accounts unfollow account specified by ACCT' - long_desc <<-LONG_DESC - Make all local accounts unfollow an account specified by ACCT. ACCT can be - a simple username, in case of a local user. It can also be in the format - username@domain, in case of a remote user. - LONG_DESC def unfollow(acct) target_account = Account.find_remote(*acct.split('@')) - processed = 0 - failed = 0 if target_account.nil? - say("Target account (#{acct}) was not found", :red) + say('No such account', :red) exit(1) end - target_account.followers.local.find_each do |account| - begin - UnfollowService.new.call(account, target_account) - processed += 1 - say('.', :green, false) - rescue StandardError - failed += 1 - say('.', :red, false) - end + parallelize_with_progress(target_account.followers.local) do |account| + UnfollowService.new.call(account, target_account) end - say("OK, unfollowed target from #{processed} accounts, skipped #{failed}", :green) + say("OK, unfollowed target from #{processed} accounts", :green) end option :follows, type: :boolean, default: false @@ -396,51 +363,50 @@ module Mastodon account = Account.find_local(username) if account.nil? - say('No user with such username', :red) + say('No such account', :red) exit(1) end + total = 0 + total += Account.where(id: ::Follow.where(account: account).select(:target_account_id)).count if options[:follows] + total += Account.where(id: ::Follow.where(target_account: account).select(:account_id)).count if options[:followers] + progress = create_progress_bar(total) + processed = 0 + if options[:follows] - processed = 0 - failed = 0 + scope = Account.where(id: ::Follow.where(account: account).select(:target_account_id)) - say("Unfollowing #{account.username}'s followees, this might take a while...") - - Account.where(id: ::Follow.where(account: account).select(:target_account_id)).find_each do |target_account| + scope.find_each do |target_account| begin UnfollowService.new.call(account, target_account) + rescue => e + progress.log pastel.red("Error processing #{target_account.id}: #{e}") + ensure + progress.increment processed += 1 - say('.', :green, false) - rescue StandardError - failed += 1 - say('.', :red, false) end end BootstrapTimelineWorker.perform_async(account.id) - - say("OK, unfollowed #{processed} followees, skipped #{failed}", :green) end if options[:followers] - processed = 0 - failed = 0 + scope = Account.where(id: ::Follow.where(target_account: account).select(:account_id)) - say("Removing #{account.username}'s followers, this might take a while...") - - Account.where(id: ::Follow.where(target_account: account).select(:account_id)).find_each do |target_account| + scope.find_each do |target_account| begin UnfollowService.new.call(target_account, account) + rescue => e + progress.log pastel.red("Error processing #{target_account.id}: #{e}") + ensure + progress.increment processed += 1 - say('.', :green, false) - rescue StandardError - failed += 1 - say('.', :red, false) end end - - say("OK, removed #{processed} followers, skipped #{failed}", :green) end + + progress.finish + say("Processed #{processed} relationships", :green, true) end option :number, type: :numeric, aliases: [:n] diff --git a/lib/mastodon/cache_cli.rb b/lib/mastodon/cache_cli.rb index 5b0eea91b5..803404c34f 100644 --- a/lib/mastodon/cache_cli.rb +++ b/lib/mastodon/cache_cli.rb @@ -6,6 +6,8 @@ require_relative 'cli_helper' module Mastodon class CacheCLI < Thor + include CLIHelper + def self.exit_on_failure? true end @@ -16,6 +18,8 @@ module Mastodon say('OK', :green) end + option :concurrency, type: :numeric, default: 5, aliases: [:c] + option :verbose, type: :boolean, aliases: [:v] desc 'recount TYPE', 'Update hard-cached counters' long_desc <<~LONG_DESC Update hard-cached counters of TYPE by counting referenced @@ -25,32 +29,24 @@ module Mastodon size of the database. LONG_DESC def recount(type) - processed = 0 - case type when 'accounts' - Account.local.includes(:account_stat).find_each do |account| + processed, = parallelize_with_progress(Account.local.includes(:account_stat)) do |account| account_stat = account.account_stat account_stat.following_count = account.active_relationships.count account_stat.followers_count = account.passive_relationships.count account_stat.statuses_count = account.statuses.where.not(visibility: :direct).count account_stat.save if account_stat.changed? - - processed += 1 - say('.', :green, false) end when 'statuses' - Status.includes(:status_stat).find_each do |status| + processed, = parallelize_with_progress(Status.includes(:status_stat)) do |status| status_stat = status.status_stat status_stat.replies_count = status.replies.where.not(visibility: :direct).count status_stat.reblogs_count = status.reblogs.count status_stat.favourites_count = status.favourites.count status_stat.save if status_stat.changed? - - processed += 1 - say('.', :green, false) end else say("Unknown type: #{type}", :red) diff --git a/lib/mastodon/cli_helper.rb b/lib/mastodon/cli_helper.rb index 2f807d08c8..da73483493 100644 --- a/lib/mastodon/cli_helper.rb +++ b/lib/mastodon/cli_helper.rb @@ -7,3 +7,52 @@ ActiveRecord::Base.logger = dev_null ActiveJob::Base.logger = dev_null HttpLog.configuration.logger = dev_null Paperclip.options[:log] = false + +module Mastodon + module CLIHelper + def create_progress_bar(total = nil) + ProgressBar.create(total: total, format: '%c/%u |%b%i| %e') + end + + def parallelize_with_progress(scope) + ActiveRecord::Base.configurations[Rails.env]['pool'] = options[:concurrency] + + progress = create_progress_bar(scope.count) + pool = Concurrent::FixedThreadPool.new(options[:concurrency]) + total = Concurrent::AtomicFixnum.new(0) + aggregate = Concurrent::AtomicFixnum.new(0) + + scope.reorder(nil).find_in_batches do |items| + futures = [] + + items.each do |item| + futures << Concurrent::Future.execute(executor: pool) do + ActiveRecord::Base.connection_pool.with_connection do + begin + progress.log("Processing #{item.id}") if options[:verbose] + + result = yield(item) + aggregate.increment(result) if result.is_a?(Integer) + rescue => e + progress.log pastel.red("Error processing #{item.id}: #{e}") + ensure + progress.increment + end + end + end + end + + total.increment(items.size) + futures.map(&:value) + end + + progress.finish + + [total.value, aggregate.value] + end + + def pastel + @pastel ||= Pastel.new + end + end +end diff --git a/lib/mastodon/domains_cli.rb b/lib/mastodon/domains_cli.rb index 17cafd1bca..c612c2d72f 100644 --- a/lib/mastodon/domains_cli.rb +++ b/lib/mastodon/domains_cli.rb @@ -7,10 +7,14 @@ require_relative 'cli_helper' module Mastodon class DomainsCLI < Thor + include CLIHelper + def self.exit_on_failure? true end + option :concurrency, type: :numeric, default: 5, aliases: [:c] + option :verbose, type: :boolean, aliases: [:v] option :dry_run, type: :boolean option :whitelist_mode, type: :boolean desc 'purge [DOMAIN]', 'Remove accounts from a DOMAIN without a trace' @@ -24,7 +28,6 @@ module Mastodon are removed from the database. LONG_DESC def purge(domain = nil) - removed = 0 dry_run = options[:dry_run] ? ' (DRY RUN)' : '' scope = begin @@ -38,25 +41,22 @@ module Mastodon end end - scope.find_each do |account| + processed, = parallelize_with_progress(scope) do |account| SuspendAccountService.new.call(account, destroy: true) unless options[:dry_run] - removed += 1 - say('.', :green, false) end DomainBlock.where(domain: domain).destroy_all unless options[:dry_run] - say - say("Removed #{removed} accounts#{dry_run}", :green) + say("Removed #{processed} accounts#{dry_run}", :green) custom_emojis = CustomEmoji.where(domain: domain) custom_emojis_count = custom_emojis.count custom_emojis.destroy_all unless options[:dry_run] + say("Removed #{custom_emojis_count} custom emojis", :green) end option :concurrency, type: :numeric, default: 50, aliases: [:c] - option :silent, type: :boolean, default: false, aliases: [:s] option :format, type: :string, default: 'summary', aliases: [:f] option :exclude_suspended, type: :boolean, default: false, aliases: [:x] desc 'crawl [START]', 'Crawl all known peers, optionally beginning at START' @@ -69,8 +69,6 @@ module Mastodon The --concurrency (-c) option controls the number of threads performing HTTP requests at the same time. More threads means the crawl may complete faster. - The --silent (-s) option controls progress output. - The --format (-f) option controls how the data is displayed at the end. By default (`summary`), a summary of the statistics is returned. The other options are `domains`, which returns a newline-delimited list of all discovered peers, @@ -87,6 +85,7 @@ module Mastodon start_at = Time.now.to_f seed = start ? [start] : Account.remote.domains blocked_domains = Regexp.new('\\.?' + DomainBlock.where(severity: 1).pluck(:domain).join('|') + '$') + progress = create_progress_bar pool = Concurrent::ThreadPoolExecutor.new(min_threads: 0, max_threads: options[:concurrency], idletime: 10, auto_terminate: true, max_queue: 0) @@ -95,7 +94,6 @@ module Mastodon next if options[:exclude_suspended] && domain.match(blocked_domains) stats[domain] = nil - processed.increment begin Request.new(:get, "https://#{domain}/api/v1/instance").perform do |res| @@ -115,11 +113,11 @@ module Mastodon next unless res.code == 200 stats[domain]['activity'] = Oj.load(res.to_s) end - - say('.', :green, false) unless options[:silent] rescue StandardError failed.increment - say('.', :red, false) unless options[:silent] + ensure + processed.increment + progress.increment unless progress.finished? end end @@ -133,10 +131,9 @@ module Mastodon pool.shutdown pool.wait_for_termination(20) ensure + progress.finish pool.shutdown - say unless options[:silent] - case options[:format] when 'summary' stats_to_summary(stats, processed, failed, start_at) diff --git a/lib/mastodon/feeds_cli.rb b/lib/mastodon/feeds_cli.rb index fe11c3df40..ea7c90dffc 100644 --- a/lib/mastodon/feeds_cli.rb +++ b/lib/mastodon/feeds_cli.rb @@ -6,55 +6,33 @@ require_relative 'cli_helper' module Mastodon class FeedsCLI < Thor + include CLIHelper + def self.exit_on_failure? true end option :all, type: :boolean, default: false - option :background, type: :boolean, default: false + option :concurrency, type: :numeric, default: 5, aliases: [:c] + option :verbose, type: :boolean, aliases: [:v] option :dry_run, type: :boolean, default: false - option :verbose, type: :boolean, default: false desc 'build [USERNAME]', 'Build home and list feeds for one or all users' long_desc <<-LONG_DESC Build home and list feeds that are stored in Redis from the database. With the --all option, all active users will be processed. Otherwise, a single user specified by USERNAME. - - With the --background option, regeneration will be queued into Sidekiq, - and the command will exit as soon as possible. - - With the --dry-run option, no work will be done. - - With the --verbose option, when accounts are processed sequentially in the - foreground, the IDs of the accounts will be printed. LONG_DESC def build(username = nil) dry_run = options[:dry_run] ? '(DRY RUN)' : '' if options[:all] || username.nil? - processed = 0 - queued = 0 - User.active.select(:id, :account_id).reorder(nil).find_in_batches do |users| - if options[:background] - RegenerationWorker.push_bulk(users.map(&:account_id)) unless options[:dry_run] - queued += users.size - else - users.each do |user| - RegenerationWorker.new.perform(user.account_id) unless options[:dry_run] - options[:verbose] ? say(user.account_id) : say('.', :green, false) - processed += 1 - end - end + processed, = parallelize_with_progress(Account.joins(:user).merge(User.active)) do |account| + PrecomputeFeedService.new.call(account) unless options[:dry_run] end - if options[:background] - say("Scheduled feed regeneration for #{queued} accounts #{dry_run}", :green, true) - else - say - say("Regenerated feeds for #{processed} accounts #{dry_run}", :green, true) - end + say("Regenerated feeds for #{processed} accounts #{dry_run}", :green, true) elsif username.present? account = Account.find_local(username) @@ -63,11 +41,7 @@ module Mastodon exit(1) end - if options[:background] - RegenerationWorker.perform_async(account.id) unless options[:dry_run] - else - RegenerationWorker.new.perform(account.id) unless options[:dry_run] - end + PrecomputeFeedService.new.call(account) unless options[:dry_run] say("OK #{dry_run}", :green, true) else diff --git a/lib/mastodon/media_cli.rb b/lib/mastodon/media_cli.rb index 6152d5a095..0659b6b65c 100644 --- a/lib/mastodon/media_cli.rb +++ b/lib/mastodon/media_cli.rb @@ -7,14 +7,15 @@ require_relative 'cli_helper' module Mastodon class MediaCLI < Thor include ActionView::Helpers::NumberHelper + include CLIHelper def self.exit_on_failure? true end - option :days, type: :numeric, default: 7 - option :background, type: :boolean, default: false - option :verbose, type: :boolean, default: false + option :days, type: :numeric, default: 7, aliases: [:d] + option :concurrency, type: :numeric, default: 5, aliases: [:c] + option :verbose, type: :boolean, default: false, aliases: [:v] option :dry_run, type: :boolean, default: false desc 'remove', 'Remove remote media files' long_desc <<-DESC @@ -22,49 +23,25 @@ module Mastodon The --days option specifies how old media attachments have to be before they are removed. It defaults to 7 days. - - With the --background option, instead of deleting the files sequentially, - they will be queued into Sidekiq and the command will exit as soon as - possible. In Sidekiq they will be processed with higher concurrency, but - it may impact other operations of the Mastodon server, and it may overload - the underlying file storage. - - With the --dry-run option, no work will be done. - - With the --verbose option, when media attachments are processed sequentially in the - foreground, the IDs of the media attachments will be printed. DESC def remove - time_ago = options[:days].days.ago - queued = 0 - processed = 0 - size = 0 - dry_run = options[:dry_run] ? '(DRY RUN)' : '' + time_ago = options[:days].days.ago + dry_run = options[:dry_run] ? '(DRY RUN)' : '' - if options[:background] - MediaAttachment.where.not(remote_url: '').where.not(file_file_name: nil).where('created_at < ?', time_ago).select(:id, :file_file_size).reorder(nil).find_in_batches do |media_attachments| - queued += media_attachments.size - size += media_attachments.reduce(0) { |sum, m| sum + (m.file_file_size || 0) } - Maintenance::UncacheMediaWorker.push_bulk(media_attachments.map(&:id)) unless options[:dry_run] - end - else - MediaAttachment.where.not(remote_url: '').where.not(file_file_name: nil).where('created_at < ?', time_ago).reorder(nil).find_in_batches do |media_attachments| - media_attachments.each do |m| - size += m.file_file_size || 0 - Maintenance::UncacheMediaWorker.new.perform(m) unless options[:dry_run] - options[:verbose] ? say(m.id) : say('.', :green, false) - processed += 1 - end + processed, aggregate = parallelize_with_progress(MediaAttachment.cached.where.not(remote_url: '').where('created_at < ?', time_ago)) do |media_attachment| + next if media_attachment.file.blank? + + size = media_attachment.file_file_size + + unless options[:dry_run] + media_attachment.file.destroy + media_attachment.save end + + size end - say - - if options[:background] - say("Scheduled the deletion of #{queued} media attachments (approx. #{number_to_human_size(size)}) #{dry_run}", :green, true) - else - say("Removed #{processed} media attachments (approx. #{number_to_human_size(size)}) #{dry_run}", :green, true) - end + say("Removed #{processed} media attachments (approx. #{number_to_human_size(aggregate)}) #{dry_run}", :green, true) end end end diff --git a/lib/mastodon/preview_cards_cli.rb b/lib/mastodon/preview_cards_cli.rb index 465fe7d0b0..cf4407250c 100644 --- a/lib/mastodon/preview_cards_cli.rb +++ b/lib/mastodon/preview_cards_cli.rb @@ -8,87 +8,52 @@ require_relative 'cli_helper' module Mastodon class PreviewCardsCLI < Thor include ActionView::Helpers::NumberHelper + include CLIHelper def self.exit_on_failure? true end option :days, type: :numeric, default: 180 - option :background, type: :boolean, default: false - option :verbose, type: :boolean, default: false + option :concurrency, type: :numeric, default: 5, aliases: [:c] + option :verbose, type: :boolean, aliases: [:v] option :dry_run, type: :boolean, default: false option :link, type: :boolean, default: false desc 'remove', 'Remove preview cards' long_desc <<-DESC - Removes locally thumbnails for previews. + Removes local thumbnails for preview cards. The --days option specifies how old preview cards have to be before - they are removed. It defaults to 180 days. + they are removed. It defaults to 180 days. Since preview cards will + not be re-fetched unless the link is re-posted after 2 weeks from + last time, it is not recommended to delete preview cards within the + last 14 days. - With the --background option, instead of deleting the files sequentially, - they will be queued into Sidekiq and the command will exit as soon as - possible. In Sidekiq they will be processed with higher concurrency, but - it may impact other operations of the Mastodon server, and it may overload - the underlying file storage. - - With the --dry-run option, no work will be done. - - With the --verbose option, when preview cards are processed sequentially in the - foreground, the IDs of the preview cards will be printed. - - With the --link option, delete only link-type preview cards. + With the --link option, only link-type preview cards will be deleted, + leaving video and photo cards untouched. DESC def remove - prompt = TTY::Prompt.new - time_ago = options[:days].days.ago - queued = 0 - processed = 0 - size = 0 - dry_run = options[:dry_run] ? '(DRY RUN)' : '' - link = options[:link] ? 'link-type ' : '' - scope = PreviewCard.where.not(image_file_name: nil) - scope = scope.where.not(image_file_name: '') - scope = scope.where(type: :link) if options[:link] - scope = scope.where('updated_at < ?', time_ago) + time_ago = options[:days].days.ago + dry_run = options[:dry_run] ? ' (DRY RUN)' : '' + link = options[:link] ? 'link-type ' : '' + scope = PreviewCard.cached + scope = scope.where(type: :link) if options[:link] + scope = scope.where('updated_at < ?', time_ago) - if time_ago > 2.weeks.ago - prompt.say "\n" - prompt.say('The preview cards less than the past two weeks will not be re-acquired even when needed.') - prompt.say "\n" + processed, aggregate = parallelize_with_progress(scope) do |preview_card| + next if preview_card.image.blank? - unless prompt.yes?('Are you sure you want to delete the preview cards?', default: false) - prompt.say "\n" - prompt.warn 'Nothing execute. Bye!' - prompt.say "\n" - exit(1) - end - end + size = preview_card.image_file_size - if options[:background] - scope.select(:id, :image_file_size).reorder(nil).find_in_batches do |preview_cards| - queued += preview_cards.size - size += preview_cards.reduce(0) { |sum, p| sum + (p.image_file_size || 0) } - Maintenance::UncachePreviewWorker.push_bulk(preview_cards.map(&:id)) unless options[:dry_run] + unless options[:dry_run] + preview_card.image.destroy + preview_card.save end - else - scope.select(:id, :image_file_size).reorder(nil).find_in_batches do |preview_cards| - preview_cards.each do |p| - size += p.image_file_size || 0 - Maintenance::UncachePreviewWorker.new.perform(p.id) unless options[:dry_run] - options[:verbose] ? say(p.id) : say('.', :green, false) - processed += 1 - end - end + size end - say - - if options[:background] - say("Scheduled the deletion of #{queued} #{link}preview cards (approx. #{number_to_human_size(size)}) #{dry_run}", :green, true) - else - say("Removed #{processed} #{link}preview cards (approx. #{number_to_human_size(size)}) #{dry_run}", :green, true) - end + say("Removed #{processed} #{link}preview cards (approx. #{number_to_human_size(aggregate)})#{dry_run}", :green, true) end end end From 031ca25014e0ba88d3dcc3086947b41449a672e2 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 10 Sep 2019 15:29:12 +0200 Subject: [PATCH 24/43] Add retry for failed media downloads and `tootctl media refresh` (#11775) --- app/lib/activitypub/activity/create.rb | 21 +++++----- app/models/concerns/remotable.rb | 12 +++--- app/models/media_attachment.rb | 2 +- app/workers/redownload_media_worker.rb | 19 +++++++++ lib/mastodon/media_cli.rb | 54 ++++++++++++++++++++++++++ 5 files changed, 92 insertions(+), 16 deletions(-) create mode 100644 app/workers/redownload_media_worker.rb diff --git a/app/lib/activitypub/activity/create.rb b/app/lib/activitypub/activity/create.rb index 000b77df5f..dea7fd43c6 100644 --- a/app/lib/activitypub/activity/create.rb +++ b/app/lib/activitypub/activity/create.rb @@ -189,22 +189,25 @@ class ActivityPub::Activity::Create < ActivityPub::Activity media_attachments = [] as_array(@object['attachment']).each do |attachment| - next if attachment['url'].blank? + next if attachment['url'].blank? || media_attachments.size >= 4 - href = Addressable::URI.parse(attachment['url']).normalize.to_s - media_attachment = MediaAttachment.create(account: @account, remote_url: href, description: attachment['name'].presence, focus: attachment['focalPoint'], blurhash: supported_blurhash?(attachment['blurhash']) ? attachment['blurhash'] : nil) - media_attachments << media_attachment + begin + href = Addressable::URI.parse(attachment['url']).normalize.to_s + media_attachment = MediaAttachment.create(account: @account, remote_url: href, description: attachment['name'].presence, focus: attachment['focalPoint'], blurhash: supported_blurhash?(attachment['blurhash']) ? attachment['blurhash'] : nil) + media_attachments << media_attachment - next if unsupported_media_type?(attachment['mediaType']) || skip_download? + next if unsupported_media_type?(attachment['mediaType']) || skip_download? - media_attachment.file_remote_url = href - media_attachment.save + media_attachment.file_remote_url = href + media_attachment.save + rescue Mastodon::UnexpectedResponseError, HTTP::TimeoutError, HTTP::ConnectionError, OpenSSL::SSL::SSLError + RedownloadMediaWorker.perform_in(rand(30..600).seconds, media_attachment.id) + end end media_attachments rescue Addressable::URI::InvalidURIError => e - Rails.logger.debug e - + Rails.logger.debug "Invalid URL in attachment: #{e}" media_attachments end diff --git a/app/models/concerns/remotable.rb b/app/models/concerns/remotable.rb index 9372a963bf..0823026193 100644 --- a/app/models/concerns/remotable.rb +++ b/app/models/concerns/remotable.rb @@ -4,7 +4,7 @@ module Remotable extend ActiveSupport::Concern class_methods do - def remotable_attachment(attachment_name, limit) + def remotable_attachment(attachment_name, limit, suppress_errors: true) attribute_name = "#{attachment_name}_remote_url".to_sym method_name = "#{attribute_name}=".to_sym alt_method_name = "reset_#{attachment_name}!".to_sym @@ -22,7 +22,7 @@ module Remotable begin Request.new(:get, url).perform do |response| - next if response.code != 200 + raise Mastodon::UnexpectedResponseError, response unless (200...300).cover?(response.code) content_type = parse_content_type(response.headers.get('content-type').last) extname = detect_extname_from_content_type(content_type) @@ -41,11 +41,11 @@ module Remotable self[attribute_name] = url if has_attribute?(attribute_name) end - rescue HTTP::TimeoutError, HTTP::ConnectionError, OpenSSL::SSL::SSLError, Paperclip::Errors::NotIdentifiedByImageMagickError, Addressable::URI::InvalidURIError, Mastodon::HostValidationError, Mastodon::LengthValidationError => e + rescue Mastodon::UnexpectedResponseError, HTTP::TimeoutError, HTTP::ConnectionError, OpenSSL::SSL::SSLError => e + Rails.logger.debug "Error fetching remote #{attachment_name}: #{e}" + raise e unless suppress_errors + rescue Paperclip::Errors::NotIdentifiedByImageMagickError, Addressable::URI::InvalidURIError, Mastodon::HostValidationError, Mastodon::LengthValidationError, Paperclip::Error, Mastodon::DimensionsValidationError => e Rails.logger.debug "Error fetching remote #{attachment_name}: #{e}" - nil - rescue Paperclip::Error, Mastodon::DimensionsValidationError => e - Rails.logger.debug "Error processing remote #{attachment_name}: #{e}" nil end end diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb index b580250155..a2b73f1508 100644 --- a/app/models/media_attachment.rb +++ b/app/models/media_attachment.rb @@ -118,7 +118,7 @@ class MediaAttachment < ApplicationRecord validates_attachment_content_type :file, content_type: IMAGE_MIME_TYPES + VIDEO_MIME_TYPES + AUDIO_MIME_TYPES validates_attachment_size :file, less_than: IMAGE_LIMIT, unless: :larger_media_format? validates_attachment_size :file, less_than: VIDEO_LIMIT, if: :larger_media_format? - remotable_attachment :file, VIDEO_LIMIT + remotable_attachment :file, VIDEO_LIMIT, suppress_errors: false include Attachmentable diff --git a/app/workers/redownload_media_worker.rb b/app/workers/redownload_media_worker.rb new file mode 100644 index 0000000000..98e9959189 --- /dev/null +++ b/app/workers/redownload_media_worker.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class RedownloadMediaWorker + include Sidekiq::Worker + include ExponentialBackoff + + sidekiq_options queue: 'pull', retry: 3 + + def perform(id) + media_attachment = MediaAttachment.find(id) + + return if media_attachment.remote_url.blank? + + media_attachment.reset_file! + media_attachment.save + rescue ActiveRecord::RecordNotFound + true + end +end diff --git a/lib/mastodon/media_cli.rb b/lib/mastodon/media_cli.rb index 0659b6b65c..ec2f36c302 100644 --- a/lib/mastodon/media_cli.rb +++ b/lib/mastodon/media_cli.rb @@ -43,5 +43,59 @@ module Mastodon say("Removed #{processed} media attachments (approx. #{number_to_human_size(aggregate)}) #{dry_run}", :green, true) end + + option :account, type: :string + option :domain, type: :string + option :status, type: :numeric + option :concurrency, type: :numeric, default: 5, aliases: [:c] + option :verbose, type: :boolean, default: false, aliases: [:v] + option :dry_run, type: :boolean, default: false + desc 'refresh', 'Fetch remote media files' + long_desc <<-DESC + Re-downloads media attachments from other servers. You must specify the + source of media attachments with one of the following options: + + Use the --status option to download attachments from a specific status, + using the status local numeric ID. + + Use the --account option to download attachments from a specific account, + using username@domain handle of the account. + + Use the --domain option to download attachments from a specific domain. + DESC + def refresh + dry_run = options[:dry_run] ? ' (DRY RUN)' : '' + + if options[:status] + scope = MediaAttachment.where(status_id: options[:status]) + elsif options[:account] + username, domain = username.split('@') + account = Account.find_remote(username, domain) + + if account.nil? + say('No such account', :red) + exit(1) + end + + scope = MediaAttachment.where(account_id: account.id) + elsif options[:domain] + scope = MediaAttachment.joins(:account).merge(Account.by_domain_and_subdomains(options[:domain])) + else + exit(1) + end + + processed, aggregate = parallelize_with_progress(scope) do |media_attachment| + next if media_attachment.remote_url.blank? + + unless options[:dry_run] + media_attachment.reset_file! + media_attachment.save + end + + media_attachment.file_file_size + end + + say("Downloaded #{processed} media attachments (approx. #{number_to_human_size(aggregate)})#{dry_run}", :green, true) + end end end From 2b2b03a7da124a49112e1ce91d80681316065008 Mon Sep 17 00:00:00 2001 From: ThibG Date: Tue, 10 Sep 2019 20:55:23 +0200 Subject: [PATCH 25/43] Fix duplicate HTML ids in /about (#11803) Fixes #11329 --- app/views/about/_login.html.haml | 2 +- app/views/about/_registration.html.haml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/about/_login.html.haml b/app/views/about/_login.html.haml index d286f0d3c6..fa58f04d73 100644 --- a/app/views/about/_login.html.haml +++ b/app/views/about/_login.html.haml @@ -1,4 +1,4 @@ -= simple_form_for(new_user, url: user_session_path) do |f| += simple_form_for(new_user, url: user_session_path, namespace: 'login') do |f| .fields-group - if use_seamless_external_login? = f.input :email, placeholder: t('simple_form.labels.defaults.username_or_email'), input_html: { 'aria-label' => t('simple_form.labels.defaults.username_or_email') }, hint: false diff --git a/app/views/about/_registration.html.haml b/app/views/about/_registration.html.haml index ff32ec8c46..1333c68c4f 100644 --- a/app/views/about/_registration.html.haml +++ b/app/views/about/_registration.html.haml @@ -1,4 +1,4 @@ -= simple_form_for(new_user, url: user_registration_path) do |f| += simple_form_for(new_user, url: user_registration_path, namespace: 'registration') do |f| .simple_form__overlay-area %p.lead= t('about.federation_hint_html', instance: content_tag(:strong, site_hostname)) From 17389c63c848e06b646a971c04ec055f371b92cb Mon Sep 17 00:00:00 2001 From: ThibG Date: Tue, 10 Sep 2019 20:56:07 +0200 Subject: [PATCH 26/43] Change /admin/custom_emoji to honor the auto_play_gif setting (#11801) Fixes #9535 --- app/helpers/application_helper.rb | 8 ++++++-- app/views/admin/custom_emojis/_custom_emoji.html.haml | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 23cbb1d937..defd97609a 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -77,8 +77,12 @@ module ApplicationHelper content_tag(:i, nil, attributes.merge(class: class_names.join(' '))) end - def custom_emoji_tag(custom_emoji) - image_tag(custom_emoji.image.url, class: 'emojione', alt: ":#{custom_emoji.shortcode}:") + def custom_emoji_tag(custom_emoji, animate = true) + if animate + image_tag(custom_emoji.image.url, class: 'emojione', alt: ":#{custom_emoji.shortcode}:") + else + image_tag(custom_emoji.image.url(:static), class: 'emojione custom-emoji', alt: ":#{custom_emoji.shortcode}", 'data-original' => full_asset_url(custom_emoji.image.url), 'data-static' => full_asset_url(custom_emoji.image.url(:static))) + end end def opengraph(property, content) diff --git a/app/views/admin/custom_emojis/_custom_emoji.html.haml b/app/views/admin/custom_emojis/_custom_emoji.html.haml index 9e06a3b424..2103b0fa7d 100644 --- a/app/views/admin/custom_emojis/_custom_emoji.html.haml +++ b/app/views/admin/custom_emojis/_custom_emoji.html.haml @@ -3,7 +3,7 @@ = f.check_box :custom_emoji_ids, { multiple: true, include_hidden: false }, custom_emoji.id .batch-table__row__content.batch-table__row__content--with-image .batch-table__row__content__image - = custom_emoji_tag(custom_emoji) + = custom_emoji_tag(custom_emoji, animate = current_account&.user&.setting_auto_play_gif) .batch-table__row__content__text %samp= ":#{custom_emoji.shortcode}:" From 4faaa5b25e54f863fdf3a68edc5ca664e5a84e4c Mon Sep 17 00:00:00 2001 From: ThibG Date: Tue, 10 Sep 2019 20:56:42 +0200 Subject: [PATCH 27/43] Add updated relationship to follow request API responses (#11800) Fixes #11747 --- app/controllers/api/v1/follow_requests_controller.rb | 8 ++++++-- .../api/v1/follow_requests_controller_spec.rb | 12 ++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/app/controllers/api/v1/follow_requests_controller.rb b/app/controllers/api/v1/follow_requests_controller.rb index e6888154e2..0ee6e531f0 100644 --- a/app/controllers/api/v1/follow_requests_controller.rb +++ b/app/controllers/api/v1/follow_requests_controller.rb @@ -14,12 +14,12 @@ class Api::V1::FollowRequestsController < Api::BaseController def authorize AuthorizeFollowService.new.call(account, current_account) NotifyService.new.call(current_account, Follow.find_by(account: account, target_account: current_account)) - render_empty + render json: account, serializer: REST::RelationshipSerializer, relationships: relationships end def reject RejectFollowService.new.call(account, current_account) - render_empty + render json: account, serializer: REST::RelationshipSerializer, relationships: relationships end private @@ -28,6 +28,10 @@ class Api::V1::FollowRequestsController < Api::BaseController Account.find(params[:id]) end + def relationships(**options) + AccountRelationshipsPresenter.new([params[:id]], current_user.account_id, options) + end + def load_accounts default_accounts.merge(paginated_follow_requests).to_a end diff --git a/spec/controllers/api/v1/follow_requests_controller_spec.rb b/spec/controllers/api/v1/follow_requests_controller_spec.rb index 87292d9ce1..ae92a9627a 100644 --- a/spec/controllers/api/v1/follow_requests_controller_spec.rb +++ b/spec/controllers/api/v1/follow_requests_controller_spec.rb @@ -38,6 +38,12 @@ RSpec.describe Api::V1::FollowRequestsController, type: :controller do it 'allows follower to follow' do expect(follower.following?(user.account)).to be true end + + it 'returns JSON with followed_by=true' do + json = body_as_json + + expect(json[:followed_by]).to be true + end end describe 'POST #reject' do @@ -54,5 +60,11 @@ RSpec.describe Api::V1::FollowRequestsController, type: :controller do it 'removes follow request' do expect(FollowRequest.where(target_account: user.account, account: follower).count).to eq 0 end + + it 'returns JSON with followed_by=false' do + json = body_as_json + + expect(json[:followed_by]).to be false + end end end From 4fe127664b0ae22a528b4a4467ab2de92e3da3ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tao=20Bror=20Bojl=C3=A9n?= Date: Wed, 11 Sep 2019 07:44:58 +0100 Subject: [PATCH 28/43] add admin setting for default search engine indexing (fix #11750) (#11804) --- app/lib/settings/scoped_settings.rb | 1 + app/models/form/admin_settings.rb | 2 ++ app/views/admin/settings/edit.html.haml | 3 +++ config/locales/en.yml | 3 +++ spec/controllers/application_controller_spec.rb | 1 + 5 files changed, 10 insertions(+) diff --git a/app/lib/settings/scoped_settings.rb b/app/lib/settings/scoped_settings.rb index 3653ab1149..9ca39510ac 100644 --- a/app/lib/settings/scoped_settings.rb +++ b/app/lib/settings/scoped_settings.rb @@ -4,6 +4,7 @@ module Settings class ScopedSettings DEFAULTING_TO_UNSCOPED = %w( theme + noindex ).freeze def initialize(object) diff --git a/app/models/form/admin_settings.rb b/app/models/form/admin_settings.rb index 6bc3ca9f52..24196e1828 100644 --- a/app/models/form/admin_settings.rb +++ b/app/models/form/admin_settings.rb @@ -32,6 +32,7 @@ class Form::AdminSettings trends show_domain_blocks show_domain_blocks_rationale + noindex ).freeze BOOLEAN_KEYS = %i( @@ -45,6 +46,7 @@ class Form::AdminSettings profile_directory spam_check_enabled trends + noindex ).freeze UPLOAD_KEYS = %i( diff --git a/app/views/admin/settings/edit.html.haml b/app/views/admin/settings/edit.html.haml index 28880c087e..752386b3ca 100644 --- a/app/views/admin/settings/edit.html.haml +++ b/app/views/admin/settings/edit.html.haml @@ -71,6 +71,9 @@ .fields-group = f.input :trends, as: :boolean, wrapper: :with_label, label: t('admin.settings.trends.title'), hint: t('admin.settings.trends.desc_html') + .fields-group + = f.input :noindex, as: :boolean, wrapper: :with_label, label: t('admin.settings.default_noindex.title'), hint: t('admin.settings.default_noindex.desc_html') + .fields-group = f.input :spam_check_enabled, as: :boolean, wrapper: :with_label, label: t('admin.settings.spam_check_enabled.title'), hint: t('admin.settings.spam_check_enabled.desc_html') diff --git a/config/locales/en.yml b/config/locales/en.yml index 52cb4a2692..0a5ca31c1a 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -427,6 +427,9 @@ en: custom_css: desc_html: Modify the look with CSS loaded on every page title: Custom CSS + default_noindex: + desc_html: Affects all users who have not changed this setting themselves + title: Opt users out of search engine indexing by default domain_blocks: all: To everyone disabled: To no one diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb index 1811500dfe..da4a794cdd 100644 --- a/spec/controllers/application_controller_spec.rb +++ b/spec/controllers/application_controller_spec.rb @@ -110,6 +110,7 @@ describe ApplicationController, type: :controller do sign_in current_user allow(Setting).to receive(:[]).with('theme').and_return 'contrast' + allow(Setting).to receive(:[]).with('noindex').and_return false expect(controller.view_context.current_theme).to eq 'contrast' end From c5d37f18cb3f4d6212fb8f3e1c4e1e027f677ec5 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 11 Sep 2019 16:32:44 +0200 Subject: [PATCH 29/43] Change deletes to preserve soft-deleted statuses in unresolved reports (#11805) Change all account actions except "none" to resolve all unresolved reports Refactor `SuspendAccountService` to be more readable --- app/controllers/admin/accounts_controller.rb | 2 +- .../admin/report_notes_controller.rb | 9 ++- .../api/v1/admin/accounts_controller.rb | 2 +- app/lib/activitypub/activity/delete.rb | 3 +- app/models/account.rb | 1 + app/models/admin/account_action.rb | 24 +++++-- app/models/form/account_batch.rb | 2 +- app/models/form/status_batch.rb | 2 +- app/models/report.rb | 1 + app/models/status.rb | 4 ++ app/models/user.rb | 4 ++ app/services/block_domain_service.rb | 2 +- app/services/remove_status_service.rb | 7 ++- app/services/suspend_account_service.rb | 62 ++++++++++++++----- app/services/unallow_domain_service.rb | 2 +- app/workers/admin/suspension_worker.rb | 2 +- lib/mastodon/accounts_cli.rb | 4 +- lib/mastodon/domains_cli.rb | 2 +- .../reported_statuses_controller_spec.rb | 2 +- .../admin/statuses_controller_spec.rb | 2 +- spec/models/form/status_batch_spec.rb | 4 +- 21 files changed, 98 insertions(+), 45 deletions(-) diff --git a/app/controllers/admin/accounts_controller.rb b/app/controllers/admin/accounts_controller.rb index 2fa1dfe5fc..68b6352f88 100644 --- a/app/controllers/admin/accounts_controller.rb +++ b/app/controllers/admin/accounts_controller.rb @@ -41,7 +41,7 @@ module Admin def reject authorize @account.user, :reject? - SuspendAccountService.new.call(@account, including_user: true, destroy: true, skip_distribution: true) + SuspendAccountService.new.call(@account, reserve_email: false, reserve_username: false) redirect_to admin_pending_accounts_path end diff --git a/app/controllers/admin/report_notes_controller.rb b/app/controllers/admin/report_notes_controller.rb index bcb3f20260..b816c5b5d4 100644 --- a/app/controllers/admin/report_notes_controller.rb +++ b/app/controllers/admin/report_notes_controller.rb @@ -5,10 +5,10 @@ module Admin before_action :set_report_note, only: [:destroy] def create - authorize ReportNote, :create? + authorize :report_note, :create? @report_note = current_account.report_notes.new(resource_params) - @report = @report_note.report + @report = @report_note.report if @report_note.save if params[:create_and_resolve] @@ -26,9 +26,8 @@ module Admin redirect_to admin_report_path(@report), notice: I18n.t('admin.report_notes.created_msg') else - @report_notes = @report.notes.latest - @report_history = @report.history - @form = Form::StatusBatch.new + @report_notes = (@report.notes.latest + @report.history + @report.target_account.targeted_account_warnings.latest.custom).sort_by(&:created_at) + @form = Form::StatusBatch.new render template: 'admin/reports/show' end diff --git a/app/controllers/api/v1/admin/accounts_controller.rb b/app/controllers/api/v1/admin/accounts_controller.rb index c306180ca2..c35ea5ab25 100644 --- a/app/controllers/api/v1/admin/accounts_controller.rb +++ b/app/controllers/api/v1/admin/accounts_controller.rb @@ -58,7 +58,7 @@ class Api::V1::Admin::AccountsController < Api::BaseController def reject authorize @account.user, :reject? - SuspendAccountService.new.call(@account, including_user: true, destroy: true, skip_distribution: true) + SuspendAccountService.new.call(@account, reserve_email: false, reserve_username: false) render json: @account, serializer: REST::Admin::AccountSerializer end diff --git a/app/lib/activitypub/activity/delete.rb b/app/lib/activitypub/activity/delete.rb index 3450604629..dc9ff580c1 100644 --- a/app/lib/activitypub/activity/delete.rb +++ b/app/lib/activitypub/activity/delete.rb @@ -13,8 +13,7 @@ class ActivityPub::Activity::Delete < ActivityPub::Activity def delete_person lock_or_return("delete_in_progress:#{@account.id}") do - SuspendAccountService.new.call(@account) - @account.destroy! + SuspendAccountService.new.call(@account, reserve_username: false) end end diff --git a/app/models/account.rb b/app/models/account.rb index 8c9388b959..55fe53fae1 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -115,6 +115,7 @@ class Account < ApplicationRecord :approved?, :pending?, :disabled?, + :unconfirmed_or_pending?, :role, :admin?, :moderator?, diff --git a/app/models/admin/account_action.rb b/app/models/admin/account_action.rb index c7da8b52ce..b30a823699 100644 --- a/app/models/admin/account_action.rb +++ b/app/models/admin/account_action.rb @@ -83,19 +83,23 @@ class Admin::AccountAction # A log entry is only interesting if the warning contains # custom text from someone. Otherwise it's just noise. + log_action(:create, warning) if warning.text.present? end def process_reports! - return if report_id.blank? + # If we're doing "mark as resolved" on a single report, + # then we want to keep other reports open in case they + # contain new actionable information. + # + # Otherwise, we will mark all unresolved reports about + # the account as resolved. - authorize(report, :update?) + reports.each { |report| authorize(report, :update?) } - if type == 'none' + reports.each do |report| log_action(:resolve, report) report.resolve!(current_account) - else - Report.where(target_account: target_account).unresolved.update_all(action_taken: true, action_taken_by_account_id: current_account.id) end end @@ -141,6 +145,16 @@ class Admin::AccountAction @report.status_ids if @report && include_statuses end + def reports + @reports ||= begin + if type == 'none' && with_report? + [report] + else + Report.where(target_account: target_account).unresolved + end + end + end + def warning_preset @warning_preset ||= AccountWarningPreset.find(warning_preset_id) if warning_preset_id.present? end diff --git a/app/models/form/account_batch.rb b/app/models/form/account_batch.rb index f1b7a45664..0b285fde92 100644 --- a/app/models/form/account_batch.rb +++ b/app/models/form/account_batch.rb @@ -69,6 +69,6 @@ class Form::AccountBatch records = accounts.includes(:user) records.each { |account| authorize(account.user, :reject?) } - .each { |account| SuspendAccountService.new.call(account, including_user: true, destroy: true, skip_distribution: true) } + .each { |account| SuspendAccountService.new.call(account, reserve_email: false, reserve_username: false) } end end diff --git a/app/models/form/status_batch.rb b/app/models/form/status_batch.rb index e09cc2594e..c4943a7eab 100644 --- a/app/models/form/status_batch.rb +++ b/app/models/form/status_batch.rb @@ -35,7 +35,7 @@ class Form::StatusBatch def delete_statuses Status.where(id: status_ids).reorder(nil).find_each do |status| status.discard - RemovalWorker.perform_async(status.id, redraft: false) + RemovalWorker.perform_async(status.id, immediate: true) Tombstone.find_or_create_by(uri: status.uri, account: status.account, by_moderator: true) log_action :destroy, status end diff --git a/app/models/report.rb b/app/models/report.rb index 1e707ff1c4..fb2e040ee8 100644 --- a/app/models/report.rb +++ b/app/models/report.rb @@ -59,6 +59,7 @@ class Report < ApplicationRecord end def resolve!(acting_account) + RemovalWorker.push_bulk(Status.with_discarded.discarded.where(id: status_ids).pluck(:id)) { |status_id| [status_id, { immediate: true }] } update!(action_taken: true, action_taken_by_account_id: acting_account.id) end diff --git a/app/models/status.rb b/app/models/status.rb index 9cfaddcecb..471bb03b47 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -214,6 +214,10 @@ class Status < ApplicationRecord !sensitive? && with_media? end + def reported? + @reported ||= Report.where(target_account: account).unresolved.where('? = ANY(status_ids)', id).exists? + end + def emojis return @emojis if defined?(@emojis) diff --git a/app/models/user.rb b/app/models/user.rb index 95f1d8fc5f..78b82a68f9 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -171,6 +171,10 @@ class User < ApplicationRecord confirmed? && approved? && !disabled? && !account.suspended? end + def unconfirmed_or_pending? + !(confirmed? && approved?) + end + def inactive_message !approved? ? :pending : super end diff --git a/app/services/block_domain_service.rb b/app/services/block_domain_service.rb index 0ec6be5036..ae461abf24 100644 --- a/app/services/block_domain_service.rb +++ b/app/services/block_domain_service.rb @@ -53,7 +53,7 @@ class BlockDomainService < BaseService def suspend_accounts! blocked_domain_accounts.without_suspended.reorder(nil).find_each do |account| - SuspendAccountService.new.call(account, suspended_at: @domain_block.created_at) + SuspendAccountService.new.call(account, reserve_username: true, suspended_at: @domain_block.created_at) end end diff --git a/app/services/remove_status_service.rb b/app/services/remove_status_service.rb index 685c1d4bff..f9352ed3d3 100644 --- a/app/services/remove_status_service.rb +++ b/app/services/remove_status_service.rb @@ -8,7 +8,8 @@ class RemoveStatusService < BaseService # @param [Status] status # @param [Hash] options # @option [Boolean] :redraft - # @options [Boolean] :original_removed + # @option [Boolean] :immediate + # @option [Boolean] :original_removed def call(status, **options) @payload = Oj.dump(event: :delete, payload: status.id.to_s) @status = status @@ -31,7 +32,7 @@ class RemoveStatusService < BaseService remove_from_spam_check remove_media - @status.destroy! + @status.destroy! if @options[:immediate] || !@status.reported? else raise Mastodon::RaceConditionError end @@ -150,7 +151,7 @@ class RemoveStatusService < BaseService end def remove_media - return if @options[:redraft] + return if @options[:redraft] || (!@options[:immediate] && @status.reported?) @status.media_attachments.destroy_all end diff --git a/app/services/suspend_account_service.rb b/app/services/suspend_account_service.rb index 85da7e9210..ecc893931d 100644 --- a/app/services/suspend_account_service.rb +++ b/app/services/suspend_account_service.rb @@ -15,7 +15,6 @@ class SuspendAccountService < BaseService favourites follow_requests list_accounts - media_attachments mute_relationships muted_by_relationships notifications @@ -32,14 +31,26 @@ class SuspendAccountService < BaseService targeted_reports ).freeze - # Suspend an account and remove as much of its data as possible + # Suspend or remove an account and remove as much of its data + # as possible. If it's a local account and it has not been confirmed + # or never been approved, then side effects are skipped and both + # the user and account records are removed fully. Otherwise, + # it is controlled by options. # @param [Account] # @param [Hash] options - # @option [Boolean] :including_user Remove the user record as well - # @option [Boolean] :destroy Remove the account record instead of suspending + # @option [Boolean] :reserve_email Keep user record. Only applicable for local accounts + # @option [Boolean] :reserve_username Keep account record + # @option [Boolean] :skip_side_effects Side effects are ActivityPub and streaming API payloads + # @option [Time] :suspended_at Only applicable when :reserve_username is true def call(account, **options) @account = account - @options = options + @options = { reserve_username: true, reserve_email: true }.merge(options) + + if @account.local? && @account.user_unconfirmed_or_pending? + @options[:reserve_email] = false + @options[:reserve_username] = false + @options[:skip_side_effects] = true + end reject_follows! purge_user! @@ -60,27 +71,39 @@ class SuspendAccountService < BaseService def purge_user! return if !@account.local? || @account.user.nil? - if @options[:including_user] - @options[:destroy] = true if !@account.user_confirmed? || @account.user_pending? - @account.user.destroy - else + if @options[:reserve_email] @account.user.disable! @account.user.invites.where(uses: 0).destroy_all + else + @account.user.destroy end end def purge_content! - distribute_delete_actor! if @account.local? && !@options[:skip_distribution] + distribute_delete_actor! if @account.local? && !@options[:skip_side_effects] @account.statuses.reorder(nil).find_in_batches do |statuses| - BatchedRemoveStatusService.new.call(statuses, skip_side_effects: @options[:destroy]) + statuses.reject! { |status| reported_status_ids.include?(status.id) } if @options[:reserve_username] + BatchedRemoveStatusService.new.call(statuses, skip_side_effects: @options[:skip_side_effects]) + end + + @account.media_attachments.reorder(nil).find_each do |media_attachment| + next if @options[:reserve_username] && reported_status_ids.include?(media_attachment.status_id) + + media_attachment.destroy + end + + @account.polls.reorder(nil).find_each do |poll| + next if @options[:reserve_username] && reported_status_ids.include?(poll.status_id) + + poll.destroy end associations_for_destruction.each do |association_name| destroy_all(@account.public_send(association_name)) end - @account.destroy if @options[:destroy] + @account.destroy unless @options[:reserve_username] end def purge_profile! @@ -88,11 +111,13 @@ class SuspendAccountService < BaseService # there is no point wasting time updating # its values first - return if @options[:destroy] + return unless @options[:reserve_username] @account.silenced_at = nil @account.suspended_at = @options[:suspended_at] || Time.now.utc @account.locked = false + @account.memorial = false + @account.discoverable = false @account.display_name = '' @account.note = '' @account.fields = [] @@ -100,6 +125,7 @@ class SuspendAccountService < BaseService @account.followers_count = 0 @account.following_count = 0 @account.moved_to_account = nil + @account.trust_level = :untrusted @account.avatar.destroy @account.header.destroy @account.save! @@ -135,11 +161,15 @@ class SuspendAccountService < BaseService Account.inboxes - delivery_inboxes end + def reported_status_ids + @reported_status_ids ||= Report.where(target_account: @account).unresolved.pluck(:status_ids).flatten.uniq + end + def associations_for_destruction - if @options[:destroy] - ASSOCIATIONS_ON_SUSPEND + ASSOCIATIONS_ON_DESTROY - else + if @options[:reserve_username] ASSOCIATIONS_ON_SUSPEND + else + ASSOCIATIONS_ON_SUSPEND + ASSOCIATIONS_ON_DESTROY end end end diff --git a/app/services/unallow_domain_service.rb b/app/services/unallow_domain_service.rb index d4387c1a19..bd1ad328da 100644 --- a/app/services/unallow_domain_service.rb +++ b/app/services/unallow_domain_service.rb @@ -3,7 +3,7 @@ class UnallowDomainService < BaseService def call(domain_allow) Account.where(domain: domain_allow.domain).find_each do |account| - SuspendAccountService.new.call(account, destroy: true) + SuspendAccountService.new.call(account, reserve_username: false) end domain_allow.destroy diff --git a/app/workers/admin/suspension_worker.rb b/app/workers/admin/suspension_worker.rb index ae8b24d8c3..83c815efd7 100644 --- a/app/workers/admin/suspension_worker.rb +++ b/app/workers/admin/suspension_worker.rb @@ -6,6 +6,6 @@ class Admin::SuspensionWorker sidekiq_options queue: 'pull' def perform(account_id, remove_user = false) - SuspendAccountService.new.call(Account.find(account_id), including_user: remove_user) + SuspendAccountService.new.call(Account.find(account_id), reserve_username: true, reserve_email: !remove_user) end end diff --git a/lib/mastodon/accounts_cli.rb b/lib/mastodon/accounts_cli.rb index b16bf2e389..a09a6ab040 100644 --- a/lib/mastodon/accounts_cli.rb +++ b/lib/mastodon/accounts_cli.rb @@ -185,7 +185,7 @@ module Mastodon end say("Deleting user with #{account.statuses_count} statuses, this might take a while...") - SuspendAccountService.new.call(account, including_user: true) + SuspendAccountService.new.call(account, reserve_email: false) say('OK', :green) end @@ -239,7 +239,7 @@ module Mastodon end if [404, 410].include?(code) - SuspendAccountService.new.call(account, destroy: true) unless options[:dry_run] + SuspendAccountService.new.call(account, reserve_username: false) unless options[:dry_run] 1 else # Touch account even during dry run to avoid getting the account into the window again diff --git a/lib/mastodon/domains_cli.rb b/lib/mastodon/domains_cli.rb index c612c2d72f..8e52de1c35 100644 --- a/lib/mastodon/domains_cli.rb +++ b/lib/mastodon/domains_cli.rb @@ -42,7 +42,7 @@ module Mastodon end processed, = parallelize_with_progress(scope) do |account| - SuspendAccountService.new.call(account, destroy: true) unless options[:dry_run] + SuspendAccountService.new.call(account, reserve_username: false, skip_side_effects: true) unless options[:dry_run] end DomainBlock.where(domain: domain).destroy_all unless options[:dry_run] diff --git a/spec/controllers/admin/reported_statuses_controller_spec.rb b/spec/controllers/admin/reported_statuses_controller_spec.rb index bd146b7956..2a1598123c 100644 --- a/spec/controllers/admin/reported_statuses_controller_spec.rb +++ b/spec/controllers/admin/reported_statuses_controller_spec.rb @@ -47,7 +47,7 @@ describe Admin::ReportedStatusesController do it 'removes a status' do allow(RemovalWorker).to receive(:perform_async) subject.call - expect(RemovalWorker).to have_received(:perform_async).with(status_ids.first, redraft: false) + expect(RemovalWorker).to have_received(:perform_async).with(status_ids.first, immediate: true) end end diff --git a/spec/controllers/admin/statuses_controller_spec.rb b/spec/controllers/admin/statuses_controller_spec.rb index 6b06343efb..d9690d83f2 100644 --- a/spec/controllers/admin/statuses_controller_spec.rb +++ b/spec/controllers/admin/statuses_controller_spec.rb @@ -65,7 +65,7 @@ describe Admin::StatusesController do it 'removes a status' do allow(RemovalWorker).to receive(:perform_async) subject.call - expect(RemovalWorker).to have_received(:perform_async).with(status_ids.first, redraft: false) + expect(RemovalWorker).to have_received(:perform_async).with(status_ids.first, immediate: true) end end diff --git a/spec/models/form/status_batch_spec.rb b/spec/models/form/status_batch_spec.rb index f9c58c90f8..68d84a7379 100644 --- a/spec/models/form/status_batch_spec.rb +++ b/spec/models/form/status_batch_spec.rb @@ -41,12 +41,12 @@ describe Form::StatusBatch do it 'call RemovalWorker' do form.save - expect(RemovalWorker).to have_received(:perform_async).with(status.id, redraft: false) + expect(RemovalWorker).to have_received(:perform_async).with(status.id, immediate: true) end it 'do not call RemovalWorker' do form.save - expect(RemovalWorker).not_to have_received(:perform_async).with(another_status.id, redraft: false) + expect(RemovalWorker).not_to have_received(:perform_async).with(another_status.id, immediate: true) end end end From 3a3b40e0c36902b66526303af8d5fdecb8bab5c2 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 12 Sep 2019 01:51:01 +0200 Subject: [PATCH 30/43] Fix nil error in warning e-mail template (#11812) --- app/views/user_mailer/warning.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/user_mailer/warning.html.haml b/app/views/user_mailer/warning.html.haml index 89dc2a75db..5a2911ecba 100644 --- a/app/views/user_mailer/warning.html.haml +++ b/app/views/user_mailer/warning.html.haml @@ -58,7 +58,7 @@ %table.content-section{ cellspacing: 0, cellpadding: 0 } %tbody %tr - %td.content-cell{ class: @statuses.empty? ? '' : 'content-start' } + %td.content-cell{ class: @statuses.nil? || @statuses.empty? ? '' : 'content-start' } %table.column{ cellspacing: 0, cellpadding: 0 } %tbody %tr From 16cdaa1110878f84a542f0f9a6b323ba800f4e81 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 12 Sep 2019 01:51:12 +0200 Subject: [PATCH 31/43] Fix uncaught errors in media proxy controller (#11811) --- app/controllers/media_proxy_controller.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/controllers/media_proxy_controller.rb b/app/controllers/media_proxy_controller.rb index 558cd6e301..47544f21c9 100644 --- a/app/controllers/media_proxy_controller.rb +++ b/app/controllers/media_proxy_controller.rb @@ -8,6 +8,8 @@ class MediaProxyController < ApplicationController before_action :authenticate_user!, if: :whitelist_mode? rescue_from ActiveRecord::RecordInvalid, with: :not_found + rescue_from Mastodon::UnexpectedResponseError, with: :not_found + rescue_from HTTP::TimeoutError, HTTP::ConnectionError, OpenSSL::SSL::SSLError, with: :internal_server_error def show RedisLock.acquire(lock_options) do |lock| From 9361981388ed372b0502aec7d74fee9cacb4cf86 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 12 Sep 2019 04:58:33 +0200 Subject: [PATCH 32/43] Add missing locale file for ga and add rake task to check for it (#11813) * Add missing locale file for ga and add rake task to check for it * Update lib/tasks/repo.rake Co-Authored-By: Yamagishi Kazutoshi * Fix check-i18n build --- .circleci/config.yml | 2 ++ app/javascript/mastodon/locales/ga.json | 1 + lib/tasks/repo.rake | 15 +++++++++++++++ 3 files changed, 18 insertions(+) create mode 100644 app/javascript/mastodon/locales/ga.json diff --git a/.circleci/config.yml b/.circleci/config.yml index 8ab08ebae5..ff8eb48598 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -173,9 +173,11 @@ jobs: <<: *defaults steps: - *attach_workspace + - *install_system_dependencies - run: bundle exec i18n-tasks check-normalized - run: bundle exec i18n-tasks unused -l en - run: bundle exec i18n-tasks check-consistent-interpolations + - run: bundle exec rake repo:check_locales_files workflows: version: 2 diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/app/javascript/mastodon/locales/ga.json @@ -0,0 +1 @@ +{} diff --git a/lib/tasks/repo.rake b/lib/tasks/repo.rake index 8ceec30854..d1de17b7c0 100644 --- a/lib/tasks/repo.rake +++ b/lib/tasks/repo.rake @@ -76,4 +76,19 @@ namespace :repo do tmp.unlink end end + + task check_locales_files: :environment do + pastel = Pastel.new + + missing_yaml_files = I18n.available_locales.reject { |locale| File.exist?(Rails.root.join('config', 'locales', "#{locale}.yml")) } + missing_json_files = I18n.available_locales.reject { |locale| File.exist?(Rails.root.join('app', 'javascript', 'mastodon', 'locales', "#{locale}.json")) } + + if missing_json_files.empty? && missing_yaml_files.empty? + puts pastel.green('OK') + else + puts pastel.red("Missing YAML files: #{pastel.bold(missing_yaml_files.join(', '))}") unless missing_yaml_files.empty? + puts pastel.red("Missing JSON files: #{pastel.bold(missing_json_files.join(', '))}") unless missing_json_files.empty? + exit(1) + end + end end From 50755a47b4f0999f8c49501ff4fa4c2ef676fa0e Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 12 Sep 2019 20:14:59 +0200 Subject: [PATCH 33/43] Fix scroll position resetting when opening media modals in web UI (#11815) --- app/javascript/mastodon/containers/mastodon.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/javascript/mastodon/containers/mastodon.js b/app/javascript/mastodon/containers/mastodon.js index 542b682821..3ac58cf7c5 100644 --- a/app/javascript/mastodon/containers/mastodon.js +++ b/app/javascript/mastodon/containers/mastodon.js @@ -12,6 +12,8 @@ import { hydrateStore } from '../actions/store'; import { connectUserStream } from '../actions/streaming'; import { IntlProvider, addLocaleData } from 'react-intl'; import { getLocale } from '../locales'; +import { previewState as previewMediaState } from 'mastodon/features/ui/components/media_modal'; +import { previewState as previewVideoState } from 'mastodon/features/ui/components/video_modal'; import initialState from '../initial_state'; import ErrorBoundary from '../components/error_boundary'; @@ -35,6 +37,10 @@ class MastodonMount extends React.PureComponent { showIntroduction: PropTypes.bool, }; + shouldUpdateScroll (_, { location }) { + return location.state !== previewMediaState && location.state !== previewVideoState; + } + render () { const { showIntroduction } = this.props; @@ -44,7 +50,7 @@ class MastodonMount extends React.PureComponent { return ( - + From bc869501f5cf98a99b18f6d1bcab3b51db04008d Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 13 Sep 2019 16:00:19 +0200 Subject: [PATCH 34/43] Fix name of Portuguese language not including Portugal (#11820) Fix #11602 --- app/helpers/settings_helper.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/helpers/settings_helper.rb b/app/helpers/settings_helper.rb index 92bc222ea9..0cfde7edc6 100644 --- a/app/helpers/settings_helper.rb +++ b/app/helpers/settings_helper.rb @@ -42,8 +42,8 @@ module SettingsHelper no: 'Norsk', oc: 'Occitan', pl: 'Polski', - pt: 'Português', - 'pt-BR': 'Português do Brasil', + pt: 'Português (Portugal)', + 'pt-BR': 'Português (Brasil)', ro: 'Română', ru: 'Русский', sk: 'Slovenčina', From b6381bdc7dcfe5713b99e2aae0491115350c7724 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 13 Sep 2019 16:00:34 +0200 Subject: [PATCH 35/43] Change max length of media descriptions from 420 to 1500 characters (#11819) Fix #11658 --- .../mastodon/features/ui/components/focal_point_modal.js | 2 +- app/models/media_attachment.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/features/ui/components/focal_point_modal.js b/app/javascript/mastodon/features/ui/components/focal_point_modal.js index 735e445e88..d13138a76b 100644 --- a/app/javascript/mastodon/features/ui/components/focal_point_modal.js +++ b/app/javascript/mastodon/features/ui/components/focal_point_modal.js @@ -223,7 +223,7 @@ class FocalPointModal extends ImmutablePureComponent {
- +