Merge pull request #1804 from ClearlyClaire/glitch-soc/merge-upstream

Merge upstream changes
This commit is contained in:
Claire 2022-07-17 23:10:31 +02:00 committed by GitHub
commit 0bf164dc87
467 changed files with 9036 additions and 2893 deletions

View file

@ -283,9 +283,17 @@ MAX_POLL_OPTION_CHARS=100
# If undefined or smaller than MAX_EMOJI_SIZE, the value
# of MAX_EMOJI_SIZE will be used for MAX_REMOTE_EMOJI_SIZE
# Units are in bytes
MAX_EMOJI_SIZE=51200
MAX_REMOTE_EMOJI_SIZE=204800
# MAX_EMOJI_SIZE=262144
# MAX_REMOTE_EMOJI_SIZE=262144
# Optional hCaptcha support
# HCAPTCHA_SECRET_KEY=
# HCAPTCHA_SITE_KEY=
# IP and session retention
# -----------------------
# Make sure to modify the scheduling of ip_cleanup_scheduler in config/sidekiq.yml
# to be less than daily if you lower IP_RETENTION_PERIOD below two days (172800).
# -----------------------
IP_RETENTION_PERIOD=31556952
SESSION_RETENTION_PERIOD=31556952

View file

@ -67,7 +67,7 @@ Lint/UselessAccessModifier:
- class_methods
Metrics/AbcSize:
Max: 100
Max: 115
Exclude:
- 'lib/mastodon/*_cli.rb'
@ -84,7 +84,7 @@ Metrics/BlockNesting:
Metrics/ClassLength:
CountComments: false
Max: 400
Max: 500
Exclude:
- 'lib/mastodon/*_cli.rb'

View file

@ -10,7 +10,7 @@ gem 'puma', '~> 5.6'
gem 'rails', '~> 6.1.6'
gem 'sprockets', '~> 3.7.2'
gem 'thor', '~> 1.2'
gem 'rack', '~> 2.2.3'
gem 'rack', '~> 2.2.4'
gem 'hamlit-rails', '~> 0.2'
gem 'pg', '~> 1.4'
@ -40,7 +40,7 @@ end
gem 'net-ldap', '~> 0.17'
gem 'omniauth-cas', '~> 2.0'
gem 'omniauth-saml', '~> 1.10'
gem 'gitlab-omniauth-openid-connect', '~>0.9.1', require: 'omniauth_openid_connect'
gem 'gitlab-omniauth-openid-connect', '~>0.10.0', require: 'omniauth_openid_connect'
gem 'omniauth', '~> 1.9'
gem 'omniauth-rails_csrf_protection', '~> 0.1'
@ -78,7 +78,7 @@ gem 'rqrcode', '~> 2.1'
gem 'ruby-progressbar', '~> 1.11'
gem 'sanitize', '~> 6.0'
gem 'scenic', '~> 1.6'
gem 'sidekiq', '~> 6.4'
gem 'sidekiq', '~> 6.5'
gem 'sidekiq-scheduler', '~> 4.0'
gem 'sidekiq-unique-jobs', '~> 7.1'
gem 'sidekiq-bulk', '~> 0.2.0'

View file

@ -270,9 +270,9 @@ GEM
fuubar (2.5.1)
rspec-core (~> 3.0)
ruby-progressbar (~> 1.4)
gitlab-omniauth-openid-connect (0.9.1)
gitlab-omniauth-openid-connect (0.10.0)
addressable (~> 2.7)
omniauth (~> 1.9)
omniauth (>= 1.9, < 3)
openid_connect (~> 1.2)
globalid (1.0.0)
activesupport (>= 5.0)
@ -415,7 +415,7 @@ GEM
concurrent-ruby (~> 1.0, >= 1.0.2)
sidekiq (>= 3.5)
statsd-ruby (~> 1.4, >= 1.4.0)
oj (3.13.14)
oj (3.13.16)
omniauth (1.9.1)
hashie (>= 3.4.6)
rack (>= 1.6.2, < 3)
@ -477,7 +477,7 @@ GEM
activesupport (>= 3.0.0)
raabro (1.4.0)
racc (1.6.0)
rack (2.2.3.1)
rack (2.2.4)
rack-attack (6.6.1)
rack (>= 1.0, < 3)
rack-cors (1.1.1)
@ -604,7 +604,7 @@ GEM
railties (>= 4.0.0)
securecompare (1.0.0)
semantic_range (3.0.0)
sidekiq (6.4.2)
sidekiq (6.5.1)
connection_pool (>= 2.2.2)
rack (~> 2.0)
redis (>= 4.2.0)
@ -686,7 +686,7 @@ GEM
validate_email (0.1.6)
activemodel (>= 3.0)
mail (>= 2.2.5)
validate_url (1.0.13)
validate_url (1.0.15)
activemodel (>= 3.0.0)
public_suffix
warden (1.2.9)
@ -768,7 +768,7 @@ DEPENDENCIES
fog-core (<= 2.1.0)
fog-openstack (~> 0.3)
fuubar (~> 2.5)
gitlab-omniauth-openid-connect (~> 0.9.1)
gitlab-omniauth-openid-connect (~> 0.10.0)
hamlit-rails (~> 0.2)
hcaptcha (~> 7.1)
hiredis (~> 0.6)
@ -811,7 +811,7 @@ DEPENDENCIES
pry-rails (~> 0.3)
puma (~> 5.6)
pundit (~> 2.2)
rack (~> 2.2.3)
rack (~> 2.2.4)
rack-attack (~> 6.6)
rack-cors (~> 1.1)
rails (~> 6.1.6)
@ -832,7 +832,7 @@ DEPENDENCIES
ruby-progressbar (~> 1.11)
sanitize (~> 6.0)
scenic (~> 1.6)
sidekiq (~> 6.4)
sidekiq (~> 6.5)
sidekiq-bulk (~> 0.2.0)
sidekiq-scheduler (~> 4.0)
sidekiq-unique-jobs (~> 7.1)

View file

@ -5,11 +5,15 @@ module Admin
before_action :set_account
def new
authorize @account, :show?
@account_action = Admin::AccountAction.new(type: params[:type], report_id: params[:report_id], send_email_notification: true, include_statuses: true)
@warning_presets = AccountWarningPreset.all
end
def create
authorize @account, :show?
account_action = Admin::AccountAction.new(resource_params)
account_action.target_account = @account
account_action.current_account = current_account

View file

@ -14,6 +14,8 @@ module Admin
end
def batch
authorize :account, :index?
@form = Form::AccountBatch.new(form_account_batch_params.merge(current_account: current_account, action: action_from_button))
@form.save
rescue ActionController::ParameterMissing

View file

@ -4,7 +4,10 @@ module Admin
class ActionLogsController < BaseController
before_action :set_action_logs
def index; end
def index
authorize :audit_log, :index?
@auditable_accounts = Account.where(id: Admin::ActionLog.reorder(nil).select('distinct account_id')).select(:id, :username)
end
private

View file

@ -7,9 +7,9 @@ module Admin
layout 'admin'
before_action :require_staff!
before_action :set_pack
before_action :set_body_classes
after_action :verify_authorized
private

View file

@ -29,6 +29,8 @@ module Admin
end
def batch
authorize :custom_emoji, :index?
@form = Form::CustomEmojiBatch.new(form_custom_emoji_batch_params.merge(current_account: current_account, action: action_from_button))
@form.save
rescue ActionController::ParameterMissing

View file

@ -5,7 +5,9 @@ module Admin
include Redisable
def index
@system_checks = Admin::SystemCheck.perform
authorize :dashboard, :index?
@system_checks = Admin::SystemCheck.perform(current_user)
@time_period = (29.days.ago.to_date...Time.now.utc.to_date)
@pending_users_count = User.pending.count
@pending_reports_count = Report.unresolved.count

View file

@ -5,6 +5,7 @@ module Admin
before_action :set_domain_block, only: [:show, :destroy, :edit, :update]
def batch
authorize :domain_block, :create?
@form = Form::DomainBlockBatch.new(form_domain_block_batch_params.merge(current_account: current_account, action: action_from_button))
@form.save
rescue ActionController::ParameterMissing

View file

@ -12,6 +12,8 @@ module Admin
end
def batch
authorize :email_domain_block, :index?
@form = Form::EmailDomainBlockBatch.new(form_email_domain_block_batch_params.merge(current_account: current_account, action: action_from_button))
@form.save
rescue ActionController::ParameterMissing

View file

@ -12,6 +12,8 @@ module Admin
end
def update
authorize :follow_recommendation, :show?
@form = Form::AccountBatch.new(form_account_batch_params.merge(current_account: current_account, action: action_from_button))
@form.save
rescue ActionController::ParameterMissing

View file

@ -29,6 +29,8 @@ module Admin
end
def batch
authorize :ip_block, :index?
@form = Form::IpBlockBatch.new(form_ip_block_batch_params.merge(current_account: current_account, action: action_from_button))
@form.save
rescue ActionController::ParameterMissing

View file

@ -7,7 +7,7 @@ module Admin
PER_PAGE = 40
def index
authorize :account, :index?
authorize @account, :show?
@accounts = RelationshipFilter.new(@account, filter_params).results.includes(:account_stat, user: [:ips, :invite_request]).page(params[:page]).per(PER_PAGE)
@form = Form::AccountBatch.new

View file

@ -2,20 +2,63 @@
module Admin
class RolesController < BaseController
before_action :set_user
before_action :set_role, except: [:index, :new, :create]
def promote
authorize @user, :promote?
@user.promote!
log_action :promote, @user
redirect_to admin_account_path(@user.account_id)
def index
authorize :user_role, :index?
@roles = UserRole.order(position: :desc).page(params[:page])
end
def demote
authorize @user, :demote?
@user.demote!
log_action :demote, @user
redirect_to admin_account_path(@user.account_id)
def new
authorize :user_role, :create?
@role = UserRole.new
end
def create
authorize :user_role, :create?
@role = UserRole.new(resource_params)
@role.current_account = current_account
if @role.save
redirect_to admin_roles_path
else
render :new
end
end
def edit
authorize @role, :update?
end
def update
authorize @role, :update?
@role.current_account = current_account
if @role.update(resource_params)
redirect_to admin_roles_path
else
render :edit
end
end
def destroy
authorize @role, :destroy?
@role.destroy!
redirect_to admin_roles_path
end
private
def set_role
@role = UserRole.find(params[:id])
end
def resource_params
params.require(:user_role).permit(:name, :color, :highlighted, :position, permissions_as_keys: [])
end
end
end

View file

@ -14,6 +14,8 @@ module Admin
end
def batch
authorize :status, :index?
@status_batch_action = Admin::StatusBatchAction.new(admin_status_batch_action_params.merge(current_account: current_account, report_id: params[:report_id], type: action_from_button))
@status_batch_action.save!
rescue ActionController::ParameterMissing

View file

@ -1,20 +0,0 @@
# frozen_string_literal: true
module Admin
class SubscriptionsController < BaseController
def index
authorize :subscription, :index?
@subscriptions = ordered_subscriptions.page(requested_page)
end
private
def ordered_subscriptions
Subscription.order(id: :desc).includes(:account)
end
def requested_page
params[:page].to_i
end
end
end

View file

@ -16,6 +16,8 @@ module Admin
if @tag.update(tag_params.merge(reviewed_at: Time.now.utc))
redirect_to admin_tag_path(@tag.id), notice: I18n.t('admin.tags.updated_msg')
else
@time_period = (6.days.ago.to_date...Time.now.utc.to_date)
render :show
end
end
@ -27,7 +29,7 @@ module Admin
end
def tag_params
params.require(:tag).permit(:name, :trendable, :usable, :listable)
params.require(:tag).permit(:name, :display_name, :trendable, :usable, :listable)
end
end
end

View file

@ -2,13 +2,15 @@
class Admin::Trends::Links::PreviewCardProvidersController < Admin::BaseController
def index
authorize :preview_card_provider, :index?
authorize :preview_card_provider, :review?
@preview_card_providers = filtered_preview_card_providers.page(params[:page])
@form = Trends::PreviewCardProviderBatch.new
end
def batch
authorize :preview_card_provider, :review?
@form = Trends::PreviewCardProviderBatch.new(trends_preview_card_provider_batch_params.merge(current_account: current_account, action: action_from_button))
@form.save
rescue ActionController::ParameterMissing

View file

@ -2,13 +2,15 @@
class Admin::Trends::LinksController < Admin::BaseController
def index
authorize :preview_card, :index?
authorize :preview_card, :review?
@preview_cards = filtered_preview_cards.page(params[:page])
@form = Trends::PreviewCardBatch.new
end
def batch
authorize :preview_card, :review?
@form = Trends::PreviewCardBatch.new(trends_preview_card_batch_params.merge(current_account: current_account, action: action_from_button))
@form.save
rescue ActionController::ParameterMissing

View file

@ -2,13 +2,15 @@
class Admin::Trends::StatusesController < Admin::BaseController
def index
authorize :status, :index?
authorize :status, :review?
@statuses = filtered_statuses.page(params[:page])
@form = Trends::StatusBatch.new
end
def batch
authorize :status, :review?
@form = Trends::StatusBatch.new(trends_status_batch_params.merge(current_account: current_account, action: action_from_button))
@form.save
rescue ActionController::ParameterMissing

View file

@ -2,13 +2,15 @@
class Admin::Trends::TagsController < Admin::BaseController
def index
authorize :tag, :index?
authorize :tag, :review?
@tags = filtered_tags.page(params[:page])
@form = Trends::TagBatch.new
end
def batch
authorize :tag, :review?
@form = Trends::TagBatch.new(trends_tag_batch_params.merge(current_account: current_account, action: action_from_button))
@form.save
rescue ActionController::ParameterMissing

View file

@ -0,0 +1,33 @@
# frozen_string_literal: true
module Admin
class Users::RolesController < BaseController
before_action :set_user
def show
authorize @user, :change_role?
end
def update
authorize @user, :change_role?
@user.current_account = current_account
if @user.update(resource_params)
redirect_to admin_account_path(@user.account_id), notice: I18n.t('admin.accounts.change_role.changed_msg')
else
render :show
end
end
private
def set_user
@user = User.find(params[:user_id])
end
def resource_params
params.require(:user).permit(:role_id)
end
end
end

View file

@ -1,7 +1,7 @@
# frozen_string_literal: true
module Admin
class TwoFactorAuthenticationsController < BaseController
class Users::TwoFactorAuthenticationsController < BaseController
before_action :set_target_user
def destroy

View file

@ -1,11 +1,16 @@
# frozen_string_literal: true
class Api::V1::Admin::AccountActionsController < Api::BaseController
include Authorization
before_action -> { authorize_if_got_token! :'admin:write', :'admin:write:accounts' }
before_action :require_staff!
before_action :set_account
after_action :verify_authorized
def create
authorize @account, :show?
account_action = Admin::AccountAction.new(resource_params)
account_action.target_account = @account
account_action.current_account = current_account

View file

