Original upstream merge
parent
9447566b8e
commit
b0630ddc82
|
@ -60,3 +60,6 @@ docker-compose.override.yml
|
|||
|
||||
# ignore misc directory
|
||||
/misc
|
||||
|
||||
.generators
|
||||
.rakeTasks
|
||||
|
|
|
@ -112,6 +112,7 @@ ENV NODE_ENV="production"
|
|||
|
||||
# Tell rails to serve static files
|
||||
ENV RAILS_SERVE_STATIC_FILES="true"
|
||||
ENV BIND="0.0.0.0"
|
||||
|
||||
# Set the run user
|
||||
USER mastodon
|
||||
|
|
4
Gemfile
4
Gemfile
|
@ -5,7 +5,7 @@ ruby '>= 2.4.0', '< 2.7.0'
|
|||
|
||||
gem 'pkg-config', '~> 1.3'
|
||||
|
||||
gem 'puma', '~> 3.12'
|
||||
gem 'puma', '~> 4.0'
|
||||
gem 'rails', '~> 5.2.3'
|
||||
gem 'thor', '~> 0.20'
|
||||
|
||||
|
@ -58,6 +58,7 @@ gem 'idn-ruby', require: 'idn'
|
|||
gem 'kaminari', '~> 1.1'
|
||||
gem 'link_header', '~> 0.0'
|
||||
gem 'mime-types', '~> 3.2', require: 'mime/types/columnar'
|
||||
gem 'nilsimsa', git: 'https://github.com/witgo/nilsimsa', ref: 'fd184883048b922b176939f851338d0a4971a532'
|
||||
gem 'nokogiri', '~> 1.10'
|
||||
gem 'nsa', '~> 0.2'
|
||||
gem 'oj', '~> 3.7'
|
||||
|
@ -66,7 +67,6 @@ gem 'posix-spawn', git: 'https://github.com/rtomayko/posix-spawn', ref: '58465d2
|
|||
gem 'pundit', '~> 2.0'
|
||||
gem 'premailer-rails'
|
||||
gem 'rack', git: 'https://github.com/rack/rack.git', :ref => 'f690bb71425aa31d7b9b3113829af773950d8ab5'
|
||||
gem 'rack-attack', '~> 6.0'
|
||||
gem 'rack-cors', '~> 1.0', require: 'rack/cors'
|
||||
gem 'rails-i18n', '~> 5.1'
|
||||
gem 'rails-settings-cached', '~> 0.6'
|
||||
|
|
16
Gemfile.lock
16
Gemfile.lock
|
@ -19,6 +19,13 @@ GIT
|
|||
specs:
|
||||
http_parser.rb (0.6.1)
|
||||
|
||||
GIT
|
||||
remote: https://github.com/witgo/nilsimsa
|
||||
revision: fd184883048b922b176939f851338d0a4971a532
|
||||
ref: fd184883048b922b176939f851338d0a4971a532
|
||||
specs:
|
||||
nilsimsa (1.1.2)
|
||||
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
|
@ -429,12 +436,12 @@ GEM
|
|||
pry-rails (0.3.9)
|
||||
pry (>= 0.10.4)
|
||||
public_suffix (4.0.3)
|
||||
puma (3.12.2)
|
||||
pundit (2.1.0)
|
||||
activesupport (>= 3.0.0)
|
||||
raabro (1.1.6)
|
||||
rack-attack (6.2.2)
|
||||
rack (>= 1.0, < 3)
|
||||
puma (4.0.1)
|
||||
nio4r (~> 2.0)
|
||||
rack-cors (1.1.1)
|
||||
rack (>= 2.0.0)
|
||||
rack-protection (2.0.8.1)
|
||||
|
@ -717,6 +724,7 @@ DEPENDENCIES
|
|||
microformats (~> 4.1)
|
||||
mime-types (~> 3.2)
|
||||
net-ldap (~> 0.10)
|
||||
nilsimsa!
|
||||
nokogiri (~> 1.10)
|
||||
nsa (~> 0.2)
|
||||
oj (~> 3.7)
|
||||
|
@ -735,10 +743,10 @@ DEPENDENCIES
|
|||
private_address_check (~> 0.5)
|
||||
pry-byebug (~> 3.7)
|
||||
pry-rails (~> 0.3)
|
||||
puma (~> 3.12)
|
||||
puma (~> 4.0)
|
||||
pundit (~> 2.0)
|
||||
rack!
|
||||
rack-attack (~> 6.0)
|
||||
rack-attack (~> 6.1)
|
||||
rack-cors (~> 1.0)
|
||||
rails (~> 5.2.3)
|
||||
rails-controller-testing (~> 1.0)
|
||||
|
|
|
@ -4,14 +4,18 @@ class AboutController < ApplicationController
|
|||
before_action :set_pack
|
||||
layout 'public'
|
||||
|
||||
before_action :set_instance_presenter, only: [:show, :more, :terms]
|
||||
before_action :set_body_classes, only: :show
|
||||
before_action :set_instance_presenter
|
||||
before_action :set_expires_in
|
||||
|
||||
def show
|
||||
@hide_navbar = true
|
||||
skip_before_action :check_user_permissions, only: [:more, :terms]
|
||||
|
||||
def show; end
|
||||
|
||||
def more
|
||||
flash.now[:notice] = I18n.t('about.instance_actor_flash') if params[:instance_actor]
|
||||
end
|
||||
|
||||
def more; end
|
||||
|
||||
def terms; end
|
||||
|
||||
private
|
||||
|
@ -32,4 +36,12 @@ class AboutController < ApplicationController
|
|||
def set_instance_presenter
|
||||
@instance_presenter = InstancePresenter.new
|
||||
end
|
||||
|
||||
def set_body_classes
|
||||
@hide_navbar = true
|
||||
end
|
||||
|
||||
def set_expires_in
|
||||
expires_in 0, public: true
|
||||
end
|
||||
end
|
||||
|
|
|
@ -4,8 +4,10 @@ class AccountsController < ApplicationController
|
|||
PAGE_SIZE = 20
|
||||
|
||||
include AccountControllerConcern
|
||||
include SignatureAuthentication
|
||||
|
||||
before_action :set_cache_headers
|
||||
before_action :set_body_classes
|
||||
|
||||
def show
|
||||
respond_to do |format|
|
||||
|
@ -17,9 +19,8 @@ class AccountsController < ApplicationController
|
|||
not_found unless current_account && current_account.following?(@account)
|
||||
end
|
||||
end
|
||||
mark_cacheable! unless user_signed_in?
|
||||
expires_in 0, public: true unless user_signed_in?
|
||||
|
||||
@body_classes = 'with-modals'
|
||||
@pinned_statuses = []
|
||||
@endorsed_accounts = @account.endorsed_accounts.to_a.sample(4)
|
||||
|
||||
|
@ -40,10 +41,8 @@ class AccountsController < ApplicationController
|
|||
end
|
||||
|
||||
format.json do
|
||||
# TODO: Remember to add authorized_fetch_mode, restrict_fields_to when ported
|
||||
# expires_in 3.minutes, public: !(signed_request_account.present?)
|
||||
expires_in 3.minutes, public: true
|
||||
render_with_cache json: @account, content_type: 'application/activity+json', serializer: ActivityPub::ActorSerializer, adapter: ActivityPub::Adapter
|
||||
expires_in 3.minutes, public: !(authorized_fetch_mode? && signed_request_account.present?)
|
||||
render json: @account, content_type: 'application/activity+json', serializer: ActivityPub::ActorSerializer, adapter: ActivityPub::Adapter, fields: restrict_fields_to
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -58,6 +57,10 @@ class AccountsController < ApplicationController
|
|||
end
|
||||
end
|
||||
|
||||
def set_body_classes
|
||||
@body_classes = 'with-modals'
|
||||
end
|
||||
|
||||
def show_pinned_statuses?
|
||||
[reblogs_requested?, replies_requested?, media_requested?, tag_requested?, params[:max_id].present?, params[:min_id].present?].none?
|
||||
end
|
||||
|
@ -148,4 +151,12 @@ class AccountsController < ApplicationController
|
|||
filtered_statuses.paginate_by_max_id(PAGE_SIZE, params[:max_id], params[:since_id]).to_a
|
||||
end
|
||||
end
|
||||
|
||||
def restrict_fields_to
|
||||
if signed_request_account.present? || public_fetch_mode?
|
||||
# Return all fields
|
||||
else
|
||||
%i(id type preferred_username inbox public_key endpoints)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class ActivityPub::BaseController < Api::BaseController
|
||||
private
|
||||
|
||||
def set_cache_headers
|
||||
response.headers['Vary'] = 'Signature' if authorized_fetch_mode?
|
||||
end
|
||||
end
|
|
@ -1,24 +1,21 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class ActivityPub::CollectionsController < Api::BaseController
|
||||
class ActivityPub::CollectionsController < ActivityPub::BaseController
|
||||
include SignatureVerification
|
||||
include AccountOwnedConcern
|
||||
|
||||
before_action :set_account
|
||||
before_action :require_signature!, if: :authorized_fetch_mode?
|
||||
before_action :set_size
|
||||
before_action :set_statuses
|
||||
before_action :set_cache_headers
|
||||
|
||||
def show
|
||||
expires_in 3.minutes
|
||||
render_with_cache json: collection_presenter, content_type: 'application/activity+json', serializer: ActivityPub::CollectionSerializer, adapter: ActivityPub::Adapter, skip_activities: true
|
||||
expires_in 3.minutes, public: public_fetch_mode?
|
||||
render json: collection_presenter, content_type: 'application/activity+json', serializer: ActivityPub::CollectionSerializer, adapter: ActivityPub::Adapter, skip_activities: true
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_account
|
||||
@account = Account.find_local!(params[:account_username])
|
||||
end
|
||||
|
||||
def set_statuses
|
||||
@statuses = scope_for_collection
|
||||
@statuses = cache_collection(@statuses, Status)
|
||||
|
|
|
@ -3,40 +3,54 @@
|
|||
class ActivityPub::InboxesController < Api::BaseController
|
||||
include SignatureVerification
|
||||
include JsonLdHelper
|
||||
include AccountOwnedConcern
|
||||
|
||||
before_action :set_account
|
||||
before_action :skip_unknown_actor_delete
|
||||
before_action :require_signature!
|
||||
|
||||
def create
|
||||
if unknown_deleted_account?
|
||||
head 202
|
||||
elsif signed_request_account
|
||||
process_payload
|
||||
head 202
|
||||
else
|
||||
render plain: signature_verification_failure_reason, status: 401
|
||||
end
|
||||
upgrade_account
|
||||
process_payload
|
||||
head 202
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def skip_unknown_actor_delete
|
||||
head 202 if unknown_deleted_account?
|
||||
end
|
||||
|
||||
def unknown_deleted_account?
|
||||
json = Oj.load(body, mode: :strict)
|
||||
json['type'] == 'Delete' && json['actor'].present? && json['actor'] == value_or_id(json['object']) && !Account.where(uri: json['actor']).exists?
|
||||
json.is_a?(Hash) && json['type'] == 'Delete' && json['actor'].present? && json['actor'] == value_or_id(json['object']) && !Account.where(uri: json['actor']).exists?
|
||||
rescue Oj::ParseError
|
||||
false
|
||||
end
|
||||
|
||||
def set_account
|
||||
@account = Account.find_local!(params[:account_username]) if params[:account_username]
|
||||
def account_required?
|
||||
params[:account_username].present?
|
||||
end
|
||||
|
||||
def body
|
||||
return @body if defined?(@body)
|
||||
@body = request.body.read.force_encoding('UTF-8')
|
||||
|
||||
@body = request.body.read
|
||||
@body.force_encoding('UTF-8') if @body.present?
|
||||
|
||||
request.body.rewind if request.body.respond_to?(:rewind)
|
||||
|
||||
@body
|
||||
end
|
||||
|
||||
def upgrade_account
|
||||
if signed_request_account.ostatus?
|
||||
signed_request_account.update(last_webfingered_at: nil)
|
||||
ResolveAccountWorker.perform_async(signed_request_account.acct)
|
||||
end
|
||||
|
||||
DeliveryFailureTracker.track_inverse_success!(signed_request_account)
|
||||
end
|
||||
|
||||
def process_payload
|
||||
ActivityPub::ProcessingWorker.perform_async(signed_request_account.id, body, @account&.id)
|
||||
end
|
||||
|
|
|
@ -1,26 +1,22 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class ActivityPub::OutboxesController < Api::BaseController
|
||||
class ActivityPub::OutboxesController < ActivityPub::BaseController
|
||||
LIMIT = 20
|
||||
|
||||
include SignatureVerification
|
||||
include AccountOwnedConcern
|
||||
|
||||
before_action :set_account
|
||||
before_action :require_signature!, if: :authorized_fetch_mode?
|
||||
before_action :set_statuses
|
||||
before_action :set_cache_headers
|
||||
|
||||
def show
|
||||
expires_in 1.minute, public: true unless page_requested?
|
||||
|
||||
expires_in(page_requested? ? 0 : 3.minutes, public: public_fetch_mode?)
|
||||
render json: outbox_presenter, serializer: ActivityPub::OutboxSerializer, adapter: ActivityPub::Adapter, content_type: 'application/activity+json'
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_account
|
||||
@account = Account.find_local!(params[:account_username])
|
||||
end
|
||||
|
||||
def outbox_presenter
|
||||
if page_requested?
|
||||
ActivityPub::CollectionPresenter.new(
|
||||
|
|
|
@ -0,0 +1,70 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class ActivityPub::RepliesController < ActivityPub::BaseController
|
||||
include SignatureAuthentication
|
||||
include Authorization
|
||||
include AccountOwnedConcern
|
||||
|
||||
DESCENDANTS_LIMIT = 60
|
||||
|
||||
before_action :require_signature!, if: :authorized_fetch_mode?
|
||||
before_action :set_status
|
||||
before_action :set_cache_headers
|
||||
before_action :set_replies
|
||||
|
||||
def index
|
||||
expires_in 0, public: public_fetch_mode?
|
||||
render json: replies_collection_presenter, serializer: ActivityPub::CollectionSerializer, adapter: ActivityPub::Adapter, content_type: 'application/activity+json', skip_activities: true
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_status
|
||||
@status = @account.statuses.find(params[:status_id])
|
||||
authorize @status, :show?
|
||||
rescue Mastodon::NotPermittedError
|
||||
raise ActiveRecord::RecordNotFound
|
||||
end
|
||||
|
||||
def set_replies
|
||||
@replies = page_params[:other_accounts] ? Status.where.not(account_id: @account.id) : @account.statuses
|
||||
@replies = @replies.where(in_reply_to_id: @status.id, visibility: [:public, :unlisted])
|
||||
@replies = @replies.paginate_by_min_id(DESCENDANTS_LIMIT, params[:min_id])
|
||||
end
|
||||
|
||||
def replies_collection_presenter
|
||||
page = ActivityPub::CollectionPresenter.new(
|
||||
id: account_status_replies_url(@account, @status, page_params),
|
||||
type: :unordered,
|
||||
part_of: account_status_replies_url(@account, @status),
|
||||
next: next_page,
|
||||
items: @replies.map { |status| status.local ? status : status.id }
|
||||
)
|
||||
|
||||
return page if page_requested?
|
||||
|
||||
ActivityPub::CollectionPresenter.new(
|
||||
id: account_status_replies_url(@account, @status),
|
||||
type: :unordered,
|
||||
first: page
|
||||
)
|
||||
end
|
||||
|
||||
def page_requested?
|
||||
params[:page] == 'true'
|
||||
end
|
||||
|
||||
def next_page
|
||||
account_status_replies_url(
|
||||
@account,
|
||||
@status,
|
||||
page: true,
|
||||
min_id: @replies&.last&.id,
|
||||
other_accounts: !(@replies&.last&.account_id == @account.id && @replies.size == DESCENDANTS_LIMIT)
|
||||
)
|
||||
end
|
||||
|
||||
def page_params
|
||||
params_slice(:other_accounts, :min_id).merge(page: true)
|
||||
end
|
||||
end
|
|
@ -31,6 +31,7 @@ module Admin
|
|||
@profile_directory = Setting.profile_directory
|
||||
@timeline_preview = Setting.timeline_preview
|
||||
@keybase_integration = Setting.enable_keybase
|
||||
@spam_check_enabled = Setting.spam_check_enabled
|
||||
end
|
||||
|
||||
private
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class Api::ProofsController < Api::BaseController
|
||||
before_action :set_account
|
||||
include AccountOwnedConcern
|
||||
|
||||
before_action :set_provider
|
||||
before_action :check_account_approval
|
||||
before_action :check_account_suspension
|
||||
|
||||
def index
|
||||
render json: @account, serializer: @provider.serializer_class, monsterfork_api: monsterfork_api
|
||||
|
@ -16,15 +15,7 @@ class Api::ProofsController < Api::BaseController
|
|||
@provider = ProofProvider.find(params[:provider]) || raise(ActiveRecord::RecordNotFound)
|
||||
end
|
||||
|
||||
def set_account
|
||||
@account = Account.find_local!(params[:username])
|
||||
end
|
||||
|
||||
def check_account_approval
|
||||
not_found if @account.user_pending?
|
||||
end
|
||||
|
||||
def check_account_suspension
|
||||
gone if @account.suspended?
|
||||
def username_param
|
||||
params[:username]
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,31 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class Api::V1::FollowsController < Api::BaseController
|
||||
before_action -> { doorkeeper_authorize! :follow, :'write:follows' }
|
||||
before_action :require_user!
|
||||
|
||||
respond_to :json
|
||||
|
||||
def create
|
||||
raise ActiveRecord::RecordNotFound if follow_params[:uri].blank?
|
||||
|
||||
@account = FollowService.new.call(current_user.account, target_uri).try(:target_account)
|
||||
|
||||
if @account.nil?
|
||||
username, domain = target_uri.split('@')
|
||||
@account = Account.find_remote!(username, domain)
|
||||
end
|
||||
|
||||
render json: @account, serializer: REST::AccountSerializer, monsterfork_api: monsterfork_api
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def target_uri
|
||||
follow_params[:uri].strip.gsub(/\A@/, '')
|
||||
end
|
||||
|
||||
def follow_params
|
||||
params.permit(:uri)
|
||||
end
|
||||
end
|
|
@ -43,6 +43,14 @@ class ApplicationController < ActionController::Base
|
|||
Rails.env.production?
|
||||
end
|
||||
|
||||
def authorized_fetch_mode?
|
||||
ENV['AUTHORIZED_FETCH'] == 'true'
|
||||
end
|
||||
|
||||
def public_fetch_mode?
|
||||
!authorized_fetch_mode?
|
||||
end
|
||||
|
||||
def store_current_location
|
||||
store_location_for(:user, request.url) unless request.format == :json
|
||||
end
|
||||
|
@ -254,11 +262,7 @@ class ApplicationController < ActionController::Base
|
|||
end
|
||||
|
||||
def set_cache_headers
|
||||
response.headers['Vary'] = 'Accept'
|
||||
end
|
||||
|
||||
def mark_cacheable!
|
||||
expires_in 0, public: true
|
||||
response.headers['Vary'] = public_fetch_mode? ? 'Accept' : 'Accept, Signature'
|
||||
end
|
||||
|
||||
def monsterfork_api
|
||||
|
|
|
@ -3,25 +3,20 @@
|
|||
module AccountControllerConcern
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
include AccountOwnedConcern
|
||||
|
||||
FOLLOW_PER_PAGE = 12
|
||||
|
||||
included do
|
||||
layout 'public'
|
||||
|
||||
before_action :set_account
|
||||
before_action :check_account_approval
|
||||
before_action :check_account_suspension
|
||||
before_action :check_account_hidden
|
||||
before_action :set_instance_presenter
|
||||
before_action :set_link_headers
|
||||
before_action :set_link_headers, if: -> { request.format.nil? || request.format == :html }
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_account
|
||||
@account = Account.find_local!(username_param)
|
||||
end
|
||||
|
||||
def set_instance_presenter
|
||||
@instance_presenter = InstancePresenter.new
|
||||
end
|
||||
|
@ -35,14 +30,10 @@ module AccountControllerConcern
|
|||
)
|
||||
end
|
||||
|
||||
def username_param
|
||||
params[:account_username]
|
||||
end
|
||||
|
||||
def webfinger_account_link
|
||||
[
|
||||
webfinger_account_url,
|
||||
[%w(rel lrdd), %w(type application/xrd+xml)],
|
||||
[%w(rel lrdd), %w(type application/jrd+json)],
|
||||
]
|
||||
end
|
||||
|
||||
|
@ -57,17 +48,6 @@ module AccountControllerConcern
|
|||
webfinger_url(resource: @account.to_webfinger_s)
|
||||
end
|
||||
|
||||
def check_account_approval
|
||||
not_found if @account.user_pending?
|
||||
end
|
||||
|
||||
def check_account_suspension
|
||||
if @account.suspended?
|
||||
expires_in(3.minutes, public: true)
|
||||
gone
|
||||
end
|
||||
end
|
||||
|
||||
def check_account_hidden
|
||||
not_found if @account.hidden?
|
||||
end
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module AccountOwnedConcern
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
included do
|
||||
before_action :set_account, if: :account_required?
|
||||
before_action :check_account_approval, if: :account_required?
|
||||
before_action :check_account_suspension, if: :account_required?
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def account_required?
|
||||
true
|
||||
end
|
||||
|
||||
def set_account
|
||||
@account = Account.find_local!(username_param)
|
||||
end
|
||||
|
||||
def username_param
|
||||
params[:account_username]
|
||||
end
|
||||
|
||||
def check_account_approval
|
||||
not_found if @account.local? && @account.user_pending?
|
||||
end
|
||||
|
||||
def check_account_suspension
|
||||
expires_in(3.minutes, public: true) && gone if @account.suspended?
|
||||
end
|
||||
end
|
|
@ -5,12 +5,22 @@
|
|||
module SignatureVerification
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
include DomainControlHelper
|
||||
|
||||
def require_signature!
|
||||
render plain: signature_verification_failure_reason, status: signature_verification_failure_code unless signed_request_account
|
||||
end
|
||||
|
||||
def signed_request?
|
||||
request.headers['Signature'].present?
|
||||
end
|
||||
|
||||
def signature_verification_failure_reason
|
||||
return @signature_verification_failure_reason if defined?(@signature_verification_failure_reason)
|
||||
@signature_verification_failure_reason
|
||||
end
|
||||
|
||||
def signature_verification_failure_code
|
||||
@signature_verification_failure_code || 401
|
||||
end
|
||||
|
||||
def signed_request_account
|
||||
|
@ -123,6 +133,13 @@ module SignatureVerification
|
|||
end
|
||||
|
||||
def account_from_key_id(key_id)
|
||||
domain = key_id.start_with?('acct:') ? key_id.split('@').last : key_id
|
||||
|
||||
if domain_not_allowed?(domain)
|
||||
@signature_verification_failure_code = 403
|
||||
return
|
||||
end
|
||||
|
||||
if key_id.start_with?('acct:')
|
||||
stoplight_wrap_request { ResolveAccountService.new.call(key_id.gsub(/\Aacct:/, '')) }
|
||||
elsif !ActivityPub::TagManager.instance.local_uri?(key_id)
|
||||
|
|
|
@ -0,0 +1,87 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module StatusControllerConcern
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
ANCESTORS_LIMIT = 40
|
||||
DESCENDANTS_LIMIT = 60
|
||||
DESCENDANTS_DEPTH_LIMIT = 20
|
||||
|
||||
def create_descendant_thread(starting_depth, statuses)
|
||||
depth = starting_depth + statuses.size
|
||||
|
||||
if depth < DESCENDANTS_DEPTH_LIMIT
|
||||
{
|
||||
statuses: statuses,
|
||||
starting_depth: starting_depth,
|
||||
}
|
||||
else
|
||||
next_status = statuses.pop
|
||||
|
||||
{
|
||||
statuses: statuses,
|
||||
starting_depth: starting_depth,
|
||||
next_status: next_status,
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
def set_ancestors
|
||||
@ancestors = @status.reply? ? cache_collection(@status.ancestors(ANCESTORS_LIMIT, current_account), Status) : []
|
||||
@next_ancestor = @ancestors.size < ANCESTORS_LIMIT ? nil : @ancestors.shift
|
||||
end
|
||||
|
||||
def set_descendants
|
||||
@max_descendant_thread_id = params[:max_descendant_thread_id]&.to_i
|
||||
@since_descendant_thread_id = params[:since_descendant_thread_id]&.to_i
|
||||
|
||||
descendants = cache_collection(
|
||||
@status.descendants(
|
||||
DESCENDANTS_LIMIT,
|
||||
current_account,
|
||||
@max_descendant_thread_id,
|
||||
@since_descendant_thread_id,
|
||||
DESCENDANTS_DEPTH_LIMIT
|
||||
),
|
||||
Status
|
||||
)
|
||||
|
||||
@descendant_threads = []
|
||||
|
||||
if descendants.present?
|
||||
statuses = [descendants.first]
|
||||
starting_depth = 0
|
||||
|
||||
descendants.drop(1).each_with_index do |descendant, index|
|
||||
if descendants[index].id == descendant.in_reply_to_id
|
||||
statuses << descendant
|
||||
else
|
||||
@descendant_threads << create_descendant_thread(starting_depth, statuses)
|
||||
|
||||
# The thread is broken, assume it's a reply to the root status
|
||||
starting_depth = 0
|
||||
|
||||
# ... unless we can find its ancestor in one of the already-processed threads
|
||||
@descendant_threads.reverse_each do |descendant_thread|
|
||||
statuses = descendant_thread[:statuses]
|
||||
|
||||
index = statuses.find_index do |thread_status|
|
||||
thread_status.id == descendant.in_reply_to_id
|
||||
end
|
||||
|
||||
if index.present?
|
||||
starting_depth = descendant_thread[:starting_depth] + index + 1
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
statuses = [descendant]
|
||||
end
|
||||
end
|
||||
|
||||
@descendant_threads << create_descendant_thread(starting_depth, statuses)
|
||||
end
|
||||
|
||||
@max_descendant_thread_id = @descendant_threads.pop[:statuses].first.id if descendants.size >= DESCENDANTS_LIMIT
|
||||
end
|
||||
end
|
|
@ -6,6 +6,7 @@ class CustomCssController < ApplicationController
|
|||
before_action :set_cache_headers
|
||||
|
||||
def show
|
||||
expires_in 3.minutes, public: true
|
||||
render plain: Setting.custom_css || '', content_type: 'text/css'
|
||||
end
|
||||
end
|
||||
|
|
|
@ -8,7 +8,7 @@ class EmojisController < ApplicationController
|
|||
respond_to do |format|
|
||||
format.json do
|
||||
expires_in 3.minutes, public: true
|
||||
render_with_cache json: @emoji, content_type: 'application/activity+json', serializer: ActivityPub::EmojiSerializer, adapter: ActivityPub::Adapter
|
||||
render json: @emoji, content_type: 'application/activity+json', serializer: ActivityPub::EmojiSerializer, adapter: ActivityPub::Adapter
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,14 +2,16 @@
|
|||
|
||||
class FollowerAccountsController < ApplicationController
|
||||
include AccountControllerConcern
|
||||
include SignatureVerification
|
||||
|
||||
before_action :require_signature!, if: -> { request.format == :json && authorized_fetch_mode? }
|
||||
before_action :set_cache_headers
|
||||
|
||||
def index
|
||||
respond_to do |format|
|
||||
format.html do
|
||||
use_pack 'public'
|
||||
mark_cacheable! unless user_signed_in?
|
||||
expires_in 0, public: true unless user_signed_in?
|
||||
|
||||
next if @account.user_hides_network?
|
||||
|
||||
|
@ -18,9 +20,9 @@ class FollowerAccountsController < ApplicationController
|
|||
end
|
||||
|
||||
format.json do
|
||||
raise Mastodon::NotPermittedError if params[:page].present? && @account.user_hides_network?
|
||||
raise Mastodon::NotPermittedError if page_requested? && @account.user_hides_network?
|
||||
|
||||
expires_in 3.minutes, public: true if params[:page].blank?
|
||||
expires_in(page_requested? ? 0 : 3.minutes, public: public_fetch_mode?)
|
||||
|
||||
render json: collection_presenter,
|
||||
serializer: ActivityPub::CollectionSerializer,
|
||||
|
@ -36,6 +38,10 @@ class FollowerAccountsController < ApplicationController
|
|||
@follows ||= Follow.where(target_account: @account).recent.page(params[:page]).per(FOLLOW_PER_PAGE).preload(:account)
|
||||
end
|
||||
|
||||
def page_requested?
|
||||
params[:page].present?
|
||||
end
|
||||
|
||||
def page_url(page)
|
||||
account_followers_url(@account, page: page) unless page.nil?
|
||||
end
|
||||
|
@ -43,7 +49,7 @@ class FollowerAccountsController < ApplicationController
|
|||
def collection_presenter
|
||||
options = { type: :ordered }
|
||||
options[:size] = @account.followers_count unless Setting.hide_followers_count || @account.user&.setting_hide_followers_count
|
||||
if params[:page].present?
|
||||
if page_requested?
|
||||
ActivityPub::CollectionPresenter.new(
|
||||
id: account_followers_url(@account, page: params.fetch(:page, 1)),
|
||||
items: follows.map { |f| ActivityPub::TagManager.instance.uri_for(f.account) },
|
||||
|
|
|
@ -2,14 +2,16 @@
|
|||
|
||||
class FollowingAccountsController < ApplicationController
|
||||
include AccountControllerConcern
|
||||
include SignatureVerification
|
||||
|
||||
before_action :require_signature!, if: -> { request.format == :json && authorized_fetch_mode? }
|
||||
before_action :set_cache_headers
|
||||
|
||||
def index
|
||||
respond_to do |format|
|
||||
format.html do
|
||||
use_pack 'public'
|
||||
mark_cacheable! unless user_signed_in?
|
||||
expires_in 0, public: true unless user_signed_in?
|
||||
|
||||
next if @account.user_hides_network?
|
||||
|
||||
|
@ -18,9 +20,9 @@ class FollowingAccountsController < ApplicationController
|
|||
end
|
||||
|
||||
format.json do
|
||||
raise Mastodon::NotPermittedError if params[:page].present? && @account.user_hides_network?
|
||||
raise Mastodon::NotPermittedError if page_requested? && @account.user_hides_network?
|
||||
|
||||
expires_in 3.minutes, public: true if params[:page].blank?
|
||||
expires_in(page_requested? ? 0 : 3.minutes, public: public_fetch_mode?)
|
||||
|
||||
render json: collection_presenter,
|
||||
serializer: ActivityPub::CollectionSerializer,
|
||||
|
@ -36,12 +38,16 @@ class FollowingAccountsController < ApplicationController
|
|||
@follows ||= Follow.where(account: @account).recent.page(params[:page]).per(FOLLOW_PER_PAGE).preload(:target_account)
|
||||
end
|
||||
|
||||
def page_requested?
|
||||
params[:page].present?
|
||||
end
|
||||
|
||||
def page_url(page)
|
||||
account_following_index_url(@account, page: page) unless page.nil?
|
||||
end
|
||||
|
||||
def collection_presenter
|
||||
if params[:page].present?
|
||||
if page_requested?
|
||||
ActivityPub::CollectionPresenter.new(
|
||||
id: account_following_index_url(@account, page: params.fetch(:page, 1)),
|
||||
type: :ordered,
|
||||
|
|
|
@ -23,7 +23,7 @@ class HomeController < ApplicationController
|
|||
when 'statuses'
|
||||
status = Status.find_by(id: matches[2])
|
||||
|
||||
if status && status.distributable?
|
||||
if status&.distributable?
|
||||
redirect_to(ActivityPub::TagManager.instance.url_for(status))
|
||||
return
|
||||
end
|
||||
|
@ -64,7 +64,7 @@ class HomeController < ApplicationController
|
|||
if request.path.start_with?('/web')
|
||||
new_user_session_path
|
||||
elsif single_user_mode?
|
||||
short_account_path(Account.local.without_suspended.first)
|
||||
short_account_path(Account.local.without_suspended.where('id > 0').first)
|
||||
else
|
||||
about_path
|
||||
end
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class InstanceActorsController < ApplicationController
|
||||
include AccountControllerConcern
|
||||
|
||||
def show
|
||||
expires_in 10.minutes, public: true
|
||||
render json: @account, content_type: 'application/activity+json', serializer: ActivityPub::ActorSerializer, adapter: ActivityPub::Adapter, fields: restrict_fields_to
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_account
|
||||
@account = Account.find(-99)
|
||||
end
|
||||
|
||||
def restrict_fields_to
|
||||
%i(id type preferred_username inbox public_key endpoints url manually_approves_followers)
|
||||
end
|
||||
end
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
class IntentsController < ApplicationController
|
||||
before_action :check_uri
|
||||
|
||||
rescue_from Addressable::URI::InvalidURIError, with: :handle_invalid_uri
|
||||
|
||||
def show
|
||||
|
|
|
@ -4,6 +4,7 @@ class ManifestsController < ApplicationController
|
|||
skip_before_action :store_current_location
|
||||
|
||||
def show
|
||||
expires_in 3.minutes, public: true
|
||||
render json: InstancePresenter.new, serializer: ManifestSerializer
|
||||
end
|
||||
end
|
||||
|
|
|
@ -31,7 +31,6 @@ class MediaController < ApplicationController
|
|||
def verify_permitted_status!
|
||||
authorize @media_attachment.status, :show?
|
||||
rescue Mastodon::NotPermittedError
|
||||
# Reraise in order to get a 404 instead of a 403 error code
|
||||
raise ActiveRecord::RecordNotFound
|
||||
end
|
||||
end
|
||||
|
|
|
@ -9,20 +9,16 @@ class PublicTimelinesController < ApplicationController
|
|||
before_action :set_instance_presenter
|
||||
|
||||
def show
|
||||
respond_to do |format|
|
||||
format.html do
|
||||
@initial_state_json = ActiveModelSerializers::SerializableResource.new(
|
||||
InitialStatePresenter.new(settings: { known_fediverse: Setting.show_known_fediverse_at_about_page }, token: current_session&.token),
|
||||
serializer: InitialStateSerializer, monsterfork_api: monsterfork_api
|
||||
).to_json
|
||||
end
|
||||
end
|
||||
@initial_state_json = ActiveModelSerializers::SerializableResource.new(
|
||||
InitialStatePresenter.new(settings: { known_fediverse: Setting.show_known_fediverse_at_about_page }, token: current_session&.token),
|
||||
serializer: InitialStateSerializer, monsterfork_api: monsterfork_api
|
||||
).to_json
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def check_enabled
|
||||
raise ActiveRecord::RecordNotFound unless Setting.timeline_preview
|
||||
not_found unless Setting.timeline_preview
|
||||
end
|
||||
|
||||
def set_body_classes
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class RemoteFollowController < ApplicationController
|
||||
include AccountOwnedConcern
|
||||
|
||||
layout 'modal'
|
||||
|
||||
before_action :set_account
|
||||
before_action :set_pack
|
||||
before_action :gone, if: :suspended_account?
|
||||
before_action :set_body_classes
|
||||
|
||||
def new
|
||||
|
@ -29,14 +29,6 @@ class RemoteFollowController < ApplicationController
|
|||
use_pack 'modal'
|
||||
end
|
||||
|
||||
def set_account
|
||||
@account = Account.find_local!(params[:account_username])
|
||||
end
|
||||
|
||||
def suspended_account?
|
||||
@account.suspended?
|
||||
end
|
||||
|
||||
def set_body_classes
|
||||
@body_classes = 'modal-layout'
|
||||
@hide_header = true
|
||||
|
|
|
@ -1,39 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class RemoteUnfollowsController < ApplicationController
|
||||
layout 'modal'
|
||||
|
||||
before_action :authenticate_user!
|
||||
before_action :set_body_classes
|
||||
|
||||
def create
|
||||
@account = unfollow_attempt.try(:target_account)
|
||||
|
||||
if @account.nil?
|
||||
render :error
|
||||
else
|
||||
render :success
|
||||
end
|
||||
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
|
||||
render :error
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def unfollow_attempt
|
||||
username, domain = acct_without_prefix.split('@')
|
||||
UnfollowService.new.call(current_account, Account.find_remote!(username, domain))
|
||||
end
|
||||
|
||||
def acct_without_prefix
|
||||
acct_params.gsub(/\Aacct:/, '')
|
||||
end
|
||||
|
||||
def acct_params
|
||||
params.fetch(:acct, '')
|
||||
end
|
||||
|
||||
def set_body_classes
|
||||
@body_classes = 'modal-layout'
|
||||
end
|
||||
end
|
|
@ -11,7 +11,7 @@ module Settings
|
|||
|
||||
def create
|
||||
if current_user.validate_and_consume_otp!(confirmation_params[:code])
|
||||
flash[:notice] = I18n.t('two_factor_authentication.enabled_success')
|
||||
flash.now[:notice] = I18n.t('two_factor_authentication.enabled_success')
|
||||
|
||||
current_user.otp_required_for_login = true
|
||||
@recovery_codes = current_user.generate_otp_backup_codes!
|
||||
|
|
|
@ -6,7 +6,7 @@ module Settings
|
|||
def create
|
||||
@recovery_codes = current_user.generate_otp_backup_codes!
|
||||
current_user.save!
|
||||
flash[:notice] = I18n.t('two_factor_authentication.recovery_codes_regenerated')
|
||||
flash.now[:notice] = I18n.t('two_factor_authentication.recovery_codes_regenerated')
|
||||
render :index
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,26 +1,24 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class StatusesController < ApplicationController
|
||||
include StatusControllerConcern
|
||||
include SignatureAuthentication
|
||||
include Authorization
|
||||
|
||||
ANCESTORS_LIMIT = 40
|
||||
DESCENDANTS_LIMIT = 60
|
||||
DESCENDANTS_DEPTH_LIMIT = 20
|
||||
include AccountOwnedConcern
|
||||
|
||||
layout 'public'
|
||||
|
||||
before_action :set_account
|
||||
before_action :require_signature!, only: :show, if: -> { request.format == :json && authorized_fetch_mode? }
|
||||
before_action :set_status
|
||||
before_action :handle_sharekey_change, only: [:show], if: :user_signed_in?
|
||||
before_action :handle_webapp_redirect, only: [:show], if: :user_signed_in?
|
||||
before_action :set_instance_presenter
|
||||
before_action :set_link_headers
|
||||
before_action :check_account_suspension
|
||||
before_action :redirect_to_original, only: [:show]
|
||||
before_action :set_referrer_policy_header, only: [:show]
|
||||
before_action :redirect_to_original, only: :show
|
||||
before_action :set_referrer_policy_header, only: :show
|
||||
before_action :set_cache_headers
|
||||
before_action :set_replies, only: [:replies]
|
||||
before_action :set_body_classes
|
||||
before_action :set_autoplay, only: :embed
|
||||
|
||||
content_security_policy only: :embed do |p|
|
||||
p.frame_ancestors(false)
|
||||
|
@ -32,25 +30,20 @@ class StatusesController < ApplicationController
|
|||
use_pack 'public'
|
||||
|
||||
expires_in 10.seconds, public: true if current_account.nil?
|
||||
|
||||
@body_classes = 'with-modals'
|
||||
|
||||
set_ancestors
|
||||
set_descendants
|
||||
|
||||
render 'stream_entries/show'
|
||||
end
|
||||
|
||||
format.json do
|
||||
expires_in 3.minutes, public: @status.distributable?
|
||||
render_with_cache json: @status, content_type: 'application/activity+json', serializer: ActivityPub::NoteSerializer, adapter: ActivityPub::Adapter
|
||||
expires_in 3.minutes, public: @status.distributable? && public_fetch_mode?
|
||||
render json: @status, content_type: 'application/activity+json', serializer: ActivityPub::NoteSerializer, adapter: ActivityPub::Adapter
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def activity
|
||||
expires_in 3.minutes, public: @status.distributable?
|
||||
render_with_cache json: @status, content_type: 'application/activity+json', serializer: ActivityPub::NoteSerializer, adapter: ActivityPub::Adapter
|
||||
expires_in 3.minutes, public: @status.distributable? && public_fetch_mode?
|
||||
render json: @status, content_type: 'application/activity+json', serializer: ActivityPub::ActivitySerializer, adapter: ActivityPub::Adapter
|
||||
end
|
||||
|
||||
def embed
|
||||
|
@ -58,137 +51,24 @@ class StatusesController < ApplicationController
|
|||
|
||||
expires_in 180, public: true
|
||||
response.headers['X-Frame-Options'] = 'ALLOWALL'
|
||||
@autoplay = ActiveModel::Type::Boolean.new.cast(params[:autoplay])
|
||||
|
||||
render 'stream_entries/embed', layout: 'embedded'
|
||||
end
|
||||
|
||||
def replies
|
||||
render json: replies_collection_presenter,
|
||||
serializer: ActivityPub::CollectionSerializer,
|
||||
adapter: ActivityPub::Adapter,
|
||||
content_type: 'application/activity+json',
|
||||
skip_activities: true
|
||||
render layout: 'embedded'
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def replies_collection_presenter
|
||||
page = ActivityPub::CollectionPresenter.new(
|
||||
id: replies_account_status_url(@account, @status, page_params),
|
||||
type: :unordered,
|
||||
part_of: replies_account_status_url(@account, @status),
|
||||
next: next_page,
|
||||
items: @replies.map { |status| status.local ? status : status.id }
|
||||
)
|
||||
if page_requested?
|
||||
page
|
||||
else
|
||||
ActivityPub::CollectionPresenter.new(
|
||||
id: replies_account_status_url(@account, @status),
|
||||
type: :unordered,
|
||||
first: page
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
def create_descendant_thread(starting_depth, statuses)
|
||||
depth = starting_depth + statuses.size
|
||||
if depth < DESCENDANTS_DEPTH_LIMIT
|
||||
{ statuses: statuses, starting_depth: starting_depth }
|
||||
else
|
||||
next_status = statuses.pop
|
||||
{ statuses: statuses, starting_depth: starting_depth, next_status: next_status }
|
||||
end
|
||||
end
|
||||
|
||||
def set_account
|
||||
@account = Account.find_local!(params[:account_username])
|
||||
end
|
||||
|
||||
def set_ancestors
|
||||
@ancestors = @status.reply? ? cache_collection(@status.ancestors(ANCESTORS_LIMIT, current_account), Status) : []
|
||||
@next_ancestor = @ancestors.size < ANCESTORS_LIMIT ? nil : @ancestors.shift
|
||||
end
|
||||
|
||||
def set_descendants
|
||||
@max_descendant_thread_id = params[:max_descendant_thread_id]&.to_i
|
||||
@since_descendant_thread_id = params[:since_descendant_thread_id]&.to_i
|
||||
|
||||
descendants = cache_collection(
|
||||
@status.descendants(
|
||||
DESCENDANTS_LIMIT,
|
||||
current_account,
|
||||
@max_descendant_thread_id,
|
||||
@since_descendant_thread_id,
|
||||
DESCENDANTS_DEPTH_LIMIT
|
||||
),
|
||||
Status
|
||||
)
|
||||
|
||||
@descendant_threads = []
|
||||
|
||||
if descendants.present?
|
||||
statuses = [descendants.first]
|
||||
starting_depth = 0
|
||||
|
||||
descendants.drop(1).each_with_index do |descendant, index|
|
||||
if descendants[index].id == descendant.in_reply_to_id
|
||||
statuses << descendant
|
||||
else
|
||||
@descendant_threads << create_descendant_thread(starting_depth, statuses)
|
||||
|
||||
# The thread is broken, assume it's a reply to the root status
|
||||
starting_depth = 0
|
||||
|
||||
# ... unless we can find its ancestor in one of the already-processed threads
|
||||
@descendant_threads.reverse_each do |descendant_thread|
|
||||
statuses = descendant_thread[:statuses]
|
||||
|
||||
index = statuses.find_index do |thread_status|
|
||||
thread_status.id == descendant.in_reply_to_id
|
||||
end
|
||||
|
||||
if index.present?
|
||||
starting_depth = descendant_thread[:starting_depth] + index + 1
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
statuses = [descendant]
|
||||
end
|
||||
end
|
||||
|
||||
@descendant_threads << create_descendant_thread(starting_depth, statuses)
|
||||
end
|
||||
|
||||
@max_descendant_thread_id = @descendant_threads.pop[:statuses].first.id if descendants.size >= DESCENDANTS_LIMIT
|
||||
def set_body_classes
|
||||
@body_classes = 'with-modals'
|
||||
end
|
||||
|
||||
def set_link_headers
|
||||
response.headers['Link'] = LinkHeader.new(
|
||||
[
|
||||
[ActivityPub::TagManager.instance.uri_for(@status), [%w(rel alternate), %w(type application/activity+json)]],
|
||||
]
|
||||
)
|
||||
response.headers['Link'] = LinkHeader.new([[ActivityPub::TagManager.instance.uri_for(@status), [%w(rel alternate), %w(type application/activity+json)]]])
|
||||
end
|
||||
|
||||
def set_status
|
||||
@status = @account.statuses.find(params[:id])
|
||||
@stream_entry = @status.stream_entry
|
||||
|
||||
raise ActiveRecord::RecordNotFound if @stream_entry.nil?
|
||||
|
||||
@type = @stream_entry.activity_type.downcase
|
||||
@sharekey = params[:key]
|
||||
|
||||
if @status.sharekey.present? && @sharekey == @status.sharekey.key
|
||||
skip_authorization
|
||||
else
|
||||
authorize @status, :show?
|
||||
end
|
||||
@status = @account.statuses.find(params[:id])
|
||||
authorize @status, :show?
|
||||
rescue Mastodon::NotPermittedError
|
||||
# Reraise in order to get a 404
|
||||
raise ActiveRecord::RecordNotFound
|
||||
end
|
||||
|
||||
|
@ -213,39 +93,15 @@ class StatusesController < ApplicationController
|
|||
@instance_presenter = InstancePresenter.new
|
||||
end
|
||||
|
||||
def check_account_suspension
|
||||
gone if @account.suspended?
|
||||
end
|
||||
|
||||
def redirect_to_original
|
||||
redirect_to ::TagManager.instance.url_for(@status.reblog) if @status.reblog?
|
||||
redirect_to ActivityPub::TagManager.instance.url_for(@status.reblog) if @status.reblog?
|
||||
end
|
||||
|
||||
def set_referrer_policy_header
|
||||
return if @status.public_visibility? || @status.unlisted_visibility?
|
||||
response.headers['Referrer-Policy'] = 'origin'
|
||||
response.headers['Referrer-Policy'] = 'origin' unless @status.distributable?
|
||||
end
|
||||
|
||||
def page_requested?
|
||||
params[:page] == 'true'
|
||||
end
|
||||
|
||||
def set_replies
|
||||
@replies = page_params[:other_accounts] ? Status.where.not(account_id: @account.id) : @account.statuses
|
||||
@replies = @replies.where(in_reply_to_id: @status.id, visibility: [:public, :unlisted])
|
||||
@replies = @replies.paginate_by_min_id(DESCENDANTS_LIMIT, params[:min_id])
|
||||
end
|
||||
|
||||
def next_page
|
||||
last_reply = @replies.last
|
||||
return if last_reply.nil?
|
||||
same_account = last_reply.account_id == @account.id
|
||||
return unless same_account || @replies.size == DESCENDANTS_LIMIT
|
||||
same_account = false unless @replies.size == DESCENDANTS_LIMIT
|
||||
replies_account_status_url(@account, @status, page: true, min_id: last_reply.id, other_accounts: !same_account)
|
||||
end
|
||||
|
||||
def page_params
|
||||
{ page: true, other_accounts: params[:other_accounts], min_id: params[:min_id] }.compact
|
||||
def set_autoplay
|
||||
@autoplay = truthy_param?(:autoplay)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,59 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class StreamEntriesController < ApplicationController
|
||||
include Authorization
|
||||
include SignatureVerification
|
||||
|
||||
layout 'public'
|
||||
|
||||
before_action :set_account
|
||||
before_action :set_stream_entry
|
||||
before_action :set_link_headers
|
||||
before_action :check_account_suspension
|
||||
before_action :set_cache_headers
|
||||
|
||||
def show
|
||||
respond_to do |format|
|
||||
format.html do
|
||||
use_pack 'public'
|
||||
|
||||
expires_in 5.minutes, public: true unless @stream_entry.hidden?
|
||||
|
||||
redirect_to short_account_status_url(params[:account_username], @stream_entry.activity)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def embed
|
||||
redirect_to embed_short_account_status_url(@account, @stream_entry.activity), status: 301
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_account
|
||||
@account = Account.find_local!(params[:account_username])
|
||||
end
|
||||
|
||||
def set_link_headers
|
||||
response.headers['Link'] = LinkHeader.new(
|
||||
[
|
||||
[ActivityPub::TagManager.instance.uri_for(@stream_entry.activity), [%w(rel alternate), %w(type application/activity+json)]],
|
||||
]
|
||||
)
|
||||
end
|
||||
|
||||
def set_stream_entry
|
||||
@stream_entry = @account.stream_entries.where(activity_type: 'Status').find(params[:id])
|
||||
@type = 'status'
|
||||
|
||||
raise ActiveRecord::RecordNotFound if @stream_entry.activity.nil?
|
||||
authorize @stream_entry.activity, :show? if @stream_entry.hidden?
|
||||
rescue Mastodon::NotPermittedError
|
||||
# Reraise in order to get a 404
|
||||
raise ActiveRecord::RecordNotFound
|
||||
end
|
||||
|
||||
def check_account_suspension
|
||||
gone if @account.suspended?
|
||||
end
|
||||
end
|
|
@ -1,19 +1,23 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class TagsController < ApplicationController
|
||||
include SignatureVerification
|
||||
|
||||
PAGE_SIZE = 20
|
||||
|
||||
layout 'public'
|
||||
|
||||
before_action :require_signature!, if: -> { request.format == :json && authorized_fetch_mode? }
|
||||
before_action :set_tag
|
||||
before_action :set_body_classes
|
||||
before_action :set_instance_presenter
|
||||
|
||||
def show
|
||||
@tag = Tag.find_normalized!(params[:id])
|
||||
|
||||
respond_to do |format|
|
||||
format.html do
|
||||
use_pack 'about'
|
||||
expires_in 0, public: true
|
||||
|
||||
@initial_state_json = ActiveModelSerializers::SerializableResource.new(
|
||||
InitialStatePresenter.new(settings: {}, token: current_session&.token),
|
||||
serializer: InitialStateSerializer, monsterfork_api: monsterfork_api
|
||||
|
@ -21,6 +25,8 @@ class TagsController < ApplicationController
|
|||
end
|
||||
|
||||
format.rss do
|
||||
expires_in 0, public: true
|
||||
|
||||
@statuses = HashtagQueryService.new.call(@tag, params.slice(:any, :all, :none)).limit(PAGE_SIZE)
|
||||
@statuses = cache_collection(@statuses, Status)
|
||||
|
||||
|
@ -28,19 +34,22 @@ class TagsController < ApplicationController
|
|||
end
|
||||
|
||||
format.json do
|
||||
expires_in 3.minutes, public: public_fetch_mode?
|
||||
|
||||
@statuses = HashtagQueryService.new.call(@tag, params.slice(:any, :all, :none), current_account, params[:local]).paginate_by_max_id(PAGE_SIZE, params[:max_id])
|
||||
@statuses = cache_collection(@statuses, Status)
|
||||
|
||||
render json: collection_presenter,
|
||||
serializer: ActivityPub::CollectionSerializer,
|
||||
adapter: ActivityPub::Adapter,
|
||||
content_type: 'application/activity+json'
|
||||
render json: collection_presenter, serializer: ActivityPub::CollectionSerializer, adapter: ActivityPub::Adapter, content_type: 'application/activity+json'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_tag
|
||||
@tag = Tag.find_normalized!(params[:id])
|
||||
end
|
||||
|
||||
def set_body_classes
|
||||
@body_classes = 'with-modals'
|
||||
end
|
||||
|
|
|
@ -13,7 +13,7 @@ module WellKnown
|
|||
format.xml { render content_type: 'application/xrd+xml' }
|
||||
end
|
||||
|
||||
expires_in(3.days, public: true)
|
||||
expires_in 3.days, public: true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -19,7 +19,7 @@ module WellKnown
|
|||
end
|
||||
end
|
||||
|
||||
expires_in(3.days, public: true)
|
||||
expires_in 3.days, public: true
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
head 404
|
||||
end
|
||||
|
@ -27,12 +27,9 @@ module WellKnown
|
|||
private
|
||||
|
||||
def username_from_resource
|
||||
resource_user = resource_param
|
||||
|
||||
resource_user = resource_param
|
||||
username, domain = resource_user.split('@')
|
||||
if Rails.configuration.x.alternate_domains.include?(domain)
|
||||
resource_user = "#{username}@#{Rails.configuration.x.local_domain}"
|
||||
end
|
||||
resource_user = "#{username}@#{Rails.configuration.x.local_domain}" if Rails.configuration.x.alternate_domains.include?(domain)
|
||||
|
||||
WebfingerResource.new(resource_user).username
|
||||
end
|
||||
|
|
|
@ -89,7 +89,7 @@ module Admin::ActionLogsHelper
|
|||
when 'DomainBlock', 'EmailDomainBlock'
|
||||
link_to record.domain, admin_instance_path(id: record.domain)
|
||||
when 'Status'
|
||||
link_to record.account.acct, TagManager.instance.url_for(record)
|
||||
link_to record.account.acct, ActivityPub::TagManager.instance.url_for(record)
|
||||
when 'AccountWarning'
|
||||
link_to record.target_account.acct, admin_account_path(record.target_account_id)
|
||||
end
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module DomainControlHelper
|
||||
def domain_not_allowed?(uri_or_domain)
|
||||
return if uri_or_domain.blank?
|
||||
|
||||
domain = begin
|
||||
if uri_or_domain.include?('://')
|
||||
Addressable::URI.parse(uri_or_domain).domain
|
||||
else
|
||||
uri_or_domain
|
||||
end
|
||||
end
|
||||
|
||||
DomainBlock.blocked?(domain)
|
||||
end
|
||||
end
|
|
@ -21,7 +21,7 @@ module HomeHelper
|
|||
end
|
||||
end
|
||||
else
|
||||
link_to(path || TagManager.instance.url_for(account), class: 'account__display-name') do
|
||||
link_to(path || ActivityPub::TagManager.instance.url_for(account), class: 'account__display-name') do
|
||||
content_tag(:div, class: 'account__avatar-wrapper') do
|
||||
content_tag(:div, '', class: 'account__avatar', style: "width: #{size}px; height: #{size}px; background-size: #{size}px #{size}px; background-image: url(#{full_asset_url(current_account&.user&.setting_auto_play_gif ? account.avatar_original_url : account.avatar_static_url)})")
|
||||
end +
|
||||
|
|
|
@ -131,6 +131,7 @@ module JsonLdHelper
|
|||
end
|
||||
|
||||
doc = JSON::LD::API::RemoteDocument.new(json, documentUrl: url)
|
||||
# doc = JSON::LD::API::RemoteDocument.new(url, json)
|
||||
|
||||
block_given? ? yield(doc) : doc
|
||||
end
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module StreamEntriesHelper
|
||||
module StatusesHelper
|
||||
EMBEDDED_CONTROLLER = 'statuses'
|
||||
EMBEDDED_ACTION = 'embed'
|
||||
|
||||
|
@ -136,11 +136,13 @@ module StreamEntriesHelper
|
|||
|
||||
def status_text_summary(status)
|
||||
return if status.spoiler_text.blank?
|
||||
|
||||
I18n.t('statuses.content_warning', warning: status.spoiler_text)
|
||||
end
|
||||
|
||||
def poll_summary(status)
|
||||
return unless status.preloadable_poll
|
||||
|
||||
status.preloadable_poll.options.map { |o| "[ ] #{o}" }.join("\n")
|
||||
end
|
||||
|
|
@ -47,7 +47,7 @@ const getProfileAvatarAnimationHandler = (swapTo) => {
|
|||
return ({ target }) => {
|
||||
const swapSrc = target.getAttribute(swapTo);
|
||||
//only change the img source if autoplay is off and the image src is actually different
|
||||
if(target.getAttribute('data-autoplay') === 'false' && target.src !== swapSrc) {
|
||||
if(target.getAttribute('data-autoplay') !== 'true' && target.src !== swapSrc) {
|
||||
target.src = swapSrc;
|
||||
}
|
||||
};
|
||||
|
|
|
@ -146,6 +146,10 @@
|
|||
min-height: 100%;
|
||||
}
|
||||
|
||||
.flash-message {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 738px) {
|
||||
grid-template-columns: minmax(0, 50%) minmax(0, 50%);
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
@import 'widgets';
|
||||
@import 'forms';
|
||||
@import 'accounts';
|
||||
@import 'stream_entries';
|
||||
@import 'statuses';
|
||||
@import 'components/index';
|
||||
@import 'polls';
|
||||
@import 'about';
|
||||
|
|
|
@ -122,11 +122,11 @@ class DropdownMenu extends React.PureComponent {
|
|||
return <li key={`sep-${i}`} className='dropdown-menu__separator' />;
|
||||
}
|
||||
|
||||
const { text, href = '#' } = option;
|
||||
const { text, href = '#', target = '_blank', method } = option;
|
||||
|
||||
return (
|
||||
<li className='dropdown-menu__item' key={`${text}-${i}`}>
|
||||
<a href={href} target='_blank' rel='noopener' role='button' tabIndex='0' ref={i === 0 ? this.setFocusRef : null} onClick={this.handleClick} onKeyDown={this.handleItemKeyDown} data-index={i}>
|
||||
<a href={href} target={target} data-method={method} rel='noopener' role='button' tabIndex='0' ref={i === 0 ? this.setFocusRef : null} onClick={this.handleClick} onKeyDown={this.handleItemKeyDown} data-index={i}>
|
||||
{text}
|
||||
</a>
|
||||
</li>
|
||||
|
|
|
@ -32,6 +32,7 @@ export default class ScrollableList extends PureComponent {
|
|||
alwaysPrepend: PropTypes.bool,
|
||||
emptyMessage: PropTypes.node,
|
||||
children: PropTypes.node,
|
||||
bindToDocument: PropTypes.bool,
|
||||
};
|
||||
|
||||
static defaultProps = {
|
||||
|
@ -47,7 +48,9 @@ export default class ScrollableList extends PureComponent {
|
|||
|
||||
handleScroll = throttle(() => {
|
||||
if (this.node) {
|
||||
const { scrollTop, scrollHeight, clientHeight } = this.node;
|
||||
const scrollTop = this.getScrollTop();
|
||||
const scrollHeight = this.getScrollHeight();
|
||||
const clientHeight = this.getClientHeight();
|
||||
const offset = scrollHeight - scrollTop - clientHeight;
|
||||
|
||||
if (400 > offset && this.props.onLoadMore && this.props.hasMore && !this.props.isLoading) {
|
||||
|
@ -77,9 +80,14 @@ export default class ScrollableList extends PureComponent {
|
|||
scrollToTopOnMouseIdle = false;
|
||||
|
||||
setScrollTop = newScrollTop => {
|
||||
if (this.node.scrollTop !== newScrollTop) {
|
||||
if (this.getScrollTop() !== newScrollTop) {
|
||||
this.lastScrollWasSynthetic = true;
|
||||
this.node.scrollTop = newScrollTop;
|
||||
|
||||
if (this.props.bindToDocument) {
|
||||
document.scrollingElement.scrollTop = newScrollTop;
|
||||
} else {
|
||||
this.node.scrollTop = newScrollTop;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -97,7 +105,7 @@ export default class ScrollableList extends PureComponent {
|
|||
this.clearMouseIdleTimer();
|
||||
this.mouseIdleTimer = setTimeout(this.handleMouseIdle, MOUSE_IDLE_DELAY);
|
||||
|
||||
if (!this.mouseMovedRecently && this.node.scrollTop === 0) {
|
||||
if (!this.mouseMovedRecently && this.getScrollTop() === 0) {
|
||||
// Only set if we just started moving and are scrolled to the top.
|
||||
this.scrollToTopOnMouseIdle = true;
|
||||
}
|
||||
|
@ -132,15 +140,27 @@ export default class ScrollableList extends PureComponent {
|
|||
}
|
||||
|
||||
getScrollPosition = () => {
|
||||
if (this.node && (this.node.scrollTop > 0 || this.mouseMovedRecently)) {
|
||||
return { height: this.node.scrollHeight, top: this.node.scrollTop };
|
||||
if (this.node && (this.getScrollTop() > 0 || this.mouseMovedRecently)) {
|
||||
return { height: this.getScrollHeight(), top: this.getScrollTop() };
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
getScrollTop = () => {
|
||||
return this.props.bindToDocument ? document.scrollingElement.scrollTop : this.node.scrollTop;
|
||||
}
|
||||
|
||||
getScrollHeight = () => {
|
||||
return this.props.bindToDocument ? document.scrollingElement.scrollHeight : this.node.scrollHeight;
|
||||
}
|
||||
|
||||
getClientHeight = () => {
|
||||
return this.props.bindToDocument ? document.scrollingElement.clientHeight : this.node.clientHeight;
|
||||
}
|
||||
|
||||
updateScrollBottom = (snapshot) => {
|
||||
const newScrollTop = this.node.scrollHeight - snapshot;
|
||||
const newScrollTop = this.getScrollHeight() - snapshot;
|
||||
|
||||
this.setScrollTop(newScrollTop);
|
||||
}
|
||||
|
@ -150,8 +170,8 @@ export default class ScrollableList extends PureComponent {
|
|||
React.Children.count(prevProps.children) < React.Children.count(this.props.children) &&
|
||||
this.getFirstChildKey(prevProps) !== this.getFirstChildKey(this.props);
|
||||
|
||||
if (someItemInserted && (this.node.scrollTop > 0 || this.mouseMovedRecently)) {
|
||||
return this.node.scrollHeight - this.node.scrollTop;
|
||||
if (someItemInserted && (this.getScrollTop() > 0 || this.mouseMovedRecently)) {
|
||||
return this.getScrollHeight() - this.getScrollTop();
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
|
@ -161,7 +181,7 @@ export default class ScrollableList extends PureComponent {
|
|||
// Reset the scroll position when a new child comes in in order not to
|
||||
// jerk the scrollbar around if you're already scrolled down the page.
|
||||
if (snapshot !== null) {
|
||||
this.setScrollTop(this.node.scrollHeight - snapshot);
|
||||
this.setScrollTop(this.getScrollHeight() - snapshot);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -194,13 +214,23 @@ export default class ScrollableList extends PureComponent {
|
|||
}
|
||||
|
||||
attachScrollListener () {
|
||||
this.node.addEventListener('scroll', this.handleScroll);
|
||||
this.node.addEventListener('wheel', this.handleWheel);
|
||||
if (this.props.bindToDocument) {
|
||||
document.addEventListener('scroll', this.handleScroll);
|
||||
document.addEventListener('wheel', this.handleWheel);
|
||||
} else {
|
||||
this.node.addEventListener('scroll', this.handleScroll);
|
||||
this.node.addEventListener('wheel', this.handleWheel);
|
||||
}
|
||||
}
|
||||
|
||||
detachScrollListener () {
|
||||
this.node.removeEventListener('scroll', this.handleScroll);
|
||||
this.node.removeEventListener('wheel', this.handleWheel);
|
||||
if (this.props.bindToDocument) {
|
||||
document.removeEventListener('scroll', this.handleScroll);
|
||||
document.removeEventListener('wheel', this.handleWheel);
|
||||
} else {
|
||||
this.node.removeEventListener('scroll', this.handleScroll);
|
||||
this.node.removeEventListener('wheel', this.handleWheel);
|
||||
}
|
||||
}
|
||||
|
||||
getFirstChildKey (props) {
|
||||
|
|
|
@ -8,6 +8,7 @@ import Video from '../features/video';
|
|||
import Card from '../features/status/components/card';
|
||||
import Poll from 'mastodon/components/poll';
|
||||
import ModalRoot from '../components/modal_root';
|
||||
import { getScrollbarWidth } from '../features/ui/components/modal_root';
|
||||
import MediaModal from '../features/ui/components/media_modal';
|
||||
import { List as ImmutableList, fromJS } from 'immutable';
|
||||
|
||||
|
@ -31,6 +32,8 @@ export default class MediaContainer extends PureComponent {
|
|||
|
||||
handleOpenMedia = (media, index) => {
|
||||
document.body.classList.add('with-modals--active');
|
||||
document.documentElement.style.marginRight = `${getScrollbarWidth()}px`;
|
||||
|
||||
this.setState({ media, index });
|
||||
}
|
||||
|
||||
|
@ -38,11 +41,15 @@ export default class MediaContainer extends PureComponent {
|
|||
const media = ImmutableList([video]);
|
||||
|
||||
document.body.classList.add('with-modals--active');
|
||||
document.documentElement.style.marginRight = `${getScrollbarWidth()}px`;
|
||||
|
||||
this.setState({ media, time });
|
||||
}
|
||||
|
||||
handleCloseMedia = () => {
|
||||
document.body.classList.remove('with-modals--active');
|
||||
document.documentElement.style.marginRight = 0;
|
||||
|
||||
this.setState({ media: null, index: null, time: null });
|
||||
}
|
||||
|
||||
|
|
|
@ -44,6 +44,7 @@ class AccountTimeline extends ImmutablePureComponent {
|
|||
withReplies: PropTypes.bool,
|
||||
blockedBy: PropTypes.bool,
|
||||
isAccount: PropTypes.bool,
|
||||
multiColumn: PropTypes.bool,
|
||||
};
|
||||
|
||||
componentWillMount () {
|
||||
|
@ -77,7 +78,7 @@ class AccountTimeline extends ImmutablePureComponent {
|
|||
}
|
||||
|
||||
render () {
|
||||
const { shouldUpdateScroll, statusIds, featuredStatusIds, isLoading, hasMore, blockedBy, isAccount } = this.props;
|
||||
const { shouldUpdateScroll, statusIds, featuredStatusIds, isLoading, hasMore, blockedBy, isAccount, multiColumn } = this.props;
|
||||
|
||||
if (!isAccount) {
|
||||
return (
|
||||
|
@ -112,6 +113,7 @@ class AccountTimeline extends ImmutablePureComponent {
|
|||
onLoadMore={this.handleLoadMore}
|
||||
shouldUpdateScroll={shouldUpdateScroll}
|
||||
emptyMessage={emptyMessage}
|
||||
bindToDocument={!multiColumn}
|
||||
/>
|
||||
</Column>
|
||||
);
|
||||
|
|
|
@ -32,6 +32,7 @@ class Blocks extends ImmutablePureComponent {
|
|||
accountIds: ImmutablePropTypes.list,
|
||||
hasMore: PropTypes.bool,
|
||||
intl: PropTypes.object.isRequired,
|
||||
multiColumn: PropTypes.bool,
|
||||
};
|
||||
|
||||
componentWillMount () {
|
||||
|
@ -43,7 +44,7 @@ class Blocks extends ImmutablePureComponent {
|
|||
}, 300, { leading: true });
|
||||
|
||||
render () {
|
||||
const { intl, accountIds, shouldUpdateScroll, hasMore } = this.props;
|
||||
const { intl, accountIds, shouldUpdateScroll, hasMore, multiColumn } = this.props;
|
||||
|
||||
if (!accountIds) {
|
||||
return (
|
||||
|
@ -64,6 +65,7 @@ class Blocks extends ImmutablePureComponent {
|
|||
hasMore={hasMore}
|
||||
shouldUpdateScroll={shouldUpdateScroll}
|
||||
emptyMessage={emptyMessage}
|
||||
bindToDocument={!multiColumn}
|
||||
>
|
||||
{accountIds.map(id =>
|
||||
<AccountContainer key={id} id={id} />
|
||||
|
|
|
@ -126,6 +126,7 @@ class CommunityTimeline extends React.PureComponent {
|
|||
onLoadMore={this.handleLoadMore}
|
||||
emptyMessage={<FormattedMessage id='empty_column.community' defaultMessage='The local timeline is empty. Write something publicly to get the ball rolling!' />}
|
||||
shouldUpdateScroll={shouldUpdateScroll}
|
||||
bindToDocument={!multiColumn}
|
||||
/>
|
||||
</Column>
|
||||
);
|
||||
|
|
|
@ -15,6 +15,7 @@ const messages = defineMessages({
|
|||
domain_blocks: { id: 'navigation_bar.domain_blocks', defaultMessage: 'Hidden domains' },
|
||||
mutes: { id: 'navigation_bar.mutes', defaultMessage: 'Muted users' },
|
||||
filters: { id: 'navigation_bar.filters', defaultMessage: 'Muted words' },
|
||||
logout: { id: 'navigation_bar.logout', defaultMessage: 'Logout' },
|
||||
});
|
||||
|
||||
export default @injectIntl
|
||||
|
@ -42,6 +43,8 @@ class ActionBar extends React.PureComponent {
|
|||
menu.push({ text: intl.formatMessage(messages.blocks), to: '/blocks' });
|
||||
menu.push({ text: intl.formatMessage(messages.domain_blocks), to: '/domain_blocks' });
|
||||
menu.push({ text: intl.formatMessage(messages.filters), href: '/filters' });
|
||||
menu.push(null);
|
||||
menu.push({ text: intl.formatMessage(messages.logout), href: '/auth/sign_out', target: null, method: 'delete' });
|
||||
|
||||
return (
|
||||
<div className='compose__action-bar'>
|
||||
|
|
|
@ -33,6 +33,7 @@ class Blocks extends ImmutablePureComponent {
|
|||
hasMore: PropTypes.bool,
|
||||
domains: ImmutablePropTypes.orderedSet,
|
||||
intl: PropTypes.object.isRequired,
|
||||
multiColumn: PropTypes.bool,
|
||||
};
|
||||
|
||||
componentWillMount () {
|
||||
|
@ -44,7 +45,7 @@ class Blocks extends ImmutablePureComponent {
|
|||
}, 300, { leading: true });
|
||||
|
||||
render () {
|
||||
const { intl, domains, shouldUpdateScroll, hasMore } = this.props;
|
||||
const { intl, domains, shouldUpdateScroll, hasMore, multiColumn } = this.props;
|
||||
|
||||
if (!domains) {
|
||||
return (
|
||||
|
@ -65,6 +66,7 @@ class Blocks extends ImmutablePureComponent {
|
|||
hasMore={hasMore}
|
||||
shouldUpdateScroll={shouldUpdateScroll}
|
||||
emptyMessage={emptyMessage}
|
||||
bindToDocument={!multiColumn}
|
||||
>
|
||||
{domains.map(domain =>
|
||||
<DomainContainer key={domain} domain={domain} />
|
||||
|
|
|
@ -95,6 +95,7 @@ class Favourites extends ImmutablePureComponent {
|
|||
onLoadMore={this.handleLoadMore}
|
||||
shouldUpdateScroll={shouldUpdateScroll}
|
||||
emptyMessage={emptyMessage}
|
||||
bindToDocument={!multiColumn}
|
||||
/>
|
||||
</Column>
|
||||
);
|
||||
|
|
|
@ -23,6 +23,7 @@ class Favourites extends ImmutablePureComponent {
|
|||
dispatch: PropTypes.func.isRequired,
|
||||
shouldUpdateScroll: PropTypes.func,
|
||||
accountIds: ImmutablePropTypes.list,
|
||||
multiColumn: PropTypes.bool,
|
||||
};
|
||||
|
||||
componentWillMount () {
|
||||
|
@ -36,7 +37,7 @@ class Favourites extends ImmutablePureComponent {
|
|||
}
|
||||
|
||||
render () {
|
||||
const { shouldUpdateScroll, accountIds } = this.props;
|
||||
const { shouldUpdateScroll, accountIds, multiColumn } = this.props;
|
||||
|
||||
if (!accountIds) {
|
||||
return (
|
||||
|
@ -56,6 +57,7 @@ class Favourites extends ImmutablePureComponent {
|
|||
scrollKey='favourites'
|
||||
shouldUpdateScroll={shouldUpdateScroll}
|
||||
emptyMessage={emptyMessage}
|
||||
bindToDocument={!multiColumn}
|
||||
>
|
||||
{accountIds.map(id =>
|
||||
<AccountContainer key={id} id={id} withNote={false} />
|
||||
|
|
|
@ -32,6 +32,7 @@ class FollowRequests extends ImmutablePureComponent {
|
|||
hasMore: PropTypes.bool,
|
||||
accountIds: ImmutablePropTypes.list,
|
||||
intl: PropTypes.object.isRequired,
|
||||
multiColumn: PropTypes.bool,
|
||||
};
|
||||
|
||||
componentWillMount () {
|
||||
|
@ -43,7 +44,7 @@ class FollowRequests extends ImmutablePureComponent {
|
|||
}, 300, { leading: true });
|
||||
|
||||
render () {
|
||||
const { intl, shouldUpdateScroll, accountIds, hasMore } = this.props;
|
||||
const { intl, shouldUpdateScroll, accountIds, hasMore, multiColumn } = this.props;
|
||||
|
||||
if (!accountIds) {
|
||||
return (
|
||||
|
@ -64,6 +65,7 @@ class FollowRequests extends ImmutablePureComponent {
|
|||
hasMore={hasMore}
|
||||
shouldUpdateScroll={shouldUpdateScroll}
|
||||
emptyMessage={emptyMessage}
|
||||
bindToDocument={!multiColumn}
|
||||
>
|
||||
{accountIds.map(id =>
|
||||
<AccountAuthorizeContainer key={id} id={id} />
|
||||
|
|
|
@ -36,6 +36,7 @@ class Followers extends ImmutablePureComponent {
|
|||
hasMore: PropTypes.bool,
|
||||
blockedBy: PropTypes.bool,
|
||||
isAccount: PropTypes.bool,
|
||||
multiColumn: PropTypes.bool,
|
||||
};
|
||||
|
||||
componentWillMount () {
|
||||
|
@ -55,7 +56,7 @@ class Followers extends ImmutablePureComponent {
|
|||
}, 300, { leading: true });
|
||||
|
||||
render () {
|
||||
const { shouldUpdateScroll, accountIds, hasMore, blockedBy, isAccount } = this.props;
|
||||
const { shouldUpdateScroll, accountIds, hasMore, blockedBy, isAccount, multiColumn } = this.props;
|
||||
|
||||
if (!isAccount) {
|
||||
return (
|
||||
|
@ -87,6 +88,7 @@ class Followers extends ImmutablePureComponent {
|
|||
prepend={<HeaderContainer accountId={this.props.params.accountId} hideTabs />}
|
||||
alwaysPrepend
|
||||
emptyMessage={emptyMessage}
|
||||
bindToDocument={!multiColumn}
|
||||
>
|
||||
{blockedBy ? [] : accountIds.map(id =>
|
||||
<AccountContainer key={id} id={id} withNote={false} />
|
||||
|
|
|
@ -36,6 +36,7 @@ class Following extends ImmutablePureComponent {
|
|||
hasMore: PropTypes.bool,
|
||||
blockedBy: PropTypes.bool,
|
||||
isAccount: PropTypes.bool,
|
||||
multiColumn: PropTypes.bool,
|
||||
};
|
||||
|
||||
componentWillMount () {
|
||||
|
@ -55,7 +56,7 @@ class Following extends ImmutablePureComponent {
|
|||
}, 300, { leading: true });
|
||||
|
||||
render () {
|
||||
const { shouldUpdateScroll, accountIds, hasMore, blockedBy, isAccount } = this.props;
|
||||
const { shouldUpdateScroll, accountIds, hasMore, blockedBy, isAccount, multiColumn } = this.props;
|
||||
|
||||
if (!isAccount) {
|
||||
return (
|
||||
|
@ -87,6 +88,7 @@ class Following extends ImmutablePureComponent {
|
|||
prepend={<HeaderContainer accountId={this.props.params.accountId} hideTabs />}
|
||||
alwaysPrepend
|
||||
emptyMessage={emptyMessage}
|
||||
bindToDocument={!multiColumn}
|
||||
>
|
||||
{blockedBy ? [] : accountIds.map(id =>
|
||||
<AccountContainer key={id} id={id} withNote={false} />
|
||||
|
|
|
@ -157,6 +157,7 @@ class HashtagTimeline extends React.PureComponent {
|
|||
onLoadMore={this.handleLoadMore}
|
||||
emptyMessage={<FormattedMessage id='empty_column.hashtag' defaultMessage='There is nothing in this hashtag yet.' />}
|
||||
shouldUpdateScroll={shouldUpdateScroll}
|
||||
bindToDocument={!multiColumn}
|
||||
/>
|
||||
</Column>
|
||||
);
|
||||
|
|
|
@ -119,6 +119,7 @@ class HomeTimeline extends React.PureComponent {
|
|||
timelineId='home'
|
||||
emptyMessage={<FormattedMessage id='empty_column.home' defaultMessage='Your home timeline is empty! Visit {public} or use search to get started and meet other users.' values={{ public: <Link to='/timelines/public'><FormattedMessage id='empty_column.home.public_timeline' defaultMessage='the public timeline' /></Link> }} />}
|
||||
shouldUpdateScroll={shouldUpdateScroll}
|
||||
bindToDocument={!multiColumn}
|
||||
/>
|
||||
</Column>
|
||||
);
|
||||
|
|
|
@ -184,6 +184,7 @@ class ListTimeline extends React.PureComponent {
|
|||
onLoadMore={this.handleLoadMore}
|
||||
emptyMessage={<FormattedMessage id='empty_column.list' defaultMessage='There is nothing in this list yet. When members of this list post new statuses, they will appear here.' />}
|
||||
shouldUpdateScroll={shouldUpdateScroll}
|
||||
bindToDocument={!multiColumn}
|
||||
/>
|
||||
</Column>
|
||||
);
|
||||
|
|
|
@ -40,6 +40,7 @@ class Lists extends ImmutablePureComponent {
|
|||
dispatch: PropTypes.func.isRequired,
|
||||
lists: ImmutablePropTypes.list,
|
||||
intl: PropTypes.object.isRequired,
|
||||
multiColumn: PropTypes.bool,
|
||||
};
|
||||
|
||||
componentWillMount () {
|
||||
|
@ -47,7 +48,7 @@ class Lists extends ImmutablePureComponent {
|
|||
}
|
||||
|
||||
render () {
|
||||
const { intl, shouldUpdateScroll, lists } = this.props;
|
||||
const { intl, shouldUpdateScroll, lists, multiColumn } = this.props;
|
||||
|
||||
if (!lists) {
|
||||
return (
|
||||
|
@ -70,6 +71,7 @@ class Lists extends ImmutablePureComponent {
|
|||
shouldUpdateScroll={shouldUpdateScroll}
|
||||
emptyMessage={emptyMessage}
|
||||
prepend={<ColumnSubheading text={intl.formatMessage(messages.subheading)} />}
|
||||
bindToDocument={!multiColumn}
|
||||
>
|
||||
{lists.map(list =>
|
||||
<ColumnLink key={list.get('id')} to={`/timelines/list/${list.get('id')}`} icon='list-ul' text={list.get('title')} />
|
||||
|
|
|
@ -32,6 +32,7 @@ class Mutes extends ImmutablePureComponent {
|
|||
hasMore: PropTypes.bool,
|
||||
accountIds: ImmutablePropTypes.list,
|
||||
intl: PropTypes.object.isRequired,
|
||||
multiColumn: PropTypes.bool,
|
||||
};
|
||||
|
||||
componentWillMount () {
|
||||
|
@ -43,7 +44,7 @@ class Mutes extends ImmutablePureComponent {
|
|||
}, 300, { leading: true });
|
||||
|
||||
render () {
|
||||
const { intl, shouldUpdateScroll, hasMore, accountIds } = this.props;
|
||||
const { intl, shouldUpdateScroll, hasMore, accountIds, multiColumn } = this.props;
|
||||
|
||||
if (!accountIds) {
|
||||
return (
|
||||
|
@ -64,6 +65,7 @@ class Mutes extends ImmutablePureComponent {
|
|||
hasMore={hasMore}
|
||||
shouldUpdateScroll={shouldUpdateScroll}
|
||||
emptyMessage={emptyMessage}
|
||||
bindToDocument={!multiColumn}
|
||||
>
|
||||
{accountIds.map(id =>
|
||||
<AccountContainer key={id} id={id} />
|
||||
|
|
|
@ -183,6 +183,7 @@ class Notifications extends React.PureComponent {
|
|||
onScrollToTop={this.handleScrollToTop}
|
||||
onScroll={this.handleScroll}
|
||||
shouldUpdateScroll={shouldUpdateScroll}
|
||||
bindToDocument={!multiColumn}
|
||||
>
|
||||
{scrollableContent}
|
||||
</ScrollableList>
|
||||
|
|
|
@ -28,6 +28,7 @@ class PinnedStatuses extends ImmutablePureComponent {
|
|||
statusIds: ImmutablePropTypes.list.isRequired,
|
||||
intl: PropTypes.object.isRequired,
|
||||
hasMore: PropTypes.bool.isRequired,
|
||||
multiColumn: PropTypes.bool,
|
||||
};
|
||||
|
||||
componentWillMount () {
|
||||
|
@ -43,7 +44,7 @@ class PinnedStatuses extends ImmutablePureComponent {
|
|||
}
|
||||
|
||||
render () {
|
||||
const { intl, shouldUpdateScroll, statusIds, hasMore } = this.props;
|
||||
const { intl, shouldUpdateScroll, statusIds, hasMore, multiColumn } = this.props;
|
||||
|
||||
return (
|
||||
<Column icon='thumb-tack' heading={intl.formatMessage(messages.heading)} ref={this.setRef}>
|
||||
|
@ -53,6 +54,7 @@ class PinnedStatuses extends ImmutablePureComponent {
|
|||
scrollKey='pinned_statuses'
|
||||
hasMore={hasMore}
|
||||
shouldUpdateScroll={shouldUpdateScroll}
|
||||
bindToDocument={!multiColumn}
|
||||
/>
|
||||
</Column>
|
||||
);
|
||||
|
|
|
@ -126,6 +126,7 @@ class PublicTimeline extends React.PureComponent {
|
|||
scrollKey={`public_timeline-${columnId}`}
|
||||
emptyMessage={<FormattedMessage id='empty_column.public' defaultMessage='There is nothing here! Write something publicly, or manually follow users from other servers to fill it up' />}
|
||||
shouldUpdateScroll={shouldUpdateScroll}
|
||||
bindToDocument={!multiColumn}
|
||||
/>
|
||||
</Column>
|
||||
);
|
||||
|
|
|
@ -23,6 +23,7 @@ class Reblogs extends ImmutablePureComponent {
|
|||
dispatch: PropTypes.func.isRequired,
|
||||
shouldUpdateScroll: PropTypes.func,
|
||||
accountIds: ImmutablePropTypes.list,
|
||||
multiColumn: PropTypes.bool,
|
||||
};
|
||||
|
||||
componentWillMount () {
|
||||
|
@ -36,7 +37,7 @@ class Reblogs extends ImmutablePureComponent {
|
|||
}
|
||||
|
||||
render () {
|
||||
const { shouldUpdateScroll, accountIds } = this.props;
|
||||
const { shouldUpdateScroll, accountIds, multiColumn } = this.props;
|
||||
|
||||
if (!accountIds) {
|
||||
return (
|
||||
|
@ -56,6 +57,7 @@ class Reblogs extends ImmutablePureComponent {
|
|||
scrollKey='reblogs'
|
||||
shouldUpdateScroll={shouldUpdateScroll}
|
||||
emptyMessage={emptyMessage}
|
||||
bindToDocument={!multiColumn}
|
||||
>
|
||||
{accountIds.map(id =>
|
||||
<AccountContainer key={id} id={id} withNote={false} />
|
||||
|
|
|
@ -32,6 +32,28 @@ const MODAL_COMPONENTS = {
|
|||
'LIST_ADDER':ListAdder,
|
||||
};
|
||||
|
||||
let cachedScrollbarWidth = null;
|
||||
|
||||
export const getScrollbarWidth = () => {
|
||||
if (cachedScrollbarWidth !== null) {
|
||||
return cachedScrollbarWidth;
|
||||
}
|
||||
|
||||
const outer = document.createElement('div');
|
||||
outer.style.visibility = 'hidden';
|
||||
outer.style.overflow = 'scroll';
|
||||
document.body.appendChild(outer);
|
||||
|
||||
const inner = document.createElement('div');
|
||||
outer.appendChild(inner);
|
||||
|
||||
const scrollbarWidth = outer.offsetWidth - inner.offsetWidth;
|
||||
cachedScrollbarWidth = scrollbarWidth;
|
||||
outer.parentNode.removeChild(outer);
|
||||
|
||||
return scrollbarWidth;
|
||||
};
|
||||
|
||||
export default class ModalRoot extends React.PureComponent {
|
||||
|
||||
static propTypes = {
|
||||
|
@ -47,8 +69,10 @@ export default class ModalRoot extends React.PureComponent {
|
|||
componentDidUpdate (prevProps, prevState, { visible }) {
|
||||
if (visible) {
|
||||
document.body.classList.add('with-modals--active');
|
||||
document.documentElement.style.marginRight = `${getScrollbarWidth()}px`;
|
||||
} else {
|
||||
document.body.classList.remove('with-modals--active');
|
||||
document.documentElement.style.marginRight = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -110,12 +110,25 @@ class SwitchingColumnsArea extends React.PureComponent {
|
|||
|
||||
componentWillMount () {
|
||||
window.addEventListener('resize', this.handleResize, { passive: true });
|
||||
|
||||
if (this.state.mobile || forceSingleColumn) {
|
||||
document.body.classList.toggle('layout-single-column', true);
|
||||
document.body.classList.toggle('layout-multiple-columns', false);
|
||||
} else {
|
||||
document.body.classList.toggle('layout-single-column', false);
|
||||
document.body.classList.toggle('layout-multiple-columns', true);
|
||||
}
|
||||
}
|
||||
|
||||
componentDidUpdate (prevProps) {
|
||||
componentDidUpdate (prevProps, prevState) {
|
||||
if (![this.props.location.pathname, '/'].includes(prevProps.location.pathname)) {
|
||||
this.node.handleChildrenContentChange();
|
||||
}
|
||||
|
||||
if (prevState.mobile !== this.state.mobile && !forceSingleColumn) {
|
||||
document.body.classList.toggle('layout-single-column', this.state.mobile);
|
||||
document.body.classList.toggle('layout-multiple-columns', !this.state.mobile);
|
||||
}
|
||||
}
|
||||
|
||||
componentWillUnmount () {
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
{
|
||||
"account.add_or_remove_from_list": "أضيف/ي أو أحذف/ي من القائمة",
|
||||
"account.add_or_remove_from_list": "أضفه أو أزله من القائمة",
|
||||
"account.badges.bot": "روبوت",
|
||||
"account.block": "حظر @{name}",
|
||||
"account.block_domain": "إخفاء كل شيئ قادم من إسم النطاق {domain}",
|
||||
"account.block_domain": "إخفاء كل شيئ قادم من اسم النطاق {domain}",
|
||||
"account.blocked": "محظور",
|
||||
"account.direct": "رسالة خاصة إلى @{name}",
|
||||
"account.domain_blocked": "النطاق مخفي",
|
||||
|
@ -19,7 +19,7 @@
|
|||
"account.locked_info": "تم تأمين خصوصية هذا الحساب عبر قفل. صاحب الحساب يُراجِع يدويا طلبات المتابَعة و الاشتراك بحسابه.",
|
||||
"account.media": "وسائط",
|
||||
"account.mention": "أُذكُر/ي @{name}",
|
||||
"account.moved_to": "{name} إنتقل إلى :",
|
||||
"account.moved_to": "{name} انتقل إلى:",
|
||||
"account.mute": "كتم @{name}",
|
||||
"account.mute_notifications": "كتم الإخطارات من @{name}",
|
||||
"account.muted": "مكتوم",
|
||||
|
@ -36,7 +36,7 @@
|
|||
"account.unmute": "إلغاء الكتم عن @{name}",
|
||||
"account.unmute_notifications": "إلغاء كتم إخطارات @{name}",
|
||||
"alert.unexpected.message": "لقد طرأ هناك خطأ غير متوقّع.",
|
||||
"alert.unexpected.title": "المعذرة !",
|
||||
"alert.unexpected.title": "المعذرة!",
|
||||
"boost_modal.combo": "يمكنك/ي ضغط {combo} لتخطّي هذه في المرّة القادمة",
|
||||
"bundle_column_error.body": "لقد وقع هناك خطأ أثناء عملية تحميل هذا العنصر.",
|
||||
"bundle_column_error.retry": "إعادة المحاولة",
|
||||
|
@ -45,7 +45,7 @@
|
|||
"bundle_modal_error.message": "لقد وقع هناك خطأ أثناء عملية تحميل هذا العنصر.",
|
||||
"bundle_modal_error.retry": "إعادة المحاولة",
|
||||
"column.blocks": "الحسابات المحجوبة",
|
||||
"column.community": "التَسَلْسُل الزَمني المحلي",
|
||||
"column.community": "الخيط العام المحلي",
|
||||
"column.direct": "الرسائل المباشرة",
|
||||
"column.domain_blocks": "النطاقات المخفية",
|
||||
"column.favourites": "المفضلة",
|
||||
|
@ -66,7 +66,7 @@
|
|||
"column_subheading.settings": "الإعدادات",
|
||||
"community.column_settings.media_only": "الوسائط فقط",
|
||||
"compose_form.direct_message_warning": "لن يَظهر هذا التبويق إلا للمستخدمين المذكورين.",
|
||||
"compose_form.direct_message_warning_learn_more": "إقرأ المزيد",
|
||||
"compose_form.direct_message_warning_learn_more": "اقرأ المزيد",
|
||||
"compose_form.hashtag_warning": "هذا التبويق لن يُدرَج تحت أي وسم كان بما أنه غير مُدرَج. لا يُسمح بالبحث إلّا عن التبويقات العمومية عن طريق الوسوم.",
|
||||
"compose_form.lock_disclaimer": "حسابك ليس {locked}. يمكن لأي شخص متابعتك و عرض المنشورات.",
|
||||
"compose_form.lock_disclaimer.lock": "مقفل",
|
||||
|
@ -77,22 +77,22 @@
|
|||
"compose_form.poll.remove_option": "إزالة هذا الخيار",
|
||||
"compose_form.publish": "بوّق",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.sensitive.hide": "Mark media as sensitive",
|
||||
"compose_form.sensitive.hide": "تحديد الوسائط كحساسة",
|
||||
"compose_form.sensitive.marked": "لقد تم تحديد هذه الصورة كحساسة",
|
||||
"compose_form.sensitive.unmarked": "لم يتم تحديد الصورة كحساسة",
|
||||
"compose_form.spoiler.marked": "إنّ النص مخفي وراء تحذير",
|
||||
"compose_form.spoiler.unmarked": "النص غير مخفي",
|
||||
"compose_form.spoiler_placeholder": "تنبيه عن المحتوى",
|
||||
"confirmation_modal.cancel": "إلغاء",
|
||||
"confirmations.block.block_and_report": "Block & Report",
|
||||
"confirmations.block.block_and_report": "احجبه وابلغ عنه",
|
||||
"confirmations.block.confirm": "حجب",
|
||||
"confirmations.block.message": "هل أنت متأكد أنك تريد حجب {name} ؟",
|
||||
"confirmations.delete.confirm": "حذف",
|
||||
"confirmations.delete.message": "هل أنت متأكد أنك تريد حذف هذا المنشور ؟",
|
||||
"confirmations.delete_list.confirm": "Delete",
|
||||
"confirmations.delete_list.confirm": "احذف",
|
||||
"confirmations.delete_list.message": "هل تود حقا حذف هذه القائمة ؟",
|
||||
"confirmations.domain_block.confirm": "إخفاء إسم النطاق كاملا",
|
||||
"confirmations.domain_block.message": "متأكد من أنك تود حظر إسم النطاق {domain} بالكامل ؟ في غالب الأحيان يُستَحسَن كتم أو حظر بعض الحسابات بدلا من حظر نطاق بالكامل.\nلن تتمكن مِن رؤية محتوى هذا النطاق لا على خيوطك العمومية و لا في إشعاراتك. سوف يتم كذلك إزالة كافة متابعيك المنتمين إلى هذا النطاق.",
|
||||
"confirmations.domain_block.confirm": "إخفاء اسم النطاق كاملا",
|
||||
"confirmations.domain_block.message": "متأكد من أنك تود حظر اسم النطاق {domain} بالكامل ؟ في غالب الأحيان يُستَحسَن كتم أو حظر بعض الحسابات بدلا من حظر نطاق بالكامل.\nلن تتمكن مِن رؤية محتوى هذا النطاق لا على خيوطك العمومية و لا في إشعاراتك. سوف يتم كذلك إزالة كافة متابعيك المنتمين إلى هذا النطاق.",
|
||||
"confirmations.mute.confirm": "أكتم",
|
||||
"confirmations.mute.message": "هل أنت متأكد أنك تريد كتم {name} ؟",
|
||||
"confirmations.redraft.confirm": "إزالة و إعادة الصياغة",
|
||||
|
@ -102,17 +102,17 @@
|
|||
"confirmations.unfollow.confirm": "إلغاء المتابعة",
|
||||
"confirmations.unfollow.message": "متأكد من أنك تريد إلغاء متابعة {name} ؟",
|
||||
"embed.instructions": "يمكنكم إدماج هذا المنشور على موقعكم الإلكتروني عن طريق نسخ الشفرة أدناه.",
|
||||
"embed.preview": "هكذا ما سوف يبدو عليه :",
|
||||
"embed.preview": "هكذا ما سوف يبدو عليه:",
|
||||
"emoji_button.activity": "الأنشطة",
|
||||
"emoji_button.custom": "مخصص",
|
||||
"emoji_button.flags": "الأعلام",
|
||||
"emoji_button.food": "الطعام والشراب",
|
||||
"emoji_button.label": "أدرج إيموجي",
|
||||
"emoji_button.nature": "الطبيعة",
|
||||
"emoji_button.not_found": "لا إيموجو !! (╯°□°)╯︵ ┻━┻",
|
||||
"emoji_button.not_found": "لا إيموجو!! (╯°□°)╯︵ ┻━┻",
|
||||
"emoji_button.objects": "أشياء",
|
||||
"emoji_button.people": "الناس",
|
||||
"emoji_button.recent": "الشائعة الإستخدام",
|
||||
"emoji_button.recent": "الشائعة الاستخدام",
|
||||
"emoji_button.search": "ابحث...",
|
||||
"emoji_button.search_results": "نتائج البحث",
|
||||
"emoji_button.symbols": "رموز",
|
||||
|
@ -120,7 +120,7 @@
|
|||
"empty_column.account_timeline": "ليس هناك تبويقات!",
|
||||
"empty_column.account_unavailable": "الملف الشخصي غير متوفر",
|
||||
"empty_column.blocks": "لم تقم بحظر أي مستخدِم بعد.",
|
||||
"empty_column.community": "الخط الزمني المحلي فارغ. أكتب شيئا ما للعامة كبداية !",
|
||||
"empty_column.community": "الخط العام المحلي فارغ. أكتب شيئا ما للعامة كبداية!",
|
||||
"empty_column.direct": "لم تتلق أية رسالة خاصة مباشِرة بعد. سوف يتم عرض الرسائل المباشرة هنا إن قمت بإرسال واحدة أو تلقيت البعض منها.",
|
||||
"empty_column.domain_blocks": "ليس هناك نطاقات مخفية بعد.",
|
||||
"empty_column.favourited_statuses": "ليس لديك أية تبويقات مفضلة بعد. عندما ستقوم بالإعجاب بواحد، سيظهر هنا.",
|
||||
|
@ -133,13 +133,13 @@
|
|||
"empty_column.lists": "ليس عندك أية قائمة بعد. سوف تظهر قائمتك هنا إن قمت بإنشاء واحدة.",
|
||||
"empty_column.mutes": "لم تقم بكتم أي مستخدم بعد.",
|
||||
"empty_column.notifications": "لم تتلق أي إشعار بعدُ. تفاعل مع المستخدمين الآخرين لإنشاء محادثة.",
|
||||
"empty_column.public": "لا يوجد أي شيء هنا ! قم بنشر شيء ما للعامة، أو إتبع المستخدمين الآخرين المتواجدين على الخوادم الأخرى لملء خيط المحادثات",
|
||||
"empty_column.public": "لا يوجد أي شيء هنا! قم بنشر شيء ما للعامة، أو اتبع المستخدمين الآخرين المتواجدين على الخوادم الأخرى لملء خيط المحادثات",
|
||||
"follow_request.authorize": "ترخيص",
|
||||
"follow_request.reject": "رفض",
|
||||
"getting_started.developers": "المُطوِّرون",
|
||||
"getting_started.directory": "دليل المستخدِمين والمستخدِمات",
|
||||
"getting_started.documentation": "الدليل",
|
||||
"getting_started.heading": "إستعدّ للبدء",
|
||||
"getting_started.heading": "استعدّ للبدء",
|
||||
"getting_started.invite": "دعوة أشخاص",
|
||||
"getting_started.open_source_notice": "ماستدون برنامج مفتوح المصدر. يمكنك المساهمة، أو الإبلاغ عن تقارير الأخطاء، على جيت هب {github}.",
|
||||
"getting_started.security": "الأمان",
|
||||
|
@ -156,16 +156,17 @@
|
|||
"home.column_settings.basic": "أساسية",
|
||||
"home.column_settings.show_reblogs": "عرض الترقيات",
|
||||
"home.column_settings.show_replies": "عرض الردود",
|
||||
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
|
||||
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"intervals.full.days": "{number, plural, one {# يوم} other {# أيام}}",
|
||||
"intervals.full.hours": "{number, plural, one {# ساعة} other {# ساعات}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# دقيقة} other {# دقائق}}",
|
||||
"introduction.federation.action": "التالي",
|
||||
"introduction.federation.federated.headline": "Federated",
|
||||
"introduction.federation.federated.headline": "الفديرالي",
|
||||
"introduction.federation.federated.text": "كافة المنشورات التي نُشِرت إلى العامة على الخوادم الأخرى للفديفرس سوف يتم عرضها على الخيط المُوحَّد.",
|
||||
"introduction.federation.home.headline": "Home",
|
||||
"introduction.federation.home.headline": "الرئيسي",
|
||||
"introduction.federation.home.text": "سوف تُعرَض منشورات الأشخاص الذين تُتابِعهم على الخيط الرئيسي. بإمكانك متابعة أي حساب أيا كان الخادم الذي هو عليه!",
|
||||
"introduction.federation.local.headline": "Local",
|
||||
"introduction.federation.local.text": "المنشورات المُوجّهة للعامة على نفس الخادم الذي أنتم عليه ستظهر على الخيط الزمني المحلي.",
|
||||
"introduction.federation.local.headline": "الخيط العام المحلي",
|
||||
"introduction.federation.local.text": "المنشورات المُوجّهة للعامة على نفس الخادم الذي أنتم عليه ستظهر على الخيط العام المحلي.",
|
||||
"introduction.interactions.action": "إنهاء العرض التوضيحي!",
|
||||
"introduction.interactions.favourite.headline": "الإضافة إلى المفضلة",
|
||||
"introduction.interactions.favourite.text": "يمكِنك إضافة أي تبويق إلى المفضلة و إعلام صاحبه أنك أعجِبت بذاك التبويق.",
|
||||
|
@ -175,24 +176,24 @@
|
|||
"introduction.interactions.reply.text": "يمكنكم الرد على تبويقاتكم و تبويقات الآخرين على شكل سلسلة محادثة.",
|
||||
"introduction.welcome.action": "هيا بنا!",
|
||||
"introduction.welcome.headline": "الخطوات الأولى",
|
||||
"introduction.welcome.text": "مرحبا بكم على الفيديفيرس! بعد لحظات قليلة ، سيكون بمقدوركم بث رسائل والتحدث إلى أصدقائكم عبر تشكيلة واسعة من الخوادم المختلفة. هذا الخادم ، {domain} ، يستضيف ملفكم الشخصي ، لذا يجب تذكر اسمه جيدا.",
|
||||
"introduction.welcome.text": "مرحبا بكم على الفديفرس! بعد لحظات قليلة ، سيكون بمقدوركم بث رسائل والتحدث إلى أصدقائكم عبر تشكيلة واسعة من الخوادم المختلفة. هذا الخادم ، {domain} ، يستضيف ملفكم الشخصي ، لذا يجب تذكر اسمه جيدا.",
|
||||
"keyboard_shortcuts.back": "للعودة",
|
||||
"keyboard_shortcuts.blocked": "لفتح قائمة المستخدمين المحظورين",
|
||||
"keyboard_shortcuts.boost": "للترقية",
|
||||
"keyboard_shortcuts.column": "للتركيز على منشور على أحد الأعمدة",
|
||||
"keyboard_shortcuts.compose": "للتركيز على نافذة تحرير النصوص",
|
||||
"keyboard_shortcuts.description": "Description",
|
||||
"keyboard_shortcuts.description": "الوصف",
|
||||
"keyboard_shortcuts.direct": "لفتح عمود الرسائل المباشرة",
|
||||
"keyboard_shortcuts.down": "للإنتقال إلى أسفل القائمة",
|
||||
"keyboard_shortcuts.enter": "to open status",
|
||||
"keyboard_shortcuts.down": "للانتقال إلى أسفل القائمة",
|
||||
"keyboard_shortcuts.enter": "لفتح المنشور",
|
||||
"keyboard_shortcuts.favourite": "للإضافة إلى المفضلة",
|
||||
"keyboard_shortcuts.favourites": "لفتح قائمة المفضلات",
|
||||
"keyboard_shortcuts.federated": "لفتح الخيط الزمني الفديرالي",
|
||||
"keyboard_shortcuts.heading": "Keyboard Shortcuts",
|
||||
"keyboard_shortcuts.home": "لفتح الخيط الرئيسي",
|
||||
"keyboard_shortcuts.hotkey": "مفتاح الإختصار",
|
||||
"keyboard_shortcuts.hotkey": "مفتاح الاختصار",
|
||||
"keyboard_shortcuts.legend": "لعرض هذا المفتاح",
|
||||
"keyboard_shortcuts.local": "لفتح الخيط الزمني المحلي",
|
||||
"keyboard_shortcuts.local": "لفتح الخيط العام المحلي",
|
||||
"keyboard_shortcuts.mention": "لذِكر الناشر",
|
||||
"keyboard_shortcuts.muted": "لفتح قائمة المستخدِمين المكتومين",
|
||||
"keyboard_shortcuts.my_profile": "لفتح ملفك الشخصي",
|
||||
|
@ -204,23 +205,25 @@
|
|||
"keyboard_shortcuts.search": "للتركيز على البحث",
|
||||
"keyboard_shortcuts.start": "لفتح عمود \"هيا نبدأ\"",
|
||||
"keyboard_shortcuts.toggle_hidden": "لعرض أو إخفاء النص مِن وراء التحذير",
|
||||
"keyboard_shortcuts.toggle_sensitivity": "لعرض/إخفاء الوسائط",
|
||||
"keyboard_shortcuts.toot": "لتحرير تبويق جديد",
|
||||
"keyboard_shortcuts.unfocus": "لإلغاء التركيز على حقل النص أو نافذة البحث",
|
||||
"keyboard_shortcuts.up": "للإنتقال إلى أعلى القائمة",
|
||||
"keyboard_shortcuts.up": "للانتقال إلى أعلى القائمة",
|
||||
"lightbox.close": "إغلاق",
|
||||
"lightbox.next": "التالي",
|
||||
"lightbox.previous": "العودة",
|
||||
"lightbox.view_context": "View context",
|
||||
"lightbox.view_context": "اعرض السياق",
|
||||
"lists.account.add": "أضف إلى القائمة",
|
||||
"lists.account.remove": "إحذف من القائمة",
|
||||
"lists.delete": "Delete list",
|
||||
"lists.account.remove": "احذف من القائمة",
|
||||
"lists.delete": "احذف القائمة",
|
||||
"lists.edit": "تعديل القائمة",
|
||||
"lists.edit.submit": "تعديل العنوان",
|
||||
"lists.new.create": "إنشاء قائمة",
|
||||
"lists.new.title_placeholder": "عنوان القائمة الجديدة",
|
||||
"lists.search": "إبحث في قائمة الحسابات التي تُتابِعها",
|
||||
"lists.subheading": "قوائمك",
|
||||
"loading_indicator.label": "تحميل ...",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"loading_indicator.label": "تحميل...",
|
||||
"media_gallery.toggle_visible": "عرض / إخفاء",
|
||||
"missing_indicator.label": "تعذر العثور عليه",
|
||||
"missing_indicator.sublabel": "تعذر العثور على هذا المورد",
|
||||
|
@ -230,20 +233,22 @@
|
|||
"navigation_bar.community_timeline": "الخيط العام المحلي",
|
||||
"navigation_bar.compose": "تحرير تبويق جديد",
|
||||
"navigation_bar.direct": "الرسائل المباشِرة",
|
||||
"navigation_bar.discover": "إكتشف",
|
||||
"navigation_bar.discover": "اكتشف",
|
||||
"navigation_bar.domain_blocks": "النطاقات المخفية",
|
||||
"navigation_bar.edit_profile": "تعديل الملف الشخصي",
|
||||
"navigation_bar.favourites": "المفضلة",
|
||||
"navigation_bar.filters": "الكلمات المكتومة",
|
||||
"navigation_bar.follow_requests": "طلبات المتابعة",
|
||||
"navigation_bar.follows_and_followers": "المتابِعين والمتابَعون",
|
||||
"navigation_bar.info": "عن هذا الخادم",
|
||||
"navigation_bar.keyboard_shortcuts": "إختصارات لوحة المفاتيح",
|
||||
"navigation_bar.keyboard_shortcuts": "اختصارات لوحة المفاتيح",
|
||||
"navigation_bar.lists": "القوائم",
|
||||
"navigation_bar.logout": "خروج",
|
||||
"navigation_bar.mutes": "الحسابات المكتومة",
|
||||
"navigation_bar.personal": "Personal",
|
||||
"navigation_bar.personal": "شخصي",
|
||||
"navigation_bar.pins": "التبويقات المثبتة",
|
||||
"navigation_bar.preferences": "التفضيلات",
|
||||
"navigation_bar.profile_directory": "دليل المستخدِمين",
|
||||
"navigation_bar.public_timeline": "الخيط العام الموحد",
|
||||
"navigation_bar.security": "الأمان",
|
||||
"notification.favourite": "أُعجِب {name} بمنشورك",
|
||||
|
@ -251,19 +256,19 @@
|
|||
"notification.mention": "{name} ذكرك",
|
||||
"notification.poll": "A poll you have voted in has ended",
|
||||
"notification.reblog": "{name} قام بترقية تبويقك",
|
||||
"notifications.clear": "إمسح الإخطارات",
|
||||
"notifications.clear": "امسح الإخطارات",
|
||||
"notifications.clear_confirmation": "أمتأكد من أنك تود مسح جل الإخطارات الخاصة بك و المتلقاة إلى حد الآن ؟",
|
||||
"notifications.column_settings.alert": "إشعارات سطح المكتب",
|
||||
"notifications.column_settings.favourite": "المُفَضَّلة :",
|
||||
"notifications.column_settings.favourite": "المُفَضَّلة:",
|
||||
"notifications.column_settings.filter_bar.advanced": "عرض كافة الفئات",
|
||||
"notifications.column_settings.filter_bar.category": "شريط الفلترة السريعة",
|
||||
"notifications.column_settings.filter_bar.show": "عرض",
|
||||
"notifications.column_settings.follow": "متابعُون جُدُد :",
|
||||
"notifications.column_settings.mention": "الإشارات :",
|
||||
"notifications.column_settings.follow": "متابعُون جُدُد:",
|
||||
"notifications.column_settings.mention": "الإشارات:",
|
||||
"notifications.column_settings.poll": "نتائج استطلاع الرأي:",
|
||||
"notifications.column_settings.push": "الإخطارات المدفوعة",
|
||||
"notifications.column_settings.reblog": "الترقيّات:",
|
||||
"notifications.column_settings.show": "إعرِضها في عمود",
|
||||
"notifications.column_settings.show": "اعرِضها في عمود",
|
||||
"notifications.column_settings.sound": "أصدر صوتا",
|
||||
"notifications.filter.all": "الكل",
|
||||
"notifications.filter.boosts": "الترقيات",
|
||||
|
@ -274,11 +279,11 @@
|
|||
"notifications.group": "{count} إشعارات",
|
||||
"poll.closed": "انتهى",
|
||||
"poll.refresh": "تحديث",
|
||||
"poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
|
||||
"poll.total_votes": "{count, plural, one {# صوت} other {# أصوات}}",
|
||||
"poll.vote": "صَوّت",
|
||||
"poll_button.add_poll": "إضافة استطلاع للرأي",
|
||||
"poll_button.remove_poll": "إزالة استطلاع الرأي",
|
||||
"privacy.change": "إضبط خصوصية المنشور",
|
||||
"privacy.change": "اضبط خصوصية المنشور",
|
||||
"privacy.direct.long": "أنشر إلى المستخدمين المشار إليهم فقط",
|
||||
"privacy.direct.short": "مباشر",
|
||||
"privacy.private.long": "أنشر لمتابعيك فقط",
|
||||
|
@ -287,20 +292,20 @@
|
|||
"privacy.public.short": "للعامة",
|
||||
"privacy.unlisted.long": "لا تقم بإدراجه على الخيوط العامة",
|
||||
"privacy.unlisted.short": "غير مدرج",
|
||||
"regeneration_indicator.label": "جارٍ التحميل …",
|
||||
"regeneration_indicator.sublabel": "جارٍ تجهيز تغذية صفحتك الرئيسية !",
|
||||
"relative_time.days": "{number}d",
|
||||
"relative_time.hours": "{number}h",
|
||||
"regeneration_indicator.label": "جارٍ التحميل…",
|
||||
"regeneration_indicator.sublabel": "جارٍ تجهيز تغذية صفحتك الرئيسية!",
|
||||
"relative_time.days": "{number}ي",
|
||||
"relative_time.hours": "{number}سا",
|
||||
"relative_time.just_now": "الآن",
|
||||
"relative_time.minutes": "{number}m",
|
||||
"relative_time.seconds": "{number}s",
|
||||
"relative_time.minutes": "{number}د",
|
||||
"relative_time.seconds": "{number}ثا",
|
||||
"reply_indicator.cancel": "إلغاء",
|
||||
"report.forward": "التحويل إلى {target}",
|
||||
"report.forward_hint": "هذا الحساب ينتمي إلى خادوم آخَر. هل تودّ إرسال نسخة مجهولة مِن التقرير إلى هنالك أيضًا ؟",
|
||||
"report.forward_hint": "هذا الحساب ينتمي إلى خادوم آخَر. هل تودّ إرسال نسخة مجهولة مِن التقرير إلى هنالك أيضًا؟",
|
||||
"report.hint": "سوف يتم إرسال التقرير إلى المُشرِفين على خادومكم. بإمكانكم الإدلاء بشرح عن سبب الإبلاغ عن الحساب أسفله:",
|
||||
"report.placeholder": "تعليقات إضافية",
|
||||
"report.submit": "إرسال",
|
||||
"report.target": "إبلاغ",
|
||||
"report.target": "ابلغ عن {target}",
|
||||
"search.placeholder": "ابحث",
|
||||
"search_popout.search_format": "نمط البحث المتقدم",
|
||||
"search_popout.tips.full_text": "النص البسيط يقوم بعرض المنشورات التي كتبتها أو قمت بإرسالها أو ترقيتها أو تمت الإشارة إليك فيها من طرف آخرين ، بالإضافة إلى مطابقة أسماء المستخدمين وأسماء العرض وعلامات التصنيف.",
|
||||
|
@ -311,14 +316,15 @@
|
|||
"search_results.accounts": "أشخاص",
|
||||
"search_results.hashtags": "الوُسوم",
|
||||
"search_results.statuses": "التبويقات",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"search_results.total": "{count, number} {count, plural, one {result} و {results}}",
|
||||
"status.admin_account": "افتح الواجهة الإدارية لـ @{name}",
|
||||
"status.admin_status": "افتح هذا المنشور على واجهة الإشراف",
|
||||
"status.block": "Block @{name}",
|
||||
"status.block": "احجب @{name}",
|
||||
"status.cancel_reblog_private": "إلغاء الترقية",
|
||||
"status.cannot_reblog": "تعذرت ترقية هذا المنشور",
|
||||
"status.copy": "نسخ رابط المنشور",
|
||||
"status.delete": "إحذف",
|
||||
"status.delete": "احذف",
|
||||
"status.detailed_status": "تفاصيل المحادثة",
|
||||
"status.direct": "رسالة خاصة إلى @{name}",
|
||||
"status.embed": "إدماج",
|
||||
|
@ -341,32 +347,32 @@
|
|||
"status.redraft": "إزالة و إعادة الصياغة",
|
||||
"status.reply": "ردّ",
|
||||
"status.replyAll": "رُد على الخيط",
|
||||
"status.report": "إبلِغ عن @{name}",
|
||||
"status.report": "ابلِغ عن @{name}",
|
||||
"status.sensitive_warning": "محتوى حساس",
|
||||
"status.share": "مشاركة",
|
||||
"status.show_less": "إعرض أقلّ",
|
||||
"status.show_less": "اعرض أقلّ",
|
||||
"status.show_less_all": "طي الكل",
|
||||
"status.show_more": "أظهر المزيد",
|
||||
"status.show_more_all": "توسيع الكل",
|
||||
"status.show_thread": "الكشف عن المحادثة",
|
||||
"status.unmute_conversation": "فك الكتم عن المحادثة",
|
||||
"status.unpin": "فك التدبيس من الملف الشخصي",
|
||||
"suggestions.dismiss": "إلغاء الإقتراح",
|
||||
"suggestions.dismiss": "إلغاء الاقتراح",
|
||||
"suggestions.header": "يمكن أن يهمك…",
|
||||
"tabs_bar.federated_timeline": "الموحَّد",
|
||||
"tabs_bar.home": "الرئيسية",
|
||||
"tabs_bar.local_timeline": "المحلي",
|
||||
"tabs_bar.local_timeline": "الخيط العام المحلي",
|
||||
"tabs_bar.notifications": "الإخطارات",
|
||||
"tabs_bar.search": "البحث",
|
||||
"time_remaining.days": "{number, plural, one {# day} other {# days}} left",
|
||||
"time_remaining.days": "{number, plural, one {# يوم} other {# أيام}} متبقية",
|
||||
"time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
|
||||
"time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
|
||||
"time_remaining.moments": "Moments remaining",
|
||||
"time_remaining.moments": "لحظات متبقية",
|
||||
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} آخرون {people}} يتحدثون",
|
||||
"ui.beforeunload": "سوف تفقد مسودتك إن تركت ماستدون.",
|
||||
"upload_area.title": "إسحب ثم أفلت للرفع",
|
||||
"upload_button.label": "إضافة وسائط (JPEG، PNG، GIF، WebM، MP4، MOV)",
|
||||
"upload_area.title": "اسحب ثم أفلت للرفع",
|
||||
"upload_button.label": "إضافة وسائط ({formats})",
|
||||
"upload_error.limit": "لقد تم بلوغ الحد الأقصى المسموح به لإرسال الملفات.",
|
||||
"upload_error.poll": "لا يمكن إدراج ملفات في استطلاعات الرأي.",
|
||||
"upload_form.description": "وصف للمعاقين بصريا",
|
||||
|
|
|
@ -64,7 +64,7 @@
|
|||
"column_header.show_settings": "Show settings",
|
||||
"column_header.unpin": "Desfixar",
|
||||
"column_subheading.settings": "Axustes",
|
||||
"community.column_settings.media_only": "Media Only",
|
||||
"community.column_settings.media_only": "Media only",
|
||||
"compose_form.direct_message_warning": "Esti toot namái va unviase a los usuarios mentaos.",
|
||||
"compose_form.direct_message_warning_learn_more": "Learn more",
|
||||
"compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
|
||||
|
@ -156,6 +156,7 @@
|
|||
"home.column_settings.basic": "Basic",
|
||||
"home.column_settings.show_reblogs": "Amosar toots compartíos",
|
||||
"home.column_settings.show_replies": "Amosar rempuestes",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
|
||||
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
|
||||
|
@ -220,6 +221,7 @@
|
|||
"lists.new.title_placeholder": "Títulu nuevu de la llista",
|
||||
"lists.search": "Guetar ente la xente que sigues",
|
||||
"lists.subheading": "Les tos llistes",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"loading_indicator.label": "Cargando...",
|
||||
"media_gallery.toggle_visible": "Toggle visibility",
|
||||
"missing_indicator.label": "Nun s'alcontró",
|
||||
|
@ -311,6 +313,7 @@
|
|||
"search_results.accounts": "Xente",
|
||||
"search_results.hashtags": "Etiquetes",
|
||||
"search_results.statuses": "Toots",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
|
||||
"status.admin_account": "Open moderation interface for @{name}",
|
||||
"status.admin_status": "Open this status in the moderation interface",
|
||||
|
|
|
@ -64,7 +64,7 @@
|
|||
"column_header.show_settings": "Show settings",
|
||||
"column_header.unpin": "Unpin",
|
||||
"column_subheading.settings": "Settings",
|
||||
"community.column_settings.media_only": "Media Only",
|
||||
"community.column_settings.media_only": "Media only",
|
||||
"compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
|
||||
"compose_form.direct_message_warning_learn_more": "Learn more",
|
||||
"compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
|
||||
|
@ -156,6 +156,7 @@
|
|||
"home.column_settings.basic": "Basic",
|
||||
"home.column_settings.show_reblogs": "Show boosts",
|
||||
"home.column_settings.show_replies": "Show replies",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
|
||||
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
|
||||
|
@ -220,6 +221,7 @@
|
|||
"lists.new.title_placeholder": "New list title",
|
||||
"lists.search": "Search among people you follow",
|
||||
"lists.subheading": "Your lists",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"loading_indicator.label": "Зареждане...",
|
||||
"media_gallery.toggle_visible": "Toggle visibility",
|
||||
"missing_indicator.label": "Not found",
|
||||
|
@ -311,6 +313,7 @@
|
|||
"search_results.accounts": "People",
|
||||
"search_results.hashtags": "Hashtags",
|
||||
"search_results.statuses": "Toots",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
|
||||
"status.admin_account": "Open moderation interface for @{name}",
|
||||
"status.admin_status": "Open this status in the moderation interface",
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
{
|
||||
"account.add_or_remove_from_list": "তালিকাতে আরো যুক্ত বা মুছে ফেলুন",
|
||||
"account.badges.bot": "রোবট",
|
||||
"account.block": "@{name} বন্ধ করুন",
|
||||
"account.block": "@{name} কে বন্ধ করুন",
|
||||
"account.block_domain": "{domain} থেকে সব সরিয়ে ফেলুন",
|
||||
"account.blocked": "বন্ধ করা হয়েছে",
|
||||
"account.direct": "@{name}কে সরকারি লিখুন",
|
||||
"account.direct": "@{name} এর কাছে সরকারি লেখা পাঠাতে",
|
||||
"account.domain_blocked": "ওয়েবসাইট সরিয়ে ফেলা হয়েছে",
|
||||
"account.edit_profile": "নিজের পাতা সম্পাদনা করুন",
|
||||
"account.endorse": "নিজের পাতায় দেখান",
|
||||
"account.edit_profile": "নিজের পাতা সম্পাদনা করতে",
|
||||
"account.endorse": "আপনার নিজের পাতায় দেখাতে",
|
||||
"account.follow": "অনুসরণ করুন",
|
||||
"account.followers": "অনুসরণকারক",
|
||||
"account.followers.empty": "এই ব্যবহারকারীকে কেও এখনো অনুসরণ করে না।",
|
||||
|
@ -18,21 +18,21 @@
|
|||
"account.link_verified_on": "এই লিংকের মালিকানা চেক করা হয়েছে {date} তারিকে",
|
||||
"account.locked_info": "এই নিবন্ধনের গোপনীয়তার ক্ষেত্র তালা দেওয়া আছে। নিবন্ধনকারী অনুসরণ করার অনুমতি যাদেরকে দেবেন, শুধু তারাই অনুসরণ করতে পারবেন।",
|
||||
"account.media": "ছবি বা ভিডিও",
|
||||
"account.mention": "@{name} কে উল্লেখ করুন",
|
||||
"account.mention": "@{name} কে উল্লেখ করতে",
|
||||
"account.moved_to": "{name} চলে গেছে এখানে:",
|
||||
"account.mute": "@{name}র কার্যক্রম সরিয়ে ফেলুন",
|
||||
"account.mute": "@{name} সব কার্যক্রম আপনার সময়রেখা থেকে সরিয়ে ফেলতে",
|
||||
"account.mute_notifications": "@{name}র প্রজ্ঞাপন আপনার কাছ থেকে সরিয়ে ফেলুন",
|
||||
"account.muted": "সরানো আছে",
|
||||
"account.posts": "টুট",
|
||||
"account.posts_with_replies": "টুট এবং মতামত",
|
||||
"account.report": "@{name}কে রিপোর্ট করে দিন",
|
||||
"account.report": "@{name} কে রিপোর্ট করতে",
|
||||
"account.requested": "অনুমতির অপেক্ষায় আছে। অনুসরণ করার অনুরোধ বাতিল করতে এখানে ক্লিক করুন",
|
||||
"account.share": "@{name}র পাতা অন্যদের দেখান",
|
||||
"account.show_reblogs": "@{name}র সমর্থনগুলো দেখুন",
|
||||
"account.unblock": "@{name}র কার্যকলাপ আবার দেখুন",
|
||||
"account.unblock_domain": "{domain}থেকে আবার দেখুন",
|
||||
"account.unendorse": "নিজের পাতায় এটা দেখতে চান না",
|
||||
"account.unfollow": "অনুসরণ বন্ধ করুন",
|
||||
"account.unendorse": "আপনার নিজের পাতায় এটা না দেখাতে",
|
||||
"account.unfollow": "অনুসরণ না করতে",
|
||||
"account.unmute": "@{name}র কার্যকলাপ আবার দেখুন",
|
||||
"account.unmute_notifications": "@{name}র প্রজ্ঞাপন দেওয়ার অনুমতি দিন",
|
||||
"alert.unexpected.message": "অপ্রত্যাশিত একটি সমস্যা হয়েছে।",
|
||||
|
@ -42,7 +42,7 @@
|
|||
"bundle_column_error.retry": "আবার চেষ্টা করুন",
|
||||
"bundle_column_error.title": "নেটওয়ার্কের সমস্যা হচ্ছে",
|
||||
"bundle_modal_error.close": "বন্ধ করুন",
|
||||
"bundle_modal_error.message": "এই অংশটি দেখতে যেয়ে কোনো সমস্যা হয়েছে।",
|
||||
"bundle_modal_error.message": "এই অংশটি দেখাতে যেয়ে কোনো সমস্যা হয়েছে।",
|
||||
"bundle_modal_error.retry": "আবার চেষ্টা করুন",
|
||||
"column.blocks": "যাদের বন্ধ করে রাখা হয়েছে",
|
||||
"column.community": "স্থানীয় সময়সারি",
|
||||
|
@ -77,12 +77,12 @@
|
|||
"compose_form.poll.remove_option": "এই বিকল্পটি মুছে ফেলুন",
|
||||
"compose_form.publish": "টুট",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.sensitive.hide": "Mark media as sensitive",
|
||||
"compose_form.sensitive.hide": "এই ছবি বা ভিডিওটি সংবেদনশীল হিসেবে চিহ্নিত করতে",
|
||||
"compose_form.sensitive.marked": "এই ছবি বা ভিডিওটি সংবেদনশীল হিসেবে চিহ্নিত করা হয়েছে",
|
||||
"compose_form.sensitive.unmarked": "এই ছবি বা ভিডিওটি সংবেদনশীল হিসেবে চিহ্নিত করা হয়নি",
|
||||
"compose_form.spoiler.marked": "লেখাটি সাবধানতার পেছনে লুকানো আছে",
|
||||
"compose_form.spoiler.unmarked": "লেখাটি লুকানো নেই",
|
||||
"compose_form.spoiler_placeholder": "আপনার সাবধানতা এখানে লিখুন",
|
||||
"compose_form.spoiler_placeholder": "আপনার লেখা দেখার সাবধানবাণী লিখুন",
|
||||
"confirmation_modal.cancel": "বাতিল করুন",
|
||||
"confirmations.block.block_and_report": "বন্ধ করুন এবং রিপোর্ট করুন",
|
||||
"confirmations.block.confirm": "বন্ধ করুন",
|
||||
|
@ -99,7 +99,7 @@
|
|||
"confirmations.redraft.message": "আপনি কি নিশ্চিত এটি মুছে ফেলে এবং আবার সম্পাদন করতে চান ? এটাতে যা পছন্দিত, সমর্থন বা মতামত আছে সেগুলো নতুন লেখার সাথে যুক্ত থাকবে না।",
|
||||
"confirmations.reply.confirm": "মতামত",
|
||||
"confirmations.reply.message": "এখন মতামত লিখতে গেলে আপনার এখন যেটা লিখছেন সেটা মুছে যাবে। আপনি নি নিশ্চিত এটা করতে চান ?",
|
||||
"confirmations.unfollow.confirm": "অনুসরণ বন্ধ করুন",
|
||||
"confirmations.unfollow.confirm": "অনুসরণ করা বাতিল করতে",
|
||||
"confirmations.unfollow.message": "আপনি কি নিশ্চিত {name} কে আর অনুসরণ করতে চান না ?",
|
||||
"embed.instructions": "এই লেখাটি আপনার ওয়েবসাইটে যুক্ত করতে নিচের কোডটি বেবহার করুন।",
|
||||
"embed.preview": "সেটা দেখতে এরকম হবে:",
|
||||
|
@ -137,11 +137,11 @@
|
|||
"follow_request.authorize": "অনুমতি দিন",
|
||||
"follow_request.reject": "প্রত্যাখ্যান করুন",
|
||||
"getting_started.developers": "তৈরিকারকদের জন্য",
|
||||
"getting_started.directory": "নিজস্ব পাতার তালিকা",
|
||||
"getting_started.directory": "নিজস্ব-পাতাগুলির তালিকা",
|
||||
"getting_started.documentation": "নথিপত্র",
|
||||
"getting_started.heading": "শুরু করা",
|
||||
"getting_started.invite": "অন্যদের আমন্ত্রণ করুন",
|
||||
"getting_started.open_source_notice": "মাস্টাডন একটি মুক্ত সফটওয়্যার। আপনি তৈরিতে সাহায্য করতে পারেন অথবা সমস্যা রিপোর্ট করতে পারেন গিটহাবে {github}।",
|
||||
"getting_started.open_source_notice": "মাস্টাডন একটি মুক্ত সফটওয়্যার। তৈরিতে সাহায্য করতে বা কোনো সমস্যা সম্পর্কে জানাতে আমাদের গিটহাবে যেতে পারেন {github}।",
|
||||
"getting_started.security": "নিরাপত্তা",
|
||||
"getting_started.terms": "ব্যবহারের নিয়মাবলী",
|
||||
"hashtag.column_header.tag_mode.all": "এবং {additional}",
|
||||
|
@ -152,10 +152,11 @@
|
|||
"hashtag.column_settings.tag_mode.all": "এগুলো সব",
|
||||
"hashtag.column_settings.tag_mode.any": "এর ভেতরে যেকোনোটা",
|
||||
"hashtag.column_settings.tag_mode.none": "এগুলোর একটাও না",
|
||||
"hashtag.column_settings.tag_toggle": "আরো ট্যাগ এই কলামে যুক্ত করুন",
|
||||
"hashtag.column_settings.tag_toggle": "আরো ট্যাগ এই কলামে যুক্ত করতে",
|
||||
"home.column_settings.basic": "সাধারণ",
|
||||
"home.column_settings.show_reblogs": "সমর্থনগুলো দেখান",
|
||||
"home.column_settings.show_replies": "মতামত দেখান",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
|
||||
"intervals.full.hours": "{number, plural, one {# ঘটা} other {# ঘটা}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
|
||||
|
@ -195,7 +196,7 @@
|
|||
"keyboard_shortcuts.local": "স্থানীয় সময়রেখাতে যেতে",
|
||||
"keyboard_shortcuts.mention": "লেখককে উল্লেখ করতে",
|
||||
"keyboard_shortcuts.muted": "বন্ধ করা ব্যবহারকারীদের তালিকা খুলতে",
|
||||
"keyboard_shortcuts.my_profile": "নিজের পাতা দেখতে",
|
||||
"keyboard_shortcuts.my_profile": "আপনার নিজের পাতা দেখতে",
|
||||
"keyboard_shortcuts.notifications": "প্রজ্ঞাপনের কলাম খুলতে",
|
||||
"keyboard_shortcuts.pinned": "পিন দেওয়া টুটের তালিকা খুলতে",
|
||||
"keyboard_shortcuts.profile": "লেখকের পাতা দেখতে",
|
||||
|
@ -204,13 +205,14 @@
|
|||
"keyboard_shortcuts.search": "খোঁজার অংশে ফোকাস করতে",
|
||||
"keyboard_shortcuts.start": "\"প্রথম শুরুর\" কলাম বের করতে",
|
||||
"keyboard_shortcuts.toggle_hidden": "CW লেখা দেখতে বা লুকাতে",
|
||||
"keyboard_shortcuts.toggle_sensitivity": "ভিডিও/ছবি দেখতে বা বন্ধ করতে",
|
||||
"keyboard_shortcuts.toot": "নতুন একটা টুট লেখা শুরু করতে",
|
||||
"keyboard_shortcuts.unfocus": "লেখা বা খোঁজার জায়গায় ফোকাস না করতে",
|
||||
"keyboard_shortcuts.up": "তালিকার উপরের দিকে যেতে",
|
||||
"lightbox.close": "বন্ধ",
|
||||
"lightbox.next": "পরবর্তী",
|
||||
"lightbox.previous": "পূর্ববর্তী",
|
||||
"lightbox.view_context": "View context",
|
||||
"lightbox.view_context": "প্রসঙ্গটি দেখতে",
|
||||
"lists.account.add": "তালিকাতে যুক্ত করতে",
|
||||
"lists.account.remove": "তালিকা থেকে বাদ দিতে",
|
||||
"lists.delete": "তালিকা মুছে ফেলতে",
|
||||
|
@ -220,6 +222,7 @@
|
|||
"lists.new.title_placeholder": "তালিকার নতুন শিরোনাম দিতে",
|
||||
"lists.search": "যাদের অনুসরণ করেন তাদের ভেতরে খুঁজুন",
|
||||
"lists.subheading": "আপনার তালিকা",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"loading_indicator.label": "আসছে...",
|
||||
"media_gallery.toggle_visible": "দৃশ্যতার অবস্থা বদলান",
|
||||
"missing_indicator.label": "খুঁজে পাওয়া যায়নি",
|
||||
|
@ -229,21 +232,23 @@
|
|||
"navigation_bar.blocks": "বন্ধ করা ব্যবহারকারী",
|
||||
"navigation_bar.community_timeline": "স্থানীয় সময়রেখা",
|
||||
"navigation_bar.compose": "নতুন টুট লিখুন",
|
||||
"navigation_bar.direct": "সরাসরি লেখা",
|
||||
"navigation_bar.direct": "সরাসরি লেখাগুলি",
|
||||
"navigation_bar.discover": "ঘুরে দেখুন",
|
||||
"navigation_bar.domain_blocks": "বন্ধ করা ওয়েবসাইট",
|
||||
"navigation_bar.edit_profile": "নিজের পাতা সম্পাদনা করুন",
|
||||
"navigation_bar.edit_profile": "নিজের পাতা সম্পাদনা করতে",
|
||||
"navigation_bar.favourites": "পছন্দের",
|
||||
"navigation_bar.filters": "বন্ধ করা শব্দ",
|
||||
"navigation_bar.follow_requests": "অনুসরণের অনুরোধগুলি",
|
||||
"navigation_bar.follows_and_followers": "যাদেরকে অনুসরণ করেন এবং যারা তাকে অনুসরণ করে",
|
||||
"navigation_bar.info": "এই সার্ভার সম্পর্কে",
|
||||
"navigation_bar.keyboard_shortcuts": "চাবি ব্যবহার",
|
||||
"navigation_bar.keyboard_shortcuts": "হটকীগুলি",
|
||||
"navigation_bar.lists": "তালিকাগুলো",
|
||||
"navigation_bar.logout": "বাইরে যান",
|
||||
"navigation_bar.mutes": "যেসব বেভহারকারীদের কার্যক্রম বন্ধ করা আছে",
|
||||
"navigation_bar.personal": "নিজস্ব",
|
||||
"navigation_bar.pins": "পিন দেওয়া টুট",
|
||||
"navigation_bar.preferences": "পছন্দসমূহ",
|
||||
"navigation_bar.profile_directory": "নিজস্ব পাতার তালিকা",
|
||||
"navigation_bar.public_timeline": "যুক্তবিশ্বের সময়রেখা",
|
||||
"navigation_bar.security": "নিরাপত্তা",
|
||||
"notification.favourite": "{name} আপনার কার্যক্রম পছন্দ করেছেন",
|
||||
|
@ -253,18 +258,18 @@
|
|||
"notification.reblog": "{name} আপনার কার্যক্রমে সমর্থন দেখিয়েছেন",
|
||||
"notifications.clear": "প্রজ্ঞাপনগুলো মুছে ফেলতে",
|
||||
"notifications.clear_confirmation": "আপনি কি নির্চিত প্রজ্ঞাপনগুলো মুছে ফেলতে চান ?",
|
||||
"notifications.column_settings.alert": "কম্পিউটারে প্রজ্ঞাপন",
|
||||
"notifications.column_settings.alert": "কম্পিউটারে প্রজ্ঞাপনগুলি",
|
||||
"notifications.column_settings.favourite": "পছন্দের:",
|
||||
"notifications.column_settings.filter_bar.advanced": "সব শ্রেণীগুলো দেখতে",
|
||||
"notifications.column_settings.filter_bar.category": "দ্রুত ছাঁকনি বার",
|
||||
"notifications.column_settings.filter_bar.show": "দেখতে",
|
||||
"notifications.column_settings.filter_bar.advanced": "সব শ্রেণীগুলো দেখানো",
|
||||
"notifications.column_settings.filter_bar.category": "সংক্ষিপ্ত ছাঁকনি অংশ",
|
||||
"notifications.column_settings.filter_bar.show": "দেখানো",
|
||||
"notifications.column_settings.follow": "নতুন অনুসরণকারীরা:",
|
||||
"notifications.column_settings.mention": "প্রজ্ঞাপনগুলো:",
|
||||
"notifications.column_settings.poll": "নির্বাচনের ফলাফল:",
|
||||
"notifications.column_settings.push": "পুশ প্রজ্ঞাপন",
|
||||
"notifications.column_settings.push": "পুশ প্রজ্ঞাপনগুলি",
|
||||
"notifications.column_settings.reblog": "সমর্থনগুলো:",
|
||||
"notifications.column_settings.show": "কলামে দেখান",
|
||||
"notifications.column_settings.sound": "শব্দ বাজাতে",
|
||||
"notifications.column_settings.show": "কলামে দেখানো",
|
||||
"notifications.column_settings.sound": "শব্দ বাজানো",
|
||||
"notifications.filter.all": "সব",
|
||||
"notifications.filter.boosts": "সমর্থনগুলো",
|
||||
"notifications.filter.favourites": "পছন্দের গুলো",
|
||||
|
@ -273,7 +278,7 @@
|
|||
"notifications.filter.polls": "নির্বাচনের ফলাফল",
|
||||
"notifications.group": "{count} প্রজ্ঞাপন",
|
||||
"poll.closed": "বন্ধ",
|
||||
"poll.refresh": "আবার সতেজ করতে",
|
||||
"poll.refresh": "বদলেছে কিনা দেখতে",
|
||||
"poll.total_votes": "{count, plural, one {# ভোট} other {# ভোট}}",
|
||||
"poll.vote": "ভোট",
|
||||
"poll_button.add_poll": "একটা নির্বাচন যোগ করতে",
|
||||
|
@ -292,7 +297,7 @@
|
|||
"relative_time.days": "{number} দিন",
|
||||
"relative_time.hours": "{number} ঘন্টা",
|
||||
"relative_time.just_now": "এখন",
|
||||
"relative_time.minutes": "{number} মাস",
|
||||
"relative_time.minutes": "{number}ম",
|
||||
"relative_time.seconds": "{number} সেকেন্ড",
|
||||
"reply_indicator.cancel": "বাতিল করতে",
|
||||
"report.forward": "এটা আরো পাঠান {target} তে",
|
||||
|
@ -311,6 +316,7 @@
|
|||
"search_results.accounts": "মানুষ",
|
||||
"search_results.hashtags": "হ্যাশট্যাগগুলি",
|
||||
"search_results.statuses": "টুট",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"search_results.total": "{count, number} {count, plural, one {ফলাফল} other {ফলাফল}}",
|
||||
"status.admin_account": "@{name} র জন্য পরিচালনার ইন্টারফেসে ঢুকুন",
|
||||
"status.admin_status": "যায় লেখাটি পরিচালনার ইন্টারফেসে খুলুন",
|
||||
|
@ -320,7 +326,7 @@
|
|||
"status.copy": "লেখাটির লিংক কপি করতে",
|
||||
"status.delete": "মুছে ফেলতে",
|
||||
"status.detailed_status": "বিস্তারিত কথোপকথনের হিসেবে দেখতে",
|
||||
"status.direct": "@{name} কে সরাসরি পাঠান",
|
||||
"status.direct": "@{name} কে সরাসরি লেখা পাঠাতে",
|
||||
"status.embed": "এমবেড করতে",
|
||||
"status.favourite": "পছন্দের করতে",
|
||||
"status.filtered": "ছাঁকনিদিত",
|
||||
|
@ -341,7 +347,7 @@
|
|||
"status.redraft": "মুছে আবার নতুন করে লিখতে",
|
||||
"status.reply": "মতামত জানাতে",
|
||||
"status.replyAll": "লেখাযুক্ত সবার কাছে মতামত জানাতে",
|
||||
"status.report": "@{name}কে রিপোর্ট করতে",
|
||||
"status.report": "@{name} কে রিপোর্ট করতে",
|
||||
"status.sensitive_warning": "সংবেদনশীল কিছু",
|
||||
"status.share": "অন্যদের জানান",
|
||||
"status.show_less": "কম দেখতে",
|
||||
|
@ -351,7 +357,7 @@
|
|||
"status.show_thread": "আলোচনা দেখতে",
|
||||
"status.unmute_conversation": "আলোচনার প্রজ্ঞাপন চালু করতে",
|
||||
"status.unpin": "নিজের পাতা থেকে পিন করে রাখাটির পিন খুলতে",
|
||||
"suggestions.dismiss": "সাহায্যের জন্য পরামর্শগুলো সরাতে",
|
||||
"suggestions.dismiss": "সাহায্যের পরামর্শগুলো সরাতে",
|
||||
"suggestions.header": "আপনি হয়তোবা এগুলোতে আগ্রহী হতে পারেন…",
|
||||
"tabs_bar.federated_timeline": "যুক্তবিশ্ব",
|
||||
"tabs_bar.home": "বাড়ি",
|
||||
|
@ -366,7 +372,7 @@
|
|||
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} কথা বলছে",
|
||||
"ui.beforeunload": "যে পর্যন্ত এটা লেখা হয়েছে, মাস্টাডন থেকে চলে গেলে এটা মুছে যাবে।",
|
||||
"upload_area.title": "টেনে এখানে ছেড়ে দিলে এখানে যুক্ত করা যাবে",
|
||||
"upload_button.label": "ছবি বা ভিডিও যুক্ত করতে (এসব ধরণের JPEG, PNG, GIF, WebM, MP4, MOV)",
|
||||
"upload_button.label": "ছবি বা ভিডিও যুক্ত করতে (এসব ধরণের: JPEG, PNG, GIF, WebM, MP4, MOV)",
|
||||
"upload_error.limit": "যা যুক্ত করতে চাচ্ছেন সেটি বেশি বড়, এখানকার সর্বাধিকের মেমোরির উপরে চলে গেছে।",
|
||||
"upload_error.poll": "নির্বাচনক্ষেত্রে কোনো ফাইল যুক্ত করা যাবেনা।",
|
||||
"upload_form.description": "যারা দেখতে পায়না তাদের জন্য এটা বর্ণনা করতে",
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"account.add_or_remove_from_list": "Afegir o Treure de les llistes",
|
||||
"account.badges.bot": "Bot",
|
||||
"account.block": "Bloca @{name}",
|
||||
"account.block": "Bloqueja @{name}",
|
||||
"account.block_domain": "Amaga-ho tot de {domain}",
|
||||
"account.blocked": "Bloquejat",
|
||||
"account.direct": "Missatge directe @{name}",
|
||||
|
@ -11,7 +11,7 @@
|
|||
"account.follow": "Segueix",
|
||||
"account.followers": "Seguidors",
|
||||
"account.followers.empty": "Encara ningú no segueix aquest usuari.",
|
||||
"account.follows": "Seguint",
|
||||
"account.follows": "Seguiments",
|
||||
"account.follows.empty": "Aquest usuari encara no segueix a ningú.",
|
||||
"account.follows_you": "Et segueix",
|
||||
"account.hide_reblogs": "Amaga els impulsos de @{name}",
|
||||
|
@ -44,7 +44,7 @@
|
|||
"bundle_modal_error.close": "Tanca",
|
||||
"bundle_modal_error.message": "S'ha produït un error en carregar aquest component.",
|
||||
"bundle_modal_error.retry": "Torna-ho a provar",
|
||||
"column.blocks": "Usuaris blocats",
|
||||
"column.blocks": "Usuaris bloquejats",
|
||||
"column.community": "Línia de temps local",
|
||||
"column.direct": "Missatges directes",
|
||||
"column.domain_blocks": "Dominis ocults",
|
||||
|
@ -54,7 +54,7 @@
|
|||
"column.lists": "Llistes",
|
||||
"column.mutes": "Usuaris silenciats",
|
||||
"column.notifications": "Notificacions",
|
||||
"column.pins": "Toot fixat",
|
||||
"column.pins": "Toots fixats",
|
||||
"column.public": "Línia de temps federada",
|
||||
"column_back_button.label": "Enrere",
|
||||
"column_header.hide_settings": "Amaga la configuració",
|
||||
|
@ -65,12 +65,12 @@
|
|||
"column_header.unpin": "No fixis",
|
||||
"column_subheading.settings": "Configuració",
|
||||
"community.column_settings.media_only": "Només multimèdia",
|
||||
"compose_form.direct_message_warning": "Aquest toot només serà enviat als usuaris esmentats. De totes maneres, els operadors de la teva o de qualsevol de les instàncies receptores poden inspeccionar aquest missatge.",
|
||||
"compose_form.direct_message_warning": "Aquest toot només serà enviat als usuaris esmentats.",
|
||||
"compose_form.direct_message_warning_learn_more": "Aprèn més",
|
||||
"compose_form.hashtag_warning": "Aquest toot no es mostrarà en cap etiqueta ja que no està llistat. Només els toots públics poden ser cercats per etiqueta.",
|
||||
"compose_form.lock_disclaimer": "El teu compte no està bloquejat {locked}. Tothom pot seguir-te i veure els teus missatges a seguidors.",
|
||||
"compose_form.lock_disclaimer.lock": "blocat",
|
||||
"compose_form.placeholder": "En què estàs pensant?",
|
||||
"compose_form.lock_disclaimer.lock": "bloquejat",
|
||||
"compose_form.placeholder": "En què penses?",
|
||||
"compose_form.poll.add_option": "Afegeix una opció",
|
||||
"compose_form.poll.duration": "Durada de l'enquesta",
|
||||
"compose_form.poll.option_placeholder": "Opció {number}",
|
||||
|
@ -84,11 +84,11 @@
|
|||
"compose_form.spoiler.unmarked": "Text no ocult",
|
||||
"compose_form.spoiler_placeholder": "Escriu l'avís aquí",
|
||||
"confirmation_modal.cancel": "Cancel·la",
|
||||
"confirmations.block.block_and_report": "Block & Report",
|
||||
"confirmations.block.confirm": "Bloca",
|
||||
"confirmations.block.block_and_report": "Bloquejar i informar",
|
||||
"confirmations.block.confirm": "Bloqueja",
|
||||
"confirmations.block.message": "Estàs segur que vols bloquejar a {name}?",
|
||||
"confirmations.delete.confirm": "Suprimeix",
|
||||
"confirmations.delete.message": "Estàs segur que vols suprimir aquest estat?",
|
||||
"confirmations.delete.message": "Estàs segur que vols suprimir aquest toot?",
|
||||
"confirmations.delete_list.confirm": "Suprimeix",
|
||||
"confirmations.delete_list.message": "Estàs segur que vols suprimir permanentment aquesta llista?",
|
||||
"confirmations.domain_block.confirm": "Amaga tot el domini",
|
||||
|
@ -96,12 +96,12 @@
|
|||
"confirmations.mute.confirm": "Silencia",
|
||||
"confirmations.mute.message": "Estàs segur que vols silenciar {name}?",
|
||||
"confirmations.redraft.confirm": "Esborrar i refer",
|
||||
"confirmations.redraft.message": "Estàs segur que vols esborrar aquesta publicació i tornar a redactar-la? Perderàs totes els impulsos i favorits, i les respostes a la publicació original es quedaran orfes.",
|
||||
"confirmations.redraft.message": "Estàs segur que vols esborrar aquest toot i tornar a redactar-lo? Perderàs totes els impulsos i favorits, i les respostes al toot original es quedaran orfes.",
|
||||
"confirmations.reply.confirm": "Respon",
|
||||
"confirmations.reply.message": "Responen ara es sobreescriurà el missatge que estàs editant. Estàs segur que vols continuar?",
|
||||
"confirmations.unfollow.confirm": "Deixa de seguir",
|
||||
"confirmations.unfollow.message": "Estàs segur que vols deixar de seguir {name}?",
|
||||
"embed.instructions": "Incrusta aquest estat al lloc web copiant el codi a continuació.",
|
||||
"embed.instructions": "Incrusta aquest toot al lloc web copiant el codi a continuació.",
|
||||
"embed.preview": "Aquí tenim quin aspecte tindrá:",
|
||||
"emoji_button.activity": "Activitat",
|
||||
"emoji_button.custom": "Personalitzat",
|
||||
|
@ -118,18 +118,18 @@
|
|||
"emoji_button.symbols": "Símbols",
|
||||
"emoji_button.travel": "Viatges i Llocs",
|
||||
"empty_column.account_timeline": "No hi ha toots aquí!",
|
||||
"empty_column.account_unavailable": "Profile unavailable",
|
||||
"empty_column.account_unavailable": "Perfil no disponible",
|
||||
"empty_column.blocks": "Encara no has bloquejat cap usuari.",
|
||||
"empty_column.community": "La línia de temps local és buida. Escriu alguna cosa públicament per fer rodar la pilota!",
|
||||
"empty_column.community": "La línia de temps local és buida. Escriu alguna cosa públicament per a fer rodar la pilota!",
|
||||
"empty_column.direct": "Encara no tens missatges directes. Quan enviïs o rebis un, es mostrarà aquí.",
|
||||
"empty_column.domain_blocks": "Encara no hi ha dominis ocults.",
|
||||
"empty_column.favourited_statuses": "Encara no tens cap toot favorit. Quan en tinguis, apareixerà aquí.",
|
||||
"empty_column.favourites": "Encara ningú ha marcat aquest toot com a favorit. Quan algú ho faci, apareixera aquí.",
|
||||
"empty_column.follow_requests": "Encara no teniu cap petició de seguiment. Quan rebeu una, apareixerà aquí.",
|
||||
"empty_column.follow_requests": "Encara no teniu cap petició de seguiment. Quan rebis una, apareixerà aquí.",
|
||||
"empty_column.hashtag": "Encara no hi ha res en aquesta etiqueta.",
|
||||
"empty_column.home": "Encara no segueixes ningú. Visita {public} o fes cerca per començar i conèixer altres usuaris.",
|
||||
"empty_column.home.public_timeline": "la línia de temps pública",
|
||||
"empty_column.list": "Encara no hi ha res en aquesta llista. Quan els membres d'aquesta llista publiquin nous estats, apareixeran aquí.",
|
||||
"empty_column.list": "Encara no hi ha res en aquesta llista. Quan els membres d'aquesta llista publiquin nous toots, apareixeran aquí.",
|
||||
"empty_column.lists": "Encara no tens cap llista. Quan en facis una, apareixerà aquí.",
|
||||
"empty_column.mutes": "Encara no has silenciat cap usuari.",
|
||||
"empty_column.notifications": "Encara no tens notificacions. Interactua amb altres per iniciar la conversa.",
|
||||
|
@ -156,6 +156,7 @@
|
|||
"home.column_settings.basic": "Bàsic",
|
||||
"home.column_settings.show_reblogs": "Mostrar impulsos",
|
||||
"home.column_settings.show_replies": "Mostrar respostes",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"intervals.full.days": "{number, plural, one {# dia} other {# dies}}",
|
||||
"intervals.full.hours": "{number, plural, one {# hora} other {# hores}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minut} other {# minuts}}",
|
||||
|
@ -179,31 +180,32 @@
|
|||
"keyboard_shortcuts.back": "navegar enrera",
|
||||
"keyboard_shortcuts.blocked": "per obrir la llista d'usuaris bloquejats",
|
||||
"keyboard_shortcuts.boost": "impulsar",
|
||||
"keyboard_shortcuts.column": "per centrar un estat en una de les columnes",
|
||||
"keyboard_shortcuts.column": "per a centrar un toot en una de les columnes",
|
||||
"keyboard_shortcuts.compose": "per centrar l'area de composició de text",
|
||||
"keyboard_shortcuts.description": "Descripció",
|
||||
"keyboard_shortcuts.direct": "per obrir la columna de missatges directes",
|
||||
"keyboard_shortcuts.down": "per baixar en la llista",
|
||||
"keyboard_shortcuts.enter": "ampliar estat",
|
||||
"keyboard_shortcuts.enter": "ampliar el toot",
|
||||
"keyboard_shortcuts.favourite": "afavorir",
|
||||
"keyboard_shortcuts.favourites": "per obrir la llista de favorits",
|
||||
"keyboard_shortcuts.federated": "per obrir la línia de temps federada",
|
||||
"keyboard_shortcuts.heading": "Dreçeres de teclat",
|
||||
"keyboard_shortcuts.home": "per obrir la línia de temps Inici",
|
||||
"keyboard_shortcuts.home": "per a obrir la línia de temps Inici",
|
||||
"keyboard_shortcuts.hotkey": "Tecla d'accés directe",
|
||||
"keyboard_shortcuts.legend": "per a mostrar aquesta llegenda",
|
||||
"keyboard_shortcuts.local": "per obrir la línia de temps local",
|
||||
"keyboard_shortcuts.mention": "per esmentar l'autor",
|
||||
"keyboard_shortcuts.muted": "per obrir la llista d'usuaris silenciats",
|
||||
"keyboard_shortcuts.my_profile": "per obrir el teu perfil",
|
||||
"keyboard_shortcuts.notifications": "per obrir la columna de notificacions",
|
||||
"keyboard_shortcuts.pinned": "per obrir la llista de toots fixats",
|
||||
"keyboard_shortcuts.profile": "per obrir el perfil de l'autor",
|
||||
"keyboard_shortcuts.local": "per a obrir la línia de temps local",
|
||||
"keyboard_shortcuts.mention": "per a esmentar l'autor",
|
||||
"keyboard_shortcuts.muted": "per a obrir la llista d'usuaris silenciats",
|
||||
"keyboard_shortcuts.my_profile": "per a obrir el teu perfil",
|
||||
"keyboard_shortcuts.notifications": "per a obrir la columna de notificacions",
|
||||
"keyboard_shortcuts.pinned": "per a obrir la llista de toots fixats",
|
||||
"keyboard_shortcuts.profile": "per a obrir el perfil de l'autor",
|
||||
"keyboard_shortcuts.reply": "respondre",
|
||||
"keyboard_shortcuts.requests": "per obrir la llista de sol·licituds de seguiment",
|
||||
"keyboard_shortcuts.search": "per centrar la cerca",
|
||||
"keyboard_shortcuts.start": "per obrir la columna \"Començar\"",
|
||||
"keyboard_shortcuts.requests": "per a obrir la llista de sol·licituds de seguiment",
|
||||
"keyboard_shortcuts.search": "per a centrar la cerca",
|
||||
"keyboard_shortcuts.start": "per a obrir la columna \"Començar\"",
|
||||
"keyboard_shortcuts.toggle_hidden": "per a mostrar/amagar text sota CW",
|
||||
"keyboard_shortcuts.toggle_sensitivity": "per a mostrar/amagar mèdia",
|
||||
"keyboard_shortcuts.toot": "per a començar un toot nou de trinca",
|
||||
"keyboard_shortcuts.unfocus": "descentrar l'area de composició de text/cerca",
|
||||
"keyboard_shortcuts.up": "moure amunt en la llista",
|
||||
|
@ -213,19 +215,20 @@
|
|||
"lightbox.view_context": "Veure el context",
|
||||
"lists.account.add": "Afegir a la llista",
|
||||
"lists.account.remove": "Treure de la llista",
|
||||
"lists.delete": "Delete list",
|
||||
"lists.delete": "Esborrar llista",
|
||||
"lists.edit": "Editar llista",
|
||||
"lists.edit.submit": "Canvi de títol",
|
||||
"lists.new.create": "Afegir llista",
|
||||
"lists.new.title_placeholder": "Nova llista",
|
||||
"lists.search": "Cercar entre les persones que segueixes",
|
||||
"lists.subheading": "Les teves llistes",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"loading_indicator.label": "Carregant...",
|
||||
"media_gallery.toggle_visible": "Alternar visibilitat",
|
||||
"missing_indicator.label": "No trobat",
|
||||
"missing_indicator.sublabel": "Aquest recurs no pot ser trobat",
|
||||
"mute_modal.hide_notifications": "Amagar notificacions d'aquest usuari?",
|
||||
"navigation_bar.apps": "Apps Mòbils",
|
||||
"navigation_bar.apps": "Apps mòbils",
|
||||
"navigation_bar.blocks": "Usuaris bloquejats",
|
||||
"navigation_bar.community_timeline": "Línia de temps Local",
|
||||
"navigation_bar.compose": "Redacta nou toot",
|
||||
|
@ -236,6 +239,7 @@
|
|||
"navigation_bar.favourites": "Favorits",
|
||||
"navigation_bar.filters": "Paraules silenciades",
|
||||
"navigation_bar.follow_requests": "Sol·licituds de seguiment",
|
||||
"navigation_bar.follows_and_followers": "Seguits i seguidors",
|
||||
"navigation_bar.info": "Sobre aquest servidor",
|
||||
"navigation_bar.keyboard_shortcuts": "Dreceres de teclat",
|
||||
"navigation_bar.lists": "Llistes",
|
||||
|
@ -244,6 +248,7 @@
|
|||
"navigation_bar.personal": "Personal",
|
||||
"navigation_bar.pins": "Toots fixats",
|
||||
"navigation_bar.preferences": "Preferències",
|
||||
"navigation_bar.profile_directory": "Directori de perfils",
|
||||
"navigation_bar.public_timeline": "Línia de temps federada",
|
||||
"navigation_bar.security": "Seguretat",
|
||||
"notification.favourite": "{name} ha afavorit el teu estat",
|
||||
|
@ -300,24 +305,25 @@
|
|||
"report.hint": "El informe s'enviarà als moderadors del teu servidor. Pots explicar perquè vols informar d'aquest compte aquí:",
|
||||
"report.placeholder": "Comentaris addicionals",
|
||||
"report.submit": "Enviar",
|
||||
"report.target": "Informes",
|
||||
"report.target": "Informes {target}",
|
||||
"search.placeholder": "Cercar",
|
||||
"search_popout.search_format": "Format de cerca avançada",
|
||||
"search_popout.tips.full_text": "Text simple recupera publicacions que has escrit, les marcades com a favorites, les impulsades o en les que has estat esmentat, així com usuaris, noms d'usuari i etiquetes.",
|
||||
"search_popout.tips.hashtag": "etiqueta",
|
||||
"search_popout.tips.status": "status",
|
||||
"search_popout.tips.status": "estat",
|
||||
"search_popout.tips.text": "El text simple retorna coincidències amb els noms de visualització, els noms d'usuari i les etiquetes",
|
||||
"search_popout.tips.user": "usuari",
|
||||
"search_results.accounts": "Gent",
|
||||
"search_results.hashtags": "Etiquetes",
|
||||
"search_results.statuses": "Toots",
|
||||
"search_results.total": "{count, number} {count, plural, un {result} altres {results}}",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"search_results.total": "{count, number} {count, plural, one {resultat} other {resultats}}",
|
||||
"status.admin_account": "Obre l'interfície de moderació per a @{name}",
|
||||
"status.admin_status": "Obre aquest estat a la interfície de moderació",
|
||||
"status.admin_status": "Obre aquest toot a la interfície de moderació",
|
||||
"status.block": "Bloqueja @{name}",
|
||||
"status.cancel_reblog_private": "Desfer l'impuls",
|
||||
"status.cannot_reblog": "Aquesta publicació no pot ser impulsada",
|
||||
"status.copy": "Copia l'enllaç a l'estat",
|
||||
"status.copy": "Copia l'enllaç al toot",
|
||||
"status.delete": "Esborrar",
|
||||
"status.detailed_status": "Visualització detallada de la conversa",
|
||||
"status.direct": "Missatge directe @{name}",
|
||||
|
@ -363,12 +369,12 @@
|
|||
"time_remaining.minutes": "{number, plural, one {# minut} other {# minuts}} restants",
|
||||
"time_remaining.moments": "Moments restants",
|
||||
"time_remaining.seconds": "{number, plural, one {# segon} other {# segons}} restants",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, una {person} altres {people}} parlant",
|
||||
"ui.beforeunload": "El vostre esborrany es perdrà si sortiu de Mastodon.",
|
||||
"upload_area.title": "Arrossega i deixa anar per carregar",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {persona} other {gent}} talking",
|
||||
"ui.beforeunload": "El teu esborrany es perdrà si surts de Mastodon.",
|
||||
"upload_area.title": "Arrossega i deixa anar per a carregar",
|
||||
"upload_button.label": "Afegir multimèdia (JPEG, PNG, GIF, WebM, MP4, MOV)",
|
||||
"upload_error.limit": "S'ha superat el límit de càrrega d'arxius.",
|
||||
"upload_error.poll": "No es permet l'enviament de fitxers amb les enquestes.",
|
||||
"upload_error.poll": "No es permet l'enviament de fitxers en les enquestes.",
|
||||
"upload_form.description": "Descriure els problemes visuals",
|
||||
"upload_form.focus": "Modificar la previsualització",
|
||||
"upload_form.undo": "Esborra",
|
||||
|
|
|
@ -156,6 +156,7 @@
|
|||
"home.column_settings.basic": "Bàsichi",
|
||||
"home.column_settings.show_reblogs": "Vede e spartere",
|
||||
"home.column_settings.show_replies": "Vede e risposte",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"intervals.full.days": "{number, plural, one {# ghjornu} other {# ghjorni}}",
|
||||
"intervals.full.hours": "{number, plural, one {# ora} other {# ore}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minuta} other {# minute}}",
|
||||
|
@ -221,6 +222,7 @@
|
|||
"lists.new.title_placeholder": "Titulu di a lista",
|
||||
"lists.search": "Circà indè i vostr'abbunamenti",
|
||||
"lists.subheading": "E vo liste",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"loading_indicator.label": "Caricamentu...",
|
||||
"media_gallery.toggle_visible": "Cambià a visibilità",
|
||||
"missing_indicator.label": "Micca trovu",
|
||||
|
@ -313,6 +315,7 @@
|
|||
"search_results.accounts": "Ghjente",
|
||||
"search_results.hashtags": "Hashtag",
|
||||
"search_results.statuses": "Statuti",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"search_results.total": "{count, number} {count, plural, one {risultatu} other {risultati}}",
|
||||
"status.admin_account": "Apre l'interfaccia di muderazione per @{name}",
|
||||
"status.admin_status": "Apre stu statutu in l'interfaccia di muderazione",
|
||||
|
|
|
@ -156,6 +156,7 @@
|
|||
"home.column_settings.basic": "Základní",
|
||||
"home.column_settings.show_reblogs": "Zobrazit boosty",
|
||||
"home.column_settings.show_replies": "Zobrazit odpovědi",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"intervals.full.days": "{number, plural, one {# den} few {# dny} many {# dne} other {# dní}}",
|
||||
"intervals.full.hours": "{number, plural, one {# hodina} few {# hodiny} many {# hodiny} other {# hodin}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minuta} few {# minuty} many {# minuty} other {# minut}}",
|
||||
|
@ -220,6 +221,7 @@
|
|||
"lists.new.title_placeholder": "Název nového seznamu",
|
||||
"lists.search": "Hledejte mezi lidmi, které sledujete",
|
||||
"lists.subheading": "Vaše seznamy",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"loading_indicator.label": "Načítám…",
|
||||
"media_gallery.toggle_visible": "Přepínat viditelnost",
|
||||
"missing_indicator.label": "Nenalezeno",
|
||||
|
@ -312,6 +314,7 @@
|
|||
"search_results.accounts": "Lidé",
|
||||
"search_results.hashtags": "Hashtagy",
|
||||
"search_results.statuses": "Tooty",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"search_results.total": "{count, number} {count, plural, one {výsledek} few {výsledky} many {výsledku} other {výsledků}}",
|
||||
"status.admin_account": "Otevřít moderátorské rozhraní pro uživatele @{name}",
|
||||
"status.admin_status": "Otevřít tento toot v moderátorském rozhraní",
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
"bundle_modal_error.message": "Aeth rhywbeth o'i le tra'n llwytho'r elfen hon.",
|
||||
"bundle_modal_error.retry": "Ceiswich eto",
|
||||
"column.blocks": "Defnyddwyr a flociwyd",
|
||||
"column.community": "Llinell amser lleol",
|
||||
"column.community": "Ffrwd lleol",
|
||||
"column.direct": "Negeseuon preifat",
|
||||
"column.domain_blocks": "Parthau cuddiedig",
|
||||
"column.favourites": "Ffefrynnau",
|
||||
|
@ -71,20 +71,20 @@
|
|||
"compose_form.lock_disclaimer": "Nid yw eich cyfri wedi'i {locked}. Gall unrhyw un eich dilyn i weld eich tŵtiau dilynwyr-yn-unig.",
|
||||
"compose_form.lock_disclaimer.lock": "wedi ei gloi",
|
||||
"compose_form.placeholder": "Beth sydd ar eich meddwl?",
|
||||
"compose_form.poll.add_option": "Add a choice",
|
||||
"compose_form.poll.duration": "Poll duration",
|
||||
"compose_form.poll.option_placeholder": "Choice {number}",
|
||||
"compose_form.poll.remove_option": "Remove this choice",
|
||||
"compose_form.poll.add_option": "Ychwanegu Dewisiad",
|
||||
"compose_form.poll.duration": "Cyfnod pleidlais",
|
||||
"compose_form.poll.option_placeholder": "Dewisiad {number}",
|
||||
"compose_form.poll.remove_option": "Tynnu'r dewisiad",
|
||||
"compose_form.publish": "Tŵt",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.sensitive.hide": "Mark media as sensitive",
|
||||
"compose_form.sensitive.hide": "Marcio cyfryngau fel eu bod yn sensitif",
|
||||
"compose_form.sensitive.marked": "Cyfryngau wedi'u marcio'n sensitif",
|
||||
"compose_form.sensitive.unmarked": "Nid yw'r cyfryngau wedi'u marcio'n sensitif",
|
||||
"compose_form.spoiler.marked": "Testun wedi ei guddio gan rybudd",
|
||||
"compose_form.spoiler.unmarked": "Nid yw'r testun wedi ei guddio",
|
||||
"compose_form.spoiler_placeholder": "Ysgrifenwch eich rhybudd yma",
|
||||
"confirmation_modal.cancel": "Canslo",
|
||||
"confirmations.block.block_and_report": "Block & Report",
|
||||
"confirmations.block.block_and_report": "Rhwystro ac Adrodd",
|
||||
"confirmations.block.confirm": "Blocio",
|
||||
"confirmations.block.message": "Ydych chi'n sicr eich bod eisiau blocio {name}?",
|
||||
"confirmations.delete.confirm": "Dileu",
|
||||
|
@ -109,7 +109,7 @@
|
|||
"emoji_button.food": "Bwyd a Diod",
|
||||
"emoji_button.label": "Mewnosodwch emoji",
|
||||
"emoji_button.nature": "Natur",
|
||||
"emoji_button.not_found": "Dim emojo!! (╯°□°)╯︵ ┻━┻",
|
||||
"emoji_button.not_found": "Dim emojau!! (╯°□°)╯︵ ┻━┻",
|
||||
"emoji_button.objects": "Gwrthrychau",
|
||||
"emoji_button.people": "Pobl",
|
||||
"emoji_button.recent": "Defnyddir yn aml",
|
||||
|
@ -117,8 +117,8 @@
|
|||
"emoji_button.search_results": "Canlyniadau chwilio",
|
||||
"emoji_button.symbols": "Symbolau",
|
||||
"emoji_button.travel": "Teithio & Llefydd",
|
||||
"empty_column.account_timeline": "No toots here!",
|
||||
"empty_column.account_unavailable": "Profile unavailable",
|
||||
"empty_column.account_timeline": "Dim tŵtiau fama!",
|
||||
"empty_column.account_unavailable": "Proffil ddim ar gael",
|
||||
"empty_column.blocks": "Nid ydych wedi blocio unrhyw ddefnyddwyr eto.",
|
||||
"empty_column.community": "Mae'r ffrwd lleol yn wag. Ysgrifenwch rhywbeth yn gyhoeddus i gael dechrau arni!",
|
||||
"empty_column.direct": "Nid oes gennych unrhyw negeseuon preifat eto. Pan y byddwch yn anfon neu derbyn un, mi fydd yn ymddangos yma.",
|
||||
|
@ -147,8 +147,8 @@
|
|||
"hashtag.column_header.tag_mode.all": "a {additional}",
|
||||
"hashtag.column_header.tag_mode.any": "neu {additional}",
|
||||
"hashtag.column_header.tag_mode.none": "heb {additional}",
|
||||
"hashtag.column_settings.select.no_options_message": "No suggestions found",
|
||||
"hashtag.column_settings.select.placeholder": "Enter hashtags…",
|
||||
"hashtag.column_settings.select.no_options_message": "Dim awgrymiadau i'w weld",
|
||||
"hashtag.column_settings.select.placeholder": "Mewnbynnu hashnodau…",
|
||||
"hashtag.column_settings.tag_mode.all": "Pob un o'r rhain",
|
||||
"hashtag.column_settings.tag_mode.any": "Unrhyw un o'r rhain",
|
||||
"hashtag.column_settings.tag_mode.none": "Dim o'r rhain",
|
||||
|
@ -156,26 +156,27 @@
|
|||
"home.column_settings.basic": "Syml",
|
||||
"home.column_settings.show_reblogs": "Dangos bŵstiau",
|
||||
"home.column_settings.show_replies": "Dangos ymatebion",
|
||||
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
|
||||
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"intervals.full.days": "{number, plural, one {# ddydd} other {# o ddyddiau}}",
|
||||
"intervals.full.hours": "{number, plural, one {# awr} other {# o oriau}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# funud} other {# o funudau}}",
|
||||
"introduction.federation.action": "Nesaf",
|
||||
"introduction.federation.federated.headline": "Ffederasiwn",
|
||||
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
|
||||
"introduction.federation.home.headline": "Home",
|
||||
"introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
|
||||
"introduction.federation.local.headline": "Local",
|
||||
"introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
|
||||
"introduction.federation.federated.text": "Bydd pyst cyhoeddus o gweinyddion arall yn y Ffedysawd yn cael ai arddangos yn ffrwd y ffederasiwn.",
|
||||
"introduction.federation.home.headline": "Hafan",
|
||||
"introduction.federation.home.text": "Bydd pyst o bobl rydych yn ei ddilyn yn dangos yn eich ffrwd gatref. Gallwch dilyn unrhyw un ar unrhyw gweinydd!",
|
||||
"introduction.federation.local.headline": "Lleol",
|
||||
"introduction.federation.local.text": "Bydd pyst gyhoeddus o bobl ar yr un gweinydd a chi yn cael ei arddangos yn y ffrwd lleol.",
|
||||
"introduction.interactions.action": "Gorffen tiwtorial!",
|
||||
"introduction.interactions.favourite.headline": "Ffefryn",
|
||||
"introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
|
||||
"introduction.interactions.favourite.text": "Gallwch cadw tŵt am hwyrach, a gadael i'r awdur gwybod roeddech yn ei hoffi, trwy ei hoffi.",
|
||||
"introduction.interactions.reblog.headline": "Hwb",
|
||||
"introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
|
||||
"introduction.interactions.reblog.text": "Gallwch rhannu tŵtiau pobl eraill gyda'ch dilynwyr trwy eu bŵstio.",
|
||||
"introduction.interactions.reply.headline": "Ateb",
|
||||
"introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
|
||||
"introduction.interactions.reply.text": "Gallwch ateb i dŵtiau pobl eraill a thŵtiau eich hun, a fydd yn eu cadwyno at ei gilydd mewn sgwrs.",
|
||||
"introduction.welcome.action": "Awn ni!",
|
||||
"introduction.welcome.headline": "Camau cyntaf",
|
||||
"introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.",
|
||||
"introduction.welcome.text": "Croeso i'r ffedysawd! Mewn ychydig o funudau, byddwch yn gallu darlledu negeseuon a siarad i'ch ffrindiau ar draws amrywiaeth eang o weinyddion. Ond mae'r gweinydd hyn, {domain}, yn arbennig - mae o'n gweinyddu eich proffil, fellu cofiwch ei enw.",
|
||||
"keyboard_shortcuts.back": "i lywio nôl",
|
||||
"keyboard_shortcuts.blocked": "i agor rhestr defnyddwyr a flociwyd",
|
||||
"keyboard_shortcuts.boost": "i fŵstio",
|
||||
|
@ -190,7 +191,7 @@
|
|||
"keyboard_shortcuts.federated": "i agor ffrwd y ffederasiwn",
|
||||
"keyboard_shortcuts.heading": "Llwybrau byr allweddell",
|
||||
"keyboard_shortcuts.home": "i agor ffrwd cartref",
|
||||
"keyboard_shortcuts.hotkey": "Hotkey",
|
||||
"keyboard_shortcuts.hotkey": "Bysell brys",
|
||||
"keyboard_shortcuts.legend": "i ddangos yr arwr yma",
|
||||
"keyboard_shortcuts.local": "i agor ffrwd lleol",
|
||||
"keyboard_shortcuts.mention": "i grybwyll yr awdur",
|
||||
|
@ -204,22 +205,24 @@
|
|||
"keyboard_shortcuts.search": "i ffocysu chwilio",
|
||||
"keyboard_shortcuts.start": "i agor colofn \"dechrau arni\"",
|
||||
"keyboard_shortcuts.toggle_hidden": "i ddangos/cuddio testun tu ôl i CW",
|
||||
"keyboard_shortcuts.toggle_sensitivity": "i ddangos/gyddio cyfryngau",
|
||||
"keyboard_shortcuts.toot": "i ddechrau tŵt newydd sbon",
|
||||
"keyboard_shortcuts.unfocus": "i ddad-ffocysu ardal cyfansoddi testun/chwilio",
|
||||
"keyboard_shortcuts.up": "i symud yn uwch yn y rhestr",
|
||||
"lightbox.close": "Cau",
|
||||
"lightbox.next": "Nesaf",
|
||||
"lightbox.previous": "Blaenorol",
|
||||
"lightbox.view_context": "View context",
|
||||
"lightbox.view_context": "Gweld cyd-destyn",
|
||||
"lists.account.add": "Ychwanegwch at restr",
|
||||
"lists.account.remove": "Dileu o'r rhestr",
|
||||
"lists.delete": "Dileu rhestr",
|
||||
"lists.edit": "Golygwch rhestr",
|
||||
"lists.edit.submit": "Change title",
|
||||
"lists.edit.submit": "Newid teitl",
|
||||
"lists.new.create": "Ychwanegu rhestr",
|
||||
"lists.new.title_placeholder": "Teitl rhestr newydd",
|
||||
"lists.search": "Chwilio ymysg pobl yr ydych yn ei ddilyn",
|
||||
"lists.subheading": "Eich rhestrau",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"loading_indicator.label": "Llwytho...",
|
||||
"media_gallery.toggle_visible": "Toglo gwelededd",
|
||||
"missing_indicator.label": "Heb ei ganfod",
|
||||
|
@ -236,6 +239,7 @@
|
|||
"navigation_bar.favourites": "Ffefrynnau",
|
||||
"navigation_bar.filters": "Geiriau a dawelwyd",
|
||||
"navigation_bar.follow_requests": "Ceisiadau dilyn",
|
||||
"navigation_bar.follows_and_followers": "Dilynion a ddilynwyr",
|
||||
"navigation_bar.info": "Ynghylch yr achos hwn",
|
||||
"navigation_bar.keyboard_shortcuts": "Bysellau brys",
|
||||
"navigation_bar.lists": "Rhestrau",
|
||||
|
@ -244,12 +248,13 @@
|
|||
"navigation_bar.personal": "Personol",
|
||||
"navigation_bar.pins": "Tŵtiau wedi eu pinio",
|
||||
"navigation_bar.preferences": "Dewisiadau",
|
||||
"navigation_bar.profile_directory": "Cyfeiriadur Proffil",
|
||||
"navigation_bar.public_timeline": "Ffrwd y ffederasiwn",
|
||||
"navigation_bar.security": "Diogelwch",
|
||||
"notification.favourite": "hoffodd {name} eich tŵt",
|
||||
"notification.follow": "dilynodd {name} chi",
|
||||
"notification.mention": "Soniodd {name} amdanoch chi",
|
||||
"notification.poll": "A poll you have voted in has ended",
|
||||
"notification.poll": "Mae pleidlais rydych wedi pleidleisio ynddi wedi dod i ben",
|
||||
"notification.reblog": "Hysbysebodd {name} eich tŵt",
|
||||
"notifications.clear": "Clirio hysbysiadau",
|
||||
"notifications.clear_confirmation": "Ydych chi'n sicr eich bod am glirio'ch holl hysbysiadau am byth?",
|
||||
|
@ -260,8 +265,8 @@
|
|||
"notifications.column_settings.filter_bar.show": "Dangos",
|
||||
"notifications.column_settings.follow": "Dilynwyr newydd:",
|
||||
"notifications.column_settings.mention": "Crybwylliadau:",
|
||||
"notifications.column_settings.poll": "Poll results:",
|
||||
"notifications.column_settings.push": "Hysbysiadau push",
|
||||
"notifications.column_settings.poll": "Canlyniadau pleidlais:",
|
||||
"notifications.column_settings.push": "Hysbysiadau gwthiadwy",
|
||||
"notifications.column_settings.reblog": "Hybiadau:",
|
||||
"notifications.column_settings.show": "Dangos yn y golofn",
|
||||
"notifications.column_settings.sound": "Chwarae sain",
|
||||
|
@ -270,14 +275,14 @@
|
|||
"notifications.filter.favourites": "Ffefrynnau",
|
||||
"notifications.filter.follows": "Yn dilyn",
|
||||
"notifications.filter.mentions": "Crybwylliadau",
|
||||
"notifications.filter.polls": "Poll results",
|
||||
"notifications.filter.polls": "Canlyniadau pleidlais",
|
||||
"notifications.group": "{count} o hysbysiadau",
|
||||
"poll.closed": "Closed",
|
||||
"poll.refresh": "Refresh",
|
||||
"poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
|
||||
"poll.vote": "Vote",
|
||||
"poll_button.add_poll": "Add a poll",
|
||||
"poll_button.remove_poll": "Remove poll",
|
||||
"poll.closed": "Ar gau",
|
||||
"poll.refresh": "Adnewyddu",
|
||||
"poll.total_votes": "{count, plural, one {# bleidlais} other {# o bleidleisiau}}",
|
||||
"poll.vote": "Pleidleisio",
|
||||
"poll_button.add_poll": "Ychwanegu pleidlais",
|
||||
"poll_button.remove_poll": "Tynnu pleidlais",
|
||||
"privacy.change": "Addasu preifatrwdd y tŵt",
|
||||
"privacy.direct.long": "Cyhoeddi i'r defnyddwyr sy'n cael eu crybwyll yn unig",
|
||||
"privacy.direct.short": "Uniongyrchol",
|
||||
|
@ -289,11 +294,11 @@
|
|||
"privacy.unlisted.short": "Heb ei restru",
|
||||
"regeneration_indicator.label": "Llwytho…",
|
||||
"regeneration_indicator.sublabel": "Mae eich ffrwd cartref yn cael ei baratoi!",
|
||||
"relative_time.days": "{number}d",
|
||||
"relative_time.hours": "{number}h",
|
||||
"relative_time.days": "{number}dydd",
|
||||
"relative_time.hours": "{number}awr",
|
||||
"relative_time.just_now": "nawr",
|
||||
"relative_time.minutes": "{number}m",
|
||||
"relative_time.seconds": "{number}s",
|
||||
"relative_time.minutes": "{number}munud",
|
||||
"relative_time.seconds": "{number}eiliad",
|
||||
"reply_indicator.cancel": "Canslo",
|
||||
"report.forward": "Ymlaen i {target}",
|
||||
"report.forward_hint": "Mae'r cyfrif o weinydd arall. Anfon copi anhysbys o'r adroddiad yno hefyd?",
|
||||
|
@ -311,13 +316,14 @@
|
|||
"search_results.accounts": "Pobl",
|
||||
"search_results.hashtags": "Hanshnodau",
|
||||
"search_results.statuses": "Tŵtiau",
|
||||
"search_results.total": "{count, number} {count, plural, one {result} arall {results}}",
|
||||
"status.admin_account": "Open moderation interface for @{name}",
|
||||
"status.admin_status": "Open this tŵt in the moderation interface",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
|
||||
"status.admin_account": "Agor rhyngwyneb goruwchwylio ar gyfer @{name}",
|
||||
"status.admin_status": "Agor y tŵt yn y rhyngwyneb goruwchwylio",
|
||||
"status.block": "Blocio @{name}",
|
||||
"status.cancel_reblog_private": "Dadfŵstio",
|
||||
"status.cannot_reblog": "Ni ellir sbarduno'r tŵt hwn",
|
||||
"status.copy": "Copy link to status",
|
||||
"status.copy": "Copïo cysylltiad i'r tŵt",
|
||||
"status.delete": "Dileu",
|
||||
"status.detailed_status": "Golwg manwl o'r sgwrs",
|
||||
"status.direct": "Neges breifat @{name}",
|
||||
|
@ -358,17 +364,17 @@
|
|||
"tabs_bar.local_timeline": "Lleol",
|
||||
"tabs_bar.notifications": "Hysbysiadau",
|
||||
"tabs_bar.search": "Chwilio",
|
||||
"time_remaining.days": "{number, plural, one {# day} other {# days}} left",
|
||||
"time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
|
||||
"time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
|
||||
"time_remaining.moments": "Moments remaining",
|
||||
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
|
||||
"time_remaining.days": "{number, plural, one {# ddydd} other {# o ddyddiau}} ar ôl",
|
||||
"time_remaining.hours": "{number, plural, one {# awr} other {# o oriau}} ar ôl",
|
||||
"time_remaining.minutes": "{number, plural, one {# funud} other {# o funudau}} ar ôl",
|
||||
"time_remaining.moments": "Munudau ar ôl",
|
||||
"time_remaining.seconds": "{number, plural, one {# eiliad} other {# o eiliadau}} ar ôl",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} yn siarad",
|
||||
"ui.beforeunload": "Mi fyddwch yn colli eich drafft os gadewch Mastodon.",
|
||||
"upload_area.title": "Llusgwch & gollwing i uwchlwytho",
|
||||
"upload_button.label": "Ychwanegwch gyfryngau (JPEG, PNG, GIF, WebM, MP4, MOV)",
|
||||
"upload_error.limit": "File upload limit exceeded.",
|
||||
"upload_error.poll": "File upload not allowed with polls.",
|
||||
"upload_error.limit": "Wedi mynd heibio'r uchafswm terfyn uwchlwytho.",
|
||||
"upload_error.poll": "Nid oes modd uwchlwytho ffeiliau â phleidleisiau.",
|
||||
"upload_form.description": "Disgrifio i'r rheini a nam ar ei golwg",
|
||||
"upload_form.focus": "Newid rhagolwg",
|
||||
"upload_form.undo": "Dileu",
|
||||
|
|
|
@ -156,6 +156,7 @@
|
|||
"home.column_settings.basic": "Grundlæggende",
|
||||
"home.column_settings.show_reblogs": "Vis fremhævelser",
|
||||
"home.column_settings.show_replies": "Vis svar",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
|
||||
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
|
||||
|
@ -220,6 +221,7 @@
|
|||
"lists.new.title_placeholder": "Ny liste titel",
|
||||
"lists.search": "Søg iblandt folk du følger",
|
||||
"lists.subheading": "Dine lister",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"loading_indicator.label": "Indlæser...",
|
||||
"media_gallery.toggle_visible": "Ændre synlighed",
|
||||
"missing_indicator.label": "Ikke fundet",
|
||||
|
@ -311,6 +313,7 @@
|
|||
"search_results.accounts": "Folk",
|
||||
"search_results.hashtags": "Emnetags",
|
||||
"search_results.statuses": "Trut",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"search_results.total": "{count, number} {count, plural, et {result} andre {results}}",
|
||||
"status.admin_account": "Open moderation interface for @{name}",
|
||||
"status.admin_status": "Open this status in the moderation interface",
|
||||
|
|
|
@ -156,6 +156,7 @@
|
|||
"home.column_settings.basic": "Einfach",
|
||||
"home.column_settings.show_reblogs": "Geteilte Beiträge anzeigen",
|
||||
"home.column_settings.show_replies": "Antworten anzeigen",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"intervals.full.days": "{number, plural, one {# Tag} other {# Tage}}",
|
||||
"intervals.full.hours": "{number, plural, one {# Stunde} other {# Stunden}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# Minute} other {# Minuten}}",
|
||||
|
@ -220,6 +221,7 @@
|
|||
"lists.new.title_placeholder": "Neuer Titel der Liste",
|
||||
"lists.search": "Suche nach Leuten denen du folgst",
|
||||
"lists.subheading": "Deine Listen",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"loading_indicator.label": "Wird geladen …",
|
||||
"media_gallery.toggle_visible": "Sichtbarkeit umschalten",
|
||||
"missing_indicator.label": "Nicht gefunden",
|
||||
|
@ -311,6 +313,7 @@
|
|||
"search_results.accounts": "Personen",
|
||||
"search_results.hashtags": "Hashtags",
|
||||
"search_results.statuses": "Beiträge",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"search_results.total": "{count, number} {count, plural, one {Ergebnis} other {Ergebnisse}}",
|
||||
"status.admin_account": "Öffne Moderationsoberfläche für @{name}",
|
||||
"status.admin_status": "Öffne diesen Status in der Moderationsoberfläche",
|
||||
|
|
|
@ -158,6 +158,15 @@
|
|||
],
|
||||
"path": "app/javascript/mastodon/components/load_more.json"
|
||||
},
|
||||
{
|
||||
"descriptors": [
|
||||
{
|
||||
"defaultMessage": "{count, plural, one {# new item} other {# new items}}",
|
||||
"id": "load_pending"
|
||||
}
|
||||
],
|
||||
"path": "app/javascript/mastodon/components/load_pending.json"
|
||||
},
|
||||
{
|
||||
"descriptors": [
|
||||
{
|
||||
|
@ -735,7 +744,7 @@
|
|||
{
|
||||
"descriptors": [
|
||||
{
|
||||
"defaultMessage": "Media Only",
|
||||
"defaultMessage": "Media only",
|
||||
"id": "community.column_settings.media_only"
|
||||
}
|
||||
],
|
||||
|
@ -1004,6 +1013,10 @@
|
|||
"defaultMessage": "Roars",
|
||||
"id": "search_results.statuses"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"id": "search_results.statuses_fts_disabled"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Hashtags",
|
||||
"id": "search_results.hashtags"
|
||||
|
@ -1797,6 +1810,14 @@
|
|||
"defaultMessage": "Push notifications",
|
||||
"id": "notifications.column_settings.push"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Basic",
|
||||
"id": "home.column_settings.basic"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Update in real-time",
|
||||
"id": "home.column_settings.update_live"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Quick filter bar",
|
||||
"id": "notifications.column_settings.filter_bar.category"
|
||||
|
|
|
@ -156,6 +156,7 @@
|
|||
"home.column_settings.basic": "Βασικά",
|
||||
"home.column_settings.show_reblogs": "Εμφάνιση προωθήσεων",
|
||||
"home.column_settings.show_replies": "Εμφάνιση απαντήσεων",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"intervals.full.days": "{number, plural, one {# μέρα} other {# μέρες}}",
|
||||
"intervals.full.hours": "{number, plural, one {# ώρα} other {# ώρες}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# λεπτό} other {# λεπτά}}",
|
||||
|
@ -220,6 +221,7 @@
|
|||
"lists.new.title_placeholder": "Τίτλος νέας λίστα",
|
||||
"lists.search": "Αναζήτησε μεταξύ των ανθρώπων που ακουλουθείς",
|
||||
"lists.subheading": "Οι λίστες σου",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"loading_indicator.label": "Φορτώνει...",
|
||||
"media_gallery.toggle_visible": "Εναλλαγή ορατότητας",
|
||||
"missing_indicator.label": "Δε βρέθηκε",
|
||||
|
@ -311,6 +313,7 @@
|
|||
"search_results.accounts": "Άνθρωποι",
|
||||
"search_results.hashtags": "Ταμπέλες",
|
||||
"search_results.statuses": "Τουτ",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"search_results.total": "{count, number} {count, plural, zero {αποτελέσματα} one {αποτέλεσμα} other {αποτελέσματα}}",
|
||||
"status.admin_account": "Άνοιγμα λειτουργίας διαμεσολάβησης για τον/την @{name}",
|
||||
"status.admin_status": "Άνοιγμα αυτής της δημοσίευσης στη λειτουργία διαμεσολάβησης",
|
||||
|
|
|
@ -164,6 +164,7 @@
|
|||
"home.column_settings.basic": "Basic",
|
||||
"home.column_settings.show_reblogs": "Show repeats",
|
||||
"home.column_settings.show_replies": "Show replies",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
|
||||
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
|
||||
|
@ -230,6 +231,7 @@
|
|||
"lists.search": "Search among monsters in your pack",
|
||||
"lists.subheading": "Your lists",
|
||||
"lists.show_self": "Include your own roars",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"loading_indicator.label": "Loading...",
|
||||
"media_gallery.toggle_visible": "Toggle visibility",
|
||||
"missing_indicator.label": "Not found",
|
||||
|
@ -324,7 +326,12 @@
|
|||
"search_popout.tips.user": "creature",
|
||||
"search_results.accounts": "Monsters",
|
||||
"search_results.hashtags": "Hashtags",
|
||||
<<<<<<< HEAD
|
||||
"search_results.statuses": "Roars",
|
||||
=======
|
||||
"search_results.statuses": "TF spells",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
>>>>>>> af0c4b345... Make a shoddy attempt to merge pull request #1158 from ThibG/glitch-soc/merge-upstream
|
||||
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
|
||||
"status.admin_account": "Moderate @{name}",
|
||||
"status.admin_status": "Moderate roar",
|
||||
|
|
|
@ -156,6 +156,7 @@
|
|||
"home.column_settings.basic": "Bazaj agordoj",
|
||||
"home.column_settings.show_reblogs": "Montri diskonigojn",
|
||||
"home.column_settings.show_replies": "Montri respondojn",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"intervals.full.days": "{number, plural, one {# tago} other {# tagoj}}",
|
||||
"intervals.full.hours": "{number, plural, one {# horo} other {# horoj}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minuto} other {# minutoj}}",
|
||||
|
@ -220,6 +221,7 @@
|
|||
"lists.new.title_placeholder": "Titolo de la nova listo",
|
||||
"lists.search": "Serĉi inter la homoj, kiujn vi sekvas",
|
||||
"lists.subheading": "Viaj listoj",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"loading_indicator.label": "Ŝargado…",
|
||||
"media_gallery.toggle_visible": "Baskuligi videblecon",
|
||||
"missing_indicator.label": "Ne trovita",
|
||||
|
@ -311,6 +313,7 @@
|
|||
"search_results.accounts": "Homoj",
|
||||
"search_results.hashtags": "Kradvortoj",
|
||||
"search_results.statuses": "Mesaĝoj",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"search_results.total": "{count, number} {count, plural, one {rezulto} other {rezultoj}}",
|
||||
"status.admin_account": "Malfermi la kontrolan interfacon por @{name}",
|
||||
"status.admin_status": "Malfermi ĉi tiun mesaĝon en la kontrola interfaco",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"account.add_or_remove_from_list": "Add or Remove from lists",
|
||||
"account.add_or_remove_from_list": "Agregar o eliminar de las listas",
|
||||
"account.badges.bot": "Bot",
|
||||
"account.block": "Bloquear",
|
||||
"account.block_domain": "Ocultar todo de {domain}",
|
||||
|
@ -15,9 +15,9 @@
|
|||
"account.follows.empty": "Este usuario todavía no sigue a nadie.",
|
||||
"account.follows_you": "Te sigue",
|
||||
"account.hide_reblogs": "Ocultar retoots de @{name}",
|
||||
"account.link_verified_on": "Ownership of this link was checked on {date}",
|
||||
"account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
|
||||
"account.media": "Media",
|
||||
"account.link_verified_on": "El proprietario de este link fue verificado el {date}",
|
||||
"account.locked_info": "El estado de privacidad de esta cuenta està configurado como bloqueado. El proprietario debe revisar manualmente quien puede seguirle.",
|
||||
"account.media": "Multimedia",
|
||||
"account.mention": "Mencionar a @{name}",
|
||||
"account.moved_to": "{name} se ha mudado a:",
|
||||
"account.mute": "Silenciar a @{name}",
|
||||
|
@ -36,7 +36,7 @@
|
|||
"account.unmute": "Dejar de silenciar a @{name}",
|
||||
"account.unmute_notifications": "Dejar de silenciar las notificaciones de @{name}",
|
||||
"alert.unexpected.message": "Hubo un error inesperado.",
|
||||
"alert.unexpected.title": "Oops!",
|
||||
"alert.unexpected.title": "¡Ups!",
|
||||
"boost_modal.combo": "Puedes presionar {combo} para saltear este aviso la próxima vez",
|
||||
"bundle_column_error.body": "Algo salió mal al cargar este componente.",
|
||||
"bundle_column_error.retry": "Inténtalo de nuevo",
|
||||
|
@ -71,25 +71,25 @@
|
|||
"compose_form.lock_disclaimer": "Tu cuenta no está bloqueada. Todos pueden seguirte para ver tus toots solo para seguidores.",
|
||||
"compose_form.lock_disclaimer.lock": "bloqueado",
|
||||
"compose_form.placeholder": "¿En qué estás pensando?",
|
||||
"compose_form.poll.add_option": "Add a choice",
|
||||
"compose_form.poll.duration": "Poll duration",
|
||||
"compose_form.poll.option_placeholder": "Choice {number}",
|
||||
"compose_form.poll.remove_option": "Remove this choice",
|
||||
"compose_form.poll.add_option": "Añadir una opción",
|
||||
"compose_form.poll.duration": "Duración de la encuesta",
|
||||
"compose_form.poll.option_placeholder": "Elección {number}",
|
||||
"compose_form.poll.remove_option": "Eliminar esta opción",
|
||||
"compose_form.publish": "Tootear",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.sensitive.hide": "Mark media as sensitive",
|
||||
"compose_form.sensitive.hide": "Marcar multimedia como sensible",
|
||||
"compose_form.sensitive.marked": "Material marcado como sensible",
|
||||
"compose_form.sensitive.unmarked": "Material no marcado como sensible",
|
||||
"compose_form.spoiler.marked": "Texto oculto tras la advertencia",
|
||||
"compose_form.spoiler.unmarked": "Texto no oculto",
|
||||
"compose_form.spoiler_placeholder": "Advertencia de contenido",
|
||||
"confirmation_modal.cancel": "Cancelar",
|
||||
"confirmations.block.block_and_report": "Block & Report",
|
||||
"confirmations.block.block_and_report": "Bloquear y Reportar",
|
||||
"confirmations.block.confirm": "Bloquear",
|
||||
"confirmations.block.message": "¿Estás seguro de que quieres bloquear a {name}?",
|
||||
"confirmations.delete.confirm": "Eliminar",
|
||||
"confirmations.delete.message": "¿Estás seguro de que quieres borrar este toot?",
|
||||
"confirmations.delete_list.confirm": "Delete",
|
||||
"confirmations.delete_list.confirm": "Eliminar",
|
||||
"confirmations.delete_list.message": "¿Seguro que quieres borrar esta lista permanentemente?",
|
||||
"confirmations.domain_block.confirm": "Ocultar dominio entero",
|
||||
"confirmations.domain_block.message": "¿Seguro de que quieres bloquear al dominio {domain} entero? En general unos cuantos bloqueos y silenciados concretos es suficiente y preferible.",
|
||||
|
@ -97,8 +97,8 @@
|
|||
"confirmations.mute.message": "¿Estás seguro de que quieres silenciar a {name}?",
|
||||
"confirmations.redraft.confirm": "Borrar y volver a borrador",
|
||||
"confirmations.redraft.message": "Estás seguro de que quieres borrar este estado y volverlo a borrador? Perderás todas las respuestas, impulsos y favoritos asociados a él, y las respuestas a la publicación original quedarán huérfanos.",
|
||||
"confirmations.reply.confirm": "Reply",
|
||||
"confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
|
||||
"confirmations.reply.confirm": "Responder",
|
||||
"confirmations.reply.message": "Responder sobrescribirá el mensaje que estás escribiendo. ¿Estás seguro de que deseas continuar?",
|
||||
"confirmations.unfollow.confirm": "Dejar de seguir",
|
||||
"confirmations.unfollow.message": "¿Estás seguro de que quieres dejar de seguir a {name}?",
|
||||
"embed.instructions": "Añade este toot a tu sitio web con el siguiente código.",
|
||||
|
@ -117,8 +117,8 @@
|
|||
"emoji_button.search_results": "Resultados de búsqueda",
|
||||
"emoji_button.symbols": "Símbolos",
|
||||
"emoji_button.travel": "Viajes y lugares",
|
||||
"empty_column.account_timeline": "No toots here!",
|
||||
"empty_column.account_unavailable": "Profile unavailable",
|
||||
"empty_column.account_timeline": "¡No hay toots aquí!",
|
||||
"empty_column.account_unavailable": "Perfil no disponible",
|
||||
"empty_column.blocks": "Aún no has bloqueado a ningún usuario.",
|
||||
"empty_column.community": "La línea de tiempo local está vacía. ¡Escribe algo para empezar la fiesta!",
|
||||
"empty_column.direct": "Aún no tienes ningún mensaje directo. Cuando envíes o recibas uno, se mostrará aquí.",
|
||||
|
@ -137,54 +137,55 @@
|
|||
"follow_request.authorize": "Autorizar",
|
||||
"follow_request.reject": "Rechazar",
|
||||
"getting_started.developers": "Desarrolladores",
|
||||
"getting_started.directory": "Profile directory",
|
||||
"getting_started.documentation": "Documentation",
|
||||
"getting_started.directory": "Directorio de perfil",
|
||||
"getting_started.documentation": "Documentación",
|
||||
"getting_started.heading": "Primeros pasos",
|
||||
"getting_started.invite": "Invitar usuarios",
|
||||
"getting_started.open_source_notice": "Mastodon es software libre. Puedes contribuir o reportar errores en {github}.",
|
||||
"getting_started.security": "Seguridad",
|
||||
"getting_started.terms": "Términos de servicio",
|
||||
"hashtag.column_header.tag_mode.all": "and {additional}",
|
||||
"hashtag.column_header.tag_mode.any": "or {additional}",
|
||||
"hashtag.column_header.tag_mode.none": "without {additional}",
|
||||
"hashtag.column_settings.select.no_options_message": "No suggestions found",
|
||||
"hashtag.column_settings.select.placeholder": "Enter hashtags…",
|
||||
"hashtag.column_settings.tag_mode.all": "All of these",
|
||||
"hashtag.column_settings.tag_mode.any": "Any of these",
|
||||
"hashtag.column_settings.tag_mode.none": "None of these",
|
||||
"hashtag.column_header.tag_mode.all": "y {additional}",
|
||||
"hashtag.column_header.tag_mode.any": "o {additional}",
|
||||
"hashtag.column_header.tag_mode.none": "sin {additional}",
|
||||
"hashtag.column_settings.select.no_options_message": "No se encontraron sugerencias",
|
||||
"hashtag.column_settings.select.placeholder": "Introduzca hashtags…",
|
||||
"hashtag.column_settings.tag_mode.all": "Cualquiera de estos",
|
||||
"hashtag.column_settings.tag_mode.any": "Cualquiera de estos",
|
||||
"hashtag.column_settings.tag_mode.none": "Ninguno de estos",
|
||||
"hashtag.column_settings.tag_toggle": "Include additional tags in this column",
|
||||
"home.column_settings.basic": "Básico",
|
||||
"home.column_settings.show_reblogs": "Mostrar retoots",
|
||||
"home.column_settings.show_replies": "Mostrar respuestas",
|
||||
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
|
||||
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
|
||||
"introduction.federation.action": "Next",
|
||||
"introduction.federation.federated.headline": "Federated",
|
||||
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
|
||||
"introduction.federation.home.headline": "Home",
|
||||
"introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"intervals.full.days": "{number, plural, one {# día} other {# días}}",
|
||||
"intervals.full.hours": "{number, plural, one {# hora} other {# horas}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}",
|
||||
"introduction.federation.action": "Siguiente",
|
||||
"introduction.federation.federated.headline": "Federado",
|
||||
"introduction.federation.federated.text": "Los mensajes públicos de otros servidores del fediverso aparecerán en la cronología federada.",
|
||||
"introduction.federation.home.headline": "Inicio",
|
||||
"introduction.federation.home.text": "Los posts de personas que sigues aparecerán en tu cronología. ¡Puedes seguir a cualquiera en cualquier servidor!",
|
||||
"introduction.federation.local.headline": "Local",
|
||||
"introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
|
||||
"introduction.interactions.action": "Finish tutorial!",
|
||||
"introduction.interactions.favourite.headline": "Favourite",
|
||||
"introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
|
||||
"introduction.interactions.reblog.headline": "Boost",
|
||||
"introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
|
||||
"introduction.interactions.reply.headline": "Reply",
|
||||
"introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
|
||||
"introduction.welcome.action": "Let's go!",
|
||||
"introduction.welcome.headline": "First steps",
|
||||
"introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.",
|
||||
"introduction.federation.local.text": "Los posts públicos de personas en el mismo servidor que aparecerán en la cronología local.",
|
||||
"introduction.interactions.action": "¡Terminar tutorial!",
|
||||
"introduction.interactions.favourite.headline": "Favorito",
|
||||
"introduction.interactions.favourite.text": "Puedes guardar un toot para más tarde, y hacer saber al autor que te gustó, dándole a favorito.",
|
||||
"introduction.interactions.reblog.headline": "Retootear",
|
||||
"introduction.interactions.reblog.text": "Puedes compartir los toots de otras personas con tus seguidores retooteando los mismos.",
|
||||
"introduction.interactions.reply.headline": "Responder",
|
||||
"introduction.interactions.reply.text": "Puedes responder a tus propios toots y los de otras personas, que se encadenarán juntos en una conversación.",
|
||||
"introduction.welcome.action": "¡Vamos!",
|
||||
"introduction.welcome.headline": "Primeros pasos",
|
||||
"introduction.welcome.text": "¡Bienvenido al fediverso! En unos momentos, podrás transmitir mensajes y hablar con tus amigos a través de una amplia variedad de servidores. Pero este servidor, {domain}, es especial, alberga tu perfil, así que recuerda su nombre.",
|
||||
"keyboard_shortcuts.back": "volver atrás",
|
||||
"keyboard_shortcuts.blocked": "abrir una lista de usuarios bloqueados",
|
||||
"keyboard_shortcuts.boost": "retootear",
|
||||
"keyboard_shortcuts.column": "enfocar un estado en una de las columnas",
|
||||
"keyboard_shortcuts.compose": "enfocar el área de texto de redacción",
|
||||
"keyboard_shortcuts.description": "Description",
|
||||
"keyboard_shortcuts.description": "Descripción",
|
||||
"keyboard_shortcuts.direct": "abrir la columna de mensajes directos",
|
||||
"keyboard_shortcuts.down": "mover hacia abajo en la lista",
|
||||
"keyboard_shortcuts.enter": "to open status",
|
||||
"keyboard_shortcuts.enter": "abrir estado",
|
||||
"keyboard_shortcuts.favourite": "añadir a favoritos",
|
||||
"keyboard_shortcuts.favourites": "abrir la lista de favoritos",
|
||||
"keyboard_shortcuts.federated": "abrir el timeline federado",
|
||||
|
@ -204,22 +205,24 @@
|
|||
"keyboard_shortcuts.search": "para poner el foco en la búsqueda",
|
||||
"keyboard_shortcuts.start": "abrir la columna \"comenzar\"",
|
||||
"keyboard_shortcuts.toggle_hidden": "mostrar/ocultar texto tras aviso de contenido (CW)",
|
||||
"keyboard_shortcuts.toggle_sensitivity": "mostrar/ocultar medios",
|
||||
"keyboard_shortcuts.toot": "para comenzar un nuevo toot",
|
||||
"keyboard_shortcuts.unfocus": "para retirar el foco de la caja de redacción/búsqueda",
|
||||
"keyboard_shortcuts.up": "para ir hacia arriba en la lista",
|
||||
"lightbox.close": "Cerrar",
|
||||
"lightbox.next": "Siguiente",
|
||||
"lightbox.previous": "Anterior",
|
||||
"lightbox.view_context": "View context",
|
||||
"lightbox.view_context": "Ver contexto",
|
||||
"lists.account.add": "Añadir a lista",
|
||||
"lists.account.remove": "Quitar de lista",
|
||||
"lists.delete": "Delete list",
|
||||
"lists.delete": "Borrar lista",
|
||||
"lists.edit": "Editar lista",
|
||||
"lists.edit.submit": "Change title",
|
||||
"lists.edit.submit": "Cambiar título",
|
||||
"lists.new.create": "Añadir lista",
|
||||
"lists.new.title_placeholder": "Título de la nueva lista",
|
||||
"lists.search": "Buscar entre la gente a la que sigues",
|
||||
"lists.subheading": "Tus listas",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"loading_indicator.label": "Cargando…",
|
||||
"media_gallery.toggle_visible": "Cambiar visibilidad",
|
||||
"missing_indicator.label": "No encontrado",
|
||||
|
@ -236,6 +239,7 @@
|
|||
"navigation_bar.favourites": "Favoritos",
|
||||
"navigation_bar.filters": "Palabras silenciadas",
|
||||
"navigation_bar.follow_requests": "Solicitudes para seguirte",
|
||||
"navigation_bar.follows_and_followers": "Siguiendo y seguidores",
|
||||
"navigation_bar.info": "Información adicional",
|
||||
"navigation_bar.keyboard_shortcuts": "Atajos",
|
||||
"navigation_bar.lists": "Listas",
|
||||
|
@ -244,40 +248,41 @@
|
|||
"navigation_bar.personal": "Personal",
|
||||
"navigation_bar.pins": "Toots fijados",
|
||||
"navigation_bar.preferences": "Preferencias",
|
||||
"navigation_bar.profile_directory": "Directorio de perfiles",
|
||||
"navigation_bar.public_timeline": "Historia federada",
|
||||
"navigation_bar.security": "Seguridad",
|
||||
"notification.favourite": "{name} marcó tu estado como favorito",
|
||||
"notification.follow": "{name} te empezó a seguir",
|
||||
"notification.mention": "{name} te ha mencionado",
|
||||
"notification.poll": "A poll you have voted in has ended",
|
||||
"notification.poll": "Una encuesta en la que has votado ha terminado",
|
||||
"notification.reblog": "{name} ha retooteado tu estado",
|
||||
"notifications.clear": "Limpiar notificaciones",
|
||||
"notifications.clear_confirmation": "¿Seguro que quieres limpiar permanentemente todas tus notificaciones?",
|
||||
"notifications.column_settings.alert": "Notificaciones de escritorio",
|
||||
"notifications.column_settings.favourite": "Favoritos:",
|
||||
"notifications.column_settings.filter_bar.advanced": "Display all categories",
|
||||
"notifications.column_settings.filter_bar.category": "Quick filter bar",
|
||||
"notifications.column_settings.filter_bar.show": "Show",
|
||||
"notifications.column_settings.filter_bar.advanced": "Mostrar todas las categorías",
|
||||
"notifications.column_settings.filter_bar.category": "Barra de filtrado rápido",
|
||||
"notifications.column_settings.filter_bar.show": "Mostrar",
|
||||
"notifications.column_settings.follow": "Nuevos seguidores:",
|
||||
"notifications.column_settings.mention": "Menciones:",
|
||||
"notifications.column_settings.poll": "Poll results:",
|
||||
"notifications.column_settings.poll": "Resultados de la votación:",
|
||||
"notifications.column_settings.push": "Notificaciones push",
|
||||
"notifications.column_settings.reblog": "Retoots:",
|
||||
"notifications.column_settings.show": "Mostrar en columna",
|
||||
"notifications.column_settings.sound": "Reproducir sonido",
|
||||
"notifications.filter.all": "All",
|
||||
"notifications.filter.boosts": "Boosts",
|
||||
"notifications.filter.favourites": "Favourites",
|
||||
"notifications.filter.follows": "Follows",
|
||||
"notifications.filter.mentions": "Mentions",
|
||||
"notifications.filter.polls": "Poll results",
|
||||
"notifications.filter.all": "Todos",
|
||||
"notifications.filter.boosts": "Retoots",
|
||||
"notifications.filter.favourites": "Favoritos",
|
||||
"notifications.filter.follows": "Seguidores",
|
||||
"notifications.filter.mentions": "Menciones",
|
||||
"notifications.filter.polls": "Resultados de la votación",
|
||||
"notifications.group": "{count} notificaciones",
|
||||
"poll.closed": "Closed",
|
||||
"poll.refresh": "Refresh",
|
||||
"poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
|
||||
"poll.vote": "Vote",
|
||||
"poll_button.add_poll": "Add a poll",
|
||||
"poll_button.remove_poll": "Remove poll",
|
||||
"poll.closed": "Cerrada",
|
||||
"poll.refresh": "Actualizar",
|
||||
"poll.total_votes": "{count, plural, one {# voto} other {# votos}}",
|
||||
"poll.vote": "Votar",
|
||||
"poll_button.add_poll": "Añadir una encuesta",
|
||||
"poll_button.remove_poll": "Eliminar encuesta",
|
||||
"privacy.change": "Ajustar privacidad",
|
||||
"privacy.direct.long": "Sólo mostrar a los usuarios mencionados",
|
||||
"privacy.direct.short": "Directo",
|
||||
|
@ -286,7 +291,7 @@
|
|||
"privacy.public.long": "Mostrar en la historia federada",
|
||||
"privacy.public.short": "Público",
|
||||
"privacy.unlisted.long": "No mostrar en la historia federada",
|
||||
"privacy.unlisted.short": "Sin federar",
|
||||
"privacy.unlisted.short": "No listado",
|
||||
"regeneration_indicator.label": "Cargando…",
|
||||
"regeneration_indicator.sublabel": "¡Tu historia de inicio se está preparando!",
|
||||
"relative_time.days": "{number}d",
|
||||
|
@ -305,19 +310,20 @@
|
|||
"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.",
|
||||
"search_popout.tips.hashtag": "etiqueta",
|
||||
"search_popout.tips.status": "status",
|
||||
"search_popout.tips.status": "estado",
|
||||
"search_popout.tips.text": "El texto simple devuelve correspondencias de nombre, usuario y hashtag",
|
||||
"search_popout.tips.user": "usuario",
|
||||
"search_results.accounts": "Gente",
|
||||
"search_results.hashtags": "Etiquetas",
|
||||
"search_results.statuses": "Toots",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}",
|
||||
"status.admin_account": "Open moderation interface for @{name}",
|
||||
"status.admin_status": "Open this status in the moderation interface",
|
||||
"status.block": "Block @{name}",
|
||||
"status.admin_account": "Abrir interfaz de moderación para @{name}",
|
||||
"status.admin_status": "Abrir este estado en la interfaz de moderación",
|
||||
"status.block": "Bloquear a @{name}",
|
||||
"status.cancel_reblog_private": "Des-impulsar",
|
||||
"status.cannot_reblog": "Este toot no puede retootearse",
|
||||
"status.copy": "Copy link to status",
|
||||
"status.copy": "Copiar enlace al estado",
|
||||
"status.delete": "Borrar",
|
||||
"status.detailed_status": "Vista de conversación detallada",
|
||||
"status.direct": "Mensaje directo a @{name}",
|
||||
|
@ -333,7 +339,7 @@
|
|||
"status.open": "Expandir estado",
|
||||
"status.pin": "Fijar",
|
||||
"status.pinned": "Toot fijado",
|
||||
"status.read_more": "Read more",
|
||||
"status.read_more": "Leer más",
|
||||
"status.reblog": "Retootear",
|
||||
"status.reblog_private": "Implusar a la audiencia original",
|
||||
"status.reblogged_by": "Retooteado por {name}",
|
||||
|
@ -348,27 +354,27 @@
|
|||
"status.show_less_all": "Mostrar menos para todo",
|
||||
"status.show_more": "Mostrar más",
|
||||
"status.show_more_all": "Mostrar más para todo",
|
||||
"status.show_thread": "Show thread",
|
||||
"status.show_thread": "Ver hilo",
|
||||
"status.unmute_conversation": "Dejar de silenciar conversación",
|
||||
"status.unpin": "Dejar de fijar",
|
||||
"suggestions.dismiss": "Dismiss suggestion",
|
||||
"suggestions.header": "You might be interested in…",
|
||||
"suggestions.dismiss": "Descartar sugerencia",
|
||||
"suggestions.header": "Es posible que te interese…",
|
||||
"tabs_bar.federated_timeline": "Federado",
|
||||
"tabs_bar.home": "Inicio",
|
||||
"tabs_bar.local_timeline": "Local",
|
||||
"tabs_bar.notifications": "Notificaciones",
|
||||
"tabs_bar.search": "Buscar",
|
||||
"time_remaining.days": "{number, plural, one {# day} other {# days}} left",
|
||||
"time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
|
||||
"time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
|
||||
"time_remaining.moments": "Moments remaining",
|
||||
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
|
||||
"time_remaining.days": "{number, plural, one {# día restante} other {# días restantes}}",
|
||||
"time_remaining.hours": "{number, plural, one {# hora restante} other {# horas restantes}}",
|
||||
"time_remaining.minutes": "{number, plural, one {# minuto restante} other {# minutos restantes}}",
|
||||
"time_remaining.moments": "Momentos restantes",
|
||||
"time_remaining.seconds": "{number, plural, one {# segundo restante} other {# segundos restantes}}",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {persona} other {personas}} hablando",
|
||||
"ui.beforeunload": "Tu borrador se perderá si sales de Mastodon.",
|
||||
"upload_area.title": "Arrastra y suelta para subir",
|
||||
"upload_button.label": "Subir multimedia (JPEG, PNG, GIF, WebM, MP4, MOV)",
|
||||
"upload_error.limit": "File upload limit exceeded.",
|
||||
"upload_error.poll": "File upload not allowed with polls.",
|
||||
"upload_error.limit": "Límite de subida de archivos excedido.",
|
||||
"upload_error.poll": "Subida de archivos no permitida con encuestas.",
|
||||
"upload_form.description": "Describir para los usuarios con dificultad visual",
|
||||
"upload_form.focus": "Recortar",
|
||||
"upload_form.undo": "Borrar",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"account.add_or_remove_from_list": "Gehitu edo kendu zerrendetatik",
|
||||
"account.badges.bot": "Bot",
|
||||
"account.badges.bot": "Bot-a",
|
||||
"account.block": "Blokeatu @{name}",
|
||||
"account.block_domain": "Ezkutatu {domain} domeinuko guztia",
|
||||
"account.blocked": "Blokeatuta",
|
||||
|
@ -17,13 +17,13 @@
|
|||
"account.hide_reblogs": "Ezkutatu @{name}(r)en bultzadak",
|
||||
"account.link_verified_on": "Esteka honen jabetzaren egiaztaketa data: {date}",
|
||||
"account.locked_info": "Kontu honen pribatutasun egoera blokeatuta gisa ezarri da. Jabeak eskuz erabakitzen du nork jarraitu diezaioken.",
|
||||
"account.media": "Media",
|
||||
"account.media": "Multimedia",
|
||||
"account.mention": "Aipatu @{name}",
|
||||
"account.moved_to": "{name} hona lekualdatu da:",
|
||||
"account.mute": "Mututu @{name}",
|
||||
"account.mute_notifications": "Mututu @{name}(r)en jakinarazpenak",
|
||||
"account.muted": "Mutututa",
|
||||
"account.posts": "Tootak",
|
||||
"account.posts": "Toot",
|
||||
"account.posts_with_replies": "Toot eta erantzunak",
|
||||
"account.report": "Salatu @{name}",
|
||||
"account.requested": "Onarpenaren zain. Klikatu jarraitzeko eskaera ezeztatzeko",
|
||||
|
@ -32,7 +32,7 @@
|
|||
"account.unblock": "Desblokeatu @{name}",
|
||||
"account.unblock_domain": "Berriz erakutsi {domain}",
|
||||
"account.unendorse": "Ez nabarmendu profilean",
|
||||
"account.unfollow": "Jarraitzeari utzi",
|
||||
"account.unfollow": "Utzi jarraitzeari",
|
||||
"account.unmute": "Desmututu @{name}",
|
||||
"account.unmute_notifications": "Desmututu @{name}(r)en jakinarazpenak",
|
||||
"alert.unexpected.message": "Ustekabeko errore bat gertatu da.",
|
||||
|
@ -40,7 +40,7 @@
|
|||
"boost_modal.combo": "{combo} sakatu dezakezu hurrengoan hau saltatzeko",
|
||||
"bundle_column_error.body": "Zerbait okerra gertatu da osagai hau kargatzean.",
|
||||
"bundle_column_error.retry": "Saiatu berriro",
|
||||
"bundle_column_error.title": "Network error",
|
||||
"bundle_column_error.title": "Sareko errorea",
|
||||
"bundle_modal_error.close": "Itxi",
|
||||
"bundle_modal_error.message": "Zerbait okerra gertatu da osagai hau kargatzean.",
|
||||
"bundle_modal_error.retry": "Saiatu berriro",
|
||||
|
@ -71,21 +71,21 @@
|
|||
"compose_form.lock_disclaimer": "Zure kontua ez dago {locked}. Edonork jarraitu zaitzake zure jarraitzaileentzako soilik diren mezuak ikusteko.",
|
||||
"compose_form.lock_disclaimer.lock": "giltzapetuta",
|
||||
"compose_form.placeholder": "Zer duzu buruan?",
|
||||
"compose_form.poll.add_option": "Add a choice",
|
||||
"compose_form.poll.duration": "Poll duration",
|
||||
"compose_form.poll.option_placeholder": "Choice {number}",
|
||||
"compose_form.poll.remove_option": "Remove this choice",
|
||||
"compose_form.poll.add_option": "Gehitu aukera bat",
|
||||
"compose_form.poll.duration": "Inkestaren iraupena",
|
||||
"compose_form.poll.option_placeholder": "{number}. aukera",
|
||||
"compose_form.poll.remove_option": "Kendu aukera hau",
|
||||
"compose_form.publish": "Toot",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.sensitive.hide": "Mark media as sensitive",
|
||||
"compose_form.sensitive.hide": "Markatu multimedia hunkigarri gisa",
|
||||
"compose_form.sensitive.marked": "Multimedia edukia hunkigarri gisa markatu da",
|
||||
"compose_form.sensitive.unmarked": "Multimedia edukia ez da hunkigarri gisa markatu",
|
||||
"compose_form.spoiler.marked": "Testua abisu batek ezkutatzen du",
|
||||
"compose_form.spoiler.unmarked": "Testua ez dago ezkutatuta",
|
||||
"compose_form.spoiler_placeholder": "Idatzi zure abisua hemen",
|
||||
"confirmation_modal.cancel": "Utzi",
|
||||
"confirmations.block.block_and_report": "Block & Report",
|
||||
"confirmations.block.confirm": "Block",
|
||||
"confirmations.block.block_and_report": "Blokeatu eta salatu",
|
||||
"confirmations.block.confirm": "Blokeatu",
|
||||
"confirmations.block.message": "Ziur {name} blokeatu nahi duzula?",
|
||||
"confirmations.delete.confirm": "Ezabatu",
|
||||
"confirmations.delete.message": "Ziur mezu hau ezabatu nahi duzula?",
|
||||
|
@ -118,7 +118,7 @@
|
|||
"emoji_button.symbols": "Sinboloak",
|
||||
"emoji_button.travel": "Bidaiak eta tokiak",
|
||||
"empty_column.account_timeline": "Ez dago toot-ik hemen!",
|
||||
"empty_column.account_unavailable": "Profile unavailable",
|
||||
"empty_column.account_unavailable": "Profila ez dago eskuragarri",
|
||||
"empty_column.blocks": "Ez duzu erabiltzailerik blokeatu oraindik.",
|
||||
"empty_column.community": "Denbora-lerro lokala hutsik dago. Idatzi zerbait publikoki pilota biraka jartzeko!",
|
||||
"empty_column.direct": "Ez duzu mezu zuzenik oraindik. Baten bat bidali edo jasotzen duzunean, hemen agertuko da.",
|
||||
|
@ -147,8 +147,8 @@
|
|||
"hashtag.column_header.tag_mode.all": "eta {osagarria}",
|
||||
"hashtag.column_header.tag_mode.any": "edo {osagarria}",
|
||||
"hashtag.column_header.tag_mode.none": "gabe {osagarria}",
|
||||
"hashtag.column_settings.select.no_options_message": "No suggestions found",
|
||||
"hashtag.column_settings.select.placeholder": "Enter hashtags…",
|
||||
"hashtag.column_settings.select.no_options_message": "Ez da proposamenik aurkitu",
|
||||
"hashtag.column_settings.select.placeholder": "Sartu traolak…",
|
||||
"hashtag.column_settings.tag_mode.all": "Hauetako guztiak",
|
||||
"hashtag.column_settings.tag_mode.any": "Hautako edozein",
|
||||
"hashtag.column_settings.tag_mode.none": "Hauetako bat ere ez",
|
||||
|
@ -156,15 +156,16 @@
|
|||
"home.column_settings.basic": "Oinarrizkoa",
|
||||
"home.column_settings.show_reblogs": "Erakutsi bultzadak",
|
||||
"home.column_settings.show_replies": "Erakutsi erantzunak",
|
||||
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
|
||||
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"intervals.full.days": "{number, plural, one {egun #} other {# egun}}",
|
||||
"intervals.full.hours": "{number, plural, one {ordu #} other {# ordu}}",
|
||||
"intervals.full.minutes": "{number, plural, one {minutu #} other {# minutu}}",
|
||||
"introduction.federation.action": "Hurrengoa",
|
||||
"introduction.federation.federated.headline": "Federated",
|
||||
"introduction.federation.federated.headline": "Federatua",
|
||||
"introduction.federation.federated.text": "Fedibertsoko beste zerbitzarietako bidalketa publikoak federatutako denbora-lerroan agertuko dira.",
|
||||
"introduction.federation.home.headline": "Home",
|
||||
"introduction.federation.home.headline": "Hasiera",
|
||||
"introduction.federation.home.text": "Jarraitzen dituzun horien mezuak zure hasierako jarioan agertuko dira. Edozein zerbitzariko edonor jarraitu dezakezu!",
|
||||
"introduction.federation.local.headline": "Local",
|
||||
"introduction.federation.local.headline": "Lokala",
|
||||
"introduction.federation.local.text": "Zure zerbitzari berean dauden horien mezu publikoak denbora-lerro lokalean agertuko dira.",
|
||||
"introduction.interactions.action": "Amaitu tutoriala!",
|
||||
"introduction.interactions.favourite.headline": "Gogokoa",
|
||||
|
@ -181,10 +182,10 @@
|
|||
"keyboard_shortcuts.boost": "bultzada ematea",
|
||||
"keyboard_shortcuts.column": "mezu bat zutabe batean fokatzea",
|
||||
"keyboard_shortcuts.compose": "testua konposatzeko arean fokatzea",
|
||||
"keyboard_shortcuts.description": "Description",
|
||||
"keyboard_shortcuts.description": "Deskripzioa",
|
||||
"keyboard_shortcuts.direct": "mezu zuzenen zutabea irekitzeko",
|
||||
"keyboard_shortcuts.down": "zerrendan behera mugitzea",
|
||||
"keyboard_shortcuts.enter": "to open status",
|
||||
"keyboard_shortcuts.enter": "mezua irekitzeko",
|
||||
"keyboard_shortcuts.favourite": "gogoko egitea",
|
||||
"keyboard_shortcuts.favourites": "gogokoen zerrenda irekitzeko",
|
||||
"keyboard_shortcuts.federated": "federatutako denbora-lerroa irekitzeko",
|
||||
|
@ -204,22 +205,24 @@
|
|||
"keyboard_shortcuts.search": "bilaketan fokua jartzea",
|
||||
"keyboard_shortcuts.start": "\"Menua\" zutabea irekitzeko",
|
||||
"keyboard_shortcuts.toggle_hidden": "testua erakustea/ezkutatzea abisu baten atzean",
|
||||
"keyboard_shortcuts.toggle_sensitivity": "multimedia erakutsi/ezkutatzeko",
|
||||
"keyboard_shortcuts.toot": "toot berria hastea",
|
||||
"keyboard_shortcuts.unfocus": "testua konposatzeko area / bilaketatik fokua kentzea",
|
||||
"keyboard_shortcuts.up": "zerrendan gora mugitzea",
|
||||
"lightbox.close": "Itxi",
|
||||
"lightbox.next": "Hurrengoa",
|
||||
"lightbox.previous": "Aurrekoa",
|
||||
"lightbox.view_context": "View context",
|
||||
"lightbox.view_context": "Ikusi testuingurua",
|
||||
"lists.account.add": "Gehitu zerrendara",
|
||||
"lists.account.remove": "Kendu zerrendatik",
|
||||
"lists.delete": "Ezabatu zerrenda",
|
||||
"lists.edit": "Editatu zerrenda",
|
||||
"lists.edit.submit": "Change title",
|
||||
"lists.edit.submit": "Aldatu izenburua",
|
||||
"lists.new.create": "Gehitu zerrenda",
|
||||
"lists.new.title_placeholder": "Zerrenda berriaren izena",
|
||||
"lists.search": "Bilatu jarraitzen dituzun pertsonen artean",
|
||||
"lists.subheading": "Zure zerrendak",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"loading_indicator.label": "Kargatzen...",
|
||||
"media_gallery.toggle_visible": "Txandakatu ikusgaitasuna",
|
||||
"missing_indicator.label": "Ez aurkitua",
|
||||
|
@ -236,20 +239,22 @@
|
|||
"navigation_bar.favourites": "Gogokoak",
|
||||
"navigation_bar.filters": "Mutututako hitzak",
|
||||
"navigation_bar.follow_requests": "Jarraitzeko eskariak",
|
||||
"navigation_bar.follows_and_followers": "Jarraitutakoak eta jarraitzaileak",
|
||||
"navigation_bar.info": "Zerbitzari honi buruz",
|
||||
"navigation_bar.keyboard_shortcuts": "Laster-teklak",
|
||||
"navigation_bar.lists": "Zerrendak",
|
||||
"navigation_bar.logout": "Amaitu saioa",
|
||||
"navigation_bar.mutes": "Mutututako erabiltzaileak",
|
||||
"navigation_bar.personal": "Personal",
|
||||
"navigation_bar.personal": "Pertsonala",
|
||||
"navigation_bar.pins": "Finkatutako toot-ak",
|
||||
"navigation_bar.preferences": "Hobespenak",
|
||||
"navigation_bar.profile_directory": "Profilen direktorioa",
|
||||
"navigation_bar.public_timeline": "Federatutako denbora-lerroa",
|
||||
"navigation_bar.security": "Segurtasuna",
|
||||
"notification.favourite": "{name}(e)k zure mezua gogoko du",
|
||||
"notification.follow": "{name}(e)k jarraitzen zaitu",
|
||||
"notification.mention": "{name}(e)k aipatu zaitu",
|
||||
"notification.poll": "A poll you have voted in has ended",
|
||||
"notification.poll": "Zuk erantzun duzun inkesta bat bukatu da",
|
||||
"notification.reblog": "{name}(e)k bultzada eman dio zure mezuari",
|
||||
"notifications.clear": "Garbitu jakinarazpenak",
|
||||
"notifications.clear_confirmation": "Ziur zure jakinarazpen guztiak behin betirako garbitu nahi dituzula?",
|
||||
|
@ -260,7 +265,7 @@
|
|||
"notifications.column_settings.filter_bar.show": "Erakutsi",
|
||||
"notifications.column_settings.follow": "Jarraitzaile berriak:",
|
||||
"notifications.column_settings.mention": "Aipamenak:",
|
||||
"notifications.column_settings.poll": "Poll results:",
|
||||
"notifications.column_settings.poll": "Inkestaren emaitzak:",
|
||||
"notifications.column_settings.push": "Push jakinarazpenak",
|
||||
"notifications.column_settings.reblog": "Bultzadak:",
|
||||
"notifications.column_settings.show": "Erakutsi zutabean",
|
||||
|
@ -270,14 +275,14 @@
|
|||
"notifications.filter.favourites": "Gogokoak",
|
||||
"notifications.filter.follows": "Jarraipenak",
|
||||
"notifications.filter.mentions": "Aipamenak",
|
||||
"notifications.filter.polls": "Poll results",
|
||||
"notifications.filter.polls": "Inkestaren emaitza",
|
||||
"notifications.group": "{count} jakinarazpen",
|
||||
"poll.closed": "Closed",
|
||||
"poll.refresh": "Refresh",
|
||||
"poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
|
||||
"poll.vote": "Vote",
|
||||
"poll_button.add_poll": "Add a poll",
|
||||
"poll_button.remove_poll": "Remove poll",
|
||||
"poll.closed": "Itxita",
|
||||
"poll.refresh": "Berritu",
|
||||
"poll.total_votes": "{count, plural, one {boto #} other {# boto}}",
|
||||
"poll.vote": "Bozkatu",
|
||||
"poll_button.add_poll": "Gehitu inkesta bat",
|
||||
"poll_button.remove_poll": "Kendu inkesta",
|
||||
"privacy.change": "Doitu mezuaren pribatutasuna",
|
||||
"privacy.direct.long": "Bidali aipatutako erabiltzaileei besterik ez",
|
||||
"privacy.direct.short": "Zuzena",
|
||||
|
@ -299,22 +304,23 @@
|
|||
"report.forward_hint": "Kontu hau beste zerbitzari batekoa da. Bidali txostenaren kopia anonimo hara ere?",
|
||||
"report.hint": "Txostena zure zerbitzariaren moderatzaileei bidaliko zaie. Kontu hau zergatik salatzen duzun behean azaldu dezakezu:",
|
||||
"report.placeholder": "Iruzkin gehigarriak",
|
||||
"report.submit": "Submit",
|
||||
"report.submit": "Bidali",
|
||||
"report.target": "{target} salatzen",
|
||||
"search.placeholder": "Bilatu",
|
||||
"search_popout.search_format": "Bilaketa aurreratuaren formatua",
|
||||
"search_popout.tips.full_text": "Testu hutsarekin zuk idatzitako mezuak, gogokoak, bultzadak edo aipamenak aurkitu ditzakezu, bat datozen erabiltzaile-izenak, pantaila-izenak, eta traolak.",
|
||||
"search_popout.tips.hashtag": "traola",
|
||||
"search_popout.tips.status": "status",
|
||||
"search_popout.tips.status": "mezua",
|
||||
"search_popout.tips.text": "Testu hutsak pantaila-izenak, erabiltzaile-izenak eta traolak bilatzen ditu",
|
||||
"search_popout.tips.user": "erabiltzailea",
|
||||
"search_results.accounts": "Jendea",
|
||||
"search_results.hashtags": "Traolak",
|
||||
"search_results.statuses": "Toot-ak",
|
||||
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"search_results.total": "{count, number} {count, plural, one {emaitza} other {emaitzak}}",
|
||||
"status.admin_account": "Ireki @{name} erabiltzailearen moderazio interfazea",
|
||||
"status.admin_status": "Ireki mezu hau moderazio interfazean",
|
||||
"status.block": "Block @{name}",
|
||||
"status.block": "Blokeatu @{name}",
|
||||
"status.cancel_reblog_private": "Kendu bultzada",
|
||||
"status.cannot_reblog": "Mezu honi ezin zaio bultzada eman",
|
||||
"status.copy": "Kopiatu mezuaren esteka",
|
||||
|
@ -358,17 +364,17 @@
|
|||
"tabs_bar.local_timeline": "Lokala",
|
||||
"tabs_bar.notifications": "Jakinarazpenak",
|
||||
"tabs_bar.search": "Bilatu",
|
||||
"time_remaining.days": "{number, plural, one {# day} other {# days}} left",
|
||||
"time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
|
||||
"time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
|
||||
"time_remaining.moments": "Moments remaining",
|
||||
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
|
||||
"time_remaining.days": "{number, plural, one {egun #} other {# egun}} amaitzeko",
|
||||
"time_remaining.hours": "{number, plural, one {ordu #} other {# ordu}} amaitzeko",
|
||||
"time_remaining.minutes": "{number, plural, one {minutu #} other {# minutu}} amaitzeko",
|
||||
"time_remaining.moments": "Amaitzekotan",
|
||||
"time_remaining.seconds": "{number, plural, one {segundo #} other {# segundo}} amaitzeko",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} hitz egiten",
|
||||
"ui.beforeunload": "Zure zirriborroa galduko da Mastodon uzten baduzu.",
|
||||
"upload_area.title": "Arrastatu eta jaregin igotzeko",
|
||||
"upload_button.label": "Gehitu multimedia (JPEG, PNG, GIF, WebM, MP4, MOV)",
|
||||
"upload_error.limit": "Fitxategi igoera muga gaindituta.",
|
||||
"upload_error.poll": "File upload not allowed with polls.",
|
||||
"upload_error.poll": "Ez da inkestetan fitxategiak igotzea onartzen.",
|
||||
"upload_form.description": "Deskribatu ikusmen arazoak dituztenentzat",
|
||||
"upload_form.focus": "Aldatu aurrebista",
|
||||
"upload_form.undo": "Ezabatu",
|
||||
|
@ -376,10 +382,10 @@
|
|||
"video.close": "Itxi bideoa",
|
||||
"video.exit_fullscreen": "Irten pantaila osotik",
|
||||
"video.expand": "Hedatu bideoa",
|
||||
"video.fullscreen": "Full screen",
|
||||
"video.fullscreen": "Pantaila osoa",
|
||||
"video.hide": "Ezkutatu bideoa",
|
||||
"video.mute": "Mututu soinua",
|
||||
"video.pause": "Pause",
|
||||
"video.pause": "Pausatu",
|
||||
"video.play": "Jo",
|
||||
"video.unmute": "Desmututu soinua"
|
||||
}
|
||||
|
|
|
@ -156,6 +156,7 @@
|
|||
"home.column_settings.basic": "اصلی",
|
||||
"home.column_settings.show_reblogs": "نمایش بازبوقها",
|
||||
"home.column_settings.show_replies": "نمایش پاسخها",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"intervals.full.days": "{number, plural, one {# روز} other {# روز}}",
|
||||
"intervals.full.hours": "{number, plural, one {# ساعت} other {# ساعت}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# دقیقه} other {# دقیقه}}",
|
||||
|
@ -220,6 +221,7 @@
|
|||
"lists.new.title_placeholder": "نام فهرست تازه",
|
||||
"lists.search": "بین کسانی که پی میگیرید بگردید",
|
||||
"lists.subheading": "فهرستهای شما",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"loading_indicator.label": "بارگیری...",
|
||||
"media_gallery.toggle_visible": "تغییر پیدایی",
|
||||
"missing_indicator.label": "پیدا نشد",
|
||||
|
@ -311,6 +313,7 @@
|
|||
"search_results.accounts": "افراد",
|
||||
"search_results.hashtags": "هشتگها",
|
||||
"search_results.statuses": "بوقها",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"search_results.total": "{count, number} {count, plural, one {نتیجه} other {نتیجه}}",
|
||||
"status.admin_account": "محیط مدیریت مربوط به @{name} را باز کن",
|
||||
"status.admin_status": "این نوشته را در محیط مدیریت باز کن",
|
||||
|
|
|
@ -71,20 +71,20 @@
|
|||
"compose_form.lock_disclaimer": "Tilisi ei ole {locked}. Kuka tahansa voi seurata tiliäsi ja nähdä vain seuraajille rajaamasi julkaisut.",
|
||||
"compose_form.lock_disclaimer.lock": "lukittu",
|
||||
"compose_form.placeholder": "Mitä mietit?",
|
||||
"compose_form.poll.add_option": "Add a choice",
|
||||
"compose_form.poll.duration": "Poll duration",
|
||||
"compose_form.poll.option_placeholder": "Choice {number}",
|
||||
"compose_form.poll.remove_option": "Remove this choice",
|
||||
"compose_form.poll.add_option": "Lisää valinta",
|
||||
"compose_form.poll.duration": "Äänestyksen kesto",
|
||||
"compose_form.poll.option_placeholder": "Valinta numero",
|
||||
"compose_form.poll.remove_option": "Poista tämä valinta",
|
||||
"compose_form.publish": "Tuuttaa",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.sensitive.hide": "Mark media as sensitive",
|
||||
"compose_form.publish_loud": "Julkista!",
|
||||
"compose_form.sensitive.hide": "Valitse tämä arkaluontoisena",
|
||||
"compose_form.sensitive.marked": "Media on merkitty arkaluontoiseksi",
|
||||
"compose_form.sensitive.unmarked": "Mediaa ei ole merkitty arkaluontoiseksi",
|
||||
"compose_form.spoiler.marked": "Teksti on piilotettu varoituksen taakse",
|
||||
"compose_form.spoiler.unmarked": "Teksti ei ole piilotettu",
|
||||
"compose_form.spoiler_placeholder": "Sisältövaroitus",
|
||||
"confirmation_modal.cancel": "Peruuta",
|
||||
"confirmations.block.block_and_report": "Block & Report",
|
||||
"confirmations.block.block_and_report": "Estä ja raportoi",
|
||||
"confirmations.block.confirm": "Estä",
|
||||
"confirmations.block.message": "Haluatko varmasti estää käyttäjän {name}?",
|
||||
"confirmations.delete.confirm": "Poista",
|
||||
|
@ -118,7 +118,7 @@
|
|||
"emoji_button.symbols": "Symbolit",
|
||||
"emoji_button.travel": "Matkailu",
|
||||
"empty_column.account_timeline": "Ei ole 'toots' täällä!",
|
||||
"empty_column.account_unavailable": "Profile unavailable",
|
||||
"empty_column.account_unavailable": "Profiilia ei löydy",
|
||||
"empty_column.blocks": "Et ole vielä estänyt yhtään käyttäjää.",
|
||||
"empty_column.community": "Paikallinen aikajana on tyhjä. Homma lähtee käyntiin, kun kirjoitat jotain julkista!",
|
||||
"empty_column.direct": "Sinulla ei ole vielä yhtään viestiä yksittäiselle käyttäjälle. Kun lähetät tai vastaanotat sellaisen, se näkyy täällä.",
|
||||
|
@ -138,7 +138,7 @@
|
|||
"follow_request.reject": "Hylkää",
|
||||
"getting_started.developers": "Kehittäjille",
|
||||
"getting_started.directory": "Profiili hakemisto",
|
||||
"getting_started.documentation": "Documentation",
|
||||
"getting_started.documentation": "Documentaatio",
|
||||
"getting_started.heading": "Aloitus",
|
||||
"getting_started.invite": "Kutsu ihmisiä",
|
||||
"getting_started.open_source_notice": "Mastodon on avoimen lähdekoodin ohjelma. Voit avustaa tai raportoida ongelmia GitHubissa: {github}.",
|
||||
|
@ -147,8 +147,8 @@
|
|||
"hashtag.column_header.tag_mode.all": "ja {additional}",
|
||||
"hashtag.column_header.tag_mode.any": "tai {additional}",
|
||||
"hashtag.column_header.tag_mode.none": "ilman {additional}",
|
||||
"hashtag.column_settings.select.no_options_message": "No suggestions found",
|
||||
"hashtag.column_settings.select.placeholder": "Enter hashtags…",
|
||||
"hashtag.column_settings.select.no_options_message": "Ehdostuta ei löydetty",
|
||||
"hashtag.column_settings.select.placeholder": "Laita häshtägejä…",
|
||||
"hashtag.column_settings.tag_mode.all": "Kaikki",
|
||||
"hashtag.column_settings.tag_mode.any": "Kaikki",
|
||||
"hashtag.column_settings.tag_mode.none": "Ei mikään",
|
||||
|
@ -156,25 +156,26 @@
|
|||
"home.column_settings.basic": "Perusasetukset",
|
||||
"home.column_settings.show_reblogs": "Näytä buustaukset",
|
||||
"home.column_settings.show_replies": "Näytä vastaukset",
|
||||
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
|
||||
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"intervals.full.days": "Päivä päiviä",
|
||||
"intervals.full.hours": "Tunti tunteja",
|
||||
"intervals.full.minutes": "Minuuti minuuteja",
|
||||
"introduction.federation.action": "Seuraava",
|
||||
"introduction.federation.federated.headline": "Federated",
|
||||
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
|
||||
"introduction.federation.home.headline": "Home",
|
||||
"introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
|
||||
"introduction.federation.local.headline": "Local",
|
||||
"introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
|
||||
"introduction.interactions.action": "Finish tutorial!",
|
||||
"introduction.interactions.favourite.headline": "Favourite",
|
||||
"introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
|
||||
"introduction.interactions.reblog.headline": "Boost",
|
||||
"introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
|
||||
"introduction.interactions.reply.headline": "Reply",
|
||||
"introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
|
||||
"introduction.welcome.action": "Let's go!",
|
||||
"introduction.welcome.headline": "First steps",
|
||||
"introduction.federation.federated.headline": "Federaatioitettu",
|
||||
"introduction.federation.federated.text": "Julkisia viestejä muiden serverien that is not a word aikoo tulla federoituun aikajanaan.",
|
||||
"introduction.federation.home.headline": "Koti",
|
||||
"introduction.federation.home.text": "Viestit muilta pelaajilta jota seuraat aikovat tulla koti sivuusi. Voit seurata ketä vain missä vain serverillä!",
|
||||
"introduction.federation.local.headline": "Paikallinen",
|
||||
"introduction.federation.local.text": "Julkiset viestit muilta pelaajilta samalla serverillä tulevat sinun paikalliseen aikajanaan.",
|
||||
"introduction.interactions.action": "Suorita harjoitus!",
|
||||
"introduction.interactions.favourite.headline": "Lempi",
|
||||
"introduction.interactions.favourite.text": "Toot is not a word.",
|
||||
"introduction.interactions.reblog.headline": "Nopeutus",
|
||||
"introduction.interactions.reblog.text": "Toot is not a word",
|
||||
"introduction.interactions.reply.headline": "Vastaa",
|
||||
"introduction.interactions.reply.text": "TOOT IS NOT A WORD",
|
||||
"introduction.welcome.action": "Mennään!",
|
||||
"introduction.welcome.headline": "Ensimmäiset askeleet",
|
||||
"introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.",
|
||||
"keyboard_shortcuts.back": "liiku taaksepäin",
|
||||
"keyboard_shortcuts.blocked": "avaa lista estetyistä käyttäjistä",
|
||||
|
@ -204,6 +205,7 @@
|
|||
"keyboard_shortcuts.search": "siirry hakukenttään",
|
||||
"keyboard_shortcuts.start": "avaa \"Aloitus\" -sarake",
|
||||
"keyboard_shortcuts.toggle_hidden": "näytä/piilota sisältövaroituksella merkitty teksti",
|
||||
"keyboard_shortcuts.toggle_sensitivity": "to show/hide media",
|
||||
"keyboard_shortcuts.toot": "ala kirjoittaa uutta tuuttausta",
|
||||
"keyboard_shortcuts.unfocus": "siirry pois tekstikentästä tai hakukentästä",
|
||||
"keyboard_shortcuts.up": "siirry listassa ylöspäin",
|
||||
|
@ -220,6 +222,7 @@
|
|||
"lists.new.title_placeholder": "Uuden listan nimi",
|
||||
"lists.search": "Etsi seuraamistasi henkilöistä",
|
||||
"lists.subheading": "Omat listat",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"loading_indicator.label": "Ladataan...",
|
||||
"media_gallery.toggle_visible": "Säädä näkyvyyttä",
|
||||
"missing_indicator.label": "Ei löytynyt",
|
||||
|
@ -236,6 +239,7 @@
|
|||
"navigation_bar.favourites": "Suosikit",
|
||||
"navigation_bar.filters": "Mykistetyt sanat",
|
||||
"navigation_bar.follow_requests": "Seuraamispyynnöt",
|
||||
"navigation_bar.follows_and_followers": "Follows and followers",
|
||||
"navigation_bar.info": "Tietoa tästä instanssista",
|
||||
"navigation_bar.keyboard_shortcuts": "Näppäinkomennot",
|
||||
"navigation_bar.lists": "Listat",
|
||||
|
@ -244,6 +248,7 @@
|
|||
"navigation_bar.personal": "Personal",
|
||||
"navigation_bar.pins": "Kiinnitetyt tuuttaukset",
|
||||
"navigation_bar.preferences": "Asetukset",
|
||||
"navigation_bar.profile_directory": "Profile directory",
|
||||
"navigation_bar.public_timeline": "Yleinen aikajana",
|
||||
"navigation_bar.security": "Tunnukset",
|
||||
"notification.favourite": "{name} tykkäsi tilastasi",
|
||||
|
@ -311,6 +316,7 @@
|
|||
"search_results.accounts": "Ihmiset",
|
||||
"search_results.hashtags": "Hashtagit",
|
||||
"search_results.statuses": "Tuuttaukset",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
|
||||
"status.admin_account": "Open moderation interface for @{name}",
|
||||
"status.admin_status": "Open this status in the moderation interface",
|
||||
|
|
|
@ -156,6 +156,7 @@
|
|||
"home.column_settings.basic": "Basique",
|
||||
"home.column_settings.show_reblogs": "Afficher les partages",
|
||||
"home.column_settings.show_replies": "Afficher les réponses",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"intervals.full.days": "{number, plural, one {# jour} other {# jours}}",
|
||||
"intervals.full.hours": "{number, plural, one {# heure} other {# heures}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
|
||||
|
@ -220,6 +221,7 @@
|
|||
"lists.new.title_placeholder": "Titre de la nouvelle liste",
|
||||
"lists.search": "Rechercher parmi les gens que vous suivez",
|
||||
"lists.subheading": "Vos listes",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"loading_indicator.label": "Chargement…",
|
||||
"media_gallery.toggle_visible": "Modifier la visibilité",
|
||||
"missing_indicator.label": "Non trouvé",
|
||||
|
@ -311,6 +313,7 @@
|
|||
"search_results.accounts": "Comptes",
|
||||
"search_results.hashtags": "Hashtags",
|
||||
"search_results.statuses": "Pouets",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"search_results.total": "{count, number} {count, plural, one {résultat} other {résultats}}",
|
||||
"status.admin_account": "Ouvrir l'interface de modération pour @{name}",
|
||||
"status.admin_status": "Ouvrir ce statut dans l'interface de modération",
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
"account.followers.empty": "Ninguén está a seguir esta usuaria por agora.",
|
||||
"account.follows": "Seguindo",
|
||||
"account.follows.empty": "Esta usuaria aínda non segue a ninguén.",
|
||||
"account.follows_you": "Séguena",
|
||||
"account.follows_you": "Séguete",
|
||||
"account.hide_reblogs": "Ocultar repeticións de @{name}",
|
||||
"account.link_verified_on": "A propiedade de esta ligazón foi comprobada en {date}",
|
||||
"account.locked_info": "O estado da intimidade de esta conta estableceuse en pechado. A persoa dona da conta revisa quen pode seguila.",
|
||||
|
@ -71,25 +71,25 @@
|
|||
"compose_form.lock_disclaimer": "A súa conta non está {locked}. Calquera pode seguila para ver as súas mensaxes só-para-seguidoras.",
|
||||
"compose_form.lock_disclaimer.lock": "bloqueado",
|
||||
"compose_form.placeholder": "Qué contas?",
|
||||
"compose_form.poll.add_option": "Add a choice",
|
||||
"compose_form.poll.duration": "Poll duration",
|
||||
"compose_form.poll.option_placeholder": "Choice {number}",
|
||||
"compose_form.poll.remove_option": "Remove this choice",
|
||||
"compose_form.poll.add_option": "Engadir unha opción",
|
||||
"compose_form.poll.duration": "Duración da sondaxe",
|
||||
"compose_form.poll.option_placeholder": "Opción {number}",
|
||||
"compose_form.poll.remove_option": "Eliminar esta opción",
|
||||
"compose_form.publish": "Toot",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.sensitive.hide": "Mark media as sensitive",
|
||||
"compose_form.sensitive.hide": "Marcar medios como sensibles",
|
||||
"compose_form.sensitive.marked": "Medios marcados como sensibles",
|
||||
"compose_form.sensitive.unmarked": "Os medios non están marcados como sensibles",
|
||||
"compose_form.spoiler.marked": "O texto está agochado tras un aviso",
|
||||
"compose_form.spoiler.unmarked": "O texto non está agochado",
|
||||
"compose_form.spoiler_placeholder": "Escriba o aviso aquí",
|
||||
"confirmation_modal.cancel": "Cancelar",
|
||||
"confirmations.block.block_and_report": "Block & Report",
|
||||
"confirmations.block.block_and_report": "Bloquear e Informar",
|
||||
"confirmations.block.confirm": "Bloquear",
|
||||
"confirmations.block.message": "Está segura de querer bloquear a {name}?",
|
||||
"confirmations.delete.confirm": "Borrar",
|
||||
"confirmations.delete.message": "Está segura de que quere eliminar este estado?",
|
||||
"confirmations.delete_list.confirm": "Delete",
|
||||
"confirmations.delete_list.confirm": "Eliminar",
|
||||
"confirmations.delete_list.message": "Estás seguro de que queres eliminar permanentemente esta lista?",
|
||||
"confirmations.domain_block.confirm": "Agochar un dominio completo",
|
||||
"confirmations.domain_block.message": "Realmente está segura de que quere bloquear por completo o dominio {domain}? Normalmente é suficiente, e preferible, bloquear de xeito selectivo varios elementos. Non verá contidos de ese dominio en ningunha liña temporal ou nas notificacións. As súas seguidoras en ese dominio serán eliminadas.",
|
||||
|
@ -138,7 +138,7 @@
|
|||
"follow_request.reject": "Rexeitar",
|
||||
"getting_started.developers": "Desenvolvedoras",
|
||||
"getting_started.directory": "Directorio do perfil",
|
||||
"getting_started.documentation": "Documentation",
|
||||
"getting_started.documentation": "Documentación",
|
||||
"getting_started.heading": "Comezando",
|
||||
"getting_started.invite": "Convide a xente",
|
||||
"getting_started.open_source_notice": "Mastodon é software de código aberto. Pode contribuír ou informar de fallos en GitHub en {github}.",
|
||||
|
@ -147,8 +147,8 @@
|
|||
"hashtag.column_header.tag_mode.all": "e {additional}",
|
||||
"hashtag.column_header.tag_mode.any": "ou {additional}",
|
||||
"hashtag.column_header.tag_mode.none": "sen {additional}",
|
||||
"hashtag.column_settings.select.no_options_message": "No suggestions found",
|
||||
"hashtag.column_settings.select.placeholder": "Enter hashtags…",
|
||||
"hashtag.column_settings.select.no_options_message": "Non se atopan suxestións",
|
||||
"hashtag.column_settings.select.placeholder": "Introducir etiquetas…",
|
||||
"hashtag.column_settings.tag_mode.all": "Todos estos",
|
||||
"hashtag.column_settings.tag_mode.any": "Calquera de estos",
|
||||
"hashtag.column_settings.tag_mode.none": "Ningún de estos",
|
||||
|
@ -156,13 +156,14 @@
|
|||
"home.column_settings.basic": "Básico",
|
||||
"home.column_settings.show_reblogs": "Mostrar repeticións",
|
||||
"home.column_settings.show_replies": "Mostrar respostas",
|
||||
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
|
||||
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"intervals.full.days": "{number, plural,one {# día} other {# días}}",
|
||||
"intervals.full.hours": "{number, plural, one {# hora} other {# horas}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}",
|
||||
"introduction.federation.action": "Seguinte",
|
||||
"introduction.federation.federated.headline": "Federated",
|
||||
"introduction.federation.federated.headline": "Federado",
|
||||
"introduction.federation.federated.text": "Publicacións públicas desde outros servidores do fediverso aparecerán na liña temporal federada.",
|
||||
"introduction.federation.home.headline": "Home",
|
||||
"introduction.federation.home.headline": "Inicio",
|
||||
"introduction.federation.home.text": "Publicacións de xente que vostede segue aparecerán no TL de Inicio. Pode seguir a calquera en calquer servidor!",
|
||||
"introduction.federation.local.headline": "Local",
|
||||
"introduction.federation.local.text": "Publicacións públicas de xente no seu mesmo servidor aparecerán na liña temporal local.",
|
||||
|
@ -204,22 +205,24 @@
|
|||
"keyboard_shortcuts.search": "para centrar a busca",
|
||||
"keyboard_shortcuts.start": "abrir columna \"comezando\"",
|
||||
"keyboard_shortcuts.toggle_hidden": "mostrar/agochar un texto detrás do AC",
|
||||
"keyboard_shortcuts.toggle_sensitivity": "mostrar/ocultar medios",
|
||||
"keyboard_shortcuts.toot": "escribir un toot novo",
|
||||
"keyboard_shortcuts.unfocus": "quitar o foco do área de escritura/busca",
|
||||
"keyboard_shortcuts.up": "ir hacia arriba na lista",
|
||||
"lightbox.close": "Fechar",
|
||||
"lightbox.next": "Seguinte",
|
||||
"lightbox.previous": "Anterior",
|
||||
"lightbox.view_context": "View context",
|
||||
"lightbox.view_context": "Ver contexto",
|
||||
"lists.account.add": "Engadir á lista",
|
||||
"lists.account.remove": "Eliminar da lista",
|
||||
"lists.delete": "Delete list",
|
||||
"lists.delete": "Eliminar lista",
|
||||
"lists.edit": "Editar lista",
|
||||
"lists.edit.submit": "Change title",
|
||||
"lists.edit.submit": "Cambiar título",
|
||||
"lists.new.create": "Engadir lista",
|
||||
"lists.new.title_placeholder": "Novo título da lista",
|
||||
"lists.search": "Procurar entre a xente que segues",
|
||||
"lists.subheading": "As túas listas",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"loading_indicator.label": "Cargando...",
|
||||
"media_gallery.toggle_visible": "Ocultar",
|
||||
"missing_indicator.label": "Non atopado",
|
||||
|
@ -236,6 +239,7 @@
|
|||
"navigation_bar.favourites": "Favoritas",
|
||||
"navigation_bar.filters": "Palabras acaladas",
|
||||
"navigation_bar.follow_requests": "Peticións de seguimento",
|
||||
"navigation_bar.follows_and_followers": "Seguindo e seguidoras",
|
||||
"navigation_bar.info": "Sobre este servidor",
|
||||
"navigation_bar.keyboard_shortcuts": "Atallos",
|
||||
"navigation_bar.lists": "Listas",
|
||||
|
@ -244,6 +248,7 @@
|
|||
"navigation_bar.personal": "Persoal",
|
||||
"navigation_bar.pins": "Mensaxes fixadas",
|
||||
"navigation_bar.preferences": "Preferencias",
|
||||
"navigation_bar.profile_directory": "Directorio de perfil",
|
||||
"navigation_bar.public_timeline": "Liña temporal federada",
|
||||
"navigation_bar.security": "Seguridade",
|
||||
"notification.favourite": "{name} marcou como favorito o seu estado",
|
||||
|
@ -272,12 +277,12 @@
|
|||
"notifications.filter.mentions": "Mencións",
|
||||
"notifications.filter.polls": "Resultados da sondaxe",
|
||||
"notifications.group": "{count} notificacións",
|
||||
"poll.closed": "Closed",
|
||||
"poll.refresh": "Refresh",
|
||||
"poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
|
||||
"poll.closed": "Pechado",
|
||||
"poll.refresh": "Actualizar",
|
||||
"poll.total_votes": "{count, plural, one {# voto} outros {# votos}}",
|
||||
"poll.vote": "Votar",
|
||||
"poll_button.add_poll": "Add a poll",
|
||||
"poll_button.remove_poll": "Remove poll",
|
||||
"poll_button.add_poll": "Engadir sondaxe",
|
||||
"poll_button.remove_poll": "Eliminar sondaxe",
|
||||
"privacy.change": "Axustar a intimidade do estado",
|
||||
"privacy.direct.long": "Enviar exclusivamente as usuarias mencionadas",
|
||||
"privacy.direct.short": "Directa",
|
||||
|
@ -311,13 +316,14 @@
|
|||
"search_results.accounts": "Xente",
|
||||
"search_results.hashtags": "Etiquetas",
|
||||
"search_results.statuses": "Toots",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"search_results.total": "{count, number} {count,plural,one {result} outros {results}}",
|
||||
"status.admin_account": "Abrir interface de moderación para @{name}",
|
||||
"status.admin_status": "Abrir este estado na interface de moderación",
|
||||
"status.block": "Block @{name}",
|
||||
"status.block": "Bloquear @{name}",
|
||||
"status.cancel_reblog_private": "Non promover",
|
||||
"status.cannot_reblog": "Esta mensaxe non pode ser promovida",
|
||||
"status.copy": "Copy link to status",
|
||||
"status.copy": "Copiar ligazón ao estado",
|
||||
"status.delete": "Eliminar",
|
||||
"status.detailed_status": "Vista detallada da conversa",
|
||||
"status.direct": "Mensaxe directa @{name}",
|
||||
|
@ -358,17 +364,17 @@
|
|||
"tabs_bar.local_timeline": "Local",
|
||||
"tabs_bar.notifications": "Notificacións",
|
||||
"tabs_bar.search": "Buscar",
|
||||
"time_remaining.days": "{number, plural, one {# day} other {# days}} left",
|
||||
"time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
|
||||
"time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
|
||||
"time_remaining.moments": "Moments remaining",
|
||||
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
|
||||
"time_remaining.days": "{number, plural, one {# dia} other {# días}} restantes",
|
||||
"time_remaining.hours": "{number, plural, one {# hora} other {# horas}} restantes",
|
||||
"time_remaining.minutes": "{number, plural, one {# minuto} other {# minutos}} restantes",
|
||||
"time_remaining.moments": "Está rematando",
|
||||
"time_remaining.seconds": "{number, plural, one {# segundo} other {# segundos}} restantes",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} outras {people}} conversando",
|
||||
"ui.beforeunload": "O borrador perderase se sae de Mastodon.",
|
||||
"upload_area.title": "Arrastre e solte para subir",
|
||||
"upload_button.label": "Engadir medios (JPEG, PNG, GIF, WebM, MP4, MOV)",
|
||||
"upload_error.limit": "File upload limit exceeded.",
|
||||
"upload_error.poll": "File upload not allowed with polls.",
|
||||
"upload_button.label": "Engadir medios ({formats})",
|
||||
"upload_error.limit": "Excedeu o límite de subida de ficheiros.",
|
||||
"upload_error.poll": "Non se poden subir ficheiros nas sondaxes.",
|
||||
"upload_form.description": "Describa para deficientes visuais",
|
||||
"upload_form.focus": "Cambiar vista previa",
|
||||
"upload_form.undo": "Eliminar",
|
||||
|
|
|
@ -64,7 +64,7 @@
|
|||
"column_header.show_settings": "הצגת העדפות",
|
||||
"column_header.unpin": "שחרור קיבוע",
|
||||
"column_subheading.settings": "אפשרויות",
|
||||
"community.column_settings.media_only": "Media Only",
|
||||
"community.column_settings.media_only": "Media only",
|
||||
"compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
|
||||
"compose_form.direct_message_warning_learn_more": "Learn more",
|
||||
"compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
|
||||
|
@ -156,6 +156,7 @@
|
|||
"home.column_settings.basic": "למתחילים",
|
||||
"home.column_settings.show_reblogs": "הצגת הדהודים",
|
||||
"home.column_settings.show_replies": "הצגת תגובות",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
|
||||
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
|
||||
|
@ -220,6 +221,7 @@
|
|||
"lists.new.title_placeholder": "New list title",
|
||||
"lists.search": "Search among people you follow",
|
||||
"lists.subheading": "Your lists",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"loading_indicator.label": "טוען...",
|
||||
"media_gallery.toggle_visible": "נראה\\בלתי נראה",
|
||||
"missing_indicator.label": "לא נמצא",
|
||||
|
@ -311,6 +313,7 @@
|
|||
"search_results.accounts": "People",
|
||||
"search_results.hashtags": "Hashtags",
|
||||
"search_results.statuses": "Toots",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"search_results.total": "{count, number} {count, plural, one {תוצאה} other {תוצאות}}",
|
||||
"status.admin_account": "Open moderation interface for @{name}",
|
||||
"status.admin_status": "Open this status in the moderation interface",
|
||||
|
|
|
@ -156,6 +156,7 @@
|
|||
"home.column_settings.basic": "Basic",
|
||||
"home.column_settings.show_reblogs": "Show boosts",
|
||||
"home.column_settings.show_replies": "Show replies",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
|
||||
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
|
||||
|
@ -220,6 +221,7 @@
|
|||
"lists.new.title_placeholder": "New list title",
|
||||
"lists.search": "Search among people you follow",
|
||||
"lists.subheading": "Your lists",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"loading_indicator.label": "Loading...",
|
||||
"media_gallery.toggle_visible": "Toggle visibility",
|
||||
"missing_indicator.label": "Not found",
|
||||
|
@ -311,6 +313,7 @@
|
|||
"search_results.accounts": "People",
|
||||
"search_results.hashtags": "Hashtags",
|
||||
"search_results.statuses": "Toots",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
|
||||
"status.admin_account": "Open moderation interface for @{name}",
|
||||
"status.admin_status": "Open this status in the moderation interface",
|
||||
|
|
|
@ -64,7 +64,7 @@
|
|||
"column_header.show_settings": "Show settings",
|
||||
"column_header.unpin": "Unpin",
|
||||
"column_subheading.settings": "Postavke",
|
||||
"community.column_settings.media_only": "Media Only",
|
||||
"community.column_settings.media_only": "Media only",
|
||||
"compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
|
||||
"compose_form.direct_message_warning_learn_more": "Learn more",
|
||||
"compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
|
||||
|
@ -156,6 +156,7 @@
|
|||
"home.column_settings.basic": "Osnovno",
|
||||
"home.column_settings.show_reblogs": "Pokaži boostove",
|
||||
"home.column_settings.show_replies": "Pokaži odgovore",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
|
||||
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
|
||||
|
@ -220,6 +221,7 @@
|
|||
"lists.new.title_placeholder": "New list title",
|
||||
"lists.search": "Search among people you follow",
|
||||
"lists.subheading": "Your lists",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"loading_indicator.label": "Učitavam...",
|
||||
"media_gallery.toggle_visible": "Preklopi vidljivost",
|
||||
"missing_indicator.label": "Nije nađen",
|
||||
|
@ -311,6 +313,7 @@
|
|||
"search_results.accounts": "People",
|
||||
"search_results.hashtags": "Hashtags",
|
||||
"search_results.statuses": "Toots",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
|
||||
"status.admin_account": "Open moderation interface for @{name}",
|
||||
"status.admin_status": "Open this status in the moderation interface",
|
||||
|
|
|
@ -1,107 +1,107 @@
|
|||
{
|
||||
"account.add_or_remove_from_list": "Add or Remove from lists",
|
||||
"account.add_or_remove_from_list": "Hozzáadás és elvétel listáról",
|
||||
"account.badges.bot": "Bot",
|
||||
"account.block": "@{name} letiltása",
|
||||
"account.block_domain": "Minden elrejtése innen: {domain}",
|
||||
"account.blocked": "Blocked",
|
||||
"account.direct": "Direct Message @{name}",
|
||||
"account.domain_blocked": "Domain hidden",
|
||||
"account.blocked": "Letiltva",
|
||||
"account.direct": "Közvetlen üzenet @{name} számára",
|
||||
"account.domain_blocked": "Rejtett domain",
|
||||
"account.edit_profile": "Profil szerkesztése",
|
||||
"account.endorse": "Feature on profile",
|
||||
"account.endorse": "Kiemelés a profilodon",
|
||||
"account.follow": "Követés",
|
||||
"account.followers": "Követők",
|
||||
"account.followers.empty": "No one follows this user yet.",
|
||||
"account.follows": "Követve",
|
||||
"account.follows.empty": "This user doesn't follow anyone yet.",
|
||||
"account.follows_you": "Követnek téged",
|
||||
"account.hide_reblogs": "Rejtsd el a tülkölést @{name}-tól/től",
|
||||
"account.link_verified_on": "Ownership of this link was checked on {date}",
|
||||
"account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
|
||||
"account.followers": "Követő",
|
||||
"account.followers.empty": "Ezt a felhasználót még senki sem követi.",
|
||||
"account.follows": "Követett",
|
||||
"account.follows.empty": "Ez a felhasználó még senkit sem követ.",
|
||||
"account.follows_you": "Követ téged",
|
||||
"account.hide_reblogs": "@{name} megtolásainak némítása",
|
||||
"account.link_verified_on": "A linket ellenőriztük: {date}",
|
||||
"account.locked_info": "Ez a fiók zárt. A tulaj engedélyezi, ki követheti őt.",
|
||||
"account.media": "Média",
|
||||
"account.mention": "@{name} említése",
|
||||
"account.moved_to": "{name} átköltözött:",
|
||||
"account.mute": "@{name} némítása",
|
||||
"account.mute_notifications": "@{name} értesítések némítása",
|
||||
"account.muted": "Muted",
|
||||
"account.posts": "Státuszok",
|
||||
"account.posts_with_replies": "Toots with replies",
|
||||
"account.mute_notifications": "@{name} értesítéseinek némítása",
|
||||
"account.muted": "Némítva",
|
||||
"account.posts": "Tülkölés",
|
||||
"account.posts_with_replies": "Tülkölés válaszokkal",
|
||||
"account.report": "@{name} jelentése",
|
||||
"account.requested": "Engedélyre vár. Kattintson a követési kérés visszavonására",
|
||||
"account.requested": "Engedélyre vár. Kattints a követési kérés visszavonásához",
|
||||
"account.share": "@{name} profiljának megosztása",
|
||||
"account.show_reblogs": "@{name} kedvenceinek mutatása",
|
||||
"account.unblock": "@{name} kiblokkolása",
|
||||
"account.unblock_domain": "{domain} mutatása",
|
||||
"account.unendorse": "Don't feature on profile",
|
||||
"account.unfollow": "Követés abbahagyása",
|
||||
"account.unmute": "@{name} kinémítása",
|
||||
"account.unmute_notifications": "@{name} értesítéseinek kinémítása",
|
||||
"alert.unexpected.message": "An unexpected error occurred.",
|
||||
"alert.unexpected.title": "Oops!",
|
||||
"boost_modal.combo": "Megnyomhatod {combo}, hogy átugord következő alkalommal",
|
||||
"account.show_reblogs": "@{name} megtolásainak mutatása",
|
||||
"account.unblock": "@{name} letiltásának feloldása",
|
||||
"account.unblock_domain": "{domain} elrejtésének feloldása",
|
||||
"account.unendorse": "Kiemelés törlése a profilodról",
|
||||
"account.unfollow": "Követés vége",
|
||||
"account.unmute": "@{name} némítás feloldása",
|
||||
"account.unmute_notifications": "@{name} némított értesítéseinek feloldása",
|
||||
"alert.unexpected.message": "Váratlan hiba történt.",
|
||||
"alert.unexpected.title": "Hoppá!",
|
||||
"boost_modal.combo": "Hogy átugord ezt következő alkalommal, használd {combo}",
|
||||
"bundle_column_error.body": "Hiba történt a komponens betöltése közben.",
|
||||
"bundle_column_error.retry": "Próbálja újra",
|
||||
"bundle_column_error.retry": "Próbáld újra",
|
||||
"bundle_column_error.title": "Hálózati hiba",
|
||||
"bundle_modal_error.close": "Bezár",
|
||||
"bundle_modal_error.close": "Bezárás",
|
||||
"bundle_modal_error.message": "Hiba történt a komponens betöltésekor.",
|
||||
"bundle_modal_error.retry": "Próbálja újra",
|
||||
"bundle_modal_error.retry": "Próbáld újra",
|
||||
"column.blocks": "Letiltott felhasználók",
|
||||
"column.community": "Helyi idővonal",
|
||||
"column.direct": "Direct messages",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.direct": "Közvetlen üzenetek",
|
||||
"column.domain_blocks": "Rejtett domainek",
|
||||
"column.favourites": "Kedvencek",
|
||||
"column.follow_requests": "Követési kérések",
|
||||
"column.follow_requests": "Követési kérelmek",
|
||||
"column.home": "Kezdőlap",
|
||||
"column.lists": "Listák",
|
||||
"column.mutes": "Némított felhasználók",
|
||||
"column.notifications": "Értesítések",
|
||||
"column.pins": "Kitűzött tülkölések",
|
||||
"column.pins": "Kitűzött tülkök",
|
||||
"column.public": "Nyilvános idővonal",
|
||||
"column_back_button.label": "Vissza",
|
||||
"column_header.hide_settings": "Beállítások elrejtése",
|
||||
"column_header.moveLeft_settings": "Oszlop elmozdítása balra",
|
||||
"column_header.moveRight_settings": "oszlop elmozdítása jobbra",
|
||||
"column_header.pin": "Kitűz",
|
||||
"column_header.moveRight_settings": "Oszlop elmozdítása jobbra",
|
||||
"column_header.pin": "Kitűzés",
|
||||
"column_header.show_settings": "Beállítások mutatása",
|
||||
"column_header.unpin": "Kitűzés eltávolítása",
|
||||
"column_subheading.settings": "Beállítások",
|
||||
"community.column_settings.media_only": "Media Only",
|
||||
"compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
|
||||
"compose_form.direct_message_warning_learn_more": "Learn more",
|
||||
"compose_form.hashtag_warning": "Ezen tülkölés nem fog megjelenni semmilyen hashtag alatt mivel listázatlan. Csak a publikus tülkölések kereshetőek hashtag-el.",
|
||||
"compose_form.lock_disclaimer": "Az ön fiókja nincs {locked}. Bárki követni tud, hogy megtekintse a kizárt követőknek szánt üzeneteid.",
|
||||
"community.column_settings.media_only": "Csak média",
|
||||
"compose_form.direct_message_warning": "Ezt a tülköt csak a benne megemlített felhasználók láthatják majd.",
|
||||
"compose_form.direct_message_warning_learn_more": "Több infó",
|
||||
"compose_form.hashtag_warning": "Ez a tülköd nem fog megjelenni semmilyen hashtag alatt mivel listázatlan. Csak nyilvános tülkök kereshetőek hashtaggel.",
|
||||
"compose_form.lock_disclaimer": "A fiókod nincs {locked}. Bárki követni tud, hogy megtekintse a kizárólag követőknek szánt üzeneteidet.",
|
||||
"compose_form.lock_disclaimer.lock": "lezárva",
|
||||
"compose_form.placeholder": "Mire gondolsz?",
|
||||
"compose_form.poll.add_option": "Add a choice",
|
||||
"compose_form.poll.duration": "Poll duration",
|
||||
"compose_form.poll.option_placeholder": "Choice {number}",
|
||||
"compose_form.poll.remove_option": "Remove this choice",
|
||||
"compose_form.placeholder": "Mi jár a fejedben?",
|
||||
"compose_form.poll.add_option": "Lehetőség hozzáadása",
|
||||
"compose_form.poll.duration": "Szavazás időtartama",
|
||||
"compose_form.poll.option_placeholder": "Lehetőség {number}",
|
||||
"compose_form.poll.remove_option": "Lehetőség törlése",
|
||||
"compose_form.publish": "Tülk",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.sensitive.hide": "Mark media as sensitive",
|
||||
"compose_form.sensitive.marked": "Media is marked as sensitive",
|
||||
"compose_form.sensitive.unmarked": "Media is not marked as sensitive",
|
||||
"compose_form.spoiler.marked": "Text is hidden behind warning",
|
||||
"compose_form.spoiler.unmarked": "Text is not hidden",
|
||||
"compose_form.spoiler_placeholder": "Figyelmeztetését írja ide",
|
||||
"confirmation_modal.cancel": "Bezár",
|
||||
"confirmations.block.block_and_report": "Block & Report",
|
||||
"confirmations.block.confirm": "Letilt",
|
||||
"confirmations.block.message": "Biztos benne, hogy le szeretné tiltani {name}?",
|
||||
"confirmations.delete.confirm": "Töröl",
|
||||
"confirmations.delete.message": "Biztos benne, hogy törölni szeretné ezt a státuszt?",
|
||||
"confirmations.delete_list.confirm": "Töröl",
|
||||
"confirmations.delete_list.message": "Biztos benne, hogy véglegesen törölni szeretné ezt a listát?",
|
||||
"confirmations.domain_block.confirm": "Egész domain elrejtése",
|
||||
"confirmations.domain_block.message": "Nagyon biztos abban, hogy le szeretné tiltani az egész {domain}-t? A legtöbb esetben néhány célszerű tiltás vagy némítás elegendő és kívánatosabb megoldás.",
|
||||
"confirmations.mute.confirm": "Némít",
|
||||
"confirmations.mute.message": "Biztos benne, hogy némítani szeretné {name}?",
|
||||
"confirmations.redraft.confirm": "Delete & redraft",
|
||||
"confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? You will lose all replies, boosts and favourites to it.",
|
||||
"confirmations.reply.confirm": "Reply",
|
||||
"confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
|
||||
"compose_form.sensitive.hide": "Média megjelölése szenzitívként",
|
||||
"compose_form.sensitive.marked": "A médiát szenzitívnek jelölték",
|
||||
"compose_form.sensitive.unmarked": "A médiát nem jelölték szenzitívnek",
|
||||
"compose_form.spoiler.marked": "A szöveg figyelmeztetés mögé van rejtve",
|
||||
"compose_form.spoiler.unmarked": "A szöveg nem rejtett",
|
||||
"compose_form.spoiler_placeholder": "Írd ide a figyelmeztetést",
|
||||
"confirmation_modal.cancel": "Mégse",
|
||||
"confirmations.block.block_and_report": "Letiltás és Bejelentés",
|
||||
"confirmations.block.confirm": "Letiltás",
|
||||
"confirmations.block.message": "Biztos, hogy le szeretnéd tiltani {name}?",
|
||||
"confirmations.delete.confirm": "Törlés",
|
||||
"confirmations.delete.message": "Biztos, hogy törölni szeretnéd ezt a tülkölést?",
|
||||
"confirmations.delete_list.confirm": "Törlés",
|
||||
"confirmations.delete_list.message": "Biztos, hogy véglegesen törölni szeretnéd ezt a listát?",
|
||||
"confirmations.domain_block.confirm": "Teljes domain elrejtése",
|
||||
"confirmations.domain_block.message": "Egészen biztos, hogy le szeretnéd tiltani a teljes {domain}-t? A legtöbb esetben néhány célzott tiltás vagy némítás elegendő és kívánatosabb megoldás. Semmilyen tartalmat nem fogsz látni ebből a domainből se idővonalakon, se értesítésekben. Az ebben a domainben lévő követőidet is eltávolítjuk.",
|
||||
"confirmations.mute.confirm": "Némítás",
|
||||
"confirmations.mute.message": "Biztos, hogy némítani szeretnéd {name}?",
|
||||
"confirmations.redraft.confirm": "Törlés és újraírás",
|
||||
"confirmations.redraft.message": "Biztos, hogy ezt a tülköt szeretnéd törölni és újraírni? Minden megtolást és kedvencnek jelölést elvesztesz, az eredetire adott válaszok pedig elárvulnak.",
|
||||
"confirmations.reply.confirm": "Válasz",
|
||||
"confirmations.reply.message": "Ha most válaszolsz, ez felülírja a most szerkesztés alatt álló üzenetet. Mégis ezt szeretnéd?",
|
||||
"confirmations.unfollow.confirm": "Követés visszavonása",
|
||||
"confirmations.unfollow.message": "Biztos benne, hogy vissza szeretné vonni {name} követését?",
|
||||
"embed.instructions": "Ágyazza be ezen státuszt weboldalába az alábbi kód másolásával.",
|
||||
"confirmations.unfollow.message": "Biztos, hogy vissza szeretnéd vonni {name} követését?",
|
||||
"embed.instructions": "Ágyazd be ezt a tülköt a weboldaladba az alábbi kód kimásolásával.",
|
||||
"embed.preview": "Így fog kinézni:",
|
||||
"emoji_button.activity": "Aktivitás",
|
||||
"emoji_button.custom": "Egyéni",
|
||||
|
@ -109,7 +109,7 @@
|
|||
"emoji_button.food": "Étel és Ital",
|
||||
"emoji_button.label": "Emoji beszúrása",
|
||||
"emoji_button.nature": "Természet",
|
||||
"emoji_button.not_found": "Nincsenek emojok!! (╯°□°)╯︵ ┻━┻",
|
||||
"emoji_button.not_found": "Nincsenek emojik!! (╯°□°)╯︵ ┻━┻",
|
||||
"emoji_button.objects": "Tárgyak",
|
||||
"emoji_button.people": "Emberek",
|
||||
"emoji_button.recent": "Gyakran használt",
|
||||
|
@ -117,269 +117,275 @@
|
|||
"emoji_button.search_results": "Keresési találatok",
|
||||
"emoji_button.symbols": "Szimbólumok",
|
||||
"emoji_button.travel": "Utazás és Helyek",
|
||||
"empty_column.account_timeline": "No toots here!",
|
||||
"empty_column.account_unavailable": "Profile unavailable",
|
||||
"empty_column.blocks": "You haven't blocked any users yet.",
|
||||
"empty_column.community": "A helyi idővonal üres. Írj egy publikus stástuszt, hogy elindítsd a labdát!",
|
||||
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
|
||||
"empty_column.domain_blocks": "There are no hidden domains yet.",
|
||||
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
|
||||
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
|
||||
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
|
||||
"empty_column.hashtag": "Jelenleg nem található semmi ezen hashtaggel.",
|
||||
"empty_column.home": "A hazai idővonala üres! Látogasd meg a {public} vagy használd a keresőt, hogy ismerj meg más felhasználókat.",
|
||||
"empty_column.home.public_timeline": "publikus idővonal",
|
||||
"empty_column.list": "A lista jelenleg üres. Mikor a listatagok új státuszt posztolnak itt meg fognak jelenni.",
|
||||
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
|
||||
"empty_column.mutes": "You haven't muted any users yet.",
|
||||
"empty_column.notifications": "Jelenleg nincsenek értesítései. Lépj kapcsolatba másokkal, hogy indítsd el a beszélgetést.",
|
||||
"empty_column.public": "Jelenleg semmi nincs itt! Írj valamit publikusan vagy kövess más szervereken levő felhasználókat, hogy megtöltsd",
|
||||
"follow_request.authorize": "Engedélyez",
|
||||
"follow_request.reject": "Visszautasít",
|
||||
"getting_started.developers": "Developers",
|
||||
"getting_started.directory": "Profile directory",
|
||||
"getting_started.documentation": "Documentation",
|
||||
"empty_column.account_timeline": "Itt nincs tülkölés!",
|
||||
"empty_column.account_unavailable": "A profil nem elérhető",
|
||||
"empty_column.blocks": "Még senkit sem tiltottál le.",
|
||||
"empty_column.community": "A helyi idővonal üres. Tülkölj egyet nyilvánosan, hogy elindítsd az eseményeket!",
|
||||
"empty_column.direct": "Még nincs egy közvetlen üzeneted sem. Ha küldesz vagy kapsz egyet, itt fog megjelenni.",
|
||||
"empty_column.domain_blocks": "Még nem rejtettél el egyetlen domaint sem.",
|
||||
"empty_column.favourited_statuses": "Még nincs egy kedvenc tülköd sem. Ha kedvencnek jelölsz egyet, itt fog megjelenni.",
|
||||
"empty_column.favourites": "Még senki sem jelölte ezt a tülköt kedvencként. Ha valaki mégis megteszi, itt fogjuk mutatni.",
|
||||
"empty_column.follow_requests": "Még nincs egy követési kérésed sem. Ha kapsz egyet, itt fogjuk feltüntetni.",
|
||||
"empty_column.hashtag": "Jelenleg nem található semmi ezzel a hashtaggel.",
|
||||
"empty_column.home": "A saját idővonalad üres! Látogasd meg a {public} -at vagy használd a keresőt, hogy megismerj másokat.",
|
||||
"empty_column.home.public_timeline": "nyilvános idővonal",
|
||||
"empty_column.list": "A lista jelenleg üres. Ha a listatagok tülkölnek, itt fognak megjelenni.",
|
||||
"empty_column.lists": "Még nem hoztál létre listát. Ha csinálsz egyet, itt látszik majd.",
|
||||
"empty_column.mutes": "Még egy felhasználót sem némítottál le.",
|
||||
"empty_column.notifications": "Jelenleg nincsenek értesítéseid. Lépj kapcsolatba másokkal, hogy elindítsd a beszélgetést.",
|
||||
"empty_column.public": "Jelenleg itt nincs semmi! Írj valamit nyilvánosan vagy kövess más szervereken levő felhasználókat, hogy megtöltsd",
|
||||
"follow_request.authorize": "Engedélyezés",
|
||||
"follow_request.reject": "Visszautasítás",
|
||||
"getting_started.developers": "Fejlesztőknek",
|
||||
"getting_started.directory": "Profilok",
|
||||
"getting_started.documentation": "Dokumentáció",
|
||||
"getting_started.heading": "Első lépések",
|
||||
"getting_started.invite": "Invite people",
|
||||
"getting_started.open_source_notice": "Mastodon egy nyílt forráskódú szoftver. Hozzájárulás vagy problémák jelentése a GitHub-on {github}.",
|
||||
"getting_started.security": "Security",
|
||||
"getting_started.terms": "Terms of service",
|
||||
"hashtag.column_header.tag_mode.all": "and {additional}",
|
||||
"hashtag.column_header.tag_mode.any": "or {additional}",
|
||||
"hashtag.column_header.tag_mode.none": "without {additional}",
|
||||
"hashtag.column_settings.select.no_options_message": "No suggestions found",
|
||||
"hashtag.column_settings.select.placeholder": "Enter hashtags…",
|
||||
"hashtag.column_settings.tag_mode.all": "All of these",
|
||||
"hashtag.column_settings.tag_mode.any": "Any of these",
|
||||
"hashtag.column_settings.tag_mode.none": "None of these",
|
||||
"hashtag.column_settings.tag_toggle": "Include additional tags in this column",
|
||||
"home.column_settings.basic": "Alap",
|
||||
"home.column_settings.show_reblogs": "Ismétlések mutatása",
|
||||
"getting_started.invite": "Mások meghívása",
|
||||
"getting_started.open_source_notice": "A Mastodon nyílt forráskódú szoftver. Csatlakozhatsz a fejlesztéshez vagy jelenthetsz problémákat GitHub-on {github}.",
|
||||
"getting_started.security": "Biztonság",
|
||||
"getting_started.terms": "Felhasználási feltételek",
|
||||
"hashtag.column_header.tag_mode.all": "és {additional}",
|
||||
"hashtag.column_header.tag_mode.any": "vagy {additional}",
|
||||
"hashtag.column_header.tag_mode.none": "nélküle {additional}",
|
||||
"hashtag.column_settings.select.no_options_message": "Nincs javaslat",
|
||||
"hashtag.column_settings.select.placeholder": "Addj meg hashtageket…",
|
||||
"hashtag.column_settings.tag_mode.all": "Mindegyik",
|
||||
"hashtag.column_settings.tag_mode.any": "Bármelyik",
|
||||
"hashtag.column_settings.tag_mode.none": "Egyik sem",
|
||||
"hashtag.column_settings.tag_toggle": "Új tagek felvétele ehhez az oszlophoz",
|
||||
"home.column_settings.basic": "Alapértelmezések",
|
||||
"home.column_settings.show_reblogs": "Megtolások mutatása",
|
||||
"home.column_settings.show_replies": "Válaszok mutatása",
|
||||
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
|
||||
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
|
||||
"introduction.federation.action": "Next",
|
||||
"introduction.federation.federated.headline": "Federated",
|
||||
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
|
||||
"introduction.federation.home.headline": "Home",
|
||||
"introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
|
||||
"introduction.federation.local.headline": "Local",
|
||||
"introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
|
||||
"introduction.interactions.action": "Finish tutorial!",
|
||||
"introduction.interactions.favourite.headline": "Favourite",
|
||||
"introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
|
||||
"introduction.interactions.reblog.headline": "Boost",
|
||||
"introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
|
||||
"introduction.interactions.reply.headline": "Reply",
|
||||
"introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
|
||||
"introduction.welcome.action": "Let's go!",
|
||||
"introduction.welcome.headline": "First steps",
|
||||
"introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.",
|
||||
"keyboard_shortcuts.back": "vissza navigálás",
|
||||
"keyboard_shortcuts.blocked": "to open blocked users list",
|
||||
"keyboard_shortcuts.boost": "ismétlés",
|
||||
"keyboard_shortcuts.column": "összpontosítson egy státuszra az egyik oszlopban",
|
||||
"keyboard_shortcuts.compose": "fókuszálja a szerkesztési szövegdobozt",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"intervals.full.days": "{number, plural, one {# nap} other {# nap}}",
|
||||
"intervals.full.hours": "{number, plural, one {# óra} other {# óra}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# perc} other {# perc}}",
|
||||
"introduction.federation.action": "Következő",
|
||||
"introduction.federation.federated.headline": "Föderációs",
|
||||
"introduction.federation.federated.text": "A fediverzum más szervereiről származó nyilvános tülkök a föderációs idővonalon jelennek meg.",
|
||||
"introduction.federation.home.headline": "Saját",
|
||||
"introduction.federation.home.text": "A saját idővonaladon az általad követettek tülkjei jelennek meg. Bárkit követhetsz bármely szerveren.",
|
||||
"introduction.federation.local.headline": "Helyi",
|
||||
"introduction.federation.local.text": "A helyi idővonalon a veled közös szerveren lévő emberek nyilvános tülkjei jelennek meg.",
|
||||
"introduction.interactions.action": "Oktatóanyag befejezése!",
|
||||
"introduction.interactions.favourite.headline": "Kedvenc",
|
||||
"introduction.interactions.favourite.text": "A kedvenc funkcióval elrakhatsz későbbre egy tülköt, illetve közölheted a szerzővel, hogy tetszett a megosztása.",
|
||||
"introduction.interactions.reblog.headline": "Megtolás",
|
||||
"introduction.interactions.reblog.text": "A saját követőiddel mások tülkjeit is megoszthatod úgy, hogy megtolod őket.",
|
||||
"introduction.interactions.reply.headline": "Válasz",
|
||||
"introduction.interactions.reply.text": "Saját vagy mások tülkjeire válaszolva egy beszélgetési láncot alakíthatsz ki.",
|
||||
"introduction.welcome.action": "Csapjunk bele!",
|
||||
"introduction.welcome.headline": "Első lépések",
|
||||
"introduction.welcome.text": "Üdv a fediverzumban! Pár pillanat múlva már küldheted is üzeneteidet barátaidnak bármely szerveren. Ez a szerver {domain} viszont különleges. Ez tartja nyilván a profilod, szóval jegyezd meg a nevét.",
|
||||
"keyboard_shortcuts.back": "visszafelé navigálás",
|
||||
"keyboard_shortcuts.blocked": "letiltott felhasználók listájának megnyitása",
|
||||
"keyboard_shortcuts.boost": "megtolás",
|
||||
"keyboard_shortcuts.column": "fókuszálás egy tülkre az egyik oszlopban",
|
||||
"keyboard_shortcuts.compose": "fókuszálás a szerkesztési szövegdobozra",
|
||||
"keyboard_shortcuts.description": "Leírás",
|
||||
"keyboard_shortcuts.direct": "to open direct messages column",
|
||||
"keyboard_shortcuts.direct": "közvetlen üzenetek megnyitása",
|
||||
"keyboard_shortcuts.down": "lefele navigálás a listában",
|
||||
"keyboard_shortcuts.enter": "státusz megnyitása",
|
||||
"keyboard_shortcuts.favourite": "kedvenccé tétel",
|
||||
"keyboard_shortcuts.favourites": "to open favourites list",
|
||||
"keyboard_shortcuts.federated": "to open federated timeline",
|
||||
"keyboard_shortcuts.heading": "Billentyű rövidítések",
|
||||
"keyboard_shortcuts.home": "to open home timeline",
|
||||
"keyboard_shortcuts.enter": "tülk megnyitása",
|
||||
"keyboard_shortcuts.favourite": "kedvencnek jelölés",
|
||||
"keyboard_shortcuts.favourites": "kedvenc lista megnyitása",
|
||||
"keyboard_shortcuts.federated": "föderációs idővonal megnyitása",
|
||||
"keyboard_shortcuts.heading": "Billentyűparancsok",
|
||||
"keyboard_shortcuts.home": "saját idővonal megnyitása",
|
||||
"keyboard_shortcuts.hotkey": "Gyorsbillentyű",
|
||||
"keyboard_shortcuts.legend": "jelmagyarázat megjelenítése",
|
||||
"keyboard_shortcuts.local": "to open local timeline",
|
||||
"keyboard_shortcuts.mention": "szerző megjelenítése",
|
||||
"keyboard_shortcuts.muted": "to open muted users list",
|
||||
"keyboard_shortcuts.my_profile": "to open your profile",
|
||||
"keyboard_shortcuts.notifications": "to open notifications column",
|
||||
"keyboard_shortcuts.pinned": "to open pinned toots list",
|
||||
"keyboard_shortcuts.profile": "to open author's profile",
|
||||
"keyboard_shortcuts.reply": "válaszolás",
|
||||
"keyboard_shortcuts.requests": "to open follow requests list",
|
||||
"keyboard_shortcuts.search": "kereső kiemelése",
|
||||
"keyboard_shortcuts.start": "to open \"get started\" column",
|
||||
"keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
|
||||
"keyboard_shortcuts.toot": "új tülk megkezdése",
|
||||
"keyboard_shortcuts.local": "helyi idővonal megnyitása",
|
||||
"keyboard_shortcuts.mention": "szerző megemlítése",
|
||||
"keyboard_shortcuts.muted": "némított felhasználók listájának megnyitása",
|
||||
"keyboard_shortcuts.my_profile": "profilod megnyitása",
|
||||
"keyboard_shortcuts.notifications": "értesítések megnyitása",
|
||||
"keyboard_shortcuts.pinned": "kitűzött tülkök listájának megnyitása",
|
||||
"keyboard_shortcuts.profile": "szerző profiljának megnyitása",
|
||||
"keyboard_shortcuts.reply": "válasz",
|
||||
"keyboard_shortcuts.requests": "követési kérések listájának megnyitása",
|
||||
"keyboard_shortcuts.search": "fókuszálás a keresőre",
|
||||
"keyboard_shortcuts.start": "\"Első lépések\" megnyitása",
|
||||
"keyboard_shortcuts.toggle_hidden": "tartalmi figyelmeztetéssel ellátott szöveg mutatása/elrejtése",
|
||||
"keyboard_shortcuts.toggle_sensitivity": "média mutatása/elrejtése",
|
||||
"keyboard_shortcuts.toot": "új tülk írása",
|
||||
"keyboard_shortcuts.unfocus": "tülk szerkesztés/keresés fókuszpontból való kivétele",
|
||||
"keyboard_shortcuts.up": "fennebb helyezés a listában",
|
||||
"keyboard_shortcuts.up": "felfelé mozdítás a listában",
|
||||
"lightbox.close": "Bezárás",
|
||||
"lightbox.next": "Következő",
|
||||
"lightbox.previous": "Előző",
|
||||
"lightbox.view_context": "View context",
|
||||
"lightbox.view_context": "Kontextus megtekintése",
|
||||
"lists.account.add": "Hozzáadás a listához",
|
||||
"lists.account.remove": "Eltávolít a listából",
|
||||
"lists.account.remove": "Eltávolítás a listából",
|
||||
"lists.delete": "Lista törlése",
|
||||
"lists.edit": "Lista szerkesztése",
|
||||
"lists.edit.submit": "Change title",
|
||||
"lists.edit.submit": "Cím megváltoztatása",
|
||||
"lists.new.create": "Lista hozzáadása",
|
||||
"lists.new.title_placeholder": "Új lista cím",
|
||||
"lists.search": "Keresés a követtett személyek között",
|
||||
"lists.new.title_placeholder": "Új lista címe",
|
||||
"lists.search": "Keresés a követett személyek között",
|
||||
"lists.subheading": "Listáid",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"loading_indicator.label": "Betöltés...",
|
||||
"media_gallery.toggle_visible": "Láthatóság váltása",
|
||||
"media_gallery.toggle_visible": "Láthatóság állítása",
|
||||
"missing_indicator.label": "Nincs találat",
|
||||
"missing_indicator.sublabel": "Ezen forrás nem található",
|
||||
"mute_modal.hide_notifications": "Értesítések elrejtése ezen felhasználótól?",
|
||||
"navigation_bar.apps": "Mobile apps",
|
||||
"navigation_bar.blocks": "Tiltott felhasználók",
|
||||
"missing_indicator.sublabel": "Ez az erőforrás nem található",
|
||||
"mute_modal.hide_notifications": "Rejtsük el a felhasználótól származó értesítéseket?",
|
||||
"navigation_bar.apps": "Mobil appok",
|
||||
"navigation_bar.blocks": "Letiltott felhasználók",
|
||||
"navigation_bar.community_timeline": "Helyi idővonal",
|
||||
"navigation_bar.compose": "Compose new toot",
|
||||
"navigation_bar.direct": "Direct messages",
|
||||
"navigation_bar.discover": "Discover",
|
||||
"navigation_bar.domain_blocks": "Hidden domains",
|
||||
"navigation_bar.compose": "Új tülk írása",
|
||||
"navigation_bar.direct": "Közvetlen üzenetek",
|
||||
"navigation_bar.discover": "Felfedezés",
|
||||
"navigation_bar.domain_blocks": "Rejtett domainek",
|
||||
"navigation_bar.edit_profile": "Profil szerkesztése",
|
||||
"navigation_bar.favourites": "Kedvencek",
|
||||
"navigation_bar.filters": "Muted words",
|
||||
"navigation_bar.follow_requests": "Követési kérések",
|
||||
"navigation_bar.info": "Ezen szerverről",
|
||||
"navigation_bar.filters": "Némított szavak",
|
||||
"navigation_bar.follow_requests": "Követési kérelmek",
|
||||
"navigation_bar.follows_and_followers": "Követettek és követők",
|
||||
"navigation_bar.info": "Erről a szerverről",
|
||||
"navigation_bar.keyboard_shortcuts": "Gyorsbillentyűk",
|
||||
"navigation_bar.lists": "Listák",
|
||||
"navigation_bar.logout": "Kijelentkezés",
|
||||
"navigation_bar.mutes": "Némított felhasználók",
|
||||
"navigation_bar.personal": "Personal",
|
||||
"navigation_bar.personal": "Személyes",
|
||||
"navigation_bar.pins": "Kitűzött tülkök",
|
||||
"navigation_bar.preferences": "Beállítások",
|
||||
"navigation_bar.public_timeline": "Nyilvános időfolyam",
|
||||
"navigation_bar.security": "Security",
|
||||
"notification.favourite": "{name} kedvencnek jelölte az állapotod",
|
||||
"navigation_bar.profile_directory": "Profilok",
|
||||
"navigation_bar.public_timeline": "Föderációs idővonal",
|
||||
"navigation_bar.security": "Biztonság",
|
||||
"notification.favourite": "{name} kedvencnek jelölte egy tülködet",
|
||||
"notification.follow": "{name} követ téged",
|
||||
"notification.mention": "{name} megemlített",
|
||||
"notification.poll": "A poll you have voted in has ended",
|
||||
"notification.reblog": "{name} rebloggolta az állapotod",
|
||||
"notification.poll": "Egy szavazás, melyben részt vettél, véget ért",
|
||||
"notification.reblog": "{name} megtolta a tülködet",
|
||||
"notifications.clear": "Értesítések törlése",
|
||||
"notifications.clear_confirmation": "Biztos benne, hogy véglegesen törölni akarja az összes értesítését?",
|
||||
"notifications.column_settings.alert": "Asztali gépi értesítések",
|
||||
"notifications.clear_confirmation": "Biztos, hogy véglegesen törölni akarod az összes értesítésed?",
|
||||
"notifications.column_settings.alert": "Asztali értesítések",
|
||||
"notifications.column_settings.favourite": "Kedvencek:",
|
||||
"notifications.column_settings.filter_bar.advanced": "Display all categories",
|
||||
"notifications.column_settings.filter_bar.category": "Quick filter bar",
|
||||
"notifications.column_settings.filter_bar.show": "Show",
|
||||
"notifications.column_settings.filter_bar.advanced": "Minden kategória mutatása",
|
||||
"notifications.column_settings.filter_bar.category": "Gyorskereső mező",
|
||||
"notifications.column_settings.filter_bar.show": "Mutat",
|
||||
"notifications.column_settings.follow": "Új követők:",
|
||||
"notifications.column_settings.mention": "Megemítéseim:",
|
||||
"notifications.column_settings.poll": "Poll results:",
|
||||
"notifications.column_settings.mention": "Megemlítéseid:",
|
||||
"notifications.column_settings.poll": "Szavazás eredménye:",
|
||||
"notifications.column_settings.push": "Push értesítések",
|
||||
"notifications.column_settings.reblog": "Rebloggolások:",
|
||||
"notifications.column_settings.reblog": "Megtolások:",
|
||||
"notifications.column_settings.show": "Oszlopban mutatás",
|
||||
"notifications.column_settings.sound": "Hang lejátszása",
|
||||
"notifications.filter.all": "All",
|
||||
"notifications.filter.boosts": "Boosts",
|
||||
"notifications.filter.favourites": "Favourites",
|
||||
"notifications.filter.follows": "Follows",
|
||||
"notifications.filter.mentions": "Mentions",
|
||||
"notifications.filter.polls": "Poll results",
|
||||
"notifications.group": "{count} notifications",
|
||||
"poll.closed": "Closed",
|
||||
"poll.refresh": "Refresh",
|
||||
"poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
|
||||
"poll.vote": "Vote",
|
||||
"poll_button.add_poll": "Add a poll",
|
||||
"poll_button.remove_poll": "Remove poll",
|
||||
"privacy.change": "Státusz láthatóságának módosítása",
|
||||
"privacy.direct.long": "Posztolás csak az említett felhasználóknak",
|
||||
"privacy.direct.short": "Egyenesen",
|
||||
"privacy.private.long": "Posztolás csak követőknek",
|
||||
"notifications.filter.all": "Mind",
|
||||
"notifications.filter.boosts": "Megtolások",
|
||||
"notifications.filter.favourites": "Kedvencnek jelölések",
|
||||
"notifications.filter.follows": "Követések",
|
||||
"notifications.filter.mentions": "Megemlítések",
|
||||
"notifications.filter.polls": "Szavazások eredményei",
|
||||
"notifications.group": "{count} értesítés",
|
||||
"poll.closed": "Lezárva",
|
||||
"poll.refresh": "Frissítés",
|
||||
"poll.total_votes": "{count, plural, one {# szavazat} other {# szavazat}}",
|
||||
"poll.vote": "Szavazás",
|
||||
"poll_button.add_poll": "Új szavazás",
|
||||
"poll_button.remove_poll": "Szavazás törlése",
|
||||
"privacy.change": "Tülk láthatóságának módosítása",
|
||||
"privacy.direct.long": "Tülk csak az említett felhasználóknak",
|
||||
"privacy.direct.short": "Közvetlen",
|
||||
"privacy.private.long": "Tülk csak követőknek",
|
||||
"privacy.private.short": "Csak követőknek",
|
||||
"privacy.public.long": "Posztolás a publikus idővonalakra",
|
||||
"privacy.public.short": "Publikus",
|
||||
"privacy.unlisted.long": "Do not show in public timelines",
|
||||
"privacy.public.long": "Tülk a nyilvános idővonalra",
|
||||
"privacy.public.short": "Nyilvános",
|
||||
"privacy.unlisted.long": "Ne mutassuk nyilvános idővonalon",
|
||||
"privacy.unlisted.short": "Listázatlan",
|
||||
"regeneration_indicator.label": "Töltődik…",
|
||||
"regeneration_indicator.sublabel": "Your home feed is being prepared!",
|
||||
"relative_time.days": "{number}d",
|
||||
"relative_time.hours": "{number}h",
|
||||
"regeneration_indicator.sublabel": "A saját idővonalad épp készül!",
|
||||
"relative_time.days": "{number}nap",
|
||||
"relative_time.hours": "{number}ó",
|
||||
"relative_time.just_now": "most",
|
||||
"relative_time.minutes": "{number}m",
|
||||
"relative_time.seconds": "{number}s",
|
||||
"relative_time.minutes": "{number}p",
|
||||
"relative_time.seconds": "{number}mp",
|
||||
"reply_indicator.cancel": "Mégsem",
|
||||
"report.forward": "Forward to {target}",
|
||||
"report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
|
||||
"report.hint": "The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:",
|
||||
"report.placeholder": "További kommentek",
|
||||
"report.submit": "Submit",
|
||||
"report.target": "Reporting",
|
||||
"report.forward": "Továbbítás neki {target}",
|
||||
"report.forward_hint": "Ez a fiók egy másik szerverről van. Küldjünk oda is egy anonimizált bejelentést?",
|
||||
"report.hint": "A bejelentést a szervered moderátorainak küldjük el. Megmagyarázhatod, miért jelented az alábbi problémát:",
|
||||
"report.placeholder": "További megjegyzések",
|
||||
"report.submit": "Küldés",
|
||||
"report.target": "{target} jelentése",
|
||||
"search.placeholder": "Keresés",
|
||||
"search_popout.search_format": "Fejlett keresés",
|
||||
"search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
|
||||
"search_popout.search_format": "Haladó keresés",
|
||||
"search_popout.tips.full_text": "Egyszerű szöveg. Illeszkedő, általad írt tülköket, kedvencnek jelöléseket, megtolást, megemlítést, felhasználói nevet, megjelenített nevet, hashtageket ad majd vissza.",
|
||||
"search_popout.tips.hashtag": "hashtag",
|
||||
"search_popout.tips.status": "status",
|
||||
"search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
|
||||
"search_popout.tips.status": "tülk",
|
||||
"search_popout.tips.text": "Egyszerű szöveg. Illeszkedő megjelenített nevet, felhasználói nevet, hashtageket ad majd vissza",
|
||||
"search_popout.tips.user": "felhasználó",
|
||||
"search_results.accounts": "People",
|
||||
"search_results.hashtags": "Hashtags",
|
||||
"search_results.statuses": "Toots",
|
||||
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
|
||||
"status.admin_account": "Open moderation interface for @{name}",
|
||||
"status.admin_status": "Open this status in the moderation interface",
|
||||
"status.block": "Block @{name}",
|
||||
"status.cancel_reblog_private": "Unboost",
|
||||
"status.cannot_reblog": "Ezen státusz nem rebloggolható",
|
||||
"status.copy": "Copy link to status",
|
||||
"search_results.accounts": "Emberek",
|
||||
"search_results.hashtags": "Hashtagek",
|
||||
"search_results.statuses": "Tülkök",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"search_results.total": "{count, number} {count, plural, one {találat} other {találat}}",
|
||||
"status.admin_account": "Moderáció megnyitása @{name} felhasználóhoz",
|
||||
"status.admin_status": "Tülk megnyitása moderációra",
|
||||
"status.block": "@{name} letiltása",
|
||||
"status.cancel_reblog_private": "Megtolás törlése",
|
||||
"status.cannot_reblog": "Ez a tülk nem tolható meg",
|
||||
"status.copy": "Link másolása tülkbe",
|
||||
"status.delete": "Törlés",
|
||||
"status.detailed_status": "Detailed conversation view",
|
||||
"status.direct": "Direct message @{name}",
|
||||
"status.embed": "Beágyaz",
|
||||
"status.detailed_status": "Részletes beszélgetési nézet",
|
||||
"status.direct": "Közvetlen üzenet @{name} számára",
|
||||
"status.embed": "Beágyazás",
|
||||
"status.favourite": "Kedvenc",
|
||||
"status.filtered": "Filtered",
|
||||
"status.filtered": "Megszűrt",
|
||||
"status.load_more": "Többet",
|
||||
"status.media_hidden": "Média elrejtve",
|
||||
"status.mention": "Említés",
|
||||
"status.mention": "@{name} említése",
|
||||
"status.more": "Többet",
|
||||
"status.mute": "@{name} némítása",
|
||||
"status.mute_conversation": "Beszélgetés némítása",
|
||||
"status.open": "Státusz kinagyítása",
|
||||
"status.open": "Tülk kibontása",
|
||||
"status.pin": "Kitűzés a profilra",
|
||||
"status.pinned": "Pinned toot",
|
||||
"status.read_more": "Read more",
|
||||
"status.reblog": "Reblog",
|
||||
"status.reblog_private": "Boost to original audience",
|
||||
"status.reblogged_by": "{name} reblogolta",
|
||||
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
|
||||
"status.redraft": "Delete & re-draft",
|
||||
"status.pinned": "Kitűzött tülk",
|
||||
"status.read_more": "Bővebben",
|
||||
"status.reblog": "Megtolás",
|
||||
"status.reblog_private": "Megtolás az eredeti közönségnek",
|
||||
"status.reblogged_by": "{name} megtolta",
|
||||
"status.reblogs.empty": "Senki sem tolta még meg ezt a tülköt. Ha valaki megteszi, itt fog megjelenni.",
|
||||
"status.redraft": "Törlés és újraírás",
|
||||
"status.reply": "Válasz",
|
||||
"status.replyAll": "Válaszolj a beszélgetésre",
|
||||
"status.report": "Report @{name}",
|
||||
"status.sensitive_warning": "Érzékeny tartalom",
|
||||
"status.replyAll": "Válasz a beszélgetésre",
|
||||
"status.report": "@{name} jelentése",
|
||||
"status.sensitive_warning": "Szenzitív tartalom",
|
||||
"status.share": "Megosztás",
|
||||
"status.show_less": "Kevesebb",
|
||||
"status.show_less_all": "Show less for all",
|
||||
"status.show_less": "Kevesebbet",
|
||||
"status.show_less_all": "Kevesebbet mindenhol",
|
||||
"status.show_more": "Többet",
|
||||
"status.show_more_all": "Show more for all",
|
||||
"status.show_thread": "Show thread",
|
||||
"status.unmute_conversation": "Beszélgetés némításának elvonása",
|
||||
"status.unpin": "Kitűzés eltávolítása a profilról",
|
||||
"suggestions.dismiss": "Dismiss suggestion",
|
||||
"suggestions.header": "You might be interested in…",
|
||||
"tabs_bar.federated_timeline": "Federált",
|
||||
"tabs_bar.home": "Kezdőlap",
|
||||
"tabs_bar.local_timeline": "Local",
|
||||
"status.show_more_all": "Többet mindenhol",
|
||||
"status.show_thread": "Szál mutatása",
|
||||
"status.unmute_conversation": "Beszélgetés némításának kikapcsolása",
|
||||
"status.unpin": "Kitűzés eltávolítása a profilodról",
|
||||
"suggestions.dismiss": "Javaslat elvetése",
|
||||
"suggestions.header": "Esetleg érdekelhet…",
|
||||
"tabs_bar.federated_timeline": "Föderációs",
|
||||
"tabs_bar.home": "Saját",
|
||||
"tabs_bar.local_timeline": "Helyi",
|
||||
"tabs_bar.notifications": "Értesítések",
|
||||
"tabs_bar.search": "Search",
|
||||
"time_remaining.days": "{number, plural, one {# day} other {# days}} left",
|
||||
"time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
|
||||
"time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
|
||||
"time_remaining.moments": "Moments remaining",
|
||||
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
|
||||
"ui.beforeunload": "A piszkozata el fog vesztődni ha elhagyja Mastodon-t.",
|
||||
"upload_area.title": "Húzza ide a feltöltéshez",
|
||||
"upload_button.label": "Média hozzáadása",
|
||||
"upload_error.limit": "File upload limit exceeded.",
|
||||
"upload_error.poll": "File upload not allowed with polls.",
|
||||
"upload_form.description": "Describe for the visually impaired",
|
||||
"upload_form.focus": "Crop",
|
||||
"tabs_bar.search": "Keresés",
|
||||
"time_remaining.days": "{number, plural, one {# nap} other {# nap}} van hátra",
|
||||
"time_remaining.hours": "{number, plural, one {# óra} other {# óra}} van hátra",
|
||||
"time_remaining.minutes": "{number, plural, one {# perc} other {# perc}} van hátra",
|
||||
"time_remaining.moments": "Pillanatok vannak hátra",
|
||||
"time_remaining.seconds": "{number, plural, one {# másodperc} other {# másodperc}} van hátra",
|
||||
"trends.count_by_accounts": "{count} {rawCount, plural, one {résztvevő} other {résztvevő}} beszélget",
|
||||
"ui.beforeunload": "A piszkozatod el fog veszni, ha elhagyod a Mastodon-t.",
|
||||
"upload_area.title": "Húzd ide a feltöltéshez",
|
||||
"upload_button.label": "Média hozzáadása (JPEG, PNG, GIF, WebM, MP4, MOV)",
|
||||
"upload_error.limit": "Túllépted a fájl feltöltési limitet.",
|
||||
"upload_error.poll": "Szavazásnál nem lehet fájlt feltölteni.",
|
||||
"upload_form.description": "Leírás látáskorlátozottak számára",
|
||||
"upload_form.focus": "Előnézet megváltoztatása",
|
||||
"upload_form.undo": "Mégsem",
|
||||
"upload_progress.label": "Uploading...",
|
||||
"video.close": "Close video",
|
||||
"video.exit_fullscreen": "Exit full screen",
|
||||
"video.expand": "Expand video",
|
||||
"video.fullscreen": "Full screen",
|
||||
"video.hide": "Hide video",
|
||||
"video.mute": "Mute sound",
|
||||
"upload_progress.label": "Feltöltés...",
|
||||
"video.close": "Videó bezárása",
|
||||
"video.exit_fullscreen": "Kilépés teljes képernyőből",
|
||||
"video.expand": "Videó nagyítása",
|
||||
"video.fullscreen": "Teljes képernyő",
|
||||
"video.hide": "Videó elrejtése",
|
||||
"video.mute": "Hang némitása",
|
||||
"video.pause": "Szünet",
|
||||
"video.play": "Lejátszás",
|
||||
"video.unmute": "Hang kinémítása"
|
||||
"video.unmute": "Hang némitásának vége"
|
||||
}
|
||||
|
|
|
@ -64,7 +64,7 @@
|
|||
"column_header.show_settings": "Ցուցադրել կարգավորումները",
|
||||
"column_header.unpin": "Հանել",
|
||||
"column_subheading.settings": "Կարգավորումներ",
|
||||
"community.column_settings.media_only": "Media Only",
|
||||
"community.column_settings.media_only": "Media only",
|
||||
"compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
|
||||
"compose_form.direct_message_warning_learn_more": "Learn more",
|
||||
"compose_form.hashtag_warning": "Այս թութը չի հաշվառվի որեւէ պիտակի տակ, քանզի այն ծածուկ է։ Միայն հրապարակային թթերը հնարավոր է որոնել պիտակներով։",
|
||||
|
@ -156,6 +156,7 @@
|
|||
"home.column_settings.basic": "Հիմնական",
|
||||
"home.column_settings.show_reblogs": "Ցուցադրել տարածածները",
|
||||
"home.column_settings.show_replies": "Ցուցադրել պատասխանները",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
|
||||
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
|
||||
|
@ -220,6 +221,7 @@
|
|||
"lists.new.title_placeholder": "Նոր ցանկի վերնագիր",
|
||||
"lists.search": "Փնտրել քո հետեւած մարդկանց մեջ",
|
||||
"lists.subheading": "Քո ցանկերը",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"loading_indicator.label": "Բեռնվում է…",
|
||||
"media_gallery.toggle_visible": "Ցուցադրել/թաքցնել",
|
||||
"missing_indicator.label": "Չգտնվեց",
|
||||
|
@ -311,6 +313,7 @@
|
|||
"search_results.accounts": "People",
|
||||
"search_results.hashtags": "Hashtags",
|
||||
"search_results.statuses": "Toots",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"search_results.total": "{count, number} {count, plural, one {արդյունք} other {արդյունք}}",
|
||||
"status.admin_account": "Open moderation interface for @{name}",
|
||||
"status.admin_status": "Open this status in the moderation interface",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"account.add_or_remove_from_list": "Add or Remove from lists",
|
||||
"account.add_or_remove_from_list": "Tambah atau Hapus dari daftar",
|
||||
"account.badges.bot": "Bot",
|
||||
"account.block": "Blokir @{name}",
|
||||
"account.block_domain": "Sembunyikan segalanya dari {domain}",
|
||||
|
@ -7,23 +7,23 @@
|
|||
"account.direct": "Direct Message @{name}",
|
||||
"account.domain_blocked": "Domain disembunyikan",
|
||||
"account.edit_profile": "Ubah profil",
|
||||
"account.endorse": "Feature on profile",
|
||||
"account.endorse": "Tampilkan di profil",
|
||||
"account.follow": "Ikuti",
|
||||
"account.followers": "Pengikut",
|
||||
"account.followers.empty": "No one follows this user yet.",
|
||||
"account.followers.empty": "Tidak ada satupun yang mengkuti pengguna ini saat ini.",
|
||||
"account.follows": "Mengikuti",
|
||||
"account.follows.empty": "This user doesn't follow anyone yet.",
|
||||
"account.follows.empty": "Pengguna ini belum mengikuti siapapun.",
|
||||
"account.follows_you": "Mengikuti anda",
|
||||
"account.hide_reblogs": "Sembunyikan boosts dari @{name}",
|
||||
"account.link_verified_on": "Ownership of this link was checked on {date}",
|
||||
"account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
|
||||
"account.link_verified_on": "Kepemilikan tautan ini telah dicek pada {date}",
|
||||
"account.locked_info": "Status privasi akun ini disetel untuk dikunci. Pemilik secara manual meninjau siapa yang dapat mengikuti mereka.",
|
||||
"account.media": "Media",
|
||||
"account.mention": "Balasan @{name}",
|
||||
"account.moved_to": "{name} telah pindah ke:",
|
||||
"account.mute": "Bisukan @{name}",
|
||||
"account.mute_notifications": "Sembunyikan notifikasi dari @{name}",
|
||||
"account.muted": "Dibisukan",
|
||||
"account.posts": "Toots",
|
||||
"account.posts": "Toot",
|
||||
"account.posts_with_replies": "Postingan dengan balasan",
|
||||
"account.report": "Laporkan @{name}",
|
||||
"account.requested": "Menunggu persetujuan. Klik untuk membatalkan permintaan",
|
||||
|
@ -31,23 +31,23 @@
|
|||
"account.show_reblogs": "Tampilkan boost dari @{name}",
|
||||
"account.unblock": "Hapus blokir @{name}",
|
||||
"account.unblock_domain": "Tampilkan {domain}",
|
||||
"account.unendorse": "Don't feature on profile",
|
||||
"account.unendorse": "Jangan tampilkan di profil",
|
||||
"account.unfollow": "Berhenti mengikuti",
|
||||
"account.unmute": "Berhenti membisukan @{name}",
|
||||
"account.unmute_notifications": "Munculkan notifikasi dari @{name}",
|
||||
"alert.unexpected.message": "An unexpected error occurred.",
|
||||
"alert.unexpected.message": "Terjadi kesalahan yang tidak terduga.",
|
||||
"alert.unexpected.title": "Oops!",
|
||||
"boost_modal.combo": "Anda dapat menekan {combo} untuk melewati ini",
|
||||
"bundle_column_error.body": "Kesalahan terjadi saat memuat komponen ini.",
|
||||
"bundle_column_error.retry": "Coba lagi",
|
||||
"bundle_column_error.title": "Network error",
|
||||
"bundle_column_error.title": "Kesalahan jaringan",
|
||||
"bundle_modal_error.close": "Tutup",
|
||||
"bundle_modal_error.message": "Kesalahan terjadi saat memuat komponen ini.",
|
||||
"bundle_modal_error.retry": "Coba lagi",
|
||||
"column.blocks": "Pengguna diblokir",
|
||||
"column.community": "Linimasa Lokal",
|
||||
"column.direct": "Direct messages",
|
||||
"column.domain_blocks": "Hidden domains",
|
||||
"column.direct": "Pesan langsung",
|
||||
"column.domain_blocks": "Topik tersembunyi",
|
||||
"column.favourites": "Favorit",
|
||||
"column.follow_requests": "Permintaan mengikuti",
|
||||
"column.home": "Beranda",
|
||||
|
@ -64,41 +64,41 @@
|
|||
"column_header.show_settings": "Tampilkan pengaturan",
|
||||
"column_header.unpin": "Lepaskan",
|
||||
"column_subheading.settings": "Pengaturan",
|
||||
"community.column_settings.media_only": "Media Only",
|
||||
"community.column_settings.media_only": "Hanya media",
|
||||
"compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
|
||||
"compose_form.direct_message_warning_learn_more": "Learn more",
|
||||
"compose_form.direct_message_warning_learn_more": "Pelajari selengkapnya",
|
||||
"compose_form.hashtag_warning": "Toot ini tidak akan ada dalam daftar tagar manapun karena telah di set sebagai tidak terdaftar. Hanya postingan publik yang bisa dicari dengan tagar.",
|
||||
"compose_form.lock_disclaimer": "Akun anda tidak {locked}. Semua orang dapat mengikuti anda untuk melihat postingan khusus untuk pengikut anda.",
|
||||
"compose_form.lock_disclaimer.lock": "terkunci",
|
||||
"compose_form.placeholder": "Apa yang ada di pikiran anda?",
|
||||
"compose_form.poll.add_option": "Add a choice",
|
||||
"compose_form.poll.duration": "Poll duration",
|
||||
"compose_form.poll.option_placeholder": "Choice {number}",
|
||||
"compose_form.poll.remove_option": "Remove this choice",
|
||||
"compose_form.poll.add_option": "Tambahkan pilihan",
|
||||
"compose_form.poll.duration": "Durasi jajak pendapat",
|
||||
"compose_form.poll.option_placeholder": "Pilihan {number}",
|
||||
"compose_form.poll.remove_option": "Hapus opsi ini",
|
||||
"compose_form.publish": "Toot",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.sensitive.hide": "Mark media as sensitive",
|
||||
"compose_form.sensitive.hide": "Tandai sebagai media sensitif",
|
||||
"compose_form.sensitive.marked": "Sumber ini telah ditandai sebagai sumber sensitif.",
|
||||
"compose_form.sensitive.unmarked": "Sumber ini tidak ditandai sebagai sumber sensitif",
|
||||
"compose_form.spoiler.marked": "Teks disembunyikan dibalik peringatan",
|
||||
"compose_form.spoiler.unmarked": "Teks tidak tersembunyi",
|
||||
"compose_form.spoiler_placeholder": "Peringatan konten",
|
||||
"confirmation_modal.cancel": "Batal",
|
||||
"confirmations.block.block_and_report": "Block & Report",
|
||||
"confirmations.block.block_and_report": "Blokir & Laporkan",
|
||||
"confirmations.block.confirm": "Blokir",
|
||||
"confirmations.block.message": "Apa anda yakin ingin memblokir {name}?",
|
||||
"confirmations.delete.confirm": "Hapus",
|
||||
"confirmations.delete.message": "Apa anda yakin untuk menghapus status ini?",
|
||||
"confirmations.delete_list.confirm": "Delete",
|
||||
"confirmations.delete_list.confirm": "Hapus",
|
||||
"confirmations.delete_list.message": "Apakah anda yakin untuk menghapus daftar ini secara permanen?",
|
||||
"confirmations.domain_block.confirm": "Sembunyikan keseluruhan domain",
|
||||
"confirmations.domain_block.message": "Apakah anda benar benar yakin untuk memblokir keseluruhan {domain}? Dalam kasus tertentu beberapa pemblokiran atau penyembunyian lebih baik.",
|
||||
"confirmations.mute.confirm": "Bisukan",
|
||||
"confirmations.mute.message": "Apa anda yakin ingin membisukan {name}?",
|
||||
"confirmations.redraft.confirm": "Delete & redraft",
|
||||
"confirmations.redraft.confirm": "Hapus dan konsep ulang",
|
||||
"confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? You will lose all replies, boosts and favourites to it.",
|
||||
"confirmations.reply.confirm": "Reply",
|
||||
"confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
|
||||
"confirmations.reply.confirm": "Balas",
|
||||
"confirmations.reply.message": "Membalas sekarang akan menimpa pesan yang sedang Anda buat. Anda yakin ingin melanjutkan?",
|
||||
"confirmations.unfollow.confirm": "Berhenti mengikuti",
|
||||
"confirmations.unfollow.message": "Apakah anda ingin berhenti mengikuti {name}?",
|
||||
"embed.instructions": "Sematkan status ini di website anda dengan menyalin kode di bawah ini.",
|
||||
|
@ -117,38 +117,38 @@
|
|||
"emoji_button.search_results": "Hasil pencarian",
|
||||
"emoji_button.symbols": "Simbol",
|
||||
"emoji_button.travel": "Tempat Wisata",
|
||||
"empty_column.account_timeline": "No toots here!",
|
||||
"empty_column.account_unavailable": "Profile unavailable",
|
||||
"empty_column.blocks": "You haven't blocked any users yet.",
|
||||
"empty_column.account_timeline": "Tidak ada toot di sini!",
|
||||
"empty_column.account_unavailable": "Profil tidak tersedia",
|
||||
"empty_column.blocks": "Anda belum memblokir siapapun.",
|
||||
"empty_column.community": "Linimasa lokal masih kosong. Tulis sesuatu secara publik dan buat roda berputar!",
|
||||
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
|
||||
"empty_column.domain_blocks": "There are no hidden domains yet.",
|
||||
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
|
||||
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
|
||||
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
|
||||
"empty_column.direct": "Anda belum memiliki pesan langsung. Ketika Anda mengirim atau menerimanya, maka akan muncul di sini.",
|
||||
"empty_column.domain_blocks": "Tidak ada topik tersembunyi.",
|
||||
"empty_column.favourited_statuses": "Anda belum memiliki toot favorit. Ketika Anda mengirim atau menerimanya, maka akan muncul di sini.",
|
||||
"empty_column.favourites": "Tidak ada seorangpun yang memfavoritkan toot ini. Ketika seseorang melakukannya, maka akan muncul disini.",
|
||||
"empty_column.follow_requests": "Anda belum memiliki permintaan mengikuti. Ketika Anda menerimanya, maka akan muncul disini.",
|
||||
"empty_column.hashtag": "Tidak ada apapun dalam hashtag ini.",
|
||||
"empty_column.home": "Linimasa anda kosong! Kunjungi {public} atau gunakan pencarian untuk memulai dan bertemu pengguna lain.",
|
||||
"empty_column.home.public_timeline": "linimasa publik",
|
||||
"empty_column.list": "Tidak ada postingan di list ini. Ketika anggota dari list ini memposting status baru, status tersebut akan tampil disini.",
|
||||
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
|
||||
"empty_column.mutes": "You haven't muted any users yet.",
|
||||
"empty_column.lists": "Anda belum memiliki daftar. Ketika Anda membuatnya, maka akan muncul disini.",
|
||||
"empty_column.mutes": "Anda belum membisukan siapapun.",
|
||||
"empty_column.notifications": "Anda tidak memiliki notifikasi apapun. Berinteraksi dengan orang lain untuk memulai percakapan.",
|
||||
"empty_column.public": "Tidak ada apapun disini! Tulis sesuatu, atau ikuti pengguna lain dari server lain untuk mengisi ini",
|
||||
"follow_request.authorize": "Izinkan",
|
||||
"follow_request.reject": "Tolak",
|
||||
"getting_started.developers": "Developers",
|
||||
"getting_started.directory": "Profile directory",
|
||||
"getting_started.documentation": "Documentation",
|
||||
"getting_started.developers": "Pengembang",
|
||||
"getting_started.directory": "Direktori profil",
|
||||
"getting_started.documentation": "Dokumentasi",
|
||||
"getting_started.heading": "Mulai",
|
||||
"getting_started.invite": "Invite people",
|
||||
"getting_started.invite": "Undang orang",
|
||||
"getting_started.open_source_notice": "Mastodon adalah perangkat lunak yang bersifat terbuka. Anda dapat berkontribusi atau melaporkan permasalahan/bug di Github {github}.",
|
||||
"getting_started.security": "Security",
|
||||
"getting_started.terms": "Terms of service",
|
||||
"hashtag.column_header.tag_mode.all": "and {additional}",
|
||||
"hashtag.column_header.tag_mode.any": "or {additional}",
|
||||
"hashtag.column_header.tag_mode.none": "without {additional}",
|
||||
"hashtag.column_settings.select.no_options_message": "No suggestions found",
|
||||
"hashtag.column_settings.select.placeholder": "Enter hashtags…",
|
||||
"getting_started.security": "Keamanan",
|
||||
"getting_started.terms": "Ketentuan layanan",
|
||||
"hashtag.column_header.tag_mode.all": "dan {additional}",
|
||||
"hashtag.column_header.tag_mode.any": "atau {additional}",
|
||||
"hashtag.column_header.tag_mode.none": "tanpa {additional}",
|
||||
"hashtag.column_settings.select.no_options_message": "Tidak ada saran yang ditemukan",
|
||||
"hashtag.column_settings.select.placeholder": "Masukkan tagar…",
|
||||
"hashtag.column_settings.tag_mode.all": "All of these",
|
||||
"hashtag.column_settings.tag_mode.any": "Any of these",
|
||||
"hashtag.column_settings.tag_mode.none": "None of these",
|
||||
|
@ -156,6 +156,7 @@
|
|||
"home.column_settings.basic": "Dasar",
|
||||
"home.column_settings.show_reblogs": "Tampilkan boost",
|
||||
"home.column_settings.show_replies": "Tampilkan balasan",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
|
||||
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
|
||||
|
@ -220,6 +221,7 @@
|
|||
"lists.new.title_placeholder": "New list title",
|
||||
"lists.search": "Search among people you follow",
|
||||
"lists.subheading": "Your lists",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"loading_indicator.label": "Tunggu sebentar...",
|
||||
"media_gallery.toggle_visible": "Tampil/Sembunyikan",
|
||||
"missing_indicator.label": "Tidak ditemukan",
|
||||
|
@ -311,6 +313,7 @@
|
|||
"search_results.accounts": "People",
|
||||
"search_results.hashtags": "Hashtags",
|
||||
"search_results.statuses": "Toots",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"search_results.total": "{count, number} {count, plural, one {hasil} other {hasil}}",
|
||||
"status.admin_account": "Open moderation interface for @{name}",
|
||||
"status.admin_status": "Open this status in the moderation interface",
|
||||
|
|
|
@ -64,7 +64,7 @@
|
|||
"column_header.show_settings": "Show settings",
|
||||
"column_header.unpin": "Unpin",
|
||||
"column_subheading.settings": "Settings",
|
||||
"community.column_settings.media_only": "Media Only",
|
||||
"community.column_settings.media_only": "Media only",
|
||||
"compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
|
||||
"compose_form.direct_message_warning_learn_more": "Learn more",
|
||||
"compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
|
||||
|
@ -156,6 +156,7 @@
|
|||
"home.column_settings.basic": "Simpla",
|
||||
"home.column_settings.show_reblogs": "Montrar repeti",
|
||||
"home.column_settings.show_replies": "Montrar respondi",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
|
||||
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
|
||||
|
@ -220,6 +221,7 @@
|
|||
"lists.new.title_placeholder": "New list title",
|
||||
"lists.search": "Search among people you follow",
|
||||
"lists.subheading": "Your lists",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"loading_indicator.label": "Kargante...",
|
||||
"media_gallery.toggle_visible": "Chanjar videbleso",
|
||||
"missing_indicator.label": "Ne trovita",
|
||||
|
@ -311,6 +313,7 @@
|
|||
"search_results.accounts": "People",
|
||||
"search_results.hashtags": "Hashtags",
|
||||
"search_results.statuses": "Toots",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"search_results.total": "{count, number} {count, plural, one {rezulto} other {rezulti}}",
|
||||
"status.admin_account": "Open moderation interface for @{name}",
|
||||
"status.admin_status": "Open this status in the moderation interface",
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
"account.block": "Blocca @{name}",
|
||||
"account.block_domain": "Nascondi tutto da {domain}",
|
||||
"account.blocked": "Bloccato",
|
||||
"account.direct": "Invia messaggio diretto a @{name}",
|
||||
"account.direct": "Invia messaggio privato a @{name}",
|
||||
"account.domain_blocked": "Dominio nascosto",
|
||||
"account.edit_profile": "Modifica profilo",
|
||||
"account.endorse": "Metti in evidenza sul profilo",
|
||||
|
@ -40,7 +40,7 @@
|
|||
"boost_modal.combo": "Puoi premere {combo} per saltare questo passaggio la prossima volta",
|
||||
"bundle_column_error.body": "E' avvenuto un errore durante il caricamento di questo componente.",
|
||||
"bundle_column_error.retry": "Riprova",
|
||||
"bundle_column_error.title": "Network error",
|
||||
"bundle_column_error.title": "Errore di rete",
|
||||
"bundle_modal_error.close": "Chiudi",
|
||||
"bundle_modal_error.message": "C'è stato un errore mentre questo componente veniva caricato.",
|
||||
"bundle_modal_error.retry": "Riprova",
|
||||
|
@ -71,20 +71,20 @@
|
|||
"compose_form.lock_disclaimer": "Il tuo account non è {bloccato}. Chiunque può decidere di seguirti per vedere i tuoi post per soli seguaci.",
|
||||
"compose_form.lock_disclaimer.lock": "bloccato",
|
||||
"compose_form.placeholder": "A cosa stai pensando?",
|
||||
"compose_form.poll.add_option": "Add a choice",
|
||||
"compose_form.poll.duration": "Poll duration",
|
||||
"compose_form.poll.option_placeholder": "Choice {number}",
|
||||
"compose_form.poll.remove_option": "Remove this choice",
|
||||
"compose_form.poll.add_option": "Aggiungi una scelta",
|
||||
"compose_form.poll.duration": "Durata del sondaggio",
|
||||
"compose_form.poll.option_placeholder": "Scelta {number}",
|
||||
"compose_form.poll.remove_option": "Rimuovi questa scelta",
|
||||
"compose_form.publish": "Toot",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.sensitive.hide": "Mark media as sensitive",
|
||||
"compose_form.sensitive.hide": "Segna media come sensibile",
|
||||
"compose_form.sensitive.marked": "Questo media è contrassegnato come sensibile",
|
||||
"compose_form.sensitive.unmarked": "Questo media non è contrassegnato come sensibile",
|
||||
"compose_form.spoiler.marked": "Il testo è nascosto dall'avviso",
|
||||
"compose_form.spoiler.unmarked": "Il testo non è nascosto",
|
||||
"compose_form.spoiler_placeholder": "Content warning",
|
||||
"confirmation_modal.cancel": "Annulla",
|
||||
"confirmations.block.block_and_report": "Block & Report",
|
||||
"confirmations.block.block_and_report": "Blocca & Segnala",
|
||||
"confirmations.block.confirm": "Blocca",
|
||||
"confirmations.block.message": "Sei sicuro di voler bloccare {name}?",
|
||||
"confirmations.delete.confirm": "Cancella",
|
||||
|
@ -118,10 +118,10 @@
|
|||
"emoji_button.symbols": "Simboli",
|
||||
"emoji_button.travel": "Viaggi e luoghi",
|
||||
"empty_column.account_timeline": "Non ci sono toot qui!",
|
||||
"empty_column.account_unavailable": "Profile unavailable",
|
||||
"empty_column.account_unavailable": "Profilo non disponibile",
|
||||
"empty_column.blocks": "Non hai ancora bloccato nessun utente.",
|
||||
"empty_column.community": "La timeline locale è vuota. Condividi qualcosa pubblicamente per dare inizio alla festa!",
|
||||
"empty_column.direct": "Non hai ancora nessun messaggio diretto. Quando ne manderai o riceverai qualcuno, apparirà qui.",
|
||||
"empty_column.direct": "Non hai ancora nessun messaggio privato. Quando ne manderai o riceverai qualcuno, apparirà qui.",
|
||||
"empty_column.domain_blocks": "Non vi sono domini nascosti.",
|
||||
"empty_column.favourited_statuses": "Non hai ancora segnato nessun toot come apprezzato. Quando lo farai, comparirà qui.",
|
||||
"empty_column.favourites": "Nessuno ha ancora segnato questo toot come apprezzato. Quando qualcuno lo farà, apparirà qui.",
|
||||
|
@ -156,15 +156,16 @@
|
|||
"home.column_settings.basic": "Semplice",
|
||||
"home.column_settings.show_reblogs": "Mostra post condivisi",
|
||||
"home.column_settings.show_replies": "Mostra risposte",
|
||||
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
|
||||
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"intervals.full.days": "{number, plural, one {# giorno} other {# giorni}}",
|
||||
"intervals.full.hours": "{number, plural, one {# ora} other {# ore}}",
|
||||
"intervals.full.minutes": "{number, plural, one {# minuto} other {# minuti}}",
|
||||
"introduction.federation.action": "Avanti",
|
||||
"introduction.federation.federated.headline": "Federated",
|
||||
"introduction.federation.federated.headline": "Federato",
|
||||
"introduction.federation.federated.text": "I post pubblici provenienti da altri server del fediverse saranno mostrati nella timeline federata.",
|
||||
"introduction.federation.home.headline": "Home",
|
||||
"introduction.federation.home.text": "I post scritti da persone che segui saranno mostrati nella timeline home. Puoi seguire chiunque su qualunque server!",
|
||||
"introduction.federation.local.headline": "Local",
|
||||
"introduction.federation.local.headline": "Locale",
|
||||
"introduction.federation.local.text": "I post pubblici scritti da persone sul tuo stesso server saranno mostrati nella timeline locale.",
|
||||
"introduction.interactions.action": "Finisci il tutorial!",
|
||||
"introduction.interactions.favourite.headline": "Apprezza",
|
||||
|
@ -204,22 +205,24 @@
|
|||
"keyboard_shortcuts.search": "per spostare il focus sulla ricerca",
|
||||
"keyboard_shortcuts.start": "per aprire la colonna \"Come iniziare\"",
|
||||
"keyboard_shortcuts.toggle_hidden": "per mostrare/nascondere il testo dei CW",
|
||||
"keyboard_shortcuts.toggle_sensitivity": "mostrare/nascondere media",
|
||||
"keyboard_shortcuts.toot": "per iniziare a scrivere un toot completamente nuovo",
|
||||
"keyboard_shortcuts.unfocus": "per uscire dall'area di composizione o dalla ricerca",
|
||||
"keyboard_shortcuts.up": "per spostarsi in alto nella lista",
|
||||
"lightbox.close": "Chiudi",
|
||||
"lightbox.next": "Successivo",
|
||||
"lightbox.previous": "Precedente",
|
||||
"lightbox.view_context": "View context",
|
||||
"lightbox.view_context": "Mostra contesto",
|
||||
"lists.account.add": "Aggiungi alla lista",
|
||||
"lists.account.remove": "Togli dalla lista",
|
||||
"lists.delete": "Delete list",
|
||||
"lists.delete": "Elimina lista",
|
||||
"lists.edit": "Modifica lista",
|
||||
"lists.edit.submit": "Cambia titolo",
|
||||
"lists.new.create": "Aggiungi lista",
|
||||
"lists.new.title_placeholder": "Titolo della nuova lista",
|
||||
"lists.search": "Cerca tra le persone che segui",
|
||||
"lists.subheading": "Le tue liste",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"loading_indicator.label": "Caricamento...",
|
||||
"media_gallery.toggle_visible": "Imposta visibilità",
|
||||
"missing_indicator.label": "Non trovato",
|
||||
|
@ -236,20 +239,22 @@
|
|||
"navigation_bar.favourites": "Apprezzati",
|
||||
"navigation_bar.filters": "Parole silenziate",
|
||||
"navigation_bar.follow_requests": "Richieste di amicizia",
|
||||
"navigation_bar.follows_and_followers": "Follows and followers",
|
||||
"navigation_bar.info": "Informazioni su questo server",
|
||||
"navigation_bar.keyboard_shortcuts": "Tasti di scelta rapida",
|
||||
"navigation_bar.lists": "Liste",
|
||||
"navigation_bar.logout": "Esci",
|
||||
"navigation_bar.mutes": "Utenti silenziati",
|
||||
"navigation_bar.personal": "Personal",
|
||||
"navigation_bar.personal": "Personale",
|
||||
"navigation_bar.pins": "Toot fissati in cima",
|
||||
"navigation_bar.preferences": "Impostazioni",
|
||||
"navigation_bar.profile_directory": "Directory dei profili",
|
||||
"navigation_bar.public_timeline": "Timeline federata",
|
||||
"navigation_bar.security": "Sicurezza",
|
||||
"notification.favourite": "{name} ha apprezzato il tuo post",
|
||||
"notification.follow": "{name} ha iniziato a seguirti",
|
||||
"notification.mention": "{name} ti ha menzionato",
|
||||
"notification.poll": "A poll you have voted in has ended",
|
||||
"notification.poll": "Un sondaggio in cui hai votato è terminato",
|
||||
"notification.reblog": "{name} ha condiviso il tuo post",
|
||||
"notifications.clear": "Cancella notifiche",
|
||||
"notifications.clear_confirmation": "Vuoi davvero cancellare tutte le notifiche?",
|
||||
|
@ -260,7 +265,7 @@
|
|||
"notifications.column_settings.filter_bar.show": "Mostra",
|
||||
"notifications.column_settings.follow": "Nuovi seguaci:",
|
||||
"notifications.column_settings.mention": "Menzioni:",
|
||||
"notifications.column_settings.poll": "Poll results:",
|
||||
"notifications.column_settings.poll": "Risultati del sondaggio:",
|
||||
"notifications.column_settings.push": "Notifiche push",
|
||||
"notifications.column_settings.reblog": "Post condivisi:",
|
||||
"notifications.column_settings.show": "Mostra in colonna",
|
||||
|
@ -270,17 +275,17 @@
|
|||
"notifications.filter.favourites": "Apprezzati",
|
||||
"notifications.filter.follows": "Seguaci",
|
||||
"notifications.filter.mentions": "Menzioni",
|
||||
"notifications.filter.polls": "Poll results",
|
||||
"notifications.filter.polls": "Risultati del sondaggio",
|
||||
"notifications.group": "{count} notifiche",
|
||||
"poll.closed": "Chiuso",
|
||||
"poll.refresh": "Aggiorna",
|
||||
"poll.total_votes": "{count, plural, one {# voto} other {# voti}}",
|
||||
"poll.vote": "Vota",
|
||||
"poll_button.add_poll": "Add a poll",
|
||||
"poll_button.remove_poll": "Remove poll",
|
||||
"poll_button.add_poll": "Aggiungi un sondaggio",
|
||||
"poll_button.remove_poll": "Rimuovi sondaggio",
|
||||
"privacy.change": "Modifica privacy del post",
|
||||
"privacy.direct.long": "Invia solo a utenti menzionati",
|
||||
"privacy.direct.short": "Diretto",
|
||||
"privacy.direct.short": "Diretto in privato",
|
||||
"privacy.private.long": "Invia solo ai seguaci",
|
||||
"privacy.private.short": "Privato",
|
||||
"privacy.public.long": "Invia alla timeline pubblica",
|
||||
|
@ -289,8 +294,8 @@
|
|||
"privacy.unlisted.short": "Non elencato",
|
||||
"regeneration_indicator.label": "Caricamento in corso…",
|
||||
"regeneration_indicator.sublabel": "Stiamo preparando il tuo home feed!",
|
||||
"relative_time.days": "{number}d",
|
||||
"relative_time.hours": "{number}h",
|
||||
"relative_time.days": "{number}g",
|
||||
"relative_time.hours": "{number}o",
|
||||
"relative_time.just_now": "ora",
|
||||
"relative_time.minutes": "{number}m",
|
||||
"relative_time.seconds": "{number}s",
|
||||
|
@ -304,13 +309,14 @@
|
|||
"search.placeholder": "Cerca",
|
||||
"search_popout.search_format": "Formato di ricerca avanzato",
|
||||
"search_popout.tips.full_text": "Testo semplice per trovare gli status che hai scritto, segnato come apprezzati, condiviso o in cui sei stato citato, e inoltre i nomi utente, nomi visualizzati e hashtag che lo contengono.",
|
||||
"search_popout.tips.hashtag": "hashtag",
|
||||
"search_popout.tips.status": "status",
|
||||
"search_popout.tips.hashtag": "etichetta",
|
||||
"search_popout.tips.status": "stato",
|
||||
"search_popout.tips.text": "Testo semplice per trovare nomi visualizzati, nomi utente e hashtag che lo contengono",
|
||||
"search_popout.tips.user": "utente",
|
||||
"search_results.accounts": "Gente",
|
||||
"search_results.hashtags": "Hashtag",
|
||||
"search_results.statuses": "Toot",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"search_results.total": "{count} {count, plural, one {risultato} other {risultati}}",
|
||||
"status.admin_account": "Apri interfaccia di moderazione per @{name}",
|
||||
"status.admin_status": "Apri questo status nell'interfaccia di moderazione",
|
||||
|
@ -320,7 +326,7 @@
|
|||
"status.copy": "Copia link allo status",
|
||||
"status.delete": "Elimina",
|
||||
"status.detailed_status": "Vista conversazione dettagliata",
|
||||
"status.direct": "Messaggio diretto @{name}",
|
||||
"status.direct": "Messaggio privato @{name}",
|
||||
"status.embed": "Incorpora",
|
||||
"status.favourite": "Apprezzato",
|
||||
"status.filtered": "Filtrato",
|
||||
|
@ -368,7 +374,7 @@
|
|||
"upload_area.title": "Trascina per caricare",
|
||||
"upload_button.label": "Aggiungi file multimediale",
|
||||
"upload_error.limit": "Limite al caricamento di file superato.",
|
||||
"upload_error.poll": "File upload not allowed with polls.",
|
||||
"upload_error.poll": "Caricamento file non consentito nei sondaggi.",
|
||||
"upload_form.description": "Descrizione per utenti con disabilità visive",
|
||||
"upload_form.focus": "Modifica anteprima",
|
||||
"upload_form.undo": "Cancella",
|
||||
|
|
|
@ -160,6 +160,7 @@
|
|||
"home.column_settings.basic": "基本設定",
|
||||
"home.column_settings.show_reblogs": "ブースト表示",
|
||||
"home.column_settings.show_replies": "返信表示",
|
||||
"home.column_settings.update_live": "Update in real-time",
|
||||
"intervals.full.days": "{number}日",
|
||||
"intervals.full.hours": "{number}時間",
|
||||
"intervals.full.minutes": "{number}分",
|
||||
|
@ -225,6 +226,7 @@
|
|||
"lists.new.title_placeholder": "新規リスト名",
|
||||
"lists.search": "フォローしている人の中から検索",
|
||||
"lists.subheading": "あなたのリスト",
|
||||
"load_pending": "{count, plural, one {# new item} other {# new items}}",
|
||||
"loading_indicator.label": "読み込み中...",
|
||||
"media_gallery.toggle_visible": "表示切り替え",
|
||||
"missing_indicator.label": "見つかりません",
|
||||
|
@ -318,6 +320,7 @@
|
|||
"search_results.accounts": "人々",
|
||||
"search_results.hashtags": "ハッシュタグ",
|
||||
"search_results.statuses": "トゥート",
|
||||
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
|
||||
"search_results.total": "{count, number}件の結果",
|
||||
"status.admin_account": "@{name} のモデレーション画面を開く",
|
||||
"status.admin_status": "このトゥートをモデレーション画面で開く",
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue