Merge branch 'master' into glitch-soc/merge-upstream

Conflicts:
- app/controllers/settings/follower_domains_controller.rb
  Removed upstream. Did the same here. Maybe we should not have?
- config/locales/en.yml
  Upstream removed the “Authorized followers” page and associated
  translations. This is too close in the file to our glitch-soc-specific
  “flavour” string. No actual conflict.
- config/locales/ja.yml
  Same as above.
- config/locales/pl.yml
  Same as above.
- config/navigation.rb
  No real conflict. New route added too close to the glitch-soc-specific
  “flavours” one.
- config/webpack/configuration.js
  Upstream refactored the webpack(er) configuration quite a bit.
  Tried to keep up.
- config/webpack/loaders/babel.js
  Upstream refactored the webpack(er) configuration quite a bit.
  Tried to keep up.
  The contents of this file have been moved to package.json.
- config/webpack/shared.js
  Upstream refactored the webpack(er) configuration quite a bit.
  Tried to keep up.
- config/webpacker.yml
  Upstream refactored the webpack(er) configuration quite a bit.
  Tried to keep up.
- jest.config.js
  The contents of this file have been moved to package.json.
- package.json
  Upstream refactored the webpack(er) configuration quite a bit.
  Tried to keep up.
- yarn.lock
  Upstream refactored the webpack(er) configuration quite a bit.
  Tried to keep up.
th-downstream
Thibaut Girka 6 years ago
commit eed61a37ec

@ -15,7 +15,7 @@ gem 'makara', '~> 0.4'
gem 'pghero', '~> 2.2' gem 'pghero', '~> 2.2'
gem 'dotenv-rails', '~> 2.7' gem 'dotenv-rails', '~> 2.7'
gem 'aws-sdk-s3', '~> 1.31', require: false gem 'aws-sdk-s3', '~> 1.32', require: false
gem 'fog-core', '<= 2.1.0' gem 'fog-core', '<= 2.1.0'
gem 'fog-openstack', '~> 0.3', require: false gem 'fog-openstack', '~> 0.3', require: false
gem 'paperclip', '~> 6.0' gem 'paperclip', '~> 6.0'
@ -87,7 +87,7 @@ gem 'tty-command', '~> 0.8', require: false
gem 'tty-prompt', '~> 0.18', require: false gem 'tty-prompt', '~> 0.18', require: false
gem 'twitter-text', '~> 1.14' gem 'twitter-text', '~> 1.14'
gem 'tzinfo-data', '~> 1.2018' gem 'tzinfo-data', '~> 1.2018'
gem 'webpacker', '~> 3.5' gem 'webpacker', '~> 4.0'
gem 'webpush' gem 'webpush'
gem 'json-ld', '~> 3.0' gem 'json-ld', '~> 3.0'

@ -75,21 +75,23 @@ GEM
encryptor (~> 3.0.0) encryptor (~> 3.0.0)
av (0.9.0) av (0.9.0)
cocaine (~> 0.5.3) cocaine (~> 0.5.3)
aws-eventstream (1.0.1) aws-eventstream (1.0.2)
aws-partitions (1.143.0) aws-partitions (1.144.0)
aws-sdk-core (3.46.2) aws-sdk-core (3.47.0)
aws-eventstream (~> 1.0) aws-eventstream (~> 1.0, >= 1.0.2)
aws-partitions (~> 1.0) aws-partitions (~> 1.0)
aws-sigv4 (~> 1.0) aws-sigv4 (~> 1.1)
http-2 (~> 0.10)
jmespath (~> 1.0) jmespath (~> 1.0)
aws-sdk-kms (1.13.0) aws-sdk-kms (1.14.0)
aws-sdk-core (~> 3, >= 3.39.0) aws-sdk-core (~> 3, >= 3.47.0)
aws-sigv4 (~> 1.0) aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.31.0) aws-sdk-s3 (1.32.0)
aws-sdk-core (~> 3, >= 3.39.0) aws-sdk-core (~> 3, >= 3.47.0)
aws-sdk-kms (~> 1) aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.0) aws-sigv4 (~> 1.0)
aws-sigv4 (1.0.3) aws-sigv4 (1.1.0)
aws-eventstream (~> 1.0, >= 1.0.2)
bcrypt (3.1.12) bcrypt (3.1.12)
benchmark-ips (2.7.2) benchmark-ips (2.7.2)
better_errors (2.5.1) better_errors (2.5.1)
@ -259,6 +261,7 @@ GEM
html2text (0.2.1) html2text (0.2.1)
nokogiri (~> 1.6) nokogiri (~> 1.6)
htmlentities (4.3.4) htmlentities (4.3.4)
http-2 (0.10.1)
http (3.3.0) http (3.3.0)
addressable (~> 2.3) addressable (~> 2.3)
http-cookie (~> 1.0) http-cookie (~> 1.0)
@ -365,7 +368,7 @@ GEM
concurrent-ruby (~> 1.0, >= 1.0.2) concurrent-ruby (~> 1.0, >= 1.0.2)
sidekiq (>= 3.5) sidekiq (>= 3.5)
statsd-ruby (~> 1.4, >= 1.4.0) statsd-ruby (~> 1.4, >= 1.4.0)
oj (3.7.9) oj (3.7.10)
omniauth (1.9.0) omniauth (1.9.0)
hashie (>= 3.4.6, < 3.7.0) hashie (>= 3.4.6, < 3.7.0)
rack (>= 1.6.2, < 3) rack (>= 1.6.2, < 3)
@ -432,7 +435,7 @@ GEM
rack-cors (1.0.2) rack-cors (1.0.2)
rack-protection (2.0.5) rack-protection (2.0.5)
rack rack
rack-proxy (0.6.4) rack-proxy (0.6.5)
rack rack
rack-test (1.1.0) rack-test (1.1.0)
rack (>= 1.0, < 3) rack (>= 1.0, < 3)
@ -639,7 +642,7 @@ GEM
addressable (>= 2.3.6) addressable (>= 2.3.6)
crack (>= 0.3.2) crack (>= 0.3.2)
hashdiff hashdiff
webpacker (3.5.5) webpacker (4.0.2)
activesupport (>= 4.2) activesupport (>= 4.2)
rack-proxy (>= 0.6.1) rack-proxy (>= 0.6.1)
railties (>= 4.2) railties (>= 4.2)
@ -661,7 +664,7 @@ DEPENDENCIES
active_record_query_trace (~> 1.6) active_record_query_trace (~> 1.6)
addressable (~> 2.6) addressable (~> 2.6)
annotate (~> 2.7) annotate (~> 2.7)
aws-sdk-s3 (~> 1.31) aws-sdk-s3 (~> 1.32)
better_errors (~> 2.5) better_errors (~> 2.5)
binding_of_caller (~> 0.7) binding_of_caller (~> 0.7)
bootsnap (~> 1.4) bootsnap (~> 1.4)
@ -772,7 +775,7 @@ DEPENDENCIES
twitter-text (~> 1.14) twitter-text (~> 1.14)
tzinfo-data (~> 1.2018) tzinfo-data (~> 1.2018)
webmock (~> 3.5) webmock (~> 3.5)
webpacker (~> 3.5) webpacker (~> 4.0)
webpush webpush
RUBY VERSION RUBY VERSION

@ -0,0 +1,12 @@
# frozen_string_literal: true
class Api::V1::PreferencesController < Api::BaseController
before_action -> { doorkeeper_authorize! :read, :'read:accounts' }
before_action :require_user!
respond_to :json
def index
render json: current_account, serializer: REST::PreferencesSerializer
end
end

@ -9,7 +9,7 @@ class Api::V1::Statuses::ReblogsController < Api::BaseController
respond_to :json respond_to :json
def create def create
@status = ReblogService.new.call(current_user.account, status_for_reblog) @status = ReblogService.new.call(current_user.account, status_for_reblog, reblog_params)
render json: @status, serializer: REST::StatusSerializer render json: @status, serializer: REST::StatusSerializer
end end
@ -32,4 +32,8 @@ class Api::V1::Statuses::ReblogsController < Api::BaseController
def status_for_destroy def status_for_destroy
current_user.account.statuses.where(reblog_of_id: params[:status_id]).first! current_user.account.statuses.where(reblog_of_id: params[:status_id]).first!
end end
def reblog_params
params.permit(:visibility)
end
end end

@ -0,0 +1,98 @@
# frozen_string_literal: true
class RelationshipsController < ApplicationController
layout 'admin'
before_action :authenticate_user!
before_action :set_accounts, only: :show
before_action :set_body_classes
helper_method :following_relationship?, :followed_by_relationship?, :mutual_relationship?
def show
@form = Form::AccountBatch.new
end
def update
@form = Form::AccountBatch.new(form_account_batch_params.merge(current_account: current_account, action: action_from_button))
@form.save
rescue ActionController::ParameterMissing
# Do nothing
ensure
redirect_to relationships_path(current_params)
end
private
def set_accounts
@accounts = relationships_scope.page(params[:page]).per(40)
end
def relationships_scope
scope = begin
if following_relationship?
current_account.following.includes(:account_stat)
else
current_account.followers.includes(:account_stat)
end
end
scope.merge!(Follow.recent)
scope.merge!(mutual_relationship_scope) if mutual_relationship?
scope.merge!(abandoned_account_scope) if params[:status] == 'abandoned'
scope.merge!(active_account_scope) if params[:status] == 'active'
scope.merge!(by_domain_scope) if params[:by_domain].present?
scope
end
def mutual_relationship_scope
Account.where(id: current_account.following)
end
def abandoned_account_scope
Account.where.not(moved_to_account_id: nil)
end
def active_account_scope
Account.where(moved_to_account_id: nil)
end
def by_domain_scope
Account.where(domain: params[:by_domain])
end
def form_account_batch_params
params.require(:form_account_batch).permit(:action, account_ids: [])
end
def following_relationship?
params[:relationship].blank? || params[:relationship] == 'following'
end
def mutual_relationship?
params[:relationship] == 'mutual'
end
def followed_by_relationship?
params[:relationship] == 'followed_by'
end
def current_params
params.slice(:page, :status, :relationship, :by_domain).permit(:page, :status, :relationship, :by_domain)
end
def action_from_button
if params[:unfollow]
'unfollow'
elsif params[:remove_from_followers]
'remove_from_followers'
elsif params[:block_domains]
'block_domains'
end
end
def set_body_classes
@body_classes = 'admin'
end
end

@ -1,24 +0,0 @@
# frozen_string_literal: true
class Settings::FollowerDomainsController < Settings::BaseController
def show
@account = current_account
@domains = current_account.followers.reorder(Arel.sql('MIN(follows.id) DESC')).group('accounts.domain').select('accounts.domain, count(accounts.id) as accounts_from_domain').page(params[:page]).per(10)
end
def update
domains = bulk_params[:select] || []
AfterAccountDomainBlockWorker.push_bulk(domains) do |domain|
[current_account.id, domain]
end
redirect_to settings_follower_domains_path, notice: I18n.t('followers.success', count: domains.size)
end
private
def bulk_params
params.permit(select: [])
end
end

@ -9,42 +9,6 @@ module Admin::ActionLogsHelper
end end
end end
def linkable_log_target(record)
case record.class.name
when 'Account'
link_to record.acct, admin_account_path(record.id)
when 'User'
link_to record.account.acct, admin_account_path(record.account_id)
when 'CustomEmoji'
record.shortcode
when 'Report'
link_to "##{record.id}", admin_report_path(record)
when 'DomainBlock', 'EmailDomainBlock'
link_to record.domain, "https://#{record.domain}"
when 'Status'
link_to record.account.acct, TagManager.instance.url_for(record)
when 'AccountWarning'
link_to record.target_account.acct, admin_account_path(record.target_account_id)
end
end
def log_target_from_history(type, attributes)
case type
when 'CustomEmoji'
attributes['shortcode']
when 'DomainBlock', 'EmailDomainBlock'
link_to attributes['domain'], "https://#{attributes['domain']}"
when 'Status'
tmp_status = Status.new(attributes.except('reblogs_count', 'favourites_count'))
if tmp_status.account
link_to tmp_status.account&.acct || "##{tmp_status.account_id}", admin_account_path(tmp_status.account_id)
else
I18n.t('admin.action_logs.deleted_status')
end
end
end
def relevant_log_changes(log) def relevant_log_changes(log)
if log.target_type == 'CustomEmoji' && [:enable, :disable, :destroy].include?(log.action) if log.target_type == 'CustomEmoji' && [:enable, :disable, :destroy].include?(log.action)
log.recorded_changes.slice('domain') log.recorded_changes.slice('domain')
@ -111,4 +75,40 @@ module Admin::ActionLogsHelper
def opposite_verbs?(log) def opposite_verbs?(log)
%w(DomainBlock EmailDomainBlock AccountWarning).include?(log.target_type) %w(DomainBlock EmailDomainBlock AccountWarning).include?(log.target_type)
end end
def linkable_log_target(record)
case record.class.name
when 'Account'
link_to record.acct, admin_account_path(record.id)
when 'User'
link_to record.account.acct, admin_account_path(record.account_id)
when 'CustomEmoji'
record.shortcode
when 'Report'
link_to "##{record.id}", admin_report_path(record)
when 'DomainBlock', 'EmailDomainBlock'
link_to record.domain, "https://#{record.domain}"
when 'Status'
link_to record.account.acct, TagManager.instance.url_for(record)
when 'AccountWarning'
link_to record.target_account.acct, admin_account_path(record.target_account_id)
end
end
def log_target_from_history(type, attributes)
case type
when 'CustomEmoji'
attributes['shortcode']
when 'DomainBlock', 'EmailDomainBlock'
link_to attributes['domain'], "https://#{attributes['domain']}"
when 'Status'
tmp_status = Status.new(attributes.except('reblogs_count', 'favourites_count'))
if tmp_status.account
link_to tmp_status.account&.acct || "##{tmp_status.account_id}", admin_account_path(tmp_status.account_id)
else
I18n.t('admin.action_logs.deleted_status')
end
end
end
end end

@ -7,8 +7,9 @@ module Admin::FilterHelper
CUSTOM_EMOJI_FILTERS = %i(local remote by_domain shortcode).freeze CUSTOM_EMOJI_FILTERS = %i(local remote by_domain shortcode).freeze
TAGS_FILTERS = %i(hidden).freeze TAGS_FILTERS = %i(hidden).freeze
INSTANCES_FILTERS = %i(limited by_domain).freeze INSTANCES_FILTERS = %i(limited by_domain).freeze
FOLLOWERS_FILTERS = %i(relationship status by_domain).freeze
FILTERS = ACCOUNT_FILTERS + REPORT_FILTERS + INVITE_FILTER + CUSTOM_EMOJI_FILTERS + TAGS_FILTERS + INSTANCES_FILTERS FILTERS = ACCOUNT_FILTERS + REPORT_FILTERS + INVITE_FILTER + CUSTOM_EMOJI_FILTERS + TAGS_FILTERS + INSTANCES_FILTERS + FOLLOWERS_FILTERS
def filter_link_to(text, link_to_params, link_class_params = link_to_params) def filter_link_to(text, link_to_params, link_class_params = link_to_params)
new_url = filtered_url_for(link_to_params) new_url = filtered_url_for(link_to_params)

@ -0,0 +1,39 @@
import React from 'react';
import PropTypes from 'prop-types';
import illustration from '../../images/elephant_ui_disappointed.svg';
export default class ErrorBoundary extends React.PureComponent {
static propTypes = {
children: PropTypes.node,
};
state = {
hasError: false,
stackTrace: undefined,
componentStack: undefined,
}
componentDidCatch(error, info) {
this.setState({
hasError: true,
stackTrace: error.stack,
componentStack: info && info.componentStack,
});
}
render() {
const { hasError } = this.state;
if (!hasError) {
return this.props.children;
}
return (
<div>
<img src={illustration} alt='' />
</div>
);
}
}

@ -13,6 +13,7 @@ import { connectUserStream } from '../actions/streaming';
import { IntlProvider, addLocaleData } from 'react-intl'; import { IntlProvider, addLocaleData } from 'react-intl';
import { getLocale } from '../locales'; import { getLocale } from '../locales';
import initialState from '../initial_state'; import initialState from '../initial_state';
import ErrorBoundary from '../components/error_boundary';
const { localeData, messages } = getLocale(); const { localeData, messages } = getLocale();
addLocaleData(localeData); addLocaleData(localeData);
@ -75,7 +76,9 @@ export default class Mastodon extends React.PureComponent {
return ( return (
<IntlProvider locale={locale} messages={messages}> <IntlProvider locale={locale} messages={messages}>
<Provider store={store}> <Provider store={store}>
<ErrorBoundary>
<MastodonMount /> <MastodonMount />
</ErrorBoundary>
</Provider> </Provider>
</IntlProvider> </IntlProvider>
); );

@ -53,6 +53,11 @@ class Bundle extends React.PureComponent {
const { fetchComponent, onFetch, onFetchSuccess, onFetchFail, renderDelay } = props || this.props; const { fetchComponent, onFetch, onFetchSuccess, onFetchFail, renderDelay } = props || this.props;
const cachedMod = Bundle.cache.get(fetchComponent); const cachedMod = Bundle.cache.get(fetchComponent);
if (fetchComponent === undefined) {
this.setState({ mod: null });
return Promise.resolve();
}
onFetch(); onFetch();
if (cachedMod) { if (cachedMod) {

@ -73,6 +73,10 @@
"compose_form.lock_disclaimer": "Váš účet není {locked}. Kdokoliv vás může sledovat a vidět vaše příspěvky pouze pro sledující.", "compose_form.lock_disclaimer": "Váš účet není {locked}. Kdokoliv vás může sledovat a vidět vaše příspěvky pouze pro sledující.",
"compose_form.lock_disclaimer.lock": "uzamčen", "compose_form.lock_disclaimer.lock": "uzamčen",
"compose_form.placeholder": "Co se vám honí hlavou?", "compose_form.placeholder": "Co se vám honí hlavou?",
"compose_form.poll.add_option": "Přidat volbu",
"compose_form.poll.duration": "Délka ankety",
"compose_form.poll.option_placeholder": "Volba {number}",
"compose_form.poll.remove_option": "Odstranit tuto volbu",
"compose_form.publish": "Tootnout", "compose_form.publish": "Tootnout",
"compose_form.publish_loud": "{publish}!", "compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.marked": "Mediální obsah je označen jako citlivý", "compose_form.sensitive.marked": "Mediální obsah je označen jako citlivý",
@ -151,6 +155,9 @@
"home.column_settings.basic": "Základní", "home.column_settings.basic": "Základní",
"home.column_settings.show_reblogs": "Zobrazit boosty", "home.column_settings.show_reblogs": "Zobrazit boosty",
"home.column_settings.show_replies": "Zobrazit odpovědi", "home.column_settings.show_replies": "Zobrazit odpovědi",
"intervals.full.days": "{number, plural, one {# den} few {# dny} many {# dne} other {# dní}}",
"intervals.full.hours": "{number, plural, one {# hodina} few {# hodiny} many {# hodiny} other {# hodin}}",
"intervals.full.minutes": "{number, plural, one {# minuta} few {# minuty} many {# minuty} other {# minut}}",
"introduction.federation.action": "Další", "introduction.federation.action": "Další",
"introduction.federation.federated.headline": "Federovaná", "introduction.federation.federated.headline": "Federovaná",
"introduction.federation.federated.text": "Veřejné příspěvky z jiných serverů na fediverse se zobrazí na federované časové ose.", "introduction.federation.federated.text": "Veřejné příspěvky z jiných serverů na fediverse se zobrazí na federované časové ose.",
@ -240,6 +247,7 @@
"notification.favourite": "{name} si oblíbil/a váš toot", "notification.favourite": "{name} si oblíbil/a váš toot",
"notification.follow": "{name} vás začal/a sledovat", "notification.follow": "{name} vás začal/a sledovat",
"notification.mention": "{name} vás zmínil/a", "notification.mention": "{name} vás zmínil/a",
"notification.poll": "Anketa, ve které jste hlasoval/a, skončila",
"notification.reblog": "{name} boostnul/a váš toot", "notification.reblog": "{name} boostnul/a váš toot",
"notifications.clear": "Vymazat oznámení", "notifications.clear": "Vymazat oznámení",
"notifications.clear_confirmation": "Jste si jistý/á, že chcete trvale vymazat všechna vaše oznámení?", "notifications.clear_confirmation": "Jste si jistý/á, že chcete trvale vymazat všechna vaše oznámení?",
@ -264,6 +272,8 @@
"poll.refresh": "Refresh", "poll.refresh": "Refresh",
"poll.total_votes": "{count, plural, one {# vote} other {# votes}}", "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
"poll.vote": "Vote", "poll.vote": "Vote",
"poll_button.add_poll": "Přidat anketu",
"poll_button.remove_poll": "Odstranit anketu",
"privacy.change": "Změnit soukromí tootu", "privacy.change": "Změnit soukromí tootu",
"privacy.direct.long": "Odeslat pouze zmíněným uživatelům", "privacy.direct.long": "Odeslat pouze zmíněným uživatelům",
"privacy.direct.short": "Přímý", "privacy.direct.short": "Přímý",
@ -356,6 +366,7 @@
"upload_area.title": "Přetažením nahrajete", "upload_area.title": "Přetažením nahrajete",
"upload_button.label": "Přidat média (JPEG, PNG, GIF, WebM, MP4, MOV)", "upload_button.label": "Přidat média (JPEG, PNG, GIF, WebM, MP4, MOV)",
"upload_error.limit": "Byl překročen limit nahraných souborů.", "upload_error.limit": "Byl překročen limit nahraných souborů.",
"upload_error.poll": "Nahrávání souborů není povoleno u anket.",
"upload_form.description": "Popis pro zrakově postižené", "upload_form.description": "Popis pro zrakově postižené",
"upload_form.focus": "Změnit náhled", "upload_form.focus": "Změnit náhled",
"upload_form.undo": "Smazat", "upload_form.undo": "Smazat",

@ -140,6 +140,15 @@ a.table-action-link {
input { input {
margin-top: 8px; margin-top: 8px;
} }
&--aligned {
display: flex;
align-items: center;
input {
margin-top: 0;
}
}
} }
&__actions, &__actions,
@ -183,6 +192,10 @@ a.table-action-link {
&__content { &__content {
padding-top: 12px; padding-top: 12px;
padding-bottom: 16px; padding-bottom: 16px;
&--unpadded {
padding: 0;
}
} }
} }
@ -197,4 +210,10 @@ a.table-action-link {
font-weight: 700; font-weight: 700;
} }
} }
.nothing-here {
border: 1px solid darken($ui-base-color, 8%);
border-top: 0;
box-shadow: none;
}
} }

@ -4,6 +4,7 @@ class LanguageDetector
include Singleton include Singleton
CHARACTER_THRESHOLD = 140 CHARACTER_THRESHOLD = 140
RELIABLE_CHARACTERS_RE = /[\p{Hebrew}\p{Arabic}\p{Syriac}\p{Thaana}\p{Nko}\p{Han}\p{Katakana}\p{Hiragana}\p{Hangul}]+/m
def initialize def initialize
@identifier = CLD3::NNetLanguageIdentifier.new(1, 2048) @identifier = CLD3::NNetLanguageIdentifier.new(1, 2048)
@ -11,15 +12,14 @@ class LanguageDetector
def detect(text, account) def detect(text, account)
input_text = prepare_text(text) input_text = prepare_text(text)
return if input_text.blank? return if input_text.blank?
detect_language_code(input_text) || default_locale(account) detect_language_code(input_text) || default_locale(account)
end end
def language_names def language_names
@language_names = @language_names = CLD3::TaskContextParams::LANGUAGE_NAMES.map { |name| iso6391(name.to_s).to_sym }.uniq
CLD3::TaskContextParams::LANGUAGE_NAMES.map { |name| iso6391(name.to_s).to_sym }
.uniq
end end
private private
@ -29,12 +29,29 @@ class LanguageDetector
end end
def unreliable_input?(text) def unreliable_input?(text)
text.size < CHARACTER_THRESHOLD !reliable_input?(text)
end
def reliable_input?(text)
sufficient_text_length?(text) || language_specific_character_set?(text)
end
def sufficient_text_length?(text)
text.size >= CHARACTER_THRESHOLD
end
def language_specific_character_set?(text)
words = text.scan(RELIABLE_CHARACTERS_RE)
if words.present?
words.reduce(0) { |acc, elem| acc + elem.size }.to_f / text.size.to_f > 0.3
else
false
end
end end
def detect_language_code(text) def detect_language_code(text)
return if unreliable_input?(text) return if unreliable_input?(text)
result = @identifier.find_language(text) result = @identifier.find_language(text)
iso6391(result.language.to_s).to_sym if result.reliable? iso6391(result.language.to_s).to_sym if result.reliable?
end end
@ -77,6 +94,6 @@ class LanguageDetector
end end
def default_locale(account) def default_locale(account)
return account.user_locale&.to_sym || I18n.default_locale if account.local? account.user_locale&.to_sym || I18n.default_locale if account.local?
end end
end end

@ -0,0 +1,60 @@
# frozen_string_literal: true
class Form::AccountBatch
include ActiveModel::Model
attr_accessor :account_ids, :action, :current_account
def save
case action
when 'unfollow'
unfollow!
when 'remove_from_followers'
remove_from_followers!
when 'block_domains'
block_domains!
end
end
private
def unfollow!
accounts.find_each do |target_account|
UnfollowService.new.call(current_account, target_account)
end
end
def remove_from_followers!
current_account.passive_relationships.where(account_id: account_ids).find_each do |follow|
reject_follow!(follow)
end
end
def block_domains!
AfterAccountDomainBlockWorker.push_bulk(account_domains) do |domain|
[current_account.id, domain]
end
end
def account_domains
accounts.pluck(Arel.sql('distinct domain')).compact
end
def accounts
Account.where(id: account_ids)
end
def reject_follow!(follow)
follow.destroy
return unless follow.account.activitypub?
json = ActiveModelSerializers::SerializableResource.new(
follow,
serializer: ActivityPub::RejectFollowSerializer,
adapter: ActivityPub::Adapter
).to_json
ActivityPub::DeliveryWorker.perform_async(json, current_account.id, follow.account.inbox_url)
end
end

@ -73,7 +73,9 @@ class Status < ApplicationRecord
validates_with StatusLengthValidator validates_with StatusLengthValidator
validates_with DisallowedHashtagsValidator validates_with DisallowedHashtagsValidator
validates :reblog, uniqueness: { scope: :account }, if: :reblog? validates :reblog, uniqueness: { scope: :account }, if: :reblog?
validates_associated :owned_poll validates :visibility, exclusion: { in: %w(direct limited) }, if: :reblog?
accepts_nested_attributes_for :owned_poll
default_scope { recent } default_scope { recent }

@ -32,7 +32,7 @@ class REST::InstanceSerializer < ActiveModel::Serializer
end end
def thumbnail def thumbnail
instance_presenter.thumbnail ? full_asset_url(instance_presenter.thumbnail.file.url) : full_pack_url('preview.jpg') instance_presenter.thumbnail ? full_asset_url(instance_presenter.thumbnail.file.url) : full_pack_url('media/images/preview.jpg')
end end
def max_toot_chars def max_toot_chars

@ -0,0 +1,30 @@
# frozen_string_literal: true
class REST::PreferencesSerializer < ActiveModel::Serializer
attribute :posting_default_privacy, key: 'posting:default:visibility'
attribute :posting_default_sensitive, key: 'posting:default:sensitive'
attribute :posting_default_language, key: 'posting:default:language'
attribute :reading_default_sensitive_media, key: 'reading:expand:media'
attribute :reading_default_sensitive_text, key: 'reading:expand:spoilers'
def posting_default_privacy
object.user.setting_default_privacy
end
def posting_default_sensitive
object.user.setting_default_sensitive
end
def posting_default_language
object.user.setting_default_language.presence
end
def reading_default_sensitive_media
object.user.setting_display_media
end
def reading_default_sensitive_text
object.user.setting_expand_spoilers
end
end

@ -11,7 +11,7 @@ class RSS::AccountSerializer
builder.title("#{display_name(account)} (@#{account.local_username_and_domain})") builder.title("#{display_name(account)} (@#{account.local_username_and_domain})")
.description(account_description(account)) .description(account_description(account))
.link(TagManager.instance.url_for(account)) .link(TagManager.instance.url_for(account))
.logo(full_asset_url(asset_pack_path('logo.svg'))) .logo(full_pack_url('media/images/logo.svg'))
.accent_color('2b90d9') .accent_color('2b90d9')
builder.image(full_asset_url(account.avatar.url(:original))) if account.avatar? builder.image(full_asset_url(account.avatar.url(:original))) if account.avatar?

@ -12,7 +12,7 @@ class RSS::TagSerializer
builder.title("##{tag.name}") builder.title("##{tag.name}")
.description(strip_tags(I18n.t('about.about_hashtag_html', hashtag: tag.name))) .description(strip_tags(I18n.t('about.about_hashtag_html', hashtag: tag.name)))
.link(tag_url(tag)) .link(tag_url(tag))
.logo(full_asset_url(asset_pack_path('logo.svg'))) .logo(full_pack_url('media/images/logo.svg'))
.accent_color('2b90d9') .accent_color('2b90d9')
statuses.each do |status| statuses.each do |status|

@ -29,7 +29,6 @@ class PostStatusService < BaseService
return idempotency_duplicate if idempotency_given? && idempotency_duplicate? return idempotency_duplicate if idempotency_given? && idempotency_duplicate?
validate_media! validate_media!
validate_poll!
preprocess_attributes! preprocess_attributes!
if scheduled? if scheduled?
@ -74,6 +73,7 @@ class PostStatusService < BaseService
def schedule_status! def schedule_status!
status_for_validation = @account.statuses.build(status_attributes) status_for_validation = @account.statuses.build(status_attributes)
if status_for_validation.valid? if status_for_validation.valid?
status_for_validation.destroy status_for_validation.destroy
@ -110,12 +110,6 @@ class PostStatusService < BaseService
raise Mastodon::ValidationError, I18n.t('media_attachments.validations.images_and_video') if @media.size > 1 && @media.find(&:video?) raise Mastodon::ValidationError, I18n.t('media_attachments.validations.images_and_video') if @media.size > 1 && @media.find(&:video?)
end end
def validate_poll!
return if @options[:poll].blank?
@poll = @account.polls.new(@options[:poll])
end
def language_from_option(str) def language_from_option(str)
ISO_639.find(str)&.alpha2 ISO_639.find(str)&.alpha2
end end
@ -168,13 +162,13 @@ class PostStatusService < BaseService
text: @text, text: @text,
media_attachments: @media || [], media_attachments: @media || [],
thread: @in_reply_to, thread: @in_reply_to,
owned_poll: @poll, owned_poll_attributes: poll_attributes,
sensitive: (@options[:sensitive].nil? ? @account.user&.setting_default_sensitive : @options[:sensitive]) || @options[:spoiler_text].present?, sensitive: (@options[:sensitive].nil? ? @account.user&.setting_default_sensitive : @options[:sensitive]) || @options[:spoiler_text].present?,
spoiler_text: @options[:spoiler_text] || '', spoiler_text: @options[:spoiler_text] || '',
visibility: @visibility, visibility: @visibility,
language: language_from_option(@options[:language]) || @account.user&.setting_default_language&.presence || LanguageDetector.instance.detect(@text, @account), language: language_from_option(@options[:language]) || @account.user&.setting_default_language&.presence || LanguageDetector.instance.detect(@text, @account),
application: @options[:application], application: @options[:application],
} }.compact
end end
def scheduled_status_attributes def scheduled_status_attributes
@ -185,6 +179,12 @@ class PostStatusService < BaseService
} }
end end
def poll_attributes
return if @options[:poll].blank?
@options[:poll].merge(account: @account)
end
def scheduled_options def scheduled_options
@options.tap do |options_hash| @options.tap do |options_hash|
options_hash[:in_reply_to_id] = options_hash.delete(:thread)&.id options_hash[:in_reply_to_id] = options_hash.delete(:thread)&.id

@ -7,8 +7,9 @@ class ReblogService < BaseService
# Reblog a status and notify its remote author # Reblog a status and notify its remote author
# @param [Account] account Account to reblog from # @param [Account] account Account to reblog from
# @param [Status] reblogged_status Status to be reblogged # @param [Status] reblogged_status Status to be reblogged
# @param [Hash] options
# @return [Status] # @return [Status]
def call(account, reblogged_status) def call(account, reblogged_status, options = {})
reblogged_status = reblogged_status.reblog if reblogged_status.reblog? reblogged_status = reblogged_status.reblog if reblogged_status.reblog?
authorize_with account, reblogged_status, :reblog? authorize_with account, reblogged_status, :reblog?
@ -17,7 +18,7 @@ class ReblogService < BaseService
return reblog unless reblog.nil? return reblog unless reblog.nil?
reblog = account.statuses.create!(reblog: reblogged_status, text: '') reblog = account.statuses.create!(reblog: reblogged_status, text: '', visibility: options[:visibility] || account.user&.setting_default_privacy)
DistributionWorker.perform_async(reblog.id) DistributionWorker.perform_async(reblog.id)
@ -38,7 +39,7 @@ class ReblogService < BaseService
reblogged_status = reblog.reblog reblogged_status = reblog.reblog
if reblogged_status.account.local? if reblogged_status.account.local?
NotifyService.new.call(reblogged_status.account, reblog) LocalNotificationWorker.perform_async(reblogged_status.account_id, reblog.id, reblog.class.name)
elsif reblogged_status.account.ostatus? elsif reblogged_status.account.ostatus?
NotificationWorker.perform_async(stream_entry_to_xml(reblog.stream_entry), reblog.account_id, reblogged_status.account_id) NotificationWorker.perform_async(stream_entry_to_xml(reblog.stream_entry), reblog.account_id, reblogged_status.account_id)
elsif reblogged_status.account.activitypub? && !reblogged_status.account.following?(reblog.account) elsif reblogged_status.account.activitypub? && !reblogged_status.account.following?(reblog.account)

@ -8,7 +8,7 @@
.column-0 .column-0
.public-account-header.public-account-header--no-bar .public-account-header.public-account-header--no-bar
.public-account-header__image .public-account-header__image
= image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('preview.jpg'), alt: @instance_presenter.site_title, class: 'parallax' = image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('media/images/preview.jpg'), alt: @instance_presenter.site_title, class: 'parallax'
.column-1 .column-1
.landing-page__call-to-action{ dir: 'ltr' } .landing-page__call-to-action{ dir: 'ltr' }
@ -24,7 +24,7 @@
%span= t 'about.status_count_after', count: @instance_presenter.status_count %span= t 'about.status_count_after', count: @instance_presenter.status_count
.row__mascot .row__mascot
.landing-page__mascot .landing-page__mascot
= image_tag @instance_presenter.mascot&.file&.url || asset_pack_path('elephant_ui_plane.svg'), alt: '' = image_tag @instance_presenter.mascot&.file&.url || asset_pack_path('media/images/elephant_ui_plane.svg'), alt: ''
.column-2 .column-2
.landing-page__information.contact-widget .landing-page__information.contact-widget

@ -8,7 +8,7 @@
.landing .landing
.landing__brand .landing__brand
= link_to root_url, class: 'brand' do = link_to root_url, class: 'brand' do
= image_tag asset_pack_path('logo_full.svg'), alt: 'Mastodon' = image_pack_tag 'logo_full.svg', alt: 'Mastodon'
%span.brand__tagline=t 'about.tagline' %span.brand__tagline=t 'about.tagline'
.landing__grid .landing__grid
@ -48,7 +48,7 @@
.hero-widget .hero-widget
.hero-widget__img .hero-widget__img
= image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('preview.jpg'), alt: @instance_presenter.site_title = image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('media/images/preview.jpg'), alt: @instance_presenter.site_title
- if @instance_presenter.site_short_description.present? - if @instance_presenter.site_short_description.present?
.hero-widget__text .hero-widget__text

@ -10,10 +10,7 @@
= image_tag invite.user.account.avatar.url(:original), alt: '', width: 16, height: 16, class: 'avatar' = image_tag invite.user.account.avatar.url(:original), alt: '', width: 16, height: 16, class: 'avatar'
%span.username= invite.user.account.username %span.username= invite.user.account.username
- if invite.expired? - if invite.valid_for_use?
%td{ colspan: 2 }
= t('invites.expired')
- else
%td %td
= fa_icon 'user fw' = fa_icon 'user fw'
= invite.uses = invite.uses
@ -24,6 +21,10 @@
- else - else
%time.formatted{ datetime: invite.expires_at.iso8601, title: l(invite.expires_at) } %time.formatted{ datetime: invite.expires_at.iso8601, title: l(invite.expires_at) }
= l invite.expires_at = l invite.expires_at
- else
%td{ colspan: 2 }
= t('invites.expired')
%td %td
- if !invite.expired? && policy(invite).destroy? - if invite.valid_for_use? && policy(invite).destroy?
= table_link_to 'times', t('invites.delete'), admin_invite_path(invite), method: :delete = table_link_to 'times', t('invites.delete'), admin_invite_path(invite), method: :delete

@ -1,6 +1,6 @@
.hero-widget .hero-widget
.hero-widget__img .hero-widget__img
= image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('preview.jpg'), alt: @instance_presenter.site_title = image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('media/images/preview.jpg'), alt: @instance_presenter.site_title
.hero-widget__text .hero-widget__text
%p= @instance_presenter.site_short_description.html_safe.presence || @instance_presenter.site_description.html_safe.presence || t('about.generic_description', domain: site_hostname) %p= @instance_presenter.site_short_description.html_safe.presence || @instance_presenter.site_description.html_safe.presence || t('about.generic_description', domain: site_hostname)

@ -9,7 +9,7 @@
.app-holder#mastodon{ data: { props: Oj.dump(default_props) } } .app-holder#mastodon{ data: { props: Oj.dump(default_props) } }
%noscript %noscript
= image_tag asset_pack_path('logo.svg'), alt: 'Mastodon' = image_pack_tag 'logo.svg', alt: 'Mastodon'
%div %div
= t('errors.noscript_html', apps_path: 'https://joinmastodon.org/apps') = t('errors.noscript_html', apps_path: 'https://joinmastodon.org/apps')

@ -5,10 +5,7 @@
%input{ type: :text, maxlength: '999', spellcheck: 'false', readonly: 'true', value: public_invite_url(invite_code: invite.code) } %input{ type: :text, maxlength: '999', spellcheck: 'false', readonly: 'true', value: public_invite_url(invite_code: invite.code) }
%button{ type: :button }= t('generic.copy') %button{ type: :button }= t('generic.copy')
- if invite.expired? - if invite.valid_for_use?
%td{ colspan: 2 }
= t('invites.expired')
- else
%td %td
= fa_icon 'user fw' = fa_icon 'user fw'
= invite.uses = invite.uses
@ -19,7 +16,10 @@
- else - else
%time.formatted{ datetime: invite.expires_at.iso8601, title: l(invite.expires_at) } %time.formatted{ datetime: invite.expires_at.iso8601, title: l(invite.expires_at) }
= l invite.expires_at = l invite.expires_at
- else
%td{ colspan: 2 }
= t('invites.expired')
%td %td
- if !invite.expired? && policy(invite).destroy? - if invite.valid_for_use? && policy(invite).destroy?
= table_link_to 'times', t('invites.delete'), invite_path(invite), method: :delete = table_link_to 'times', t('invites.delete'), invite_path(invite), method: :delete

@ -3,7 +3,7 @@
.sidebar-wrapper .sidebar-wrapper
.sidebar .sidebar
= link_to root_path do = link_to root_path do
= image_tag asset_pack_path('logo.svg'), class: 'logo', alt: 'Mastodon' = image_pack_tag 'logo.svg', class: 'logo', alt: 'Mastodon'
= render_navigation = render_navigation
.content-wrapper .content-wrapper

@ -3,7 +3,7 @@
.logo-container .logo-container
%h1 %h1
= link_to root_path do = link_to root_path do
= image_tag asset_pack_path('logo_full.svg'), alt: 'Mastodon' = image_pack_tag 'logo_full.svg', alt: 'Mastodon'
.form-container .form-container
= render 'flashes' = render 'flashes'

@ -24,7 +24,7 @@
%tr %tr
%td.column-cell %td.column-cell
= link_to root_url do = link_to root_url do
= image_tag full_pack_url('logo_full.png'), alt: 'Mastodon', height: 34, class: 'logo' = image_tag full_pack_url('media/images/mailer/logo_full.png'), alt: 'Mastodon', height: 34, class: 'logo'
= yield = yield
@ -49,4 +49,4 @@
%p= link_to t('application_mailer.notification_preferences'), settings_notifications_url %p= link_to t('application_mailer.notification_preferences'), settings_notifications_url
%td.column-cell.text-right %td.column-cell.text-right
= link_to root_url do = link_to root_url do
= image_tag full_pack_url('logo_transparent.png'), alt: 'Mastodon', height: 24 = image_tag full_pack_url('media/images/mailer/logo_transparent.png'), alt: 'Mastodon', height: 24

@ -5,7 +5,7 @@
%nav.header %nav.header
.nav-left .nav-left
= link_to root_url, class: 'brand' do = link_to root_url, class: 'brand' do
= image_tag asset_pack_path('logo_full.svg'), alt: 'Mastodon' = image_pack_tag 'logo_full.svg', alt: 'Mastodon'
= link_to t('directories.directory'), explore_path, class: 'nav-link optional' if Setting.profile_directory = link_to t('directories.directory'), explore_path, class: 'nav-link optional' if Setting.profile_directory
= link_to t('about.about_this'), about_more_path, class: 'nav-link optional' = link_to t('about.about_this'), about_more_path, class: 'nav-link optional'

@ -17,7 +17,7 @@
%tbody %tbody
%tr %tr
%td %td
= image_tag full_pack_url('icon_grade.png'), alt:'' = image_tag full_pack_url('media/images/mailer/icon_grade.png'), alt:''
%h1= t 'notification_mailer.favourite.title' %h1= t 'notification_mailer.favourite.title'
%p.lead= t('notification_mailer.favourite.body', name: @account.acct) %p.lead= t('notification_mailer.favourite.body', name: @account.acct)

@ -17,7 +17,7 @@
%tbody %tbody
%tr %tr
%td %td
= image_tag full_pack_url('icon_person_add.png'), alt: '' = image_tag full_pack_url('media/images/mailer/icon_person_add.png'), alt: ''
%h1= t 'notification_mailer.follow.title' %h1= t 'notification_mailer.follow.title'
%p.lead= t('notification_mailer.follow.body', name: @account.acct) %p.lead= t('notification_mailer.follow.body', name: @account.acct)

@ -17,7 +17,7 @@
%tbody %tbody
%tr %tr
%td %td
= image_tag full_pack_url('icon_person_add.png'), alt: '' = image_tag full_pack_url('media/images/mailer/icon_person_add.png'), alt: ''
%h1= t 'notification_mailer.follow_request.title' %h1= t 'notification_mailer.follow_request.title'
%p.lead= t('notification_mailer.follow_request.body', name: @account.acct) %p.lead= t('notification_mailer.follow_request.body', name: @account.acct)

@ -17,7 +17,7 @@
%tbody %tbody
%tr %tr
%td %td
= image_tag full_pack_url('icon_reply.png'), alt: '' = image_tag full_pack_url('media/images/mailer/icon_reply.png'), alt: ''
%h1= t 'notification_mailer.mention.title' %h1= t 'notification_mailer.mention.title'
%p.lead= t('notification_mailer.mention.body', name: @status.account.acct) %p.lead= t('notification_mailer.mention.body', name: @status.account.acct)

@ -17,7 +17,7 @@
%tbody %tbody
%tr %tr
%td %td
= image_tag full_pack_url('icon_cached.png'), alt: '' = image_tag full_pack_url('media/images/mailer/icon_cached.png'), alt: ''
%h1= t 'notification_mailer.reblog.title' %h1= t 'notification_mailer.reblog.title'
%p.lead= t('notification_mailer.reblog.body', name: @account.acct) %p.lead= t('notification_mailer.reblog.body', name: @account.acct)

@ -0,0 +1,20 @@
.batch-table__row
%label.batch-table__row__select.batch-table__row__select--aligned.batch-checkbox
= f.check_box :account_ids, { multiple: true, include_hidden: false }, account.id
.batch-table__row__content.batch-table__row__content--unpadded
%table.accounts-table
%tbody
%tr
%td= account_link_to account
%td.accounts-table__count.optional
= number_to_human account.statuses_count, strip_insignificant_zeros: true
%small= t('accounts.posts', count: account.statuses_count).downcase
%td.accounts-table__count.optional
= number_to_human account.followers_count, strip_insignificant_zeros: true
%small= t('accounts.followers', count: account.followers_count).downcase
%td.accounts-table__count
- if account.last_status_at.present?
%time.time-ago{ datetime: account.last_status_at.iso8601, title: l(account.last_status_at) }= l account.last_status_at
- else
\-
%small= t('accounts.last_active')

@ -0,0 +1,43 @@
- content_for :page_title do
= t('settings.relationships')
- content_for :header_tags do
= javascript_pack_tag 'admin', integrity: true, async: true, crossorigin: 'anonymous'
.filters
.filter-subset
%strong= t 'relationships.relationship'
%ul
%li= filter_link_to t('accounts.following', count: current_account.following_count), relationship: nil
%li= filter_link_to t('accounts.followers', count: current_account.followers_count), relationship: 'followed_by'
%li= filter_link_to t('relationships.mutual'), relationship: 'mutual'
.filter-subset
%strong= t 'relationships.status'
%ul
%li= filter_link_to t('generic.all'), status: nil
%li= filter_link_to t('relationships.active'), status: 'active'
%li= filter_link_to t('relationships.abandoned'), status: 'abandoned'
= form_for(@form, url: relationships_path, method: :patch) do |f|
= hidden_field_tag :page, params[:page] || 1
= hidden_field_tag :relationship, params[:relationship]
= hidden_field_tag :status, params[:status]
.batch-table
.batch-table__toolbar
%label.batch-table__toolbar__select.batch-checkbox-all
= check_box_tag :batch_checkbox_all, nil, false
.batch-table__toolbar__actions
= f.button safe_join([fa_icon('user-times'), t('relationships.remove_selected_follows')]), name: :unfollow, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } unless followed_by_relationship?
= f.button safe_join([fa_icon('trash'), t('relationships.remove_selected_followers')]), name: :remove_from_followers, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } unless following_relationship?
= f.button safe_join([fa_icon('trash'), t('relationships.remove_selected_domains')]), name: :block_domains, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } if followed_by_relationship?
.batch-table__body
- if @accounts.empty?
= nothing_here 'nothing-here--under-tabs'
- else
= render partial: 'account', collection: @accounts, locals: { f: f }
= paginate @accounts

@ -1,34 +0,0 @@
- content_for :page_title do
= t('settings.followers')
= form_tag settings_follower_domains_path, method: :patch, class: 'table-form' do
- unless @account.locked?
.warning
%strong
= fa_icon('warning')
= t('followers.unlocked_warning_title')
= t('followers.unlocked_warning_html', lock_link: link_to(t('followers.lock_link'), settings_profile_url))
%p= t('followers.explanation_html')
%p= t('followers.true_privacy_html')
.table-wrapper
%table.table
%thead
%tr
%th
%th= t('followers.domain')
%th= t('followers.followers_count')
%tbody
- @domains.each do |domain|
%tr
%td
= check_box_tag 'select[]', domain.domain, false, disabled: !@account.locked? unless domain.domain.nil?
%td
%samp= domain.domain.presence || Rails.configuration.x.local_domain
%td= number_with_delimiter domain.accounts_from_domain
.action-pagination
.actions
= button_tag t('followers.purge'), type: :submit, class: 'button', disabled: !@account.locked?
= paginate @domains

@ -8,7 +8,7 @@
= opengraph 'og:type', 'website' = opengraph 'og:type', 'website'
= opengraph 'og:title', @instance_presenter.site_title = opengraph 'og:title', @instance_presenter.site_title
= opengraph 'og:description', description = opengraph 'og:description', description
= opengraph 'og:image', full_asset_url(thumbnail&.file&.url || asset_pack_path('preview.jpg', protocol: :request)) = opengraph 'og:image', full_asset_url(thumbnail&.file&.url || asset_pack_path('media/images/preview.jpg', protocol: :request))
= opengraph 'og:image:width', thumbnail ? thumbnail.meta['width'] : '1200' = opengraph 'og:image:width', thumbnail ? thumbnail.meta['width'] : '1200'
= opengraph 'og:image:height', thumbnail ? thumbnail.meta['height'] : '630' = opengraph 'og:image:height', thumbnail ? thumbnail.meta['height'] : '630'
= opengraph 'twitter:card', 'summary_large_image' = opengraph 'twitter:card', 'summary_large_image'

@ -17,7 +17,7 @@
%tbody %tbody
%tr %tr
%td %td
= image_tag full_pack_url('icon_file_download.png'), alt: '' = image_tag full_pack_url('media/images/mailer/icon_file_download.png'), alt: ''
%h1= t 'user_mailer.backup_ready.title' %h1= t 'user_mailer.backup_ready.title'

@ -17,7 +17,7 @@
%tbody %tbody
%tr %tr
%td %td
= image_tag full_pack_url('icon_email.png'), alt: '' = image_tag full_pack_url('media/images/mailer/icon_email.png'), alt: ''
%h1= t 'devise.mailer.confirmation_instructions.title' %h1= t 'devise.mailer.confirmation_instructions.title'

@ -17,7 +17,7 @@
%tbody %tbody
%tr %tr
%td %td
= image_tag full_pack_url('icon_email.png'), alt: '' = image_tag full_pack_url('media/images/mailer/icon_email.png'), alt: ''
%h1= t 'devise.mailer.email_changed.title' %h1= t 'devise.mailer.email_changed.title'
%p.lead= t 'devise.mailer.email_changed.explanation' %p.lead= t 'devise.mailer.email_changed.explanation'

@ -17,7 +17,7 @@
%tbody %tbody
%tr %tr
%td %td
= image_tag full_pack_url('icon_lock_open.png'), alt: '' = image_tag full_pack_url('media/images/mailer/icon_lock_open.png'), alt: ''
%h1= t 'devise.mailer.password_change.title' %h1= t 'devise.mailer.password_change.title'
%p.lead= t 'devise.mailer.password_change.explanation' %p.lead= t 'devise.mailer.password_change.explanation'

@ -17,7 +17,7 @@
%tbody %tbody
%tr %tr
%td %td
= image_tag full_pack_url('icon_email.png'), alt: '' = image_tag full_pack_url('media/images/mailer/icon_email.png'), alt: ''
%h1= t 'devise.mailer.reconfirmation_instructions.title' %h1= t 'devise.mailer.reconfirmation_instructions.title'
%p.lead= t 'devise.mailer.reconfirmation_instructions.explanation' %p.lead= t 'devise.mailer.reconfirmation_instructions.explanation'

@ -17,7 +17,7 @@
%tbody %tbody
%tr %tr
%td %td
= image_tag full_pack_url('icon_lock_open.png'), alt: '' = image_tag full_pack_url('media/images/mailer/icon_lock_open.png'), alt: ''
%h1= t 'devise.mailer.reset_password_instructions.title' %h1= t 'devise.mailer.reset_password_instructions.title'
%p.lead= t 'devise.mailer.reset_password_instructions.explanation' %p.lead= t 'devise.mailer.reset_password_instructions.explanation'

@ -17,7 +17,7 @@
%tbody %tbody
%tr %tr
%td %td
= image_tag full_pack_url('icon_warning.png'), alt: '' = image_tag full_pack_url('media/images/mailer/icon_warning.png'), alt: ''
%h1= t "user_mailer.warning.title.#{@warning.action}" %h1= t "user_mailer.warning.title.#{@warning.action}"

@ -17,7 +17,7 @@
%tbody %tbody
%tr %tr
%td %td
= image_tag full_pack_url('icon_done.png'), alt: '' = image_tag full_pack_url('media/images/mailer/icon_done.png'), alt: ''
%h1= t 'user_mailer.welcome.title', name: @resource.account.username %h1= t 'user_mailer.welcome.title', name: @resource.account.username
%p.lead= t 'user_mailer.welcome.explanation' %p.lead= t 'user_mailer.welcome.explanation'

@ -12,4 +12,8 @@ require "bundler/setup"
require "webpacker" require "webpacker"
require "webpacker/webpack_runner" require "webpacker/webpack_runner"
Webpacker::WebpackRunner.run(ARGV)
APP_ROOT = File.expand_path("..", __dir__)
Dir.chdir(APP_ROOT) do
Webpacker::WebpackRunner.run(ARGV)
end

@ -12,4 +12,8 @@ require "bundler/setup"
require "webpacker" require "webpacker"
require "webpacker/dev_server_runner" require "webpacker/dev_server_runner"
Webpacker::DevServerRunner.run(ARGV)
APP_ROOT = File.expand_path("..", __dir__)
Dir.chdir(APP_ROOT) do
Webpacker::DevServerRunner.run(ARGV)
end

@ -1,6 +1,9 @@
--- ---
en: en:
activerecord: activerecord:
attributes:
status:
owned_poll: Poll
errors: errors:
models: models:
account: account:

@ -607,15 +607,6 @@ ar:
title: عوامل التصفية title: عوامل التصفية
new: new:
title: إضافة عامل تصفية جديد title: إضافة عامل تصفية جديد
followers:
domain: النطاق
followers_count: عدد المتابِعين
lock_link: قم بتجميد حسابك
purge: تنحية من بين متابعيك
success: جارية عملية حظر المتابِعين بسلاسة من %{count} نطاقات أخرى ...
true_privacy_html: تذكر دائمًا أنّ <strong>الخصوصية التامة لا يمكن بلوغها إلّا بالتعمية و التشفير من طرف إلى آخَر</strong>.
unlocked_warning_html: يمكن لأي كان متابعة حسابك و الإطلاع مباشرة على تبويقاتك. إستخدِم %{lock_link} لمُعاينة أو رفض طلبات المتابِعين الجُدُد.
unlocked_warning_title: إنّ حسابك غير مقفل
footer: footer:
developers: المطورون developers: المطورون
more: المزيد … more: المزيد …
@ -818,7 +809,6 @@ ar:
development: التطوير development: التطوير
edit_profile: تعديل الملف الشخصي edit_profile: تعديل الملف الشخصي
export: تصدير البيانات export: تصدير البيانات
followers: المتابِعون المُرَخّصون
import: إستيراد import: إستيراد
migrate: تهجير الحساب migrate: تهجير الحساب
notifications: الإخطارات notifications: الإخطارات

@ -182,10 +182,6 @@ ast:
title: Peñeres title: Peñeres
new: new:
title: Amestar una peñera nueva title: Amestar una peñera nueva
followers:
domain: Dominiu
followers_count: Númberu de siguidores
purge: Desaniciar de los siguidores
generic: generic:
changes_saved_msg: "¡Los cambeos guardáronse con ésitu!" changes_saved_msg: "¡Los cambeos guardáronse con ésitu!"
save_changes: Guardar cambeos save_changes: Guardar cambeos
@ -302,7 +298,6 @@ ast:
back: Volver a Mastodon back: Volver a Mastodon
edit_profile: Edición del perfil edit_profile: Edición del perfil
export: Esportación de datos export: Esportación de datos
followers: Siguidores autorizaos
import: Importación import: Importación
notifications: Avisos notifications: Avisos
preferences: Preferencies preferences: Preferencies