@ -8,11 +8,11 @@ class Api::V1::Admin::AccountsController < Api::BaseController
before_action -> { authorize_if_got_token! :'admin:read', :'admin:read:accounts' }, only: [:index, :show]
before_action -> { authorize_if_got_token! :'admin:write', :'admin:write:accounts' }, except: [:index, :show]
before_action :require_staff!
before_action :set_accounts, only: :index
before_action :set_account, except: :index
before_action :require_local_account!, only: [:enable, :approve, :reject]
after_action :verify_authorized
after_action :insert_pagination_headers, only: :index
FILTER_PARAMS = %i(
@ -119,7 +119,9 @@ class Api::V1::Admin::AccountsController < Api::BaseController
translated_params[:status] = status.to_s if params[status].present?
end
translated_params[:permissions] = 'staff' if params[:staff].present?
if params[:staff].present?
translated_params[:role_ids] = UserRole.that_can(:manage_reports).map(&:id)
end
translated_params
end

View file

@ -1,11 +1,15 @@
# frozen_string_literal: true
class Api::V1::Admin::DimensionsController < Api::BaseController
include Authorization
before_action -> { authorize_if_got_token! :'admin:read' }
before_action :require_staff!
before_action :set_dimensions
after_action :verify_authorized
def create
authorize :dashboard, :index?
render json: @dimensions, each_serializer: REST::Admin::DimensionSerializer
end

View file

@ -8,10 +8,10 @@ class Api::V1::Admin::DomainAllowsController < Api::BaseController
before_action -> { authorize_if_got_token! :'admin:read', :'admin:read:domain_allows' }, only: [:index, :show]
before_action -> { authorize_if_got_token! :'admin:write', :'admin:write:domain_allows' }, except: [:index, :show]
before_action :require_staff!
before_action :set_domain_allows, only: :index
before_action :set_domain_allow, only: [:show, :destroy]
after_action :verify_authorized
after_action :insert_pagination_headers, only: :index
PAGINATION_PARAMS = %i(limit).freeze

View file

@ -8,10 +8,10 @@ class Api::V1::Admin::DomainBlocksController < Api::BaseController
before_action -> { authorize_if_got_token! :'admin:read', :'admin:read:domain_blocks' }, only: [:index, :show]
before_action -> { authorize_if_got_token! :'admin:write', :'admin:write:domain_blocks' }, except: [:index, :show]
before_action :require_staff!
before_action :set_domain_blocks, only: :index
before_action :set_domain_block, only: [:show, :update, :destroy]
after_action :verify_authorized
after_action :insert_pagination_headers, only: :index
PAGINATION_PARAMS = %i(limit).freeze

View file

@ -1,11 +1,15 @@
# frozen_string_literal: true
class Api::V1::Admin::MeasuresController < Api::BaseController
include Authorization
before_action -> { authorize_if_got_token! :'admin:read' }
before_action :require_staff!
before_action :set_measures
after_action :verify_authorized
def create
authorize :dashboard, :index?
render json: @measures, each_serializer: REST::Admin::MeasureSerializer
end

View file

@ -8,10 +8,10 @@ class Api::V1::Admin::ReportsController < Api::BaseController
before_action -> { authorize_if_got_token! :'admin:read', :'admin:read:reports' }, only: [:index, :show]
before_action -> { authorize_if_got_token! :'admin:write', :'admin:write:reports' }, except: [:index, :show]
before_action :require_staff!
before_action :set_reports, only: :index
before_action :set_report, except: :index
after_action :verify_authorized
after_action :insert_pagination_headers, only: :index
FILTER_PARAMS = %i(

View file

@ -1,11 +1,15 @@
# frozen_string_literal: true
class Api::V1::Admin::RetentionController < Api::BaseController
include Authorization
before_action -> { authorize_if_got_token! :'admin:read' }
before_action :require_staff!
before_action :set_cohorts
after_action :verify_authorized
def create
authorize :dashboard, :index?
render json: @cohorts, each_serializer: REST::Admin::CohortSerializer
end

View file

@ -1,17 +1,19 @@
# frozen_string_literal: true
class Api::V1::Admin::Trends::LinksController < Api::BaseController
class Api::V1::Admin::Trends::LinksController < Api::V1::Trends::LinksController
before_action -> { authorize_if_got_token! :'admin:read' }
before_action :require_staff!
before_action :set_links
def index
render json: @links, each_serializer: REST::Trends::LinkSerializer
end
private
def set_links
@links = Trends.links.query.limit(limit_param(10))
def enabled?
super || current_user&.can?(:manage_taxonomies)
end
def links_from_trends
if current_user&.can?(:manage_taxonomies)
Trends.links.query
else
super
end
end
end

View file

@ -1,17 +1,19 @@
# frozen_string_literal: true
class Api::V1::Admin::Trends::StatusesController < Api::BaseController
class Api::V1::Admin::Trends::StatusesController < Api::V1::Trends::StatusesController
before_action -> { authorize_if_got_token! :'admin:read' }
before_action :require_staff!
before_action :set_statuses
def index
render json: @statuses, each_serializer: REST::StatusSerializer
end
private
def set_statuses
@statuses = cache_collection(Trends.statuses.query.limit(limit_param(DEFAULT_STATUSES_LIMIT)), Status)
def enabled?
super || current_user&.can?(:manage_taxonomies)
end
def statuses_from_trends
if current_user&.can?(:manage_taxonomies)
Trends.statuses.query
else
super
end
end
end

View file

@ -1,17 +1,19 @@
# frozen_string_literal: true
class Api::V1::Admin::Trends::TagsController < Api::BaseController
class Api::V1::Admin::Trends::TagsController < Api::V1::Trends::TagsController
before_action -> { authorize_if_got_token! :'admin:read' }
before_action :require_staff!
before_action :set_tags
def index
render json: @tags, each_serializer: REST::Admin::TagSerializer
end
private
def set_tags
@tags = Trends.tags.query.limit(limit_param(10))
def enabled?
super || current_user&.can?(:manage_taxonomies)
end
def tags_from_trends
if current_user&.can?(:manage_taxonomies)
Trends.tags.query
else
super
end
end
end

View file

@ -6,7 +6,7 @@ class Api::V1::FeaturedTags::SuggestionsController < Api::BaseController
before_action :set_recently_used_tags, only: :index
def index
render json: @recently_used_tags, each_serializer: REST::TagSerializer
render json: @recently_used_tags, each_serializer: REST::TagSerializer, relationships: TagRelationshipsPresenter.new(@recently_used_tags, current_user&.account_id)
end
private

View file

@ -13,9 +13,7 @@ class Api::V1::FeaturedTagsController < Api::BaseController
end
def create
@featured_tag = current_account.featured_tags.new(featured_tag_params)
@featured_tag.reset_data
@featured_tag.save!
@featured_tag = current_account.featured_tags.create!(featured_tag_params)
render json: @featured_tag, serializer: REST::FeaturedTagSerializer
end

View file

@ -0,0 +1,52 @@
# frozen_string_literal: true
class Api::V1::FollowedTagsController < Api::BaseController
TAGS_LIMIT = 100
before_action -> { doorkeeper_authorize! :follow, :read, :'read:follows' }, except: :show
before_action :require_user!
before_action :set_results
after_action :insert_pagination_headers, only: :show
def index
render json: @results.map(&:tag), each_serializer: REST::TagSerializer, relationships: TagRelationshipsPresenter.new(@results.map(&:tag), current_user&.account_id)
end
private
def set_results
@results = TagFollow.where(account: current_account).joins(:tag).eager_load(:tag).to_a_paginated_by_id(
limit_param(TAGS_LIMIT),
params_slice(:max_id, :since_id, :min_id)
)
end
def insert_pagination_headers
set_pagination_headers(next_path, prev_path)
end
def next_path
api_v1_followed_tags_url pagination_params(max_id: pagination_max_id) if records_continue?
end
def prev_path
api_v1_followed_tags_url pagination_params(since_id: pagination_since_id) unless @results.empty?
end
def pagination_max_id
@results.last.id
end
def pagination_since_id
@results.first.id
end
def records_continue?
@results.size == limit_param(TAG_LIMIT)
end
def pagination_params(core_params)
params.slice(:limit).permit(:limit).merge(core_params)
end
end

View file

@ -0,0 +1,29 @@
# frozen_string_literal: true
class Api::V1::TagsController < Api::BaseController
before_action -> { doorkeeper_authorize! :follow, :write, :'write:follows' }, except: :show
before_action :require_user!, except: :show
before_action :set_or_create_tag
override_rate_limit_headers :follow, family: :follows
def show
render json: @tag, serializer: REST::TagSerializer
end
def follow
TagFollow.create!(tag: @tag, account: current_account, rate_limit: true)
render json: @tag, serializer: REST::TagSerializer
end
def unfollow
TagFollow.find_by(account: current_account, tag: @tag)&.destroy!
render json: @tag, serializer: REST::TagSerializer
end
private
def set_or_create_tag
@tag = Tag.find_normalized(params[:id]) || Tag.new(name: Tag.normalize(params[:id]), display_name: params[:id])
end
end

View file

@ -13,10 +13,14 @@ class Api::V1::Trends::LinksController < Api::BaseController
private
def enabled?
Setting.trends
end
def set_links
@links = begin
if Setting.trends
links_from_trends
if enabled?
links_from_trends.offset(offset_param).limit(limit_param(DEFAULT_LINKS_LIMIT))
else
[]
end
@ -24,7 +28,7 @@ class Api::V1::Trends::LinksController < Api::BaseController
end
def links_from_trends
Trends.links.query.allowed.in_locale(content_locale).offset(offset_param).limit(limit_param(DEFAULT_LINKS_LIMIT))
Trends.links.query.allowed.in_locale(content_locale)
end
def insert_pagination_headers

View file

@ -11,10 +11,14 @@ class Api::V1::Trends::StatusesController < Api::BaseController
private
def enabled?
Setting.trends
end
def set_statuses
@statuses = begin
if Setting.trends
cache_collection(statuses_from_trends, Status)
if enabled?
cache_collection(statuses_from_trends.offset(offset_param).limit(limit_param(DEFAULT_STATUSES_LIMIT)), Status)
else
[]
end
@ -24,7 +28,7 @@ class Api::V1::Trends::StatusesController < Api::BaseController
def statuses_from_trends
scope = Trends.statuses.query.allowed.in_locale(content_locale)
scope = scope.filtered_for(current_account) if user_signed_in?
scope.offset(offset_param).limit(limit_param(DEFAULT_STATUSES_LIMIT))
scope
end
def insert_pagination_headers

View file

@ -8,21 +8,29 @@ class Api::V1::Trends::TagsController < Api::BaseController
DEFAULT_TAGS_LIMIT = 10
def index
render json: @tags, each_serializer: REST::TagSerializer
render json: @tags, each_serializer: REST::TagSerializer, relationships: TagRelationshipsPresenter.new(@tags, current_user&.account_id)
end
private
def enabled?
Setting.trends
end
def set_tags
@tags = begin
if Setting.trends
Trends.tags.query.allowed.offset(offset_param).limit(limit_param(DEFAULT_TAGS_LIMIT))
if enabled?
tags_from_trends.offset(offset_param).limit(limit_param(DEFAULT_TAGS_LIMIT))
else
[]
end
end
end
def tags_from_trends
Trends.tags.query.allowed
end
def insert_pagination_headers
set_pagination_headers(next_path, prev_path)
end

View file

@ -11,6 +11,7 @@ class Api::V2::Admin::AccountsController < Api::V1::Admin::AccountsController
email
ip
invited_by
role_ids
).freeze
PAGINATION_PARAMS = (%i(limit) + FILTER_PARAMS).freeze
@ -18,7 +19,17 @@ class Api::V2::Admin::AccountsController < Api::V1::Admin::AccountsController
private
def filtered_accounts
AccountFilter.new(filter_params).results
AccountFilter.new(translated_filter_params).results
end
def translated_filter_params
translated_params = filter_params.slice(*AccountFilter::KEYS)
if params[:permissions] == 'staff'
translated_params[:role_ids] = UserRole.that_can(:manage_reports).map(&:id)
end
translated_params
end
def filter_params

View file

@ -58,14 +58,6 @@ class ApplicationController < ActionController::Base
store_location_for(:user, request.url) unless [:json, :rss].include?(request.format&.to_sym)
end
def require_admin!
forbidden unless current_user&.admin?
end
def require_staff!
forbidden unless current_user&.staff?
end
def require_functional!
redirect_to edit_user_registration_path unless current_user.functional?
end

View file

@ -13,6 +13,6 @@ class CustomCssController < ApplicationController
def show
expires_in 3.minutes, public: true
request.session_options[:skip] = true
render plain: Setting.custom_css || '', content_type: 'text/css'
render content_type: 'text/css'
end
end

View file

@ -11,7 +11,6 @@ class Settings::FeaturedTagsController < Settings::BaseController
def create
@featured_tag = current_account.featured_tags.new(featured_tag_params)
@featured_tag.reset_data
if @featured_tag.save
redirect_to settings_featured_tags_path

View file

@ -61,21 +61,13 @@ module AccountsHelper
end
end
def account_badge(account, all: false)
def account_badge(account)
if account.bot?
content_tag(:div, content_tag(:div, t('accounts.roles.bot'), class: 'account-role bot'), class: 'roles')
elsif account.group?
content_tag(:div, content_tag(:div, t('accounts.roles.group'), class: 'account-role group'), class: 'roles')
elsif (Setting.show_staff_badge && account.user_staff?) || all
content_tag(:div, class: 'roles') do
if all && !account.user_staff?
content_tag(:div, t('admin.accounts.roles.user'), class: 'account-role')
elsif account.user_admin?
content_tag(:div, t('accounts.roles.admin'), class: 'account-role admin')
elsif account.user_moderator?
content_tag(:div, t('accounts.roles.moderator'), class: 'account-role moderator')
end
end
elsif account.user_role&.highlighted?
content_tag(:div, content_tag(:div, account.user_role.name, class: "account-role user-role-#{account.user_role.id}"), class: 'roles')
end
end

View file

@ -5,10 +5,11 @@ import IconButton from './icon_button';
import DropdownMenuContainer from 'flavours/glitch/containers/dropdown_menu_container';
import { defineMessages, injectIntl } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { me, isStaff } from 'flavours/glitch/util/initial_state';
import { me } from 'flavours/glitch/util/initial_state';
import RelativeTimestamp from './relative_timestamp';
import { accountAdminLink, statusAdminLink } from 'flavours/glitch/util/backend_links';
import classNames from 'classnames';
import { PERMISSION_MANAGE_USERS } from 'flavours/glitch/permissions';
const messages = defineMessages({
delete: { id: 'status.delete', defaultMessage: 'Delete' },
@ -47,6 +48,7 @@ class StatusActionBar extends ImmutablePureComponent {
static contextTypes = {
router: PropTypes.object,
identity: PropTypes.object,
};
static propTypes = {
@ -240,7 +242,7 @@ class StatusActionBar extends ImmutablePureComponent {
menu.push({ text: intl.formatMessage(messages.block, { name: status.getIn(['account', 'username']) }), action: this.handleBlockClick });
menu.push({ text: intl.formatMessage(messages.report, { name: status.getIn(['account', 'username']) }), action: this.handleReport });
if (isStaff && (accountAdminLink || statusAdminLink)) {
if ((this.context.identity.permissions & PERMISSION_MANAGE_USERS) === PERMISSION_MANAGE_USERS && (accountAdminLink || statusAdminLink)) {
menu.push(null);
if (accountAdminLink !== undefined) {
menu.push({

View file

@ -31,6 +31,7 @@ const createIdentityContext = state => ({
signedIn: !!state.meta.me,
accountId: state.meta.me,
accessToken: state.meta.access_token,
permissions: state.role.permissions,
});
export default class Mastodon extends React.PureComponent {

View file

@ -3,7 +3,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { autoPlayGif, me, isStaff } from 'flavours/glitch/util/initial_state';
import { autoPlayGif, me } from 'flavours/glitch/util/initial_state';
import { preferencesLink, profileLink, accountAdminLink } from 'flavours/glitch/util/backend_links';
import classNames from 'classnames';
import Icon from 'flavours/glitch/components/icon';
@ -13,6 +13,7 @@ import Button from 'flavours/glitch/components/button';
import { NavLink } from 'react-router-dom';
import DropdownMenuContainer from 'flavours/glitch/containers/dropdown_menu_container';
import AccountNoteContainer from '../containers/account_note_container';
import { PERMISSION_MANAGE_USERS } from 'flavours/glitch/permissions';
const messages = defineMessages({
unfollow: { id: 'account.unfollow', defaultMessage: 'Unfollow' },
@ -64,6 +65,10 @@ const dateFormatOptions = {
export default @injectIntl
class Header extends ImmutablePureComponent {
static contextTypes = {
identity: PropTypes.object,
};
static propTypes = {
account: ImmutablePropTypes.map,
identity_props: ImmutablePropTypes.list,
@ -244,7 +249,7 @@ class Header extends ImmutablePureComponent {
}
}
if (account.get('id') !== me && isStaff && accountAdminLink) {
if (account.get('id') !== me && (this.context.identity.permissions & PERMISSION_MANAGE_USERS) === PERMISSION_MANAGE_USERS && accountAdminLink) {
menu.push(null);
menu.push({ text: intl.formatMessage(messages.admin_account, { name: account.get('username') }), href: accountAdminLink(account.get('id')) });
}

View file

@ -6,10 +6,14 @@ import ClearColumnButton from './clear_column_button';
import GrantPermissionButton from './grant_permission_button';
import SettingToggle from './setting_toggle';
import PillBarButton from './pill_bar_button';
import { isStaff } from 'flavours/glitch/util/initial_state';
import { PERMISSION_MANAGE_USERS, PERMISSION_MANAGE_REPORTS } from 'flavours/glitch/permissions';
export default class ColumnSettings extends React.PureComponent {
static contextTypes = {
identity: PropTypes.object,
};
static propTypes = {
settings: ImmutablePropTypes.map.isRequired,
pushSettings: ImmutablePropTypes.map.isRequired,
@ -167,7 +171,7 @@ export default class ColumnSettings extends React.PureComponent {
</div>
</div>
{isStaff && (
{(this.context.identity.permissions & PERMISSION_MANAGE_USERS === PERMISSION_MANAGE_USERS) && (
<div role='group' aria-labelledby='notifications-admin-sign-up'>
<span id='notifications-status' className='column-settings__section'><FormattedMessage id='notifications.column_settings.admin.sign_up' defaultMessage='New sign-ups:' /></span>
@ -180,7 +184,7 @@ export default class ColumnSettings extends React.PureComponent {
</div>
)}
{isStaff && (
{(this.context.identity.permissions & PERMISSION_MANAGE_REPORTS === PERMISSION_MANAGE_REPORTS) && (
<div role='group' aria-labelledby='notifications-admin-report'>
<span id='notifications-status' className='column-settings__section'><FormattedMessage id='notifications.column_settings.admin.report' defaultMessage='New reports:' /></span>

View file

@ -4,9 +4,10 @@ import IconButton from 'flavours/glitch/components/icon_button';
import ImmutablePropTypes from 'react-immutable-proptypes';
import DropdownMenuContainer from 'flavours/glitch/containers/dropdown_menu_container';
import { defineMessages, injectIntl } from 'react-intl';
import { me, isStaff } from 'flavours/glitch/util/initial_state';
import { me } from 'flavours/glitch/util/initial_state';
import { accountAdminLink, statusAdminLink } from 'flavours/glitch/util/backend_links';
import classNames from 'classnames';
import { PERMISSION_MANAGE_USERS } from 'flavours/glitch/permissions';
const messages = defineMessages({
delete: { id: 'status.delete', defaultMessage: 'Delete' },
@ -41,6 +42,7 @@ class ActionBar extends React.PureComponent {
static contextTypes = {
router: PropTypes.object,
identity: PropTypes.object,
};
static propTypes = {
@ -182,7 +184,7 @@ class ActionBar extends React.PureComponent {
menu.push({ text: intl.formatMessage(messages.mute, { name: status.getIn(['account', 'username']) }), action: this.handleMuteClick });
menu.push({ text: intl.formatMessage(messages.block, { name: status.getIn(['account', 'username']) }), action: this.handleBlockClick });
menu.push({ text: intl.formatMessage(messages.report, { name: status.getIn(['account', 'username']) }), action: this.handleReport });
if (isStaff && (accountAdminLink || statusAdminLink)) {
if ((this.context.identity.permissions & PERMISSION_MANAGE_USERS) === PERMISSION_MANAGE_USERS && (accountAdminLink || statusAdminLink)) {
menu.push(null);
if (accountAdminLink !== undefined) {
menu.push({

View file

@ -3,10 +3,11 @@ import React from 'react';
import PropTypes from 'prop-types';
import { FormattedMessage, defineMessages, injectIntl } from 'react-intl';
import { Link } from 'react-router-dom';
import { invitesEnabled, limitedFederationMode, version, repository, source_url } from 'flavours/glitch/util/initial_state';
import { limitedFederationMode, version, repository, source_url } from 'flavours/glitch/util/initial_state';
import { signOutLink, securityLink } from 'flavours/glitch/util/backend_links';
import { logOut } from 'flavours/glitch/util/log_out';
import { openModal } from 'flavours/glitch/actions/modal';
import { PERMISSION_INVITE_USERS } from 'flavours/glitch/permissions';
const messages = defineMessages({
logoutMessage: { id: 'confirmations.logout.message', defaultMessage: 'Are you sure you want to log out?' },
@ -28,6 +29,10 @@ export default @injectIntl
@connect(null, mapDispatchToProps)
class LinkFooter extends React.PureComponent {
static contextTypes = {
identity: PropTypes.object,
};
static propTypes = {
onLogout: PropTypes.func.isRequired,
intl: PropTypes.object.isRequired,
@ -46,7 +51,7 @@ class LinkFooter extends React.PureComponent {
return (
<div className='getting-started__footer'>
<ul>
{invitesEnabled && <li><a href='/invites' target='_blank'><FormattedMessage id='getting_started.invite' defaultMessage='Invite people' /></a> · </li>}
{((this.context.identity.permissions & PERMISSION_INVITE_USERS) === PERMISSION_INVITE_USERS) && <li><a href='/invites' target='_blank'><FormattedMessage id='getting_started.invite' defaultMessage='Invite people' /></a> · </li>}
{!!securityLink && <li><a href='/auth/edit'><FormattedMessage id='getting_started.security' defaultMessage='Security' /></a> · </li>}
{!limitedFederationMode && <li><a href='/about/more' target='_blank'><FormattedMessage id='navigation_bar.info' defaultMessage='About this server' /></a> · </li>}
<li><a href='https://joinmastodon.org/apps' target='_blank'><FormattedMessage id='navigation_bar.apps' defaultMessage='Mobile apps' /></a> · </li>

View file

@ -0,0 +1,3 @@
export const PERMISSION_INVITE_USERS = 0x0000000000010000;
export const PERMISSION_MANAGE_USERS = 0x0000000000000400;
export const PERMISSION_MANAGE_REPORTS = 0x0000000000000010;

View file

@ -4,12 +4,13 @@ import { Map as ImmutableMap } from 'immutable';
const initialState = ImmutableMap({
streaming_api_base_url: null,
access_token: null,
permissions: '0',
});
export default function meta(state = initialState, action) {
switch(action.type) {
case STORE_HYDRATE:
return state.merge(action.state.get('meta'));
return state.merge(action.state.get('meta')).set('permissions', action.state.getIn(['role', 'permissions']));
default:
return state;
}

View file

@ -943,6 +943,10 @@ a.name-tag,
margin-top: 15px;
}
.user-role {
color: var(--user-role-accent);
}
.announcements-list,
.filters-list {
border: 1px solid lighten($ui-base-color, 4%);
@ -979,6 +983,17 @@ a.name-tag,
&__meta {
padding: 0 15px;
color: $dark-text-color;
a {
color: inherit;
text-decoration: underline;
&:hover,
&:focus,
&:active {
text-decoration: none;
}
}
}
&__action-bar {

View file

@ -247,6 +247,10 @@ code {
}
}
.input.with_block_label.user_role_permissions_as_keys ul {
columns: unset;
}
.input.datetime .label_input select {
display: inline-block;
width: auto;

View file

@ -23,14 +23,12 @@ export const me = getMeta('me');
export const searchEnabled = getMeta('search_enabled');
export const maxChars = (initialState && initialState.max_toot_chars) || 500;
export const pollLimits = (initialState && initialState.poll_limits);
export const invitesEnabled = getMeta('invites_enabled');
export const limitedFederationMode = getMeta('limited_federation_mode');
export const repository = getMeta('repository');
export const source_url = getMeta('source_url');
export const version = getMeta('version');
export const mascot = getMeta('mascot');
export const profile_directory = getMeta('profile_directory');
export const isStaff = getMeta('is_staff');
export const defaultContentType = getMeta('default_content_type');
export const forceSingleColumn = getMeta('advanced_layout') === false;
export const useBlurhash = getMeta('use_blurhash');

View file

@ -608,7 +608,20 @@ function insertIntoTagHistory(recognizedTags, text) {
const state = getState();
const oldHistory = state.getIn(['compose', 'tagHistory']);
const me = state.getIn(['meta', 'me']);
const names = recognizedTags.map(tag => text.match(new RegExp(`#${tag.name}`, 'i'))[0].slice(1));
// FIXME: Matching input hashtags with recognized hashtags has become more
// complicated because of new normalization rules, it's no longer just
// a case sensitivity issue
const names = recognizedTags.map(tag => {
const matches = text.match(new RegExp(`#${tag.name}`, 'i'));
if (matches && matches.length > 0) {
return matches[0].slice(1);
} else {
return tag.name;
}
});
const intersectedOldHistory = oldHistory.filter(name => names.findIndex(newName => newName.toLowerCase() === name.toLowerCase()) === -1);
names.push(...intersectedOldHistory.toJS());

View file

@ -6,8 +6,9 @@ import IconButton from './icon_button';
import DropdownMenuContainer from '../containers/dropdown_menu_container';
import { defineMessages, injectIntl } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { me, isStaff } from '../initial_state';
import { me } from '../initial_state';
import classNames from 'classnames';
import { PERMISSION_MANAGE_USERS } from 'mastodon/permissions';
const messages = defineMessages({
delete: { id: 'status.delete', defaultMessage: 'Delete' },
@ -55,6 +56,7 @@ class StatusActionBar extends ImmutablePureComponent {
static contextTypes = {
router: PropTypes.object,
identity: PropTypes.object,
};
static propTypes = {
@ -306,7 +308,7 @@ class StatusActionBar extends ImmutablePureComponent {
}
}
if (isStaff) {
if ((this.context.identity.permissions & PERMISSION_MANAGE_USERS) === PERMISSION_MANAGE_USERS) {
menu.push(null);
menu.push({ text: intl.formatMessage(messages.admin_account, { name: account.get('username') }), href: `/admin/accounts/${status.getIn(['account', 'id'])}` });
menu.push({ text: intl.formatMessage(messages.admin_status), href: `/admin/accounts/${status.getIn(['account', 'id'])}/statuses?id=${status.get('id')}` });

View file

@ -26,6 +26,7 @@ const createIdentityContext = state => ({
signedIn: !!state.meta.me,
accountId: state.meta.me,
accessToken: state.meta.access_token,
permissions: state.role.permissions,
});
export default class Mastodon extends React.PureComponent {

View file

@ -4,7 +4,7 @@ import PropTypes from 'prop-types';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import Button from 'mastodon/components/button';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { autoPlayGif, me, isStaff } from 'mastodon/initial_state';
import { autoPlayGif, me } from 'mastodon/initial_state';
import classNames from 'classnames';
import Icon from 'mastodon/components/icon';
import IconButton from 'mastodon/components/icon_button';
@ -14,6 +14,7 @@ import ShortNumber from 'mastodon/components/short_number';
import { NavLink } from 'react-router-dom';
import DropdownMenuContainer from 'mastodon/containers/dropdown_menu_container';
import AccountNoteContainer from '../containers/account_note_container';
import { PERMISSION_MANAGE_USERS } from 'mastodon/permissions';
const messages = defineMessages({
unfollow: { id: 'account.unfollow', defaultMessage: 'Unfollow' },
@ -64,6 +65,10 @@ const dateFormatOptions = {
export default @injectIntl
class Header extends ImmutablePureComponent {
static contextTypes = {
identity: PropTypes.object,
};
static propTypes = {
account: ImmutablePropTypes.map,
identity_props: ImmutablePropTypes.list,
@ -241,7 +246,7 @@ class Header extends ImmutablePureComponent {
}
}
if (account.get('id') !== me && isStaff) {
if (account.get('id') !== me && (this.context.identity.permissions & PERMISSION_MANAGE_USERS) === PERMISSION_MANAGE_USERS) {
menu.push(null);
menu.push({ text: intl.formatMessage(messages.admin_account, { name: account.get('username') }), href: `/admin/accounts/${account.get('id')}` });
}

View file

@ -5,10 +5,14 @@ import { FormattedMessage } from 'react-intl';
import ClearColumnButton from './clear_column_button';
import GrantPermissionButton from './grant_permission_button';
import SettingToggle from './setting_toggle';
import { isStaff } from 'mastodon/initial_state';
import { PERMISSION_MANAGE_USERS, PERMISSION_MANAGE_REPORTS } from 'mastodon/permissions';
export default class ColumnSettings extends React.PureComponent {
static contextTypes = {
identity: PropTypes.object,
};
static propTypes = {
settings: ImmutablePropTypes.map.isRequired,
pushSettings: ImmutablePropTypes.map.isRequired,
@ -166,7 +170,7 @@ export default class ColumnSettings extends React.PureComponent {
</div>
</div>
{isStaff && (
{(this.context.identity.permissions & PERMISSION_MANAGE_USERS === PERMISSION_MANAGE_USERS) && (
<div role='group' aria-labelledby='notifications-admin-sign-up'>
<span id='notifications-status' className='column-settings__section'><FormattedMessage id='notifications.column_settings.admin.sign_up' defaultMessage='New sign-ups:' /></span>
@ -179,7 +183,7 @@ export default class ColumnSettings extends React.PureComponent {
</div>
)}
{isStaff && (
{(this.context.identity.permissions & PERMISSION_MANAGE_REPORTS === PERMISSION_MANAGE_REPORTS) && (
<div role='group' aria-labelledby='notifications-admin-report'>
<span id='notifications-status' className='column-settings__section'><FormattedMessage id='notifications.column_settings.admin.report' defaultMessage='New reports:' /></span>

View file

@ -5,8 +5,9 @@ import IconButton from '../../../components/icon_button';
import ImmutablePropTypes from 'react-immutable-proptypes';
import DropdownMenuContainer from '../../../containers/dropdown_menu_container';
import { defineMessages, injectIntl } from 'react-intl';
import { me, isStaff } from '../../../initial_state';
import { me } from '../../../initial_state';
import classNames from 'classnames';
import { PERMISSION_MANAGE_USERS } from 'mastodon/permissions';
const messages = defineMessages({
delete: { id: 'status.delete', defaultMessage: 'Delete' },
@ -50,6 +51,7 @@ class ActionBar extends React.PureComponent {
static contextTypes = {
router: PropTypes.object,
identity: PropTypes.object,
};
static propTypes = {
@ -248,7 +250,7 @@ class ActionBar extends React.PureComponent {
}
}
if (isStaff) {
if ((this.context.identity.permissions & PERMISSION_MANAGE_USERS) === PERMISSION_MANAGE_USERS) {
menu.push(null);
menu.push({ text: intl.formatMessage(messages.admin_account, { name: status.getIn(['account', 'username']) }), href: `/admin/accounts/${status.getIn(['account', 'id'])}` });
menu.push({ text: intl.formatMessage(messages.admin_status), href: `/admin/accounts/${status.getIn(['account', 'id'])}/statuses?id=${status.get('id')}` });

View file

@ -3,9 +3,10 @@ import React from 'react';
import PropTypes from 'prop-types';
import { FormattedMessage, defineMessages, injectIntl } from 'react-intl';
import { Link } from 'react-router-dom';
import { invitesEnabled, limitedFederationMode, version, repository, source_url, profile_directory as profileDirectory } from 'mastodon/initial_state';
import { limitedFederationMode, version, repository, source_url, profile_directory as profileDirectory } from 'mastodon/initial_state';
import { logOut } from 'mastodon/utils/log_out';
import { openModal } from 'mastodon/actions/modal';
import { PERMISSION_INVITE_USERS } from 'mastodon/permissions';
const messages = defineMessages({
logoutMessage: { id: 'confirmations.logout.message', defaultMessage: 'Are you sure you want to log out?' },
@ -27,6 +28,10 @@ export default @injectIntl
@connect(null, mapDispatchToProps)
class LinkFooter extends React.PureComponent {
static contextTypes = {
identity: PropTypes.object,
};
static propTypes = {
withHotkeys: PropTypes.bool,
onLogout: PropTypes.func.isRequired,
@ -48,7 +53,7 @@ class LinkFooter extends React.PureComponent {
return (
<div className='getting-started__footer'>
<ul>
{invitesEnabled && <li><a href='/invites' target='_blank'><FormattedMessage id='getting_started.invite' defaultMessage='Invite people' /></a> · </li>}
{((this.context.identity.permissions & PERMISSION_INVITE_USERS) === PERMISSION_INVITE_USERS) && <li><a href='/invites' target='_blank'><FormattedMessage id='getting_started.invite' defaultMessage='Invite people' /></a> · </li>}
{withHotkeys && <li><Link to='/keyboard-shortcuts'><FormattedMessage id='navigation_bar.keyboard_shortcuts' defaultMessage='Hotkeys' /></Link> · </li>}
<li><a href='/auth/edit'><FormattedMessage id='getting_started.security' defaultMessage='Security' /></a> · </li>
{!limitedFederationMode && <li><a href='/about/more' target='_blank'><FormattedMessage id='navigation_bar.info' defaultMessage='About this server' /></a> · </li>}

View file

@ -13,14 +13,12 @@ export const deleteModal = getMeta('delete_modal');
export const me = getMeta('me');
export const searchEnabled = getMeta('search_enabled');
export const maxChars = (initialState && initialState.max_toot_chars) || 500;
export const invitesEnabled = getMeta('invites_enabled');
export const limitedFederationMode = getMeta('limited_federation_mode');
export const repository = getMeta('repository');
export const source_url = getMeta('source_url');
export const version = getMeta('version');
export const mascot = getMeta('mascot');
export const profile_directory = getMeta('profile_directory');
export const isStaff = getMeta('is_staff');
export const forceSingleColumn = !getMeta('advanced_layout');
export const useBlurhash = getMeta('use_blurhash');
export const usePendingItems = getMeta('use_pending_items');

View file

@ -314,6 +314,7 @@
"navigation_bar.preferences": "Preferences",
"navigation_bar.public_timeline": "Federated timeline",
"navigation_bar.security": "Security",
"notification.admin.report": "{name} reported {target}",
"notification.admin.sign_up": "{name} signed up",
"notification.favourite": "{name} favourited your status",
"notification.follow": "{name} followed you",
@ -326,6 +327,7 @@
"notification.update": "{name} edited a post",
"notifications.clear": "Clear notifications",
"notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
"notifications.column_settings.admin.report": "New reports:",
"notifications.column_settings.admin.sign_up": "New sign-ups:",
"notifications.column_settings.alert": "Desktop notifications",
"notifications.column_settings.favourite": "Favourites:",
@ -431,6 +433,11 @@
"report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
"report.unfollow": "Unfollow @{name}",
"report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.other": "Other",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report",
"search.placeholder": "Search",
"search_popout.search_format": "Advanced search 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.",
@ -461,6 +468,7 @@
"status.embed": "Embed",
"status.favourite": "Favourite",
"status.filtered": "Filtered",
"status.hide": "Hide toot",
"status.history.created": "{name} created {date}",
"status.history.edited": "{name} edited {date}",
"status.load_more": "Load more",
@ -484,6 +492,7 @@
"status.report": "Report @{name}",
"status.sensitive_warning": "Sensitive content",
"status.share": "Share",
"status.show_filter_reason": "Show anyway",
"status.show_less": "Show less",
"status.show_less_all": "Show less for all",
"status.show_more": "Show more",

View file

@ -314,6 +314,7 @@
"navigation_bar.preferences": "التفضيلات",
"navigation_bar.public_timeline": "الخيط العام الموحد",
"navigation_bar.security": "الأمان",
"notification.admin.report": "{name} reported {target}",
"notification.admin.sign_up": "أنشأ {name} حسابًا",
"notification.favourite": "أُعجِب {name} بمنشورك",
"notification.follow": "{name} يتابعك",
@ -326,6 +327,7 @@
"notification.update": "عدّلَ {name} منشورًا",
"notifications.clear": "امسح الإخطارات",
"notifications.clear_confirmation": "أمتأكد من أنك تود مسح جل الإخطارات الخاصة بك و المتلقاة إلى حد الآن ؟",
"notifications.column_settings.admin.report": "New reports:",
"notifications.column_settings.admin.sign_up": "التسجيلات الجديدة:",
"notifications.column_settings.alert": "إشعارات سطح المكتب",
"notifications.column_settings.favourite": "المُفَضَّلة:",
@ -431,6 +433,11 @@
"report.thanks.title_actionable": "شُكرًا لَكَ على الإبلاغ، سَوفَ نَنظُرُ فِي هَذَا الأمر.",
"report.unfollow": "إلغاء متابعة @{name}",
"report.unfollow_explanation": "أنت تتابع هذا الحساب، لإزالة مَنشوراته من تغذيَتِكَ الرئيسة ألغ متابعته.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.other": "Other",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report",
"search.placeholder": "ابحث",
"search_popout.search_format": "نمط البحث المتقدم",
"search_popout.tips.full_text": "النص البسيط يقوم بعرض المنشورات التي كتبتها أو قمت بإرسالها أو ترقيتها أو تمت الإشارة إليك فيها من طرف آخرين ، بالإضافة إلى مطابقة أسماء المستخدمين وأسماء العرض وعلامات التصنيف.",
@ -461,6 +468,7 @@
"status.embed": "إدماج",
"status.favourite": "أضف إلى المفضلة",
"status.filtered": "مُصفّى",
"status.hide": "Hide toot",
"status.history.created": "أنشأه {name} {date}",
"status.history.edited": "عدله {name} {date}",
"status.load_more": "حمّل المزيد",
@ -484,6 +492,7 @@
"status.report": "ابلِغ عن @{name}",
"status.sensitive_warning": "محتوى حساس",
"status.share": "مشاركة",
"status.show_filter_reason": "Show anyway",
"status.show_less": "اعرض أقلّ",
"status.show_less_all": "طي الكل",
"status.show_more": "أظهر المزيد",

View file

@ -33,7 +33,7 @@
"account.mute_notifications": "Mute notifications from @{name}",
"account.muted": "Muted",
"account.posts": "Barritos",
"account.posts_with_replies": "Barritos y rempuestes",
"account.posts_with_replies": "Artículos y rempuestes",
"account.report": "Report @{name}",
"account.requested": "Esperando pola aprobación. Calca pa encaboxar la solicitú de siguimientu",
"account.share": "Share @{name}'s profile",
@ -314,6 +314,7 @@
"navigation_bar.preferences": "Preferencies",
"navigation_bar.public_timeline": "Llinia temporal federada",
"navigation_bar.security": "Seguranza",
"notification.admin.report": "{name} reported {target}",
"notification.admin.sign_up": "{name} signed up",
"notification.favourite": "{name} favourited your status",
"notification.follow": "{name} siguióte",
@ -326,6 +327,7 @@
"notification.update": "{name} editó l'artículu",
"notifications.clear": "Llimpiar avisos",
"notifications.clear_confirmation": "¿De xuru que quies llimpiar dafechu tolos avisos?",
"notifications.column_settings.admin.report": "New reports:",
"notifications.column_settings.admin.sign_up": "New sign-ups:",
"notifications.column_settings.alert": "Avisos d'escritoriu",
"notifications.column_settings.favourite": "Favoritos:",
@ -413,14 +415,14 @@
"report.placeholder": "Comentarios adicionales",
"report.reasons.dislike": "I don't like it",
"report.reasons.dislike_description": "It is not something you want to see",
"report.reasons.other": "It's something else",
"report.reasons.other_description": "The issue does not fit into other categories",
"report.reasons.spam": "It's spam",
"report.reasons.other": "Ye daqué más",
"report.reasons.other_description": "La incidencia nun s'axusta a les demás categoríes",
"report.reasons.spam": "Ye spam",
"report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies",
"report.reasons.violation": "Incumple les regles del sirvidor",
"report.reasons.violation_description": "You are aware that it breaks specific rules",
"report.rules.subtitle": "Select all that apply",
"report.rules.title": "Which rules are being violated?",
"report.rules.title": "¿Qué regles s'incumplen?",
"report.statuses.subtitle": "Select all that apply",
"report.statuses.title": "Are there any posts that back up this report?",
"report.submit": "Unviar",
@ -431,6 +433,11 @@
"report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
"report.unfollow": "Unfollow @{name}",
"report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.other": "Other",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report",
"search.placeholder": "Buscar",
"search_popout.search_format": "Formatu de gueta avanzada",
"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.",
@ -461,6 +468,7 @@
"status.embed": "Empotrar",
"status.favourite": "Favourite",
"status.filtered": "Filtered",
"status.hide": "Hide toot",
"status.history.created": "{name} created {date}",
"status.history.edited": "{name} edited {date}",
"status.load_more": "Cargar más",
@ -484,6 +492,7 @@
"status.report": "Report @{name}",
"status.sensitive_warning": "Conteníu sensible",
"status.share": "Share",
"status.show_filter_reason": "Show anyway",
"status.show_less": "Amosar menos",
"status.show_less_all": "Amosar menos en too",
"status.show_more": "Amosar más",
@ -509,7 +518,7 @@
"timeline_hint.resources.follows": "Follows",
"timeline_hint.resources.statuses": "Older posts",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
"trends.trending_now": "Trending now",
"trends.trending_now": "En tendencia",
"ui.beforeunload": "El borrador va perdese si coles de Mastodon.",
"units.short.billion": "{count} B",
"units.short.million": "{count} M",

View file

@ -314,6 +314,7 @@
"navigation_bar.preferences": "Предпочитания",
"navigation_bar.public_timeline": "Публичен канал",
"navigation_bar.security": "Сигурност",
"notification.admin.report": "{name} reported {target}",
"notification.admin.sign_up": "{name} signed up",
"notification.favourite": "{name} хареса твоята публикация",
"notification.follow": "{name} те последва",
@ -326,6 +327,7 @@
"notification.update": "{name} edited a post",
"notifications.clear": "Изчистване на известия",
"notifications.clear_confirmation": "Сигурни ли сте, че искате да изчистите окончателно всичките си известия?",
"notifications.column_settings.admin.report": "New reports:",
"notifications.column_settings.admin.sign_up": "New sign-ups:",
"notifications.column_settings.alert": "Десктоп известия",
"notifications.column_settings.favourite": "Предпочитани:",
@ -431,6 +433,11 @@
"report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
"report.unfollow": "Unfollow @{name}",
"report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.other": "Other",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report",
"search.placeholder": "Търсене",
"search_popout.search_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.",
@ -461,6 +468,7 @@
"status.embed": "Вграждане",
"status.favourite": "Предпочитани",
"status.filtered": "Филтрирано",
"status.hide": "Hide toot",
"status.history.created": "{name} created {date}",
"status.history.edited": "{name} edited {date}",
"status.load_more": "Зареждане на още",
@ -484,6 +492,7 @@
"status.report": "Докладване на @{name}",
"status.sensitive_warning": "Деликатно съдържание",
"status.share": "Споделяне",
"status.show_filter_reason": "Show anyway",
"status.show_less": "Покажи по-малко",
"status.show_less_all": "Покажи по-малко за всички",
"status.show_more": "Покажи повече",

View file

@ -314,6 +314,7 @@
"navigation_bar.preferences": "পছন্দসমূহ",
"navigation_bar.public_timeline": "যুক্তবিশ্বের সময়রেখা",
"navigation_bar.security": "নিরাপত্তা",
"notification.admin.report": "{name} reported {target}",
"notification.admin.sign_up": "{name} signed up",
"notification.favourite": "{name} আপনার কার্যক্রম পছন্দ করেছেন",
"notification.follow": "{name} আপনাকে অনুসরণ করেছেন",
@ -326,6 +327,7 @@
"notification.update": "{name} edited a post",
"notifications.clear": "প্রজ্ঞাপনগুলো মুছে ফেলতে",
"notifications.clear_confirmation": "আপনি কি নির্চিত প্রজ্ঞাপনগুলো মুছে ফেলতে চান ?",
"notifications.column_settings.admin.report": "New reports:",
"notifications.column_settings.admin.sign_up": "New sign-ups:",
"notifications.column_settings.alert": "কম্পিউটারে প্রজ্ঞাপনগুলি",
"notifications.column_settings.favourite": "পছন্দের:",
@ -431,6 +433,11 @@
"report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
"report.unfollow": "Unfollow @{name}",
"report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.other": "Other",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report",
"search.placeholder": "অনুসন্ধান",
"search_popout.search_format": "বিস্তারিতভাবে খোঁজার পদ্ধতি",
"search_popout.tips.full_text": "সাধারণ লেখা দিয়ে খুঁজলে বের হবে সেরকম আপনার লেখা, পছন্দের লেখা, সমর্থন করা লেখা, আপনাকে উল্লেখকরা কোনো লেখা, যা খুঁজছেন সেরকম কোনো ব্যবহারকারীর নাম বা কোনো হ্যাশট্যাগগুলো।",
@ -461,6 +468,7 @@
"status.embed": "এমবেড করতে",
"status.favourite": "পছন্দের করতে",
"status.filtered": "ছাঁকনিদিত",
"status.hide": "Hide toot",
"status.history.created": "{name} created {date}",
"status.history.edited": "{name} edited {date}",
"status.load_more": "আরো দেখুন",
@ -484,6 +492,7 @@
"status.report": "@{name} কে রিপোর্ট করতে",
"status.sensitive_warning": "সংবেদনশীল কিছু",
"status.share": "অন্যদের জানান",
"status.show_filter_reason": "Show anyway",
"status.show_less": "কম দেখতে",
"status.show_less_all": "সবগুলোতে কম দেখতে",
"status.show_more": "আরো দেখাতে",

View file

@ -314,6 +314,7 @@
"navigation_bar.preferences": "Gwellvezioù",
"navigation_bar.public_timeline": "Red-amzer kevreet",
"navigation_bar.security": "Diogelroez",
"notification.admin.report": "{name} reported {target}",
"notification.admin.sign_up": "{name} signed up",
"notification.favourite": "{name} en/he deus lakaet ho toud en e/he muiañ-karet",
"notification.follow": "heuliañ a ra {name} ac'hanoc'h",
@ -326,6 +327,7 @@
"notification.update": "{name} edited a post",
"notifications.clear": "Skarzhañ ar c'hemennoù",
"notifications.clear_confirmation": "Ha sur oc'h e fell deoc'h skarzhañ ho kemennoù penn-da-benn?",
"notifications.column_settings.admin.report": "New reports:",
"notifications.column_settings.admin.sign_up": "New sign-ups:",
"notifications.column_settings.alert": "Kemennoù war ar burev",
"notifications.column_settings.favourite": "Ar re vuiañ-karet:",
@ -431,6 +433,11 @@
"report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
"report.unfollow": "Unfollow @{name}",
"report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.other": "Other",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report",
"search.placeholder": "Klask",
"search_popout.search_format": "Framm klask araokaet",
"search_popout.tips.full_text": "Testenn simpl a adkas toudoù skrivet ganeoc'h, merket ganeoc'h evel miuañ-karet, toudoù skignet, pe e-lec'h oc'h bet meneget, met ivez anvioù skrammañ, anvioù implijer ha gêrioù-klik hag a glot.",
@ -461,6 +468,7 @@
"status.embed": "Enframmañ",
"status.favourite": "Muiañ-karet",
"status.filtered": "Silet",
"status.hide": "Hide toot",
"status.history.created": "{name} created {date}",
"status.history.edited": "{name} edited {date}",
"status.load_more": "Kargañ muioc'h",
@ -484,6 +492,7 @@
"status.report": "Disklêriañ @{name}",
"status.sensitive_warning": "Dalc'had kizidik",
"status.share": "Rannañ",
"status.show_filter_reason": "Show anyway",
"status.show_less": "Diskouez nebeutoc'h",
"status.show_less_all": "Diskouez nebeutoc'h evit an holl",
"status.show_more": "Diskouez muioc'h",

View file

@ -314,6 +314,7 @@
"navigation_bar.preferences": "Preferències",
"navigation_bar.public_timeline": "Línia de temps federada",
"navigation_bar.security": "Seguretat",
"notification.admin.report": "{name} ha reportat {target}",
"notification.admin.sign_up": "{name} s'ha registrat",
"notification.favourite": "{name} ha afavorit la teva publicació",
"notification.follow": "{name} et segueix",
@ -326,6 +327,7 @@
"notification.update": "{name} ha editat una publicació",
"notifications.clear": "Esborra les notificacions",
"notifications.clear_confirmation": "Segur que vols esborrar permanentment totes les teves notificacions?",
"notifications.column_settings.admin.report": "Nous informes:",
"notifications.column_settings.admin.sign_up": "Nous registres:",
"notifications.column_settings.alert": "Notificacions d'escriptori",
"notifications.column_settings.favourite": "Preferits:",
@ -431,6 +433,11 @@
"report.thanks.title_actionable": "Gràcies per denunciar-ho. Ho investigarem.",
"report.unfollow": "Deixa de seguir @{name}",
"report.unfollow_explanation": "Estàs seguint aquest compte. Per no veure les seves publicacions a la teva línia de temps d'Inici, deixa de seguir-lo.",
"report_notification.attached_statuses": "{count, plural, one {{count} publicació} other {{count} publicacions}} attached",
"report_notification.categories.other": "Altres",
"report_notification.categories.spam": "Contingut brossa",
"report_notification.categories.violation": "Violació de norma",
"report_notification.open": "Informe obert",
"search.placeholder": "Cerca",
"search_popout.search_format": "Format de cerca avançada",
"search_popout.tips.full_text": "El text simple recupera publicacions que has escrit, marcat com a preferides, que has impulsat o on t'han esmentat, així com els usuaris, els noms d'usuaris i les etiquetes.",
@ -461,6 +468,7 @@
"status.embed": "Incrusta",
"status.favourite": "Favorit",
"status.filtered": "Filtrat",
"status.hide": "Amaga publicació",
"status.history.created": "{name} ha creat {date}",
"status.history.edited": "{name} ha editat {date}",
"status.load_more": "Carregar-ne més",
@ -484,6 +492,7 @@
"status.report": "Denuncia @{name}",
"status.sensitive_warning": "Contingut sensible",
"status.share": "Comparteix",
"status.show_filter_reason": "Mostra igualment",
"status.show_less": "Mostrar-ne menys",
"status.show_less_all": "Mostrar-ne menys per a tot",
"status.show_more": "Mostrar-ne més",

View file

@ -314,6 +314,7 @@
"navigation_bar.preferences": "پەسەندەکان",
"navigation_bar.public_timeline": "نووسراوەکانی هەمووشوێنێک",
"navigation_bar.security": "ئاسایش",
"notification.admin.report": "{name} reported {target}",
"notification.admin.sign_up": "{name} تۆمارکرا",
"notification.favourite": "{name} نووسراوەکەتی پەسەند کرد",
"notification.follow": "{name} دوای تۆ کەوت",
@ -326,6 +327,7 @@
"notification.update": "{name} پۆستێکی دەستکاریکرد",
"notifications.clear": "ئاگانامەکان بسڕیەوە",
"notifications.clear_confirmation": "ئایا دڵنیایت لەوەی دەتەوێت بە هەمیشەیی هەموو ئاگانامەکانت بسڕیتەوە?",
"notifications.column_settings.admin.report": "New reports:",
"notifications.column_settings.admin.sign_up": "چوونەژوورەوەی نوێ:",
"notifications.column_settings.alert": "ئاگانامەکانی پیشانگەرر ڕومێزی",
"notifications.column_settings.favourite": "دڵخوازترین:",
@ -431,6 +433,11 @@
"report.thanks.title_actionable": "سوپاس بۆ ڕاپۆرتکردن، ئێمە سەیری ئەم بابەتە دەکەین.",
"report.unfollow": "بەدوادانەچوو@{name}",
"report.unfollow_explanation": "تۆ شوێنکەوتووی ئەم هەژماررەی دەکەیت. بۆ ئەوەی چیتر نووسراوەکانیان لە هۆم فیدی خۆت نەبینی، بەدوایان مەچۆ.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.other": "Other",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report",
"search.placeholder": "گەڕان",
"search_popout.search_format": "شێوەی گەڕانی پێشکەوتوو",
"search_popout.tips.full_text": "گەڕانێکی دەقی سادە دەتوانێت توتەکانی ئێوە کە، نووسیوتانە،پەسەنتان کردووە، دووبارەتانکردووە، یان ئەو توتانە کە باسی ئێوەی تێدا کراوە پەیدا دەکا. هەروەها ناوی بەکارهێنەران، ناوی پیشاندراو و هەشتەگەکانیش لە خۆ دەگرێت.",
@ -461,6 +468,7 @@
"status.embed": "نیشتەجێ بکە",
"status.favourite": "دڵخواز",
"status.filtered": "پاڵاوتن",
"status.hide": "Hide toot",
"status.history.created": "{name} دروستکراوە لە{date}",
"status.history.edited": "{name} دروستکاریکراوە لە{date}",
"status.load_more": "زیاتر بار بکە",
@ -484,6 +492,7 @@
"status.report": "گوزارشت @{name}",
"status.sensitive_warning": "ناوەڕۆکی هەستیار",
"status.share": "هاوبەشی بکە",
"status.show_filter_reason": "Show anyway",
"status.show_less": "کەمتر نیشان بدە",
"status.show_less_all": "هەمووی بچووک بکەوە",
"status.show_more": "زیاتر نیشان بدە",

View file

@ -314,6 +314,7 @@
"navigation_bar.preferences": "Preferenze",
"navigation_bar.public_timeline": "Linea pubblica glubale",
"navigation_bar.security": "Sicurità",
"notification.admin.report": "{name} reported {target}",
"notification.admin.sign_up": "{name} signed up",
"notification.favourite": "{name} hà aghjuntu u vostru statutu à i so favuriti",
"notification.follow": "{name} v'hà seguitatu",
@ -326,6 +327,7 @@
"notification.update": "{name} edited a post",
"notifications.clear": "Purgà e nutificazione",
"notifications.clear_confirmation": "Site sicuru·a che vulete toglie tutte ste nutificazione?",
"notifications.column_settings.admin.report": "New reports:",
"notifications.column_settings.admin.sign_up": "New sign-ups:",
"notifications.column_settings.alert": "Nutificazione nant'à l'urdinatore",
"notifications.column_settings.favourite": "Favuriti:",
@ -431,6 +433,11 @@
"report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
"report.unfollow": "Unfollow @{name}",
"report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.other": "Other",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report",
"search.placeholder": "Circà",
"search_popout.search_format": "Ricerca avanzata",
"search_popout.tips.full_text": "I testi simplici rimandanu i statuti ch'avete scritti, aghjunti à i vostri favuriti, spartuti o induve quelli site mintuvatu·a, è ancu i cugnomi, nomi pubblichi è hashtag chì currispondenu.",
@ -461,6 +468,7 @@
"status.embed": "Integrà",
"status.favourite": "Aghjunghje à i favuriti",
"status.filtered": "Filtratu",
"status.hide": "Hide toot",
"status.history.created": "{name} created {date}",
"status.history.edited": "{name} edited {date}",
"status.load_more": "Vede di più",
@ -484,6 +492,7 @@
"status.report": "Palisà @{name}",
"status.sensitive_warning": "Cuntinutu sensibile",
"status.share": "Sparte",
"status.show_filter_reason": "Show anyway",
"status.show_less": "Ripiegà",
"status.show_less_all": "Ripiegà tuttu",
"status.show_more": "Slibrà",

View file

@ -314,6 +314,7 @@
"navigation_bar.preferences": "Předvolby",
"navigation_bar.public_timeline": "Federovaná časová osa",
"navigation_bar.security": "Zabezpečení",
"notification.admin.report": "Uživatel {name} nahlásil {target}",
"notification.admin.sign_up": "Uživatel {name} se zaregistroval",
"notification.favourite": "Uživatel {name} si oblíbil váš příspěvek",
"notification.follow": "Uživatel {name} vás začal sledovat",
@ -326,6 +327,7 @@
"notification.update": "Uživatel {name} upravil příspěvek",
"notifications.clear": "Vymazat oznámení",
"notifications.clear_confirmation": "Opravdu chcete trvale smazat všechna vaše oznámení?",
"notifications.column_settings.admin.report": "Nová hlášení:",
"notifications.column_settings.admin.sign_up": "Nové registrace:",
"notifications.column_settings.alert": "Oznámení na počítači",
"notifications.column_settings.favourite": "Oblíbení:",
@ -431,6 +433,11 @@
"report.thanks.title_actionable": "Děkujeme za nahlášení, podíváme se na to.",
"report.unfollow": "Přestat sledovat @{name}",
"report.unfollow_explanation": "Tento účet sledujete. Abyste už neviděli jejich příspěvky ve své domácí časové ose, přestaňte je sledovat.",
"report_notification.attached_statuses": "{count, plural, one {{count} připojený příspěvek} few {{count} připojené příspěvky} many {{count} připojených příspěvků} other {{count} připojených příspěvků}}",
"report_notification.categories.other": "Ostatní",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Porušení pravidla",
"report_notification.open": "Otevřít hlášení",
"search.placeholder": "Hledat",
"search_popout.search_format": "Pokročilé hledání",
"search_popout.tips.full_text": "Jednoduchý text vrací příspěvky, které jste napsali, oblíbili si, boostnuli, nebo vás v nich někdo zmínil, a také odpovídající přezdívky, zobrazovaná jména a hashtagy.",
@ -461,6 +468,7 @@
"status.embed": "Vložit na web",
"status.favourite": "Oblíbit",
"status.filtered": "Filtrováno",
"status.hide": "Skrýt příspěvek",
"status.history.created": "Uživatel {name} vytvořil {date}",
"status.history.edited": "Uživatel {name} upravil {date}",
"status.load_more": "Zobrazit více",
@ -484,6 +492,7 @@
"status.report": "Nahlásit @{name}",
"status.sensitive_warning": "Citlivý obsah",
"status.share": "Sdílet",
"status.show_filter_reason": "Přesto zobrazit",
"status.show_less": "Zobrazit méně",
"status.show_less_all": "Zobrazit méně pro všechny",
"status.show_more": "Zobrazit více",

View file

@ -92,10 +92,10 @@
"community.column_settings.local_only": "Lleol yn unig",
"community.column_settings.media_only": "Cyfryngau yn unig",
"community.column_settings.remote_only": "Anghysbell yn unig",
"compose.language.change": "Change language",
"compose.language.search": "Search languages...",
"compose.language.change": "Newid iaith",
"compose.language.search": "Chwilio ieithoedd...",
"compose_form.direct_message_warning_learn_more": "Dysgu mwy",
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
"compose_form.encryption_warning": "Dyw postiadau ar Mastodon ddim wedi'u hamgryptio o ben i ben. Peidiwch â rhannu unrhyw wybodaeth sensitif dros Mastodon.",
"compose_form.hashtag_warning": "Ni fydd y post hwn wedi ei restru o dan unrhyw hashnod gan ei fod heb ei restru. Dim ond postiadau cyhoeddus gellid chwilio amdanynt drwy hashnod.",
"compose_form.lock_disclaimer": "Nid yw eich cyfri wedi'i {locked}. Gall unrhyw un eich dilyn i weld eich postiadau dilynwyr-yn-unig.",
"compose_form.lock_disclaimer.lock": "wedi ei gloi",
@ -106,7 +106,7 @@
"compose_form.poll.remove_option": "Tynnu'r dewisiad",
"compose_form.poll.switch_to_multiple": "Newid pleidlais i adael mwy nag un dewis",
"compose_form.poll.switch_to_single": "Newid pleidlais i gyfyngu i un dewis",
"compose_form.publish": "Publish",
"compose_form.publish": "Cyhoeddi",
"compose_form.publish_loud": "{publish}!",
"compose_form.save_changes": "Cadw newidiadau",
"compose_form.sensitive.hide": "Marcio cyfryngau fel eu bod yn sensitif",
@ -149,7 +149,7 @@
"embed.instructions": "Gosodwch y post hwn ar eich gwefan drwy gopïo'r côd isod.",
"embed.preview": "Dyma sut olwg fydd arno:",
"emoji_button.activity": "Gweithgarwch",
"emoji_button.clear": "Clear",
"emoji_button.clear": "Clir",
"emoji_button.custom": "Unigryw",
"emoji_button.flags": "Baneri",
"emoji_button.food": "Bwyd a Diod",
@ -314,6 +314,7 @@
"navigation_bar.preferences": "Dewisiadau",
"navigation_bar.public_timeline": "Ffrwd y ffederasiwn",
"navigation_bar.security": "Diogelwch",
"notification.admin.report": "{name} reported {target}",
"notification.admin.sign_up": "Cofrestrodd {name}",
"notification.favourite": "Hoffodd {name} eich post",
"notification.follow": "Dilynodd {name} chi",
@ -326,6 +327,7 @@
"notification.update": "Golygodd {name} bost",
"notifications.clear": "Clirio hysbysiadau",
"notifications.clear_confirmation": "Ydych chi'n sicr eich bod am glirio'ch holl hysbysiadau am byth?",
"notifications.column_settings.admin.report": "Adroddiadau newydd:",
"notifications.column_settings.admin.sign_up": "Cofrestriadau newydd:",
"notifications.column_settings.alert": "Hysbysiadau bwrdd gwaith",
"notifications.column_settings.favourite": "Ffefrynnau:",
@ -431,6 +433,11 @@
"report.thanks.title_actionable": "Diolch am adrodd, byddwn yn ymchwilio i hyn.",
"report.unfollow": "Dad-ddilyn @{name}",
"report.unfollow_explanation": "Rydych chi'n dilyn y cyfrif hwn. I beidio â gweld eu postiadau yn eich porthiant cartref mwyach, dad-ddilynwch nhw.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.other": "Arall",
"report_notification.categories.spam": "Sbam",
"report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report",
"search.placeholder": "Chwilio",
"search_popout.search_format": "Fformat chwilio uwch",
"search_popout.tips.full_text": "Mae testun syml yn dychwelyd postiadau yr ydych wedi ysgrifennu, hoffi, wedi'u hybio, neu wedi'ch crybwyll ynddynt, ynghyd a chyfateb a enwau defnyddwyr, enwau arddangos ac hashnodau.",
@ -461,6 +468,7 @@
"status.embed": "Plannu",
"status.favourite": "Hoffi",
"status.filtered": "Wedi'i hidlo",
"status.hide": "Hide toot",
"status.history.created": "{name} greuodd {date}",
"status.history.edited": "{name} olygodd {date}",
"status.load_more": "Llwythwch mwy",
@ -484,6 +492,7 @@
"status.report": "Adrodd @{name}",
"status.sensitive_warning": "Cynnwys sensitif",
"status.share": "Rhannu",
"status.show_filter_reason": "Show anyway",
"status.show_less": "Dangos llai",
"status.show_less_all": "Dangos llai i bawb",
"status.show_more": "Dangos mwy",

View file

@ -92,8 +92,8 @@
"community.column_settings.local_only": "Kun lokalt",
"community.column_settings.media_only": "Kun medier",
"community.column_settings.remote_only": "Kun udefra",
"compose.language.change": "Change language",
"compose.language.search": "Search languages...",
"compose.language.change": "Skift sprog",
"compose.language.search": "Søg efter sprog...",
"compose_form.direct_message_warning_learn_more": "Få mere at vide",
"compose_form.encryption_warning": "Indlæg på Mastodon er ikke ende-til-ende krypteret. Del derfor ikke sensitiv information via Mastodon.",
"compose_form.hashtag_warning": "Da indlægget ikke er offentligt, vises det ikke under noget hashtag, idet kun offentlige indlæg kan søges via hashtags.",
@ -149,7 +149,7 @@
"embed.instructions": "Indlejr dette indlæg på dit websted ved at kopiere nedenstående kode.",
"embed.preview": "Sådan kommer det til at se ud:",
"emoji_button.activity": "Aktivitet",
"emoji_button.clear": "Clear",
"emoji_button.clear": "Ryd",
"emoji_button.custom": "Tilpasset",
"emoji_button.flags": "Flag",
"emoji_button.food": "Mad og drikke",
@ -314,6 +314,7 @@
"navigation_bar.preferences": "Præferencer",
"navigation_bar.public_timeline": "Fælles tidslinje",
"navigation_bar.security": "Sikkerhed",
"notification.admin.report": "{name} anmeldte {target}",
"notification.admin.sign_up": "{name} tilmeldte sig",
"notification.favourite": "{name} favoritmarkerede dit indlæg",
"notification.follow": "{name} begyndte at følge dig",
@ -326,6 +327,7 @@
"notification.update": "{name} redigerede et indlæg",
"notifications.clear": "Ryd notifikationer",
"notifications.clear_confirmation": "Sikker på, at du vil rydde alle dine notifikationer permanent?",
"notifications.column_settings.admin.report": "Nye anmeldelser:",
"notifications.column_settings.admin.sign_up": "Nye tilmeldinger:",
"notifications.column_settings.alert": "Computernotifikationer",
"notifications.column_settings.favourite": "Favoritter:",
@ -431,6 +433,11 @@
"report.thanks.title_actionable": "Tak for anmeldelsen, der vil blive set nærmere på dette.",
"report.unfollow": "Følg ikke længere @{name}",
"report.unfollow_explanation": "Denne konto følges. For at ophøre med at se vedkommendes indlæg på hjemmetidslinjen, vælg Følg ikke længere.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} poster}} vedhæftet",
"report_notification.categories.other": "Andre",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Regelovertrædelse",
"report_notification.open": "Åbn anmeldelse",
"search.placeholder": "Søg",
"search_popout.search_format": "Avanceret søgeformat",
"search_popout.tips.full_text": "Simpel tekst returnerer indlæg, du har skrevet, favoritmarkeret, boostet eller som er nævnt i/matcher bruger- og profilnavne samt hashtags.",
@ -461,6 +468,7 @@
"status.embed": "Indlejr",
"status.favourite": "Favorit",
"status.filtered": "Filtreret",
"status.hide": "Skjul indlæg",
"status.history.created": "{name} oprettet {date}",
"status.history.edited": "{name} redigeret {date}",
"status.load_more": "Indlæs mere",
@ -484,6 +492,7 @@
"status.report": "Anmeld @{name}",
"status.sensitive_warning": "Følsomt indhold",
"status.share": "Del",
"status.show_filter_reason": "Vis alligevel",
"status.show_less": "Vis mindre",
"status.show_less_all": "Vis mindre for alle",
"status.show_more": "Vis mere",

View file

@ -314,6 +314,7 @@
"navigation_bar.preferences": "Einstellungen",
"navigation_bar.public_timeline": "Föderierte Zeitleiste",
"navigation_bar.security": "Sicherheit",
"notification.admin.report": "{name} reported {target}",
"notification.admin.sign_up": "{name} hat sich registriert",
"notification.favourite": "{name} hat deinen Beitrag favorisiert",
"notification.follow": "{name} folgt dir",
@ -326,6 +327,7 @@
"notification.update": "{name} bearbeitete einen Beitrag",
"notifications.clear": "Mitteilungen löschen",
"notifications.clear_confirmation": "Bist du dir sicher, dass du alle Mitteilungen löschen möchtest?",
"notifications.column_settings.admin.report": "New reports:",
"notifications.column_settings.admin.sign_up": "Neue Anmeldungen:",
"notifications.column_settings.alert": "Desktop-Benachrichtigungen",
"notifications.column_settings.favourite": "Favorisierungen:",
@ -431,6 +433,11 @@
"report.thanks.title_actionable": "Vielen Dank für die Meldung, wir werden uns das ansehen.",
"report.unfollow": "@{name} entfolgen",
"report.unfollow_explanation": "Du folgst diesem Konto. Um die Beiträge nicht mehr auf deiner Startseite zu sehen, entfolge dem Konto.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.other": "Other",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report",
"search.placeholder": "Suche",
"search_popout.search_format": "Fortgeschrittenes Suchformat",
"search_popout.tips.full_text": "Einfache Texteingabe gibt Beiträge, die du geschrieben, favorisiert und geteilt hast zurück. Außerdem auch Beiträge in denen du erwähnt wurdest, aber auch passende Nutzernamen, Anzeigenamen oder Hashtags.",
@ -461,6 +468,7 @@
"status.embed": "Einbetten",
"status.favourite": "Favorisieren",
"status.filtered": "Gefiltert",
"status.hide": "Hide toot",
"status.history.created": "{name} erstellte {date}",
"status.history.edited": "{name} bearbeitete {date}",
"status.load_more": "Weitere laden",
@ -484,6 +492,7 @@
"status.report": "@{name} melden",
"status.sensitive_warning": "NSFW",
"status.share": "Teilen",
"status.show_filter_reason": "Show anyway",
"status.show_less": "Weniger anzeigen",
"status.show_less_all": "Alle Inhaltswarnungen zuklappen",
"status.show_more": "Mehr anzeigen",

View file

@ -612,6 +612,10 @@
"defaultMessage": "Copy link to status",
"id": "status.copy"
},
{
"defaultMessage": "Hide toot",
"id": "status.hide"
},
{
"defaultMessage": "Block domain {domain}",
"id": "account.block_domain"
@ -678,6 +682,10 @@
"defaultMessage": "Filtered",
"id": "status.filtered"
},
{
"defaultMessage": "Show anyway",
"id": "status.show_filter_reason"
},
{
"defaultMessage": "Pinned post",
"id": "status.pinned"

View file

@ -314,6 +314,7 @@
"navigation_bar.preferences": "Προτιμήσεις",
"navigation_bar.public_timeline": "Ομοσπονδιακή ροή",
"navigation_bar.security": "Ασφάλεια",
"notification.admin.report": "{name} ανέφερε {target}",
"notification.admin.sign_up": "{name} έχει εγγραφεί",
"notification.favourite": "Ο/Η {name} σημείωσε ως αγαπημένη την κατάστασή σου",
"notification.follow": "Ο/Η {name} σε ακολούθησε",
@ -326,6 +327,7 @@
"notification.update": "{name} επεξεργάστηκε μια δημοσίευση",
"notifications.clear": "Καθαρισμός ειδοποιήσεων",
"notifications.clear_confirmation": "Σίγουρα θέλεις να καθαρίσεις όλες τις ειδοποιήσεις σου;",
"notifications.column_settings.admin.report": "Νέες αναφορές:",
"notifications.column_settings.admin.sign_up": "Νέες εγγραφές:",
"notifications.column_settings.alert": "Ειδοποιήσεις επιφάνειας εργασίας",
"notifications.column_settings.favourite": "Αγαπημένα:",
@ -431,6 +433,11 @@
"report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
"report.unfollow": "Unfollow @{name}",
"report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.other": "Άλλες",
"report_notification.categories.spam": "Ανεπιθύμητα",
"report_notification.categories.violation": "Παραβίαση κανόνα",
"report_notification.open": "Open report",
"search.placeholder": "Αναζήτηση",
"search_popout.search_format": "Προχωρημένη αναζήτηση",
"search_popout.tips.full_text": "Απλό κείμενο που επιστρέφει καταστάσεις που έχεις γράψει, έχεις σημειώσει ως αγαπημένες, έχεις προωθήσει ή έχεις αναφερθεί σε αυτές, καθώς και όσα ονόματα χρηστών και ετικέτες ταιριάζουν.",
@ -461,6 +468,7 @@
"status.embed": "Ενσωμάτωσε",
"status.favourite": "Σημείωσε ως αγαπημένο",
"status.filtered": "Φιλτραρισμένα",
"status.hide": "Απόκρυψη toot",
"status.history.created": "{name} created {date}",
"status.history.edited": "{name} edited {date}",
"status.load_more": "Φόρτωσε περισσότερα",
@ -484,6 +492,7 @@
"status.report": "Κατάγγειλε @{name}",
"status.sensitive_warning": "Ευαίσθητο περιεχόμενο",
"status.share": "Μοιράσου",
"status.show_filter_reason": "Εμφάνιση παρ'όλα αυτά",
"status.show_less": "Δείξε λιγότερα",
"status.show_less_all": "Δείξε λιγότερα για όλα",
"status.show_more": "Δείξε περισσότερα",

View file

@ -314,6 +314,7 @@
"navigation_bar.preferences": "Preferences",
"navigation_bar.public_timeline": "Federated timeline",
"navigation_bar.security": "Security",
"notification.admin.report": "{name} reported {target}",
"notification.admin.sign_up": "{name} signed up",
"notification.favourite": "{name} favourited your status",
"notification.follow": "{name} followed you",
@ -326,6 +327,7 @@
"notification.update": "{name} edited a post",
"notifications.clear": "Clear notifications",
"notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
"notifications.column_settings.admin.report": "New reports:",
"notifications.column_settings.admin.sign_up": "New sign-ups:",
"notifications.column_settings.alert": "Desktop notifications",
"notifications.column_settings.favourite": "Favourites:",
@ -431,6 +433,11 @@
"report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
"report.unfollow": "Unfollow @{name}",
"report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.other": "Other",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report",
"search.placeholder": "Search",
"search_popout.search_format": "Advanced search 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.",
@ -461,6 +468,7 @@
"status.embed": "Embed",
"status.favourite": "Favourite",
"status.filtered": "Filtered",
"status.hide": "Hide toot",
"status.history.created": "{name} created {date}",
"status.history.edited": "{name} edited {date}",
"status.load_more": "Load more",
@ -484,6 +492,7 @@
"status.report": "Report @{name}",
"status.sensitive_warning": "Sensitive content",
"status.share": "Share",
"status.show_filter_reason": "Show anyway",
"status.show_less": "Show less",
"status.show_less_all": "Show less for all",
"status.show_more": "Show more",

View file

@ -473,6 +473,7 @@
"status.embed": "Embed",
"status.favourite": "Favourite",
"status.filtered": "Filtered",
"status.hide": "Hide toot",
"status.history.created": "{name} created {date}",
"status.history.edited": "{name} edited {date}",
"status.load_more": "Load more",
@ -496,6 +497,7 @@
"status.report": "Report @{name}",
"status.sensitive_warning": "Sensitive content",
"status.share": "Share",
"status.show_filter_reason": "Show anyway",
"status.show_less": "Show less",
"status.show_less_all": "Show less for all",
"status.show_more": "Show more",

View file

@ -4,12 +4,12 @@
"account.badges.bot": "Roboto",
"account.badges.group": "Grupo",
"account.block": "Bloki @{name}",
"account.block_domain": "Bloki domajnon {domain}",
"account.block_domain": "Bloki la domajnon {domain}",
"account.blocked": "Blokita",
"account.browse_more_on_origin_server": "Vidi pli ĉe la originala profilo",
"account.browse_more_on_origin_server": "Foliumi pli ĉe la originala profilo",
"account.cancel_follow_request": "Nuligi la demandon de sekvado",
"account.direct": "Rekte mesaĝi @{name}",
"account.disable_notifications": "Ĉesu sciigi min kiam @{name} mesaĝi",
"account.disable_notifications": "Ne plu sciigi min kiam @{name} mesaĝas",
"account.domain_blocked": "Domajno blokita",
"account.edit_profile": "Redakti la profilon",
"account.enable_notifications": "Sciigi min kiam @{name} mesaĝas",
@ -18,9 +18,9 @@
"account.followers": "Sekvantoj",
"account.followers.empty": "Ankoraŭ neniu sekvas tiun uzanton.",
"account.followers_counter": "{count, plural, one{{counter} Sekvanto} other {{counter} Sekvantoj}}",
"account.following": "Sekvantaj",
"account.following_counter": "{count, plural, one {{counter} Sekvato} other {{counter} Sekvatoj}}",
"account.follows.empty": "Tiu uzanto ankoraŭ ne sekvas iun.",
"account.following": "Sekvadoj",
"account.following_counter": "{count, plural, one {{counter} Sekvado} other {{counter} Sekvadoj}}",
"account.follows.empty": "La uzanto ankoraŭ ne sekvas iun ajn.",
"account.follows_you": "Sekvas vin",
"account.hide_reblogs": "Kaŝi la plusendojn de @{name}",
"account.joined": "Kuniĝis {date}",
@ -35,17 +35,17 @@
"account.posts": "Mesaĝoj",
"account.posts_with_replies": "Mesaĝoj kaj respondoj",
"account.report": "Raporti @{name}",
"account.requested": "Atendo de aprobo. Alklaku por nuligi peton de sekvado",
"account.requested": "Atendo de aprobo. Klaku por nuligi la demandon de sekvado",
"account.share": "Kundividi la profilon de @{name}",
"account.show_reblogs": "Montri la plusendojn de @{name}",
"account.statuses_counter": "{count, plural, one {{counter} Mesaĝo} other {{counter} Mesaĝoj}}",
"account.unblock": "Malbloki @{name}",
"account.unblock_domain": "Malbloki {domain}",
"account.unblock_domain": "Malbloki la domajnon {domain}",
"account.unblock_short": "Malbloki",
"account.unendorse": "Ne rekomendi ĉe la profilo",
"account.unendorse": "Ne plu rekomendi ĉe la profilo",
"account.unfollow": "Ne plu sekvi",
"account.unmute": "Ne plu silentigi @{name}",
"account.unmute_notifications": "Reebligi la sciigojn de @{name}",
"account.unmute_notifications": "Ne plu silentigi la sciigojn de @{name}",
"account.unmute_short": "Ne plu silentigi",
"account_note.placeholder": "Klaku por aldoni noton",
"admin.dashboard.daily_retention": "User retention rate by day after sign-up",
@ -71,7 +71,7 @@
"column.bookmarks": "Legosignoj",
"column.community": "Loka templinio",
"column.direct": "Rektaj mesaĝoj",
"column.directory": "Trarigardi profilojn",
"column.directory": "Foliumi la profilojn",
"column.domain_blocks": "Blokitaj domajnoj",
"column.favourites": "Preferaĵoj",
"column.follow_requests": "Demandoj de sekvado",
@ -80,7 +80,7 @@
"column.mutes": "Silentigitaj uzantoj",
"column.notifications": "Sciigoj",
"column.pins": "Alpinglitaj mesaĝoj",
"column.public": "Federata templinio",
"column.public": "Fratara templinio",
"column_back_button.label": "Reveni",
"column_header.hide_settings": "Kaŝi la agordojn",
"column_header.moveLeft_settings": "Movi kolumnon maldekstren",
@ -95,25 +95,25 @@
"compose.language.change": "Ŝanĝi lingvon",
"compose.language.search": "Serĉi lingvojn...",
"compose_form.direct_message_warning_learn_more": "Lerni pli",
"compose_form.encryption_warning": "La mesaĵoj en Mastodono ne estas ĉifrita de tutvojo. Ne kundividu sentemajn informojn ĉe Mastodono.",
"compose_form.encryption_warning": "La mesaĵoj en Mastodon ne estas tutvoje ĉifritaj. Ne kundividu tiklajn informojn ĉe Mastodon.",
"compose_form.hashtag_warning": "Ĉi tiu mesaĝo ne estos listigita per ajna kradvorto. Nur publikaj mesaĝoj estas serĉeblaj per kradvortoj.",
"compose_form.lock_disclaimer": "Via konto ne estas {locked}. Iu ajn povas sekvi vin por vidi viajn mesaĝojn nur al la sekvantoj.",
"compose_form.lock_disclaimer.lock": "ŝlosita",
"compose_form.placeholder": "Kion vi pensas?",
"compose_form.poll.add_option": "Aldoni elekteblon",
"compose_form.poll.duration": "Balotenketa daŭro",
"compose_form.poll.duration": "Daŭro de la balotenketo",
"compose_form.poll.option_placeholder": "Elekteblo {number}",
"compose_form.poll.remove_option": "Forigi ĉi tiu elekteblon",
"compose_form.poll.switch_to_multiple": "Ŝanĝi la balotenketon por permesi multajn elektojn",
"compose_form.poll.switch_to_single": "Ŝanĝi la balotenketon por permesi unu solan elekton",
"compose_form.publish": "Publish",
"compose_form.publish": "Publikigi",
"compose_form.publish_loud": "{publish}!",
"compose_form.save_changes": "Konservi ŝanĝojn",
"compose_form.sensitive.hide": "Marki la aŭdovidaĵojn kiel tiklaj",
"compose_form.sensitive.marked": "Aŭdovidaĵo markita tikla",
"compose_form.sensitive.unmarked": "Aŭdovidaĵo ne markita tikla",
"compose_form.spoiler.marked": "Teksto kaŝita malantaŭ averto",
"compose_form.spoiler.unmarked": "Teksto ne kaŝita",
"compose_form.save_changes": "Konservi la ŝanĝojn",
"compose_form.sensitive.hide": "{count, plural, one {Marki la aŭdovidaĵon kiel tikla} other {Marki la aŭdovidaĵojn kiel tikla}}",
"compose_form.sensitive.marked": "{count, plural, one {La aŭdovidaĵo estas markita kiel tikla} other {La aŭdovidaĵoj estas markitaj kiel tikla}}",
"compose_form.sensitive.unmarked": "{count, plural, one {La aŭdovidaĵo ne estas markita kiel tikla} other {La aŭdovidaĵoj ne estas markitaj kiel tikla}}",
"compose_form.spoiler.marked": "Forigi la averton de enhavo",
"compose_form.spoiler.unmarked": "Aldoni averton de enhavo",
"compose_form.spoiler_placeholder": "Skribu vian averton ĉi tie",
"confirmation_modal.cancel": "Nuligi",
"confirmations.block.block_and_report": "Bloki kaj raporti",
@ -123,8 +123,8 @@
"confirmations.delete.message": "Ĉu vi certas, ke vi volas forigi ĉi tiun mesaĝon?",
"confirmations.delete_list.confirm": "Forigi",
"confirmations.delete_list.message": "Ĉu vi certas, ke vi volas porĉiame forigi ĉi tiun liston?",
"confirmations.discard_edit_media.confirm": "Ne konservi",
"confirmations.discard_edit_media.message": "Vi havas nekonservitan ŝanĝon de la priskribo aŭ de la antaŭvido de aŭdvidaĵo, ĉu vi forigu ĝin?",
"confirmations.discard_edit_media.confirm": "Forlasi",
"confirmations.discard_edit_media.message": "Vi havas nekonservitajn ŝanĝojn de la priskribo aŭ de la antaŭmontro de la aŭdovidaĵo, ĉu vi forlasu ilin ĉiuokaze?",
"confirmations.domain_block.confirm": "Bloki la tutan domajnon",
"confirmations.domain_block.message": "Ĉu vi vere, vere certas, ke vi volas tute bloki {domain}? Plej ofte, trafa blokado kaj silentigado sufiĉas kaj preferindas. Vi ne vidos enhavon de tiu domajno en publika templinio aŭ en viaj sciigoj. Viaj sekvantoj de tiu domajno estos forigitaj.",
"confirmations.logout.confirm": "Adiaŭi",
@ -133,7 +133,7 @@
"confirmations.mute.explanation": "Ĉi-tio kaŝos mesaĝojn el ili kaj mesaĝojn kiuj mencias ilin, sed ili ankoraŭ rajtos vidi viajn mesaĝojn kaj sekvi vin.",
"confirmations.mute.message": "Ĉu vi certas, ke vi volas silentigi {name}?",
"confirmations.redraft.confirm": "Forigi kaj reskribi",
"confirmations.redraft.message": "Ĉu vi certas ke vi volas forigi kaj reskribi la mesaĝon? Ĝiaj preferitaĵoj kaj ĝiaj plusendoj estos perditaj, kaj la respondoj al la originala mesaĝo estos orfaj.",
"confirmations.redraft.message": "Ĉu vi certas ke vi volas forigi tiun mesaĝon kaj reskribi ĝin? Ĉiuj diskonigoj kaj stelumoj estos perditaj, kaj respondoj al la originala mesaĝo estos senparentaj.",
"confirmations.reply.confirm": "Respondi",
"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",
@ -163,7 +163,7 @@
"emoji_button.search_results": "Serĉaj rezultoj",
"emoji_button.symbols": "Simboloj",
"emoji_button.travel": "Vojaĝoj kaj lokoj",
"empty_column.account_suspended": "Konto haltigita",
"empty_column.account_suspended": "Konto suspendita",
"empty_column.account_timeline": "Neniu mesaĝo ĉi tie!",
"empty_column.account_unavailable": "Profilo ne disponebla",
"empty_column.blocks": "Vi ankoraŭ ne blokis uzanton.",
@ -172,10 +172,10 @@
"empty_column.direct": "Vi ankoraŭ ne havas rektan mesaĝon. Kiam vi sendos aŭ ricevos iun, ĝi aperos ĉi tie.",
"empty_column.domain_blocks": "Ankoraŭ neniu domajno estas blokita.",
"empty_column.explore_statuses": "Nenio tendencas nun. Rekontrolu poste!",
"empty_column.favourited_statuses": "Vi ankoraŭ ne havas mesaĝon en la preferaĵoj. Kiam vi aldonas ion, ĝi aperos ĉi tie.",
"empty_column.favourites": "Ankoraŭ neniu preferis la mesaĝon. Kiam iu faros ĉi tion, ili aperos ĉi tie.",
"empty_column.favourited_statuses": "Vi ankoraŭ ne havas mesaĝon en la preferaĵoj. Kiam vi aldonas iun, tiu aperos ĉi tie.",
"empty_column.favourites": "Ankoraŭ neniu aldonis tiun mesaĝon al siaj preferaĵoj. Kiam iu faros ĉi tion, tiu aperos ĉi tie.",
"empty_column.follow_recommendations": "Ŝajnas, ke neniuj sugestoj povis esti generitaj por vi. Vi povas provi uzi serĉon por serĉi homojn, kiujn vi eble konas, aŭ esplori tendencajn kradvortojn.",
"empty_column.follow_requests": "Vi ne ankoraŭ havas iun peton de sekvado. Kiam vi ricevos unu, ĝi aperos ĉi tie.",
"empty_column.follow_requests": "Vi ankoraŭ ne havas demandon de sekvado. Kiam vi ricevas unu, ĝi aperas tie ĉi.",
"empty_column.hashtag": "Ankoraŭ estas nenio per ĉi tiu kradvorto.",
"empty_column.home": "Via hejma tempolinio estas malplena! Vizitu {public} aŭ uzu la serĉilon por renkonti aliajn uzantojn.",
"empty_column.home.suggestions": "Vidu iujn sugestojn",
@ -197,11 +197,11 @@
"explore.trending_statuses": "Afiŝoj",
"explore.trending_tags": "Kradvortoj",
"follow_recommendations.done": "Farita",
"follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.",
"follow_recommendations.lead": "La mesaĝoj de personoj kiujn vi sekvas, kronologie aperos en via hejma templinio. Ne timu erari, vi povas ĉesi sekvi facile iam ajn!",
"follow_recommendations.heading": "Sekvi la personojn kies mesaĝojn vi volas vidi! Jen iom da sugestoj.",
"follow_recommendations.lead": "La mesaĝoj de personoj kiujn vi sekvas, aperos laŭ kronologia ordo en via hejma templinio. Ne timu erari, vi povas ĉesi sekvi facile iam ajn!",
"follow_request.authorize": "Rajtigi",
"follow_request.reject": "Rifuzi",
"follow_requests.unlocked_explanation": "Kvankam via konto ne estas ŝlosita, la teamo de {domain} pensis ke vi eble volas permane kontroli la demandojn de sekvado de ĉi tiuj kontoj.",
"follow_requests.unlocked_explanation": "Kvankam via konto ne estas ŝlosita, la teamo de {domain} pensas, ke vi eble volas permane kontroli la demandojn de sekvado de ĉi tiuj kontoj.",
"generic.saved": "Konservita",
"getting_started.developers": "Programistoj",
"getting_started.directory": "Profilujo",
@ -210,7 +210,7 @@
"getting_started.invite": "Inviti homojn",
"getting_started.open_source_notice": "Mastodon estas malfermitkoda programo. Vi povas kontribui aŭ raporti problemojn en GitHub je {github}.",
"getting_started.security": "Sekureco",
"getting_started.terms": "Uzkondiĉoj",
"getting_started.terms": "Kondiĉoj de la servo",
"hashtag.column_header.tag_mode.all": "kaj {additional}",
"hashtag.column_header.tag_mode.any": "aŭ {additional}",
"hashtag.column_header.tag_mode.none": "sen {additional}",
@ -223,14 +223,14 @@
"home.column_settings.basic": "Bazaj agordoj",
"home.column_settings.show_reblogs": "Montri plusendojn",
"home.column_settings.show_replies": "Montri respondojn",
"home.hide_announcements": "Kaŝi anoncojn",
"home.hide_announcements": "Kaŝi la anoncojn",
"home.show_announcements": "Montri anoncojn",
"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}}",
"keyboard_shortcuts.back": "reveni",
"keyboard_shortcuts.blocked": "malfermi la liston de blokitaj uzantoj",
"keyboard_shortcuts.boost": "Plusendi",
"keyboard_shortcuts.blocked": "Malfermi la liston de blokitaj uzantoj",
"keyboard_shortcuts.boost": "Plusendi la mesaĝon",
"keyboard_shortcuts.column": "fokusi mesaĝon en unu el la kolumnoj",
"keyboard_shortcuts.compose": "enfokusigi la tekstujon",
"keyboard_shortcuts.description": "Priskribo",
@ -239,7 +239,7 @@
"keyboard_shortcuts.enter": "malfermi mesaĝon",
"keyboard_shortcuts.favourite": "Aldoni la mesaĝon al preferaĵoj",
"keyboard_shortcuts.favourites": "Malfermi la liston de preferaĵoj",
"keyboard_shortcuts.federated": "Malfermi la federatan templinion",
"keyboard_shortcuts.federated": "Malfermi la frataran templinion",
"keyboard_shortcuts.heading": "Klavaraj mallongigoj",
"keyboard_shortcuts.home": "Malfermi la hejman templinion",
"keyboard_shortcuts.hotkey": "Rapidklavo",
@ -249,26 +249,26 @@
"keyboard_shortcuts.muted": "malfermi la liston de silentigitaj uzantoj",
"keyboard_shortcuts.my_profile": "malfermi vian profilon",
"keyboard_shortcuts.notifications": "malfermi la kolumnon de sciigoj",
"keyboard_shortcuts.open_media": "malfermi aŭdovidaĵon",
"keyboard_shortcuts.open_media": "Malfermi la aŭdovidaĵon",
"keyboard_shortcuts.pinned": "malfermi la liston de alpinglitaj mesaĝoj",
"keyboard_shortcuts.profile": "malfermi la profilon de la aŭtoro",
"keyboard_shortcuts.reply": "respondi",
"keyboard_shortcuts.requests": "malfermi la liston de petoj de sekvado",
"keyboard_shortcuts.requests": "Malfermi la liston de demandoj de sekvado",
"keyboard_shortcuts.search": "enfokusigi la serĉilon",
"keyboard_shortcuts.spoilers": "montri/kaŝi la kampon de enhava averto",
"keyboard_shortcuts.spoilers": "Montri/kaŝi la kampon de averto de enhavo (\"CW\")",
"keyboard_shortcuts.start": "malfermi la kolumnon «por komenci»",
"keyboard_shortcuts.toggle_hidden": "montri/kaŝi tekston malantaŭ enhava averto",
"keyboard_shortcuts.toggle_sensitivity": "montri/kaŝi aŭdovidaĵojn",
"keyboard_shortcuts.toggle_hidden": "Montri/kaŝi tekston malantaŭ la averto de enhavo (\"CW\")",
"keyboard_shortcuts.toggle_sensitivity": "Montri/kaŝi la aŭdovidaĵojn",
"keyboard_shortcuts.toot": "Krei novan mesaĝon",
"keyboard_shortcuts.unfocus": "malenfokusigi la tekstujon aŭ la serĉilon",
"keyboard_shortcuts.up": "iri supren en la listo",
"lightbox.close": "Fermi",
"lightbox.compress": "Kunpremi bildan vidkeston",
"lightbox.expand": "Pligrandigi bildan vidkeston",
"lightbox.next": "Sekva",
"lightbox.previous": "Antaŭa",
"lightbox.next": "Antaŭen",
"lightbox.previous": "Malantaŭen",
"limited_account_hint.action": "Montru profilon ĉiukaze",
"limited_account_hint.title": "This profile has been hidden by the moderators of your server.",
"limited_account_hint.title": "La profilo estas kaŝita de la moderigantoj de via servilo.",
"lists.account.add": "Aldoni al la listo",
"lists.account.remove": "Forigi de la listo",
"lists.delete": "Forigi la liston",
@ -284,7 +284,7 @@
"lists.subheading": "Viaj listoj",
"load_pending": "{count,plural, one {# nova elemento} other {# novaj elementoj}}",
"loading_indicator.label": "Ŝargado…",
"media_gallery.toggle_visible": "Baskuligi videblecon",
"media_gallery.toggle_visible": "{number, plural, one {Kaŝi la bildon} other {Kaŝi la bildojn}}",
"missing_indicator.label": "Ne trovita",
"missing_indicator.sublabel": "Ĉi tiu elemento ne estis trovita",
"mute_modal.duration": "Daŭro",
@ -300,9 +300,9 @@
"navigation_bar.domain_blocks": "Blokitaj domajnoj",
"navigation_bar.edit_profile": "Redakti profilon",
"navigation_bar.explore": "Esplori",
"navigation_bar.favourites": "Stelumoj",
"navigation_bar.favourites": "Preferaĵoj",
"navigation_bar.filters": "Silentigitaj vortoj",
"navigation_bar.follow_requests": "Petoj de sekvado",
"navigation_bar.follow_requests": "Demandoj de sekvado",
"navigation_bar.follows_and_followers": "Sekvatoj kaj sekvantoj",
"navigation_bar.info": "Pri ĉi tiu servilo",
"navigation_bar.keyboard_shortcuts": "Rapidklavoj",
@ -312,10 +312,11 @@
"navigation_bar.personal": "Persone",
"navigation_bar.pins": "Alpinglitaj mesaĝoj",
"navigation_bar.preferences": "Preferoj",
"navigation_bar.public_timeline": "Federata templinio",
"navigation_bar.public_timeline": "Fratara templinio",
"navigation_bar.security": "Sekureco",
"notification.admin.report": "{name} raportis {target}",
"notification.admin.sign_up": "{name} registris",
"notification.favourite": "{name} preferis vian mesaĝon",
"notification.favourite": "{name} aldonis vian mesaĝon al siaj preferaĵoj",
"notification.follow": "{name} eksekvis vin",
"notification.follow_request": "{name} petis sekvi vin",
"notification.mention": "{name} menciis vin",
@ -326,14 +327,15 @@
"notification.update": "{name} redaktis afiŝon",
"notifications.clear": "Forviŝi sciigojn",
"notifications.clear_confirmation": "Ĉu vi certas, ke vi volas porĉiame forviŝi ĉiujn viajn sciigojn?",
"notifications.column_settings.admin.report": "Novaj raportoj:",
"notifications.column_settings.admin.sign_up": "Novaj registriĝoj:",
"notifications.column_settings.alert": "Retumilaj sciigoj",
"notifications.column_settings.alert": "Sciigoj de la retumilo",
"notifications.column_settings.favourite": "Preferaĵoj:",
"notifications.column_settings.filter_bar.advanced": "Montri ĉiujn kategoriojn",
"notifications.column_settings.filter_bar.category": "Rapida filtra breto",
"notifications.column_settings.filter_bar.show_bar": "Montri la breton de filtrilo",
"notifications.column_settings.follow": "Novaj sekvantoj:",
"notifications.column_settings.follow_request": "Novaj petoj de sekvado:",
"notifications.column_settings.follow_request": "Novaj demandoj de sekvado:",
"notifications.column_settings.mention": "Mencioj:",
"notifications.column_settings.poll": "Balotenketaj rezultoj:",
"notifications.column_settings.push": "Puŝsciigoj",
@ -372,19 +374,19 @@
"poll_button.remove_poll": "Forigi balotenketon",
"privacy.change": "Agordi mesaĝan privatecon",
"privacy.direct.long": "Videbla nur al menciitaj uzantoj",
"privacy.direct.short": "Direct",
"privacy.direct.short": "Nur menciitaj personoj",
"privacy.private.long": "Videbla nur al viaj sekvantoj",
"privacy.private.short": "Nur abonantoj",
"privacy.public.long": "Videbla por ĉiuj",
"privacy.public.short": "Publika",
"privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
"privacy.unlisted.long": "Videbla por ĉiuj, sed ekskluzive de la funkcio de esploro",
"privacy.unlisted.short": "Nelistigita",
"refresh": "Refreŝigu",
"regeneration_indicator.label": "Ŝargado…",
"regeneration_indicator.sublabel": "Via abonfluo estas preparata!",
"relative_time.days": "{number}t",
"relative_time.full.days": "{number, plural, one {# day} other {# days}} ago",
"relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago",
"relative_time.full.days": "antaŭ {number, plural, one {# tago} other {# tagoj}}",
"relative_time.full.hours": "antaŭ {number, plural, one {# horo} other {# horoj}}",
"relative_time.full.just_now": "ĵus nun",
"relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago",
"relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago",
@ -397,7 +399,7 @@
"report.block": "Bloki",
"report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
"report.categories.other": "Aliaj",
"report.categories.spam": "Trudo",
"report.categories.spam": "Trudmesaĝo",
"report.categories.violation": "Content violates one or more server rules",
"report.category.subtitle": "Elektu la plej bonan kongruon",
"report.category.title": "Diru al ni kio okazas pri ĉi tiu {type}",
@ -406,10 +408,10 @@
"report.close": "Farita",
"report.comment.title": "Ĉu estas io alia kion vi pensas ke ni devas scii?",
"report.forward": "Plusendi al {target}",
"report.forward_hint": "La konto estas de alia servilo. Ĉu vi volas sendi anoniman kopion de la informo ankaŭ al tie?",
"report.forward_hint": "La konto estas de alia servilo. Ĉu vi volas sendi anoniman kopion de la raporto ankaŭ al tie?",
"report.mute": "Silentigi",
"report.mute_explanation": "Vi ne vidos iliajn afiŝojn. Ili ankoraŭ povas sekvi vin kaj vidi viajn afiŝojn, kaj ne scios ke ili estas silentigitaj.",
"report.next": "Sekva",
"report.next": "Antaŭen",
"report.placeholder": "Pliaj komentoj",
"report.reasons.dislike": "Mi ne ŝatas ĝin",
"report.reasons.dislike_description": "Ĝi ne estas io, kiun vi volas vidi",
@ -424,13 +426,18 @@
"report.statuses.subtitle": "Elektu ĉiujn, kiuj validas",
"report.statuses.title": "Are there any posts that back up this report?",
"report.submit": "Sendi",
"report.target": "Raporto pri {target}",
"report.target": "Raporti pri {target}",
"report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:",
"report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:",
"report.thanks.title": "Ĉu vi ne volas vidi ĉi tion?",
"report.thanks.title_actionable": "Dankon pro raporti, ni esploros ĉi tion.",
"report.unfollow": "Malsekvi @{name}",
"report.unfollow_explanation": "Vi sekvas ĉi tiun konton. Por ne plu vidi ĝiajn abonfluojn en via hejma templinio, ĉesu sekvi ĝin.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.other": "Alia",
"report_notification.categories.spam": "Trudmesaĝo",
"report_notification.categories.violation": "Malobservo de la regulo",
"report_notification.open": "Malfermi la raporton",
"search.placeholder": "Serĉi",
"search_popout.search_format": "Detala serĉo",
"search_popout.tips.full_text": "Simplaj tekstoj montras la mesaĝojn, kiujn vi skribis, stelumis, diskonigis, aŭ en kiuj vi estis menciita, sed ankaŭ kongruajn uzantnomojn, montratajn nomojn, kaj kradvortojn.",
@ -459,8 +466,9 @@
"status.edited": "Redaktita {date}",
"status.edited_x_times": "Redactita {count, plural, one {{count} fojon} other {{count} fojojn}}",
"status.embed": "Enkorpigi",
"status.favourite": "Preferaĵo",
"status.favourite": "Aldoni al viaj preferaĵoj",
"status.filtered": "Filtrita",
"status.hide": "Kaŝi la mesaĝon",
"status.history.created": "{name} kreis {date}",
"status.history.edited": "{name} redaktis {date}",
"status.load_more": "Ŝargi pli",
@ -474,9 +482,9 @@
"status.pinned": "Alpinglita mesaĝo",
"status.read_more": "Legi pli",
"status.reblog": "Plusendi",
"status.reblog_private": "Plusendi kiel la originala videbleco",
"status.reblog_private": "Plusendi kun la originala videbleco",
"status.reblogged_by": "{name} plusendis",
"status.reblogs.empty": "Neniu ankoraŭ plusendis la mesaĝon. Kiam iu faros tion, ili aperos ĉi tie.",
"status.reblogs.empty": "Ankoraŭ neniu plusendis la mesaĝon. Kiam iu faras tion, ili aperos ĉi tie.",
"status.redraft": "Forigi kaj reskribi",
"status.remove_bookmark": "Forigi legosignon",
"status.reply": "Respondi",
@ -484,6 +492,7 @@
"status.report": "Raporti @{name}",
"status.sensitive_warning": "Tikla enhavo",
"status.share": "Kundividi",
"status.show_filter_reason": "Ĉial montri",
"status.show_less": "Montri malpli",
"status.show_less_all": "Montri malpli ĉiun",
"status.show_more": "Montri pli",
@ -494,7 +503,7 @@
"status.unpin": "Depingli de profilo",
"suggestions.dismiss": "Forigi la proponon",
"suggestions.header": "Vi povus interesiĝi pri…",
"tabs_bar.federated_timeline": "Federata",
"tabs_bar.federated_timeline": "Fratara",
"tabs_bar.home": "Hejmo",
"tabs_bar.local_timeline": "Loka templinio",
"tabs_bar.notifications": "Sciigoj",
@ -531,7 +540,7 @@
"upload_modal.choose_image": "Elekti bildon",
"upload_modal.description_placeholder": "Laŭ Ludoviko Zamenhof bongustas freŝa ĉeĥa manĝaĵo kun spicoj",
"upload_modal.detect_text": "Detekti tekston de la bildo",
"upload_modal.edit_media": "Redakti aŭdovidaĵon",
"upload_modal.edit_media": "Redakti la aŭdovidaĵon",
"upload_modal.hint": "Klaku aŭ trenu la cirklon en la antaŭvidilo por elekti la fokuspunkton kiu ĉiam videblos en ĉiuj etigitaj bildoj.",
"upload_modal.preparing_ocr": "Preparante OSR…",
"upload_modal.preview_label": "Antaŭvido ({ratio})",

View file

@ -314,6 +314,7 @@
"navigation_bar.preferences": "Configuración",
"navigation_bar.public_timeline": "Línea temporal federada",
"navigation_bar.security": "Seguridad",
"notification.admin.report": "{name} denunció a {target}",
"notification.admin.sign_up": "Se registró {name}",
"notification.favourite": "{name} marcó tu mensaje como favorito",
"notification.follow": "{name} te empezó a seguir",
@ -326,6 +327,7 @@
"notification.update": "{name} editó un mensaje",
"notifications.clear": "Limpiar notificaciones",
"notifications.clear_confirmation": "¿Estás seguro que querés limpiar todas tus notificaciones permanentemente?",
"notifications.column_settings.admin.report": "Nuevas denuncias:",
"notifications.column_settings.admin.sign_up": "Nuevos registros:",
"notifications.column_settings.alert": "Notificaciones de escritorio",
"notifications.column_settings.favourite": "Favoritos:",
@ -431,6 +433,11 @@
"report.thanks.title_actionable": "Gracias por tu denuncia, vamos a revisarla.",
"report.unfollow": "Dejar de seguir a @{name}",
"report.unfollow_explanation": "Estás siguiendo a esta cuenta. Para no ver sus mensajes en tu línea temporal principal, dejá de seguirla.",
"report_notification.attached_statuses": "{count, plural, one {{count} mensaje adjunto} other {{count} mensajes adjuntos}}",
"report_notification.categories.other": "Otros",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Violación de regla",
"report_notification.open": "Abrir denuncia",
"search.placeholder": "Buscar",
"search_popout.search_format": "Formato de búsqueda avanzada",
"search_popout.tips.full_text": "Las búsquedas de texto simple devuelven los mensajes que escribiste, los marcados como favoritos, los adheridos o en los que te mencionaron, así como nombres de usuarios, nombres mostrados y etiquetas.",
@ -461,6 +468,7 @@
"status.embed": "Insertar",
"status.favourite": "Marcar como favorito",
"status.filtered": "Filtrado",
"status.hide": "Ocultar mensaje",
"status.history.created": "Creado por {name} el {date}",
"status.history.edited": "Editado por {name} el {date}",
"status.load_more": "Cargar más",
@ -484,6 +492,7 @@
"status.report": "Denunciar a @{name}",
"status.sensitive_warning": "Contenido sensible",
"status.share": "Compartir",
"status.show_filter_reason": "Mostrar de todos modos",
"status.show_less": "Mostrar menos",
"status.show_less_all": "Mostrar menos para todo",
"status.show_more": "Mostrar más",

View file

@ -314,6 +314,7 @@
"navigation_bar.preferences": "Preferencias",
"navigation_bar.public_timeline": "Historia federada",
"navigation_bar.security": "Seguridad",
"notification.admin.report": "{name} informó {target}",
"notification.admin.sign_up": "{name} se unio",
"notification.favourite": "{name} marcó tu estado como favorito",
"notification.follow": "{name} te empezó a seguir",
@ -326,6 +327,7 @@
"notification.update": "{name} editó una publicación",
"notifications.clear": "Limpiar notificaciones",
"notifications.clear_confirmation": "¿Seguro que quieres limpiar permanentemente todas tus notificaciones?",
"notifications.column_settings.admin.report": "Nuevos informes:",
"notifications.column_settings.admin.sign_up": "Registros nuevos:",
"notifications.column_settings.alert": "Notificaciones de escritorio",
"notifications.column_settings.favourite": "Favoritos:",
@ -431,6 +433,11 @@
"report.thanks.title_actionable": "Gracias por informar, estudiaremos esto.",
"report.unfollow": "Dejar de seguir @{name}",
"report.unfollow_explanation": "Estás siguiendo esta cuenta. Para no ver sus publicaciones en tu sección de noticias, deja de seguirlo.",
"report_notification.attached_statuses": "{count, plural, one {{count} publicación} other {{count} publicaciones}} adjunta(s)",
"report_notification.categories.other": "Otros",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Infracción de regla",
"report_notification.open": "Abrir informe",
"search.placeholder": "Buscar",
"search_popout.search_format": "Formato de búsqueda avanzada",
"search_popout.tips.full_text": "Búsquedas de texto recuperan posts que has escrito, marcado como favoritos, retooteado o en los que has sido mencionado, así como usuarios, nombres y hashtags.",
@ -461,6 +468,7 @@
"status.embed": "Incrustado",
"status.favourite": "Favorito",
"status.filtered": "Filtrado",
"status.hide": "Hide toot",
"status.history.created": "{name} creó {date}",
"status.history.edited": "{name} editado {date}",
"status.load_more": "Cargar más",
@ -484,6 +492,7 @@
"status.report": "Reportar",
"status.sensitive_warning": "Contenido sensible",
"status.share": "Compartir",
"status.show_filter_reason": "Show anyway",
"status.show_less": "Mostrar menos",
"status.show_less_all": "Mostrar menos para todo",
"status.show_more": "Mostrar más",

View file

@ -314,6 +314,7 @@
"navigation_bar.preferences": "Preferencias",
"navigation_bar.public_timeline": "Línea de tiempo federada",
"navigation_bar.security": "Seguridad",
"notification.admin.report": "{name} informó {target}",
"notification.admin.sign_up": "{name} se registró",
"notification.favourite": "{name} marcó tu estado como favorito",
"notification.follow": "{name} te empezó a seguir",
@ -326,6 +327,7 @@
"notification.update": "{name} editó una publicación",
"notifications.clear": "Limpiar notificaciones",
"notifications.clear_confirmation": "¿Seguro que quieres limpiar permanentemente todas tus notificaciones?",
"notifications.column_settings.admin.report": "Nuevos informes:",
"notifications.column_settings.admin.sign_up": "Nuevos registros:",
"notifications.column_settings.alert": "Notificaciones de escritorio",
"notifications.column_settings.favourite": "Favoritos:",
@ -431,6 +433,11 @@
"report.thanks.title_actionable": "Gracias por informar, estudiaremos esto.",
"report.unfollow": "Dejar de seguir a @{name}",
"report.unfollow_explanation": "Estás siguiendo esta cuenta. Para no ver sus publicaciones en tu muro de inicio, deja de seguirla.",
"report_notification.attached_statuses": "{count, plural, one {{count} publicación} other {{count} publicaciones}} adjunta(s)",
"report_notification.categories.other": "Otros",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Infracción de regla",
"report_notification.open": "Abrir informe",
"search.placeholder": "Buscar",
"search_popout.search_format": "Formato de búsqueda avanzada",
"search_popout.tips.full_text": "Las búsquedas de texto recuperan publicaciones que has escrito, marcado como favoritas, retooteado o en los que has sido mencionado, así como usuarios, nombres y hashtags.",
@ -461,6 +468,7 @@
"status.embed": "Incrustado",
"status.favourite": "Favorito",
"status.filtered": "Filtrado",
"status.hide": "Ocultar publicación",
"status.history.created": "{name} creó {date}",
"status.history.edited": "{name} editó {date}",
"status.load_more": "Cargar más",
@ -484,6 +492,7 @@
"status.report": "Reportar",
"status.sensitive_warning": "Contenido sensible",
"status.share": "Compartir",
"status.show_filter_reason": "Mostrar de todos modos",
"status.show_less": "Mostrar menos",
"status.show_less_all": "Mostrar menos para todo",
"status.show_more": "Mostrar más",

View file

@ -314,6 +314,7 @@
"navigation_bar.preferences": "Eelistused",
"navigation_bar.public_timeline": "Föderatiivne ajajoon",
"navigation_bar.security": "Turvalisus",
"notification.admin.report": "{name} reported {target}",
"notification.admin.sign_up": "{name} signed up",
"notification.favourite": "{name} märkis Teie staatuse lemmikuks",
"notification.follow": "{name} jälgib nüüd Teid",
@ -326,6 +327,7 @@
"notification.update": "{name} edited a post",
"notifications.clear": "Puhasta teated",
"notifications.clear_confirmation": "Olete kindel, et soovite püsivalt kõik oma teated eemaldada?",
"notifications.column_settings.admin.report": "New reports:",
"notifications.column_settings.admin.sign_up": "New sign-ups:",
"notifications.column_settings.alert": "Töölauateated",
"notifications.column_settings.favourite": "Lemmikud:",
@ -431,6 +433,11 @@
"report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
"report.unfollow": "Unfollow @{name}",
"report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.other": "Other",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report",
"search.placeholder": "Otsi",
"search_popout.search_format": "Täiustatud otsiformaat",
"search_popout.tips.full_text": "Lihtne tekst toob esile staatused mida olete kirjutanud, lisanud lemmikuks, upitanud või olete seal mainitud, ning lisaks veel kattuvad kasutajanimed, kuvanimed ja sildid.",
@ -461,6 +468,7 @@
"status.embed": "Sängita",
"status.favourite": "Lemmik",
"status.filtered": "Filtreeritud",
"status.hide": "Hide toot",
"status.history.created": "{name} created {date}",
"status.history.edited": "{name} edited {date}",
"status.load_more": "Lae rohkem",
@ -484,6 +492,7 @@
"status.report": "Raporteeri @{name}",
"status.sensitive_warning": "Tundlik sisu",
"status.share": "Jaga",
"status.show_filter_reason": "Show anyway",
"status.show_less": "Näita vähem",
"status.show_less_all": "Näita vähem kõigile",
"status.show_more": "Näita veel",

View file

@ -314,6 +314,7 @@
"navigation_bar.preferences": "Hobespenak",
"navigation_bar.public_timeline": "Federatutako denbora-lerroa",
"navigation_bar.security": "Segurtasuna",
"notification.admin.report": "{name} reported {target}",
"notification.admin.sign_up": "{name} erabiltzailea erregistratu da",
"notification.favourite": "{name}(e)k zure bidalketa gogoko du",
"notification.follow": "{name}(e)k jarraitzen zaitu",
@ -326,6 +327,7 @@
"notification.update": "{name} erabiltzaileak bidalketa bat editatu du",
"notifications.clear": "Garbitu jakinarazpenak",
"notifications.clear_confirmation": "Ziur zure jakinarazpen guztiak behin betirako garbitu nahi dituzula?",
"notifications.column_settings.admin.report": "New reports:",
"notifications.column_settings.admin.sign_up": "Izen-emate berriak:",
"notifications.column_settings.alert": "Mahaigaineko jakinarazpenak",
"notifications.column_settings.favourite": "Gogokoak:",
@ -431,6 +433,11 @@
"report.thanks.title_actionable": "Mila esker salaketagatik, berrikusiko dugu.",
"report.unfollow": "@{name} jarraitzeari utzi",
"report.unfollow_explanation": "Kontu hau jarraitzen ari zara. Zure denbora-lerro nagusian bere bidalketak ez ikusteko, jarraitzeari utzi.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.other": "Other",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report",
"search.placeholder": "Bilatu",
"search_popout.search_format": "Bilaketa aurreratuaren formatua",
"search_popout.tips.full_text": "Testu hutsarekin zuk idatzitako bidalketak, gogokoak, bultzadak edo aipamenak aurkitu ditzakezu, bat datozen erabiltzaile-izenak, pantaila-izenak, eta traolak.",
@ -461,6 +468,7 @@
"status.embed": "Txertatu",
"status.favourite": "Gogokoa",
"status.filtered": "Iragazita",
"status.hide": "Hide toot",
"status.history.created": "{name} erabiltzaileak sortua {date}",
"status.history.edited": "{name} erabiltzaileak editatua {date}",
"status.load_more": "Kargatu gehiago",
@ -484,6 +492,7 @@
"status.report": "Salatu @{name}",
"status.sensitive_warning": "Kontuz: Eduki hunkigarria",
"status.share": "Partekatu",
"status.show_filter_reason": "Show anyway",
"status.show_less": "Erakutsi gutxiago",
"status.show_less_all": "Erakutsi denetarik gutxiago",
"status.show_more": "Erakutsi gehiago",

View file

@ -314,6 +314,7 @@
"navigation_bar.preferences": "ترجیحات",
"navigation_bar.public_timeline": "خط زمانی همگانی",
"navigation_bar.security": "امنیت",
"notification.admin.report": "{name} reported {target}",
"notification.admin.sign_up": "{name} ثبت نام کرد",
"notification.favourite": "{name} فرسته‌تان را پسندید",
"notification.follow": "{name} پی‌گیرتان شد",
@ -326,6 +327,7 @@
"notification.update": "{name} فرسته‌ای را ویرایش کرد",
"notifications.clear": "پاک‌سازی آگاهی‌ها",
"notifications.clear_confirmation": "مطمئنید می‌خواهید همهٔ آگاهی‌هایتان را برای همیشه پاک کنید؟",
"notifications.column_settings.admin.report": "New reports:",
"notifications.column_settings.admin.sign_up": "ثبت نام‌های جدید:",
"notifications.column_settings.alert": "آگاهی‌های میزکار",
"notifications.column_settings.favourite": "پسندیده‌ها:",
@ -431,6 +433,11 @@
"report.thanks.title_actionable": "ممنون بابت گزارش، ما آن را بررسی خواهیم کرد.",
"report.unfollow": "ناپی‌گیری @{name}",
"report.unfollow_explanation": "شما این حساب را پی‌گرفته‌اید، برای اینکه دیگر فرسته‌هایش را در خوراک خانه‌تان نبینید؛ آن را پی‌نگیرید.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.other": "Other",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report",
"search.placeholder": "جست‌وجو",
"search_popout.search_format": "راهنمای جست‌وجوی پیشرفته",
"search_popout.tips.full_text": "جست‌وجوی متنی ساده فرسته‌هایی که نوشته، پسندیده، تقویت‌کرده یا در آن‌ها نام‌برده شده‌اید را به علاوهٔ نام‌های کاربری، نام‌های نمایشی و برچسب‌ها برمی‌گرداند.",
@ -461,6 +468,7 @@
"status.embed": "جاسازی",
"status.favourite": "پسندیدن",
"status.filtered": "پالوده",
"status.hide": "Hide toot",
"status.history.created": "توسط {name} در {date} ایجاد شد",
"status.history.edited": "توسط {name} در {date} ویرایش شد",
"status.load_more": "بار کردن بیش‌تر",
@ -484,6 +492,7 @@
"status.report": "گزارش @{name}",
"status.sensitive_warning": "محتوای حساس",
"status.share": "هم‌رسانی",
"status.show_filter_reason": "Show anyway",
"status.show_less": "نمایش کمتر",
"status.show_less_all": "نمایش کمتر همه",
"status.show_more": "نمایش بیشتر",

View file

@ -314,6 +314,7 @@
"navigation_bar.preferences": "Asetukset",
"navigation_bar.public_timeline": "Yleinen aikajana",
"navigation_bar.security": "Turvallisuus",
"notification.admin.report": "{name} reported {target}",
"notification.admin.sign_up": "{name} rekisteröitynyt",
"notification.favourite": "{name} tykkäsi viestistäsi",
"notification.follow": "{name} seurasi sinua",
@ -326,6 +327,7 @@
"notification.update": "{name} muokkasi viestiä",
"notifications.clear": "Tyhjennä ilmoitukset",
"notifications.clear_confirmation": "Haluatko varmasti poistaa kaikki ilmoitukset pysyvästi?",
"notifications.column_settings.admin.report": "New reports:",
"notifications.column_settings.admin.sign_up": "Uudet kirjautumiset:",
"notifications.column_settings.alert": "Työpöytäilmoitukset",
"notifications.column_settings.favourite": "Tykkäykset:",
@ -431,6 +433,11 @@
"report.thanks.title_actionable": "Kiitos raportista, tutkimme asiaa.",
"report.unfollow": "Lopeta seuraaminen @{name}",
"report.unfollow_explanation": "Seuraat tätä tiliä. Jotta et enää näkisi heidän kirjoituksiaan, lopeta niiden seuraaminen.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.other": "Other",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report",
"search.placeholder": "Hae",
"search_popout.search_format": "Tarkennettu haku",
"search_popout.tips.full_text": "Tekstihaku listaa tilapäivitykset, jotka olet kirjoittanut, lisännyt suosikkeihisi, boostannut tai joissa sinut mainitaan, sekä tekstin sisältävät käyttäjänimet, nimimerkit ja hastagit.",
@ -461,6 +468,7 @@
"status.embed": "Upota",
"status.favourite": "Tykkää",
"status.filtered": "Suodatettu",
"status.hide": "Hide toot",
"status.history.created": "{name} luotu {date}",
"status.history.edited": "{name} muokkasi {date}",
"status.load_more": "Lataa lisää",
@ -484,6 +492,7 @@
"status.report": "Raportoi @{name}",
"status.sensitive_warning": "Arkaluontoista sisältöä",
"status.share": "Jaa",
"status.show_filter_reason": "Show anyway",
"status.show_less": "Näytä vähemmän",
"status.show_less_all": "Näytä vähemmän kaikista",
"status.show_more": "Näytä lisää",

View file

@ -314,6 +314,7 @@
"navigation_bar.preferences": "Préférences",
"navigation_bar.public_timeline": "Fil public global",
"navigation_bar.security": "Sécurité",
"notification.admin.report": "{name} a signalé {target}",
"notification.admin.sign_up": "{name} s'est inscrit·e",
"notification.favourite": "{name} a ajouté le message à ses favoris",
"notification.follow": "{name} vous suit",
@ -326,6 +327,7 @@
"notification.update": "{name} a modifié un message",
"notifications.clear": "Effacer les notifications",
"notifications.clear_confirmation": "Voulez-vous vraiment effacer toutes vos notifications?",
"notifications.column_settings.admin.report": "Nouveaux signalements :",
"notifications.column_settings.admin.sign_up": "Nouvelles inscriptions :",
"notifications.column_settings.alert": "Notifications du navigateur",
"notifications.column_settings.favourite": "Favoris:",
@ -431,6 +433,11 @@
"report.thanks.title_actionable": "Merci pour votre signalement, nous allons investiguer.",
"report.unfollow": "Ne plus suivre @{name}",
"report.unfollow_explanation": "Vous suivez ce compte. Désabonnez-vous pour ne plus en voir les messages sur votre fil principal.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.other": "Autre",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Infraction aux règles du serveur",
"report_notification.open": "Ouvrir le signalement",
"search.placeholder": "Rechercher",
"search_popout.search_format": "Recherche avancée",
"search_popout.tips.full_text": "Un texte normal retourne les messages que vous avez écrits, ajoutés à vos favoris, partagés, ou vous mentionnant, ainsi que les identifiants, les noms affichés, et les hashtags des personnes et messages correspondants.",
@ -461,6 +468,7 @@
"status.embed": "Intégrer",
"status.favourite": "Ajouter aux favoris",
"status.filtered": "Filtré",
"status.hide": "Cacher le pouet",
"status.history.created": "créé par {name} {date}",
"status.history.edited": "édité par {name} {date}",
"status.load_more": "Charger plus",
@ -484,6 +492,7 @@
"status.report": "Signaler @{name}",
"status.sensitive_warning": "Contenu sensible",
"status.share": "Partager",
"status.show_filter_reason": "Afficher quand même",
"status.show_less": "Replier",
"status.show_less_all": "Tout replier",
"status.show_more": "Déplier",
@ -524,7 +533,7 @@
"upload_form.edit": "Modifier",
"upload_form.thumbnail": "Changer la vignette",
"upload_form.undo": "Supprimer",
"upload_form.video_description": "Décrire pour les personnes ayant des problèmes daudition ou de vision",
"upload_form.video_description": "Décrire pour les personnes ayant des problèmes de vue ou d'audition",
"upload_modal.analyzing_picture": "Analyse de limage en cours…",
"upload_modal.apply": "Appliquer",
"upload_modal.applying": "Application en cours…",

View file

@ -314,6 +314,7 @@
"navigation_bar.preferences": "Foarkarren",
"navigation_bar.public_timeline": "Federated timeline",
"navigation_bar.security": "Security",
"notification.admin.report": "{name} reported {target}",
"notification.admin.sign_up": "{name} hat harren ynskreaun",
"notification.favourite": "{name} hat jo berjocht as favoryt markearre",
"notification.follow": "{name} folget jo",
@ -326,6 +327,7 @@
"notification.update": "{name} hat in berjocht feroare",
"notifications.clear": "Notifikaasjes leegje",
"notifications.clear_confirmation": "Wolle jo al jo notifikaasjes werklik foar ivich fuortsmite?",
"notifications.column_settings.admin.report": "New reports:",
"notifications.column_settings.admin.sign_up": "Nije ynskriuwingen:",
"notifications.column_settings.alert": "Desktop notifikaasjes",
"notifications.column_settings.favourite": "Favoriten:",
@ -431,6 +433,11 @@
"report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
"report.unfollow": "Unfollow @{name}",
"report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.other": "Other",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report",
"search.placeholder": "Search",
"search_popout.search_format": "Advanced search 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.",
@ -461,6 +468,7 @@
"status.embed": "Ynslute",
"status.favourite": "Favorite",
"status.filtered": "Filtere",
"status.hide": "Hide toot",
"status.history.created": "{name} makke dit {date}",
"status.history.edited": "{name} feroare dit {date}",
"status.load_more": "Load more",
@ -484,6 +492,7 @@
"status.report": "Jou @{name} oan",
"status.sensitive_warning": "Sensitive content",
"status.share": "Diele",
"status.show_filter_reason": "Show anyway",
"status.show_less": "Minder sjen litte",
"status.show_less_all": "Foar alles minder sjen litte",
"status.show_more": "Mear sjen litte",

View file

@ -314,6 +314,7 @@
"navigation_bar.preferences": "Preferences",
"navigation_bar.public_timeline": "Federated timeline",
"navigation_bar.security": "Security",
"notification.admin.report": "{name} reported {target}",
"notification.admin.sign_up": "{name} signed up",
"notification.favourite": "Roghnaigh {name} do phostáil",
"notification.follow": "Lean {name} thú",
@ -326,6 +327,7 @@
"notification.update": "Chuir {name} postáil in eagar",
"notifications.clear": "Clear notifications",
"notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
"notifications.column_settings.admin.report": "New reports:",
"notifications.column_settings.admin.sign_up": "New sign-ups:",
"notifications.column_settings.alert": "Desktop notifications",
"notifications.column_settings.favourite": "Roghanna:",
@ -431,6 +433,11 @@
"report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
"report.unfollow": "Unfollow @{name}",
"report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.other": "Other",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report",
"search.placeholder": "Cuardaigh",
"search_popout.search_format": "Advanced search 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.",
@ -461,6 +468,7 @@
"status.embed": "Embed",
"status.favourite": "Rogha",
"status.filtered": "Filtered",
"status.hide": "Hide toot",
"status.history.created": "{name} created {date}",
"status.history.edited": "Curtha in eagar ag {name} in {date}",
"status.load_more": "Load more",
@ -484,6 +492,7 @@
"status.report": "Report @{name}",
"status.sensitive_warning": "Sensitive content",
"status.share": "Share",
"status.show_filter_reason": "Show anyway",
"status.show_less": "Show less",
"status.show_less_all": "Show less for all",
"status.show_more": "Show more",

View file

@ -314,6 +314,7 @@
"navigation_bar.preferences": "Roghainnean",
"navigation_bar.public_timeline": "Loidhne-ama cho-naisgte",
"navigation_bar.security": "Tèarainteachd",
"notification.admin.report": "{name} reported {target}",
"notification.admin.sign_up": "Chlàraich {name}",
"notification.favourite": "Is annsa le {name} am post agad",
"notification.follow": "Tha {name} a leantainn ort a-nis",
@ -326,6 +327,7 @@
"notification.update": "Dheasaich {name} post",
"notifications.clear": "Falamhaich na brathan",
"notifications.clear_confirmation": "A bheil thu cinnteach gu bheil thu airson na brathan uile agad fhalamhachadh gu buan?",
"notifications.column_settings.admin.report": "New reports:",
"notifications.column_settings.admin.sign_up": "Clàraidhean ùra:",
"notifications.column_settings.alert": "Brathan deasga",
"notifications.column_settings.favourite": "Na h-annsachdan:",
@ -431,6 +433,11 @@
"report.thanks.title_actionable": "Mòran taing airson a ghearain, bheir sinn sùil air.",
"report.unfollow": "Na lean air @{name} tuilleadh",
"report.unfollow_explanation": "Tha thu a leantainn air a chunntas seo. Sgur de leantainn orra ach nach fhaic thu na puist aca air inbhir na dachaigh agad.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.other": "Other",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report",
"search.placeholder": "Lorg",
"search_popout.search_format": "Fòrmat adhartach an luirg",
"search_popout.tips.full_text": "Bheir teacsa sìmplidh dhut na postaichean a sgrìobh thu, a tha nan annsachdan dhut, a bhrosnaich thu no san deach iomradh a thoirt ort cho math ri ainmean-cleachdaiche, ainmean taisbeanaidh agus tagaichean hais a mhaidsicheas.",
@ -461,6 +468,7 @@
"status.embed": "Leabaich",
"status.favourite": "Cuir ris na h-annsachdan",
"status.filtered": "Criathraichte",
"status.hide": "Hide toot",
"status.history.created": "Chruthaich {name} {date} e",
"status.history.edited": "Dheasaich {name} {date} e",
"status.load_more": "Luchdaich barrachd dheth",
@ -484,6 +492,7 @@
"status.report": "Dèan gearan mu @{name}",
"status.sensitive_warning": "Susbaint fhrionasach",
"status.share": "Co-roinn",
"status.show_filter_reason": "Show anyway",
"status.show_less": "Seall nas lugha dheth",
"status.show_less_all": "Seall nas lugha dhen a h-uile",
"status.show_more": "Seall barrachd dheth",

View file

@ -314,6 +314,7 @@
"navigation_bar.preferences": "Preferencias",
"navigation_bar.public_timeline": "Cronoloxía federada",
"navigation_bar.security": "Seguranza",
"notification.admin.report": "{name} denunciou a {target}",
"notification.admin.sign_up": "{name} rexistrouse",
"notification.favourite": "{name} marcou a túa publicación como favorita",
"notification.follow": "{name} comezou a seguirte",
@ -326,6 +327,7 @@
"notification.update": "{name} editou unha publicación",
"notifications.clear": "Limpar notificacións",
"notifications.clear_confirmation": "Tes a certeza de querer limpar de xeito permanente todas as túas notificacións?",
"notifications.column_settings.admin.report": "Novas denuncias:",
"notifications.column_settings.admin.sign_up": "Novas usuarias:",
"notifications.column_settings.alert": "Notificacións de escritorio",
"notifications.column_settings.favourite": "Favoritos:",
@ -431,6 +433,11 @@
"report.thanks.title_actionable": "Grazas pola denuncia, investigarémola.",
"report.unfollow": "Non seguir a @{name}",
"report.unfollow_explanation": "Estás a seguir esta conta. Deixar de ver as súas publicacións na túa cronoloxía, non seguila.",
"report_notification.attached_statuses": "Achegou {count, plural, one {{count} publicación} other {{count} publicacións}}",
"report_notification.categories.other": "Outro",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Faltou ás regras",
"report_notification.open": "Abrir a denuncia",
"search.placeholder": "Procurar",
"search_popout.search_format": "Formato de procura avanzada",
"search_popout.tips.full_text": "Texto simple devolve toots que ti escribiches, promoviches, marcaches favoritos, ou foches mencionada, así como nomes de usuaria coincidentes, nomes públicos e cancelos.",
@ -461,6 +468,7 @@
"status.embed": "Incrustar",
"status.favourite": "Favorito",
"status.filtered": "Filtrado",
"status.hide": "Agochar publicación",
"status.history.created": "{name} creouno o {date}",
"status.history.edited": "{name} editouno o {date}",
"status.load_more": "Cargar máis",
@ -484,6 +492,7 @@
"status.report": "Denunciar @{name}",
"status.sensitive_warning": "Contido sensíbel",
"status.share": "Compartir",
"status.show_filter_reason": "Mostrar igualmente",
"status.show_less": "Amosar menos",
"status.show_less_all": "Amosar menos para todos",
"status.show_more": "Amosar máis",

View file

@ -314,6 +314,7 @@
"navigation_bar.preferences": "העדפות",
"navigation_bar.public_timeline": "ציר זמן בין-קהילתי",
"navigation_bar.security": "אבטחה",
"notification.admin.report": "{name} reported {target}",
"notification.admin.sign_up": "{name} נרשמו",
"notification.favourite": "חצרוצך חובב על ידי {name}",
"notification.follow": "{name} במעקב אחרייך",
@ -321,11 +322,12 @@
"notification.mention": "אוזכרת על ידי {name}",
"notification.own_poll": "הסקר שלך הסתיים",
"notification.poll": "סקר שהצבעת בו הסתיים",
"notification.reblog": "חצרוצך הודהד על ידי {name}",
"notification.reblog": "הפוסט הזה הודהד על ידי {name}",
"notification.status": "{name} הרגע פרסמו",
"notification.update": "{name} ערכו פוסט",
"notifications.clear": "הסרת התראות",
"notifications.clear_confirmation": "להסיר את כל ההתראות? בטוח?",
"notifications.column_settings.admin.report": "New reports:",
"notifications.column_settings.admin.sign_up": "הרשמות חדשות:",
"notifications.column_settings.alert": "התראות לשולחן העבודה",
"notifications.column_settings.favourite": "מחובבים:",
@ -431,6 +433,11 @@
"report.thanks.title_actionable": "תודה על הדיווח, נבדוק את העניין.",
"report.unfollow": "הפסיקו לעקוב אחרי @{name}",
"report.unfollow_explanation": "אתם עוקבים אחרי החשבון הזה. כדי להפסיק לראות את הפרסומים שלו בפיד הבית שלכם, הפסיקו לעקוב אחריהם.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.other": "Other",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report",
"search.placeholder": "חיפוש",
"search_popout.search_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.",
@ -461,6 +468,7 @@
"status.embed": "הטמעה",
"status.favourite": "חיבוב",
"status.filtered": "סונן",
"status.hide": "Hide toot",
"status.history.created": "{name} יצר/ה {date}",
"status.history.edited": "{name} ערך/ה {date}",
"status.load_more": "עוד",
@ -475,7 +483,7 @@
"status.read_more": "לקרוא עוד",
"status.reblog": "הדהוד",
"status.reblog_private": "להדהד ברמת הנראות המקורית",
"status.reblogged_by": "הודהד על ידי {name}",
"status.reblogged_by": "{name} הידהד/ה:",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "מחיקה ועריכה מחדש",
"status.remove_bookmark": "הסרת סימניה",
@ -484,6 +492,7 @@
"status.report": "דיווח על @{name}",
"status.sensitive_warning": "תוכן רגיש",
"status.share": "שיתוף",
"status.show_filter_reason": "Show anyway",
"status.show_less": "הראה פחות",
"status.show_less_all": "להציג פחות מהכל",
"status.show_more": "הראה יותר",

View file

@ -314,6 +314,7 @@
"navigation_bar.preferences": "Preferences",
"navigation_bar.public_timeline": "Federated timeline",
"navigation_bar.security": "Security",
"notification.admin.report": "{name} reported {target}",
"notification.admin.sign_up": "{name} signed up",
"notification.favourite": "{name} favourited your status",
"notification.follow": "{name} followed you",
@ -326,6 +327,7 @@
"notification.update": "{name} edited a post",
"notifications.clear": "Clear notifications",
"notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
"notifications.column_settings.admin.report": "New reports:",
"notifications.column_settings.admin.sign_up": "New sign-ups:",
"notifications.column_settings.alert": "Desktop notifications",
"notifications.column_settings.favourite": "Favourites:",
@ -431,6 +433,11 @@
"report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
"report.unfollow": "Unfollow @{name}",
"report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.other": "Other",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report",
"search.placeholder": "खोजें",
"search_popout.search_format": "Advanced search 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.",
@ -461,6 +468,7 @@
"status.embed": "Embed",
"status.favourite": "Favourite",
"status.filtered": "Filtered",
"status.hide": "Hide toot",
"status.history.created": "{name} created {date}",
"status.history.edited": "{name} edited {date}",
"status.load_more": "Load more",
@ -484,6 +492,7 @@
"status.report": "Report @{name}",
"status.sensitive_warning": "संवेदनशील विषय वस्तु",
"status.share": "शेयर करें",
"status.show_filter_reason": "Show anyway",
"status.show_less": "कम दिखाएँ",
"status.show_less_all": "Show less for all",
"status.show_more": "और दिखाएँ",

View file

@ -314,6 +314,7 @@
"navigation_bar.preferences": "Postavke",
"navigation_bar.public_timeline": "Federalna vremenska crta",
"navigation_bar.security": "Sigurnost",
"notification.admin.report": "{name} reported {target}",
"notification.admin.sign_up": "{name} signed up",
"notification.favourite": "{name} je favorizirao/la Vaš toot",
"notification.follow": "{name} Vas je počeo/la pratiti",
@ -326,6 +327,7 @@
"notification.update": "{name} edited a post",
"notifications.clear": "Očisti obavijesti",
"notifications.clear_confirmation": "Želite li zaista trajno očistiti sve Vaše obavijesti?",
"notifications.column_settings.admin.report": "New reports:",
"notifications.column_settings.admin.sign_up": "New sign-ups:",
"notifications.column_settings.alert": "Obavijesti radne površine",
"notifications.column_settings.favourite": "Favoriti:",
@ -431,6 +433,11 @@
"report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
"report.unfollow": "Unfollow @{name}",
"report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.other": "Other",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report",
"search.placeholder": "Traži",
"search_popout.search_format": "Format naprednog pretraživanja",
"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.",
@ -461,6 +468,7 @@
"status.embed": "Embed",
"status.favourite": "Označi favoritom",
"status.filtered": "Filtered",
"status.hide": "Hide toot",
"status.history.created": "{name} created {date}",
"status.history.edited": "{name} edited {date}",
"status.load_more": "Učitaj više",
@ -484,6 +492,7 @@
"status.report": "Prijavi @{name}",
"status.sensitive_warning": "Osjetljiv sadržaj",
"status.share": "Podijeli",
"status.show_filter_reason": "Show anyway",
"status.show_less": "Pokaži manje",
"status.show_less_all": "Show less for all",
"status.show_more": "Pokaži više",

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