Merge commit '3a1a6ba39e' into kb_migration_development

This commit is contained in:
KMY 2023-05-01 15:08:16 +09:00
commit 81a7272ce7
288 changed files with 1345 additions and 1343 deletions

View file

@ -26,7 +26,6 @@ services:
ports: ports:
- '127.0.0.1:3000:3000' - '127.0.0.1:3000:3000'
- '127.0.0.1:4000:4000' - '127.0.0.1:4000:4000'
- '127.0.0.1:80:3000'
networks: networks:
- external_network - external_network
- internal_network - internal_network

View file

@ -7,6 +7,7 @@ module.exports = {
'plugin:jsx-a11y/recommended', 'plugin:jsx-a11y/recommended',
'plugin:import/recommended', 'plugin:import/recommended',
'plugin:promise/recommended', 'plugin:promise/recommended',
'plugin:jsdoc/recommended',
], ],
env: { env: {
@ -238,6 +239,14 @@ module.exports = {
'formatjs/no-useless-message': 'error', 'formatjs/no-useless-message': 'error',
'formatjs/prefer-formatted-message': 'error', 'formatjs/prefer-formatted-message': 'error',
'formatjs/prefer-pound-in-plural': 'error', 'formatjs/prefer-pound-in-plural': 'error',
'jsdoc/check-types': 'off',
'jsdoc/no-undefined-types': 'off',
'jsdoc/require-jsdoc': 'off',
'jsdoc/require-param-description': 'off',
'jsdoc/require-property-description': 'off',
'jsdoc/require-returns-description': 'off',
'jsdoc/require-returns': 'off',
}, },
overrides: [ overrides: [
@ -270,10 +279,13 @@ module.exports = {
'plugin:import/recommended', 'plugin:import/recommended',
'plugin:import/typescript', 'plugin:import/typescript',
'plugin:promise/recommended', 'plugin:promise/recommended',
'plugin:jsdoc/recommended',
], ],
rules: { rules: {
'@typescript-eslint/no-explicit-any': 'off', '@typescript-eslint/no-explicit-any': 'off',
'jsdoc/require-jsdoc': 'off',
}, },
}, },
{ {

View file

@ -57,6 +57,7 @@ Lint/UselessAccessModifier:
# https://docs.rubocop.org/rubocop/cops_metrics.html#metricsabcsize # https://docs.rubocop.org/rubocop/cops_metrics.html#metricsabcsize
Metrics/AbcSize: Metrics/AbcSize:
Exclude: Exclude:
- 'app/serializers/initial_state_serializer.rb'
- 'lib/**/*cli*.rb' - 'lib/**/*cli*.rb'
- db/*migrate/**/* - db/*migrate/**/*
@ -109,15 +110,19 @@ Metrics/ClassLength:
- 'app/controllers/auth/sessions_controller.rb' - 'app/controllers/auth/sessions_controller.rb'
- 'app/lib/activitypub/activity.rb' - 'app/lib/activitypub/activity.rb'
- 'app/lib/activitypub/activity/create.rb' - 'app/lib/activitypub/activity/create.rb'
- 'app/lib/activitypub/activity/undo.rb'
- 'app/lib/activitypub/tag_manager.rb' - 'app/lib/activitypub/tag_manager.rb'
- 'app/lib/feed_manager.rb' - 'app/lib/feed_manager.rb'
- 'app/lib/link_details_extractor.rb' - 'app/lib/link_details_extractor.rb'
- 'app/lib/request.rb' - 'app/lib/request.rb'
- 'app/lib/status_reach_finder.rb'
- 'app/lib/text_formatter.rb' - 'app/lib/text_formatter.rb'
- 'app/lib/user_settings_decorator.rb' - 'app/lib/user_settings_decorator.rb'
- 'app/mailers/user_mailer.rb' - 'app/mailers/user_mailer.rb'
- 'app/models/account.rb' - 'app/models/account.rb'
- 'app/models/account_statuses_filter.rb'
- 'app/models/admin/account_action.rb' - 'app/models/admin/account_action.rb'
- 'app/models/antenna.rb'
- 'app/models/form/account_batch.rb' - 'app/models/form/account_batch.rb'
- 'app/models/media_attachment.rb' - 'app/models/media_attachment.rb'
- 'app/models/status.rb' - 'app/models/status.rb'
@ -136,6 +141,7 @@ Metrics/ClassLength:
- 'app/services/import_service.rb' - 'app/services/import_service.rb'
- 'app/services/notify_service.rb' - 'app/services/notify_service.rb'
- 'app/services/post_status_service.rb' - 'app/services/post_status_service.rb'
- 'app/services/search_service.rb'
- 'app/services/update_status_service.rb' - 'app/services/update_status_service.rb'
- 'lib/paperclip/color_extractor.rb' - 'lib/paperclip/color_extractor.rb'
@ -143,6 +149,8 @@ Metrics/ClassLength:
# https://docs.rubocop.org/rubocop/cops_metrics.html#metricscyclomaticcomplexity # https://docs.rubocop.org/rubocop/cops_metrics.html#metricscyclomaticcomplexity
Metrics/CyclomaticComplexity: Metrics/CyclomaticComplexity:
Exclude: Exclude:
- 'app/policies/status_policy.rb'
- 'app/services/activitypub/process_account_service.rb'
- lib/mastodon/*cli*.rb - lib/mastodon/*cli*.rb
- db/*migrate/**/* - db/*migrate/**/*
@ -158,6 +166,10 @@ Metrics/MethodLength:
Metrics/ModuleLength: Metrics/ModuleLength:
CountAsOne: [array, heredoc] CountAsOne: [array, heredoc]
Metrics/PerceivedComplexity:
Exclude:
- 'app/policies/status_policy.rb'
# Reason: Prevailing style uses numeric status codes, matches RSpec/Rails/HttpStatus # Reason: Prevailing style uses numeric status codes, matches RSpec/Rails/HttpStatus
# https://docs.rubocop.org/rubocop-rails/cops_rails.html#railshttpstatus # https://docs.rubocop.org/rubocop-rails/cops_rails.html#railshttpstatus
Rails/HttpStatus: Rails/HttpStatus:

View file

@ -425,10 +425,6 @@ RSpec/AnyInstance:
- 'spec/workers/activitypub/delivery_worker_spec.rb' - 'spec/workers/activitypub/delivery_worker_spec.rb'
- 'spec/workers/web/push_notification_worker_spec.rb' - 'spec/workers/web/push_notification_worker_spec.rb'
RSpec/BeforeAfterAll:
Exclude:
- 'spec/requests/localization_spec.rb'
# Configuration parameters: Prefixes, AllowedPatterns. # Configuration parameters: Prefixes, AllowedPatterns.
# Prefixes: when, with, without # Prefixes: when, with, without
RSpec/ContextWording: RSpec/ContextWording:
@ -857,7 +853,6 @@ RSpec/PendingWithoutReason:
Exclude: Exclude:
- 'spec/controllers/statuses_controller_spec.rb' - 'spec/controllers/statuses_controller_spec.rb'
- 'spec/models/account_spec.rb' - 'spec/models/account_spec.rb'
- 'spec/models/user_spec.rb'
# This cop supports unsafe autocorrection (--autocorrect-all). # This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: Strict, EnforcedStyle, AllowedExplicitMatchers. # Configuration parameters: Strict, EnforcedStyle, AllowedExplicitMatchers.
@ -1149,32 +1144,6 @@ RSpec/VerifiedDoubles:
- 'spec/workers/feed_insert_worker_spec.rb' - 'spec/workers/feed_insert_worker_spec.rb'
- 'spec/workers/regeneration_worker_spec.rb' - 'spec/workers/regeneration_worker_spec.rb'
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: ExpectedOrder, Include.
# ExpectedOrder: index, show, new, edit, create, update, destroy
# Include: app/controllers/**/*.rb
Rails/ActionOrder:
Exclude:
- 'app/controllers/admin/announcements_controller.rb'
- 'app/controllers/admin/roles_controller.rb'
- 'app/controllers/admin/rules_controller.rb'
- 'app/controllers/admin/warning_presets_controller.rb'
- 'app/controllers/admin/webhooks_controller.rb'
- 'app/controllers/api/v1/admin/domain_allows_controller.rb'
- 'app/controllers/api/v1/admin/domain_blocks_controller.rb'
- 'app/controllers/api/v1/admin/email_domain_blocks_controller.rb'
- 'app/controllers/api/v1/admin/ip_blocks_controller.rb'
- 'app/controllers/api/v1/filters_controller.rb'
- 'app/controllers/api/v1/media_controller.rb'
- 'app/controllers/api/v1/push/subscriptions_controller.rb'
- 'app/controllers/api/v2/filters/keywords_controller.rb'
- 'app/controllers/api/v2/filters/statuses_controller.rb'
- 'app/controllers/api/v2/filters_controller.rb'
- 'app/controllers/auth/registrations_controller.rb'
- 'app/controllers/filters_controller.rb'
- 'app/controllers/settings/applications_controller.rb'
- 'app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb'
# This cop supports safe autocorrection (--autocorrect). # This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: Include. # Configuration parameters: Include.
# Include: app/models/**/*.rb # Include: app/models/**/*.rb
@ -1230,22 +1199,6 @@ Rails/BulkChangeTable:
- 'db/migrate/20220303000827_add_ordered_media_attachment_ids_to_status_edits.rb' - 'db/migrate/20220303000827_add_ordered_media_attachment_ids_to_status_edits.rb'
- 'db/migrate/20220824164433_add_human_identifier_to_admin_action_logs.rb' - 'db/migrate/20220824164433_add_human_identifier_to_admin_action_logs.rb'
# This cop supports unsafe autocorrection (--autocorrect-all).
Rails/CompactBlank:
Exclude:
- 'app/helpers/application_helper.rb'
- 'app/helpers/statuses_helper.rb'
- 'app/models/concerns/attachmentable.rb'
- 'app/models/poll.rb'
- 'app/services/import_service.rb'
- 'config/initializers/paperclip.rb'
# This cop supports safe autocorrection (--autocorrect).
Rails/ContentTag:
Exclude:
- 'app/helpers/application_helper.rb'
- 'app/helpers/branding_helper.rb'
# Configuration parameters: Include. # Configuration parameters: Include.
# Include: db/migrate/*.rb # Include: db/migrate/*.rb
Rails/CreateTableWithTimestamps: Rails/CreateTableWithTimestamps:
@ -1368,39 +1321,11 @@ Rails/HasManyOrHasOneDependent:
- 'app/models/user.rb' - 'app/models/user.rb'
- 'app/models/web/push_subscription.rb' - 'app/models/web/push_subscription.rb'
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: Include.
# Include: spec/**/*, test/**/*
Rails/HttpPositionalArguments:
Exclude:
- 'spec/config/initializers/rack_attack_spec.rb'
# Configuration parameters: Include.
# Include: spec/**/*.rb, test/**/*.rb
Rails/I18nLocaleAssignment:
Exclude:
- 'spec/controllers/auth/registrations_controller_spec.rb'
- 'spec/helpers/application_helper_spec.rb'
- 'spec/requests/localization_spec.rb'
Rails/I18nLocaleTexts: Rails/I18nLocaleTexts:
Exclude: Exclude:
- 'lib/tasks/mastodon.rake' - 'lib/tasks/mastodon.rake'
- 'spec/helpers/flashes_helper_spec.rb' - 'spec/helpers/flashes_helper_spec.rb'
# Configuration parameters: IgnoreScopes, Include.
# Include: app/models/**/*.rb
Rails/InverseOf:
Exclude:
- 'app/models/appeal.rb'
- 'app/models/concerns/account_interactions.rb'
- 'app/models/custom_emoji.rb'
- 'app/models/domain_block.rb'
- 'app/models/follow_recommendation.rb'
- 'app/models/instance.rb'
- 'app/models/notification.rb'
- 'app/models/status.rb'
# Configuration parameters: Include. # Configuration parameters: Include.
# Include: app/controllers/**/*.rb, app/mailers/**/*.rb # Include: app/controllers/**/*.rb, app/mailers/**/*.rb
Rails/LexicallyScopedActionFilter: Rails/LexicallyScopedActionFilter:
@ -1428,23 +1353,10 @@ Rails/NegateInclude:
- 'app/workers/web/push_notification_worker.rb' - 'app/workers/web/push_notification_worker.rb'
- 'lib/paperclip/color_extractor.rb' - 'lib/paperclip/color_extractor.rb'
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: Include.
# Include: app/**/*.rb, config/**/*.rb, db/**/*.rb, lib/**/*.rb
Rails/Output:
Exclude:
- 'lib/mastodon/ip_blocks_cli.rb'
Rails/OutputSafety: Rails/OutputSafety:
Exclude: Exclude:
- 'config/initializers/simple_form.rb' - 'config/initializers/simple_form.rb'
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: NotNilAndNotEmpty, NotBlank, UnlessBlank.
Rails/Present:
Exclude:
- 'config/initializers/content_security_policy.rb'
# This cop supports unsafe autocorrection (--autocorrect-all). # This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: Include. # Configuration parameters: Include.
# Include: **/Rakefile, **/*.rake # Include: **/Rakefile, **/*.rake
@ -1528,15 +1440,6 @@ Rails/SkipsModelValidations:
- 'spec/services/follow_service_spec.rb' - 'spec/services/follow_service_spec.rb'
- 'spec/services/update_account_service_spec.rb' - 'spec/services/update_account_service_spec.rb'
# This cop supports unsafe autocorrection (--autocorrect-all).
Rails/SquishedSQLHeredocs:
Exclude:
- 'db/migrate/20170920024819_status_ids_to_timestamp_ids.rb'
- 'db/migrate/20180608213548_reject_following_blocked_users.rb'
- 'db/post_migrate/20190519130537_remove_boosts_widening_audience.rb'
- 'lib/mastodon/snowflake.rb'
- 'lib/tasks/tests.rake'
Rails/TransactionExitStatement: Rails/TransactionExitStatement:
Exclude: Exclude:
- 'app/lib/activitypub/activity/announce.rb' - 'app/lib/activitypub/activity/announce.rb'

View file

@ -31,7 +31,7 @@ class StatusesIndex < Chewy::Index
), ),
}, },
}, },
} }.freeze
PRODUCTION_SETTINGS = { PRODUCTION_SETTINGS = {
filter: { filter: {
@ -72,9 +72,9 @@ class StatusesIndex < Chewy::Index
split_mode: 'C', split_mode: 'C',
type: 'sudachi_tokenizer', type: 'sudachi_tokenizer',
discard_punctuation: 'true', discard_punctuation: 'true',
} },
} },
} }.freeze
settings index: { refresh_interval: '30s' }, analysis: Rails.env.development? ? DEVELOPMENT_SETTINGS : PRODUCTION_SETTINGS settings index: { refresh_interval: '30s' }, analysis: Rails.env.development? ? DEVELOPMENT_SETTINGS : PRODUCTION_SETTINGS

View file

@ -8,7 +8,7 @@ class AboutController < ApplicationController
before_action :set_instance_presenter before_action :set_instance_presenter
def show def show
expires_in 0, public: true unless user_signed_in? expires_in(15.seconds, public: true, stale_while_revalidate: 30.seconds, stale_if_error: 1.day) unless user_signed_in?
end end
private private

View file

@ -17,7 +17,7 @@ class AccountsController < ApplicationController
def show def show
respond_to do |format| respond_to do |format|
format.html do format.html do
expires_in 0, public: true unless user_signed_in? expires_in(15.seconds, public: true, stale_while_revalidate: 30.seconds, stale_if_error: 1.hour) unless user_signed_in?
@rss_url = rss_url @rss_url = rss_url
end end

View file

@ -14,6 +14,10 @@ class Admin::AnnouncementsController < Admin::BaseController
@announcement = Announcement.new @announcement = Announcement.new
end end
def edit
authorize :announcement, :update?
end
def create def create
authorize :announcement, :create? authorize :announcement, :create?
@ -28,10 +32,6 @@ class Admin::AnnouncementsController < Admin::BaseController
end end
end end
def edit
authorize :announcement, :update?
end
def update def update
authorize :announcement, :update? authorize :announcement, :update?

View file

@ -16,6 +16,10 @@ module Admin
@role = UserRole.new @role = UserRole.new
end end
def edit
authorize @role, :update?
end
def create def create
authorize :user_role, :create? authorize :user_role, :create?
@ -30,10 +34,6 @@ module Admin
end end
end end
def edit
authorize @role, :update?
end
def update def update
authorize @role, :update? authorize @role, :update?

View file

@ -11,6 +11,10 @@ module Admin
@rule = Rule.new @rule = Rule.new
end end
def edit
authorize @rule, :update?
end
def create def create
authorize :rule, :create? authorize :rule, :create?
@ -24,10 +28,6 @@ module Admin
end end
end end
def edit
authorize @rule, :update?
end
def update def update
authorize @rule, :update? authorize @rule, :update?

View file

@ -11,6 +11,10 @@ module Admin
@warning_preset = AccountWarningPreset.new @warning_preset = AccountWarningPreset.new
end end
def edit
authorize @warning_preset, :update?
end
def create def create
authorize :account_warning_preset, :create? authorize :account_warning_preset, :create?
@ -24,10 +28,6 @@ module Admin
end end
end end
def edit
authorize @warning_preset, :update?
end
def update def update
authorize @warning_preset, :update? authorize @warning_preset, :update?

View file

@ -10,12 +10,20 @@ module Admin
@webhooks = Webhook.page(params[:page]) @webhooks = Webhook.page(params[:page])
end end
def show
authorize @webhook, :show?
end
def new def new
authorize :webhook, :create? authorize :webhook, :create?
@webhook = Webhook.new @webhook = Webhook.new
end end
def edit
authorize @webhook, :update?
end
def create def create
authorize :webhook, :create? authorize :webhook, :create?
@ -28,14 +36,6 @@ module Admin
end end
end end
def show
authorize @webhook, :show?
end
def edit
authorize @webhook, :update?
end
def update def update
authorize @webhook, :update? authorize @webhook, :update?

View file

@ -20,6 +20,8 @@ class AntennasController < ApplicationController
@antenna.antenna_accounts.build @antenna.antenna_accounts.build
end end
def edit; end
def create def create
@antenna = current_account.antennas.build(thin_resource_params) @antenna = current_account.antennas.build(thin_resource_params)
@ -33,8 +35,6 @@ class AntennasController < ApplicationController
end end
end end
def edit; end
def update def update
if @antenna.update(resource_params) if @antenna.update(resource_params)
redirect_to antennas_path redirect_to antennas_path

View file

@ -16,6 +16,16 @@ class Api::V1::Admin::DomainAllowsController < Api::BaseController
PAGINATION_PARAMS = %i(limit).freeze PAGINATION_PARAMS = %i(limit).freeze
def index
authorize :domain_allow, :index?
render json: @domain_allows, each_serializer: REST::Admin::DomainAllowSerializer
end
def show
authorize @domain_allow, :show?
render json: @domain_allow, serializer: REST::Admin::DomainAllowSerializer
end
def create def create
authorize :domain_allow, :create? authorize :domain_allow, :create?
@ -29,16 +39,6 @@ class Api::V1::Admin::DomainAllowsController < Api::BaseController
render json: @domain_allow, serializer: REST::Admin::DomainAllowSerializer render json: @domain_allow, serializer: REST::Admin::DomainAllowSerializer
end end
def index
authorize :domain_allow, :index?
render json: @domain_allows, each_serializer: REST::Admin::DomainAllowSerializer
end
def show
authorize @domain_allow, :show?
render json: @domain_allow, serializer: REST::Admin::DomainAllowSerializer
end
def destroy def destroy
authorize @domain_allow, :destroy? authorize @domain_allow, :destroy?
UnallowDomainService.new.call(@domain_allow) UnallowDomainService.new.call(@domain_allow)

View file

@ -16,6 +16,16 @@ class Api::V1::Admin::DomainBlocksController < Api::BaseController
PAGINATION_PARAMS = %i(limit).freeze PAGINATION_PARAMS = %i(limit).freeze
def index
authorize :domain_block, :index?
render json: @domain_blocks, each_serializer: REST::Admin::DomainBlockSerializer
end
def show
authorize @domain_block, :show?
render json: @domain_block, serializer: REST::Admin::DomainBlockSerializer
end
def create def create
authorize :domain_block, :create? authorize :domain_block, :create?
@ -28,16 +38,6 @@ class Api::V1::Admin::DomainBlocksController < Api::BaseController
render json: @domain_block, serializer: REST::Admin::DomainBlockSerializer render json: @domain_block, serializer: REST::Admin::DomainBlockSerializer
end end
def index
authorize :domain_block, :index?
render json: @domain_blocks, each_serializer: REST::Admin::DomainBlockSerializer
end
def show
authorize @domain_block, :show?
render json: @domain_block, serializer: REST::Admin::DomainBlockSerializer
end
def update def update
authorize @domain_block, :update? authorize @domain_block, :update?
@domain_block.update!(domain_block_params) @domain_block.update!(domain_block_params)

View file

@ -18,15 +18,6 @@ class Api::V1::Admin::EmailDomainBlocksController < Api::BaseController
limit limit
).freeze ).freeze
def create
authorize :email_domain_block, :create?
@email_domain_block = EmailDomainBlock.create!(resource_params)
log_action :create, @email_domain_block
render json: @email_domain_block, serializer: REST::Admin::EmailDomainBlockSerializer
end
def index def index
authorize :email_domain_block, :index? authorize :email_domain_block, :index?
render json: @email_domain_blocks, each_serializer: REST::Admin::EmailDomainBlockSerializer render json: @email_domain_blocks, each_serializer: REST::Admin::EmailDomainBlockSerializer
@ -37,6 +28,15 @@ class Api::V1::Admin::EmailDomainBlocksController < Api::BaseController
render json: @email_domain_block, serializer: REST::Admin::EmailDomainBlockSerializer render json: @email_domain_block, serializer: REST::Admin::EmailDomainBlockSerializer
end end
def create
authorize :email_domain_block, :create?
@email_domain_block = EmailDomainBlock.create!(resource_params)
log_action :create, @email_domain_block
render json: @email_domain_block, serializer: REST::Admin::EmailDomainBlockSerializer
end
def destroy def destroy
authorize @email_domain_block, :destroy? authorize @email_domain_block, :destroy?
@email_domain_block.destroy! @email_domain_block.destroy!