@ -588,18 +588,6 @@ ca:
title: Filtres title: Filtres
new: new:
title: Afegir nou filtre title: Afegir nou filtre
followers:
domain: Domini
explanation_html: Si desitges garantir la privacitat de les teves publicacions, has de ser conscient de qui t'està seguint. <strong> Les publicacions privades es lliuren a totes les instàncies on tens seguidors </strong>. És possible que vulguis revisar-los i eliminar seguidors si no confies en que la teva privacitat sigui respectada pel personal o el programari d'aquestes instàncies.
followers_count: Nombre de seguidors
lock_link: Bloca el teu compte
purge: Elimina dels seguidors
success:
one: En el procés de bloqueig suau de seguidors d'un domini...
other: En el procés de bloqueig suau de seguidors de %{count} dominis...
true_privacy_html: Considera que <strong>la autèntica privacitat només es pot aconseguir amb xifratge d'extrem a extrem</strong>.
unlocked_warning_html: Tothom pot seguir-te per a veure inmediatament les teves publicacions privades. %{lock_link} per poder revisar i rebutjar seguidors.
unlocked_warning_title: El teu compte no està blocat
footer: footer:
developers: Desenvolupadors developers: Desenvolupadors
more: Més… more: Més…
@ -785,7 +773,6 @@ ca:
development: Desenvolupament development: Desenvolupament
edit_profile: Editar perfil edit_profile: Editar perfil
export: Exportar informació export: Exportar informació
followers: Seguidors autoritzats
import: Importar import: Importar
migrate: Migració del compte migrate: Migració del compte
notifications: Notificacions notifications: Notificacions

@ -593,18 +593,6 @@ co:
title: Filtri title: Filtri
new: new:
title: Aghjustà un novu filtru title: Aghjustà un novu filtru
followers:
domain: Duminiu
explanation_html: Per assicuravi di a cunfidenzialità di i vostri statuti, duvete avè primura di quale vi seguita. <strong>I vostri statuti privati sò mandati à tutti i servori induve avete abbunati</strong>. Pensate à u vostru livellu di cunfidenza in i so amministratori.
followers_count: Numeru dabbunati
lock_link: Rendete u contu privatu
purge: Toglie di a lista dabbunati
success:
one: Suppressione di labbunati dun duminiu...
other: Suppressione di labbunati da %{count} duminii...
true_privacy_html: Ùn vi scurdate chì <strong>una vera cunfidenzialità pò solu esse ottenuta cù crittografia da un capu à laltru</strong>.
unlocked_warning_html: Tuttu u mondu pò seguitavi è vede i vostri statuti privati. %{lock_link} per pudè cunfirmà o righjittà abbunamenti.
unlocked_warning_title: U vostru contu hè pubblicu
footer: footer:
developers: Sviluppatori developers: Sviluppatori
more: Di più… more: Di più…
@ -807,7 +795,6 @@ co:
edit_profile: Mudificà u prufile edit_profile: Mudificà u prufile
export: Spurtazione dinfurmazione export: Spurtazione dinfurmazione
featured_tags: Hashtag in vista featured_tags: Hashtag in vista
followers: Abbunati auturizati
import: Impurtazione import: Impurtazione
migrate: Migrazione di u contu migrate: Migrazione di u contu
notifications: Nutificazione notifications: Nutificazione

@ -4,29 +4,40 @@ cs:
about_hashtag_html: Tohle jsou veřejné tooty označené hashtagem <strong>#%{hashtag}</strong>. Pokud máte účet kdekoliv na fediverse, můžete s nimi interagovat. about_hashtag_html: Tohle jsou veřejné tooty označené hashtagem <strong>#%{hashtag}</strong>. Pokud máte účet kdekoliv na fediverse, můžete s nimi interagovat.
about_mastodon_html: Mastodon je sociální síť založená na otevřených webových protokolech a svobodném, otevřeném softwaru. Je decentralizovaná jako e-mail. about_mastodon_html: Mastodon je sociální síť založená na otevřených webových protokolech a svobodném, otevřeném softwaru. Je decentralizovaná jako e-mail.
about_this: O tomto serveru about_this: O tomto serveru
active_count_after: aktivních
active_footnote: Měsíční aktivní uživatelé (MAU)
administered_by: 'Server spravuje:' administered_by: 'Server spravuje:'
api: API api: API
apps: Mobilní aplikace apps: Mobilní aplikace
apps_platforms: Používejte Mastodon z iOS, Androidu a jiných platforem
browse_directory: Prozkoumejte adresář profilů a filtrujte dle zájmů
browse_public_posts: Prozkoumejte živý proud veřejných příspěvků na Mastodonu
contact: Kontakt contact: Kontakt
contact_missing: Nenastaveno contact_missing: Nenastaveno
contact_unavailable: Neuvedeno contact_unavailable: Neuvedeno
discover_users: Objevujte uživatele
documentation: Dokumentace documentation: Dokumentace
extended_description_html: | extended_description_html: |
<h3>Dobré místo pro pravidla</h3> <h3>Dobré místo pro pravidla</h3>
<p>Rozšířený popis ještě nebyl nastaven.</p> <p>Rozšířený popis ještě nebyl nastaven.</p>
federation_hint_html: S účtem na %{instance} můžete sledovat lidi na jakémkoliv serveru Mastodon a jiných službách.
generic_description: "%{domain} je jedním ze serverů v síti" generic_description: "%{domain} je jedním ze serverů v síti"
get_apps: Vyzkoušejte mobilní aplikaci
hosted_on: Server Mastodon na adrese %{domain} hosted_on: Server Mastodon na adrese %{domain}
learn_more: Zjistit více learn_more: Zjistit více
privacy_policy: Zásady soukromí privacy_policy: Zásady soukromí
see_whats_happening: Podívejte se, co se děje
server_stats: 'Statistika serveru:'
source_code: Zdrojový kód source_code: Zdrojový kód
status_count_after: status_count_after:
few: tooty few: tooty
one: toot one: toot
other: tootů other: tootů
status_count_before: Kteří napsali status_count_before: Kteří napsali
tagline: Sledujte své přátele a objevujte nové
terms: Podmínky používání terms: Podmínky používání
user_count_after: user_count_after:
few: uživatelů few: uživatelé
one: uživatele one: uživatele
other: uživatelů other: uživatelů
user_count_before: Domov user_count_before: Domov
@ -72,6 +83,7 @@ cs:
delete: Smazat delete: Smazat
destroyed_msg: Poznámka moderátora byla úspěšně zničena! destroyed_msg: Poznámka moderátora byla úspěšně zničena!
accounts: accounts:
approve: Schválit
are_you_sure: Jste si jistý/á? are_you_sure: Jste si jistý/á?
avatar: Avatar avatar: Avatar
by_domain: Doména by_domain: Doména
@ -117,6 +129,7 @@ cs:
moderation: moderation:
active: Aktivní active: Aktivní
all: Vše all: Vše
pending: Čekající
silenced: Utišen/a silenced: Utišen/a
suspended: Pozastaven/a suspended: Pozastaven/a
title: Moderace title: Moderace
@ -126,6 +139,7 @@ cs:
no_limits_imposed: Nejsou nastavena žádná omezení no_limits_imposed: Nejsou nastavena žádná omezení
not_subscribed: Neodebírá not_subscribed: Neodebírá
outbox_url: URL odchozích zpráv outbox_url: URL odchozích zpráv
pending: Čeká na posouzení
perform_full_suspension: Pozastavit perform_full_suspension: Pozastavit
profile_url: URL profilu profile_url: URL profilu
promote: Povýšit promote: Povýšit
@ -133,6 +147,7 @@ cs:
public: Veřejný public: Veřejný
push_subscription_expires: Odebírání PuSH expiruje push_subscription_expires: Odebírání PuSH expiruje
redownload: Obnovit profil redownload: Obnovit profil
reject: Zamítnout
remove_avatar: Odstranit avatar remove_avatar: Odstranit avatar
remove_header: Odstranit hlavičku remove_header: Odstranit hlavičku
resend_confirmation: resend_confirmation:
@ -406,6 +421,12 @@ cs:
min_invite_role: min_invite_role:
disabled: Nikdo disabled: Nikdo
title: Povolit pozvánky od title: Povolit pozvánky od
registrations_mode:
modes:
approved: Pro registraci je vyžadováno schválení
none: Nikdo se nemůže registrovat
open: Všichni se mohou registrovat
title: Režim registrací
show_known_fediverse_at_about_page: show_known_fediverse_at_about_page:
desc_html: Je-li toto zapnuto, zobrazí se v náhledu tooty ze všech známých serverů na fediverse. Jinak budou zobrazeny pouze místní tooty. desc_html: Je-li toto zapnuto, zobrazí se v náhledu tooty ze všech známých serverů na fediverse. Jinak budou zobrazeny pouze místní tooty.
title: Zobrazit celou známou fediverse na náhledu časové osy title: Zobrazit celou známou fediverse na náhledu časové osy
@ -468,6 +489,9 @@ cs:
edit_preset: Upravit přednastavení pro varování edit_preset: Upravit přednastavení pro varování
title: Spravovat přednastavení pro varování title: Spravovat přednastavení pro varování
admin_mailer: admin_mailer:
new_pending_account:
body: Detaily nového účtu jsou uvedeny níže. Můžete tento požadavek schválit nebo zamítnout.
subject: Nový účet čekající na posouzení na %{instance} (%{username})
new_report: new_report:
body: "%{reporter} nahlásil/a uživatele %{target}" body: "%{reporter} nahlásil/a uživatele %{target}"
body_remote: Někdo z %{domain} nahlásil uživatele %{target} body_remote: Někdo z %{domain} nahlásil uživatele %{target}
@ -489,7 +513,9 @@ cs:
your_token: Váš přístupový token your_token: Váš přístupový token
auth: auth:
agreement_html: Kliknutím na tlačítko „Registrovat“ souhlasíte s následováním <a href="%{rules_path}">pravidel tohoto serveru</a> a <a href="%{terms_path}">našich podmínek používání</a>. agreement_html: Kliknutím na tlačítko „Registrovat“ souhlasíte s následováním <a href="%{rules_path}">pravidel tohoto serveru</a> a <a href="%{terms_path}">našich podmínek používání</a>.
apply_for_account: Vyžádat si pozvánku
change_password: Heslo change_password: Heslo
checkbox_agreement_html: Souhlasím s <a href="%{rules_path}" target="_blank">pravidly serveru</a> a <a href="%{terms_path}" target="_blank">podmínkami používání</a>
confirm_email: Potvrdit e-mail confirm_email: Potvrdit e-mail
delete_account: Odstranit účet delete_account: Odstranit účet
delete_account_html: Chcete-li odstranit svůj účet, <a href="%{path}">pokračujte zde</a>. Budete požádán/a o potvrzení. delete_account_html: Chcete-li odstranit svůj účet, <a href="%{path}">pokračujte zde</a>. Budete požádán/a o potvrzení.
@ -505,10 +531,12 @@ cs:
cas: CAS cas: CAS
saml: SAML saml: SAML
register: Registrovat register: Registrovat
registration_closed: "%{instance} nepřijímá nové členy"
resend_confirmation: Znovu odeslat pokyny pro potvrzení resend_confirmation: Znovu odeslat pokyny pro potvrzení
reset_password: Obnovit heslo reset_password: Obnovit heslo
security: Zabezpečení security: Zabezpečení
set_new_password: Nastavit nové heslo set_new_password: Nastavit nové heslo
trouble_logging_in: Problémy s přihlašováním?
authorize_follow: authorize_follow:
already_following: Tento účet již sledujete already_following: Tento účet již sledujete
error: Při hledání vzdáleného účtu bohužel nastala chyba error: Při hledání vzdáleného účtu bohužel nastala chyba
@ -600,19 +628,6 @@ cs:
title: Filtry title: Filtry
new: new:
title: Přidat nový filtr title: Přidat nový filtr
followers:
domain: Doména
explanation_html: Chcete-li zaručit soukromí vašich tootů, musíte mít na vědomí, kdo vás sleduje. <strong>Vaše soukromé tooty jsou doručeny na všechny servery, kde máte sledující</strong>. Nejspíš si je budete chtít zkontrolovat a odstranit sledující na serverech, jejichž provozovatelům či softwaru nedůvěřujete s respektováním vašeho soukromí.
followers_count: Počet sledujících
lock_link: Uzamkněte svůj účet
purge: Odstranit ze sledujících
success:
few: V průběhu blokování sledujících ze %{count} domén...
one: V průběhu blokování sledujících z jedné domény...
other: V průběhu blokování sledujících z %{count} domén...
true_privacy_html: Berte prosím na vědomí, že <strong>skutečného soukromí se dá dosáhnout pouze za pomoci end-to-end šifrování</strong>.
unlocked_warning_html: Kdokoliv vás může sledovat a okamžitě vidět vaše soukromé tooty. %{lock_link}, abyste mohl/a kontrolovat a odmítat sledující.
unlocked_warning_title: Váš účet není uzamčen
footer: footer:
developers: Vývojáři developers: Vývojáři
more: Více… more: Více…
@ -818,7 +833,6 @@ cs:
edit_profile: Upravit profil edit_profile: Upravit profil
export: Export dat export: Export dat
featured_tags: Zvýrazněné hashtagy featured_tags: Zvýrazněné hashtagy
followers: Autorizovaní sledující
import: Import import: Import
migrate: Přesunutí účtu migrate: Přesunutí účtu
notifications: Oznámení notifications: Oznámení

@ -614,22 +614,6 @@ cy:
title: Hidlyddion title: Hidlyddion
new: new:
title: Ychwanegu hidlydd newydd title: Ychwanegu hidlydd newydd
followers:
domain: Parth
explanation_html: Os ydych am sicrhau preifatrwydd eich tŵtiau, rhaid i chi fod yn ymwybodol o bwy sy'n eich dilyn. <strong>Mae eich tŵtiau preifat yn cael eu hanfon at bob achos lle mae gennych ddilynwyr</strong>. Efallai hoffech chi i'w hadolygu o bryd i'w gilydd, a chael gwared ar ddilynwyr os nad ydych yn credu i'r staff neu'r meddalwedd ar yr achosion hynny barchu eich preifatrwydd.
followers_count: Nifer y dilynwyr
lock_link: Cloi eich cyfrif
purge: Dileu o dilynwyr
success:
few: Yn y broses o ysgafn-flocio defnyddwyr o %{count} parth...
many: Yn y broses o ysgafn-flocio defnyddwyr o %{count} parth...
one: Yn y broses o ysgafn-flocio dilynwyr o un parth...
other: Yn y broses o ysgafn-flocio defnyddwyr o %{count} parth...
two: Yn y broses o ysgafn-flocio defnyddwyr o %{count} parth...
zero: Yn y broses o ysgafn-flocio defnyddwyr o %{count} parth...
true_privacy_html: Cofiwch <strong>mai ond amgryptio pen-i-ben all sicrhau gwir breifatrwydd</strong>.
unlocked_warning_html: Gall unrhywun eich dilyn yn syth i weld eich tŵtiau preifat. %{lock_link} i gael adolygu a gwrthod dilynwyr.
unlocked_warning_title: Nid yw eich cyfrif wedi ei gloi
footer: footer:
developers: Datblygwyr developers: Datblygwyr
more: Mwy… more: Mwy…
@ -815,7 +799,6 @@ cy:
development: Datblygu development: Datblygu
edit_profile: Golygu proffil edit_profile: Golygu proffil
export: Allforio data export: Allforio data
followers: Dilynwyr awdurdodedig
import: Mewnforio import: Mewnforio
migrate: Mudo cyfrif migrate: Mudo cyfrif
notifications: Hysbysiadau notifications: Hysbysiadau

@ -526,18 +526,6 @@ da:
title: Filtrer title: Filtrer
new: new:
title: Tilføj nyt filter title: Tilføj nyt filter
followers:
domain: Domæne
explanation_html: Hvis du vil sikre dig privatliv over dine statusser, skal du være klar over hvem der følger dig. <strong>Dine private statusser leveres til alle instanser som du har følger fra</strong>. Det kan være en ide at gennemgå dem, og fjerne følgere hvis du ikke føler dit privatliv respekteres af personalet eller software fra disse instanser.
followers_count: Antal følgere
lock_link: Lås din konto
purge: Fjern fra følgere
success:
one: I gang med at soft-blokere følgere fra et domæne...
other: I gang med at soft-blokere følgere fra %{count} domæner...
true_privacy_html: Husk på, at <strong>sand privatliv kan kun opnås via end-to-end kryptering</strong>.
unlocked_warning_html: Alle kan følge dig med det samme for at se dine private statusser. %{lock_link} for at være i stand til at gennemse og afvise følgere.
unlocked_warning_title: Din konto er ikke låst
footer: footer:
developers: Udviklere developers: Udviklere
more: Mere… more: Mere…
@ -708,7 +696,6 @@ da:
development: Udvikling development: Udvikling
edit_profile: Rediger profil edit_profile: Rediger profil
export: Data eksportering export: Data eksportering
followers: Godkendte følgere
import: Importer import: Importer
migrate: Konto migrering migrate: Konto migrering
notifications: Notifikationer notifications: Notifikationer

@ -592,18 +592,6 @@ de:
title: Filter title: Filter
new: new:
title: Neuen Filter hinzufügen title: Neuen Filter hinzufügen
followers:
domain: Instanz
explanation_html: Wenn du sicherstellen willst, dass deine Beiträge privat sind, musst du wissen, wer dir folgt. <strong>Deine privaten Beiträge werden an alle Server weitergegeben, auf denen Menschen registriert sind, die dir folgen.</strong> Wenn du den Betreibenden eines Servers misstraust und du befürchtest, dass sie deine Privatsphäre missachten könnten, kannst du sie hier entfernen.
followers_count: Zahl der Folgenden
lock_link: dein Konto sperrst
purge: Von der Liste deiner Folgenden löschen
success:
one: Folgende von einer Domain werden soft-geblockt …
other: Folgende von %{count} Domains werden soft-geblockt …
true_privacy_html: Bitte beachte, dass <strong>wirklicher Schutz deiner Privatsphäre nur durch Ende-zu-Ende-Verschlüsselung erreicht werden kann.</strong>.
unlocked_warning_html: Wer dir folgen will, kann dies jederzeit ohne deine vorige Einverständnis tun und erhält damit automatisch Zugriff auf deine privaten Beiträge. Wenn du %{lock_link}, kannst du vorab entscheiden, wer dir folgen darf und wer nicht.
unlocked_warning_title: Dein Konto ist nicht gesperrt
footer: footer:
developers: Entwickler developers: Entwickler
more: Mehr… more: Mehr…
@ -796,7 +784,6 @@ de:
edit_profile: Profil bearbeiten edit_profile: Profil bearbeiten
export: Datenexport export: Datenexport
featured_tags: Empfohlene Hashtags featured_tags: Empfohlene Hashtags
followers: Autorisierte Folgende
import: Datenimport import: Datenimport
migrate: Konto-Umzug migrate: Konto-Umzug
notifications: Benachrichtigungen notifications: Benachrichtigungen

@ -12,6 +12,7 @@ cs:
last_attempt: Máte ještě jeden pokus, než bude váš účet uzamčen. last_attempt: Máte ještě jeden pokus, než bude váš účet uzamčen.
locked: Váš účet je uzamčen. locked: Váš účet je uzamčen.
not_found_in_database: Neplatné %{authentication_keys} nebo heslo. not_found_in_database: Neplatné %{authentication_keys} nebo heslo.
pending: Váš účet je stále posuzován.
timeout: Vaše relace vypršela. Pro pokračování se prosím přihlaste znovu. timeout: Vaše relace vypršela. Pro pokračování se prosím přihlaste znovu.
unauthenticated: Před pokračováním se musíte přihlásit nebo registrovat. unauthenticated: Před pokračováním se musíte přihlásit nebo registrovat.
unconfirmed: Před pokračováním musíte potvrdit svůj e-mail. unconfirmed: Před pokračováním musíte potvrdit svůj e-mail.
@ -20,6 +21,7 @@ cs:
action: Potvrdit e-mailovou adresu action: Potvrdit e-mailovou adresu
action_with_app: Potvrdit a navrátit se do %{app} action_with_app: Potvrdit a navrátit se do %{app}
explanation: S touto e-mailovou adresou jste si vytvořil/a účet na %{host}. K jeho aktivaci vám zbývá jedno kliknutí. Pokud jste to nebyl/a vy, ignorujte této e-mail. explanation: S touto e-mailovou adresou jste si vytvořil/a účet na %{host}. K jeho aktivaci vám zbývá jedno kliknutí. Pokud jste to nebyl/a vy, ignorujte této e-mail.
explanation_when_pending: S touto e-mailovou adresou jste si vyžádal/a pozvánku na %{host}. Jakmile svou e-mailovou adresu potvrdíte, posoudíme váš poadavek. Do té doby se nemůžete přihlásit. Pokud bude váš požadavek zamítnut, budou vaše data odstraněna, takže od vás nebude vyžadována žádná další akce. Pokud jste to nebyl/a vy, prosím ignorujte tento e-mail.
extra_html: Prosím podívejte se také na <a href="%{terms_path}">pravidla tohoto serveru</a> a <a href="%{policy_path}">naše podmínky používání</a>. extra_html: Prosím podívejte se také na <a href="%{terms_path}">pravidla tohoto serveru</a> a <a href="%{policy_path}">naše podmínky používání</a>.
subject: 'Mastodon: Potvrzovací instrukce pro %{instance}' subject: 'Mastodon: Potvrzovací instrukce pro %{instance}'
title: Potvrďte e-mailovou adresu title: Potvrďte e-mailovou adresu
@ -60,6 +62,7 @@ cs:
signed_up: Vítejte! Registroval/a jste se úspěšně. signed_up: Vítejte! Registroval/a jste se úspěšně.
signed_up_but_inactive: Registroval/a jste se úspěšně. Nemohli jsme vás však přihlásit, protože váš účet ještě není aktivován. signed_up_but_inactive: Registroval/a jste se úspěšně. Nemohli jsme vás však přihlásit, protože váš účet ještě není aktivován.
signed_up_but_locked: Registroval/a jste se úspěšně. Nemohli jsme vás však přihlásit, protože váš účet je uzamčen. signed_up_but_locked: Registroval/a jste se úspěšně. Nemohli jsme vás však přihlásit, protože váš účet je uzamčen.
signed_up_but_pending: Na vaši e-mailovou adresu byla poslána zpráva s potvrzovacím odkazem. Poté, co kliknete na odkaz, posoudíme váš požadavek. Pokud bude schválen, budete informován/a.
signed_up_but_unconfirmed: Na vaši e-mailovou adresu byla poslána zpráva s potvrzovacím odkazem. Pro aktivaci účtu přejděte na danou adresu. Pokud jste tento e-mail neobdržel/a, prosím zkontrolujte si složku spam. signed_up_but_unconfirmed: Na vaši e-mailovou adresu byla poslána zpráva s potvrzovacím odkazem. Pro aktivaci účtu přejděte na danou adresu. Pokud jste tento e-mail neobdržel/a, prosím zkontrolujte si složku spam.
update_needs_confirmation: Váš účet byl úspěšně aktualizován, ale je potřeba ověřit vaši novou e-mailovou adresu. Pokud tento e-mail neobdržíte, prosím zkontrolujte si složku „spam“. update_needs_confirmation: Váš účet byl úspěšně aktualizován, ale je potřeba ověřit vaši novou e-mailovou adresu. Pokud tento e-mail neobdržíte, prosím zkontrolujte si složku „spam“.
updated: Váš účet byl úspěšně aktualizován. updated: Váš účet byl úspěšně aktualizován.

@ -593,18 +593,6 @@ el:
title: Φίλτρα title: Φίλτρα
new: new:
title: Πρόσθεσε νέο φίλτρο title: Πρόσθεσε νέο φίλτρο
followers:
domain: Τομέας
explanation_html: Αν θέλεις να διασφαλίσεις την ιδιωτικότητα των ενημερώσεών σου, πρέπει να ξέρεις ποιος σε ακολουθεί. <strong>Οι ιδιωτικές ενημερώσεις σου μεταφέρονται σε όλους τους κόμβους στους οποίους έχεις ακόλουθους</strong>. Ίσως να θέλεις να κάνεις μια ανασκόπηση σε αυτούς και να αφαιρέσεις ακολούθους αν δεν εμπιστεύεσαι το προσωπικό αυτών των κόμβων πως θα σεβαστούν την ιδιωτικότητά σου.
followers_count: Πλήθος ακολούθων
lock_link: Κλείδωσε το λογαριασμό σου
purge: Αφαίρεσε από ακόλουθο
success:
one: Ημι-μπλοκάροντας τους ακόλουθους από έναν τομέα...
other: Ημι-μπλοκάροντας τους ακόλουθους από %{count} τομείς...
true_privacy_html: Έχε υπ' όψιν σου πως <strong>η πραγματική ιδιωτικότητα επιτυγχάνεται μόνο με κρυπτογράφηση από άκρη σε άκρη</strong>.
unlocked_warning_html: Μπορεί ο οποιοσδήποτε να σε ακολουθήσει και να βλέπει κατευθείαν τις ιδιωτικές ενημερώσεις σου. %{lock_link} για να αναθεωρήσεις και απορρίψεις ακόλουθους.
unlocked_warning_title: Ο λογαριασμός σου δεν είναι κλειδωμένος
footer: footer:
developers: Ανάπτυξη developers: Ανάπτυξη
more: Περισσότερα… more: Περισσότερα…
@ -806,7 +794,6 @@ el:
edit_profile: Επεξεργασία προφίλ edit_profile: Επεξεργασία προφίλ
export: Εξαγωγή δεδομένων export: Εξαγωγή δεδομένων
featured_tags: Χαρακτηριστικές ταμπέλες featured_tags: Χαρακτηριστικές ταμπέλες
followers: Εγκεκριμένοι ακόλουθοι
import: Εισαγωγή import: Εισαγωγή
migrate: Μετακόμιση λογαριασμού migrate: Μετακόμιση λογαριασμού
notifications: Ειδοποιήσεις notifications: Ειδοποιήσεις

@ -624,23 +624,12 @@ en:
title: Filters title: Filters
new: new:
title: Add new filter title: Add new filter
followers:
domain: Domain
explanation_html: If you want to ensure the privacy of your statuses, you must be aware of who is following you. <strong>Your private statuses are delivered to all servers where you have followers</strong>. You may wish to review them, and remove followers if you do not trust your privacy to be respected by the staff or software of those servers.
followers_count: Number of followers
lock_link: Lock your account
purge: Remove from followers
success:
one: In the process of soft-blocking followers from one domain...
other: In the process of soft-blocking followers from %{count} domains...
true_privacy_html: Please mind that <strong>true privacy can only be achieved with end-to-end encryption</strong>.
unlocked_warning_html: Anyone can follow you to immediately view your private statuses. %{lock_link} to be able to review and reject followers.
unlocked_warning_title: Your account is not locked
footer: footer:
developers: Developers developers: Developers
more: More… more: More…
resources: Resources resources: Resources
generic: generic:
all: All
changes_saved_msg: Changes successfully saved! changes_saved_msg: Changes successfully saved!
copy: Copy copy: Copy
save_changes: Save changes save_changes: Save changes
@ -765,6 +754,15 @@ en:
other: Other other: Other
publishing: Publishing publishing: Publishing
web: Web web: Web
relationships:
abandoned: Abandoned
active: Active
mutual: Mutual
relationship: Relationship
remove_selected_domains: Remove all followers from the selected domains
remove_selected_followers: Remove selected followers
remove_selected_follows: Unfollow selected users
status: Account status
remote_follow: remote_follow:
acct: Enter your username@domain you want to act from acct: Enter your username@domain you want to act from
missing_resource: Could not find the required redirect URL for your account missing_resource: Could not find the required redirect URL for your account
@ -840,11 +838,11 @@ en:
export: Data export export: Data export
featured_tags: Featured hashtags featured_tags: Featured hashtags
flavours: Flavours flavours: Flavours
followers: Authorized followers
import: Import import: Import
migrate: Account migration migrate: Account migration
notifications: Notifications notifications: Notifications
preferences: Preferences preferences: Preferences
relationships: Follows and followers
settings: Settings settings: Settings
two_factor_authentication: Two-factor Auth two_factor_authentication: Two-factor Auth
your_apps: Your applications your_apps: Your applications

@ -595,18 +595,6 @@ eo:
title: Filtriloj title: Filtriloj
new: new:
title: Aldoni novan filtrilon title: Aldoni novan filtrilon
followers:
domain: Domajno
explanation_html: Se vi volas esti certa pri la privateco de viaj mesaĝoj, vi bezonas esti atenta pri tiuj, kiuj sekvas vin. <strong>Viaj privataj mesaĝoj estas liveritaj al ĉiuj serviloj, kie vi havas sekvantojn</strong>. Eble vi ŝatus kontroli ilin, kaj forigi la sekvantojn de la serviloj, kie vi ne certas ĉu via privateco estos respektita de la tiea teamo aŭ programo.
followers_count: Nombro de sekvantoj
lock_link: Ŝlosu vian konton
purge: Forigi el la sekvantoj
success:
one: Forigado de sekvantoj el iu domajno...
other: Forigado de sekvantoj el %{count} domajnoj...
true_privacy_html: Bonvolu atenti, ke <strong>vera privateco povas esti atingita nur per ĉifrado de komenco al fino</strong>.
unlocked_warning_html: Iu ajn povas eksekvi vin por tuj vidi viajn privatajn mesaĝojn. %{lock_link} por povi akcepti kaj rifuzi petojn de sekvado.
unlocked_warning_title: Via konto ne estas ŝlosita
footer: footer:
developers: Programistoj developers: Programistoj
more: Pli… more: Pli…
@ -799,7 +787,6 @@ eo:
edit_profile: Redakti profilon edit_profile: Redakti profilon
export: Eksporti datumojn export: Eksporti datumojn
featured_tags: Elstarigitaj kradvortoj featured_tags: Elstarigitaj kradvortoj
followers: Rajtigitaj sekvantoj
import: Importi import: Importi
migrate: Konta migrado migrate: Konta migrado
notifications: Sciigoj notifications: Sciigoj

@ -529,18 +529,6 @@ es:
title: Filtros title: Filtros
new: new:
title: Añadir un nuevo filtro title: Añadir un nuevo filtro
followers:
domain: Dominio
explanation_html: Si deseas asegurar la privacidad de tus estados, tienes que cuidarte de quién te sigue. <strong>Tus estados privados son enviados a todas las instancias de tus seguidores</strong>. Puede que desees revisarlas, y remover seguidores si no confías en tu privacidad para ser respetado por el staff o software de esas instancias.
followers_count: Número de seguidores
lock_link: Bloquear tu cuenta
purge: Remover de los seguidores
success:
one: En el proceso de bloquear suavemente usuarios de un solo dominio...
other: En el proceso de bloquear suavemente usuarios de %{count} dominios...
true_privacy_html: Por favor ten en cuenta que <strong>la verdadera privacidad se consigue con encriptación de punto a punto</strong>.
unlocked_warning_html: Todos pueden seguirte para ver tus estados privados inmediatamente. %{lock_link} para poder chequear y rechazar seguidores.
unlocked_warning_title: Tu cuenta no está bloqueada
footer: footer:
developers: Desarrolladores developers: Desarrolladores
more: Mas… more: Mas…
@ -711,7 +699,6 @@ es:
development: Desarrollo development: Desarrollo
edit_profile: Editar perfil edit_profile: Editar perfil
export: Exportar información export: Exportar información
followers: Seguidores autorizados
import: Importar import: Importar
migrate: Migración de cuenta migrate: Migración de cuenta
notifications: Notificaciones notifications: Notificaciones

@ -592,18 +592,6 @@ eu:
title: Iragazkiak title: Iragazkiak
new: new:
title: Gehitu iragazki berria title: Gehitu iragazki berria
followers:
domain: Domeinua
explanation_html: Zure mezuen pribatutasuna bermatu nahi baduzu, nork jarraitzen zaituen jakin behar duzu. <strong>Zure mezu pribatuak zure jarraitzaileak dituzten zerbitzari guztietara bidaltzen dira</strong>. Zerbitzari bateko langileek edo softwareak zure pribatutasunari dagokion begirunea ez dutela izango uste baduzu, berrikusi eta kendu jarraitzaileak.
followers_count: Jarraitzaile kopurua
lock_link: Giltzapetu zure kontua
purge: Kendu jarraitzaileetatik
success:
one: Domeinu bateko jarraitzaileei blokeo leuna ezartzen...
other: "%{count} domeinuetako jarraitzaileei blokeo leuna ezartzen..."
true_privacy_html: Kontuan izan <strong>egiazko pribatutasuna lortzeko muturretik muturrerako zifratzea ezinbestekoa dela</strong>.
unlocked_warning_html: Edonork jarraitu zaitzake eta berehala zure mezu pribatuak ikusi. %{lock_link} jarraitzaileak berrikusi eta ukatu ahal izateko.
unlocked_warning_title: Zure kontua ez dago giltzapetuta
footer: footer:
developers: Garatzaileak developers: Garatzaileak
more: Gehiago… more: Gehiago…
@ -796,7 +784,6 @@ eu:
edit_profile: Aldatu profila edit_profile: Aldatu profila
export: Datuen esportazioa export: Datuen esportazioa
featured_tags: Nabarmendutako traolak featured_tags: Nabarmendutako traolak
followers: Baimendutako jarraitzaileak
import: Inportazioa import: Inportazioa
migrate: Kontuaren migrazioa migrate: Kontuaren migrazioa
notifications: Jakinarazpenak notifications: Jakinarazpenak

@ -593,18 +593,6 @@ fa:
title: فیلترها title: فیلترها
new: new:
title: افزودن فیلتر تازه title: افزودن فیلتر تازه
followers:
domain: دامین
explanation_html: اگر می‌خواهید از خصوصی‌بودن نوشته‌های خود مطمئن شوید، باید بدانید که چه کسانی پیگیر شما هستند. <strong>نوشته‌های خصوصی شما به همهٔ سرورهایی که در آن‌ها پیگیر دارید فرستاده می‌شود</strong>. شاید بخواهید این سرورها را بررسی کنید، و اگر به مسئولان یا نرم‌افزارهای آن‌ها در رعایت حریم خصوصی خود اعتماد ندارید، می‌توانید آن‌ها را حذف کنید.
followers_count: تعداد پیگیران
lock_link: حساب خود را خصوصی کنید
purge: برداشتن پیگیری
success:
one: در حال انجام مسدودسازی نرم روی کاربران یک دامین...
other: در حال انجام مسدودسازی نرم روی کاربران %{count} دامین...
true_privacy_html: لطفاً بدانید که <strong>داشتن حریم خصوصی واقعی تنها با رمزگذاری سرتاسر (end-to-end encryption) ممکن است</strong>.
unlocked_warning_html: هر کسی می‌تواند پیگیر شما شود تا بلافاصله نوشته‌های خصوصی شما را ببیند. اگر %{lock_link} خواهید توانست درخواست‌های پیگیری را بررسی کرده و نپذیرید.
unlocked_warning_title: حساب شما خصوصی نیست
footer: footer:
developers: برنامه‌نویسان developers: برنامه‌نویسان
more: بیشتر… more: بیشتر…
@ -807,7 +795,6 @@ fa:
edit_profile: ویرایش نمایه edit_profile: ویرایش نمایه
export: برون‌سپاری داده‌ها export: برون‌سپاری داده‌ها
featured_tags: برچسب‌های منتخب featured_tags: برچسب‌های منتخب
followers: پیگیران مورد تأیید
import: درون‌ریزی import: درون‌ریزی
migrate: انتقال حساب migrate: انتقال حساب
notifications: اعلان‌ها notifications: اعلان‌ها

@ -449,18 +449,6 @@ fi:
follows: Seurattavat follows: Seurattavat
mutes: Mykistetyt mutes: Mykistetyt
storage: Media-arkisto storage: Media-arkisto
followers:
domain: Verkkotunnus
explanation_html: Jos haluat olla varma tilapäivitystesi yksityisyydestä, sinun täytyy tietää, ketkä seuraavat sinua. <strong>Yksityiset tilapäivityksesi lähetetään kaikkiin niihin instansseihin, joissa sinulla on seuraajia</strong>. Jos et luota siihen, että näiden instanssien ylläpitäjät tai ohjelmisto kunnioittavat yksityisyyttäsi, käy läpi seuraajaluettelosi ja poista tarvittaessa käyttäjiä.
followers_count: Seuraajien määrä
lock_link: Lukitse tili
purge: Poista seuraajista
success:
one: Estetään kevyesti seuraajia yhdestä verkkotunnuksesta...
other: Estetään kevyesti seuraajia %{count} verkkotunnuksesta...
true_privacy_html: Muista, että <strong>kunnollinen yksityisyys voidaan varmistaa vain päästä päähän -salauksella</strong>.
unlocked_warning_html: Kuka tahansa voi seurata sinua ja nähdä saman tien yksityiset tilapäivityksesi. %{lock_link}, niin voit tarkastaa ja torjua seuraajia.
unlocked_warning_title: Tiliäsi ei ole lukittu
generic: generic:
changes_saved_msg: Muutosten tallennus onnistui! changes_saved_msg: Muutosten tallennus onnistui!
save_changes: Tallenna muutokset save_changes: Tallenna muutokset
@ -622,7 +610,6 @@ fi:
development: Kehittäminen development: Kehittäminen
edit_profile: Muokkaa profiilia edit_profile: Muokkaa profiilia
export: Vie tietoja export: Vie tietoja
followers: Valtuutetut seuraajat
import: Tuo import: Tuo
migrate: Tilin muutto muualle migrate: Tilin muutto muualle
notifications: Ilmoitukset notifications: Ilmoitukset

@ -593,18 +593,6 @@ fr:
title: Filtres title: Filtres
new: new:
title: Ajouter un nouveau filtre title: Ajouter un nouveau filtre
followers:
domain: Domaine
explanation_html: Si vous voulez vous assurer que vos statuts restent privés, vous devez savoir qui vous suit. <strong>Vos statuts privés seront diffusés sur toutes les instances où vous avez des abonné·e·s</strong>. Vous voudrez peut-être les passer en revue et les supprimer si vous pensez que votre vie privée ne sera pas respectée par ladministration ou le logiciel de ces instances.
followers_count: Nombre dabonné⋅e⋅s
lock_link: Rendez votre compte privé
purge: Retirer de la liste dabonné⋅e⋅s
success:
one: Suppression des abonné⋅e⋅s venant dun domaine en cours…
other: Suppression des abonné⋅e⋅s venant de %{count} domaines en cours…
true_privacy_html: Soyez conscient⋅e⋅s <strong>quune vraie confidentialité ne peut être atteinte que par un chiffrement de bout-en-bout</strong>.
unlocked_warning_html: Nimporte qui peut vous suivre et voir vos statuts privés. %{lock_link} afin de pouvoir vérifier et rejeter des abonné⋅e⋅s.
unlocked_warning_title: Votre compte nest pas privé
footer: footer:
developers: Développeurs developers: Développeurs
more: Davantage… more: Davantage…
@ -807,7 +795,6 @@ fr:
edit_profile: Modifier le profil edit_profile: Modifier le profil
export: Export de données export: Export de données
featured_tags: Hashtags mis en avant featured_tags: Hashtags mis en avant
followers: Abonné⋅es autorisé⋅es
import: Import de données import: Import de données
migrate: Migration de compte migrate: Migration de compte
notifications: Notifications notifications: Notifications

@ -593,18 +593,6 @@ gl:
title: Filtros title: Filtros
new: new:
title: Engadir novo filtro title: Engadir novo filtro
followers:
domain: Dominio
explanation_html: Se quere asegurar a intimidade dos seus estados, debe ser consciente de quen a está a seguir. <strong>Os seus estados privados son enviados a todas os servidores onde ten seguidoras</strong>. Podería querer revisalas, e elminar seguidoras si non confía que a súa intimidade sexa respetada polos administradores ou o software de ese servidor.
followers_count: Número de seguidoras
lock_link: Bloquear a súa conta
purge: Eliminar das seguidoras
success:
one: En proceso de bloquear seguidoras de un dominio...
other: No proceso de bloquear seguidoras de %{count} dominios...
true_privacy_html: Por favor teña en conta que <strong>a verdadeira intimidade só pode ser conseguida con cifrado de extremo-a-extremo</strong>.
unlocked_warning_html: Calquera pode seguila para inmediatamente ver os seus estados privados. %{lock_link} para poder revisar e rexeitar seguidoras.
unlocked_warning_title: A súa conta non está pechada
footer: footer:
developers: Desenvolvedoras developers: Desenvolvedoras
more: Máis… more: Máis…
@ -807,7 +795,6 @@ gl:
edit_profile: Editar perfil edit_profile: Editar perfil
export: Exportar datos export: Exportar datos
featured_tags: Etiquetas destacadas featured_tags: Etiquetas destacadas
followers: Seguidoras autorizadas
import: Importar import: Importar
migrate: Migrar conta migrate: Migrar conta
notifications: Notificacións notifications: Notificacións

@ -240,18 +240,6 @@ he:
follows: רשימת נעקבים follows: רשימת נעקבים
mutes: רשימת השתקות mutes: רשימת השתקות
storage: אחסון מדיה storage: אחסון מדיה
followers:
domain: קהילה
explanation_html: אם ברצונך להבטיח את הפרטיות של הודעותיך, יש לשים לב מי עוקב אחריך. <strong>הודעותיך הפרטיות יועברו לכל השרתים בהם יש לך עוקבים</strong>. כדאי לעבור על הרשימה ולהסיר עוקבים אם אין לך אמון בתוכנה או בצוות המפעילים של השרת הרחוק שיכבד את פרטיותך.
followers_count: מספר העוקבים
lock_link: לנעול את חשבונך
purge: הסרה מהעוקבים
success:
one: בתהליך חסימה של עוקבים ממתחם אחד...
other: בתהליך חסימה של עוקבים המגיעים מ־%{count} מתחמים...
true_privacy_html: 'לתשומת ליבך: <strong>פרטיות אמיתית ניתן להשיג אך ורק על ידי הצפנה מקצה לקצה</strong>.'
unlocked_warning_html: כל אחד יכול לעקוב אחריך כדי לראות מיידית את חצרוציך הפרטיים. %{lock_link} כדי לבחון ולדחות עוקבים.
unlocked_warning_title: חשבונך אינו נעול
generic: generic:
changes_saved_msg: השינויים נשמרו בהצלחה! changes_saved_msg: השינויים נשמרו בהצלחה!
save_changes: שמור שינויים save_changes: שמור שינויים
@ -320,7 +308,6 @@ he:
back: חזרה למסטודון back: חזרה למסטודון
edit_profile: עריכת פרופיל edit_profile: עריכת פרופיל
export: יצוא מידע export: יצוא מידע
followers: עוקבים מאושרים
import: יבוא import: יבוא
preferences: העדפות preferences: העדפות
settings: הגדרות settings: הגדרות

@ -374,18 +374,6 @@ hu:
follows: Követettjeid follows: Követettjeid
mutes: Némításaid mutes: Némításaid
storage: Médiatároló storage: Médiatároló
followers:
domain: Domain
explanation_html: Ahhoz, hogy biztosítsd a tülkjeid adatvédelmét, tudnod kell, kik követnek téged. <strong>Még privátnak jelölt tülkjeid is továbbítódnak minden instanciára, ahol követőid vannak</strong>. Az alábbi listában láthatod, melyek ezek az instanciák; eltávolíthatod őket, ha nem vagy biztos benne, hogy az adott instancia üzemeltetői tiszteletben tartják az adatvédelmi beállításaidat.
followers_count: Követők száma
lock_link: Fiókod priváttá tétele
purge: Eltávolítás a követőid közül
success:
one: Egy domainen található követőid tiltása folyamatban...
other: "%{count} domainen található követőid tiltása folyamatban..."
true_privacy_html: Tartsd észben, hogy <strong>valódi biztonság csak végponttól-végpontig titkosítással érhető el</strong>.
unlocked_warning_html: Bárki követhet és így azonnal láthatja a privát tülkjeid. A %{lock_link} funkció bekapcsolásával lehetőséged van egyenként felülvizsgálni a követési kérelmeket.
unlocked_warning_title: A fiókod jelenleg nem privát
generic: generic:
changes_saved_msg: Változások sikeresen elmentve! changes_saved_msg: Változások sikeresen elmentve!
save_changes: Változások mentése save_changes: Változások mentése
@ -542,7 +530,6 @@ hu:
development: Fejlesztőknek development: Fejlesztőknek
edit_profile: Profil szerkesztése edit_profile: Profil szerkesztése
export: Adatok exportálása export: Adatok exportálása
followers: Jóváhagyott követők
import: Importálás import: Importálás
migrate: Fiók átirányítása migrate: Fiók átirányítása
notifications: Értesítések notifications: Értesítések

@ -266,18 +266,6 @@ id:
follows: Anda ikuti follows: Anda ikuti
mutes: Anda bisukan mutes: Anda bisukan
storage: Penyimpanan media storage: Penyimpanan media
followers:
domain: Domain
explanation_html: Jika anda ingin memastikan privasi dari status anda, anda harus tahu siapa yang mengikuti anda. <strong>Status pribadi anda dikirim ke semua server dimana pengikut anda berada</strong>. Anda mungkin ingin untuk mengkaji ulang dan menghapus pengikut jika anda tidak mempercayai bahwa privasi anda di tangan staf atau software di server tersebut.
followers_count: Jumlah pengikut
lock_link: Kunci akun anda
purge: Hapus dari pengikut
success:
one: Dalam proses memblokir pengikut dari satu domain...
other: Dalam proses memblokir pengikut dari %{count} domain...
true_privacy_html: Mohon diingat bahwa <strong>privasi yang sebenarnya hanya dapat dicapai dengan enkripsi end-to-end</strong>.
unlocked_warning_html: Semua orang dapat mengikuti anda untuk langsung dapat melihat status pribadi anda. %{lock_link} untuk dapat meninjau dan menolak calon pengikut.
unlocked_warning_title: Akun anda tidak dikunci
generic: generic:
changes_saved_msg: Perubahan berhasil disimpan! changes_saved_msg: Perubahan berhasil disimpan!
save_changes: Simpan perubahan save_changes: Simpan perubahan
@ -344,7 +332,6 @@ id:
back: Kembali ke Mastodon back: Kembali ke Mastodon
edit_profile: Ubah profil edit_profile: Ubah profil
export: Expor data export: Expor data
followers: Pengikut yang diizinkan
import: Impor import: Impor
preferences: Pilihan preferences: Pilihan
settings: Pengaturan settings: Pengaturan

@ -554,15 +554,6 @@ it:
title: Filtri title: Filtri
new: new:
title: Aggiungi filtro title: Aggiungi filtro
followers:
domain: Dominio
explanation_html: Se vuoi garantire la privacy dei tuoi status, devi sapere chi ti sta seguendo. <strong>I tuoi status privati vengono inviati a tutti i server su cui hai dei seguaci</strong>. Puoi controllare chi sono i tuoi seguaci, ed eliminarli se non hai fiducia che la tua privacy venga rispettata dallo staff o dal software di quei server.
followers_count: Numero di seguaci
lock_link: Blocca il tuo account
purge: Elimina dai seguaci
true_privacy_html: Tieni presente che <strong>l'effettiva riservatezza si può ottenere solo con la crittografia end-to-end</strong>.
unlocked_warning_html: Chiunque può seguirti per vedere immediatamente i tuoi status privati. %{lock_link} per poter esaminare e respingere gli utenti che vogliono seguirti.
unlocked_warning_title: Il tuo account non è bloccato
footer: footer:
developers: Sviluppatori developers: Sviluppatori
more: Altro… more: Altro…
@ -722,7 +713,6 @@ it:
development: Sviluppo development: Sviluppo
edit_profile: Modifica profilo edit_profile: Modifica profilo
export: Esporta impostazioni export: Esporta impostazioni
followers: Seguaci autorizzati
import: Importa import: Importa
migrate: Migrazione dell'account migrate: Migrazione dell'account
notifications: Notifiche notifications: Notifiche

@ -607,18 +607,6 @@ ja:
title: フィルター title: フィルター
new: new:
title: 新規フィルターを追加 title: 新規フィルターを追加
followers:
domain: ドメイン
explanation_html: あなたの投稿のプライバシーを確保したい場合、誰があなたをフォローしているのかを把握している必要があります。 <strong>プライベート投稿は、あなたのフォロワーがいる全てのサーバーに配信されます</strong>。 フォロワーのサーバーの管理者やソフトウェアがあなたのプライバシーを尊重してくれるかどうか怪しい場合は、そのフォロワーを削除した方がよいかもしれません。
followers_count: フォロワー数
lock_link: 承認制アカウントにする
purge: フォロワーから削除する
success:
one: 1個のドメインからソフトブロックするフォロワーを処理中...
other: "%{count} 個のドメインからソフトブロックするフォロワーを処理中..."
true_privacy_html: "<strong>プライバシーの保護はエンドツーエンドの暗号化でのみ実現可能</strong>であることに留意ください。"
unlocked_warning_html: 誰でもあなたをフォローすることができ、フォロワー限定の投稿をすぐに見ることができます。フォローする人を限定したい場合は%{lock_link}に設定してください。
unlocked_warning_title: このアカウントは承認制アカウントに設定されていません
footer: footer:
developers: 開発者向け developers: 開発者向け
more: さらに… more: さらに…
@ -822,7 +810,6 @@ ja:
export: データのエクスポート export: データのエクスポート
featured_tags: 注目のハッシュタグ featured_tags: 注目のハッシュタグ
flavours: フレーバー flavours: フレーバー
followers: 信頼済みのサーバー
import: データのインポート import: データのインポート
migrate: アカウントの引っ越し migrate: アカウントの引っ越し
notifications: 通知 notifications: 通知

@ -496,18 +496,6 @@ ka:
title: ფილტრები title: ფილტრები
new: new:
title: ახალი ფილტრის დამატება title: ახალი ფილტრის დამატება
followers:
domain: დომენი
explanation_html: თუ გსურთ უზრუნველყოთ თქვენი სტატუსების კონფიდენციალურობა, უნდა იცოდეთ თუ ვინ მოგყვებათ. <strong>კერძო სტატუსები მიეწოდება ყველა ინსტანციას, სადაც გყავთ მიმდევრები</strong>. შესაძლოა გსურდეთ განიხილოთ ისინი და ამოშალოთ მიმდევრები თუ არ ენდობით თქვენი კონფიდენციალურობის პატივისცემას სტაფისა თუ პროგრამისგან იმ ინსტანციებში.
followers_count: მიმდევრების რაოდენობა
lock_link: თქვენი ანგარიშის ჩაკეტვა
purge: მიმდევრებიდან ამოშლა
success:
one: მიმდევრების სოფტ-ბლოკირების პროცესი ერთი დომენზე...
other: მიმდევრების სოფტ-ბლოკირების პროცესი %{count} დომენზე...
true_privacy_html: გთხოვთ გაითვალისწინეთ, <strong>ჭეშმარიტი კონფიდენციალურობა მიღწევადია მხოლოდ ენდ-თუ-ენდ შიფრაციით</strong>.
unlocked_warning_html: ყველას შეუძლია გამოგყვეთ, რომ უცბად იხილოს თქვენი სტატუსები. %{lock_link} რომ შეძლოთ განიხილოთ და უარყოთ მიმდევრები.
unlocked_warning_title: თქვენი ანგარიში არაა ჩაკეტილი
footer: footer:
developers: დეველოპერები developers: დეველოპერები
more: მეტი… more: მეტი…
@ -677,7 +665,6 @@ ka:
development: დეველოპმენტი development: დეველოპმენტი
edit_profile: პროფილის ცვლილება edit_profile: პროფილის ცვლილება
export: მონაცემის ექსპორტი export: მონაცემის ექსპორტი
followers: ავტორიზირებული მიმდევრები
import: იმპორტი import: იმპორტი
migrate: ანგარიშის მიგრაცია migrate: ანგარიშის მიგრაცია
notifications: შეტყობინებები notifications: შეტყობინებები

@ -593,18 +593,6 @@ kk:
title: Фильтрлер title: Фильтрлер
new: new:
title: Жаңа фильтр қосу title: Жаңа фильтр қосу
followers:
domain: Домен
explanation_html: Егер сіз жазбаларыңыздың құпиялылығын қамтамасыз еткіңіз келсе, сізді кім іздейтінін білуіңіз керек. <strong> Сіздің жазбаларыңыз оқырмандарыңыз бар барлық серверлерге жеткізіледі </strong>. Оларды оқырмандарыңызға және админдерге немесе осы серверлердің бағдарламалық жасақтамасына жауапты қызметкерлерге сенбесеңіз, оқырмандарыңызды алып тастауыңызға болады.
followers_count: Оқырман саны
lock_link: Аккаунтыңызды құлыптау
purge: Оқырмандар тізімінен шығару
success:
one: Бір доменнен оқырмандарды бұғаттау барысында...
other: "%{count} доменнен оқырмандарды бұғаттау барысында..."
true_privacy_html: Ұмытпаңыз, <strong>нақты құпиялылықты шифрлаудан соң ғана қол жеткізуге болатындығын ескеріңіз.</strong>.
unlocked_warning_html: Кез келген адам жазбаларыңызды оқу үшін сізге жазыла алады. Жазылушыларды қарап, қабылдамау үшін %{lock_link}.
unlocked_warning_title: Аккаунтыңыз қазір құлыпталды
footer: footer:
developers: Жасаушылар developers: Жасаушылар
more: Тағы… more: Тағы…
@ -796,7 +784,6 @@ kk:
edit_profile: Профиль өңдеу edit_profile: Профиль өңдеу
export: Экспорт уақыты export: Экспорт уақыты
featured_tags: Таңдаулы хэштегтер featured_tags: Таңдаулы хэштегтер
followers: Авторизацияланған оқырмандар
import: Импорт import: Импорт
migrate: Аккаунт көшіру migrate: Аккаунт көшіру
notifications: Ескертпелер notifications: Ескертпелер

@ -595,18 +595,6 @@ ko:
title: 필터 title: 필터
new: new:
title: 필터 추가 title: 필터 추가
followers:
domain: 도메인
explanation_html: 프라이버시를 확보하고 싶은 경우, 누가 여러분을 팔로우 하고 있는지 파악해둘 필요가 있습니다. <strong>프라이빗 포스팅은 여러분의 팔로워가 소속하는 모든 서버로 배달됩니다</strong>. 팔로워가 소속된 서버 관리자나 소프트웨어가 여러분의 프라이버시를 존중하고 있는지 잘 모를 경우, 그 팔로워를 삭제하는 것이 좋을 수도 있습니다.
followers_count: 팔로워 수
lock_link: 비공개 계정
purge: 팔로워에서 삭제
success:
one: 1개 도메인에서 팔로워를 soft-block 처리 중...
other: "%{count}개 도메인에서 팔로워를 soft-block 처리 중..."
true_privacy_html: "<strong>프라이버시 보호는 End-to-End 암호화로만 이루어 질 수 있다는 것에 유의</strong>해 주십시오."
unlocked_warning_html: 누구든 여러분을 팔로우 할 수 있으며, 여러분의 프라이빗 투고를 볼 수 있습니다. 팔로우 할 수 있는 사람을 제한하고 싶은 경우 %{lock_link}에서 설정해 주십시오.
unlocked_warning_title: 이 계정은 비공개로 설정되어 있지 않습니다
footer: footer:
developers: 개발자 developers: 개발자
more: 더 보기… more: 더 보기…
@ -809,7 +797,6 @@ ko:
edit_profile: 프로필 편집 edit_profile: 프로필 편집
export: 데이터 내보내기 export: 데이터 내보내기
featured_tags: 추천 해시태그 featured_tags: 추천 해시태그
followers: 신뢰 중인 인스턴스
import: 데이터 가져오기 import: 데이터 가져오기
migrate: 계정 이동 migrate: 계정 이동
notifications: 알림 notifications: 알림