View file

@ -18,13 +18,6 @@ class Api::V1::Admin::IpBlocksController < Api::BaseController
limit limit
).freeze ).freeze
def create
authorize :ip_block, :create?
@ip_block = IpBlock.create!(resource_params)
log_action :create, @ip_block
render json: @ip_block, serializer: REST::Admin::IpBlockSerializer
end
def index def index
authorize :ip_block, :index? authorize :ip_block, :index?
render json: @ip_blocks, each_serializer: REST::Admin::IpBlockSerializer render json: @ip_blocks, each_serializer: REST::Admin::IpBlockSerializer
@ -35,6 +28,13 @@ class Api::V1::Admin::IpBlocksController < Api::BaseController
render json: @ip_block, serializer: REST::Admin::IpBlockSerializer render json: @ip_block, serializer: REST::Admin::IpBlockSerializer
end end
def create
authorize :ip_block, :create?
@ip_block = IpBlock.create!(resource_params)
log_action :create, @ip_block
render json: @ip_block, serializer: REST::Admin::IpBlockSerializer
end
def update def update
authorize @ip_block, :update? authorize @ip_block, :update?
@ip_block.update(resource_params) @ip_block.update(resource_params)

View file

@ -1,13 +1,13 @@
# frozen_string_literal: true # frozen_string_literal: true
class Api::V1::Antennas::AccountsController < Api::BaseController class Api::V1::Antennas::AccountsController < Api::BaseController
before_action -> { doorkeeper_authorize! :read, :'read:lists' }, only: [:show] # before_action -> { doorkeeper_authorize! :read, :'read:lists' }, only: [:show]
before_action -> { doorkeeper_authorize! :write, :'write:lists' }, except: [:show] before_action -> { doorkeeper_authorize! :write, :'write:lists' } # , except: [:show]
before_action :require_user! before_action :require_user!
before_action :set_antenna before_action :set_antenna
after_action :insert_pagination_headers, only: :show # after_action :insert_pagination_headers, only: :show
def create def create
ApplicationRecord.transaction do ApplicationRecord.transaction do
@ -22,7 +22,7 @@ class Api::V1::Antennas::AccountsController < Api::BaseController
def destroy def destroy
AntennaAccount.where(antenna: @antenna, account_id: account_ids).destroy_all AntennaAccount.where(antenna: @antenna, account_id: account_ids).destroy_all
@antenna.update!(any_accounts: true) if !@antenna.antenna_accounts.where(exclude: false).any? @antenna.update!(any_accounts: true) unless @antenna.antenna_accounts.where(exclude: false).any?
render_empty render_empty
end end

View file

@ -1,10 +1,10 @@
# frozen_string_literal: true # frozen_string_literal: true
class Api::V1::CustomEmojisController < Api::BaseController class Api::V1::CustomEmojisController < Api::BaseController
vary_by '' vary_by '', unless: :disallow_unauthenticated_api_access?
def index def index
cache_even_if_authenticated! cache_even_if_authenticated! unless disallow_unauthenticated_api_access?
render_with_cache(each_serializer: REST::CustomEmojiSerializer) { CustomEmoji.listed.includes(:category) } render_with_cache(each_serializer: REST::CustomEmojiSerializer) { CustomEmoji.listed.includes(:category) }
end end
end end

View file

@ -21,7 +21,7 @@ class Api::V1::EmojiReactionsController < Api::BaseController
end end
def results def results
@_results ||= account_emoji_reactions.joins(:status).eager_load(:status).to_a_paginated_by_id( @results ||= account_emoji_reactions.joins(:status).eager_load(:status).to_a_paginated_by_id(
limit_param(DEFAULT_STATUSES_LIMIT), limit_param(DEFAULT_STATUSES_LIMIT),
params_slice(:max_id, :since_id, :min_id) params_slice(:max_id, :since_id, :min_id)
) )

View file

@ -11,6 +11,10 @@ class Api::V1::FiltersController < Api::BaseController
render json: @filters, each_serializer: REST::V1::FilterSerializer render json: @filters, each_serializer: REST::V1::FilterSerializer
end end
def show
render json: @filter, serializer: REST::V1::FilterSerializer
end
def create def create
ApplicationRecord.transaction do ApplicationRecord.transaction do
filter_category = current_account.custom_filters.create!(filter_params) filter_category = current_account.custom_filters.create!(filter_params)
@ -20,10 +24,6 @@ class Api::V1::FiltersController < Api::BaseController
render json: @filter, serializer: REST::V1::FilterSerializer render json: @filter, serializer: REST::V1::FilterSerializer
end end
def show
render json: @filter, serializer: REST::V1::FilterSerializer
end
def update def update
ApplicationRecord.transaction do ApplicationRecord.transaction do
@filter.update!(keyword_params) @filter.update!(keyword_params)

View file

@ -26,6 +26,6 @@ class Api::V1::Instances::DomainBlocksController < Api::BaseController
def set_domain_blocks def set_domain_blocks
@domain_blocks = DomainBlock.with_user_facing_limitations.by_severity @domain_blocks = DomainBlock.with_user_facing_limitations.by_severity
@domain_blocks = @domain_blocks.filter { |block| !block.hidden_anonymous } if !user_signed_in? @domain_blocks = @domain_blocks.filter { |block| !block.hidden_anonymous } unless user_signed_in?
end end
end end

View file

@ -32,6 +32,7 @@ class Api::V1::ListsController < Api::BaseController
def destroy def destroy
raise Mastodon::ValidationError, I18n.t('antennas.errors.remove_list_with_antenna') if Antenna.where(list_id: @list.id).any? raise Mastodon::ValidationError, I18n.t('antennas.errors.remove_list_with_antenna') if Antenna.where(list_id: @list.id).any?
@list.destroy! @list.destroy!
render_empty render_empty
end end

View file

@ -6,6 +6,10 @@ class Api::V1::MediaController < Api::BaseController
before_action :set_media_attachment, except: [:create] before_action :set_media_attachment, except: [:create]
before_action :check_processing, except: [:create] before_action :check_processing, except: [:create]
def show
render json: @media_attachment, serializer: REST::MediaAttachmentSerializer, status: status_code_for_media_attachment
end
def create def create
@media_attachment = current_account.media_attachments.create!(media_attachment_params) @media_attachment = current_account.media_attachments.create!(media_attachment_params)
render json: @media_attachment, serializer: REST::MediaAttachmentSerializer render json: @media_attachment, serializer: REST::MediaAttachmentSerializer
@ -15,10 +19,6 @@ class Api::V1::MediaController < Api::BaseController
render json: processing_error, status: 500 render json: processing_error, status: 500
end end
def show
render json: @media_attachment, serializer: REST::MediaAttachmentSerializer, status: status_code_for_media_attachment
end
def update def update
@media_attachment.update!(updateable_media_attachment_params) @media_attachment.update!(updateable_media_attachment_params)
render json: @media_attachment, serializer: REST::MediaAttachmentSerializer, status: status_code_for_media_attachment render json: @media_attachment, serializer: REST::MediaAttachmentSerializer, status: status_code_for_media_attachment

View file

@ -6,6 +6,10 @@ class Api::V1::Push::SubscriptionsController < Api::BaseController
before_action :set_push_subscription before_action :set_push_subscription
before_action :check_push_subscription, only: [:show, :update] before_action :check_push_subscription, only: [:show, :update]
def show
render json: @push_subscription, serializer: REST::WebPushSubscriptionSerializer
end
def create def create
@push_subscription&.destroy! @push_subscription&.destroy!
@ -21,10 +25,6 @@ class Api::V1::Push::SubscriptionsController < Api::BaseController
render json: @push_subscription, serializer: REST::WebPushSubscriptionSerializer render json: @push_subscription, serializer: REST::WebPushSubscriptionSerializer
end end
def show
render json: @push_subscription, serializer: REST::WebPushSubscriptionSerializer
end
def update def update
@push_subscription.update!(data: data_params) @push_subscription.update!(data: data_params)
render json: @push_subscription, serializer: REST::WebPushSubscriptionSerializer render json: @push_subscription, serializer: REST::WebPushSubscriptionSerializer

View file

@ -29,7 +29,7 @@ class Api::V1::Statuses::EmojiReactionedByAccountsController < Api::BaseControll
def paginated_emoji_reactions def paginated_emoji_reactions
EmojiReaction.paginate_by_max_id( EmojiReaction.paginate_by_max_id(
limit_param(1000), #limit_param(DEFAULT_ACCOUNTS_LIMIT), limit_param(1000), # limit_param(DEFAULT_ACCOUNTS_LIMIT),
params[:max_id], params[:max_id],
params[:since_id] params[:since_id]
) )

View file

@ -9,8 +9,8 @@ class Api::V1::Statuses::EmojiReactionedByAccountsSlimController < Api::BaseCont
def index def index
@accounts = load_emoji_reactions @accounts = load_emoji_reactions
# TODO for serialize hash object # TODO: for serialize hash object
#render json: @accounts, each_serializer: REST::EmojiReactedBySlimSerializer # render json: @accounts, each_serializer: REST::EmojiReactedBySlimSerializer
# Hide WIP api for hide account secret # Hide WIP api for hide account secret
not_found not_found

View file

@ -12,13 +12,13 @@ class Api::V2::Filters::KeywordsController < Api::BaseController
render json: @keywords, each_serializer: REST::FilterKeywordSerializer render json: @keywords, each_serializer: REST::FilterKeywordSerializer
end end
def create def show
@keyword = current_account.custom_filters.find(params[:filter_id]).keywords.create!(resource_params)
render json: @keyword, serializer: REST::FilterKeywordSerializer render json: @keyword, serializer: REST::FilterKeywordSerializer
end end
def show def create
@keyword = current_account.custom_filters.find(params[:filter_id]).keywords.create!(resource_params)
render json: @keyword, serializer: REST::FilterKeywordSerializer render json: @keyword, serializer: REST::FilterKeywordSerializer
end end

View file

@ -12,13 +12,13 @@ class Api::V2::Filters::StatusesController < Api::BaseController
render json: @status_filters, each_serializer: REST::FilterStatusSerializer render json: @status_filters, each_serializer: REST::FilterStatusSerializer
end end
def create def show
@status_filter = current_account.custom_filters.find(params[:filter_id]).statuses.create!(resource_params)
render json: @status_filter, serializer: REST::FilterStatusSerializer render json: @status_filter, serializer: REST::FilterStatusSerializer
end end
def show def create
@status_filter = current_account.custom_filters.find(params[:filter_id]).statuses.create!(resource_params)
render json: @status_filter, serializer: REST::FilterStatusSerializer render json: @status_filter, serializer: REST::FilterStatusSerializer
end end

View file

@ -11,13 +11,13 @@ class Api::V2::FiltersController < Api::BaseController
render json: @filters, each_serializer: REST::FilterSerializer, rules_requested: true render json: @filters, each_serializer: REST::FilterSerializer, rules_requested: true
end end
def create def show
@filter = current_account.custom_filters.create!(resource_params)
render json: @filter, serializer: REST::FilterSerializer, rules_requested: true render json: @filter, serializer: REST::FilterSerializer, rules_requested: true
end end
def show def create
@filter = current_account.custom_filters.create!(resource_params)
render json: @filter, serializer: REST::FilterSerializer, rules_requested: true render json: @filter, serializer: REST::FilterSerializer, rules_requested: true
end end

View file

@ -24,16 +24,16 @@ class Auth::RegistrationsController < Devise::RegistrationsController
super(&:build_invite_request) super(&:build_invite_request)
end end
def destroy
not_found
end
def update def update
super do |resource| super do |resource|
resource.clear_other_sessions(current_session.session_id) if resource.saved_change_to_encrypted_password? resource.clear_other_sessions(current_session.session_id) if resource.saved_change_to_encrypted_password?
end end
end end
def destroy
not_found
end
protected protected
def update_resource(resource, params) def update_resource(resource, params)

View file

@ -17,6 +17,8 @@ class FiltersController < ApplicationController
@filter.keywords.build @filter.keywords.build
end end
def edit; end
def create def create
@filter = current_account.custom_filters.build(resource_params) @filter = current_account.custom_filters.build(resource_params)
@ -27,8 +29,6 @@ class FiltersController < ApplicationController
end end
end end
def edit; end
def update def update
if @filter.update(resource_params) if @filter.update(resource_params)
redirect_to filters_path redirect_to filters_path

View file

@ -15,7 +15,7 @@ class FollowerAccountsController < ApplicationController
def index def index
respond_to do |format| respond_to do |format|
format.html do format.html do
expires_in 0, public: true unless user_signed_in? expires_in(15.seconds, public: true, stale_while_revalidate: 30.seconds, stale_if_error: 1.hour) unless user_signed_in?
end end
format.json do format.json do

View file

@ -15,7 +15,7 @@ class FollowingAccountsController < ApplicationController
def index def index
respond_to do |format| respond_to do |format|
format.html do format.html do
expires_in 0, public: true unless user_signed_in? expires_in(15.seconds, public: true, stale_while_revalidate: 30.seconds, stale_if_error: 1.hour) unless user_signed_in?
end end
format.json do format.json do

View file

@ -6,7 +6,7 @@ class HomeController < ApplicationController
before_action :set_instance_presenter before_action :set_instance_presenter
def index def index
expires_in 0, public: true unless user_signed_in? expires_in(15.seconds, public: true, stale_while_revalidate: 30.seconds, stale_if_error: 1.day) unless user_signed_in?
end end
private private

View file

@ -8,7 +8,7 @@ class PrivacyController < ApplicationController
before_action :set_instance_presenter before_action :set_instance_presenter
def show def show
expires_in 0, public: true if current_account.nil? expires_in(15.seconds, public: true, stale_while_revalidate: 30.seconds, stale_if_error: 1.day) unless user_signed_in?
end end
private private

View file

@ -8,6 +8,8 @@ class Settings::ApplicationsController < Settings::BaseController
@applications = current_user.applications.order(id: :desc).page(params[:page]) @applications = current_user.applications.order(id: :desc).page(params[:page])
end end
def show; end
def new def new
@application = Doorkeeper::Application.new( @application = Doorkeeper::Application.new(
redirect_uri: Doorkeeper.configuration.native_redirect_uri, redirect_uri: Doorkeeper.configuration.native_redirect_uri,
@ -15,8 +17,6 @@ class Settings::ApplicationsController < Settings::BaseController
) )
end end
def show; end
def create def create
@application = current_user.applications.build(application_params) @application = current_user.applications.build(application_params)

View file

@ -8,9 +8,8 @@ module Settings
before_action :require_otp_enabled before_action :require_otp_enabled
before_action :require_webauthn_enabled, only: [:index, :destroy] before_action :require_webauthn_enabled, only: [:index, :destroy]
def new; end
def index; end def index; end
def new; end
def options def options
current_user.update(webauthn_id: WebAuthn.generate_user_id) unless current_user.webauthn_id current_user.update(webauthn_id: WebAuthn.generate_user_id) unless current_user.webauthn_id

View file

@ -21,7 +21,7 @@ class TagsController < ApplicationController
def show def show
respond_to do |format| respond_to do |format|
format.html do format.html do
expires_in 0, public: true unless user_signed_in? expires_in(15.seconds, public: true, stale_while_revalidate: 30.seconds, stale_if_error: 1.hour) unless user_signed_in?
end end
format.rss do format.rss do

View file

@ -118,7 +118,7 @@ module ApplicationHelper
end end
def check_icon def check_icon
content_tag(:svg, tag(:path, 'fill-rule': 'evenodd', 'clip-rule': 'evenodd', d: 'M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z'), xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 20 20', fill: 'currentColor') content_tag(:svg, tag.path('fill-rule': 'evenodd', 'clip-rule': 'evenodd', d: 'M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z'), xmlns: 'http://www.w3.org/2000/svg', viewBox: '0 0 20 20', fill: 'currentColor')
end end
def visibility_icon(status) def visibility_icon(status)
@ -154,19 +154,7 @@ module ApplicationHelper
end end
def opengraph(property, content) def opengraph(property, content)
tag(:meta, content: content, property: property) tag.meta(content: content, property: property)
end
def react_component(name, props = {}, &block)
if block.nil?
content_tag(:div, nil, data: { component: name.to_s.camelcase, props: Oj.dump(props) })
else
content_tag(:div, data: { component: name.to_s.camelcase, props: Oj.dump(props) }, &block)
end
end
def react_admin_component(name, props = {})
content_tag(:div, nil, data: { 'admin-component': name.to_s.camelcase, props: Oj.dump({ locale: I18n.locale }.merge(props)) })
end end
def body_classes def body_classes
@ -175,7 +163,7 @@ module ApplicationHelper
output << 'system-font' if current_account&.user&.setting_system_font_ui output << 'system-font' if current_account&.user&.setting_system_font_ui
output << (current_account&.user&.setting_reduce_motion ? 'reduce-motion' : 'no-reduce-motion') output << (current_account&.user&.setting_reduce_motion ? 'reduce-motion' : 'no-reduce-motion')
output << 'rtl' if locale_direction == 'rtl' output << 'rtl' if locale_direction == 'rtl'
output.reject(&:blank?).join(' ') output.compact_blank.join(' ')
end end
def cdn_host def cdn_host
@ -255,6 +243,8 @@ module ApplicationHelper
end end
def prerender_custom_emojis_from_hash(html, custom_emojis_hash) def prerender_custom_emojis_from_hash(html, custom_emojis_hash)
# rubocop:disable Style/OpenStructUse
prerender_custom_emojis(html, JSON.parse([custom_emojis_hash].to_json, object_class: OpenStruct)) prerender_custom_emojis(html, JSON.parse([custom_emojis_hash].to_json, object_class: OpenStruct))
# rubocop:enable Style/OpenStructUse
end end
end end

View file

@ -11,11 +11,11 @@ module BrandingHelper
end end
def _logo_as_symbol_wordmark def _logo_as_symbol_wordmark
content_tag(:svg, tag(:use, href: '#logo-symbol-wordmark'), viewBox: '0 0 261 66', class: 'logo logo--wordmark') content_tag(:svg, tag.use(href: '#logo-symbol-wordmark'), viewBox: '0 0 261 66', class: 'logo logo--wordmark')
end end
def _logo_as_symbol_icon def _logo_as_symbol_icon
content_tag(:svg, tag(:use, href: '#logo-symbol-icon'), viewBox: '0 0 79 79', class: 'logo logo--icon') content_tag(:svg, tag.use(href: '#logo-symbol-icon'), viewBox: '0 0 79 79', class: 'logo logo--icon')
end end
def render_logo def render_logo

View file

@ -21,9 +21,9 @@ module ContextHelper
blurhash: { 'toot' => 'http://joinmastodon.org/ns#', 'blurhash' => 'toot:blurhash' }, blurhash: { 'toot' => 'http://joinmastodon.org/ns#', 'blurhash' => 'toot:blurhash' },
discoverable: { 'toot' => 'http://joinmastodon.org/ns#', 'discoverable' => 'toot:discoverable' }, discoverable: { 'toot' => 'http://joinmastodon.org/ns#', 'discoverable' => 'toot:discoverable' },
voters_count: { 'toot' => 'http://joinmastodon.org/ns#', 'votersCount' => 'toot:votersCount' }, voters_count: { 'toot' => 'http://joinmastodon.org/ns#', 'votersCount' => 'toot:votersCount' },
emoji_reactions: { 'fedibird' => 'http://fedibird.com/ns#', 'emojiReactions' => { '@id' => "fedibird:emojiReactions", '@type' => '@id' } }, emoji_reactions: { 'fedibird' => 'http://fedibird.com/ns#', 'emojiReactions' => { '@id' => 'fedibird:emojiReactions', '@type' => '@id' } },
searchable_by: { 'fedibird' => 'http://fedibird.com/ns#', 'searchableBy' => { '@id' => "fedibird:searchableBy", '@type' => '@id' } }, searchable_by: { 'fedibird' => 'http://fedibird.com/ns#', 'searchableBy' => { '@id' => 'fedibird:searchableBy', '@type' => '@id' } },
subscribable_by: { 'kmyblue' => 'http://kmy.blue/ns#', 'subscribableBy' => { '@id' => "kmyblue:subscribableBy", '@type' => '@id' } }, subscribable_by: { 'kmyblue' => 'http://kmy.blue/ns#', 'subscribableBy' => { '@id' => 'kmyblue:subscribableBy', '@type' => '@id' } },
olm: { 'toot' => 'http://joinmastodon.org/ns#', 'Device' => 'toot:Device', 'Ed25519Signature' => 'toot:Ed25519Signature', 'Ed25519Key' => 'toot:Ed25519Key', 'Curve25519Key' => 'toot:Curve25519Key', 'EncryptedMessage' => 'toot:EncryptedMessage', 'publicKeyBase64' => 'toot:publicKeyBase64', 'deviceId' => 'toot:deviceId', 'claim' => { '@type' => '@id', '@id' => 'toot:claim' }, 'fingerprintKey' => { '@type' => '@id', '@id' => 'toot:fingerprintKey' }, 'identityKey' => { '@type' => '@id', '@id' => 'toot:identityKey' }, 'devices' => { '@type' => '@id', '@id' => 'toot:devices' }, 'messageFranking' => 'toot:messageFranking', 'messageType' => 'toot:messageType', 'cipherText' => 'toot:cipherText' }, olm: { 'toot' => 'http://joinmastodon.org/ns#', 'Device' => 'toot:Device', 'Ed25519Signature' => 'toot:Ed25519Signature', 'Ed25519Key' => 'toot:Ed25519Key', 'Curve25519Key' => 'toot:Curve25519Key', 'EncryptedMessage' => 'toot:EncryptedMessage', 'publicKeyBase64' => 'toot:publicKeyBase64', 'deviceId' => 'toot:deviceId', 'claim' => { '@type' => '@id', '@id' => 'toot:claim' }, 'fingerprintKey' => { '@type' => '@id', '@id' => 'toot:fingerprintKey' }, 'identityKey' => { '@type' => '@id', '@id' => 'toot:identityKey' }, 'devices' => { '@type' => '@id', '@id' => 'toot:devices' }, 'messageFranking' => 'toot:messageFranking', 'messageType' => 'toot:messageType', 'cipherText' => 'toot:cipherText' },
suspended: { 'toot' => 'http://joinmastodon.org/ns#', 'suspended' => 'toot:suspended' }, suspended: { 'toot' => 'http://joinmastodon.org/ns#', 'suspended' => 'toot:suspended' },
}.freeze }.freeze