@ -602,19 +602,6 @@ lt:
title: Filtrai title: Filtrai
new: new:
title: Pridėti naują filtrą title: Pridėti naują filtrą
followers:
domain: Domenas
explanation_html: Jeigu norite garantuoti savo statusų privatumą, turite žinoti, kas jus seka. <strong>Jūsų privatūs statusai yra pristatyti visiems serveriams, kur jūs turite sekėju</strong>. Galbūt jūs norite juos peržiūrėti ir panaikinti sekėjus, kuriais nepasitikite.
followers_count: Sekėjų skaičius
lock_link: Užrakinti savo paskyrą
purge: Panaikint iš sekėju
success:
few: Švelnaus sekėjų blokavimo procedūroje iš %{count} domenų...
one: Švelnaus sekėjų blokavimo procedūroje iš vieno domeno...
other: Švelnaus sekėjų blokavimo procedūroje iš %{count} domenų...
true_privacy_html: Prašau prisiminti, kad <strong> tikras privatumas gali būti pasiekamas tik su end-to-end užsifravimu</strong>.
unlocked_warning_html: Visi, kurie nori matyti Jūsų privatų statusą, gali jus sekti. %{lock_link} kad galėtumėte peržiurėti ir pašalinti sekėjus.
unlocked_warning_title: Jūsų paskyra neužrakinta
footer: footer:
developers: Programuotojai developers: Programuotojai
more: Daugiau… more: Daugiau…
@ -810,7 +797,6 @@ lt:
edit_profile: Keisti profilį edit_profile: Keisti profilį
export: Informacijos eksportas export: Informacijos eksportas
featured_tags: Rodomi saitažodžiai(#) featured_tags: Rodomi saitažodžiai(#)
followers: Autorizuoti sekėjai
import: Importuoti import: Importuoti
migrate: Paskyros migracija migrate: Paskyros migracija
notifications: Pranešimai notifications: Pranešimai

@ -317,10 +317,6 @@ ms:
exports: exports:
archive_takeout: archive_takeout:
in_progress: Mengkompil arkib anda... in_progress: Mengkompil arkib anda...
followers:
success:
one: Dalam proses menyekat-lembut pengikut daripada satu domain...
other: Dalam proses menyekat-lembut pengikut daripada %{count} domain...
notification_mailer: notification_mailer:
digest: digest:
title: Ketika anda tiada di sini... title: Ketika anda tiada di sini...

@ -593,18 +593,6 @@ nl:
title: Filters title: Filters
new: new:
title: Nieuw filter toevoegen title: Nieuw filter toevoegen
followers:
domain: Domein
explanation_html: Wanneer je de privacy van jouw toots wilt garanderen, moet je goed weten wie jouw volgers zijn. <strong>Toots die alleen aan jouw volgers zijn gericht, worden aan de Mastodonservers van jouw volgers afgeleverd.</strong> Daarom wil je ze misschien controleren en desnoods volgers verwijderen die zich op een Mastodonserver bevinden die jij niet vertrouwd. Bijvoorbeeld omdat de beheerder(s) of de software van zo'n server jouw privacy niet respecteert.
followers_count: Aantal volgers
lock_link: Maak jouw account besloten
purge: Volgers verwijderen
success:
one: Bezig om volgers van één domein te verwijderen...
other: Bezig om volgers van %{count} domeinen te verwijderen...
true_privacy_html: Hou er wel rekening mee dat <strong>echte privacy alleen gegarandeerd kan worden met behulp van end-to-end-encryptie</strong>.
unlocked_warning_html: Iedereen kan jou volgen en daarmee meteen toots zien die je alleen aan jouw volgers hebt gericht. %{lock_link} om volgers te kunnen beoordelen en desnoods te weigeren.
unlocked_warning_title: Jouw account is niet besloten
footer: footer:
developers: Ontwikkelaars developers: Ontwikkelaars
more: Meer… more: Meer…
@ -797,7 +785,6 @@ nl:
edit_profile: Profiel bewerken edit_profile: Profiel bewerken
export: Exporteren export: Exporteren
featured_tags: Uitgelichte hashtags featured_tags: Uitgelichte hashtags
followers: Geautoriseerde volgers
import: Importeren import: Importeren
migrate: Accountmigratie migrate: Accountmigratie
notifications: Meldingen notifications: Meldingen

@ -374,18 +374,6 @@
follows: Du følger follows: Du følger
mutes: Du demper mutes: Du demper
storage: Medialagring storage: Medialagring
followers:
domain: Domene
explanation_html: Hvis du vil styre hvem som ser statusene dine, må du være klar over hvem som følger deg. <strong>Dine private statuser leveres til alle instanser der du har følgere</strong>. Du bør kanskje se over dem, og fjerne følgere hvis du ikke stoler på at ditt privatliv vil bli respektert av staben eller programvaren på de instansene.
followers_count: Antall følgere
lock_link: Lås kontoen din
purge: Fjern fra følgere
success:
one: I ferd med å mykblokkere følgere fra ett domene...
other: I ferd med å mykblokkere følgere fra %{count} domener...
true_privacy_html: Merk deg at <strong>virkelig privatliv kun kan oppnås med ende-til-ende-kryptering</strong>.
unlocked_warning_html: Alle kan følge deg for å umiddelbart se dine private statuser. %{lock_link} for å kunne se over og avvise følgere.
unlocked_warning_title: Din konto er ikke låst
generic: generic:
changes_saved_msg: Vellykket lagring av endringer! changes_saved_msg: Vellykket lagring av endringer!
save_changes: Lagre endringer save_changes: Lagre endringer
@ -542,7 +530,6 @@
development: Utvikling development: Utvikling
edit_profile: Endre profil edit_profile: Endre profil
export: Dataeksport export: Dataeksport
followers: Godkjente følgere
import: Importér import: Importér
migrate: Kontomigrering migrate: Kontomigrering
notifications: Varslinger notifications: Varslinger

@ -649,18 +649,6 @@ oc:
title: Filtres title: Filtres
new: new:
title: Ajustar un nòu filtre title: Ajustar un nòu filtre
followers:
domain: Domeni
explanation_html: Se volètz vos assegurar de la confidencialitat de vòstres estatuts, vos cal saber qual sèc vòstre compte. <strong>Vòstres estatuts privats son enviats a totas las instàncias quan de monde que vos sègon.</strong>. Benlèu que volètz repassar vòstra lista e tirar los seguidors savètz de dobtes tocant las politicas de confidencialitat dels gestionaris de lor instància o sul logicial quutilizan.
followers_count: Nombre de seguidors
lock_link: Clavar vòstre compte
purge: Tirar dels seguidors
success:
one: Soi a blocar los seguidors dun domeni…
other: Soi a blocar los seguidors de %{count} domenis…
true_privacy_html: Mèfi que la <strong>vertadièra confidencialitat pòt solament èsser amb un chiframent del cap a la fin (end-to-end)</strong>.
unlocked_warning_html: Tot lo monde pòt vos sègre e veire sulpic vòstres estatuts privats. %{lock_link} per poder repassar e regetar los seguidors.
unlocked_warning_title: Vòstre compte es pas clavat
footer: footer:
developers: Desvolopaires developers: Desvolopaires
more: Mai… more: Mai…
@ -853,7 +841,6 @@ oc:
edit_profile: Modificar lo perfil edit_profile: Modificar lo perfil
export: Exportar de donadas export: Exportar de donadas
featured_tags: Etiquetas en avant featured_tags: Etiquetas en avant
followers: Seguidors autorizats
import: Importar de donadas import: Importar de donadas
migrate: Migracion de compte migrate: Migracion de compte
notifications: Notificacions notifications: Notificacions

@ -606,20 +606,6 @@ pl:
title: Filtry title: Filtry
new: new:
title: Dodaj nowy filtr title: Dodaj nowy filtr
followers:
domain: Domena
explanation_html: Jeżeli chcesz mieć pewność, kto może przeczytać Twoje wpisy, musisz kontrolować, kto śledzi Twój profil. <strong>Twoje prywatne wpisy są dostarczane na te instancje, na których jesteś śledzony</strong>. Możesz sprawdzać, kto Cię śledzi i blokować ich, jeśli nie ufasz właścicielom lub oprogramowaniu danej instancji.
followers_count: Liczba śledzących
lock_link: Zablokuj swoje konto
purge: Przestań śledzić
success:
few: W trakcie usuwania śledzących z %{count} domen…
many: W trakcie usuwania śledzących z %{count} domen…
one: W trakcie usuwania śledzących z jednej domeny…
other: W trakcie usuwania śledzących z %{count} domen…
true_privacy_html: Pamiętaj, że <strong>rzeczywista prywatność może zostać uzyskana wyłącznie dzięki szyfrowaniu end-to-end</strong>.
unlocked_warning_html: Każdy może Cię śledzić, dzięki czemu może zobaczyć Twoje niepubliczne wpisy. %{lock_link} aby móc kontrolować, kto Cię śledzi.
unlocked_warning_title: Twoje konto nie jest zablokowane
footer: footer:
developers: Dla programistów developers: Dla programistów
more: Więcej… more: Więcej…
@ -822,7 +808,6 @@ pl:
export: Eksportowanie danych export: Eksportowanie danych
featured_tags: Wyróżnione hashtagi featured_tags: Wyróżnione hashtagi
flavours: Odmiany flavours: Odmiany
followers: Autoryzowani śledzący
import: Importowanie danych import: Importowanie danych
migrate: Migracja konta migrate: Migracja konta
notifications: Powiadomienia notifications: Powiadomienia

@ -585,18 +585,6 @@ pt-BR:
title: Filtros title: Filtros
new: new:
title: Adicionar novo filtro title: Adicionar novo filtro
followers:
domain: Domínio
explanation_html: Se você quer garantir a privacidade de suas postagens, você deve ficar atento a quem está te seguindo.<strong>Suas postagens privadas são enviadas para todas as instâncias em que você tem seguidores</strong>. Convém revisá-las e remover seguidores se você acredita que a sua privacidade não será respeitada pela equipe ou software destas instâncias.
followers_count: Número de seguidores
lock_link: Tranque a sua conta
purge: Remover de seus seguidores
success:
one: No processo de bloqueio suave de seguidores de outro domínio...
other: No processo de bloqueio suave de seguidores de outros %{count} domínios...
true_privacy_html: Lembre-se de que <strong>a verdadeira privacidade só pode ser alcançada através de encriptação ponto-a-ponto</strong>.
unlocked_warning_html: Qualquer pessoa pode te seguir e ver as suas postagens privadas. %{lock_link} para ser capaz de revisar e rejeitar seguidores.
unlocked_warning_title: A sua conta não está trancada
footer: footer:
developers: Desenvolvedores developers: Desenvolvedores
more: Mais… more: Mais…
@ -782,7 +770,6 @@ pt-BR:
development: Desenvolvimento development: Desenvolvimento
edit_profile: Editar perfil edit_profile: Editar perfil
export: Exportar dados export: Exportar dados
followers: Seguidores autorizados
import: Importar import: Importar
migrate: Migração de conta migrate: Migração de conta
notifications: Notificações notifications: Notificações

@ -377,18 +377,6 @@ pt:
follows: Segues follows: Segues
mutes: Tens em silêncio mutes: Tens em silêncio
storage: Armazenamento de média storage: Armazenamento de média
followers:
domain: Domínio
explanation_html: Se queres garantir a privacidade das tuas publicações, deves ficar atento a quem te está a seguir.<strong>As tuas publicações privadas são enviadas para todas as instâncias nas que tens seguidores</strong>. Convém revisá-las e remover seguidores se achares que a tua privacidade não será respeitada pela equipa ou software destas instâncias.
followers_count: Número de seguidores
lock_link: Bloquear a tua conta
purge: Eliminar dos seguidores
success:
one: No processo de bloqueio suave de seguidores de outro domínio...
other: No processo de bloqueio suave de seguidores de outros %{count} domínios...
true_privacy_html: Por favor leva em conta que <strong>a verdadeira privacidade só pode ser alcançada através de encriptação ponto-a-ponto</strong>.
unlocked_warning_html: Qualquer pessoa pode seguir-te e ver as tuas publicações privadas. %{lock_link} para ser capaz de revisar e rejeitar seguidores.
unlocked_warning_title: A tua conta não está bloqueada
generic: generic:
changes_saved_msg: Alterações guardadas! changes_saved_msg: Alterações guardadas!
save_changes: Guardar alterações save_changes: Guardar alterações
@ -544,7 +532,6 @@ pt:
development: Desenvolvimento development: Desenvolvimento
edit_profile: Editar perfil edit_profile: Editar perfil
export: Exportar dados export: Exportar dados
followers: Seguidores autorizados
import: Importar import: Importar
migrate: Migração de conta migrate: Migração de conta
notifications: Notificações notifications: Notificações

@ -109,9 +109,3 @@ ro:
title: Filtre title: Filtre
new: new:
title: Adaugă un filtru nou title: Adaugă un filtru nou
followers:
domain: Domeniu
explanation_html: Dacă vrei să fi sigur de confidențialitatea statusurilor tale, ar trebui să fi conștient de cine te urmărește. <strong>Statusurile tale private sunt livrate către toate instanțele unde ai urmăritori</strong>. Este recomandabil să verifici și să ștergi urmăritorii în care nu ai încredere că îți vor respecta intimitatea.
followers_count: Numărul de urmăritori
lock_link: Privează contul tău
purge: Elimină de la urmăritori

@ -519,20 +519,6 @@ ru:
title: Фильтры title: Фильтры
new: new:
title: Добавить фильтр title: Добавить фильтр
followers:
domain: Домен
explanation_html: Если Вы хотите быть уверены в приватности Ваших статусов, Вы должны иметь четкое представление о том, кто на Вас подписан. <strong>Ваши приватные статусы отправляются всем узлам, на которых у Вас есть подписчики</strong>. Рекомендуем удалить из подписчиков пользователей узлов, администрации или программному обеспечению которых Вы не доверяете.
followers_count: Количество подписчиков
lock_link: Закройте аккаунт
purge: Удалить из подписчиков
success:
few: В процессе мягкой блокировки подписчиков с %{count} доменов...
many: В процессе мягкой блокировки подписчиков с %{count} доменов...
one: В процессе мягкой блокировки подписчиков с одного домена...
other: В процессе мягкой блокировки подписчиков с %{count} доменов...
true_privacy_html: Пожалуйста, заметьте, что <strong>настоящая конфиденциальность может быть достигнута только при помощи end-to-end шифрования</strong>.
unlocked_warning_html: Кто угодно может подписаться на Вас и получить доступ к просмотру Ваших приватных статусов. %{lock_link}, чтобы получить возможность рассматривать и вручную подтверждать запросы о подписке.
unlocked_warning_title: Ваш аккаунт не закрыт для подписки
footer: footer:
developers: Разработчикам developers: Разработчикам
more: Ещё… more: Ещё…
@ -709,7 +695,6 @@ ru:
development: Разработка development: Разработка
edit_profile: Изменить профиль edit_profile: Изменить профиль
export: Экспорт данных export: Экспорт данных
followers: Авторизованные подписчики
import: Импорт import: Импорт
migrate: Перенос аккаунта migrate: Перенос аккаунта
notifications: Уведомления notifications: Уведомления

@ -600,19 +600,6 @@ sk:
title: Triedenia title: Triedenia
new: new:
title: Pridaj nové triedenie title: Pridaj nové triedenie
followers:
domain: Doména
explanation_html: Pokiaľ chceš zaručiť súkromie svojích príspevkov, musíš mať na vedomí, kto ťa sleduje. <strong> Tvoje súkromné príspevky sú doručené na každý server z ktorého ťa niekto následuje. </strong> Takže možno by si ich chcel/a skontrolovať, a odstrániť tých následovníkov, čo sú na serveroch ktorím dostatočne nedôveruješ v zmysle, že ich moderátori, alebo ich softvérové úpravy, budú tiež rešpektovať tvoje súkromie.
followers_count: Počet následovateľov
lock_link: Zamkni svoj účet
purge: Odstráň sledovateľa
success:
few: Počas utišovania sledovateľov z %{count} domén...
one: Počas utišovania sledovateľov z jednej domény...
other: Počas utišovania sledovateľov z %{count} domén...
true_privacy_html: Prosím ber na vedomie, <strong> že ozajstné súkromie sa dá dosiahnúť iba za pomoci end-to-end enkrypcie</strong>.
unlocked_warning_html: Hocikto ťa môže následovať aby mohol/a ihneď vidieť tvoje súkromné príspevky. %{lock_link} aby si mohla skontrolovať a odmietať sledovateľov.
unlocked_warning_title: Tvoj účet nieje zamknutý
footer: footer:
developers: Vývojári developers: Vývojári
more: Viac… more: Viac…
@ -818,7 +805,6 @@ sk:
edit_profile: Uprav profil edit_profile: Uprav profil
export: Exportovať dáta export: Exportovať dáta
featured_tags: Popredne zvýraznené haštagy featured_tags: Popredne zvýraznené haštagy
followers: Povolení následovatelia
import: Importovať import: Importovať
migrate: Presunutie účtu migrate: Presunutie účtu
notifications: Oznámenia notifications: Oznámenia

@ -590,18 +590,6 @@ sq:
title: Filtra title: Filtra
new: new:
title: Shtoni filtër të ri title: Shtoni filtër të ri
followers:
domain: Përkatësi
explanation_html: Nëse doni të garantoni privatësinë e gjendjeve tuaja, duhet të jeni në dijeni se cilët ju ndjekin. <strong>Gjendjet tuaja private u dërgohen krejt shërbyes ku keni ndjekës</strong>. Mund të donit ti rishqyrtoni ato, dhe të hiqni ndjekës, nëse nuk besoni se privatësia juaj respektohet nga stafi apo software-i i këtyre shërbyesve.
followers_count: Numër ndjekësish
lock_link: Kyçeni llogarinë tuaj
purge: Hiqe nga ndjekësit
success:
one: Në përmbushje e sipër të bllokimit të butë të ndjekësve nga një përkatësi…
other: Në përmbushje e sipër të bllokimit të butë të ndjekësve nga %{count} përkatësi…
true_privacy_html: Ju lutemi, kini parasysh se <strong>privatësi e vërtetë mund të arrihet vetëm me fshehtëzim skaj-më-skaj</strong>.
unlocked_warning_html: Mund tju ndjekë cilido, që të shohë menjëherë gjendjet tuaja private. %{lock_link} që të jeni në gjendje të shqyrtoni dhe hidhni poshtë ndjekës.
unlocked_warning_title: Llogaria juaj sështë kyçur
footer: footer:
developers: Zhvillues developers: Zhvillues
more: Më tepër… more: Më tepër…
@ -793,7 +781,6 @@ sq:
edit_profile: Përpunoni profilin edit_profile: Përpunoni profilin
export: Eksportim të dhënash export: Eksportim të dhënash
featured_tags: Hashtagë të zgjedhur featured_tags: Hashtagë të zgjedhur
followers: Ndjekës të autorizuar
import: Importo import: Importo
migrate: Migrim llogarie migrate: Migrim llogarie
notifications: Njoftime notifications: Njoftime

@ -367,20 +367,6 @@ sr-Latn:
follows: Pratite follows: Pratite
mutes: Ućutkali ste mutes: Ućutkali ste
storage: Multimedijalno skladište storage: Multimedijalno skladište
followers:
domain: Domen
explanation_html: Ako želite da osigurate privatnost Vaših statusa, morate biti svesni ko Vas prati. <strong>Vaši privatni statusi se šalju na sve instance na kojima imate pratioce</strong>. Možda želite da ih pregledate i da uklonite one pratioce na onim instancama za koje nemate poverenja da će poštovati Vašu privatnost.
followers_count: Broj pratilaca
lock_link: Zaključajte nalog
purge: Ukloni iz pratioca
success:
few: U procesu blokiranja pratioca sa %{count} domena...
many: U procesu blokiranja pratioca sa %{count} domena...
one: U procesu blokiranja pratioca sa jednog domena...
other: U procesu blokiranja pratioca sa %{count} domena...
true_privacy_html: Zapamtite da se <strong>prava privatnost može postići samo šifrovanjem sa kraja na kraj</strong>.
unlocked_warning_html: Svako može da Vas zaprati da odmah vidi Vaše privatne statuse. %{lock_link} da biste pregledali i odbacili pratioce.
unlocked_warning_title: Vaš nalog nije zaključan
generic: generic:
changes_saved_msg: Izmene uspešno sačuvane! changes_saved_msg: Izmene uspešno sačuvane!
save_changes: Snimi izmene save_changes: Snimi izmene
@ -534,7 +520,6 @@ sr-Latn:
development: Razvoj development: Razvoj
edit_profile: Izmena profila edit_profile: Izmena profila
export: Izvoz podataka export: Izvoz podataka
followers: Autorizovani pratioci
import: Uvoz import: Uvoz
migrate: Prebacivanje naloga migrate: Prebacivanje naloga
notifications: Obaveštenja notifications: Obaveštenja

@ -599,20 +599,6 @@ sr:
title: Филтери title: Филтери
new: new:
title: Додај нови филтер title: Додај нови филтер
followers:
domain: Домен
explanation_html: Ако желите да осигурате приватност Ваших статуса, морате бити свесни ко Вас прати. <strong>Ваши приватни статуси се шаљу на све инстанце на којима имате пратиоце</strong>. Можда желите да их прегледате и да уклоните оне пратиоце на оним инстанцама за које немате поверења да ће поштовати Вашу приватност.
followers_count: Број пратилаца
lock_link: Закључајте налог
purge: Уклони из пратиоца
success:
few: У процесу блокирања пратиоца са %{count} домена...
many: У процесу блокирања пратиоца са %{count} домена...
one: У процесу блокирања пратиоца са једног домена...
other: У процесу блокирања пратиоца са %{count} домена...
true_privacy_html: Запамтите да се <strong>права приватност може постићи само шифровањем са краја на крај</strong>.
unlocked_warning_html: Свако може да Вас запрати да одмах види Ваше приватне статусе. %{lock_link} да бисте прегледали и одбацили пратиоце.
unlocked_warning_title: Ваш налог није закључан
footer: footer:
developers: Програмери developers: Програмери
more: Више… more: Више…
@ -803,7 +789,6 @@ sr:
development: Развој development: Развој
edit_profile: Измена профила edit_profile: Измена профила
export: Извоз података export: Извоз података
followers: Ауторизовани пратиоци
import: Увоз import: Увоз
migrate: Пребацивање налога migrate: Пребацивање налога
notifications: Обавештења notifications: Обавештења

@ -433,18 +433,6 @@ sv:
follows: Du följer follows: Du följer
mutes: Du tystar mutes: Du tystar
storage: Medialagring storage: Medialagring
followers:
domain: Domän
explanation_html: Om du vill försäkra integriteten av dina statusar måste du vara medveten om vem som följer dig. <strong>Dina privata statusar levereras till alla instanser där du har följare</strong>. Du kanske vill granska och eventuellt ta bort följare om du inte litar på att din integritet respekteras hos medarbetarna eller programvara i dessa instanser.
followers_count: Antal följare
lock_link: Lås ditt konto
purge: Ta bort från följare
success:
one: I processen med soft-blocking följare från en domän ...
other: I processen med soft-blocking följare från %{count} domäner...
true_privacy_html: Kom ihåg att <strong>sann integritet kan bara uppnås med end-to-end kryptering</strong>.
unlocked_warning_html: Vem som helst kan följa dig för att omedelbart se dina privata statusar. %{lock_link} för att kunna granska och avvisa följare.
unlocked_warning_title: Ditt konto är inte låst
generic: generic:
changes_saved_msg: Ändringar sparades framgångsrikt! changes_saved_msg: Ändringar sparades framgångsrikt!
save_changes: Spara ändringar save_changes: Spara ändringar
@ -609,7 +597,6 @@ sv:
development: Utveckling development: Utveckling
edit_profile: Redigera profil edit_profile: Redigera profil
export: Exportera data export: Exportera data
followers: Auktoriserade följare
import: Import import: Import
migrate: Kontoflytt migrate: Kontoflytt
notifications: Meddelanden notifications: Meddelanden

@ -176,18 +176,6 @@ th:
follows: คุณติดตาม follows: คุณติดตาม
mutes: คุณปิดเสียง mutes: คุณปิดเสียง
storage: ที่เก็บสื่อ storage: ที่เก็บสื่อ
followers:
domain: โดเมน
explanation_html: If you want to ensure the privacy of your statuses, you must be aware of who is following you. <strong>Your private statuses are delivered to all instances where you have followers</strong>. You may wish to review them, and remove followers if you do not trust your privacy to be respected by the staff or software of those instances.
followers_count: จำนวนผู้ติดตาม
lock_link: ล๊อคแอคเค๊าท์ของคุณ
purge: นำผู้ติดตามออก
success:
one: In the process of soft-blocking followers from one domain...
other: In the process of soft-blocking followers from %{count} domains...
true_privacy_html: Please mind that <strong>true privacy can only be achieved with end-to-end encryption</strong>.
unlocked_warning_html: Anyone can follow you to immediately view your private statuses. %{lock_link} to be able to review and reject followers.
unlocked_warning_title: แอคเค๊าท์ของคุณไม่ได้ล๊อค
generic: generic:
changes_saved_msg: บันทึกการแก้ไขแล้ว! changes_saved_msg: บันทึกการแก้ไขแล้ว!
save_changes: บันทึกการเปลี่ยนแปลง save_changes: บันทึกการเปลี่ยนแปลง
@ -256,7 +244,6 @@ th:
back: กลับไปที่แมสโทดอน back: กลับไปที่แมสโทดอน
edit_profile: แก้ไขโปรไฟล์ edit_profile: แก้ไขโปรไฟล์
export: นำข้อมูลออก export: นำข้อมูลออก
followers: Authorized followers
import: นำเข้า import: นำเข้า
preferences: Preferences preferences: Preferences
settings: ตั้งค่า settings: ตั้งค่า

@ -277,18 +277,6 @@ tr:
follows: Takip ettikleriniz follows: Takip ettikleriniz
mutes: Susturduklarınız mutes: Susturduklarınız
storage: Ortam deposu storage: Ortam deposu
followers:
domain: Domain
explanation_html: Eğer gönderilerinizin gizliliğini garanti altına almak istiyorsanız, sizi kimin takip ettiğinden emin olmak zorundasınız. <strong> Gizli gönderileriniz, takipçilerinizin olduğu bütün sunuculara iletilir</strong>. Gönderilerinizi gözden geçirmek isteyebilir, ve o sunuculardaki yazılımın veya ilgili çalışanın, gizliliğinizi suistimal edeceğinizi düşünüyorsanız, o sunucudaki takipçilerinizi silebilirsiniz.
followers_count: Takipçi sayısı
lock_link: Hesabımı kilitle
purge: Takipçilerimden çıkar
success:
one: Domaindeki takipçilerin engellenmesi sürüyor...
other: "%{count} domaindeki takipçilerin engellenmesi sürüyor..."
true_privacy_html: 'Lütfen aklınızda bulundurun: <strong>gerçek gizlilik yalnızca uçtan-uca şifreleme ile sağlanır</strong>.'
unlocked_warning_html: Herhangi bir kişi sizi takip edebilir ve paylaştığınız gizli gönderilerinizi görebilir. %{lock_link}'e tıklayarak takipçilerinizi gözden geçirebilir ve reddedebilirsiniz.
unlocked_warning_title: Hesabınız kilitlendi
generic: generic:
changes_saved_msg: Değişiklikler başarıyla kaydedildi! changes_saved_msg: Değişiklikler başarıyla kaydedildi!
save_changes: Değişiklikleri kaydet save_changes: Değişiklikleri kaydet
@ -357,7 +345,6 @@ tr:
back: Mastodon'a geri dön back: Mastodon'a geri dön
edit_profile: Profili düzenle edit_profile: Profili düzenle
export: Dışa aktar export: Dışa aktar
followers: İzin verilmiş takipçiler
import: İçe aktar import: İçe aktar
preferences: Tercihler preferences: Tercihler
settings: Ayarlar settings: Ayarlar

@ -481,16 +481,6 @@ uk:
title: Фільтри title: Фільтри
new: new:
title: Додати фільтр title: Додати фільтр
followers:
domain: Домен
explanation_html: Якщо Ви хочете бути впевнені в приватності Ваших статусів, Ви повинні мати чітке уявлення про те, хто на Вас підписаний. <strong>Ваші приватні статусі відправляються усім сайтам, на яких у Вас є підписники</strong>. Рекомендуємо видалити з підписників користувачів інстанцій, адміністрації чи програмному забезпеченню яких Ви не довіряєте.
followers_count: Кількість підписників
lock_link: Закрийте акаунт
purge: Видалити з підписників
success: У процесі м'якого блокування підписників з %{count} доменів...
true_privacy_html: Будь ласка, помітьте, що <strong>справжняя конфіденційність може бути досягнена тільки за допомогою end-to-end шифрування</strong>.
unlocked_warning_html: Хто завгодно може підписатися на Вас та отримати доступ до перегляду Ваших приватних статусів. %{lock_link}, щоб отримати можливість роздивлятися та вручну підтверджувати запити щодо підписки.
unlocked_warning_title: Ваш аккаунт не закритий для підписки
generic: generic:
changes_saved_msg: Зміни успішно збережені! changes_saved_msg: Зміни успішно збережені!
save_changes: Зберегти зміни save_changes: Зберегти зміни
@ -655,7 +645,6 @@ uk:
development: Розробка development: Розробка
edit_profile: Редагувати профіль edit_profile: Редагувати профіль
export: Експорт даних export: Експорт даних
followers: Авторизовані підписники
import: Імпорт import: Імпорт
migrate: Міграція акаунту migrate: Міграція акаунту
notifications: Сповіщення notifications: Сповіщення

@ -498,16 +498,6 @@ zh-CN:
title: 过滤器 title: 过滤器
new: new:
title: 添加新的过滤器 title: 添加新的过滤器
followers:
domain: 域名
explanation_html: 为保证你的嘟文的隐私安全,你应当经常检查你的关注者列表。<strong>受保护的嘟文将会发送到所有关注者所在的实例上</strong>。有些实例使用的软件代码或其管理员可能不会尊重你的隐私设置,因此你应当复查一下关注者列表,并移除那些你无法信任的关注者。
followers_count: 关注者数量
lock_link: 为你的帐户开启保护
purge: 从关注者中移除
success: 正在从 %{count} 个域名中移除关注者……
true_privacy_html: 请始终铭记:<strong>真正的隐私只能靠端到端加密来实现</strong>
unlocked_warning_html: 任何人都可以在关注你后立即查看非公开的嘟文。只要%{lock_link},你就可以审核并拒绝关注请求。
unlocked_warning_title: 你的帐户未受到保护
generic: generic:
changes_saved_msg: 更改保存成功! changes_saved_msg: 更改保存成功!
save_changes: 保存更改 save_changes: 保存更改
@ -671,7 +661,6 @@ zh-CN:
development: 开发 development: 开发
edit_profile: 更改个人资料 edit_profile: 更改个人资料
export: 导出 export: 导出
followers: 已授权的关注者
import: 导入 import: 导入
migrate: 帐户迁移 migrate: 帐户迁移
notifications: 通知 notifications: 通知

@ -431,18 +431,6 @@ zh-HK:
follows: 你所關注的用戶 follows: 你所關注的用戶
mutes: 你所靜音的用戶 mutes: 你所靜音的用戶
storage: 媒體容量大小 storage: 媒體容量大小
followers:
domain: 網域
explanation_html: 如果你想確保你的私隱,請留意是甚麼用戶在關注你。<strong>即使你的將文章設定「私人文章」,它仍為會被遞送至你所有關注者的服務站</strong>。如果你不信任某些用戶、或其服務站的管理者會尊重你私隱,請將他們自關注者名單私除。
followers_count: 關注者數目
lock_link: 將用戶轉為「私人」
purge: 私除關注者
success:
one: 正準備軟性阻擋 1 個網域的關注者……
other: 正準備軟性阻擋 %{count} 個網域的關注者……
true_privacy_html: 請謹記,唯有<strong>點對點加密方可以真正確保你的私隱</strong>。
unlocked_warning_html: 目前任何人都可以看到你的私人文章,若%{lock_link}的話,你將可以審批關注者。
unlocked_warning_title: 你的用戶目前為「公共」
generic: generic:
changes_saved_msg: 已成功儲存修改。 changes_saved_msg: 已成功儲存修改。
save_changes: 儲存修改 save_changes: 儲存修改
@ -606,7 +594,6 @@ zh-HK:
development: 開發 development: 開發
edit_profile: 修改個人資料 edit_profile: 修改個人資料
export: 匯出 export: 匯出
followers: 授權關注
import: 匯入 import: 匯入
migrate: 帳戶遷移 migrate: 帳戶遷移
notifications: 通知 notifications: 通知

@ -436,16 +436,6 @@ zh-TW:
follows: 您關注的使用者 follows: 您關注的使用者
mutes: 您靜音的使用者 mutes: 您靜音的使用者
storage: 儲存空間大小 storage: 儲存空間大小
followers:
domain: 網域
explanation_html: 為確保個人隱私,您必須知道有哪些使用者正關注你。<strong>您的私密內容會被發送到所有您有被關注的站點上</strong>。如果您不信任這些站點的管理者,您可以選擇檢查或刪除您的關注者。
followers_count: 關注者數量
lock_link: 將你的帳戶設定為私人
purge: 移除關注者
success: 正準備軟性封鎖 %{count} 個網域的關注者……
true_privacy_html: 請謹記,唯有<strong>點對點加密方可以真正確保你的隱私</strong>。
unlocked_warning_html: 任何人都可以在關注你後立即查看非公開的嘟文。只要%{lock_link},你就可以審核並拒絕關注請求。
unlocked_warning_title: 你的帳戶是公開的
generic: generic:
changes_saved_msg: 已成功儲存修改! changes_saved_msg: 已成功儲存修改!
save_changes: 儲存修改 save_changes: 儲存修改
@ -594,7 +584,6 @@ zh-TW:
development: 開發 development: 開發
edit_profile: 編輯使用者資訊 edit_profile: 編輯使用者資訊
export: 匯出 export: 匯出
followers: 授權關注者
import: 匯入 import: 匯入
migrate: 帳戶搬遷 migrate: 帳戶搬遷
notifications: 通知 notifications: 通知

@ -14,7 +14,6 @@ SimpleNavigation::Configuration.run do |navigation|
settings.item :import, safe_join([fa_icon('cloud-upload fw'), t('settings.import')]), settings_import_url settings.item :import, safe_join([fa_icon('cloud-upload fw'), t('settings.import')]), settings_import_url
settings.item :export, safe_join([fa_icon('cloud-download fw'), t('settings.export')]), settings_export_url settings.item :export, safe_join([fa_icon('cloud-download fw'), t('settings.export')]), settings_export_url
settings.item :authorized_apps, safe_join([fa_icon('list fw'), t('settings.authorized_apps')]), oauth_authorized_applications_url settings.item :authorized_apps, safe_join([fa_icon('list fw'), t('settings.authorized_apps')]), oauth_authorized_applications_url
settings.item :follower_domains, safe_join([fa_icon('users fw'), t('settings.followers')]), settings_follower_domains_url
end end
primary.item :flavours, safe_join([fa_icon('paint-brush fw'), t('settings.flavours')]), settings_flavours_url do |flavours| primary.item :flavours, safe_join([fa_icon('paint-brush fw'), t('settings.flavours')]), settings_flavours_url do |flavours|
@ -23,6 +22,7 @@ SimpleNavigation::Configuration.run do |navigation|
end end
end end
primary.item :relationships, safe_join([fa_icon('users fw'), t('settings.relationships')]), relationships_url
primary.item :filters, safe_join([fa_icon('filter fw'), t('filters.index.title')]), filters_path, highlights_on: %r{/filters} primary.item :filters, safe_join([fa_icon('filter fw'), t('filters.index.title')]), filters_path, highlights_on: %r{/filters}
primary.item :invites, safe_join([fa_icon('user-plus fw'), t('invites.title')]), invites_path, if: proc { Setting.min_invite_role == 'user' } primary.item :invites, safe_join([fa_icon('user-plus fw'), t('invites.title')]), invites_path, if: proc { Setting.min_invite_role == 'user' }

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

Loading…
Cancel
Save