View file

@ -51,14 +51,14 @@ module StatusesHelper
end end
def status_description(status) def status_description(status)
components = [[media_summary(status), status_text_summary(status)].reject(&:blank?).join(' · ')] components = [[media_summary(status), status_text_summary(status)].compact_blank.join(' · ')]
if status.spoiler_text.blank? if status.spoiler_text.blank?
components << status.text components << status.text
components << poll_summary(status) components << poll_summary(status)
end end
components.reject(&:blank?).join("\n\n") components.compact_blank.join("\n\n")
end end
def stream_link_target def stream_link_target

View file

@ -129,9 +129,10 @@ export function resetCompose() {
}; };
} }
export const focusCompose = routerHistory => dispatch => { export const focusCompose = (routerHistory, defaultText) => dispatch => {
dispatch({ dispatch({
type: COMPOSE_FOCUS, type: COMPOSE_FOCUS,
defaultText,
}); });
ensureComposeIsVisible(routerHistory); ensureComposeIsVisible(routerHistory);
@ -410,16 +411,12 @@ export function changeUploadCompose(id, params) {
// Editing already-attached media is deferred to editing the post itself. // Editing already-attached media is deferred to editing the post itself.
// For simplicity's sake, fake an API reply. // For simplicity's sake, fake an API reply.
if (media && !media.get('unattached')) { if (media && !media.get('unattached')) {
let { description, focus } = params; const { focus, ...other } = params;
const data = media.toJS(); const data = { ...media.toJS(), ...other };
if (description) {
data.description = description;
}
if (focus) { if (focus) {
focus = focus.split(','); const [x, y] = focus.split(',');
data.meta = { focus: { x: parseFloat(focus[0]), y: parseFloat(focus[1]) } }; data.meta = { focus: { x: parseFloat(x), y: parseFloat(y) } };
} }
dispatch(changeUploadComposeSuccess(data, true)); dispatch(changeUploadComposeSuccess(data, true));

View file

@ -20,7 +20,7 @@ export const PICTURE_IN_PICTURE_REMOVE = 'PICTURE_IN_PICTURE_REMOVE';
* @param {string} accountId * @param {string} accountId
* @param {string} playerType * @param {string} playerType
* @param {MediaProps} props * @param {MediaProps} props
* @return {object} * @returns {object}
*/ */
export const deployPictureInPicture = (statusId, accountId, playerType, props) => { export const deployPictureInPicture = (statusId, accountId, playerType, props) => {
// @ts-expect-error // @ts-expect-error

View file

@ -27,7 +27,7 @@ const { messages } = getLocale();
/** /**
* @param {number} max * @param {number} max
* @return {number} * @returns {number}
*/ */
const randomUpTo = max => const randomUpTo = max =>
Math.floor(Math.random() * Math.floor(max)); Math.floor(Math.random() * Math.floor(max));
@ -40,7 +40,7 @@ const randomUpTo = max =>
* @param {function(Function, Function): void} [options.fallback] * @param {function(Function, Function): void} [options.fallback]
* @param {function(): void} [options.fillGaps] * @param {function(): void} [options.fillGaps]
* @param {function(object): boolean} [options.accept] * @param {function(object): boolean} [options.accept]
* @return {function(): void} * @returns {function(): void}
*/ */
export const connectTimelineStream = (timelineId, channelName, params = {}, options = {}) => export const connectTimelineStream = (timelineId, channelName, params = {}, options = {}) =>
connectStream(channelName, params, (dispatch, getState) => { connectStream(channelName, params, (dispatch, getState) => {
@ -135,7 +135,7 @@ const refreshHomeTimelineAndNotification = (dispatch, done) => {
}; };
/** /**
* @return {function(): void} * @returns {function(): void}
*/ */
export const connectUserStream = () => export const connectUserStream = () =>
// @ts-expect-error // @ts-expect-error
@ -144,7 +144,7 @@ export const connectUserStream = () =>
/** /**
* @param {Object} options * @param {Object} options
* @param {boolean} [options.onlyMedia] * @param {boolean} [options.onlyMedia]
* @return {function(): void} * @returns {function(): void}
*/ */
export const connectCommunityStream = ({ onlyMedia } = {}) => export const connectCommunityStream = ({ onlyMedia } = {}) =>
connectTimelineStream(`community${onlyMedia ? ':media' : ''}`, `public:local${onlyMedia ? ':media' : ''}`, {}, { fillGaps: () => (fillCommunityTimelineGaps({ onlyMedia })) }); connectTimelineStream(`community${onlyMedia ? ':media' : ''}`, `public:local${onlyMedia ? ':media' : ''}`, {}, { fillGaps: () => (fillCommunityTimelineGaps({ onlyMedia })) });
@ -153,7 +153,7 @@ export const connectCommunityStream = ({ onlyMedia } = {}) =>
* @param {Object} options * @param {Object} options
* @param {boolean} [options.onlyMedia] * @param {boolean} [options.onlyMedia]
* @param {boolean} [options.onlyRemote] * @param {boolean} [options.onlyRemote]
* @return {function(): void} * @returns {function(): void}
*/ */
export const connectPublicStream = ({ onlyMedia, onlyRemote } = {}) => export const connectPublicStream = ({ onlyMedia, onlyRemote } = {}) =>
connectTimelineStream(`public${onlyRemote ? ':remote' : ''}${onlyMedia ? ':media' : ''}`, `public${onlyRemote ? ':remote' : ''}${onlyMedia ? ':media' : ''}`, {}, { fillGaps: () => fillPublicTimelineGaps({ onlyMedia, onlyRemote }) }); connectTimelineStream(`public${onlyRemote ? ':remote' : ''}${onlyMedia ? ':media' : ''}`, `public${onlyRemote ? ':remote' : ''}${onlyMedia ? ':media' : ''}`, {}, { fillGaps: () => fillPublicTimelineGaps({ onlyMedia, onlyRemote }) });
@ -163,20 +163,20 @@ export const connectPublicStream = ({ onlyMedia, onlyRemote } = {}) =>
* @param {string} tagName * @param {string} tagName
* @param {boolean} onlyLocal * @param {boolean} onlyLocal
* @param {function(object): boolean} accept * @param {function(object): boolean} accept
* @return {function(): void} * @returns {function(): void}
*/ */
export const connectHashtagStream = (columnId, tagName, onlyLocal, accept) => export const connectHashtagStream = (columnId, tagName, onlyLocal, accept) =>
connectTimelineStream(`hashtag:${columnId}${onlyLocal ? ':local' : ''}`, `hashtag${onlyLocal ? ':local' : ''}`, { tag: tagName }, { accept }); connectTimelineStream(`hashtag:${columnId}${onlyLocal ? ':local' : ''}`, `hashtag${onlyLocal ? ':local' : ''}`, { tag: tagName }, { accept });
/** /**
* @return {function(): void} * @returns {function(): void}
*/ */
export const connectDirectStream = () => export const connectDirectStream = () =>
connectTimelineStream('direct', 'direct'); connectTimelineStream('direct', 'direct');
/** /**
* @param {string} listId * @param {string} listId
* @return {function(): void} * @returns {function(): void}
*/ */
export const connectListStream = listId => export const connectListStream = listId =>
connectTimelineStream(`list:${listId}`, 'list', { list: listId }, { fillGaps: () => fillListTimelineGaps(listId) }); connectTimelineStream(`list:${listId}`, 'list', { list: listId }, { fillGaps: () => fillListTimelineGaps(listId) });

View file

@ -20,9 +20,8 @@ import PropTypes from 'prop-types';
/** /**
* Component that is used to render blurred of blurhash string * Component that is used to render blurred of blurhash string
*
* @param {BlurhashProps} param1 Props of the component * @param {BlurhashProps} param1 Props of the component
* @returns Canvas which will render blurred region element to embed * @returns {JSX.Element} Canvas which will render blurred region element to embed
*/ */
function Blurhash({ function Blurhash({
hash, hash,

View file

@ -4,7 +4,6 @@ import { FormattedMessage } from 'react-intl';
/** /**
* Returns custom renderer for one of the common counter types * Returns custom renderer for one of the common counter types
*
* @param {"statuses" | "following" | "followers"} counterType * @param {"statuses" | "following" | "followers"} counterType
* Type of the counter * Type of the counter
* @param {boolean} isBold Whether display number must be displayed in bold * @param {boolean} isBold Whether display number must be displayed in bold

View file

@ -37,7 +37,6 @@ class SilentErrorBoundary extends React.Component {
/** /**
* Used to render counter of how much people are talking about hashtag * Used to render counter of how much people are talking about hashtag
*
* @type {(displayNumber: JSX.Element, pluralReady: number) => JSX.Element} * @type {(displayNumber: JSX.Element, pluralReady: number) => JSX.Element}
*/ */
export const accountsCountRenderer = (displayNumber, pluralReady) => ( export const accountsCountRenderer = (displayNumber, pluralReady) => (

View file

@ -1,21 +0,0 @@
import React from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
export default class Icon extends React.PureComponent {
static propTypes = {
id: PropTypes.string.isRequired,
className: PropTypes.string,
fixedWidth: PropTypes.bool,
};
render () {
const { id, className, fixedWidth, ...other } = this.props;
return (
<i className={classNames('fa', `fa-${id}`, className, { 'fa-fw': fixedWidth })} {...other} />
);
}
}

View file

@ -0,0 +1,14 @@
import React from 'react';
import classNames from 'classnames';
type Props = {
id: string;
className?: string;
fixedWidth?: boolean;
children?: never;
[key: string]: any;
}
export const Icon: React.FC<Props> = ({ id, className, fixedWidth, ...other }) =>
<i className={classNames('fa', `fa-${id}`, className, { 'fa-fw': fixedWidth })} {...other} />;
export default Icon;

View file

@ -1,22 +0,0 @@
import React from 'react';
import PropTypes from 'prop-types';
import Icon from 'mastodon/components/icon';
const formatNumber = num => num > 40 ? '40+' : num;
const IconWithBadge = ({ id, count, issueBadge, className }) => (
<i className='icon-with-badge'>
<Icon id={id} fixedWidth className={className} />
{count > 0 && <i className='icon-with-badge__badge'>{formatNumber(count)}</i>}
{issueBadge && <i className='icon-with-badge__issue-badge' />}
</i>
);
IconWithBadge.propTypes = {
id: PropTypes.string.isRequired,
count: PropTypes.number.isRequired,
issueBadge: PropTypes.bool,
className: PropTypes.string,
};
export default IconWithBadge;

View file

@ -0,0 +1,20 @@
import React from 'react';
import { Icon } from './icon';
const formatNumber = (num: number): number | string => num > 40 ? '40+' : num;
type Props = {
id: string;
count: number;
issueBadge: boolean;
className: string;
}
const IconWithBadge: React.FC<Props> = ({ id, count, issueBadge, className }) => (
<i className='icon-with-badge'>
<Icon id={id} fixedWidth className={className} />
{count > 0 && <i className='icon-with-badge__badge'>{formatNumber(count)}</i>}
{issueBadge && <i className='icon-with-badge__issue-badge' />}
</i>
);
export default IconWithBadge;

View file

@ -1,10 +1,15 @@
import React from 'react'; import React from 'react';
import logo from 'mastodon/../images/logo.svg';
const Logo = () => ( export const WordmarkLogo = () => (
<svg viewBox='0 0 261 66' className='logo' role='img'> <svg viewBox='0 0 261 66' className='logo logo--wordmark' role='img'>
<title>Mastodon</title> <title>Mastodon</title>
<use xlinkHref='#logo-symbol-wordmark' /> <use xlinkHref='#logo-symbol-wordmark' />
</svg> </svg>
); );
export default Logo; export const SymbolLogo = () => (
<img src={logo} alt='Mastodon' className='logo logo--icon' />
);
export default WordmarkLogo;

View file

@ -1,6 +1,5 @@
import React from 'react'; import React from 'react';
import { injectIntl, defineMessages } from 'react-intl'; import { injectIntl, defineMessages, InjectedIntl } from 'react-intl';
import PropTypes from 'prop-types';
const messages = defineMessages({ const messages = defineMessages({
today: { id: 'relative_time.today', defaultMessage: 'today' }, today: { id: 'relative_time.today', defaultMessage: 'today' },
@ -28,12 +27,12 @@ const dateFormatOptions = {
day: '2-digit', day: '2-digit',
hour: '2-digit', hour: '2-digit',
minute: '2-digit', minute: '2-digit',
}; } as const;
const shortDateFormatOptions = { const shortDateFormatOptions = {
month: 'short', month: 'short',
day: 'numeric', day: 'numeric',
}; } as const;
const SECOND = 1000; const SECOND = 1000;
const MINUTE = 1000 * 60; const MINUTE = 1000 * 60;
@ -42,7 +41,7 @@ const DAY = 1000 * 60 * 60 * 24;
const MAX_DELAY = 2147483647; const MAX_DELAY = 2147483647;
const selectUnits = delta => { const selectUnits = (delta: number) => {
const absDelta = Math.abs(delta); const absDelta = Math.abs(delta);
if (absDelta < MINUTE) { if (absDelta < MINUTE) {
@ -56,7 +55,7 @@ const selectUnits = delta => {
return 'day'; return 'day';
}; };
const getUnitDelay = units => { const getUnitDelay = (units: string) => {
switch (units) { switch (units) {
case 'second': case 'second':
return SECOND; return SECOND;
@ -71,7 +70,7 @@ const getUnitDelay = units => {
} }
}; };
export const timeAgoString = (intl, date, now, year, timeGiven, short) => { export const timeAgoString = (intl: InjectedIntl, date: Date, now: number, year: number, timeGiven: boolean, short?: boolean) => {
const delta = now - date.getTime(); const delta = now - date.getTime();
let relativeTime; let relativeTime;
@ -99,7 +98,7 @@ export const timeAgoString = (intl, date, now, year, timeGiven, short) => {
return relativeTime; return relativeTime;
}; };
const timeRemainingString = (intl, date, now, timeGiven = true) => { const timeRemainingString = (intl: InjectedIntl, date: Date, now: number, timeGiven = true) => {
const delta = date.getTime() - now; const delta = date.getTime() - now;
let relativeTime; let relativeTime;
@ -121,15 +120,17 @@ const timeRemainingString = (intl, date, now, timeGiven = true) => {
return relativeTime; return relativeTime;
}; };
class RelativeTimestamp extends React.Component { type Props = {
intl: InjectedIntl;
static propTypes = { timestamp: string;
intl: PropTypes.object.isRequired, year: number;
timestamp: PropTypes.string.isRequired, futureDate?: boolean;
year: PropTypes.number.isRequired, short?: boolean;
futureDate: PropTypes.bool, }
short: PropTypes.bool, type States = {
}; now: number;
}
class RelativeTimestamp extends React.Component<Props, States> {
state = { state = {
now: this.props.intl.now(), now: this.props.intl.now(),
@ -140,7 +141,9 @@ class RelativeTimestamp extends React.Component {
short: true, short: true,
}; };
shouldComponentUpdate (nextProps, nextState) { _timer: number | undefined;
shouldComponentUpdate (nextProps: Props, nextState: States) {
// As of right now the locale doesn't change without a new page load, // As of right now the locale doesn't change without a new page load,
// but we might as well check in case that ever changes. // but we might as well check in case that ever changes.
return this.props.timestamp !== nextProps.timestamp || return this.props.timestamp !== nextProps.timestamp ||
@ -148,7 +151,7 @@ class RelativeTimestamp extends React.Component {
this.state.now !== nextState.now; this.state.now !== nextState.now;
} }
componentWillReceiveProps (nextProps) { UNSAFE_componentWillReceiveProps (nextProps: Props) {
if (this.props.timestamp !== nextProps.timestamp) { if (this.props.timestamp !== nextProps.timestamp) {
this.setState({ now: this.props.intl.now() }); this.setState({ now: this.props.intl.now() });
} }
@ -158,16 +161,16 @@ class RelativeTimestamp extends React.Component {
this._scheduleNextUpdate(this.props, this.state); this._scheduleNextUpdate(this.props, this.state);
} }
componentWillUpdate (nextProps, nextState) { UNSAFE_componentWillUpdate (nextProps: Props, nextState: States) {
this._scheduleNextUpdate(nextProps, nextState); this._scheduleNextUpdate(nextProps, nextState);
} }
componentWillUnmount () { componentWillUnmount () {
clearTimeout(this._timer); window.clearTimeout(this._timer);
} }
_scheduleNextUpdate (props, state) { _scheduleNextUpdate (props: Props, state: States) {
clearTimeout(this._timer); window.clearTimeout(this._timer);
const { timestamp } = props; const { timestamp } = props;
const delta = (new Date(timestamp)).getTime() - state.now; const delta = (new Date(timestamp)).getTime() - state.now;
@ -176,7 +179,7 @@ class RelativeTimestamp extends React.Component {
const updateInterval = 1000 * 10; const updateInterval = 1000 * 10;
const delay = delta < 0 ? Math.max(updateInterval, unitDelay - unitRemainder) : Math.max(updateInterval, unitRemainder); const delay = delta < 0 ? Math.max(updateInterval, unitDelay - unitRemainder) : Math.max(updateInterval, unitRemainder);
this._timer = setTimeout(() => { this._timer = window.setTimeout(() => {
this.setState({ now: this.props.intl.now() }); this.setState({ now: this.props.intl.now() });
}, delay); }, delay);
} }

View file

@ -24,7 +24,6 @@ import { FormattedMessage, FormattedNumber } from 'react-intl';
/** /**
* Component that renders short big number to a shorter version * Component that renders short big number to a shorter version
*
* @param {ShortNumberProps} param0 Props for the component * @param {ShortNumberProps} param0 Props for the component
* @returns {JSX.Element} Rendered number * @returns {JSX.Element} Rendered number
*/ */
@ -58,7 +57,6 @@ ShortNumber.propTypes = {
/** /**
* Renders short number into corresponding localizable react fragment * Renders short number into corresponding localizable react fragment
*
* @param {ShortNumberCounterProps} param0 Props for the component * @param {ShortNumberCounterProps} param0 Props for the component
* @returns {JSX.Element} FormattedMessage ready to be embedded in code * @returns {JSX.Element} FormattedMessage ready to be embedded in code
*/ */

View file

@ -470,7 +470,7 @@ class Audio extends React.PureComponent {
} }
return ( return (
<div className={classNames('audio-player', { editable, inactive: !revealed })} ref={this.setPlayerRef} style={{ backgroundColor: this._getBackgroundColor(), color: this._getForegroundColor(), width: '100%', height: this.props.fullscreen ? '100%' : (this.state.height || this.props.height) }} onMouseEnter={this.handleMouseEnter} onMouseLeave={this.handleMouseLeave} tabIndex={0} onKeyDown={this.handleKeyDown}> <div className={classNames('audio-player', { editable, inactive: !revealed })} ref={this.setPlayerRef} style={{ backgroundColor: this._getBackgroundColor(), color: this._getForegroundColor(), height: this.props.fullscreen ? '100%' : (this.state.height || this.props.height) }} onMouseEnter={this.handleMouseEnter} onMouseLeave={this.handleMouseLeave} tabIndex={0} onKeyDown={this.handleKeyDown}>
<Blurhash <Blurhash
hash={blurhash} hash={blurhash}

View file

@ -71,17 +71,20 @@ class Explore extends React.PureComponent {
<NavLink exact to='/explore'> <NavLink exact to='/explore'>
<FormattedMessage tagName='div' id='explore.trending_statuses' defaultMessage='Posts' /> <FormattedMessage tagName='div' id='explore.trending_statuses' defaultMessage='Posts' />
</NavLink> </NavLink>
<NavLink exact to='/explore/tags'> <NavLink exact to='/explore/tags'>
<FormattedMessage tagName='div' id='explore.trending_tags' defaultMessage='Hashtags' /> <FormattedMessage tagName='div' id='explore.trending_tags' defaultMessage='Hashtags' />
</NavLink> </NavLink>
{signedIn && (
<NavLink exact to='/explore/suggestions'>
<FormattedMessage tagName='div' id='explore.suggested_follows' defaultMessage='People' />
</NavLink>
)}
<NavLink exact to='/explore/links'> <NavLink exact to='/explore/links'>
<FormattedMessage tagName='div' id='explore.trending_links' defaultMessage='News' /> <FormattedMessage tagName='div' id='explore.trending_links' defaultMessage='News' />
</NavLink> </NavLink>
{signedIn && (
<NavLink exact to='/explore/suggestions'>
<FormattedMessage tagName='div' id='explore.suggested_follows' defaultMessage='For you' />
</NavLink>
)}
</div> </div>
<Switch> <Switch>

View file

@ -16,9 +16,13 @@ import Follows from './follows';
import Share from './share'; import Share from './share';
import Step from './components/step'; import Step from './components/step';
import ArrowSmallRight from './components/arrow_small_right'; import ArrowSmallRight from './components/arrow_small_right';
import { FormattedMessage } from 'react-intl'; import { FormattedMessage, injectIntl, defineMessages } from 'react-intl';
import { debounce } from 'lodash'; import { debounce } from 'lodash';
const messages = defineMessages({
template: { id: 'onboarding.compose.template', defaultMessage: 'Hello #Mastodon!' },
});
const mapStateToProps = () => { const mapStateToProps = () => {
const getAccount = makeGetAccount(); const getAccount = makeGetAccount();
@ -61,10 +65,10 @@ class Onboarding extends ImmutablePureComponent {
}; };
handleComposeClick = () => { handleComposeClick = () => {
const { dispatch } = this.props; const { dispatch, intl } = this.props;
const { router } = this.context; const { router } = this.context;
dispatch(focusCompose(router.history)); dispatch(focusCompose(router.history, intl.formatMessage(messages.template)));
}; };
handleShareClick = () => { handleShareClick = () => {
@ -138,4 +142,4 @@ class Onboarding extends ImmutablePureComponent {
} }
export default connect(mapStateToProps)(Onboarding); export default connect(mapStateToProps)(injectIntl(Onboarding));

View file

@ -1,5 +1,5 @@
import React from 'react'; import React from 'react';
import Logo from 'mastodon/components/logo'; import { WordmarkLogo, SymbolLogo } from 'mastodon/components/logo';
import { Link, withRouter } from 'react-router-dom'; import { Link, withRouter } from 'react-router-dom';
import { FormattedMessage } from 'react-intl'; import { FormattedMessage } from 'react-intl';
import { registrationsOpen, me } from 'mastodon/initial_state'; import { registrationsOpen, me } from 'mastodon/initial_state';
@ -73,7 +73,10 @@ class Header extends React.PureComponent {
return ( return (
<div className='ui__header'> <div className='ui__header'>
<Link to='/' className='ui__header__logo'><Logo /></Link> <Link to='/' className='ui__header__logo'>
<WordmarkLogo />
<SymbolLogo />
</Link>
<div className='ui__header__links'> <div className='ui__header__links'>
{content} {content}

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
"errors.unexpected_crash.report_issue": "Report issue", "errors.unexpected_crash.report_issue": "Report issue",
"explore.search_results": "Soekresultate", "explore.search_results": "Soekresultate",
"explore.suggested_follows": "For you", "explore.suggested_follows": "People",
"explore.title": "Explore", "explore.title": "Explore",
"explore.trending_links": "News", "explore.trending_links": "News",
"explore.trending_statuses": "Posts", "explore.trending_statuses": "Posts",
@ -445,6 +445,7 @@
"onboarding.actions.close": "Don't show this screen again", "onboarding.actions.close": "Don't show this screen again",
"onboarding.actions.go_to_explore": "See what's trending", "onboarding.actions.go_to_explore": "See what's trending",
"onboarding.actions.go_to_home": "Go to your home feed", "onboarding.actions.go_to_home": "Go to your home feed",
"onboarding.compose.template": "Hello #Mastodon!",
"onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.", "onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Popular on Mastodon", "onboarding.follows.title": "Popular on Mastodon",

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Copiar lo seguimiento de pila en o portafuellas", "errors.unexpected_crash.copy_stacktrace": "Copiar lo seguimiento de pila en o portafuellas",
"errors.unexpected_crash.report_issue": "Informar d'un problema/error", "errors.unexpected_crash.report_issue": "Informar d'un problema/error",
"explore.search_results": "Resultaus de busqueda", "explore.search_results": "Resultaus de busqueda",
"explore.suggested_follows": "Pa tu", "explore.suggested_follows": "People",
"explore.title": "Explorar", "explore.title": "Explorar",
"explore.trending_links": "Noticias", "explore.trending_links": "Noticias",
"explore.trending_statuses": "Publicacions", "explore.trending_statuses": "Publicacions",
@ -445,6 +445,7 @@
"onboarding.actions.close": "Don't show this screen again", "onboarding.actions.close": "Don't show this screen again",
"onboarding.actions.go_to_explore": "See what's trending", "onboarding.actions.go_to_explore": "See what's trending",
"onboarding.actions.go_to_home": "Go to your home feed", "onboarding.actions.go_to_home": "Go to your home feed",
"onboarding.compose.template": "Hello #Mastodon!",
"onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.", "onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Popular on Mastodon", "onboarding.follows.title": "Popular on Mastodon",

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "انسخ تتبع الارتباطات إلى الحافظة", "errors.unexpected_crash.copy_stacktrace": "انسخ تتبع الارتباطات إلى الحافظة",
"errors.unexpected_crash.report_issue": "الإبلاغ عن خلل", "errors.unexpected_crash.report_issue": "الإبلاغ عن خلل",
"explore.search_results": "نتائج البحث", "explore.search_results": "نتائج البحث",
"explore.suggested_follows": "لك", "explore.suggested_follows": "People",
"explore.title": "استكشف", "explore.title": "استكشف",
"explore.trending_links": "الأخبار", "explore.trending_links": "الأخبار",
"explore.trending_statuses": "المنشورات", "explore.trending_statuses": "المنشورات",
@ -445,6 +445,7 @@
"onboarding.actions.close": "Don't show this screen again", "onboarding.actions.close": "Don't show this screen again",
"onboarding.actions.go_to_explore": "See what's trending", "onboarding.actions.go_to_explore": "See what's trending",
"onboarding.actions.go_to_home": "Go to your home feed", "onboarding.actions.go_to_home": "Go to your home feed",
"onboarding.compose.template": "Hello #Mastodon!",
"onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.", "onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Popular on Mastodon", "onboarding.follows.title": "Popular on Mastodon",

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
"errors.unexpected_crash.report_issue": "Report issue", "errors.unexpected_crash.report_issue": "Report issue",
"explore.search_results": "Resultaos de la busca", "explore.search_results": "Resultaos de la busca",
"explore.suggested_follows": "Pa ti", "explore.suggested_follows": "People",
"explore.title": "Esploración", "explore.title": "Esploración",
"explore.trending_links": "Noticies", "explore.trending_links": "Noticies",
"explore.trending_statuses": "Artículos", "explore.trending_statuses": "Artículos",
@ -445,6 +445,7 @@
"onboarding.actions.close": "Don't show this screen again", "onboarding.actions.close": "Don't show this screen again",
"onboarding.actions.go_to_explore": "See what's trending", "onboarding.actions.go_to_explore": "See what's trending",
"onboarding.actions.go_to_home": "Go to your home feed", "onboarding.actions.go_to_home": "Go to your home feed",
"onboarding.compose.template": "Hello #Mastodon!",
"onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.", "onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Popular en Mastodon", "onboarding.follows.title": "Popular en Mastodon",

View file

@ -182,7 +182,7 @@
"conversation.with": "З {names}", "conversation.with": "З {names}",
"copypaste.copied": "Скапіравана", "copypaste.copied": "Скапіравана",
"copypaste.copy": "Скапіраваць", "copypaste.copy": "Скапіраваць",
"copypaste.copy_to_clipboard": "Copy to clipboard", "copypaste.copy_to_clipboard": "Капіраваць у буфер абмену",
"directory.federated": "З вядомага федэсвету", "directory.federated": "З вядомага федэсвету",
"directory.local": "Толькі з {domain}", "directory.local": "Толькі з {domain}",
"directory.new_arrivals": "Новыя карыстальнікі", "directory.new_arrivals": "Новыя карыстальнікі",
@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Дадаць дыягнастычны стэк у буфер абмену", "errors.unexpected_crash.copy_stacktrace": "Дадаць дыягнастычны стэк у буфер абмену",
"errors.unexpected_crash.report_issue": "Паведаміць аб праблеме", "errors.unexpected_crash.report_issue": "Паведаміць аб праблеме",
"explore.search_results": "Вынікі пошуку", "explore.search_results": "Вынікі пошуку",
"explore.suggested_follows": "Для вас", "explore.suggested_follows": "People",
"explore.title": "Агляд", "explore.title": "Агляд",
"explore.trending_links": "Навіны", "explore.trending_links": "Навіны",
"explore.trending_statuses": "Допісы", "explore.trending_statuses": "Допісы",
@ -440,21 +440,22 @@
"notifications_permission_banner.enable": "Уключыць апавяшчэнні на працоўным стале", "notifications_permission_banner.enable": "Уключыць апавяшчэнні на працоўным стале",
"notifications_permission_banner.how_to_control": "Каб атрымліваць апавяшчэнні, калі Mastodon не адкрыты, уключыце апавяшчэнні працоўнага стала. Вы зможаце дакладна кантраляваць, якія падзеі будуць ствараць апавяшчэнні з дапамогай {icon} кнопкі, як толькі яны будуць уключаны.", "notifications_permission_banner.how_to_control": "Каб атрымліваць апавяшчэнні, калі Mastodon не адкрыты, уключыце апавяшчэнні працоўнага стала. Вы зможаце дакладна кантраляваць, якія падзеі будуць ствараць апавяшчэнні з дапамогай {icon} кнопкі, як толькі яны будуць уключаны.",
"notifications_permission_banner.title": "Не прапусціце нічога", "notifications_permission_banner.title": "Не прапусціце нічога",
"onboarding.action.back": "Take me back", "onboarding.action.back": "Прыняць мяне назад",
"onboarding.actions.back": "Take me back", "onboarding.actions.back": "Прыняць мяне назад",
"onboarding.actions.close": "Don't show this screen again", "onboarding.actions.close": "Больш не паказваць гэты экран",
"onboarding.actions.go_to_explore": "See what's trending", "onboarding.actions.go_to_explore": "Паглядзіце, што ў трэндзе",
"onboarding.actions.go_to_home": "Go to your home feed", "onboarding.actions.go_to_home": "Перайдзіце на свой хатні канал",
"onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.", "onboarding.compose.template": "Hello #Mastodon!",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.empty": "На жаль, зараз немагчыма паказаць вынікі. Вы можаце паспрабаваць выкарыстоўваць пошук і праглядзець старонку агляду, каб знайсці людзей, на якіх можна падпісацца, або паўтарыце спробу пазней.",
"onboarding.follows.title": "Popular on Mastodon", "onboarding.follows.lead": "Вы самі ствараеце свой хатні канал. Чым больш людзей вы падпішаце, тым больш актыўна і цікавей гэта будзе. Гэтыя профілі могуць стаць добрай адпраўной кропкай — вы заўсёды можаце адмяніць падпіску на іх пазней!",
"onboarding.share.lead": "Let people know how they can find you on Mastodon!", "onboarding.follows.title": "Папулярна на Mastodon",
"onboarding.share.message": "I'm {username} on #Mastodon! Come follow me at {url}", "onboarding.share.lead": "Дайце людзям ведаць, як яны могуць знайсці вас на Mastodon!",
"onboarding.share.next_steps": "Possible next steps:", "onboarding.share.message": "Я {username} на #Mastodon! Сачыце за мной на {url}",
"onboarding.share.title": "Share your profile", "onboarding.share.next_steps": "Магчымыя наступныя крокі:",
"onboarding.share.title": "Падзяліцеся сваім профілем",
"onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:", "onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:",
"onboarding.start.skip": "Want to skip right ahead?", "onboarding.start.skip": "Want to skip right ahead?",
"onboarding.start.title": "You've made it!", "onboarding.start.title": "Вы зрабілі гэта!",
"onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.", "onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.",
"onboarding.steps.follow_people.title": "Follow {count, plural, one {one person} other {# people}}", "onboarding.steps.follow_people.title": "Follow {count, plural, one {one person} other {# people}}",
"onboarding.steps.publish_status.body": "Say hello to the world.", "onboarding.steps.publish_status.body": "Say hello to the world.",

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Копиране на трасето на стека в буферната памет", "errors.unexpected_crash.copy_stacktrace": "Копиране на трасето на стека в буферната памет",
"errors.unexpected_crash.report_issue": "Сигнал за проблем", "errors.unexpected_crash.report_issue": "Сигнал за проблем",
"explore.search_results": "Резултати от търсенето", "explore.search_results": "Резултати от търсенето",
"explore.suggested_follows": "За вас", "explore.suggested_follows": "Хора",
"explore.title": "Разглеждане", "explore.title": "Разглеждане",
"explore.trending_links": "Новини", "explore.trending_links": "Новини",
"explore.trending_statuses": "Публикации", "explore.trending_statuses": "Публикации",
@ -445,11 +445,12 @@
"onboarding.actions.close": "Без показване пак на този екран", "onboarding.actions.close": "Без показване пак на този екран",
"onboarding.actions.go_to_explore": "Вижте какво изгрява", "onboarding.actions.go_to_explore": "Вижте какво изгрява",
"onboarding.actions.go_to_home": "Към началния ви инфоканал", "onboarding.actions.go_to_home": "Към началния ви инфоканал",
"onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.", "onboarding.compose.template": "Здравейте, #Mastodon!",
"onboarding.follows.empty": "За съжаление, в момента не могат да се показват резултати. Може да опитате да употребявате търсене или да прегледате страницата за изследване, за да намерите страница за последване, или да опитате пак по-късно.",
"onboarding.follows.lead": "Може да бъдете куратор на началния си инфоканал. Последвайки повече хора, по-деен и по-интересен ще става. Тези профили може да са добра начална точка, от която винаги по-късно да спрете да следвате!", "onboarding.follows.lead": "Може да бъдете куратор на началния си инфоканал. Последвайки повече хора, по-деен и по-интересен ще става. Тези профили може да са добра начална точка, от която винаги по-късно да спрете да следвате!",
"onboarding.follows.title": "Популярно в Mastodon", "onboarding.follows.title": "Популярно в Mastodon",
"onboarding.share.lead": "Позволете на хората да знаят, че могат да ви намерят в Mastodon!", "onboarding.share.lead": "Позволете на хората да знаят, че могат да ви намерят в Mastodon!",
"onboarding.share.message": "I'm {username} on #Mastodon! Come follow me at {url}", "onboarding.share.message": "Аз съм {username} в #Mastodon! Елате да ме последвате при {url}",
"onboarding.share.next_steps": "Възможни следващи стъпки:", "onboarding.share.next_steps": "Възможни следващи стъпки:",
"onboarding.share.title": "Споделяне на профила ви", "onboarding.share.title": "Споделяне на профила ви",
"onboarding.start.lead": "Вашият нов акаунт в Mastodon е готов за употреба. Ето как може да се възползвате по най-добрия начин от него:", "onboarding.start.lead": "Вашият нов акаунт в Mastodon е готов за употреба. Ето как може да се възползвате по най-добрия начин от него:",
@ -463,9 +464,9 @@
"onboarding.steps.setup_profile.title": "Пригодете профила си", "onboarding.steps.setup_profile.title": "Пригодете профила си",
"onboarding.steps.share_profile.body": "Позволете на приятелите си да знаят как да ви намират в Mastodon!", "onboarding.steps.share_profile.body": "Позволете на приятелите си да знаят как да ви намират в Mastodon!",
"onboarding.steps.share_profile.title": "Споделяне на профила ви", "onboarding.steps.share_profile.title": "Споделяне на профила ви",
"onboarding.tips.2fa": "<strong>Did you know?</strong> You can secure your account by setting up two-factor authentication in your account settings. It works with any TOTP app of your choice, no phone number necessary!", "onboarding.tips.2fa": "<strong>Знаете ли, че?</strong> Може да защитите акаунта си, настройвайки двуфакторното удостоверяване в настройките на акаунта си. То работи с всяко приложение TOTP по ваш избор, не е необходим номер телефона!",
"onboarding.tips.accounts_from_other_servers": "<strong>Знаете ли, че?</strong> Откак Mastodon е децентрализиран, някои профили, които срещате ще бъдат разположени на сървъри различен от вашия. И още може да взаимодействате с тях безпроблемно! Сървърът им е втората половина от потребителското им име!", "onboarding.tips.accounts_from_other_servers": "<strong>Знаете ли, че?</strong> Откак Mastodon е децентрализиран, някои профили, които срещате ще бъдат разположени на сървъри различен от вашия. И още може да взаимодействате с тях безпроблемно! Сървърът им е втората половина от потребителското им име!",
"onboarding.tips.migration": "<strong>Did you know?</strong> If you feel like {domain} is not a great server choice for you in the future, you can move to another Mastodon server without losing your followers. You can even host your own server!", "onboarding.tips.migration": "<strong>Знаете ли, че?</strong> Ако се чувствате, че {domain} не е чудесен избор на сървър в бъдуще, може да се преместите на друг сървър на Mastodon без да загубите последователите си. Дори може да сте съдържатели на свой собствен сървър!",
"onboarding.tips.verification": "<strong>Did you know?</strong> You can verify your account by putting a link to your Mastodon profile on your own website and adding the website to your profile. No fees or documents necessary!", "onboarding.tips.verification": "<strong>Did you know?</strong> You can verify your account by putting a link to your Mastodon profile on your own website and adding the website to your profile. No fees or documents necessary!",
"password_confirmation.exceeds_maxlength": "Потвърждаването на паролата превишава максимално допустимата дължина за парола", "password_confirmation.exceeds_maxlength": "Потвърждаването на паролата превишава максимално допустимата дължина за парола",
"password_confirmation.mismatching": "Потвърждаването на паролата не съвпада", "password_confirmation.mismatching": "Потвърждаването на паролата не съвпада",

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "স্টেকট্রেস ক্লিপবোর্ডে কপি করুন", "errors.unexpected_crash.copy_stacktrace": "স্টেকট্রেস ক্লিপবোর্ডে কপি করুন",
"errors.unexpected_crash.report_issue": "সমস্যার প্রতিবেদন করুন", "errors.unexpected_crash.report_issue": "সমস্যার প্রতিবেদন করুন",
"explore.search_results": "Search results", "explore.search_results": "Search results",
"explore.suggested_follows": "For you", "explore.suggested_follows": "People",
"explore.title": "Explore", "explore.title": "Explore",
"explore.trending_links": "সংবাদ", "explore.trending_links": "সংবাদ",
"explore.trending_statuses": "Posts", "explore.trending_statuses": "Posts",
@ -445,6 +445,7 @@
"onboarding.actions.close": "Don't show this screen again", "onboarding.actions.close": "Don't show this screen again",
"onboarding.actions.go_to_explore": "See what's trending", "onboarding.actions.go_to_explore": "See what's trending",
"onboarding.actions.go_to_home": "Go to your home feed", "onboarding.actions.go_to_home": "Go to your home feed",
"onboarding.compose.template": "Hello #Mastodon!",
"onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.", "onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Popular on Mastodon", "onboarding.follows.title": "Popular on Mastodon",

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Eilañ ar roudoù diveugañ er golver", "errors.unexpected_crash.copy_stacktrace": "Eilañ ar roudoù diveugañ er golver",
"errors.unexpected_crash.report_issue": "Danevellañ ur fazi", "errors.unexpected_crash.report_issue": "Danevellañ ur fazi",
"explore.search_results": "Disoc'hoù an enklask", "explore.search_results": "Disoc'hoù an enklask",
"explore.suggested_follows": "For you", "explore.suggested_follows": "People",
"explore.title": "Furchal", "explore.title": "Furchal",
"explore.trending_links": "News", "explore.trending_links": "News",
"explore.trending_statuses": "Posts", "explore.trending_statuses": "Posts",
@ -445,6 +445,7 @@
"onboarding.actions.close": "Don't show this screen again", "onboarding.actions.close": "Don't show this screen again",
"onboarding.actions.go_to_explore": "See what's trending", "onboarding.actions.go_to_explore": "See what's trending",
"onboarding.actions.go_to_home": "Go to your home feed", "onboarding.actions.go_to_home": "Go to your home feed",
"onboarding.compose.template": "Hello #Mastodon!",
"onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.", "onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Popular on Mastodon", "onboarding.follows.title": "Popular on Mastodon",

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
"errors.unexpected_crash.report_issue": "Report issue", "errors.unexpected_crash.report_issue": "Report issue",
"explore.search_results": "Search results", "explore.search_results": "Search results",
"explore.suggested_follows": "For you", "explore.suggested_follows": "People",
"explore.title": "Explore", "explore.title": "Explore",
"explore.trending_links": "News", "explore.trending_links": "News",
"explore.trending_statuses": "Posts", "explore.trending_statuses": "Posts",
@ -445,6 +445,7 @@
"onboarding.actions.close": "Don't show this screen again", "onboarding.actions.close": "Don't show this screen again",
"onboarding.actions.go_to_explore": "See what's trending", "onboarding.actions.go_to_explore": "See what's trending",
"onboarding.actions.go_to_home": "Go to your home feed", "onboarding.actions.go_to_home": "Go to your home feed",
"onboarding.compose.template": "Hello #Mastodon!",
"onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.", "onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Popular on Mastodon", "onboarding.follows.title": "Popular on Mastodon",

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Copia stacktrace al porta-retalls", "errors.unexpected_crash.copy_stacktrace": "Copia stacktrace al porta-retalls",
"errors.unexpected_crash.report_issue": "Informa d'un problema", "errors.unexpected_crash.report_issue": "Informa d'un problema",
"explore.search_results": "Resultats de la cerca", "explore.search_results": "Resultats de la cerca",
"explore.suggested_follows": "Per a tu", "explore.suggested_follows": "Persones",
"explore.title": "Explora", "explore.title": "Explora",
"explore.trending_links": "Notícies", "explore.trending_links": "Notícies",
"explore.trending_statuses": "Tuts", "explore.trending_statuses": "Tuts",
@ -445,6 +445,7 @@
"onboarding.actions.close": "No tornis a mostrar aquesta pantalla", "onboarding.actions.close": "No tornis a mostrar aquesta pantalla",
"onboarding.actions.go_to_explore": "Mira què és tendència", "onboarding.actions.go_to_explore": "Mira què és tendència",
"onboarding.actions.go_to_home": "Vés a la teva línia de temps inici", "onboarding.actions.go_to_home": "Vés a la teva línia de temps inici",
"onboarding.compose.template": "Hello #Mastodon!",
"onboarding.follows.empty": "Malauradament, cap resultat pot ser mostrat ara mateix. Pots provar de fer servir la cerca o visitar la pàgina Explora per a trobar gent a qui seguir o provar-ho de nou més tard.", "onboarding.follows.empty": "Malauradament, cap resultat pot ser mostrat ara mateix. Pots provar de fer servir la cerca o visitar la pàgina Explora per a trobar gent a qui seguir o provar-ho de nou més tard.",
"onboarding.follows.lead": "Tu tens cura de la teva línia de temps inici. Com més gent segueixis, més activa i interessant serà. Aquests perfils poden ser un bon punt d'inici—sempre pots acabar deixant-los de seguir!", "onboarding.follows.lead": "Tu tens cura de la teva línia de temps inici. Com més gent segueixis, més activa i interessant serà. Aquests perfils poden ser un bon punt d'inici—sempre pots acabar deixant-los de seguir!",
"onboarding.follows.title": "Popular a Mastodon", "onboarding.follows.title": "Popular a Mastodon",

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "کۆپیکردنی ستێکتراسی بۆ کلیپ بۆرد", "errors.unexpected_crash.copy_stacktrace": "کۆپیکردنی ستێکتراسی بۆ کلیپ بۆرد",
"errors.unexpected_crash.report_issue": "کێشەی گوزارشت", "errors.unexpected_crash.report_issue": "کێشەی گوزارشت",
"explore.search_results": "ئەنجامەکانی گەڕان", "explore.search_results": "ئەنجامەکانی گەڕان",
"explore.suggested_follows": "بۆ تۆ", "explore.suggested_follows": "People",
"explore.title": "گەڕان", "explore.title": "گەڕان",
"explore.trending_links": "هەواڵەکان", "explore.trending_links": "هەواڵەکان",
"explore.trending_statuses": "بڵاوکراوەکان", "explore.trending_statuses": "بڵاوکراوەکان",
@ -445,6 +445,7 @@
"onboarding.actions.close": "Don't show this screen again", "onboarding.actions.close": "Don't show this screen again",
"onboarding.actions.go_to_explore": "See what's trending", "onboarding.actions.go_to_explore": "See what's trending",
"onboarding.actions.go_to_home": "Go to your home feed", "onboarding.actions.go_to_home": "Go to your home feed",
"onboarding.compose.template": "Hello #Mastodon!",
"onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.", "onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Popular on Mastodon", "onboarding.follows.title": "Popular on Mastodon",

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Cupià stacktrace nant'à u fermacarta", "errors.unexpected_crash.copy_stacktrace": "Cupià stacktrace nant'à u fermacarta",
"errors.unexpected_crash.report_issue": "Palisà prublemu", "errors.unexpected_crash.report_issue": "Palisà prublemu",
"explore.search_results": "Search results", "explore.search_results": "Search results",
"explore.suggested_follows": "For you", "explore.suggested_follows": "People",
"explore.title": "Explore", "explore.title": "Explore",
"explore.trending_links": "News", "explore.trending_links": "News",
"explore.trending_statuses": "Posts", "explore.trending_statuses": "Posts",
@ -445,6 +445,7 @@
"onboarding.actions.close": "Don't show this screen again", "onboarding.actions.close": "Don't show this screen again",
"onboarding.actions.go_to_explore": "See what's trending", "onboarding.actions.go_to_explore": "See what's trending",
"onboarding.actions.go_to_home": "Go to your home feed", "onboarding.actions.go_to_home": "Go to your home feed",
"onboarding.compose.template": "Hello #Mastodon!",
"onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.", "onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Popular on Mastodon", "onboarding.follows.title": "Popular on Mastodon",

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Zkopírovat stacktrace do schránky", "errors.unexpected_crash.copy_stacktrace": "Zkopírovat stacktrace do schránky",
"errors.unexpected_crash.report_issue": "Nahlásit problém", "errors.unexpected_crash.report_issue": "Nahlásit problém",
"explore.search_results": "Výsledky hledání", "explore.search_results": "Výsledky hledání",
"explore.suggested_follows": "Pro vás", "explore.suggested_follows": "People",
"explore.title": "Objevit", "explore.title": "Objevit",
"explore.trending_links": "Zprávy", "explore.trending_links": "Zprávy",
"explore.trending_statuses": "Příspěvky", "explore.trending_statuses": "Příspěvky",
@ -445,6 +445,7 @@
"onboarding.actions.close": "Příště nezobrazovat tuto obrazovku", "onboarding.actions.close": "Příště nezobrazovat tuto obrazovku",
"onboarding.actions.go_to_explore": "Podívejte se, co je populární", "onboarding.actions.go_to_explore": "Podívejte se, co je populární",
"onboarding.actions.go_to_home": "Přejít na svůj domovský feed", "onboarding.actions.go_to_home": "Přejít na svůj domovský feed",
"onboarding.compose.template": "Hello #Mastodon!",
"onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.", "onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Populární na Mastodonu", "onboarding.follows.title": "Populární na Mastodonu",

View file

@ -182,7 +182,7 @@
"conversation.with": "Gyda {names}", "conversation.with": "Gyda {names}",
"copypaste.copied": "Wedi ei gopïo", "copypaste.copied": "Wedi ei gopïo",
"copypaste.copy": "Copïo", "copypaste.copy": "Copïo",
"copypaste.copy_to_clipboard": "Copy to clipboard", "copypaste.copy_to_clipboard": "Copïo i'r clipfwrdd",
"directory.federated": "O'r ffedysawd cyfan", "directory.federated": "O'r ffedysawd cyfan",
"directory.local": "O {domain} yn unig", "directory.local": "O {domain} yn unig",
"directory.new_arrivals": "Defnyddwyr newydd", "directory.new_arrivals": "Defnyddwyr newydd",
@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Copïo'r olrhain stac i'r clipfwrdd", "errors.unexpected_crash.copy_stacktrace": "Copïo'r olrhain stac i'r clipfwrdd",
"errors.unexpected_crash.report_issue": "Rhoi gwybod am broblem", "errors.unexpected_crash.report_issue": "Rhoi gwybod am broblem",
"explore.search_results": "Canlyniadau chwilio", "explore.search_results": "Canlyniadau chwilio",
"explore.suggested_follows": "I chi", "explore.suggested_follows": "Pobl",
"explore.title": "Darganfod", "explore.title": "Darganfod",
"explore.trending_links": "Newyddion", "explore.trending_links": "Newyddion",
"explore.trending_statuses": "Postiadau", "explore.trending_statuses": "Postiadau",
@ -440,33 +440,34 @@
"notifications_permission_banner.enable": "Galluogi hysbysiadau bwrdd gwaith", "notifications_permission_banner.enable": "Galluogi hysbysiadau bwrdd gwaith",
"notifications_permission_banner.how_to_control": "I dderbyn hysbysiadau pan nad yw Mastodon ar agor, galluogwch hysbysiadau bwrdd gwaith. Gallwch reoli'n union pa fathau o ryngweithiadau sy'n cynhyrchu hysbysiadau bwrdd gwaith trwy'r botwm {icon} uchod unwaith y byddant wedi'u galluogi.", "notifications_permission_banner.how_to_control": "I dderbyn hysbysiadau pan nad yw Mastodon ar agor, galluogwch hysbysiadau bwrdd gwaith. Gallwch reoli'n union pa fathau o ryngweithiadau sy'n cynhyrchu hysbysiadau bwrdd gwaith trwy'r botwm {icon} uchod unwaith y byddant wedi'u galluogi.",
"notifications_permission_banner.title": "Peidiwch colli dim", "notifications_permission_banner.title": "Peidiwch colli dim",
"onboarding.action.back": "Take me back", "onboarding.action.back": "Ewch â fi yn ôl",
"onboarding.actions.back": "Take me back", "onboarding.actions.back": "Ewch â fi yn ôl",
"onboarding.actions.close": "Don't show this screen again", "onboarding.actions.close": "Peidio â dangos y sgrin hon eto",
"onboarding.actions.go_to_explore": "See what's trending", "onboarding.actions.go_to_explore": "Gweld beth yw'r tuedd",
"onboarding.actions.go_to_home": "Go to your home feed", "onboarding.actions.go_to_home": "Ewch i'ch ffrwd gartref",
"onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.", "onboarding.compose.template": "Helo, #Mastodon!",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.empty": "Yn anffodus, nid oes modd dangos unrhyw ganlyniadau ar hyn o bryd. Gallwch geisio defnyddio chwilio neu bori'r dudalen archwilio i ddod o hyd i bobl i'w dilyn, neu ceisio eto yn nes ymlaen.",
"onboarding.follows.title": "Popular on Mastodon", "onboarding.follows.lead": "Rydych chi'n curadu eich ffrwd gartref eich hun. Po fwyaf o bobl y byddwch chi'n eu dilyn, y mwyaf egnïol a diddorol fydd hi. Gall y proffiliau hyn fod yn fan cychwyn da - gallwch chi bob amser eu dad-ddilyn yn nes ymlaen!",
"onboarding.share.lead": "Let people know how they can find you on Mastodon!", "onboarding.follows.title": "Yn boblogaidd ar Mastodon",
"onboarding.share.message": "I'm {username} on #Mastodon! Come follow me at {url}", "onboarding.share.lead": "Cofiwch ddweud wrth bobl sut y gallan nhw ddod o hyd i chi ar Mastodon!",
"onboarding.share.next_steps": "Possible next steps:", "onboarding.share.message": "Fi yw {username} ar #Mastodon! Dewch i'm dilyn i yn {url}",
"onboarding.share.title": "Share your profile", "onboarding.share.next_steps": "Camau nesaf posib:",
"onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:", "onboarding.share.title": "Rhannwch eich proffil",
"onboarding.start.skip": "Want to skip right ahead?", "onboarding.start.lead": "Mae eich cyfrif Mastodon newydd yn barod! Dyma sut y gallwch chi wneud y gorau ohono:",
"onboarding.start.title": "You've made it!", "onboarding.start.skip": "Eisiau mynd syth yn eich blaen?",
"onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.", "onboarding.start.title": "Rydych chi wedi cyrraedd!",
"onboarding.steps.follow_people.title": "Follow {count, plural, one {one person} other {# people}}", "onboarding.steps.follow_people.body": "Rydych chi'n curadu eich ffrwd eich hun. Gadewch i ni ei lenwi â phobl ddiddorol.",
"onboarding.steps.publish_status.body": "Say hello to the world.", "onboarding.steps.follow_people.title": "Dilynwch {count, plural, one {one person} other {# people}}",
"onboarding.steps.publish_status.title": "Make your first post", "onboarding.steps.publish_status.body": "Dywedwch helo wrth y byd.",
"onboarding.steps.setup_profile.body": "Others are more likely to interact with you with a filled out profile.", "onboarding.steps.publish_status.title": "Gwnewch eich postiad cyntaf",
"onboarding.steps.setup_profile.title": "Customize your profile", "onboarding.steps.setup_profile.body": "Mae eraill yn fwy tebygol o ryngweithio â chi gyda phroffil wedi'i lenwi.",
"onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!", "onboarding.steps.setup_profile.title": "Cyfaddaswch eich proffil",
"onboarding.steps.share_profile.title": "Share your profile", "onboarding.steps.share_profile.body": "Gadewch i'ch ffrindiau wybod sut i ddod o hyd i chi ar Mastodon!",
"onboarding.tips.2fa": "<strong>Did you know?</strong> You can secure your account by setting up two-factor authentication in your account settings. It works with any TOTP app of your choice, no phone number necessary!", "onboarding.steps.share_profile.title": "Rhannwch eich proffil",
"onboarding.tips.accounts_from_other_servers": "<strong>Did you know?</strong> Since Mastodon is decentralized, some profiles you come across will be hosted on servers other than yours. And yet you can interact with them seamlessly! Their server is in the second half of their username!", "onboarding.tips.2fa": "<strong>Oeddech chi'n gwybod?</strong> Gallwch ddiogelu'ch cyfrif trwy osod dilysiad dau ffactor yng ngosodiadau eich cyfrif. Mae'n gweithio gydag unrhyw app TOTP o'ch dewis, nid oes angen rhif ffôn!",
"onboarding.tips.migration": "<strong>Did you know?</strong> If you feel like {domain} is not a great server choice for you in the future, you can move to another Mastodon server without losing your followers. You can even host your own server!", "onboarding.tips.accounts_from_other_servers": "<strong>Oeddech chi'n gwybod?</strong> Gan fod Mastodon wedi'i ddatganoli, bydd rhai proffiliau y dewch ar eu traws yn cael eu cynnal ar weinyddion heblaw eich un chi. Ac eto gallwch chi ryngweithio â nhw yn hawdd! Mae eu gweinydd yn ail hanner eu henw defnyddiwr!",
"onboarding.tips.verification": "<strong>Did you know?</strong> You can verify your account by putting a link to your Mastodon profile on your own website and adding the website to your profile. No fees or documents necessary!", "onboarding.tips.migration": "<strong>Oeddech chi'n gwybod?</strong> Os ydych chi'n teimlo nad yw {domain} yn ddewis gweinydd gwych i chi i'r dyfodol, gallwch chi symud i weinydd Mastodon arall heb golli'ch dilynwyr. Gallwch chi hyd yn oed gynnal eich gweinydd eich hun!",
"onboarding.tips.verification": "<strong>Oeddech chi'n gwybod?</strong> Gallwch wirio'ch cyfrif trwy roi dolen i'ch proffil Mastodon ar eich gwefan eich hun ac ychwanegu'r wefan at eich proffil. Nid oes angen ffioedd na dogfennau!",
"password_confirmation.exceeds_maxlength": "Mae'r cadarnhad cyfrinair yn fwy nag uchafswm hyd y cyfrinair", "password_confirmation.exceeds_maxlength": "Mae'r cadarnhad cyfrinair yn fwy nag uchafswm hyd y cyfrinair",
"password_confirmation.mismatching": "Nid yw'r cadarnhad cyfrinair yn cyfateb", "password_confirmation.mismatching": "Nid yw'r cadarnhad cyfrinair yn cyfateb",
"picture_in_picture.restore": "Rhowch ef yn ôl", "picture_in_picture.restore": "Rhowch ef yn ôl",

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Kopiér stacktrace til udklipsholderen", "errors.unexpected_crash.copy_stacktrace": "Kopiér stacktrace til udklipsholderen",
"errors.unexpected_crash.report_issue": "Anmeld problem", "errors.unexpected_crash.report_issue": "Anmeld problem",
"explore.search_results": "Søgeresultater", "explore.search_results": "Søgeresultater",
"explore.suggested_follows": "Til dig", "explore.suggested_follows": "People",
"explore.title": "Udforsk", "explore.title": "Udforsk",
"explore.trending_links": "Nyheder", "explore.trending_links": "Nyheder",
"explore.trending_statuses": "Indlæg", "explore.trending_statuses": "Indlæg",
@ -445,6 +445,7 @@
"onboarding.actions.close": "Vis ikke denne skærm igen", "onboarding.actions.close": "Vis ikke denne skærm igen",
"onboarding.actions.go_to_explore": "Se, hvad som trender", "onboarding.actions.go_to_explore": "Se, hvad som trender",
"onboarding.actions.go_to_home": "Gå til hjemme-feed'et", "onboarding.actions.go_to_home": "Gå til hjemme-feed'et",
"onboarding.compose.template": "Hello #Mastodon!",
"onboarding.follows.empty": "Ingen resultater tilgængelige pt. Prøv at bruge søgning eller gennemse siden for at finde personer at følge, eller forsøg igen senere.", "onboarding.follows.empty": "Ingen resultater tilgængelige pt. Prøv at bruge søgning eller gennemse siden for at finde personer at følge, eller forsøg igen senere.",
"onboarding.follows.lead": "Man kurerer sin eget hjemme-feed. Jo flere personer man følger, des mere aktiv og interessant vil det være. Disse profiler kan være et godt udgangspunkt de kan altid fjernes senere!", "onboarding.follows.lead": "Man kurerer sin eget hjemme-feed. Jo flere personer man følger, des mere aktiv og interessant vil det være. Disse profiler kan være et godt udgangspunkt de kan altid fjernes senere!",
"onboarding.follows.title": "Populært på Mastodon", "onboarding.follows.title": "Populært på Mastodon",

View file

@ -218,7 +218,7 @@
"empty_column.blocks": "Du hast bisher keine Profile gesperrt.", "empty_column.blocks": "Du hast bisher keine Profile gesperrt.",
"empty_column.bookmarked_statuses": "Du hast bisher keine Beiträge als Lesezeichen abgelegt. Sobald du einen Beitrag als Lesezeichen speicherst, wird er hier erscheinen.", "empty_column.bookmarked_statuses": "Du hast bisher keine Beiträge als Lesezeichen abgelegt. Sobald du einen Beitrag als Lesezeichen speicherst, wird er hier erscheinen.",
"empty_column.community": "Die lokale Timeline ist leer. Schreibe einen öffentlichen Beitrag, um den Stein ins Rollen zu bringen!", "empty_column.community": "Die lokale Timeline ist leer. Schreibe einen öffentlichen Beitrag, um den Stein ins Rollen zu bringen!",
"empty_column.direct": "Du hast noch keine Direktnachrichten erhalten. Sobald du eine private Nachricht sendest oder empfängst, wird sie hier zu sehen sein.", "empty_column.direct": "Du hast noch keine Direktnachrichten. Sobald du eine Nachricht sendest oder empfängst, wird sie hier zu sehen sein.",
"empty_column.domain_blocks": "Du hast noch keine Domains gesperrt.", "empty_column.domain_blocks": "Du hast noch keine Domains gesperrt.",
"empty_column.explore_statuses": "Momentan ist nichts im Trend. Schau später wieder vorbei!", "empty_column.explore_statuses": "Momentan ist nichts im Trend. Schau später wieder vorbei!",
"empty_column.favourited_statuses": "Du hast noch keine Beiträge favorisiert. Sobald du einen favorisierst, wird er hier erscheinen.", "empty_column.favourited_statuses": "Du hast noch keine Beiträge favorisiert. Sobald du einen favorisierst, wird er hier erscheinen.",
@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Fehlerdiagnose in die Zwischenablage kopieren", "errors.unexpected_crash.copy_stacktrace": "Fehlerdiagnose in die Zwischenablage kopieren",
"errors.unexpected_crash.report_issue": "Fehler melden", "errors.unexpected_crash.report_issue": "Fehler melden",
"explore.search_results": "Suchergebnisse", "explore.search_results": "Suchergebnisse",
"explore.suggested_follows": "Für dich", "explore.suggested_follows": "Profile",
"explore.title": "Entdecken", "explore.title": "Entdecken",
"explore.trending_links": "Neuigkeiten", "explore.trending_links": "Neuigkeiten",
"explore.trending_statuses": "Beiträge", "explore.trending_statuses": "Beiträge",
@ -445,6 +445,7 @@
"onboarding.actions.close": "Diese Seite nicht mehr anzeigen", "onboarding.actions.close": "Diese Seite nicht mehr anzeigen",
"onboarding.actions.go_to_explore": "Sieh, was gerade angesagt ist", "onboarding.actions.go_to_explore": "Sieh, was gerade angesagt ist",
"onboarding.actions.go_to_home": "Gehe zu deiner Startseite", "onboarding.actions.go_to_home": "Gehe zu deiner Startseite",
"onboarding.compose.template": "Hallo #Mastodon!",
"onboarding.follows.empty": "Bedauerlicherweise können aktuell keine Ergebnisse angezeigt werden. Du kannst die Suche verwenden oder den Reiter „Entdecken“ auswählen, um neue Leute zum Folgen zu finden oder du versuchst es später erneut.", "onboarding.follows.empty": "Bedauerlicherweise können aktuell keine Ergebnisse angezeigt werden. Du kannst die Suche verwenden oder den Reiter „Entdecken“ auswählen, um neue Leute zum Folgen zu finden oder du versuchst es später erneut.",
"onboarding.follows.lead": "Du verwaltest deine eigene Startseite. Je mehr Leuten du folgst, desto aktiver und interessanter wird sie sein. Diese Profile können ein guter Start sein du kannst ihnen später immer noch entfolgen!", "onboarding.follows.lead": "Du verwaltest deine eigene Startseite. Je mehr Leuten du folgst, desto aktiver und interessanter wird sie sein. Diese Profile können ein guter Start sein du kannst ihnen später immer noch entfolgen!",
"onboarding.follows.title": "Beliebt auf Mastodon", "onboarding.follows.title": "Beliebt auf Mastodon",
@ -461,7 +462,7 @@
"onboarding.steps.publish_status.title": "Erstelle deinen ersten Beitrag", "onboarding.steps.publish_status.title": "Erstelle deinen ersten Beitrag",
"onboarding.steps.setup_profile.body": "Mit einem ausgefüllten Profil interagieren andere eher mit dir.", "onboarding.steps.setup_profile.body": "Mit einem ausgefüllten Profil interagieren andere eher mit dir.",
"onboarding.steps.setup_profile.title": "Personalisiere dein Profil", "onboarding.steps.setup_profile.title": "Personalisiere dein Profil",
"onboarding.steps.share_profile.body": "Lass deine Freund*innen wissen, wie sie dich auf Mastodon finden können!", "onboarding.steps.share_profile.body": "Lass Deine FreundInnen wissen, wie sie Dich auf Mastodon finden können!",
"onboarding.steps.share_profile.title": "Teile dein Profil", "onboarding.steps.share_profile.title": "Teile dein Profil",
"onboarding.tips.2fa": "<strong>Wusstest du schon?</strong> Du kannst die Sicherheit deines Kontos erhöhen, indem du die Zwei-Faktor-Authentisierung in deinen Kontoeinstellungen aktivierst. Dafür ist keine Telefonnummer notwendig und es funktioniert jede beliebige TOTP-App!", "onboarding.tips.2fa": "<strong>Wusstest du schon?</strong> Du kannst die Sicherheit deines Kontos erhöhen, indem du die Zwei-Faktor-Authentisierung in deinen Kontoeinstellungen aktivierst. Dafür ist keine Telefonnummer notwendig und es funktioniert jede beliebige TOTP-App!",
"onboarding.tips.accounts_from_other_servers": "<strong>Wusstest du schon?</strong> Da Mastodon dezentralisiert ist, werden einige Profile, denen du begegnest, auf anderen Servern als deinem bereitgestellt. Und trotzdem kannst du uneingeschränkt mit ihnen interagieren! Der Servername befindet sich in der zweiten Hälfte ihres Profilnamens!", "onboarding.tips.accounts_from_other_servers": "<strong>Wusstest du schon?</strong> Da Mastodon dezentralisiert ist, werden einige Profile, denen du begegnest, auf anderen Servern als deinem bereitgestellt. Und trotzdem kannst du uneingeschränkt mit ihnen interagieren! Der Servername befindet sich in der zweiten Hälfte ihres Profilnamens!",

View file

@ -2073,12 +2073,12 @@
"id": "explore.trending_tags" "id": "explore.trending_tags"
}, },
{ {
"defaultMessage": "News", "defaultMessage": "People",
"id": "explore.trending_links" "id": "explore.suggested_follows"
}, },
{ {
"defaultMessage": "For you", "defaultMessage": "News",
"id": "explore.suggested_follows" "id": "explore.trending_links"
} }
], ],
"path": "app/javascript/mastodon/features/explore/index.json" "path": "app/javascript/mastodon/features/explore/index.json"
@ -3211,6 +3211,10 @@
}, },
{ {
"descriptors": [ "descriptors": [
{
"defaultMessage": "Hello #Mastodon!",
"id": "onboarding.compose.template"
},
{ {
"defaultMessage": "You've made it!", "defaultMessage": "You've made it!",
"id": "onboarding.start.title" "id": "onboarding.start.title"

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Αντιγραφή μηνυμάτων κώδικα στο πρόχειρο", "errors.unexpected_crash.copy_stacktrace": "Αντιγραφή μηνυμάτων κώδικα στο πρόχειρο",
"errors.unexpected_crash.report_issue": "Αναφορά προβλήματος", "errors.unexpected_crash.report_issue": "Αναφορά προβλήματος",
"explore.search_results": "Αποτελέσματα αναζήτησης", "explore.search_results": "Αποτελέσματα αναζήτησης",
"explore.suggested_follows": "Για σένα", "explore.suggested_follows": "Άτομα",
"explore.title": "Εξερεύνηση", "explore.title": "Εξερεύνηση",
"explore.trending_links": "Νέα", "explore.trending_links": "Νέα",
"explore.trending_statuses": "Αναρτήσεις", "explore.trending_statuses": "Αναρτήσεις",
@ -445,6 +445,7 @@
"onboarding.actions.close": "Να μην εμφανιστεί ξανά αυτό", "onboarding.actions.close": "Να μην εμφανιστεί ξανά αυτό",
"onboarding.actions.go_to_explore": "See what's trending", "onboarding.actions.go_to_explore": "See what's trending",
"onboarding.actions.go_to_home": "Πηγαίνετε στην αρχική σας ροή", "onboarding.actions.go_to_home": "Πηγαίνετε στην αρχική σας ροή",
"onboarding.compose.template": "Hello #Mastodon!",
"onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.", "onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Δημοφιλή στο Mastodon", "onboarding.follows.title": "Δημοφιλή στο Mastodon",

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
"errors.unexpected_crash.report_issue": "Report issue", "errors.unexpected_crash.report_issue": "Report issue",
"explore.search_results": "Search results", "explore.search_results": "Search results",
"explore.suggested_follows": "For you", "explore.suggested_follows": "People",
"explore.title": "Explore", "explore.title": "Explore",
"explore.trending_links": "News", "explore.trending_links": "News",
"explore.trending_statuses": "Posts", "explore.trending_statuses": "Posts",
@ -445,6 +445,7 @@
"onboarding.actions.close": "Don't show this screen again", "onboarding.actions.close": "Don't show this screen again",
"onboarding.actions.go_to_explore": "See what's trending", "onboarding.actions.go_to_explore": "See what's trending",
"onboarding.actions.go_to_home": "Go to your home feed", "onboarding.actions.go_to_home": "Go to your home feed",
"onboarding.compose.template": "Hello #Mastodon!",
"onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.", "onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Popular on Mastodon", "onboarding.follows.title": "Popular on Mastodon",

View file

@ -243,7 +243,7 @@
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
"errors.unexpected_crash.report_issue": "Report issue", "errors.unexpected_crash.report_issue": "Report issue",
"explore.search_results": "Search results", "explore.search_results": "Search results",
"explore.suggested_follows": "For you", "explore.suggested_follows": "People",
"explore.title": "Explore", "explore.title": "Explore",
"explore.trending_links": "News", "explore.trending_links": "News",
"explore.trending_statuses": "Posts", "explore.trending_statuses": "Posts",
@ -449,6 +449,7 @@
"onboarding.actions.close": "Don't show this screen again", "onboarding.actions.close": "Don't show this screen again",
"onboarding.actions.go_to_explore": "See what's trending", "onboarding.actions.go_to_explore": "See what's trending",
"onboarding.actions.go_to_home": "Go to your home feed", "onboarding.actions.go_to_home": "Go to your home feed",
"onboarding.compose.template": "Hello #Mastodon!",
"onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.", "onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Popular on Mastodon", "onboarding.follows.title": "Popular on Mastodon",

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Kopii stakspuron en tondujo", "errors.unexpected_crash.copy_stacktrace": "Kopii stakspuron en tondujo",
"errors.unexpected_crash.report_issue": "Raporti problemon", "errors.unexpected_crash.report_issue": "Raporti problemon",
"explore.search_results": "Serĉaj rezultoj", "explore.search_results": "Serĉaj rezultoj",
"explore.suggested_follows": "Por vi", "explore.suggested_follows": "Homoj",
"explore.title": "Esplori", "explore.title": "Esplori",
"explore.trending_links": "Novaĵoj", "explore.trending_links": "Novaĵoj",
"explore.trending_statuses": "Afiŝoj", "explore.trending_statuses": "Afiŝoj",
@ -445,6 +445,7 @@
"onboarding.actions.close": "Don't show this screen again", "onboarding.actions.close": "Don't show this screen again",
"onboarding.actions.go_to_explore": "See what's trending", "onboarding.actions.go_to_explore": "See what's trending",
"onboarding.actions.go_to_home": "Go to your home feed", "onboarding.actions.go_to_home": "Go to your home feed",
"onboarding.compose.template": "Hello #Mastodon!",
"onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.", "onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Popular on Mastodon", "onboarding.follows.title": "Popular on Mastodon",

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Copiar stacktrace al portapapeles", "errors.unexpected_crash.copy_stacktrace": "Copiar stacktrace al portapapeles",
"errors.unexpected_crash.report_issue": "Informar problema", "errors.unexpected_crash.report_issue": "Informar problema",
"explore.search_results": "Resultados de búsqueda", "explore.search_results": "Resultados de búsqueda",
"explore.suggested_follows": "Para vos", "explore.suggested_follows": "Cuentas",
"explore.title": "Explorá", "explore.title": "Explorá",
"explore.trending_links": "Noticias", "explore.trending_links": "Noticias",
"explore.trending_statuses": "Mensajes", "explore.trending_statuses": "Mensajes",
@ -445,6 +445,7 @@
"onboarding.actions.close": "No mostrar esta pantalla de nuevo", "onboarding.actions.close": "No mostrar esta pantalla de nuevo",
"onboarding.actions.go_to_explore": "Mirá qué está en tendencia", "onboarding.actions.go_to_explore": "Mirá qué está en tendencia",
"onboarding.actions.go_to_home": "Andá a tu línea temporal principal", "onboarding.actions.go_to_home": "Andá a tu línea temporal principal",
"onboarding.compose.template": "¡Hola, #Mastodon!",
"onboarding.follows.empty": "Desafortunadamente, no se pueden mostrar resultados en este momento. Podés intentar usar la búsqueda o navegar por la página de exploración para encontrar cuentas a las que seguir, o intentarlo de nuevo más tarde.", "onboarding.follows.empty": "Desafortunadamente, no se pueden mostrar resultados en este momento. Podés intentar usar la búsqueda o navegar por la página de exploración para encontrar cuentas a las que seguir, o intentarlo de nuevo más tarde.",
"onboarding.follows.lead": "Vos completás tu propia línea temporal principal. Cuantas más cuentas sigas, más activa e interesante se volverá. Estos perfiles pueden ser un buen punto de partida; ¡podés dejar de seguir estas cuentas cuando quieras!", "onboarding.follows.lead": "Vos completás tu propia línea temporal principal. Cuantas más cuentas sigas, más activa e interesante se volverá. Estos perfiles pueden ser un buen punto de partida; ¡podés dejar de seguir estas cuentas cuando quieras!",
"onboarding.follows.title": "Popular en Mastodon", "onboarding.follows.title": "Popular en Mastodon",

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Copiar el seguimiento de pila en el portapapeles", "errors.unexpected_crash.copy_stacktrace": "Copiar el seguimiento de pila en el portapapeles",
"errors.unexpected_crash.report_issue": "Informar problema", "errors.unexpected_crash.report_issue": "Informar problema",
"explore.search_results": "Resultados de búsqueda", "explore.search_results": "Resultados de búsqueda",
"explore.suggested_follows": "Para ti", "explore.suggested_follows": "People",
"explore.title": "Descubrir", "explore.title": "Descubrir",
"explore.trending_links": "Noticias", "explore.trending_links": "Noticias",
"explore.trending_statuses": "Publicaciones", "explore.trending_statuses": "Publicaciones",
@ -445,6 +445,7 @@
"onboarding.actions.close": "No volver a mostrar esta pantalla", "onboarding.actions.close": "No volver a mostrar esta pantalla",
"onboarding.actions.go_to_explore": "Ver qué es tendencia", "onboarding.actions.go_to_explore": "Ver qué es tendencia",
"onboarding.actions.go_to_home": "Ir al inicio", "onboarding.actions.go_to_home": "Ir al inicio",
"onboarding.compose.template": "Hello #Mastodon!",
"onboarding.follows.empty": "Desafortunadamente, no se pueden mostrar resultados en este momento. Puedes intentar usar la búsqueda o navegar por la página de exploración para encontrar gente a la que seguir, o inténtalo de nuevo más tarde.", "onboarding.follows.empty": "Desafortunadamente, no se pueden mostrar resultados en este momento. Puedes intentar usar la búsqueda o navegar por la página de exploración para encontrar gente a la que seguir, o inténtalo de nuevo más tarde.",
"onboarding.follows.lead": "Tienes que personalizar tu inicio. Cuantas más personas sigas, más activo e interesante será. Estos perfiles pueden ser un buen punto de partida, ¡pero siempre puedes dejar de seguirlos más adelante!", "onboarding.follows.lead": "Tienes que personalizar tu inicio. Cuantas más personas sigas, más activo e interesante será. Estos perfiles pueden ser un buen punto de partida, ¡pero siempre puedes dejar de seguirlos más adelante!",
"onboarding.follows.title": "Popular en Mastodon", "onboarding.follows.title": "Popular en Mastodon",

View file

@ -32,7 +32,7 @@
"account.follow": "Seguir", "account.follow": "Seguir",
"account.followers": "Seguidores", "account.followers": "Seguidores",
"account.followers.empty": "Todavía nadie sigue a este usuario.", "account.followers.empty": "Todavía nadie sigue a este usuario.",
"account.followers_counter": "{count, plural, one {{counter} seguidor} other {{counter} seguidores}}", "account.followers_counter": "{count, plural, one {{counter} Seguidor} other {{counter} Seguidores}}",
"account.following": "Siguiendo", "account.following": "Siguiendo",
"account.following_counter": "{count, plural, other {Siguiendo a {counter}}}", "account.following_counter": "{count, plural, other {Siguiendo a {counter}}}",
"account.follows.empty": "Este usuario todavía no sigue a nadie.", "account.follows.empty": "Este usuario todavía no sigue a nadie.",
@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Copiar el seguimiento de pila en el portapapeles", "errors.unexpected_crash.copy_stacktrace": "Copiar el seguimiento de pila en el portapapeles",
"errors.unexpected_crash.report_issue": "Informar de un problema/error", "errors.unexpected_crash.report_issue": "Informar de un problema/error",
"explore.search_results": "Resultados de búsqueda", "explore.search_results": "Resultados de búsqueda",
"explore.suggested_follows": "Para ti", "explore.suggested_follows": "Personas",
"explore.title": "Explorar", "explore.title": "Explorar",
"explore.trending_links": "Noticias", "explore.trending_links": "Noticias",
"explore.trending_statuses": "Publicaciones", "explore.trending_statuses": "Publicaciones",
@ -365,7 +365,7 @@
"media_gallery.toggle_visible": "Cambiar visibilidad", "media_gallery.toggle_visible": "Cambiar visibilidad",
"moved_to_account_banner.text": "Tu cuenta {disabledAccount} está actualmente deshabilitada porque te has mudado a {movedToAccount}.", "moved_to_account_banner.text": "Tu cuenta {disabledAccount} está actualmente deshabilitada porque te has mudado a {movedToAccount}.",
"mute_modal.duration": "Duración", "mute_modal.duration": "Duración",
"mute_modal.hide_notifications": "Ocultar notificaciones de este usuario?", "mute_modal.hide_notifications": "¿Ocultar notificaciones de este usuario?",
"mute_modal.indefinite": "Indefinida", "mute_modal.indefinite": "Indefinida",
"navigation_bar.about": "Acerca de", "navigation_bar.about": "Acerca de",
"navigation_bar.blocks": "Usuarios bloqueados", "navigation_bar.blocks": "Usuarios bloqueados",
@ -445,11 +445,12 @@
"onboarding.actions.close": "No volver a mostrar esta pantalla", "onboarding.actions.close": "No volver a mostrar esta pantalla",
"onboarding.actions.go_to_explore": "Ver qué es tendencia", "onboarding.actions.go_to_explore": "Ver qué es tendencia",
"onboarding.actions.go_to_home": "Ir al inicio", "onboarding.actions.go_to_home": "Ir al inicio",
"onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.", "onboarding.compose.template": "¡Hola #Mastodon!",
"onboarding.follows.empty": "Desafortunadamente, no se pueden mostrar resultados en este momento. Puedes intentar usar la búsqueda o navegar por la página de exploración para encontrar gente a la que seguir, o inténtalo de nuevo más tarde.",
"onboarding.follows.lead": "Tienes que personalizar tu línea de inicio. Cuantas más personas sigas, más activa e interesante será. Estos perfiles pueden ser un buen punto de partida, ¡pero siempre puedes dejar de seguirlos más adelante!", "onboarding.follows.lead": "Tienes que personalizar tu línea de inicio. Cuantas más personas sigas, más activa e interesante será. Estos perfiles pueden ser un buen punto de partida, ¡pero siempre puedes dejar de seguirlos más adelante!",
"onboarding.follows.title": "Popular en Mastodon", "onboarding.follows.title": "Popular en Mastodon",
"onboarding.share.lead": "¡Dile a la gente cómo te pueden encontrar en Mastodon!", "onboarding.share.lead": "¡Dile a la gente cómo te pueden encontrar en Mastodon!",
"onboarding.share.message": "I'm {username} on #Mastodon! Come follow me at {url}", "onboarding.share.message": "¡Soy {username} en #Mastodon! Ven a seguirme en {url}",
"onboarding.share.next_steps": "Posibles siguientes pasos:", "onboarding.share.next_steps": "Posibles siguientes pasos:",
"onboarding.share.title": "Comparte tu perfil", "onboarding.share.title": "Comparte tu perfil",
"onboarding.start.lead": "Tu nueva cuenta de Mastodon está lista. Así es como puedes sacarle el máximo provecho:", "onboarding.start.lead": "Tu nueva cuenta de Mastodon está lista. Así es como puedes sacarle el máximo provecho:",
@ -463,10 +464,10 @@
"onboarding.steps.setup_profile.title": "Personaliza tu perfil", "onboarding.steps.setup_profile.title": "Personaliza tu perfil",
"onboarding.steps.share_profile.body": "¡Dile a tus amigos cómo encontrarte en Mastodon!", "onboarding.steps.share_profile.body": "¡Dile a tus amigos cómo encontrarte en Mastodon!",
"onboarding.steps.share_profile.title": "Comparte tu perfil", "onboarding.steps.share_profile.title": "Comparte tu perfil",
"onboarding.tips.2fa": "<strong>Did you know?</strong> You can secure your account by setting up two-factor authentication in your account settings. It works with any TOTP app of your choice, no phone number necessary!", "onboarding.tips.2fa": "<strong>¿Sabías?</strong> Puedes proteger tu cuenta configurando la autenticación de dos factores en la configuración de tu cuenta. Funciona con cualquier aplicación TOTP de tu elección, ¡no necesitas número de teléfono!",
"onboarding.tips.accounts_from_other_servers": "<strong>¿Sabías que?</strong> Como Mastodon es descentralizado, algunos perfiles que encuentras están alojados en servidores distintos del tuyo. Y sin embargo, ¡puedes interactuar con ellos! ¡Su servidor corresponde a la segunda mitad de su nombre de usuario!", "onboarding.tips.accounts_from_other_servers": "<strong>¿Sabías que?</strong> Como Mastodon es descentralizado, algunos perfiles que encuentras están alojados en servidores distintos del tuyo. Y sin embargo, ¡puedes interactuar con ellos! ¡Su servidor corresponde a la segunda mitad de su nombre de usuario!",
"onboarding.tips.migration": "<strong>Did you know?</strong> If you feel like {domain} is not a great server choice for you in the future, you can move to another Mastodon server without losing your followers. You can even host your own server!", "onboarding.tips.migration": "<strong>¿Sabías?</strong> Si en el futuro piensas que {domain} no es el servidor adecuado para ti, puedes moverte a otro servidor de Mastodon sin perder a tus seguidores. ¡Incluso puedes alojar tu propio servidor!",
"onboarding.tips.verification": "<strong>Did you know?</strong> You can verify your account by putting a link to your Mastodon profile on your own website and adding the website to your profile. No fees or documents necessary!", "onboarding.tips.verification": "<strong>¿Sabías?</strong> Puedes verificar tu cuenta poniendo un enlace a tu perfil de Mastodon en tu propio sitio web y añadiendo el sitio web a tu perfil. ¡No se necesitan comisiones ni documentos!",
"password_confirmation.exceeds_maxlength": "La contraseña de confirmación excede la longitud máxima de la contraseña", "password_confirmation.exceeds_maxlength": "La contraseña de confirmación excede la longitud máxima de la contraseña",
"password_confirmation.mismatching": "La contraseña de confirmación no coincide", "password_confirmation.mismatching": "La contraseña de confirmación no coincide",
"picture_in_picture.restore": "Restaurar", "picture_in_picture.restore": "Restaurar",

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Kopeeri stacktrace lõikelauale", "errors.unexpected_crash.copy_stacktrace": "Kopeeri stacktrace lõikelauale",
"errors.unexpected_crash.report_issue": "Teavita veast", "errors.unexpected_crash.report_issue": "Teavita veast",
"explore.search_results": "Otsitulemused", "explore.search_results": "Otsitulemused",
"explore.suggested_follows": "Kasutajad", "explore.suggested_follows": "People",
"explore.title": "Avasta", "explore.title": "Avasta",
"explore.trending_links": "Uudised", "explore.trending_links": "Uudised",
"explore.trending_statuses": "Postitused", "explore.trending_statuses": "Postitused",
@ -445,6 +445,7 @@
"onboarding.actions.close": "Ära näita seda ekraani uuesti", "onboarding.actions.close": "Ära näita seda ekraani uuesti",
"onboarding.actions.go_to_explore": "Vaata, mis on trendikas", "onboarding.actions.go_to_explore": "Vaata, mis on trendikas",
"onboarding.actions.go_to_home": "Mine oma koduvoogu", "onboarding.actions.go_to_home": "Mine oma koduvoogu",
"onboarding.compose.template": "Hello #Mastodon!",
"onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.", "onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.",
"onboarding.follows.lead": "Haldad ise oma koduvoogu. Mida rohkemaid inimesi jälgid, seda aktiivsem ja huvitavam see on. Need profiilid võiksid olla head alustamiskohad — saad nende jälgimise alati lõpetada!", "onboarding.follows.lead": "Haldad ise oma koduvoogu. Mida rohkemaid inimesi jälgid, seda aktiivsem ja huvitavam see on. Need profiilid võiksid olla head alustamiskohad — saad nende jälgimise alati lõpetada!",
"onboarding.follows.title": "Populaarne Mastodonis", "onboarding.follows.title": "Populaarne Mastodonis",

View file

@ -182,7 +182,7 @@
"conversation.with": "Hauekin: {names}", "conversation.with": "Hauekin: {names}",
"copypaste.copied": "Kopiatuta", "copypaste.copied": "Kopiatuta",
"copypaste.copy": "Kopiatu", "copypaste.copy": "Kopiatu",
"copypaste.copy_to_clipboard": "Copy to clipboard", "copypaste.copy_to_clipboard": "Kopiatu arbelera",
"directory.federated": "Fedibertso ezagunekoak", "directory.federated": "Fedibertso ezagunekoak",
"directory.local": "{domain} domeinukoak soilik", "directory.local": "{domain} domeinukoak soilik",
"directory.new_arrivals": "Iritsi berriak", "directory.new_arrivals": "Iritsi berriak",
@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Kopiatu irteera arbelera", "errors.unexpected_crash.copy_stacktrace": "Kopiatu irteera arbelera",
"errors.unexpected_crash.report_issue": "Eman arazoaren berri", "errors.unexpected_crash.report_issue": "Eman arazoaren berri",
"explore.search_results": "Bilaketaren emaitzak", "explore.search_results": "Bilaketaren emaitzak",
"explore.suggested_follows": "Zuretzako", "explore.suggested_follows": "Jendea",
"explore.title": "Arakatu", "explore.title": "Arakatu",
"explore.trending_links": "Berriak", "explore.trending_links": "Berriak",
"explore.trending_statuses": "Tutak", "explore.trending_statuses": "Tutak",
@ -440,33 +440,34 @@
"notifications_permission_banner.enable": "Gaitu mahaigaineko jakinarazpenak", "notifications_permission_banner.enable": "Gaitu mahaigaineko jakinarazpenak",
"notifications_permission_banner.how_to_control": "Mastodon irekita ez dagoenean jakinarazpenak jasotzeko, gaitu mahaigaineko jakinarazpenak. Mahaigaineko jakinarazpenak ze elkarrekintzak eragingo dituzten zehazki kontrolatu dezakezu goiko {icon} botoia erabiliz, gaituta daudenean.", "notifications_permission_banner.how_to_control": "Mastodon irekita ez dagoenean jakinarazpenak jasotzeko, gaitu mahaigaineko jakinarazpenak. Mahaigaineko jakinarazpenak ze elkarrekintzak eragingo dituzten zehazki kontrolatu dezakezu goiko {icon} botoia erabiliz, gaituta daudenean.",
"notifications_permission_banner.title": "Ez galdu ezer inoiz", "notifications_permission_banner.title": "Ez galdu ezer inoiz",
"onboarding.action.back": "Take me back", "onboarding.action.back": "Atzera egin",
"onboarding.actions.back": "Take me back", "onboarding.actions.back": "Atzera egin",
"onboarding.actions.close": "Don't show this screen again", "onboarding.actions.close": "Ez erakutsi pantaila hau berriro",
"onboarding.actions.go_to_explore": "See what's trending", "onboarding.actions.go_to_explore": "Ikusi zer dagoen pil-pilean",
"onboarding.actions.go_to_home": "Go to your home feed", "onboarding.actions.go_to_home": "Joan hasierara",
"onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.", "onboarding.compose.template": "Kaixo #Mastodon!",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.empty": "Zoritxarrez, ezin da emaitzik erakutsi orain. Bilaketa erabil dezakezu edo Arakatu orrian jendea bilatu jarraitzeko, edo saiatu geroago.",
"onboarding.follows.title": "Popular on Mastodon", "onboarding.follows.lead": "Hasierako orria zuk pertsonalizatzen duzu. Gero eta jende gehiago jarraitu, orduan eta aktibo eta interesgarriago izango da. Profil hauek egokiak izan daitezke hasteko, beti ere, geroago jarraitzeari utz diezazkiekezu!",
"onboarding.share.lead": "Let people know how they can find you on Mastodon!", "onboarding.follows.title": "Mastodonen pil-pilean",
"onboarding.share.message": "I'm {username} on #Mastodon! Come follow me at {url}", "onboarding.share.lead": "Ezagutarazi jendeari nola aurki zaitzaketen Mastodonen!",
"onboarding.share.next_steps": "Possible next steps:", "onboarding.share.message": "{username} naiz #Mastodon-en! Jarrai iezadazu hemen: {url}",
"onboarding.share.title": "Share your profile", "onboarding.share.next_steps": "Hurrengo urrats posibleak:",
"onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:", "onboarding.share.title": "Partekatu zure profila",
"onboarding.start.skip": "Want to skip right ahead?", "onboarding.start.lead": "Zure Mastodoneko kontu berria prest dago. Jakin nola atera diezaioekun etekin handiena hemen:",
"onboarding.start.title": "You've made it!", "onboarding.start.skip": "Urrats guztiak saltatu nahi dituzu?",
"onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.", "onboarding.start.title": "Lortu duzu!",
"onboarding.steps.follow_people.title": "Follow {count, plural, one {one person} other {# people}}", "onboarding.steps.follow_people.body": "Zure jarioa zuk pertsonalizatzen duzu. Bete dezagun jende interesgarriaz.",
"onboarding.steps.publish_status.body": "Say hello to the world.", "onboarding.steps.follow_people.title": "Jarraitu {count, plural, one {pertsona bat} other {# pertsona}}",
"onboarding.steps.publish_status.title": "Make your first post", "onboarding.steps.publish_status.body": "Agurtu munduari.",
"onboarding.steps.publish_status.title": "Sortu zure lehen argitalpena",
"onboarding.steps.setup_profile.body": "Others are more likely to interact with you with a filled out profile.", "onboarding.steps.setup_profile.body": "Others are more likely to interact with you with a filled out profile.",
"onboarding.steps.setup_profile.title": "Customize your profile", "onboarding.steps.setup_profile.title": "Customize your profile",
"onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!", "onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
"onboarding.steps.share_profile.title": "Share your profile", "onboarding.steps.share_profile.title": "Share your profile",
"onboarding.tips.2fa": "<strong>Did you know?</strong> You can secure your account by setting up two-factor authentication in your account settings. It works with any TOTP app of your choice, no phone number necessary!", "onboarding.tips.2fa": "<strong>Bazenekien?</strong> Zure kontua babes dezakezu bi faktoreko autentifikazioa zure kontuko ezarpenetan ezarriaz. Darabilzun edozein TOTP aplikaziorekin dabil, ez da telefono-zenbakirik behar!",
"onboarding.tips.accounts_from_other_servers": "<strong>Did you know?</strong> Since Mastodon is decentralized, some profiles you come across will be hosted on servers other than yours. And yet you can interact with them seamlessly! Their server is in the second half of their username!", "onboarding.tips.accounts_from_other_servers": "<strong>Did you know?</strong> Since Mastodon is decentralized, some profiles you come across will be hosted on servers other than yours. And yet you can interact with them seamlessly! Their server is in the second half of their username!",
"onboarding.tips.migration": "<strong>Did you know?</strong> If you feel like {domain} is not a great server choice for you in the future, you can move to another Mastodon server without losing your followers. You can even host your own server!", "onboarding.tips.migration": "<strong>Bazenekien?</strong> Uste baduzu {domain} ez dela aukera on bat zuretzako etorkizunari begira, beste Mastodoneko instantzia batera alda zaitezke zure jarraitzaileak galdu gabe. Zure zerbitzaria ostata dezakezu eta guzti!",
"onboarding.tips.verification": "<strong>Did you know?</strong> You can verify your account by putting a link to your Mastodon profile on your own website and adding the website to your profile. No fees or documents necessary!", "onboarding.tips.verification": "<strong>Bazenekien?</strong> Zure kontua egiazta dezakezu zure webgunean zure Mastodoneko profilaren esteka erantsiaz, zure webgunea Mastodoneko profilean ere duzularik. Kuota edo dokumenturik gabe!",
"password_confirmation.exceeds_maxlength": "Pasahitzaren berrespenak pasahitzaren gehienezko luzera gainditzen du", "password_confirmation.exceeds_maxlength": "Pasahitzaren berrespenak pasahitzaren gehienezko luzera gainditzen du",
"password_confirmation.mismatching": "Pasahitzaren berrespena ez dator bat", "password_confirmation.mismatching": "Pasahitzaren berrespena ez dator bat",
"picture_in_picture.restore": "Leheneratu", "picture_in_picture.restore": "Leheneratu",

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "رونوشت از جزئیات اشکال", "errors.unexpected_crash.copy_stacktrace": "رونوشت از جزئیات اشکال",
"errors.unexpected_crash.report_issue": "گزارش مشکل", "errors.unexpected_crash.report_issue": "گزارش مشکل",
"explore.search_results": "نتایج جست‌وجو", "explore.search_results": "نتایج جست‌وجو",
"explore.suggested_follows": "برای شما", "explore.suggested_follows": "People",
"explore.title": "کاوش", "explore.title": "کاوش",
"explore.trending_links": "اخبار", "explore.trending_links": "اخبار",
"explore.trending_statuses": "فرسته‌ها", "explore.trending_statuses": "فرسته‌ها",
@ -445,6 +445,7 @@
"onboarding.actions.close": "Don't show this screen again", "onboarding.actions.close": "Don't show this screen again",
"onboarding.actions.go_to_explore": "See what's trending", "onboarding.actions.go_to_explore": "See what's trending",
"onboarding.actions.go_to_home": "Go to your home feed", "onboarding.actions.go_to_home": "Go to your home feed",
"onboarding.compose.template": "Hello #Mastodon!",
"onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.", "onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Popular on Mastodon", "onboarding.follows.title": "Popular on Mastodon",

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Kopioi pinon jäljitys leikepöydälle", "errors.unexpected_crash.copy_stacktrace": "Kopioi pinon jäljitys leikepöydälle",
"errors.unexpected_crash.report_issue": "Ilmoita ongelmasta", "errors.unexpected_crash.report_issue": "Ilmoita ongelmasta",
"explore.search_results": "Hakutulokset", "explore.search_results": "Hakutulokset",
"explore.suggested_follows": "Sinulle", "explore.suggested_follows": "Ihmiset",
"explore.title": "Selaa", "explore.title": "Selaa",
"explore.trending_links": "Uutiset", "explore.trending_links": "Uutiset",
"explore.trending_statuses": "Julkaisut", "explore.trending_statuses": "Julkaisut",
@ -445,6 +445,7 @@
"onboarding.actions.close": "Älä näytä tätä uudelleen", "onboarding.actions.close": "Älä näytä tätä uudelleen",
"onboarding.actions.go_to_explore": "Katso, mikä on trendikästä", "onboarding.actions.go_to_explore": "Katso, mikä on trendikästä",
"onboarding.actions.go_to_home": "Siirry kotisyötteeseesi", "onboarding.actions.go_to_home": "Siirry kotisyötteeseesi",
"onboarding.compose.template": "Tervehdys, #Mastodon!",
"onboarding.follows.empty": "Valitettavasti tuloksia ei voida näyttää juuri nyt. Voit kokeilla hakua tai selata hakusivua löytääksesi seurattavaa, tai yrittää myöhemmin uudelleen.", "onboarding.follows.empty": "Valitettavasti tuloksia ei voida näyttää juuri nyt. Voit kokeilla hakua tai selata hakusivua löytääksesi seurattavaa, tai yrittää myöhemmin uudelleen.",
"onboarding.follows.lead": "Kokoat oman kotisyötteesi itse. Mitä enemmän ihmisiä seuraat, sitä aktiivisempi ja kiinnostavampi syöte on. Nämä profiilit voivat olla alkuun hyvä lähtökohta — voit aina lopettaa niiden seuraamisen myöhemmin!", "onboarding.follows.lead": "Kokoat oman kotisyötteesi itse. Mitä enemmän ihmisiä seuraat, sitä aktiivisempi ja kiinnostavampi syöte on. Nämä profiilit voivat olla alkuun hyvä lähtökohta — voit aina lopettaa niiden seuraamisen myöhemmin!",
"onboarding.follows.title": "Suosittua Mastodonissa", "onboarding.follows.title": "Suosittua Mastodonissa",

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Avrita stakkaslóðina til setiborðið", "errors.unexpected_crash.copy_stacktrace": "Avrita stakkaslóðina til setiborðið",
"errors.unexpected_crash.report_issue": "Fráboða trupulleika", "errors.unexpected_crash.report_issue": "Fráboða trupulleika",
"explore.search_results": "Leitiúrslit", "explore.search_results": "Leitiúrslit",
"explore.suggested_follows": "Til tín", "explore.suggested_follows": "Fólk",
"explore.title": "Rannsaka", "explore.title": "Rannsaka",
"explore.trending_links": "Tíðindi", "explore.trending_links": "Tíðindi",
"explore.trending_statuses": "Postar", "explore.trending_statuses": "Postar",
@ -445,6 +445,7 @@
"onboarding.actions.close": "Ikki vísa hendan skermin aftur", "onboarding.actions.close": "Ikki vísa hendan skermin aftur",
"onboarding.actions.go_to_explore": "Sí rákið", "onboarding.actions.go_to_explore": "Sí rákið",
"onboarding.actions.go_to_home": "Far til heimarásina", "onboarding.actions.go_to_home": "Far til heimarásina",
"onboarding.compose.template": "Hey #Mastodon!",
"onboarding.follows.empty": "Tíverri kunnu eingi úrslit vísast beint nú. Tú kanst royna at brúka leiting ella at kaga gjøgnum Rannsaka síðuna fyri at finna fólk at fylgja - ella royna aftur seinni.", "onboarding.follows.empty": "Tíverri kunnu eingi úrslit vísast beint nú. Tú kanst royna at brúka leiting ella at kaga gjøgnum Rannsaka síðuna fyri at finna fólk at fylgja - ella royna aftur seinni.",
"onboarding.follows.lead": "Tú snikkar sjálv/ur tína heimarás til. Jú fleiri fólk, tú fylgir, jú virknari og áhugaverdari verður tað. Hesir vangar kunnu vera ein góð byrjan — tú kanst altíð gevast at fylgja teimum seinni!", "onboarding.follows.lead": "Tú snikkar sjálv/ur tína heimarás til. Jú fleiri fólk, tú fylgir, jú virknari og áhugaverdari verður tað. Hesir vangar kunnu vera ein góð byrjan — tú kanst altíð gevast at fylgja teimum seinni!",
"onboarding.follows.title": "Vælumtókt á Mastodon", "onboarding.follows.title": "Vælumtókt á Mastodon",

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Copier la trace d'appels dans le presse-papier", "errors.unexpected_crash.copy_stacktrace": "Copier la trace d'appels dans le presse-papier",
"errors.unexpected_crash.report_issue": "Signaler un problème", "errors.unexpected_crash.report_issue": "Signaler un problème",
"explore.search_results": "Résultats", "explore.search_results": "Résultats",
"explore.suggested_follows": "Pour vous", "explore.suggested_follows": "People",
"explore.title": "Explorer", "explore.title": "Explorer",
"explore.trending_links": "Nouvelles", "explore.trending_links": "Nouvelles",
"explore.trending_statuses": "Messages", "explore.trending_statuses": "Messages",
@ -445,6 +445,7 @@
"onboarding.actions.close": "Don't show this screen again", "onboarding.actions.close": "Don't show this screen again",
"onboarding.actions.go_to_explore": "See what's trending", "onboarding.actions.go_to_explore": "See what's trending",
"onboarding.actions.go_to_home": "Go to your home feed", "onboarding.actions.go_to_home": "Go to your home feed",
"onboarding.compose.template": "Hello #Mastodon!",
"onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.", "onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Popular on Mastodon", "onboarding.follows.title": "Popular on Mastodon",

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Copier la trace d'appels dans le presse-papier", "errors.unexpected_crash.copy_stacktrace": "Copier la trace d'appels dans le presse-papier",
"errors.unexpected_crash.report_issue": "Signaler le problème", "errors.unexpected_crash.report_issue": "Signaler le problème",
"explore.search_results": "Résultats de la recherche", "explore.search_results": "Résultats de la recherche",
"explore.suggested_follows": "Pour vous", "explore.suggested_follows": "People",
"explore.title": "Explorer", "explore.title": "Explorer",
"explore.trending_links": "Nouvelles", "explore.trending_links": "Nouvelles",
"explore.trending_statuses": "Messages", "explore.trending_statuses": "Messages",
@ -445,6 +445,7 @@
"onboarding.actions.close": "Don't show this screen again", "onboarding.actions.close": "Don't show this screen again",
"onboarding.actions.go_to_explore": "See what's trending", "onboarding.actions.go_to_explore": "See what's trending",
"onboarding.actions.go_to_home": "Go to your home feed", "onboarding.actions.go_to_home": "Go to your home feed",
"onboarding.compose.template": "Hello #Mastodon!",
"onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.", "onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Popular on Mastodon", "onboarding.follows.title": "Popular on Mastodon",

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Stacktrace nei klamboerd kopiearje", "errors.unexpected_crash.copy_stacktrace": "Stacktrace nei klamboerd kopiearje",
"errors.unexpected_crash.report_issue": "Technysk probleem melde", "errors.unexpected_crash.report_issue": "Technysk probleem melde",
"explore.search_results": "Sykresultaten", "explore.search_results": "Sykresultaten",
"explore.suggested_follows": "Foar jo", "explore.suggested_follows": "People",
"explore.title": "Ferkenne", "explore.title": "Ferkenne",
"explore.trending_links": "Nijs", "explore.trending_links": "Nijs",
"explore.trending_statuses": "Berjochten", "explore.trending_statuses": "Berjochten",
@ -445,6 +445,7 @@
"onboarding.actions.close": "Dit skerm net mear toane", "onboarding.actions.close": "Dit skerm net mear toane",
"onboarding.actions.go_to_explore": "De aktuele trends besjen", "onboarding.actions.go_to_explore": "De aktuele trends besjen",
"onboarding.actions.go_to_home": "Gean nei jo startside", "onboarding.actions.go_to_home": "Gean nei jo startside",
"onboarding.compose.template": "Hello #Mastodon!",
"onboarding.follows.empty": "Spitigernôch kinne op dit stuit gjin resultaten toand wurde. Jo kinne probearje te sykjen of te blêdzjen troch de ferkenningsside om minsken te finen dyt jo folgje kinne, of probearje it letter opnij.", "onboarding.follows.empty": "Spitigernôch kinne op dit stuit gjin resultaten toand wurde. Jo kinne probearje te sykjen of te blêdzjen troch de ferkenningsside om minsken te finen dyt jo folgje kinne, of probearje it letter opnij.",
"onboarding.follows.lead": "Jo beheare jo eigen startside. Hoe mear minsken jo folgje, hoe aktiver en ynteressanter it wêze sil. Dizze profilen kinne in goed startpunt wêze, jo kinne se letter altyd ûntfolgje!", "onboarding.follows.lead": "Jo beheare jo eigen startside. Hoe mear minsken jo folgje, hoe aktiver en ynteressanter it wêze sil. Dizze profilen kinne in goed startpunt wêze, jo kinne se letter altyd ûntfolgje!",
"onboarding.follows.title": "Populêr op Mastodon", "onboarding.follows.title": "Populêr op Mastodon",

View file

@ -39,7 +39,7 @@
"account.follows_you": "Do do leanúint", "account.follows_you": "Do do leanúint",
"account.go_to_profile": "Téigh go dtí próifíl", "account.go_to_profile": "Téigh go dtí próifíl",
"account.hide_reblogs": "Folaigh moltaí ó @{name}", "account.hide_reblogs": "Folaigh moltaí ó @{name}",
"account.in_memoriam": "In Memoriam.", "account.in_memoriam": "Cuimhneachán.",
"account.joined_short": "Cláraithe", "account.joined_short": "Cláraithe",
"account.languages": "Athraigh teangacha foscríofa", "account.languages": "Athraigh teangacha foscríofa",
"account.link_verified_on": "Seiceáladh úinéireacht an naisc seo ar {date}", "account.link_verified_on": "Seiceáladh úinéireacht an naisc seo ar {date}",
@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
"errors.unexpected_crash.report_issue": "Tuairiscigh deacracht", "errors.unexpected_crash.report_issue": "Tuairiscigh deacracht",
"explore.search_results": "Torthaí cuardaigh", "explore.search_results": "Torthaí cuardaigh",
"explore.suggested_follows": "Duitse", "explore.suggested_follows": "People",
"explore.title": "Féach thart", "explore.title": "Féach thart",
"explore.trending_links": "Nuacht", "explore.trending_links": "Nuacht",
"explore.trending_statuses": "Postálacha", "explore.trending_statuses": "Postálacha",
@ -445,6 +445,7 @@
"onboarding.actions.close": "Don't show this screen again", "onboarding.actions.close": "Don't show this screen again",
"onboarding.actions.go_to_explore": "See what's trending", "onboarding.actions.go_to_explore": "See what's trending",
"onboarding.actions.go_to_home": "Go to your home feed", "onboarding.actions.go_to_home": "Go to your home feed",
"onboarding.compose.template": "Hello #Mastodon!",
"onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.", "onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Popular on Mastodon", "onboarding.follows.title": "Popular on Mastodon",

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Cuir lethbhreac dhen stacktrace air an stòr-bhòrd", "errors.unexpected_crash.copy_stacktrace": "Cuir lethbhreac dhen stacktrace air an stòr-bhòrd",
"errors.unexpected_crash.report_issue": "Dèan aithris air an duilgheadas", "errors.unexpected_crash.report_issue": "Dèan aithris air an duilgheadas",
"explore.search_results": "Toraidhean an luirg", "explore.search_results": "Toraidhean an luirg",
"explore.suggested_follows": "Dhut-sa", "explore.suggested_follows": "People",
"explore.title": "Rùraich", "explore.title": "Rùraich",
"explore.trending_links": "Naidheachdan", "explore.trending_links": "Naidheachdan",
"explore.trending_statuses": "Postaichean", "explore.trending_statuses": "Postaichean",
@ -445,6 +445,7 @@
"onboarding.actions.close": "Don't show this screen again", "onboarding.actions.close": "Don't show this screen again",
"onboarding.actions.go_to_explore": "See what's trending", "onboarding.actions.go_to_explore": "See what's trending",
"onboarding.actions.go_to_home": "Go to your home feed", "onboarding.actions.go_to_home": "Go to your home feed",
"onboarding.compose.template": "Hello #Mastodon!",
"onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.", "onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Popular on Mastodon", "onboarding.follows.title": "Popular on Mastodon",

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Copiar trazas (stacktrace) ó portapapeis", "errors.unexpected_crash.copy_stacktrace": "Copiar trazas (stacktrace) ó portapapeis",
"errors.unexpected_crash.report_issue": "Informar sobre un problema", "errors.unexpected_crash.report_issue": "Informar sobre un problema",
"explore.search_results": "Resultados da busca", "explore.search_results": "Resultados da busca",
"explore.suggested_follows": "Para ti", "explore.suggested_follows": "Persoas",
"explore.title": "Descubrir", "explore.title": "Descubrir",
"explore.trending_links": "Novas", "explore.trending_links": "Novas",
"explore.trending_statuses": "Publicacións", "explore.trending_statuses": "Publicacións",
@ -445,6 +445,7 @@
"onboarding.actions.close": "Non mostrar esta pantalla de novo", "onboarding.actions.close": "Non mostrar esta pantalla de novo",
"onboarding.actions.go_to_explore": "Mira do que se está a falar", "onboarding.actions.go_to_explore": "Mira do que se está a falar",
"onboarding.actions.go_to_home": "Vai á cronoloxía de inicio", "onboarding.actions.go_to_home": "Vai á cronoloxía de inicio",
"onboarding.compose.template": "Ola #Mastodon!",
"onboarding.follows.empty": "Desgraciadamente agora mesmo non hai nada que mostrar. Podes intentalo coa busca ou na páxina descubrir para atopar persoas ás que seguir, ou intentalo máis tarde.", "onboarding.follows.empty": "Desgraciadamente agora mesmo non hai nada que mostrar. Podes intentalo coa busca ou na páxina descubrir para atopar persoas ás que seguir, ou intentalo máis tarde.",
"onboarding.follows.lead": "Podes facer que a túa cronoloxía de inicio sexa como ti a queres. Canta máis xente sigas máis interesante será. Estes perfís poderían axudarche a comezar —sempre poderás deixar de seguilos despois!", "onboarding.follows.lead": "Podes facer que a túa cronoloxía de inicio sexa como ti a queres. Canta máis xente sigas máis interesante será. Estes perfís poderían axudarche a comezar —sempre poderás deixar de seguilos despois!",
"onboarding.follows.title": "Popular en Mastodon", "onboarding.follows.title": "Popular en Mastodon",

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "להעתיק את הקוד ללוח הכתיבה", "errors.unexpected_crash.copy_stacktrace": "להעתיק את הקוד ללוח הכתיבה",
"errors.unexpected_crash.report_issue": "דווח על בעיה", "errors.unexpected_crash.report_issue": "דווח על בעיה",
"explore.search_results": "תוצאות חיפוש", "explore.search_results": "תוצאות חיפוש",
"explore.suggested_follows": "עבורך", "explore.suggested_follows": "אנשים",
"explore.title": "סיור", "explore.title": "סיור",
"explore.trending_links": "חדשות", "explore.trending_links": "חדשות",
"explore.trending_statuses": "הודעות", "explore.trending_statuses": "הודעות",
@ -445,6 +445,7 @@
"onboarding.actions.close": "אל תציג זאת שוב", "onboarding.actions.close": "אל תציג זאת שוב",
"onboarding.actions.go_to_explore": "הצגת מגמות", "onboarding.actions.go_to_explore": "הצגת מגמות",
"onboarding.actions.go_to_home": "מעבר לזרם הודעות הנעקבים", "onboarding.actions.go_to_home": "מעבר לזרם הודעות הנעקבים",
"onboarding.compose.template": "שלום #מסטודון!",
"onboarding.follows.empty": "למצער, תוצאות לחיפושך אינן בנמצא. ניתן להשתמש בחיפוש או בדף החקירות לשם מציאת אנשים ולעקבם. אפשר גם לנסות שוב אחר כך.", "onboarding.follows.empty": "למצער, תוצאות לחיפושך אינן בנמצא. ניתן להשתמש בחיפוש או בדף החקירות לשם מציאת אנשים ולעקבם. אפשר גם לנסות שוב אחר כך.",
"onboarding.follows.lead": "אתם אוצרים את הזרם הבייתי שלכם. ככל שתעקבו אחרי יותר אנשים, הוא יהיה עשיר ופעיל יותר. הנה כמה פרופילים להתחיל בהם - תמיד ניתן להפסיק מעקב אחריהם בהמשך!", "onboarding.follows.lead": "אתם אוצרים את הזרם הבייתי שלכם. ככל שתעקבו אחרי יותר אנשים, הוא יהיה עשיר ופעיל יותר. הנה כמה פרופילים להתחיל בהם - תמיד ניתן להפסיק מעקב אחריהם בהמשך!",
"onboarding.follows.title": "פופולארי על מסטודון", "onboarding.follows.title": "פופולארי על מסטודון",

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "स्टैकट्रेस को क्लिपबोर्ड पर कॉपी करें", "errors.unexpected_crash.copy_stacktrace": "स्टैकट्रेस को क्लिपबोर्ड पर कॉपी करें",
"errors.unexpected_crash.report_issue": "समस्या सूचित करें", "errors.unexpected_crash.report_issue": "समस्या सूचित करें",
"explore.search_results": "सर्च रिजल्ट्स", "explore.search_results": "सर्च रिजल्ट्स",
"explore.suggested_follows": "आपके लिए", "explore.suggested_follows": "People",
"explore.title": "एक्स्प्लोर", "explore.title": "एक्स्प्लोर",
"explore.trending_links": "समाचार", "explore.trending_links": "समाचार",
"explore.trending_statuses": "पोस्ट्स", "explore.trending_statuses": "पोस्ट्स",
@ -445,6 +445,7 @@
"onboarding.actions.close": "Don't show this screen again", "onboarding.actions.close": "Don't show this screen again",
"onboarding.actions.go_to_explore": "See what's trending", "onboarding.actions.go_to_explore": "See what's trending",
"onboarding.actions.go_to_home": "Go to your home feed", "onboarding.actions.go_to_home": "Go to your home feed",
"onboarding.compose.template": "Hello #Mastodon!",
"onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.", "onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Popular on Mastodon", "onboarding.follows.title": "Popular on Mastodon",

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Kopiraj stacktrace u međuspremnik", "errors.unexpected_crash.copy_stacktrace": "Kopiraj stacktrace u međuspremnik",
"errors.unexpected_crash.report_issue": "Prijavi problem", "errors.unexpected_crash.report_issue": "Prijavi problem",
"explore.search_results": "Rezultati pretrage", "explore.search_results": "Rezultati pretrage",
"explore.suggested_follows": "Za vas", "explore.suggested_follows": "People",
"explore.title": "Explore", "explore.title": "Explore",
"explore.trending_links": "Novosti", "explore.trending_links": "Novosti",
"explore.trending_statuses": "Objave", "explore.trending_statuses": "Objave",
@ -445,6 +445,7 @@
"onboarding.actions.close": "Don't show this screen again", "onboarding.actions.close": "Don't show this screen again",
"onboarding.actions.go_to_explore": "See what's trending", "onboarding.actions.go_to_explore": "See what's trending",
"onboarding.actions.go_to_home": "Go to your home feed", "onboarding.actions.go_to_home": "Go to your home feed",
"onboarding.compose.template": "Hello #Mastodon!",
"onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.", "onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Popular on Mastodon", "onboarding.follows.title": "Popular on Mastodon",

View file

@ -132,7 +132,7 @@
"compose_form.hashtag_warning": "Ez a bejegyzésed nem fog megjelenni semmilyen hashtag alatt, mivel nem nyilvános. Csak a nyilvános bejegyzések kereshetők hashtaggel.", "compose_form.hashtag_warning": "Ez a bejegyzésed nem fog megjelenni semmilyen hashtag alatt, mivel nem nyilvános. Csak a nyilvános bejegyzések kereshetők 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 bejegyzéseket.", "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 bejegyzéseket.",
"compose_form.lock_disclaimer.lock": "lezárva", "compose_form.lock_disclaimer.lock": "lezárva",
"compose_form.placeholder": "Mire gondolunk éppen?", "compose_form.placeholder": "Mi jár a fejedben?",
"compose_form.poll.add_option": "Lehetőség hozzáadása", "compose_form.poll.add_option": "Lehetőség hozzáadása",
"compose_form.poll.duration": "Szavazás időtartama", "compose_form.poll.duration": "Szavazás időtartama",
"compose_form.poll.option_placeholder": "{number}. lehetőség", "compose_form.poll.option_placeholder": "{number}. lehetőség",
@ -148,7 +148,7 @@
"compose_form.sensitive.unmarked": "{count, plural, one {A médiát nem jelölték kényesnek} other {A médiát nem jelölték kényesnek}}", "compose_form.sensitive.unmarked": "{count, plural, one {A médiát nem jelölték kényesnek} other {A médiát nem jelölték kényesnek}}",
"compose_form.spoiler.marked": "Tartalmi figyelmeztetés eltávolítása", "compose_form.spoiler.marked": "Tartalmi figyelmeztetés eltávolítása",
"compose_form.spoiler.unmarked": "Tartalmi figyelmeztetés hozzáadása", "compose_form.spoiler.unmarked": "Tartalmi figyelmeztetés hozzáadása",
"compose_form.spoiler_placeholder": "A figyelmeztetés beírása ide", "compose_form.spoiler_placeholder": "Írd ide a figyelmeztetést",
"confirmation_modal.cancel": "Mégsem", "confirmation_modal.cancel": "Mégsem",
"confirmations.block.block_and_report": "Letiltás és jelentés", "confirmations.block.block_and_report": "Letiltás és jelentés",
"confirmations.block.confirm": "Letiltás", "confirmations.block.confirm": "Letiltás",
@ -240,11 +240,11 @@
"errors.unexpected_crash.copy_stacktrace": "Veremkiíratás vágólapra másolása", "errors.unexpected_crash.copy_stacktrace": "Veremkiíratás vágólapra másolása",
"errors.unexpected_crash.report_issue": "Probléma jelentése", "errors.unexpected_crash.report_issue": "Probléma jelentése",
"explore.search_results": "Keresési találatok", "explore.search_results": "Keresési találatok",
"explore.suggested_follows": "Nekem", "explore.suggested_follows": "Emberek",
"explore.title": "Felfedezés", "explore.title": "Felfedezés",
"explore.trending_links": "Hírek", "explore.trending_links": "Hírek",
"explore.trending_statuses": "Bejegyzések", "explore.trending_statuses": "Bejegyzések",
"explore.trending_tags": "#Címkék", "explore.trending_tags": "Hashtagek",
"filter_modal.added.context_mismatch_explanation": "Ez a szűrőkategória nem érvényes abban a környezetben, amelyből ez a bejegyzés elérésre kerül. Ha ebben a környezetben is szűrni szeretnénk a bejegyzést, akkor szerkeszteni kell a szűrőt.", "filter_modal.added.context_mismatch_explanation": "Ez a szűrőkategória nem érvényes abban a környezetben, amelyből ez a bejegyzés elérésre kerül. Ha ebben a környezetben is szűrni szeretnénk a bejegyzést, akkor szerkeszteni kell a szűrőt.",
"filter_modal.added.context_mismatch_title": "Környezeti eltérés.", "filter_modal.added.context_mismatch_title": "Környezeti eltérés.",
"filter_modal.added.expired_explanation": "Ez a szűrőkategória elévült, a használatához módosítani kell a lejárati dátumot.", "filter_modal.added.expired_explanation": "Ez a szűrőkategória elévült, a használatához módosítani kell a lejárati dátumot.",
@ -264,7 +264,7 @@
"follow_request.authorize": "Hitelesítés", "follow_request.authorize": "Hitelesítés",
"follow_request.reject": "Elutasítás", "follow_request.reject": "Elutasítás",
"follow_requests.unlocked_explanation": "Bár a fiókod nincs zárolva, a(z) {domain} csapata úgy gondolta, hogy talán kézzel szeretnéd ellenőrizni a fiók követési kéréseit.", "follow_requests.unlocked_explanation": "Bár a fiókod nincs zárolva, a(z) {domain} csapata úgy gondolta, hogy talán kézzel szeretnéd ellenőrizni a fiók követési kéréseit.",
"followed_tags": "Követett #címkék", "followed_tags": "Követett hashtagek",
"footer.about": "Névjegy", "footer.about": "Névjegy",
"footer.directory": "Profiltár", "footer.directory": "Profiltár",
"footer.get_app": "Alkalmazás beszerzése", "footer.get_app": "Alkalmazás beszerzése",
@ -279,11 +279,11 @@
"hashtag.column_header.tag_mode.any": "vagy {additional}", "hashtag.column_header.tag_mode.any": "vagy {additional}",
"hashtag.column_header.tag_mode.none": "{additional} nélkül", "hashtag.column_header.tag_mode.none": "{additional} nélkül",
"hashtag.column_settings.select.no_options_message": "Nincs javaslat", "hashtag.column_settings.select.no_options_message": "Nincs javaslat",
"hashtag.column_settings.select.placeholder": "#Címkék megadása…", "hashtag.column_settings.select.placeholder": "Addj meg hashtageket…",
"hashtag.column_settings.tag_mode.all": "Mindegyik", "hashtag.column_settings.tag_mode.all": "Mindegyik",
"hashtag.column_settings.tag_mode.any": "Bármelyik", "hashtag.column_settings.tag_mode.any": "Bármelyik",
"hashtag.column_settings.tag_mode.none": "Egyik sem", "hashtag.column_settings.tag_mode.none": "Egyik sem",
"hashtag.column_settings.tag_toggle": "További címkék felvétele ehhez az oszlophoz", "hashtag.column_settings.tag_toggle": "Új címkék felvétele ehhez az oszlophoz",
"hashtag.follow": "Hashtag követése", "hashtag.follow": "Hashtag követése",
"hashtag.unfollow": "Hashtag követésének megszüntetése", "hashtag.unfollow": "Hashtag követésének megszüntetése",
"home.column_settings.basic": "Alapvető", "home.column_settings.basic": "Alapvető",
@ -335,7 +335,7 @@
"keyboard_shortcuts.search": "Keresősáv fókuszálása", "keyboard_shortcuts.search": "Keresősáv fókuszálása",
"keyboard_shortcuts.spoilers": "Tartalmi figyelmeztetés mező megjelenítése/elrejtése", "keyboard_shortcuts.spoilers": "Tartalmi figyelmeztetés mező megjelenítése/elrejtése",
"keyboard_shortcuts.start": "\"Első lépések\" oszlop megnyitása", "keyboard_shortcuts.start": "\"Első lépések\" oszlop megnyitása",
"keyboard_shortcuts.toggle_hidden": "Tartalmi figyelmeztetéssel mögötti szöveg megjelenítése/elrejtése", "keyboard_shortcuts.toggle_hidden": "Tartalmi figyelmeztetéssel ellátott szöveg megjelenítése/elrejtése",
"keyboard_shortcuts.toggle_sensitivity": "Média megjelenítése/elrejtése", "keyboard_shortcuts.toggle_sensitivity": "Média megjelenítése/elrejtése",
"keyboard_shortcuts.toot": "Új bejegyzés írása", "keyboard_shortcuts.toot": "Új bejegyzés írása",
"keyboard_shortcuts.unfocus": "Szerkesztés/keresés fókuszból való kivétele", "keyboard_shortcuts.unfocus": "Szerkesztés/keresés fókuszból való kivétele",
@ -380,7 +380,7 @@
"navigation_bar.favourites": "Kedvencek", "navigation_bar.favourites": "Kedvencek",
"navigation_bar.filters": "Némított szavak", "navigation_bar.filters": "Némított szavak",
"navigation_bar.follow_requests": "Követési kérelmek", "navigation_bar.follow_requests": "Követési kérelmek",
"navigation_bar.followed_tags": "Követett #címkék", "navigation_bar.followed_tags": "Követett hashtagek",
"navigation_bar.follows_and_followers": "Követettek és követők", "navigation_bar.follows_and_followers": "Követettek és követők",
"navigation_bar.lists": "Listák", "navigation_bar.lists": "Listák",
"navigation_bar.logout": "Kijelentkezés", "navigation_bar.logout": "Kijelentkezés",
@ -445,6 +445,7 @@
"onboarding.actions.close": "Ez a képernyő ne jelenjen meg újra", "onboarding.actions.close": "Ez a képernyő ne jelenjen meg újra",
"onboarding.actions.go_to_explore": "Felkapottak megtekintése", "onboarding.actions.go_to_explore": "Felkapottak megtekintése",
"onboarding.actions.go_to_home": "Ugrás a saját hírfolyamra", "onboarding.actions.go_to_home": "Ugrás a saját hírfolyamra",
"onboarding.compose.template": "Üdvözlet, #Mastodon!",
"onboarding.follows.empty": "Sajnos jelenleg nem jeleníthető meg eredmény. Kipróbálhatod a keresést vagy böngészheted a felfedező oldalon a követni kívánt személyeket, vagy próbáld meg később.", "onboarding.follows.empty": "Sajnos jelenleg nem jeleníthető meg eredmény. Kipróbálhatod a keresést vagy böngészheted a felfedező oldalon a követni kívánt személyeket, vagy próbáld meg később.",
"onboarding.follows.lead": "Mindenki maga válogatja össze a saját hírfolyamát. Minél több embert követsz, annál aktívabb és érdekesebb a dolog. Ezek a profilok jó kiindulási alapot jelenthetnek később bármikor leállíthatod a követésüket!", "onboarding.follows.lead": "Mindenki maga válogatja össze a saját hírfolyamát. Minél több embert követsz, annál aktívabb és érdekesebb a dolog. Ezek a profilok jó kiindulási alapot jelenthetnek később bármikor leállíthatod a követésüket!",
"onboarding.follows.title": "Népszerű a Mastodonon", "onboarding.follows.title": "Népszerű a Mastodonon",
@ -554,12 +555,12 @@
"search.quick_action.go_to_hashtag": "Ugrás a következő hashtaghez: {x}", "search.quick_action.go_to_hashtag": "Ugrás a következő hashtaghez: {x}",
"search.quick_action.open_url": "Webcím megnyitása a Mastodonon", "search.quick_action.open_url": "Webcím megnyitása a Mastodonon",
"search.quick_action.status_search": "Bejegyzések a következő keresésre: {x}", "search.quick_action.status_search": "Bejegyzések a következő keresésre: {x}",
"search.search_or_paste": "Keresés vagy webcím beillesztése", "search.search_or_paste": "Keresés vagy URL beillesztése",
"search_popout.quick_actions": "Gyors műveletek", "search_popout.quick_actions": "Gyors műveletek",
"search_popout.recent": "Legutóbbi keresések", "search_popout.recent": "Legutóbbi keresések",
"search_results.accounts": "Profilok", "search_results.accounts": "Profilok",
"search_results.all": "Összes", "search_results.all": "Összes",
"search_results.hashtags": "#Címkék", "search_results.hashtags": "Hashtagek",
"search_results.nothing_found": "Nincs találat ezekre a keresési kifejezésekre", "search_results.nothing_found": "Nincs találat ezekre a keresési kifejezésekre",
"search_results.statuses": "Bejegyzések", "search_results.statuses": "Bejegyzések",
"search_results.statuses_fts_disabled": "Ezen a Mastodon szerveren nem engedélyezett a bejegyzések tartalom szerinti keresése.", "search_results.statuses_fts_disabled": "Ezen a Mastodon szerveren nem engedélyezett a bejegyzések tartalom szerinti keresése.",

View file

@ -240,7 +240,7 @@
"errors.unexpected_crash.copy_stacktrace": "Պատճենել սթաքթրեյսը սեղմատախտակին", "errors.unexpected_crash.copy_stacktrace": "Պատճենել սթաքթրեյսը սեղմատախտակին",
"errors.unexpected_crash.report_issue": "Զեկուցել խնդրի մասին", "errors.unexpected_crash.report_issue": "Զեկուցել խնդրի մասին",
"explore.search_results": "Որոնման արդիւնքներ", "explore.search_results": "Որոնման արդիւնքներ",
"explore.suggested_follows": "Քեզ համար", "explore.suggested_follows": "People",
"explore.title": "Բացայայտել", "explore.title": "Բացայայտել",
"explore.trending_links": "Նորութիւններ", "explore.trending_links": "Նորութիւններ",
"explore.trending_statuses": "Գրառումներ", "explore.trending_statuses": "Գրառումներ",
@ -445,6 +445,7 @@
"onboarding.actions.close": "Don't show this screen again", "onboarding.actions.close": "Don't show this screen again",
"onboarding.actions.go_to_explore": "See what's trending", "onboarding.actions.go_to_explore": "See what's trending",
"onboarding.actions.go_to_home": "Go to your home feed", "onboarding.actions.go_to_home": "Go to your home feed",
"onboarding.compose.template": "Hello #Mastodon!",
"onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.", "onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Popular on Mastodon", "onboarding.follows.title": "Popular on Mastodon",

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