Compare commits

..

1 Commits

Author SHA1 Message Date
renovate[bot]
52f54ee8a1
chore(deps): update dependency aws-sdk-s3 to v1.192.0 2025-07-03 07:29:11 +00:00
214 changed files with 1241 additions and 3172 deletions

View File

@ -14,7 +14,6 @@ on:
- config/locales/devise.en.yml - config/locales/devise.en.yml
- config/locales/doorkeeper.en.yml - config/locales/doorkeeper.en.yml
- .github/workflows/crowdin-upload.yml - .github/workflows/crowdin-upload.yml
workflow_dispatch:
jobs: jobs:
upload-translations: upload-translations:

View File

@ -2,17 +2,7 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
## [4.4.1] - 2025-07-09 ## [4.4.0] - UNRELEASED
### Fixed
- Fix nearly every sub-directory being crawled as part of Vite build (#35323 by @ClearlyClaire)
- Fix assets not building when Redis is unavailable (#35321 by @oneiros)
- Fix replying from media modal or pop-in-player tagging user `@undefined` (#35317 by @ClearlyClaire)
- Fix support for special characters in various environment variables (#35314 by @mjankowski and @ClearlyClaire)
- Fix some database migrations failing for indexes manually removed by admins (#35309 by @mjankowski)
## [4.4.0] - 2025-07-08
### Added ### Added
@ -48,7 +38,7 @@ All notable changes to this project will be documented in this file.
Server administrators can now chose to opt in to transmit referrer information when following an external link. Only the domain name is transmitted, not the referrer path. Server administrators can now chose to opt in to transmit referrer information when following an external link. Only the domain name is transmitted, not the referrer path.
- Add double tap to zoom and swipe to dismiss to media modal in web UI (#34210 by @Gargron) - Add double tap to zoom and swipe to dismiss to media modal in web UI (#34210 by @Gargron)
- Add link from Web UI for Hashtags to the Moderation UI (#31448 by @ThisIsMissEm) - Add link from Web UI for Hashtags to the Moderation UI (#31448 by @ThisIsMissEm)
- **Add terms of service** (#33055, #33233, #33230, #33703, #33699, #33994, #33993, #34105, #34122, #34200, #34527, #35053, #35115, #35126, #35127 and #35233 by @ClearlyClaire, @Gargron, @mjankowski, and @oneiros)\ - **Add terms of service** (#33055, #33233, #33230, #33703, #33699, #33994, #33993, #34105, #34122, #34200, #34527, #35053, #35115, #35126 and #35127 by @ClearlyClaire, @Gargron, @mjankowski, and @oneiros)\
Server administrators can now fill in Terms of Service and notify their users of upcoming changes. Server administrators can now fill in Terms of Service and notify their users of upcoming changes.
- Add optional bulk mailer settings (#35191 and #35203 by @oneiros)\ - Add optional bulk mailer settings (#35191 and #35203 by @oneiros)\
This adds the optional environment variables `BULK_SMTP_PORT`, `BULK_SMTP_SERVER`, `BULK_SMTP_LOGIN` and so on analogous to `SMTP_PORT`, `SMTP_SERVER`, `SMTP_LOGIN` and related SMTP configuration environment variables.\ This adds the optional environment variables `BULK_SMTP_PORT`, `BULK_SMTP_SERVER`, `BULK_SMTP_LOGIN` and so on analogous to `SMTP_PORT`, `SMTP_SERVER`, `SMTP_LOGIN` and related SMTP configuration environment variables.\
@ -61,7 +51,7 @@ All notable changes to this project will be documented in this file.
- Add ability to dismiss alt text badge by tapping it in web UI (#33737 by @Gargron) - Add ability to dismiss alt text badge by tapping it in web UI (#33737 by @Gargron)
- Add loading indicator to timeline gap indicators in web UI (#33762 by @Gargron) - Add loading indicator to timeline gap indicators in web UI (#33762 by @Gargron)
- Add interaction modal when trying to interact with a poll while logged out (#32609 by @ThisIsMissEm) - Add interaction modal when trying to interact with a poll while logged out (#32609 by @ThisIsMissEm)
- **Add experimental FASP support** (#34031, #34415, #34765, #34965, #34964, #34033, #35218, #35262 and #35263 by @oneiros)\ - **Add experimental FASP support** (#34031, #34415, #34765, #34965, #34964, #34033 and #35218 by @oneiros)\
This is a first step towards supporting “Fediverse Auxiliary Service Providers” (https://github.com/mastodon/fediverse_auxiliary_service_provider_specifications). This is mostly interesting to developers who would like to implement their own FASP, but also includes the capability to share data with a discovery provider (see https://www.fediscovery.org). This is a first step towards supporting “Fediverse Auxiliary Service Providers” (https://github.com/mastodon/fediverse_auxiliary_service_provider_specifications). This is mostly interesting to developers who would like to implement their own FASP, but also includes the capability to share data with a discovery provider (see https://www.fediscovery.org).
- Add ability for admins to send announcements to all users via email (#33928 and #34411 by @ClearlyClaire)\ - Add ability for admins to send announcements to all users via email (#33928 and #34411 by @ClearlyClaire)\
This is meant for critical announcements only, as this will potentially send a lot of emails and cannot be opted out of by users. This is meant for critical announcements only, as this will potentially send a lot of emails and cannot be opted out of by users.
@ -74,7 +64,7 @@ All notable changes to this project will be documented in this file.
- Add dropdown menu with quick actions to lists of accounts in web UI (#34391, #34709, and #34767 by @Gargron, @diondiondion, and @mkljczk) - Add dropdown menu with quick actions to lists of accounts in web UI (#34391, #34709, and #34767 by @Gargron, @diondiondion, and @mkljczk)
- Add support for displaying “year in review” notification in web UI (#32710, #32765, #32709, #32807, #32914, #33148, and #33882 by @Gargron and @mjankowski)\ - Add support for displaying “year in review” notification in web UI (#32710, #32765, #32709, #32807, #32914, #33148, and #33882 by @Gargron and @mjankowski)\
Note that the notification is currently not generated automatically, and at the moment requires a manual undocumented administrator action. Note that the notification is currently not generated automatically, and at the moment requires a manual undocumented administrator action.
- Add experimental support for receiving HTTP Message Signatures (RFC9421) (#34814, #35033, #35109 and #35278 by @oneiros)\ - Add experimental support for receiving HTTP Message Signatures (RFC9421) (#34814, #35033 and #35109 by @oneiros)\
For now, this needs to be explicitly enabled through the `http_message_signatures` feature flag (`EXPERIMENTAL_FEATURES=http_message_signatures`). This currently only covers verifying such signatures (inbound HTTP requests), not issuing them (outbound HTTP requests). For now, this needs to be explicitly enabled through the `http_message_signatures` feature flag (`EXPERIMENTAL_FEATURES=http_message_signatures`). This currently only covers verifying such signatures (inbound HTTP requests), not issuing them (outbound HTTP requests).
- Add experimental Async Refreshes API (#34918 by @oneiros) - Add experimental Async Refreshes API (#34918 by @oneiros)
- Add experimental server-side feature to fetch remote replies (#32615, #34147, #34149, #34151, #34615, #34682, and #34702 by @ClearlyClaire and @sneakers-the-rat)\ - Add experimental server-side feature to fetch remote replies (#32615, #34147, #34149, #34151, #34615, #34682, and #34702 by @ClearlyClaire and @sneakers-the-rat)\
@ -228,7 +218,6 @@ All notable changes to this project will be documented in this file.
- Fix admin dashboard crash on specific Elasticsearch connection errors (#34683 by @ClearlyClaire) - Fix admin dashboard crash on specific Elasticsearch connection errors (#34683 by @ClearlyClaire)
- Fix OIDC account creation failing for long display names (#34639 by @defnull) - Fix OIDC account creation failing for long display names (#34639 by @defnull)
- Fix use of the deprecated `/api/v1/instance` endpoint in the moderation interface (#34613 by @renchap) - Fix use of the deprecated `/api/v1/instance` endpoint in the moderation interface (#34613 by @renchap)
- Fix inaccessible “Clear search” button (#35152 and #35281 by @diondiondion)
- Fix search operators sometimes getting lost (#35190 by @ClearlyClaire) - Fix search operators sometimes getting lost (#35190 by @ClearlyClaire)
- Fix directory scroll position reset (#34560 by @przucidlo) - Fix directory scroll position reset (#34560 by @przucidlo)
- Fix needlessly complex SVG paths for oEmbed and logo (#34538 by @edent) - Fix needlessly complex SVG paths for oEmbed and logo (#34538 by @edent)
@ -243,7 +232,7 @@ All notable changes to this project will be documented in this file.
- Fix extra space under left-indented vertical videos (#34313 by @ClearlyClaire) - Fix extra space under left-indented vertical videos (#34313 by @ClearlyClaire)
- Fix glitchy iOS media attachment drag interactions (#35057 by @diondiondion) - Fix glitchy iOS media attachment drag interactions (#35057 by @diondiondion)
- Fix zoomed images being blurry in Safari (#35052 by @diondiondion) - Fix zoomed images being blurry in Safari (#35052 by @diondiondion)
- Fix redundant focus stop within status component in Web UI and make focus style more noticeable (#35037, #35051, #35096, #35150 and #35251 by @diondiondion) - Fix redundant focus stop within status component in Web UI and make focus style more noticeable (#35037, #35051, #35096 and #35150 by @diondiondion)
- Fix digits in media player time readout not having a consistent width (#35038 by @diondiondion) - Fix digits in media player time readout not having a consistent width (#35038 by @diondiondion)
- Fix wrong text color for “Open in advanced web interface” banner in high-contrast theme (#35032 by @diondiondion) - Fix wrong text color for “Open in advanced web interface” banner in high-contrast theme (#35032 by @diondiondion)
- Fix hover card for limited accounts not hiding information as expected (#35024 by @diondiondion) - Fix hover card for limited accounts not hiding information as expected (#35024 by @diondiondion)

View File

@ -186,7 +186,7 @@ FROM build AS libvips
# libvips version to compile, change with [--build-arg VIPS_VERSION="8.15.2"] # libvips version to compile, change with [--build-arg VIPS_VERSION="8.15.2"]
# renovate: datasource=github-releases depName=libvips packageName=libvips/libvips # renovate: datasource=github-releases depName=libvips packageName=libvips/libvips
ARG VIPS_VERSION=8.17.1 ARG VIPS_VERSION=8.17.0
# libvips download URL, change with [--build-arg VIPS_URL="https://github.com/libvips/libvips/releases/download"] # libvips download URL, change with [--build-arg VIPS_URL="https://github.com/libvips/libvips/releases/download"]
ARG VIPS_URL=https://github.com/libvips/libvips/releases/download ARG VIPS_URL=https://github.com/libvips/libvips/releases/download

View File

@ -90,13 +90,13 @@ GEM
public_suffix (>= 2.0.2, < 7.0) public_suffix (>= 2.0.2, < 7.0)
aes_key_wrap (1.1.0) aes_key_wrap (1.1.0)
android_key_attestation (0.3.0) android_key_attestation (0.3.0)
annotaterb (4.17.0) annotaterb (4.16.0)
activerecord (>= 6.0.0) activerecord (>= 6.0.0)
activesupport (>= 6.0.0) activesupport (>= 6.0.0)
ast (2.4.3) ast (2.4.3)
attr_required (1.0.2) attr_required (1.0.2)
aws-eventstream (1.4.0) aws-eventstream (1.4.0)
aws-partitions (1.1127.0) aws-partitions (1.1124.0)
aws-sdk-core (3.215.1) aws-sdk-core (3.215.1)
aws-eventstream (~> 1, >= 1.3.0) aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.992.0) aws-partitions (~> 1, >= 1.992.0)
@ -365,7 +365,7 @@ GEM
json-ld-preloaded (3.3.1) json-ld-preloaded (3.3.1)
json-ld (~> 3.3) json-ld (~> 3.3)
rdf (~> 3.3) rdf (~> 3.3)
json-schema (5.2.1) json-schema (5.1.1)
addressable (~> 2.8) addressable (~> 2.8)
bigdecimal (~> 3.1) bigdecimal (~> 3.1)
jsonapi-renderer (0.2.2) jsonapi-renderer (0.2.2)
@ -403,7 +403,7 @@ GEM
rexml rexml
link_header (0.0.8) link_header (0.0.8)
lint_roller (1.1.0) lint_roller (1.1.0)
linzer (0.7.7) linzer (0.7.3)
cgi (~> 0.4.2) cgi (~> 0.4.2)
forwardable (~> 1.3, >= 1.3.3) forwardable (~> 1.3, >= 1.3.3)
logger (~> 1.7, >= 1.7.0) logger (~> 1.7, >= 1.7.0)
@ -682,7 +682,7 @@ GEM
activesupport (= 8.0.2) activesupport (= 8.0.2)
bundler (>= 1.15.0) bundler (>= 1.15.0)
railties (= 8.0.2) railties (= 8.0.2)
rails-dom-testing (2.3.0) rails-dom-testing (2.2.0)
activesupport (>= 5.0.0) activesupport (>= 5.0.0)
minitest minitest
nokogiri (>= 1.6) nokogiri (>= 1.6)
@ -761,7 +761,7 @@ GEM
rspec-mocks (~> 3.0) rspec-mocks (~> 3.0)
sidekiq (>= 5, < 9) sidekiq (>= 5, < 9)
rspec-support (3.13.4) rspec-support (3.13.4)
rubocop (1.78.0) rubocop (1.77.0)
json (~> 2.3) json (~> 2.3)
language_server-protocol (~> 3.17.0.2) language_server-protocol (~> 3.17.0.2)
lint_roller (~> 1.1.0) lint_roller (~> 1.1.0)
@ -815,7 +815,7 @@ GEM
sanitize (7.0.0) sanitize (7.0.0)
crass (~> 1.0.2) crass (~> 1.0.2)
nokogiri (>= 1.16.8) nokogiri (>= 1.16.8)
scenic (1.9.0) scenic (1.8.0)
activerecord (>= 4.0.0) activerecord (>= 4.0.0)
railties (>= 4.0.0) railties (>= 4.0.0)
securerandom (0.4.1) securerandom (0.4.1)

View File

@ -51,8 +51,8 @@ Mastodon is a **free, open-source social network server** based on [ActivityPub]
- [Redis](https://redis.io/) and [Sidekiq](https://sidekiq.org/) are used for caching and queueing. - [Redis](https://redis.io/) and [Sidekiq](https://sidekiq.org/) are used for caching and queueing.
- [Node.js](https://nodejs.org/) powers the streaming API. - [Node.js](https://nodejs.org/) powers the streaming API.
- [React.js](https://reactjs.org/) and [Redux](https://redux.js.org/) are used for the dynamic parts of the interface. - [React.js](https://reactjs.org/) and [Redux](https://redux.js.org/) are used for the dynamic parts of the interface.
- [BrowserStack](https://www.browserstack.com/) supports testing on real devices and browsers. (This project is tested with BrowserStack) - [BrowserStack](https://www.browserstack.com/) supports testing on real devices and browsers.
- [Chromatic](https://www.chromatic.com/) provides visual regression testing. (This project is tested with Chromatic) - [Chromatic](https://www.chromatic.com/) provides visual regression testing.
### Requirements ### Requirements

View File

@ -13,9 +13,8 @@ A "vulnerability in Mastodon" is a vulnerability in the code distributed through
## Supported Versions ## Supported Versions
| Version | Supported | | Version | Supported |
| ------- | ---------------- | | ------- | --------- |
| 4.4.x | Yes | | 4.3.x | Yes |
| 4.3.x | Yes | | 4.2.x | Yes |
| 4.2.x | Until 2026-01-08 | | < 4.2 | No |
| < 4.2 | No |

View File

@ -14,20 +14,16 @@ module Admin
def create def create
authorize @account, :show? authorize @account, :show?
@account_action = Admin::AccountAction.new(resource_params) account_action = Admin::AccountAction.new(resource_params)
@account_action.target_account = @account account_action.target_account = @account
@account_action.current_account = current_account account_action.current_account = current_account
if @account_action.save account_action.save!
if @account_action.with_report?
redirect_to admin_reports_path, notice: I18n.t('admin.reports.processed_msg', id: resource_params[:report_id]) if account_action.with_report?
else redirect_to admin_reports_path, notice: I18n.t('admin.reports.processed_msg', id: resource_params[:report_id])
redirect_to admin_account_path(@account.id)
end
else else
@warning_presets = AccountWarningPreset.all redirect_to admin_account_path(@account.id)
render :new
end end
end end

View File

@ -13,9 +13,27 @@ class Admin::Reports::ActionsController < Admin::BaseController
case action_from_button case action_from_button
when 'delete', 'mark_as_sensitive' when 'delete', 'mark_as_sensitive'
Admin::StatusBatchAction.new(status_batch_action_params).save! status_batch_action = Admin::StatusBatchAction.new(
type: action_from_button,
status_ids: @report.status_ids,
current_account: current_account,
report_id: @report.id,
send_email_notification: !@report.spam?,
text: params[:text]
)
status_batch_action.save!
when 'silence', 'suspend' when 'silence', 'suspend'
Admin::AccountAction.new(account_action_params).save! account_action = Admin::AccountAction.new(
type: action_from_button,
report_id: @report.id,
target_account: @report.target_account,
current_account: current_account,
send_email_notification: !@report.spam?,
text: params[:text]
)
account_action.save!
else else
return redirect_to admin_report_path(@report), alert: I18n.t('admin.reports.unknown_action_msg', action: action_from_button) return redirect_to admin_report_path(@report), alert: I18n.t('admin.reports.unknown_action_msg', action: action_from_button)
end end
@ -25,26 +43,6 @@ class Admin::Reports::ActionsController < Admin::BaseController
private private
def status_batch_action_params
shared_params
.merge(status_ids: @report.status_ids)
end
def account_action_params
shared_params
.merge(target_account: @report.target_account)
end
def shared_params
{
current_account: current_account,
report_id: @report.id,
send_email_notification: !@report.spam?,
text: params[:text],
type: action_from_button,
}
end
def set_report def set_report
@report = Report.find(params[:report_id]) @report = Report.find(params[:report_id])
end end

View File

@ -38,7 +38,8 @@ class Auth::OmniauthCallbacksController < Devise::OmniauthCallbacksController
private private
def record_login_activity def record_login_activity
@user.login_activities.create( LoginActivity.create(
user: @user,
success: true, success: true,
authentication_method: :omniauth, authentication_method: :omniauth,
provider: @provider, provider: @provider,

View File

@ -151,11 +151,12 @@ class Auth::SessionsController < Devise::SessionsController
sign_in(user) sign_in(user)
flash.delete(:notice) flash.delete(:notice)
user.login_activities.create( LoginActivity.create(
request_details.merge( user: user,
authentication_method: security_measure, success: true,
success: true authentication_method: security_measure,
) ip: request.remote_ip,
user_agent: request.user_agent
) )
UserMailer.suspicious_sign_in(user, request.remote_ip, request.user_agent, Time.now.utc).deliver_later! if @login_is_suspicious UserMailer.suspicious_sign_in(user, request.remote_ip, request.user_agent, Time.now.utc).deliver_later! if @login_is_suspicious
@ -166,12 +167,13 @@ class Auth::SessionsController < Devise::SessionsController
end end
def on_authentication_failure(user, security_measure, failure_reason) def on_authentication_failure(user, security_measure, failure_reason)
user.login_activities.create( LoginActivity.create(
request_details.merge( user: user,
authentication_method: security_measure, success: false,
failure_reason: failure_reason, authentication_method: security_measure,
success: false failure_reason: failure_reason,
) ip: request.remote_ip,
user_agent: request.user_agent
) )
# Only send a notification email every hour at most # Only send a notification email every hour at most
@ -180,13 +182,6 @@ class Auth::SessionsController < Devise::SessionsController
UserMailer.failed_2fa(user, request.remote_ip, request.user_agent, Time.now.utc).deliver_later! UserMailer.failed_2fa(user, request.remote_ip, request.user_agent, Time.now.utc).deliver_later!
end end
def request_details
{
ip: request.remote_ip,
user_agent: request.user_agent,
}
end
def second_factor_attempts_key(user) def second_factor_attempts_key(user)
"2fa_auth_attempts:#{user.id}:#{Time.now.utc.hour}" "2fa_auth_attempts:#{user.id}:#{Time.now.utc.hour}"
end end

View File

@ -64,9 +64,6 @@ module SignatureVerification
return (@signed_request_actor = actor) if signed_request.verified?(actor) return (@signed_request_actor = actor) if signed_request.verified?(actor)
fail_with! "Verification failed for #{actor.to_log_human_identifier} #{actor.uri}" fail_with! "Verification failed for #{actor.to_log_human_identifier} #{actor.uri}"
rescue Mastodon::MalformedHeaderError => e
@signature_verification_failure_code = 400
fail_with! e.message
rescue Mastodon::SignatureVerificationError => e rescue Mastodon::SignatureVerificationError => e
fail_with! e.message fail_with! e.message
rescue *Mastodon::HTTP_CONNECTION_ERRORS => e rescue *Mastodon::HTTP_CONNECTION_ERRORS => e

View File

@ -5,6 +5,6 @@ class Settings::LoginActivitiesController < Settings::BaseController
skip_before_action :require_functional! skip_before_action :require_functional!
def index def index
@login_activities = current_user.login_activities.order(id: :desc).page(params[:page]) @login_activities = LoginActivity.where(user: current_user).order(id: :desc).page(params[:page])
end end
end end

View File

@ -66,7 +66,7 @@ module ApplicationHelper
def provider_sign_in_link(provider) def provider_sign_in_link(provider)
label = Devise.omniauth_configs[provider]&.strategy&.display_name.presence || I18n.t("auth.providers.#{provider}", default: provider.to_s.chomp('_oauth2').capitalize) label = Devise.omniauth_configs[provider]&.strategy&.display_name.presence || I18n.t("auth.providers.#{provider}", default: provider.to_s.chomp('_oauth2').capitalize)
link_to label, omniauth_authorize_path(:user, provider), class: "btn button-#{provider}", method: :post link_to label, omniauth_authorize_path(:user, provider), class: "button button-#{provider}", method: :post
end end
def locale_direction def locale_direction

View File

@ -26,12 +26,6 @@ module ContextHelper
suspended: { 'toot' => 'http://joinmastodon.org/ns#', 'suspended' => 'toot:suspended' }, suspended: { 'toot' => 'http://joinmastodon.org/ns#', 'suspended' => 'toot:suspended' },
attribution_domains: { 'toot' => 'http://joinmastodon.org/ns#', 'attributionDomains' => { '@id' => 'toot:attributionDomains', '@type' => '@id' } }, attribution_domains: { 'toot' => 'http://joinmastodon.org/ns#', 'attributionDomains' => { '@id' => 'toot:attributionDomains', '@type' => '@id' } },
quote_requests: { 'QuoteRequest' => 'https://w3id.org/fep/044f#QuoteRequest' }, quote_requests: { 'QuoteRequest' => 'https://w3id.org/fep/044f#QuoteRequest' },
quotes: {
'quote' => 'https://w3id.org/fep/044f#quote',
'quoteUri' => 'http://fedibird.com/ns#quoteUri',
'_misskey_quote' => 'https://misskey-hub.net/ns#_misskey_quote',
'quoteAuthorization' => { '@id' => 'https://w3id.org/fep/044f#quoteAuthorization', '@type' => '@id' },
},
interaction_policies: { interaction_policies: {
'gts' => 'https://gotosocial.org/ns#', 'gts' => 'https://gotosocial.org/ns#',
'interactionPolicy' => { '@id' => 'gts:interactionPolicy', '@type' => '@id' }, 'interactionPolicy' => { '@id' => 'gts:interactionPolicy', '@type' => '@id' },

View File

@ -1,30 +1,12 @@
import { useCallback } from 'react';
import { useLinks } from 'mastodon/hooks/useLinks'; import { useLinks } from 'mastodon/hooks/useLinks';
interface AccountBioProps { export const AccountBio: React.FC<{
note: string; note: string;
className: string; className: string;
dropdownAccountId?: string; }> = ({ note, className }) => {
} const handleClick = useLinks();
export const AccountBio: React.FC<AccountBioProps> = ({ if (note.length === 0 || note === '<p></p>') {
note,
className,
dropdownAccountId,
}) => {
const handleClick = useLinks(!!dropdownAccountId);
const handleNodeChange = useCallback(
(node: HTMLDivElement | null) => {
if (!dropdownAccountId || !node || node.childNodes.length === 0) {
return;
}
addDropdownToHashtags(node, dropdownAccountId);
},
[dropdownAccountId],
);
if (note.length === 0) {
return null; return null;
} }
@ -33,28 +15,6 @@ export const AccountBio: React.FC<AccountBioProps> = ({
className={`${className} translate`} className={`${className} translate`}
dangerouslySetInnerHTML={{ __html: note }} dangerouslySetInnerHTML={{ __html: note }}
onClickCapture={handleClick} onClickCapture={handleClick}
ref={handleNodeChange}
/> />
); );
}; };
function addDropdownToHashtags(node: HTMLElement | null, accountId: string) {
if (!node) {
return;
}
for (const childNode of node.childNodes) {
if (!(childNode instanceof HTMLElement)) {
continue;
}
if (
childNode instanceof HTMLAnchorElement &&
(childNode.classList.contains('hashtag') ||
childNode.innerText.startsWith('#')) &&
!childNode.dataset.menuHashtag
) {
childNode.dataset.menuHashtag = accountId;
} else if (childNode.childNodes.length > 0) {
addDropdownToHashtags(childNode, accountId);
}
}
}

View File

@ -5,7 +5,6 @@ import {
useCallback, useCallback,
cloneElement, cloneElement,
Children, Children,
useId,
} from 'react'; } from 'react';
import classNames from 'classnames'; import classNames from 'classnames';
@ -17,7 +16,6 @@ import Overlay from 'react-overlays/Overlay';
import type { import type {
OffsetValue, OffsetValue,
UsePopperOptions, UsePopperOptions,
Placement,
} from 'react-overlays/esm/usePopper'; } from 'react-overlays/esm/usePopper';
import { fetchRelationships } from 'mastodon/actions/accounts'; import { fetchRelationships } from 'mastodon/actions/accounts';
@ -297,11 +295,6 @@ interface DropdownProps<Item = MenuItem> {
title?: string; title?: string;
disabled?: boolean; disabled?: boolean;
scrollable?: boolean; scrollable?: boolean;
placement?: Placement;
/**
* Prevent the `ScrollableList` with this scrollKey
* from being scrolled while the dropdown is open
*/
scrollKey?: string; scrollKey?: string;
status?: ImmutableMap<string, unknown>; status?: ImmutableMap<string, unknown>;
forceDropdown?: boolean; forceDropdown?: boolean;
@ -323,7 +316,6 @@ export const Dropdown = <Item = MenuItem,>({
title = 'Menu', title = 'Menu',
disabled, disabled,
scrollable, scrollable,
placement = 'bottom',
status, status,
forceDropdown = false, forceDropdown = false,
renderItem, renderItem,
@ -339,15 +331,16 @@ export const Dropdown = <Item = MenuItem,>({
); );
const [currentId] = useState(id++); const [currentId] = useState(id++);
const open = currentId === openDropdownId; const open = currentId === openDropdownId;
const buttonRef = useRef<HTMLButtonElement | null>(null); const activeElement = useRef<HTMLElement | null>(null);
const menuId = useId(); const targetRef = useRef<HTMLButtonElement | null>(null);
const prefetchAccountId = status const prefetchAccountId = status
? status.getIn(['account', 'id']) ? status.getIn(['account', 'id'])
: undefined; : undefined;
const handleClose = useCallback(() => { const handleClose = useCallback(() => {
if (buttonRef.current) { if (activeElement.current) {
buttonRef.current.focus({ preventScroll: true }); activeElement.current.focus({ preventScroll: true });
activeElement.current = null;
} }
dispatch( dispatch(
@ -382,7 +375,7 @@ export const Dropdown = <Item = MenuItem,>({
[handleClose, onItemClick, items], [handleClose, onItemClick, items],
); );
const toggleDropdown = useCallback( const handleClick = useCallback(
(e: React.MouseEvent | React.KeyboardEvent) => { (e: React.MouseEvent | React.KeyboardEvent) => {
const { type } = e; const { type } = e;
@ -430,6 +423,38 @@ export const Dropdown = <Item = MenuItem,>({
], ],
); );
const handleMouseDown = useCallback(() => {
if (!open && document.activeElement instanceof HTMLElement) {
activeElement.current = document.activeElement;
}
}, [open]);
const handleButtonKeyDown = useCallback(
(e: React.KeyboardEvent) => {
switch (e.key) {
case ' ':
case 'Enter':
handleMouseDown();
break;
}
},
[handleMouseDown],
);
const handleKeyPress = useCallback(
(e: React.KeyboardEvent) => {
switch (e.key) {
case ' ':
case 'Enter':
handleClick(e);
e.stopPropagation();
e.preventDefault();
break;
}
},
[handleClick],
);
useEffect(() => { useEffect(() => {
return () => { return () => {
if (currentId === openDropdownId) { if (currentId === openDropdownId) {
@ -440,16 +465,14 @@ export const Dropdown = <Item = MenuItem,>({
let button: React.ReactElement; let button: React.ReactElement;
const buttonProps = {
disabled,
onClick: toggleDropdown,
'aria-expanded': open,
'aria-controls': menuId,
ref: buttonRef,
};
if (children) { if (children) {
button = cloneElement(Children.only(children), buttonProps); button = cloneElement(Children.only(children), {
onClick: handleClick,
onMouseDown: handleMouseDown,
onKeyDown: handleButtonKeyDown,
onKeyPress: handleKeyPress,
ref: targetRef,
});
} else if (icon && iconComponent) { } else if (icon && iconComponent) {
button = ( button = (
<IconButton <IconButton
@ -457,7 +480,12 @@ export const Dropdown = <Item = MenuItem,>({
iconComponent={iconComponent} iconComponent={iconComponent}
title={title} title={title}
active={open} active={open}
{...buttonProps} disabled={disabled}
onClick={handleClick}
onMouseDown={handleMouseDown}
onKeyDown={handleButtonKeyDown}
onKeyPress={handleKeyPress}
ref={targetRef}
/> />
); );
} else { } else {
@ -471,13 +499,13 @@ export const Dropdown = <Item = MenuItem,>({
<Overlay <Overlay
show={open} show={open}
offset={offset} offset={offset}
placement={placement} placement='bottom'
flip flip
target={buttonRef} target={targetRef}
popperConfig={popperConfig} popperConfig={popperConfig}
> >
{({ props, arrowProps, placement }) => ( {({ props, arrowProps, placement }) => (
<div {...props} id={menuId}> <div {...props}>
<div className={`dropdown-animation dropdown-menu ${placement}`}> <div className={`dropdown-animation dropdown-menu ${placement}`}>
<div <div
className={`dropdown-menu__arrow ${placement}`} className={`dropdown-menu__arrow ${placement}`}

View File

@ -14,6 +14,7 @@ interface Props {
onClick?: React.MouseEventHandler<HTMLButtonElement>; onClick?: React.MouseEventHandler<HTMLButtonElement>;
onMouseDown?: React.MouseEventHandler<HTMLButtonElement>; onMouseDown?: React.MouseEventHandler<HTMLButtonElement>;
onKeyDown?: React.KeyboardEventHandler<HTMLButtonElement>; onKeyDown?: React.KeyboardEventHandler<HTMLButtonElement>;
onKeyPress?: React.KeyboardEventHandler<HTMLButtonElement>;
active?: boolean; active?: boolean;
expanded?: boolean; expanded?: boolean;
style?: React.CSSProperties; style?: React.CSSProperties;
@ -44,6 +45,7 @@ export const IconButton = forwardRef<HTMLButtonElement, Props>(
activeStyle, activeStyle,
onClick, onClick,
onKeyDown, onKeyDown,
onKeyPress,
onMouseDown, onMouseDown,
active = false, active = false,
disabled = false, disabled = false,
@ -83,6 +85,16 @@ export const IconButton = forwardRef<HTMLButtonElement, Props>(
[disabled, onClick], [disabled, onClick],
); );
const handleKeyPress: React.KeyboardEventHandler<HTMLButtonElement> =
useCallback(
(e) => {
if (!disabled) {
onKeyPress?.(e);
}
},
[disabled, onKeyPress],
);
const handleMouseDown: React.MouseEventHandler<HTMLButtonElement> = const handleMouseDown: React.MouseEventHandler<HTMLButtonElement> =
useCallback( useCallback(
(e) => { (e) => {
@ -149,6 +161,7 @@ export const IconButton = forwardRef<HTMLButtonElement, Props>(
onClick={handleClick} onClick={handleClick}
onMouseDown={handleMouseDown} onMouseDown={handleMouseDown}
onKeyDown={handleKeyDown} onKeyDown={handleKeyDown}
onKeyPress={handleKeyPress} // eslint-disable-line @typescript-eslint/no-deprecated
style={buttonStyle} style={buttonStyle}
tabIndex={tabIndex} tabIndex={tabIndex}
disabled={disabled} disabled={disabled}

View File

@ -6,7 +6,6 @@ import classNames from 'classnames';
import { Helmet } from 'react-helmet'; import { Helmet } from 'react-helmet';
import { NavLink } from 'react-router-dom'; import { NavLink } from 'react-router-dom';
import { AccountBio } from '@/mastodon/components/account_bio';
import CheckIcon from '@/material-icons/400-24px/check.svg?react'; import CheckIcon from '@/material-icons/400-24px/check.svg?react';
import LockIcon from '@/material-icons/400-24px/lock.svg?react'; import LockIcon from '@/material-icons/400-24px/lock.svg?react';
import MoreHorizIcon from '@/material-icons/400-24px/more_horiz.svg?react'; import MoreHorizIcon from '@/material-icons/400-24px/more_horiz.svg?react';
@ -774,6 +773,7 @@ export const AccountHeader: React.FC<{
); );
} }
const content = { __html: account.note_emojified };
const displayNameHtml = { __html: account.display_name_html }; const displayNameHtml = { __html: account.display_name_html };
const fields = account.fields; const fields = account.fields;
const isLocal = !account.acct.includes('@'); const isLocal = !account.acct.includes('@');
@ -897,11 +897,12 @@ export const AccountHeader: React.FC<{
<AccountNote accountId={accountId} /> <AccountNote accountId={accountId} />
)} )}
<AccountBio {account.note.length > 0 && account.note !== '<p></p>' && (
note={account.note_emojified} <div
dropdownAccountId={accountId} className='account__header__content translate'
className='account__header__content' dangerouslySetInnerHTML={content}
/> />
)}
<div className='account__header__fields'> <div className='account__header__fields'>
<dl> <dl>

View File

@ -47,6 +47,10 @@ const labelForRecentSearch = (search: RecentSearch) => {
} }
}; };
const unfocus = () => {
document.querySelector('.ui')?.parentElement?.focus();
};
const ClearButton: React.FC<{ const ClearButton: React.FC<{
onClick: () => void; onClick: () => void;
hasValue: boolean; hasValue: boolean;
@ -103,11 +107,6 @@ export const Search: React.FC<{
}, [initialValue]); }, [initialValue]);
const searchOptions: SearchOption[] = []; const searchOptions: SearchOption[] = [];
const unfocus = useCallback(() => {
document.querySelector('.ui')?.parentElement?.focus();
setExpanded(false);
}, []);
if (searchEnabled) { if (searchEnabled) {
searchOptions.push( searchOptions.push(
{ {
@ -283,7 +282,7 @@ export const Search: React.FC<{
history.push({ pathname: '/search', search: queryParams.toString() }); history.push({ pathname: '/search', search: queryParams.toString() });
unfocus(); unfocus();
}, },
[dispatch, history, unfocus], [dispatch, history],
); );
const handleChange = useCallback( const handleChange = useCallback(
@ -403,7 +402,7 @@ export const Search: React.FC<{
setQuickActions(newQuickActions); setQuickActions(newQuickActions);
}, },
[signedIn, dispatch, unfocus, history, submit], [dispatch, history, signedIn, setValue, setQuickActions, submit],
); );
const handleClear = useCallback(() => { const handleClear = useCallback(() => {
@ -411,7 +410,7 @@ export const Search: React.FC<{
setQuickActions([]); setQuickActions([]);
setSelectedOption(-1); setSelectedOption(-1);
unfocus(); unfocus();
}, [unfocus]); }, [setValue, setQuickActions, setSelectedOption]);
const handleKeyDown = useCallback( const handleKeyDown = useCallback(
(e: React.KeyboardEvent) => { (e: React.KeyboardEvent) => {
@ -462,7 +461,7 @@ export const Search: React.FC<{
break; break;
} }
}, },
[unfocus, navigableOptions, selectedOption, submit, value], [navigableOptions, value, selectedOption, setSelectedOption, submit],
); );
const handleFocus = useCallback(() => { const handleFocus = useCallback(() => {
@ -482,38 +481,12 @@ export const Search: React.FC<{
}, [setExpanded, setSelectedOption, singleColumn]); }, [setExpanded, setSelectedOption, singleColumn]);
const handleBlur = useCallback(() => { const handleBlur = useCallback(() => {
setExpanded(false);
setSelectedOption(-1); setSelectedOption(-1);
}, [setSelectedOption]); }, [setExpanded, setSelectedOption]);
const formRef = useRef<HTMLFormElement>(null);
useEffect(() => {
// If the search popover is expanded, close it when tabbing or
// clicking outside of it or the search form, while allowing
// tabbing or clicking inside of the popover
if (expanded) {
function closeOnLeave(event: FocusEvent | MouseEvent) {
const form = formRef.current;
const isClickInsideForm =
form &&
(form === event.target || form.contains(event.target as Node));
if (!isClickInsideForm) {
setExpanded(false);
}
}
document.addEventListener('focusin', closeOnLeave);
document.addEventListener('click', closeOnLeave);
return () => {
document.removeEventListener('focusin', closeOnLeave);
document.removeEventListener('click', closeOnLeave);
};
}
return () => null;
}, [expanded]);
return ( return (
<form ref={formRef} className={classNames('search', { active: expanded })}> <form className={classNames('search', { active: expanded })}>
<input <input
ref={searchInputRef} ref={searchInputRef}
className='search__input' className='search__input'
@ -533,7 +506,7 @@ export const Search: React.FC<{
<ClearButton hasValue={hasValue} onClick={handleClear} /> <ClearButton hasValue={hasValue} onClick={handleClear} />
<div className='search__popout' tabIndex={-1}> <div className='search__popout'>
{!hasValue && ( {!hasValue && (
<> <>
<h4> <h4>

View File

@ -1,110 +0,0 @@
// Utility codes
export const VARIATION_SELECTOR_CODE = 0xfe0f;
export const KEYCAP_CODE = 0x20e3;
// Gender codes
export const GENDER_FEMALE_CODE = 0x2640;
export const GENDER_MALE_CODE = 0x2642;
// Skin tone codes
export const SKIN_TONE_CODES = [
0x1f3fb, // Light skin tone
0x1f3fc, // Medium-light skin tone
0x1f3fd, // Medium skin tone
0x1f3fe, // Medium-dark skin tone
0x1f3ff, // Dark skin tone
] as const;
export const EMOJIS_WITH_DARK_BORDER = [
'🎱', // 1F3B1
'🐜', // 1F41C
'⚫', // 26AB
'🖤', // 1F5A4
'⬛', // 2B1B
'◼️', // 25FC-FE0F
'◾', // 25FE
'◼️', // 25FC-FE0F
'✒️', // 2712-FE0F
'▪️', // 25AA-FE0F
'💣', // 1F4A3
'🎳', // 1F3B3
'📷', // 1F4F7
'📸', // 1F4F8
'♣️', // 2663-FE0F
'🕶️', // 1F576-FE0F
'✴️', // 2734-FE0F
'🔌', // 1F50C
'💂‍♀️', // 1F482-200D-2640-FE0F
'📽️', // 1F4FD-FE0F
'🍳', // 1F373
'🦍', // 1F98D
'💂', // 1F482
'🔪', // 1F52A
'🕳️', // 1F573-FE0F
'🕹️', // 1F579-FE0F
'🕋', // 1F54B
'🖊️', // 1F58A-FE0F
'🖋️', // 1F58B-FE0F
'💂‍♂️', // 1F482-200D-2642-FE0F
'🎤', // 1F3A4
'🎓', // 1F393
'🎥', // 1F3A5
'🎼', // 1F3BC
'♠️', // 2660-FE0F
'🎩', // 1F3A9
'🦃', // 1F983
'📼', // 1F4FC
'📹', // 1F4F9
'🎮', // 1F3AE
'🐃', // 1F403
'🏴', // 1F3F4
'🐞', // 1F41E
'🕺', // 1F57A
'📱', // 1F4F1
'📲', // 1F4F2
'🚲', // 1F6B2
'🪮', // 1FAA6
'🐦‍⬛', // 1F426-200D-2B1B
];
export const EMOJIS_WITH_LIGHT_BORDER = [
'👽', // 1F47D
'⚾', // 26BE
'🐔', // 1F414
'☁️', // 2601-FE0F
'💨', // 1F4A8
'🕊️', // 1F54A-FE0F
'👀', // 1F440
'🍥', // 1F365
'👻', // 1F47B
'🐐', // 1F410
'❕', // 2755
'❔', // 2754
'⛸️', // 26F8-FE0F
'🌩️', // 1F329-FE0F
'🔊', // 1F50A
'🔇', // 1F507
'📃', // 1F4C3
'🌧️', // 1F327-FE0F
'🐏', // 1F40F
'🍚', // 1F35A
'🍙', // 1F359
'🐓', // 1F413
'🐑', // 1F411
'💀', // 1F480
'☠️', // 2620-FE0F
'🌨️', // 1F328-FE0F
'🔉', // 1F509
'🔈', // 1F508
'💬', // 1F4AC
'💭', // 1F4AD
'🏐', // 1F3D0
'🏳️', // 1F3F3-FE0F
'⚪', // 26AA
'⬜', // 2B1C
'◽', // 25FD
'◻️', // 25FB-FE0F
'▫️', // 25AB-FE0F
'🪽', // 1FAE8
'🪿', // 1FABF
];

View File

@ -1,102 +0,0 @@
import { SUPPORTED_LOCALES } from 'emojibase';
import type { FlatCompactEmoji, Locale } from 'emojibase';
import type { DBSchema } from 'idb';
import { openDB } from 'idb';
import type { ApiCustomEmojiJSON } from '@/mastodon/api_types/custom_emoji';
import type { LocaleOrCustom } from './locale';
import { toSupportedLocale, toSupportedLocaleOrCustom } from './locale';
interface EmojiDB extends LocaleTables, DBSchema {
custom: {
key: string;
value: ApiCustomEmojiJSON;
indexes: {
category: string;
};
};
etags: {
key: LocaleOrCustom;
value: string;
};
}
interface LocaleTable {
key: string;
value: FlatCompactEmoji;
indexes: {
group: number;
label: string;
order: number;
tags: string[];
};
}
type LocaleTables = Record<Locale, LocaleTable>;
const SCHEMA_VERSION = 1;
const db = await openDB<EmojiDB>('mastodon-emoji', SCHEMA_VERSION, {
upgrade(database) {
const customTable = database.createObjectStore('custom', {
keyPath: 'shortcode',
autoIncrement: false,
});
customTable.createIndex('category', 'category');
database.createObjectStore('etags');
for (const locale of SUPPORTED_LOCALES) {
const localeTable = database.createObjectStore(locale, {
keyPath: 'hexcode',
autoIncrement: false,
});
localeTable.createIndex('group', 'group');
localeTable.createIndex('label', 'label');
localeTable.createIndex('order', 'order');
localeTable.createIndex('tags', 'tags', { multiEntry: true });
}
},
});
export async function putEmojiData(emojis: FlatCompactEmoji[], locale: Locale) {
const trx = db.transaction(locale, 'readwrite');
await Promise.all(emojis.map((emoji) => trx.store.put(emoji)));
await trx.done;
}
export async function putCustomEmojiData(emojis: ApiCustomEmojiJSON[]) {
const trx = db.transaction('custom', 'readwrite');
await Promise.all(emojis.map((emoji) => trx.store.put(emoji)));
await trx.done;
}
export function putLatestEtag(etag: string, localeString: string) {
const locale = toSupportedLocaleOrCustom(localeString);
return db.put('etags', etag, locale);
}
export function searchEmojiByHexcode(hexcode: string, localeString: string) {
const locale = toSupportedLocale(localeString);
return db.get(locale, hexcode);
}
export function searchEmojiByTag(tag: string, localeString: string) {
const locale = toSupportedLocale(localeString);
const range = IDBKeyRange.only(tag.toLowerCase());
return db.getAllFromIndex(locale, 'tags', range);
}
export function searchCustomEmojiByShortcode(shortcode: string) {
return db.get('custom', shortcode);
}
export async function loadLatestEtag(localeString: string) {
const locale = toSupportedLocaleOrCustom(localeString);
const rowCount = await db.count(locale);
if (!rowCount) {
return null; // No data for this locale, return null even if there is an etag.
}
const etag = await db.get('etags', locale);
return etag ?? null;
}

View File

@ -1,38 +0,0 @@
import initialState from '@/mastodon/initial_state';
import { toSupportedLocale } from './locale';
const serverLocale = toSupportedLocale(initialState?.meta.locale ?? 'en');
const worker =
'Worker' in window
? new Worker(new URL('./worker', import.meta.url), {
type: 'module',
})
: null;
export async function initializeEmoji() {
if (worker) {
worker.addEventListener('message', (event: MessageEvent<string>) => {
const { data: message } = event;
if (message === 'ready') {
worker.postMessage(serverLocale);
worker.postMessage('custom');
}
});
} else {
const { importCustomEmojiData, importEmojiData } = await import('./loader');
await Promise.all([importCustomEmojiData(), importEmojiData(serverLocale)]);
}
}
export async function loadEmojiLocale(localeString: string) {
const locale = toSupportedLocale(localeString);
if (worker) {
worker.postMessage(locale);
} else {
const { importEmojiData } = await import('./loader');
await importEmojiData(locale);
}
}

View File

@ -1,77 +0,0 @@
import { flattenEmojiData } from 'emojibase';
import type { CompactEmoji, FlatCompactEmoji } from 'emojibase';
import type { ApiCustomEmojiJSON } from '@/mastodon/api_types/custom_emoji';
import { isDevelopment } from '@/mastodon/utils/environment';
import {
putEmojiData,
putCustomEmojiData,
loadLatestEtag,
putLatestEtag,
} from './database';
import { toSupportedLocale, toSupportedLocaleOrCustom } from './locale';
import type { LocaleOrCustom } from './locale';
export async function importEmojiData(localeString: string) {
const locale = toSupportedLocale(localeString);
const emojis = await fetchAndCheckEtag<CompactEmoji[]>(locale);
if (!emojis) {
return;
}
const flattenedEmojis: FlatCompactEmoji[] = flattenEmojiData(emojis);
await putEmojiData(flattenedEmojis, locale);
}
export async function importCustomEmojiData() {
const emojis = await fetchAndCheckEtag<ApiCustomEmojiJSON[]>('custom');
if (!emojis) {
return;
}
await putCustomEmojiData(emojis);
}
async function fetchAndCheckEtag<ResultType extends object[]>(
localeOrCustom: LocaleOrCustom,
): Promise<ResultType | null> {
const locale = toSupportedLocaleOrCustom(localeOrCustom);
let uri: string;
if (locale === 'custom') {
uri = '/api/v1/custom_emojis';
} else {
uri = `/packs${isDevelopment() ? '-dev' : ''}/emoji/${locale}.json`;
}
const oldEtag = await loadLatestEtag(locale);
const response = await fetch(uri, {
headers: {
'Content-Type': 'application/json',
'If-None-Match': oldEtag ?? '', // Send the old ETag to check for modifications
},
});
// If not modified, return null
if (response.status === 304) {
return null;
}
if (!response.ok) {
throw new Error(
`Failed to fetch emoji data for ${localeOrCustom}: ${response.statusText}`,
);
}
const data = (await response.json()) as ResultType;
if (!Array.isArray(data)) {
throw new Error(
`Unexpected data format for ${localeOrCustom}: expected an array`,
);
}
// Store the ETag for future requests
const etag = response.headers.get('ETag');
if (etag) {
await putLatestEtag(etag, localeOrCustom);
}
return data;
}

View File

@ -1,6 +1,52 @@
import { SUPPORTED_LOCALES } from 'emojibase'; import { flattenEmojiData, SUPPORTED_LOCALES } from 'emojibase';
import emojiEnData from 'emojibase-data/en/compact.json';
import emojiFrData from 'emojibase-data/fr/compact.json';
import { toSupportedLocale, toSupportedLocaleOrCustom } from './locale'; import { toSupportedLocale, unicodeToLocaleLabel } from './locale';
describe('unicodeToLocaleLabel', () => {
const emojiTestCases = [
'1F3CB-1F3FF-200D-2640-FE0F', // 🏋🏿‍♀️ Woman weightlifter, dark skin
'1F468-1F3FB', // 👨🏻 Man, light skin
'1F469-1F3FB-200D-2695-FE0F', // 👩🏻‍⚕️ Woman health worker, light skin
'1F468-1F3FD-200D-1F692', // 👨🏽‍🚒 Man firefighter, medium skin
'1F469-1F3FE', // 👩🏾 Woman, medium-dark skin
'1F469-1F3FF-200D-1F4BB', // 👩🏿‍💻 Woman technologist, dark skin
'1F478-1F3FF', // 👸🏿 Princess with dark skin tone
'1F935-1F3FC-200D-2640-FE0F', // 🤵🏼‍♀️ Woman in tuxedo, medium-light skin
'1F9D1-1F3FC', // 🧑🏼 Person, medium-light skin
'1F9D4-1F3FE', // 🧔🏾 Person with beard, medium-dark skin
];
const flattenedEnData = flattenEmojiData(emojiEnData);
const flattenedFrData = flattenEmojiData(emojiFrData);
const emojiTestEnLabels = new Map(
emojiTestCases.map((code) => [
code,
flattenedEnData.find((emoji) => emoji.hexcode === code)?.label,
]),
);
const emojiTestFrLabels = new Map(
emojiTestCases.map((code) => [
code,
flattenedFrData.find((emoji) => emoji.hexcode === code)?.label,
]),
);
test.for(
emojiTestCases.flatMap((code) => [
[code, 'en', emojiTestEnLabels.get(code)],
[code, 'fr', emojiTestFrLabels.get(code)],
]) satisfies [string, string, string | undefined][],
)(
'returns correct label for %s for %s locale',
async ([unicodeHex, locale, expectedLabel]) => {
const label = await unicodeToLocaleLabel(unicodeHex, locale);
expect(label).toBe(expectedLabel);
},
);
});
describe('toSupportedLocale', () => { describe('toSupportedLocale', () => {
test('returns the same locale if it is supported', () => { test('returns the same locale if it is supported', () => {
@ -16,14 +62,3 @@ describe('toSupportedLocale', () => {
} }
}); });
}); });
describe('toSupportedLocaleOrCustom', () => {
test('returns custom for "custom" locale', () => {
expect(toSupportedLocaleOrCustom('custom')).toBe('custom');
});
test('returns supported locale for valid locales', () => {
for (const locale of SUPPORTED_LOCALES) {
expect(toSupportedLocaleOrCustom(locale)).toBe(locale);
}
});
});

View File

@ -1,23 +1,51 @@
import type { Locale } from 'emojibase'; import type { CompactEmoji, Locale } from 'emojibase';
import { SUPPORTED_LOCALES } from 'emojibase'; import { flattenEmojiData, SUPPORTED_LOCALES } from 'emojibase';
export type LocaleOrCustom = Locale | 'custom'; // Simple cache. This will be replaced with an IndexedDB cache in the future.
const localeCache = new Map<Locale, Map<string, CompactEmoji>>();
export function toSupportedLocale(localeBase: string): Locale { export async function unicodeToLocaleLabel(
const locale = localeBase.toLowerCase(); unicodeHex: string,
localeString: string,
) {
const locale = toSupportedLocale(localeString);
let hexMap = localeCache.get(locale);
if (!hexMap) {
hexMap = await loadLocaleLabels(locale);
localeCache.set(locale, hexMap);
}
const label = hexMap.get(unicodeHex)?.label;
if (!label) {
throw new Error(
`Label for unicode hex ${unicodeHex} not found in locale ${locale}`,
);
}
return label;
}
async function loadLocaleLabels(
locale: Locale,
): Promise<Map<string, CompactEmoji>> {
const { default: localeEmoji } = ((await import(
`emojibase-data/${locale}/compact.json`
)) ?? { default: [] }) as { default: CompactEmoji[] };
if (!Array.isArray(localeEmoji)) {
throw new Error(`Locale data for ${locale} not found`);
}
const hexMapEntries = flattenEmojiData(localeEmoji).map(
(emoji) => [emoji.hexcode, emoji] satisfies [string, CompactEmoji],
);
return new Map(hexMapEntries);
}
export function toSupportedLocale(locale: string): Locale {
if (isSupportedLocale(locale)) { if (isSupportedLocale(locale)) {
return locale; return locale;
} }
return 'en'; // Default to English if unsupported return 'en'; // Default to English if unsupported
} }
export function toSupportedLocaleOrCustom(locale: string): LocaleOrCustom {
if (locale.toLowerCase() === 'custom') {
return 'custom';
}
return toSupportedLocale(locale);
}
function isSupportedLocale(locale: string): locale is Locale { function isSupportedLocale(locale: string): locale is Locale {
return SUPPORTED_LOCALES.includes(locale.toLowerCase() as Locale); return SUPPORTED_LOCALES.includes(locale as Locale);
} }

View File

@ -1,17 +1,9 @@
import { readdir } from 'fs/promises'; import { readdir } from 'fs/promises';
import { basename, resolve } from 'path'; import { basename, resolve } from 'path';
import { flattenEmojiData } from 'emojibase'; import unicodeEmojis from 'emojibase-data/en/data.json';
import unicodeRawEmojis from 'emojibase-data/en/data.json';
import { import { twemojiToUnicodeInfo, unicodeToTwemojiHex } from './normalize';
twemojiHasBorder,
twemojiToUnicodeInfo,
unicodeToTwemojiHex,
CODES_WITH_DARK_BORDER,
CODES_WITH_LIGHT_BORDER,
emojiToUnicodeHex,
} from './normalize';
const emojiSVGFiles = await readdir( const emojiSVGFiles = await readdir(
// This assumes tests are run from project root // This assumes tests are run from project root
@ -21,81 +13,60 @@ const emojiSVGFiles = await readdir(
}, },
); );
const svgFileNames = emojiSVGFiles const svgFileNames = emojiSVGFiles
.filter((file) => file.isFile() && file.name.endsWith('.svg')) .filter(
(file) =>
file.isFile() &&
file.name.endsWith('.svg') &&
!file.name.endsWith('_border.svg'),
)
.map((file) => basename(file.name, '.svg').toUpperCase()); .map((file) => basename(file.name, '.svg').toUpperCase());
const svgFileNamesWithoutBorder = svgFileNames.filter(
(fileName) => !fileName.endsWith('_BORDER'),
);
const unicodeEmojis = flattenEmojiData(unicodeRawEmojis); describe('normalizeEmoji', () => {
describe('unicodeToSVGName', () => {
describe('emojiToUnicodeHex', () => { test.concurrent.for(
test.concurrent.for([ unicodeEmojis
['🎱', '1F3B1'], // Our version of Twemoji only supports up to version 15.1
['🐜', '1F41C'], .filter((emoji) => emoji.version < 16)
['⚫', '26AB'], .map((emoji) => [emoji.hexcode, emoji.label] as [string, string]),
['🖤', '1F5A4'], )('verifying an emoji exists for %s (%s)', ([hexcode], { expect }) => {
['💀', '1F480'], const result = unicodeToTwemojiHex(hexcode);
['💂‍♂️', '1F482-200D-2642-FE0F'], expect(svgFileNames).toContain(result);
] as const)( });
'emojiToUnicodeHex converts %s to %s',
([emoji, hexcode], { expect }) => {
expect(emojiToUnicodeHex(emoji)).toBe(hexcode);
},
);
});
describe('unicodeToTwemojiHex', () => {
test.concurrent.for(
unicodeEmojis
// Our version of Twemoji only supports up to version 15.1
.filter((emoji) => emoji.version < 16)
.map((emoji) => [emoji.hexcode, emoji.label] as [string, string]),
)('verifying an emoji exists for %s (%s)', ([hexcode], { expect }) => {
const result = unicodeToTwemojiHex(hexcode);
expect(svgFileNamesWithoutBorder).toContain(result);
}); });
});
describe('twemojiHasBorder', () => { describe('twemojiToUnicodeInfo', () => {
test.concurrent.for( const unicodeMap = new Map(
svgFileNames unicodeEmojis.flatMap((emoji) => {
.filter((file) => file.endsWith('_BORDER')) const base: [string, string][] = [[emoji.hexcode, emoji.label]];
.map((file) => { if (emoji.skins) {
const hexCode = file.replace('_BORDER', ''); base.push(
return [ ...emoji.skins.map(
hexCode, (skin) => [skin.hexcode, skin.label] as [string, string],
CODES_WITH_LIGHT_BORDER.includes(hexCode), ),
CODES_WITH_DARK_BORDER.includes(hexCode), );
] as const; }
return base;
}), }),
)('twemojiHasBorder for %s', ([hexCode, isLight, isDark], { expect }) => { );
const result = twemojiHasBorder(hexCode);
expect(result).toHaveProperty('hexCode', hexCode); test.concurrent.for(svgFileNames)(
expect(result).toHaveProperty('hasLightBorder', isLight); 'verifying SVG file %s maps to Unicode emoji',
expect(result).toHaveProperty('hasDarkBorder', isDark); (svgFileName, { expect }) => {
assert(!!svgFileName);
const result = twemojiToUnicodeInfo(svgFileName);
const hexcode =
typeof result === 'string' ? result : result.unqualified;
if (!hexcode) {
// No hexcode means this is a special case like the Shibuya 109 emoji
expect(result).toHaveProperty('label');
return;
}
assert(!!hexcode);
expect(
unicodeMap.has(hexcode),
`${hexcode} (${svgFileName}) not found`,
).toBeTruthy();
},
);
}); });
}); });
describe('twemojiToUnicodeInfo', () => {
const unicodeCodeSet = new Set(unicodeEmojis.map((emoji) => emoji.hexcode));
test.concurrent.for(svgFileNamesWithoutBorder)(
'verifying SVG file %s maps to Unicode emoji',
(svgFileName, { expect }) => {
assert(!!svgFileName);
const result = twemojiToUnicodeInfo(svgFileName);
const hexcode = typeof result === 'string' ? result : result.unqualified;
if (!hexcode) {
// No hexcode means this is a special case like the Shibuya 109 emoji
expect(result).toHaveProperty('label');
return;
}
assert(!!hexcode);
expect(
unicodeCodeSet.has(hexcode),
`${hexcode} (${svgFileName}) not found`,
).toBeTruthy();
},
);
});

View File

@ -1,12 +1,19 @@
import { // Utility codes
VARIATION_SELECTOR_CODE, const VARIATION_SELECTOR_CODE = 0xfe0f;
KEYCAP_CODE, const KEYCAP_CODE = 0x20e3;
GENDER_FEMALE_CODE,
GENDER_MALE_CODE, // Gender codes
SKIN_TONE_CODES, const GENDER_FEMALE_CODE = 0x2640;
EMOJIS_WITH_DARK_BORDER, const GENDER_MALE_CODE = 0x2642;
EMOJIS_WITH_LIGHT_BORDER,
} from './constants'; // Skin tone codes
const SKIN_TONE_CODES = [
0x1f3fb, // Light skin tone
0x1f3fc, // Medium-light skin tone
0x1f3fd, // Medium skin tone
0x1f3fe, // Medium-dark skin tone
0x1f3ff, // Dark skin tone
] as const;
// Misc codes that have special handling // Misc codes that have special handling
const SKIER_CODE = 0x26f7; const SKIER_CODE = 0x26f7;
@ -17,17 +24,6 @@ const LEVITATING_PERSON_CODE = 0x1f574;
const SPEECH_BUBBLE_CODE = 0x1f5e8; const SPEECH_BUBBLE_CODE = 0x1f5e8;
const MS_CLAUS_CODE = 0x1f936; const MS_CLAUS_CODE = 0x1f936;
export function emojiToUnicodeHex(emoji: string): string {
const codes: number[] = [];
for (const char of emoji) {
const code = char.codePointAt(0);
if (code !== undefined) {
codes.push(code);
}
}
return hexNumbersToString(codes);
}
export function unicodeToTwemojiHex(unicodeHex: string): string { export function unicodeToTwemojiHex(unicodeHex: string): string {
const codes = hexStringToNumbers(unicodeHex); const codes = hexStringToNumbers(unicodeHex);
const normalizedCodes: number[] = []; const normalizedCodes: number[] = [];
@ -54,35 +50,6 @@ export function unicodeToTwemojiHex(unicodeHex: string): string {
return hexNumbersToString(normalizedCodes, 0); return hexNumbersToString(normalizedCodes, 0);
} }
interface TwemojiBorderInfo {
hexCode: string;
hasLightBorder: boolean;
hasDarkBorder: boolean;
}
export const CODES_WITH_DARK_BORDER =
EMOJIS_WITH_DARK_BORDER.map(emojiToUnicodeHex);
export const CODES_WITH_LIGHT_BORDER =
EMOJIS_WITH_LIGHT_BORDER.map(emojiToUnicodeHex);
export function twemojiHasBorder(twemojiHex: string): TwemojiBorderInfo {
const normalizedHex = twemojiHex.toUpperCase();
let hasLightBorder = false;
let hasDarkBorder = false;
if (CODES_WITH_LIGHT_BORDER.includes(normalizedHex)) {
hasLightBorder = true;
}
if (CODES_WITH_DARK_BORDER.includes(normalizedHex)) {
hasDarkBorder = true;
}
return {
hexCode: normalizedHex,
hasLightBorder,
hasDarkBorder,
};
}
interface TwemojiSpecificEmoji { interface TwemojiSpecificEmoji {
unqualified?: string; unqualified?: string;
gender?: number; gender?: number;
@ -117,16 +84,11 @@ export function twemojiToUnicodeInfo(
let gender: undefined | number; let gender: undefined | number;
let skin: undefined | number; let skin: undefined | number;
for (const code of codes) { for (const code of codes) {
if (!gender && code in GENDER_CODES_MAP) { if (code in GENDER_CODES_MAP) {
gender = GENDER_CODES_MAP[code]; gender = GENDER_CODES_MAP[code];
} else if (!skin && code in SKIN_TONE_CODES) { } else if (code in SKIN_TONE_CODES) {
skin = code; skin = code;
} }
// Exit if we have both skin and gender
if (skin && gender) {
break;
}
} }
let mappedCodes: unknown[] = codes; let mappedCodes: unknown[] = codes;
@ -141,8 +103,8 @@ export function twemojiToUnicodeInfo(
// For key emoji, insert the variation selector // For key emoji, insert the variation selector
mappedCodes = [codes[0], VARIATION_SELECTOR_CODE, KEYCAP_CODE]; mappedCodes = [codes[0], VARIATION_SELECTOR_CODE, KEYCAP_CODE];
} else if ( } else if (
(codes.at(0) === SKIER_CODE || codes.at(0) === LEVITATING_PERSON_CODE) && codes.at(0) === SKIER_CODE ||
codes.length > 1 codes.at(0) === LEVITATING_PERSON_CODE
) { ) {
// Twemoji offers more gender and skin options for the skier and levitating person emoji. // Twemoji offers more gender and skin options for the skier and levitating person emoji.
return { return {

View File

@ -1,13 +0,0 @@
import { importEmojiData, importCustomEmojiData } from './loader';
addEventListener('message', handleMessage);
self.postMessage('ready'); // After the worker is ready, notify the main thread
function handleMessage(event: MessageEvent<string>) {
const { data: locale } = event;
if (locale !== 'custom') {
void importEmojiData(locale);
} else {
void importCustomEmojiData();
}
}

View File

@ -50,22 +50,16 @@ export const MoreLink: React.FC = () => {
const menu = useMemo(() => { const menu = useMemo(() => {
const arr: MenuItem[] = [ const arr: MenuItem[] = [
{ text: intl.formatMessage(messages.filters), href: '/filters' },
{ text: intl.formatMessage(messages.mutes), to: '/mutes' },
{ text: intl.formatMessage(messages.blocks), to: '/blocks' },
{ {
href: '/filters',
text: intl.formatMessage(messages.filters),
},
{
to: '/mutes',
text: intl.formatMessage(messages.mutes),
},
{
to: '/blocks',
text: intl.formatMessage(messages.blocks),
},
{
to: '/domain_blocks',
text: intl.formatMessage(messages.domainBlocks), text: intl.formatMessage(messages.domainBlocks),
to: '/domain_blocks',
}, },
];
arr.push(
null, null,
{ {
href: '/settings/privacy', href: '/settings/privacy',
@ -83,7 +77,7 @@ export const MoreLink: React.FC = () => {
href: '/settings/export', href: '/settings/export',
text: intl.formatMessage(messages.importExport), text: intl.formatMessage(messages.importExport),
}, },
]; );
if (canManageReports(permissions)) { if (canManageReports(permissions)) {
arr.push(null, { arr.push(null, {
@ -112,7 +106,7 @@ export const MoreLink: React.FC = () => {
}, [intl, dispatch, permissions]); }, [intl, dispatch, permissions]);
return ( return (
<Dropdown items={menu} placement='bottom-start'> <Dropdown items={menu}>
<button className='column-link column-link--transparent'> <button className='column-link column-link--transparent'>
<Icon id='' icon={MoreHorizIcon} className='column-link__icon' /> <Icon id='' icon={MoreHorizIcon} className='column-link__icon' />

View File

@ -1,4 +1,4 @@
import { useCallback, useMemo } from 'react'; import { useCallback } from 'react';
import { defineMessages, useIntl } from 'react-intl'; import { defineMessages, useIntl } from 'react-intl';
@ -21,9 +21,6 @@ import { openModal } from 'mastodon/actions/modal';
import { IconButton } from 'mastodon/components/icon_button'; import { IconButton } from 'mastodon/components/icon_button';
import { useIdentity } from 'mastodon/identity_context'; import { useIdentity } from 'mastodon/identity_context';
import { me } from 'mastodon/initial_state'; import { me } from 'mastodon/initial_state';
import type { Status } from 'mastodon/models/status';
import { makeGetStatus } from 'mastodon/selectors';
import type { RootState } from 'mastodon/store';
import { useAppSelector, useAppDispatch } from 'mastodon/store'; import { useAppSelector, useAppDispatch } from 'mastodon/store';
const messages = defineMessages({ const messages = defineMessages({
@ -50,11 +47,6 @@ const messages = defineMessages({
open: { id: 'status.open', defaultMessage: 'Expand this status' }, open: { id: 'status.open', defaultMessage: 'Expand this status' },
}); });
type GetStatusSelector = (
state: RootState,
props: { id?: string | null; contextType?: string },
) => Status | null;
export const Footer: React.FC<{ export const Footer: React.FC<{
statusId: string; statusId: string;
withOpenButton?: boolean; withOpenButton?: boolean;
@ -64,8 +56,7 @@ export const Footer: React.FC<{
const intl = useIntl(); const intl = useIntl();
const history = useHistory(); const history = useHistory();
const dispatch = useAppDispatch(); const dispatch = useAppDispatch();
const getStatus = useMemo(() => makeGetStatus(), []) as GetStatusSelector; const status = useAppSelector((state) => state.statuses.get(statusId));
const status = useAppSelector((state) => getStatus(state, { id: statusId }));
const accountId = status?.get('account') as string | undefined; const accountId = status?.get('account') as string | undefined;
const account = useAppSelector((state) => const account = useAppSelector((state) =>
accountId ? state.accounts.get(accountId) : undefined, accountId ? state.accounts.get(accountId) : undefined,

View File

@ -8,14 +8,13 @@ import { openURL } from 'mastodon/actions/search';
import { useAppDispatch } from 'mastodon/store'; import { useAppDispatch } from 'mastodon/store';
const isMentionClick = (element: HTMLAnchorElement) => const isMentionClick = (element: HTMLAnchorElement) =>
element.classList.contains('mention') && element.classList.contains('mention');
!element.classList.contains('hashtag');
const isHashtagClick = (element: HTMLAnchorElement) => const isHashtagClick = (element: HTMLAnchorElement) =>
element.textContent?.[0] === '#' || element.textContent?.[0] === '#' ||
element.previousSibling?.textContent?.endsWith('#'); element.previousSibling?.textContent?.endsWith('#');
export const useLinks = (skipHashtags?: boolean) => { export const useLinks = () => {
const history = useHistory(); const history = useHistory();
const dispatch = useAppDispatch(); const dispatch = useAppDispatch();
@ -62,12 +61,12 @@ export const useLinks = (skipHashtags?: boolean) => {
if (isMentionClick(target)) { if (isMentionClick(target)) {
e.preventDefault(); e.preventDefault();
void handleMentionClick(target); void handleMentionClick(target);
} else if (isHashtagClick(target) && !skipHashtags) { } else if (isHashtagClick(target)) {
e.preventDefault(); e.preventDefault();
handleHashtagClick(target); handleHashtagClick(target);
} }
}, },
[skipHashtags, handleMentionClick, handleHashtagClick], [handleMentionClick, handleHashtagClick],
); );
return handleClick; return handleClick;

View File

@ -1,5 +1,6 @@
// @ts-check // @ts-check
/** /**
* @typedef {[code: string, name: string, localName: string]} InitialStateLanguage * @typedef {[code: string, name: string, localName: string]} InitialStateLanguage
*/ */
@ -63,7 +64,6 @@
* @property {boolean=} critical_updates_pending * @property {boolean=} critical_updates_pending
* @property {InitialStateMeta} meta * @property {InitialStateMeta} meta
* @property {Role?} role * @property {Role?} role
* @property {string[]} features
*/ */
const element = document.getElementById('initial-state'); const element = document.getElementById('initial-state');
@ -140,12 +140,4 @@ export function getAccessToken() {
return getMeta('access_token'); return getMeta('access_token');
} }
/**
* @param {string} feature
* @returns {boolean}
*/
export function isFeatureEnabled(feature) {
return initialState?.features?.includes(feature) || false;
}
export default initialState; export default initialState;

View File

@ -1,7 +1,7 @@
{ {
"about.blocks": "خوادم تحت الإشراف", "about.blocks": "خوادم تحت الإشراف",
"about.contact": "للاتصال:", "about.contact": "للاتصال:",
"about.default_locale": "افتراضيالافتراضية", "about.default_locale": "الافتراضية",
"about.disclaimer": "ماستدون برنامج حر ومفتوح المصدر وعلامة تجارية لـ Mastodon GmbH.", "about.disclaimer": "ماستدون برنامج حر ومفتوح المصدر وعلامة تجارية لـ Mastodon GmbH.",
"about.domain_blocks.no_reason_available": "السبب غير متوفر", "about.domain_blocks.no_reason_available": "السبب غير متوفر",
"about.domain_blocks.preamble": "يتيح مَستُدون عمومًا لمستخدميه مطالعة المحتوى من المستخدمين من الخواديم الأخرى في الفدرالية والتفاعل معهم. وهذه هي الاستثناءات التي وضعت على هذا الخادوم.", "about.domain_blocks.preamble": "يتيح مَستُدون عمومًا لمستخدميه مطالعة المحتوى من المستخدمين من الخواديم الأخرى في الفدرالية والتفاعل معهم. وهذه هي الاستثناءات التي وضعت على هذا الخادوم.",

View File

@ -1,7 +1,6 @@
{ {
"about.blocks": "Мадэраваныя серверы", "about.blocks": "Мадэраваныя серверы",
"about.contact": "Кантакт:", "about.contact": "Кантакт:",
"about.default_locale": "Прадвызначаная",
"about.disclaimer": "Mastodon - свабоднае праграмнае забеспячэнне, з адкрытым зыходным кодам, і гандлёвай маркай Mastodon gGmbH.", "about.disclaimer": "Mastodon - свабоднае праграмнае забеспячэнне, з адкрытым зыходным кодам, і гандлёвай маркай Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Прычына недаступная", "about.domain_blocks.no_reason_available": "Прычына недаступная",
"about.domain_blocks.preamble": "Mastodon, у асноўным, дазваляе вам праглядаць кантэнт і ўзаемадзейнічаць з карыстальнікамі з іншых сервераў у федэсвету. Гэтыя выключэнні былі зроблены дакладна на гэтым серверы.", "about.domain_blocks.preamble": "Mastodon, у асноўным, дазваляе вам праглядаць кантэнт і ўзаемадзейнічаць з карыстальнікамі з іншых сервераў у федэсвету. Гэтыя выключэнні былі зроблены дакладна на гэтым серверы.",
@ -9,7 +8,6 @@
"about.domain_blocks.silenced.title": "Абмежаваны", "about.domain_blocks.silenced.title": "Абмежаваны",
"about.domain_blocks.suspended.explanation": "Ніякая інфармацыя з гэтага сервера не будзе апрацавана, захавана або абменена, узаемадзеянне або камунікацыя з карыстальнікамі гэтага сервера немагчымы.", "about.domain_blocks.suspended.explanation": "Ніякая інфармацыя з гэтага сервера не будзе апрацавана, захавана або абменена, узаемадзеянне або камунікацыя з карыстальнікамі гэтага сервера немагчымы.",
"about.domain_blocks.suspended.title": "Прыпынены", "about.domain_blocks.suspended.title": "Прыпынены",
"about.language_label": "Мова",
"about.not_available": "Дадзеная інфармацыя не дасяжная на гэтым серверы.", "about.not_available": "Дадзеная інфармацыя не дасяжная на гэтым серверы.",
"about.powered_by": "Дэцэнтралізаваная сацыяльная сетка, створаная {mastodon}", "about.powered_by": "Дэцэнтралізаваная сацыяльная сетка, створаная {mastodon}",
"about.rules": "Правілы сервера", "about.rules": "Правілы сервера",
@ -21,21 +19,13 @@
"account.block_domain": "Заблакіраваць дамен {domain}", "account.block_domain": "Заблакіраваць дамен {domain}",
"account.block_short": "Заблакіраваць", "account.block_short": "Заблакіраваць",
"account.blocked": "Заблакіраваны", "account.blocked": "Заблакіраваны",
"account.blocking": "Блакіраванне",
"account.cancel_follow_request": "Скасаваць запыт на падпіску", "account.cancel_follow_request": "Скасаваць запыт на падпіску",
"account.copy": "Скапіраваць спасылку на профіль", "account.copy": "Скапіраваць спасылку на профіль",
"account.direct": "Згадаць асабіста @{name}", "account.direct": "Згадаць асабіста @{name}",
"account.disable_notifications": "Не паведамляць мне пра публікацыі @{name}", "account.disable_notifications": "Не паведамляць мне пра публікацыі @{name}",
"account.domain_blocking": "Блакіраванне дамена",
"account.edit_profile": "Рэдагаваць профіль", "account.edit_profile": "Рэдагаваць профіль",
"account.enable_notifications": "Апавяшчаць мяне пра допісы @{name}", "account.enable_notifications": "Апавяшчаць мяне пра допісы @{name}",
"account.endorse": "Паказваць у профілі", "account.endorse": "Паказваць у профілі",
"account.familiar_followers_many": "Мае сярод падпісчыкаў {name1}, {name2}, і {othersCount, plural, one {яшчэ # чалавека, знаёмага вам} few {яшчэ # чалавекі, знаёмыя вам} many {яшчэ # чалавек, знаёмых вам} other {яшчэ # чалавекі, знаёмыя вам}}",
"account.familiar_followers_one": "Мае сярод падпісчыкаў {name1}",
"account.familiar_followers_two": "Мае сярод падпісчыкаў {name1} і {name2}",
"account.featured": "Рэкамендаванае",
"account.featured.accounts": "Профілі",
"account.featured.hashtags": "Хэштэгі",
"account.featured_tags.last_status_at": "Апошні допіс ад {date}", "account.featured_tags.last_status_at": "Апошні допіс ад {date}",
"account.featured_tags.last_status_never": "Няма допісаў", "account.featured_tags.last_status_never": "Няма допісаў",
"account.follow": "Падпісацца", "account.follow": "Падпісацца",
@ -43,11 +33,9 @@
"account.followers": "Падпісчыкі", "account.followers": "Падпісчыкі",
"account.followers.empty": "Ніхто пакуль не падпісаны на гэтага карыстальніка.", "account.followers.empty": "Ніхто пакуль не падпісаны на гэтага карыстальніка.",
"account.followers_counter": "{count, plural, one {{counter} падпісчык} few {{counter} падпісчыкі} many {{counter} падпісчыкаў} other {{counter} падпісчыка}}", "account.followers_counter": "{count, plural, one {{counter} падпісчык} few {{counter} падпісчыкі} many {{counter} падпісчыкаў} other {{counter} падпісчыка}}",
"account.followers_you_know_counter": "{count, one {{counter}, знаёмы вам} other {{counter}, знаёмых вам}}",
"account.following": "Падпіскі", "account.following": "Падпіскі",
"account.following_counter": "{count, plural, one {{counter} падпіска} few {{counter} падпіскі} many {{counter} падпісак} other {{counter} падпіскі}}", "account.following_counter": "{count, plural, one {{counter} падпіска} few {{counter} падпіскі} many {{counter} падпісак} other {{counter} падпіскі}}",
"account.follows.empty": "Карыстальнік ні на каго не падпісаны.", "account.follows.empty": "Карыстальнік ні на каго не падпісаны.",
"account.follows_you": "Падпісаны на вас",
"account.go_to_profile": "Перайсці да профілю", "account.go_to_profile": "Перайсці да профілю",
"account.hide_reblogs": "Схаваць пашырэнні ад @{name}", "account.hide_reblogs": "Схаваць пашырэнні ад @{name}",
"account.in_memoriam": "У памяць.", "account.in_memoriam": "У памяць.",
@ -62,22 +50,18 @@
"account.mute_notifications_short": "Не апавяшчаць", "account.mute_notifications_short": "Не апавяшчаць",
"account.mute_short": "Ігнараваць", "account.mute_short": "Ігнараваць",
"account.muted": "Ігнаруецца", "account.muted": "Ігнаруецца",
"account.mutual": "Вы падпісаны адно на аднаго",
"account.no_bio": "Апісанне адсутнічае.", "account.no_bio": "Апісанне адсутнічае.",
"account.open_original_page": "Адкрыць арыгінальную старонку", "account.open_original_page": "Адкрыць арыгінальную старонку",
"account.posts": "Допісы", "account.posts": "Допісы",
"account.posts_with_replies": "Допісы і адказы", "account.posts_with_replies": "Допісы і адказы",
"account.remove_from_followers": "Выдаліць карыстальніка {name} з падпісчыкаў",
"account.report": "Паскардзіцца на @{name}", "account.report": "Паскардзіцца на @{name}",
"account.requested": "Чакаецца ўхваленне. Націсніце, каб скасаваць запыт на падпіску", "account.requested": "Чакаецца ўхваленне. Націсніце, каб скасаваць запыт на падпіску",
"account.requested_follow": "{name} адправіў запыт на падпіску", "account.requested_follow": "{name} адправіў запыт на падпіску",
"account.requests_to_follow_you": "Хоча падпісацца на вас",
"account.share": "Абагуліць профіль @{name}", "account.share": "Абагуліць профіль @{name}",
"account.show_reblogs": "Паказаць падштурхоўванні ад @{name}", "account.show_reblogs": "Паказаць падштурхоўванні ад @{name}",
"account.statuses_counter": "{count, plural, one {{counter} допіс} few {{counter} допісы} many {{counter} допісаў} other {{counter} допісу}}", "account.statuses_counter": "{count, plural, one {{counter} допіс} few {{counter} допісы} many {{counter} допісаў} other {{counter} допісу}}",
"account.unblock": "Разблакіраваць @{name}", "account.unblock": "Разблакіраваць @{name}",
"account.unblock_domain": "Разблакіраваць дамен {domain}", "account.unblock_domain": "Разблакіраваць дамен {domain}",
"account.unblock_domain_short": "Разблакіраваць",
"account.unblock_short": "Разблакіраваць", "account.unblock_short": "Разблакіраваць",
"account.unendorse": "Не паказваць у профілі", "account.unendorse": "Не паказваць у профілі",
"account.unfollow": "Адпісацца", "account.unfollow": "Адпісацца",
@ -99,30 +83,26 @@
"alert.unexpected.message": "Узнікла нечаканая памылка.", "alert.unexpected.message": "Узнікла нечаканая памылка.",
"alert.unexpected.title": "Вой!", "alert.unexpected.title": "Вой!",
"alt_text_badge.title": "Альтэрнатыўны тэкст", "alt_text_badge.title": "Альтэрнатыўны тэкст",
"alt_text_modal.add_alt_text": "Дадаць альтэрнатыўны тэкст",
"alt_text_modal.add_text_from_image": "Дадаць тэкст з відарыса",
"alt_text_modal.cancel": "Скасаваць",
"alt_text_modal.change_thumbnail": "Змяніць мініяцюру",
"alt_text_modal.done": "Гатова", "alt_text_modal.done": "Гатова",
"announcement.announcement": "Аб'ява", "announcement.announcement": "Аб'ява",
"annual_report.summary.archetype.booster": "Паляўнічы на трэнды", "annual_report.summary.archetype.booster": "Трэнда-сьледнік",
"annual_report.summary.archetype.lurker": "Назіральнік", "annual_report.summary.archetype.lurker": "Назіральнік",
"annual_report.summary.archetype.oracle": "Аракул", "annual_report.summary.archetype.oracle": "Аракул",
"annual_report.summary.archetype.pollster": "Апытвальнік", "annual_report.summary.archetype.pollster": "Апытвальнік",
"annual_report.summary.archetype.replier": "Душа кампаніі", "annual_report.summary.archetype.replier": "Душа кампанійі",
"annual_report.summary.followers.followers": "падпісчыкі", "annual_report.summary.followers.followers": "падпісанты",
"annual_report.summary.followers.total": "Агулам {count}", "annual_report.summary.followers.total": "Усяго {count}",
"annual_report.summary.here_it_is": "Вось вашы вынікі {year} за год:", "annual_report.summary.here_it_is": "Вось вашыя вынікі {year} году:",
"annual_report.summary.highlighted_post.by_favourites": "самы ўпадабаны допіс", "annual_report.summary.highlighted_post.by_favourites": "самы ўпадабаны допіс",
"annual_report.summary.highlighted_post.by_reblogs": "самы пашыраны допіс", "annual_report.summary.highlighted_post.by_reblogs": "самы пашыраны допіс",
"annual_report.summary.highlighted_post.by_replies": "самы каментаваны допіс", "annual_report.summary.highlighted_post.by_replies": "самы каментаваны допіс",
"annual_report.summary.highlighted_post.possessive": "{name}", "annual_report.summary.highlighted_post.possessive": "{name}",
"annual_report.summary.most_used_app.most_used_app": "праграма, якой карысталіся часцей", "annual_report.summary.most_used_app.most_used_app": "самая выкарыстоўваная аплікацыя",
"annual_report.summary.most_used_hashtag.most_used_hashtag": "хэштэг, якім карысталіся часцей", "annual_report.summary.most_used_hashtag.most_used_hashtag": "самы выкарыстоўваны гэштаґ",
"annual_report.summary.most_used_hashtag.none": "Няма", "annual_report.summary.most_used_hashtag.none": "Няма",
"annual_report.summary.new_posts.new_posts": "новыя допісы", "annual_report.summary.new_posts.new_posts": "новыя допісы",
"annual_report.summary.percentile.text": "<topLabel>З-за гэтага, вы знаходзіцеся ў топе</topLabel><percentage></percentage><bottomLabel> карыстальнікаў {domain}.</bottomLabel>", "annual_report.summary.percentile.text": "<topLabel>Мэта месьціць вас у топ</topLabel><percentage></percentage><bottomLabel> карыстальнікаў {domain}.</bottomLabel>",
"annual_report.summary.percentile.we_wont_tell_bernie": "КДБ пра гэта не даведаецца.", "annual_report.summary.percentile.we_wont_tell_bernie": "Мы ня скажам аб гэтым Сіняпальцаму.",
"annual_report.summary.thanks": "Дзякуй за ўдзел у Mastodon!", "annual_report.summary.thanks": "Дзякуй за ўдзел у Mastodon!",
"attachments_list.unprocessed": "(неапрацаваны)", "attachments_list.unprocessed": "(неапрацаваны)",
"audio.hide": "Схаваць аўдыя", "audio.hide": "Схаваць аўдыя",
@ -147,7 +127,7 @@
"bundle_column_error.routing.body": "Запытаная старонка не знойдзена. Вы ўпэўнены, што URL у адрасным радку правільны?", "bundle_column_error.routing.body": "Запытаная старонка не знойдзена. Вы ўпэўнены, што URL у адрасным радку правільны?",
"bundle_column_error.routing.title": "404", "bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "Закрыць", "bundle_modal_error.close": "Закрыць",
"bundle_modal_error.message": "Падчас загрузкі гэтага экрана штосьці пайшло не так.", "bundle_modal_error.message": "Падчас загрузкі гэтага экрана штосьці пайшло ня так.",
"bundle_modal_error.retry": "Паспрабуйце зноў", "bundle_modal_error.retry": "Паспрабуйце зноў",
"closed_registrations.other_server_instructions": "Паколькі Mastodon дэцэнтралізаваны, вы можаце стварыць уліковы запіс на іншым серверы і працягваць узаемадзейнічаць з ім.", "closed_registrations.other_server_instructions": "Паколькі Mastodon дэцэнтралізаваны, вы можаце стварыць уліковы запіс на іншым серверы і працягваць узаемадзейнічаць з ім.",
"closed_registrations_modal.description": "Стварэнне ўліковага запісу на {domain} цяпер немагчыма. Заўважце, што няма неабходнасці мець уліковы запіс менавіта на {domain}, каб выкарыстоўваць Mastodon.", "closed_registrations_modal.description": "Стварэнне ўліковага запісу на {domain} цяпер немагчыма. Заўважце, што няма неабходнасці мець уліковы запіс менавіта на {domain}, каб выкарыстоўваць Mastodon.",
@ -167,7 +147,7 @@
"column.firehose": "Стужкі", "column.firehose": "Стужкі",
"column.follow_requests": "Запыты на падпіску", "column.follow_requests": "Запыты на падпіску",
"column.home": "Галоўная", "column.home": "Галоўная",
"column.list_members": "Кіраванне ўдзельнікамі спіса", "column.list_members": "Кіраванне ўдзельнікамі спісу",
"column.lists": "Спісы", "column.lists": "Спісы",
"column.mutes": "Ігнараваныя карыстальнікі", "column.mutes": "Ігнараваныя карыстальнікі",
"column.notifications": "Апавяшчэнні", "column.notifications": "Апавяшчэнні",
@ -216,24 +196,19 @@
"confirmations.delete_list.confirm": "Выдаліць", "confirmations.delete_list.confirm": "Выдаліць",
"confirmations.delete_list.message": "Вы ўпэўненыя, што хочаце беззваротна выдаліць гэты чарнавік?", "confirmations.delete_list.message": "Вы ўпэўненыя, што хочаце беззваротна выдаліць гэты чарнавік?",
"confirmations.delete_list.title": "Выдаліць спіс?", "confirmations.delete_list.title": "Выдаліць спіс?",
"confirmations.discard_draft.edit.cancel": "Працягнуць рэдагаванне",
"confirmations.discard_edit_media.confirm": "Адмяніць", "confirmations.discard_edit_media.confirm": "Адмяніць",
"confirmations.discard_edit_media.message": "У вас ёсць незахаваныя змены ў апісанні або прэв'ю, усе роўна скасаваць іх?", "confirmations.discard_edit_media.message": "У вас ёсць незахаваныя змены ў апісанні або прэв'ю, усе роўна скасаваць іх?",
"confirmations.follow_to_list.confirm": "Падпісацца і дадаць у спіс", "confirmations.follow_to_list.confirm": "Падпісацца й дадаць у сьпіс",
"confirmations.follow_to_list.message": "Вам трэба падпісацца на карыстальніка {name}, каб дадаць яго ў спіс.", "confirmations.follow_to_list.message": "Вы мусіце быць падпісаныя на {name} каб дадаць яго ў сьпіс.",
"confirmations.follow_to_list.title": "Падпісацца на карыстальніка?", "confirmations.follow_to_list.title": "Падпісацца на карыстальніка?",
"confirmations.logout.confirm": "Выйсці", "confirmations.logout.confirm": "Выйсці",
"confirmations.logout.message": "Вы ўпэўненыя, што хочаце выйсці?", "confirmations.logout.message": "Вы ўпэўненыя, што хочаце выйсці?",
"confirmations.logout.title": "Выйсці?", "confirmations.logout.title": "Выйсці?",
"confirmations.missing_alt_text.confirm": "Дадаць альтэрнатыўны тэкст", "confirmations.missing_alt_text.title": "Дадаць апісаньне?",
"confirmations.missing_alt_text.secondary": "Усё адно апублікаваць",
"confirmations.missing_alt_text.title": "Дадаць альтэрнатыўны тэкст?",
"confirmations.mute.confirm": "Ігнараваць", "confirmations.mute.confirm": "Ігнараваць",
"confirmations.redraft.confirm": "Выдаліць і перапісаць", "confirmations.redraft.confirm": "Выдаліць і перапісаць",
"confirmations.redraft.message": "Вы ўпэўнены, што хочаце выдаліць допіс і перапісаць яго? Упадабанні і пашырэнні згубяцца, а адказы да арыгінальнага допісу асірацеюць.", "confirmations.redraft.message": "Вы ўпэўнены, што хочаце выдаліць допіс і перапісаць яго? Упадабанні і пашырэнні згубяцца, а адказы да арыгінальнага допісу асірацеюць.",
"confirmations.redraft.title": "Выдаліць і перапісаць допіс?", "confirmations.redraft.title": "Выдаліць і перапісаць допіс?",
"confirmations.remove_from_followers.confirm": "Выдаліць падпісчыка",
"confirmations.remove_from_followers.title": "Выдаліць падпісчыка?",
"confirmations.unfollow.confirm": "Адпісацца", "confirmations.unfollow.confirm": "Адпісацца",
"confirmations.unfollow.message": "Вы ўпэўненыя, што хочаце адпісацца ад {name}?", "confirmations.unfollow.message": "Вы ўпэўненыя, што хочаце адпісацца ад {name}?",
"confirmations.unfollow.title": "Адпісацца ад карыстальніка?", "confirmations.unfollow.title": "Адпісацца ад карыстальніка?",
@ -246,7 +221,7 @@
"conversation.with": "З {names}", "conversation.with": "З {names}",
"copy_icon_button.copied": "Скапіявана ў буфер абмену", "copy_icon_button.copied": "Скапіявана ў буфер абмену",
"copypaste.copied": "Скапіравана", "copypaste.copied": "Скапіравана",
"copypaste.copy_to_clipboard": "Скапіяваць у буфер абмену", "copypaste.copy_to_clipboard": "Капіраваць у буфер абмену",
"directory.federated": "З вядомага федэсвету", "directory.federated": "З вядомага федэсвету",
"directory.local": "Толькі з {domain}", "directory.local": "Толькі з {domain}",
"directory.new_arrivals": "Новыя карыстальнікі", "directory.new_arrivals": "Новыя карыстальнікі",
@ -255,7 +230,7 @@
"disabled_account_banner.text": "Ваш уліковы запіс {disabledAccount} часова адключаны.", "disabled_account_banner.text": "Ваш уліковы запіс {disabledAccount} часова адключаны.",
"dismissable_banner.community_timeline": "Гэта самыя апошнія допісы ад людзей, уліковыя запісы якіх размяшчаюцца на {domain}.", "dismissable_banner.community_timeline": "Гэта самыя апошнія допісы ад людзей, уліковыя запісы якіх размяшчаюцца на {domain}.",
"dismissable_banner.dismiss": "Адхіліць", "dismissable_banner.dismiss": "Адхіліць",
"dismissable_banner.public_timeline": "Вось апошнія публічныя допісы ад карыстальнікаў fediverse на якіх падпісаны карыстальнікі {domain}.", "dismissable_banner.public_timeline": "Гэта самыя новыя публічныя допісы ад карыстальнікаў фэдывёрсу на якіх падпісаныя карыстальнікі {domain}.",
"domain_block_modal.block": "Заблакіраваць сервер", "domain_block_modal.block": "Заблакіраваць сервер",
"domain_block_modal.block_account_instead": "Заблакіраваць @{name} замест гэтага", "domain_block_modal.block_account_instead": "Заблакіраваць @{name} замест гэтага",
"domain_block_modal.they_can_interact_with_old_posts": "Людзі з гэтага сервера змогуць узаемадзейнічаць з вашымі старымі допісамі.", "domain_block_modal.they_can_interact_with_old_posts": "Людзі з гэтага сервера змогуць узаемадзейнічаць з вашымі старымі допісамі.",
@ -300,15 +275,15 @@
"empty_column.account_timeline": "Тут няма допісаў!", "empty_column.account_timeline": "Тут няма допісаў!",
"empty_column.account_unavailable": "Профіль недаступны", "empty_column.account_unavailable": "Профіль недаступны",
"empty_column.blocks": "Вы яшчэ нікога не заблакіравалі.", "empty_column.blocks": "Вы яшчэ нікога не заблакіравалі.",
"empty_column.bookmarked_statuses": "У вашых закладках яшчэ няма допісаў. Калі вы дадасце закладку, яна з’явіцца тут.", "empty_column.bookmarked_statuses": "У вас яшчэ няма паведамленняў з закладкамі. Калі вы дадасце закладку, яна з'явіцца тут.",
"empty_column.community": "Мясцовая стужка пустая. Напішыце нешта публічнае, каб разварушыць справу!", "empty_column.community": "Мясцовая стужка пустая. Напішыце што-небудзь публічна, каб зрушыць з месца!",
"empty_column.direct": "Пакуль у вас няма асабістых згадванняў. Калі вы дашляце або атрымаеце штосьці, яно з’явіцца тут.", "empty_column.direct": "Пакуль у вас няма асабістых згадак. Калі вы дашляце або атрымаеце штось, яно з'явіцца тут.",
"empty_column.domain_blocks": "Заблакіраваных даменаў пакуль няма.", "empty_column.domain_blocks": "Заблакіраваных даменаў пакуль няма.",
"empty_column.explore_statuses": "Зараз не ў трэндзе. Праверце пазней", "empty_column.explore_statuses": "Зараз не ў трэндзе. Праверце пазней",
"empty_column.favourited_statuses": "Вы яшчэ не ўпадабалі ніводны допіс. Калі гэта адбудзецца, вы ўбачыце яго тут.", "empty_column.favourited_statuses": "Вы яшчэ не ўпадабалі ніводны допіс. Калі гэта адбудзецца, вы ўбачыце яго тут.",
"empty_column.favourites": "Ніхто яшчэ не ўпадабаў гэты допіс. Калі гэта адбудзецца, вы ўбачыце гэтых людзей тут.", "empty_column.favourites": "Ніхто яшчэ не ўпадабаў гэты допіс. Калі гэта адбудзецца, вы ўбачыце гэтых людзей тут.",
"empty_column.follow_requests": "У вас яшчэ няма запытаў на падпіску. Калі вы атрымаеце запыт, ён з’явіцца тут.", "empty_column.follow_requests": "У вас яшчэ няма запытаў на падпіскуі. Калі вы атрымаеце запыт, ён з'явяцца тут.",
"empty_column.followed_tags": "Вы пакуль не падпісаны ні на адзін хэштэг. Калі падпішацеся, яны зявяцца тут.", "empty_column.followed_tags": "Вы пакуль не падпісаны ні на адзін хэштэг. Калі падпішацеся, яны з'явяцца тут.",
"empty_column.hashtag": "Па гэтаму хэштэгу пакуль што нічога няма.", "empty_column.hashtag": "Па гэтаму хэштэгу пакуль што нічога няма.",
"empty_column.home": "Галоўная стужка пустая! Падпішыцеся на іншых людзей, каб запоўніць яе. {suggestions}", "empty_column.home": "Галоўная стужка пустая! Падпішыцеся на іншых людзей, каб запоўніць яе. {suggestions}",
"empty_column.list": "У гэтым спісе пакуль што нічога няма. Калі члены лісту апублікуюць новыя запісы, яны з'явяцца тут.", "empty_column.list": "У гэтым спісе пакуль што нічога няма. Калі члены лісту апублікуюць новыя запісы, яны з'явяцца тут.",
@ -319,18 +294,13 @@
"error.unexpected_crash.explanation": "Гэта старонка не можа быць адлюстравана карэктна з-за памылкі ў нашым кодзе, або праблемы з сумяшчальнасцю браўзера.", "error.unexpected_crash.explanation": "Гэта старонка не можа быць адлюстравана карэктна з-за памылкі ў нашым кодзе, або праблемы з сумяшчальнасцю браўзера.",
"error.unexpected_crash.explanation_addons": "Гэтая старонка не можа быць адлюстравана карэктна. Верагодна, гэтая памылка выклікана дадатковым кампанентам браўзера або інструментамі аўтаматычнага перакладу", "error.unexpected_crash.explanation_addons": "Гэтая старонка не можа быць адлюстравана карэктна. Верагодна, гэтая памылка выклікана дадатковым кампанентам браўзера або інструментамі аўтаматычнага перакладу",
"error.unexpected_crash.next_steps": "Паспрабуйце абнавіць старонку. Калі гэта не дапаможа, вы можаце паспрабаваць іншы браўзер, альбо выкарыстаць усталяваную праграму.", "error.unexpected_crash.next_steps": "Паспрабуйце абнавіць старонку. Калі гэта не дапаможа, вы можаце паспрабаваць іншы браўзер, альбо выкарыстаць усталяваную праграму.",
"error.unexpected_crash.next_steps_addons": "Паспрабуйце выключыць іх і абнавіць старонку. Калі гэта не дапамагае, вы ўсё яшчэ можаце карыстацца Mastodon праз іншы браўзер ці натыўную праграму.", "error.unexpected_crash.next_steps_addons": "Паспрабуйце выключыць іх і аднавіць старонку. Калі гэта не дапаможа, вы можаце карыстацца Мастадонт праз другі браўзер ці аплікацыю.",
"errors.unexpected_crash.copy_stacktrace": "Дадаць дыягнастычны стэк у буфер абмену", "errors.unexpected_crash.copy_stacktrace": "Дадаць дыягнастычны стэк у буфер абмену",
"errors.unexpected_crash.report_issue": "Паведаміць аб праблеме", "errors.unexpected_crash.report_issue": "Паведаміць аб праблеме",
"explore.suggested_follows": "Людзі", "explore.suggested_follows": "Людзі",
"explore.title": "Трэндавае",
"explore.trending_links": "Навіны", "explore.trending_links": "Навіны",
"explore.trending_statuses": "Допісы", "explore.trending_statuses": "Допісы",
"explore.trending_tags": "Хэштэгі", "explore.trending_tags": "Хэштэгі",
"featured_carousel.next": "Далей",
"featured_carousel.post": "Допіс",
"featured_carousel.previous": "Назад",
"featured_carousel.slide": "{index} з {total}",
"filter_modal.added.context_mismatch_explanation": "Гэтая катэгорыя фільтра не прымяняецца да кантэксту, у якім вы адкрылі гэты пост. Калі вы хочаце, каб паведамленне таксама было адфільтравана ў гэтым кантэксце, вам трэба будзе адрэдагаваць фільтр", "filter_modal.added.context_mismatch_explanation": "Гэтая катэгорыя фільтра не прымяняецца да кантэксту, у якім вы адкрылі гэты пост. Калі вы хочаце, каб паведамленне таксама было адфільтравана ў гэтым кантэксце, вам трэба будзе адрэдагаваць фільтр",
"filter_modal.added.context_mismatch_title": "Неадпаведны кантэкст!", "filter_modal.added.context_mismatch_title": "Неадпаведны кантэкст!",
"filter_modal.added.expired_explanation": "Тэрмін дзеяння гэтай катэгорыі фільтраў скончыўся, вам трэба будзе змяніць дату заканчэння тэрміну дзеяння, каб яна прымянялася", "filter_modal.added.expired_explanation": "Тэрмін дзеяння гэтай катэгорыі фільтраў скончыўся, вам трэба будзе змяніць дату заканчэння тэрміну дзеяння, каб яна прымянялася",
@ -379,10 +349,10 @@
"footer.privacy_policy": "Палітыка прыватнасці", "footer.privacy_policy": "Палітыка прыватнасці",
"footer.source_code": "Прагледзець зыходны код", "footer.source_code": "Прагледзець зыходны код",
"footer.status": "Статус", "footer.status": "Статус",
"footer.terms_of_service": "Умовы выкарыстання", "footer.terms_of_service": "Умовы абслугоўваньня",
"generic.saved": "Захавана", "generic.saved": "Захавана",
"getting_started.heading": "Пачатак працы", "getting_started.heading": "Пачатак працы",
"hashtag.admin_moderation": "Адкрыць інтэрфейс мадэратара для #{name}", "hashtag.admin_moderation": "Адкрыць інтэрфэйс мадаратара для #{name}",
"hashtag.column_header.tag_mode.all": "і {additional}", "hashtag.column_header.tag_mode.all": "і {additional}",
"hashtag.column_header.tag_mode.any": "або {additional}", "hashtag.column_header.tag_mode.any": "або {additional}",
"hashtag.column_header.tag_mode.none": "без {additional}", "hashtag.column_header.tag_mode.none": "без {additional}",
@ -404,39 +374,35 @@
"hints.profiles.see_more_followers": "Глядзець больш падпісаных на {domain}", "hints.profiles.see_more_followers": "Глядзець больш падпісаных на {domain}",
"hints.profiles.see_more_follows": "Глядзець больш падпісак на {domain}", "hints.profiles.see_more_follows": "Глядзець больш падпісак на {domain}",
"hints.profiles.see_more_posts": "Глядзець больш допісаў на {domain}", "hints.profiles.see_more_posts": "Глядзець больш допісаў на {domain}",
"hints.threads.replies_may_be_missing": "Адказы з іншых сервераў могуць адсутнічаць.", "hints.threads.replies_may_be_missing": "Адказы зь іншых сэрвэраў могуць адсутнічаць.",
"hints.threads.see_more": "Глядзіце больш адказаў на {domain}", "hints.threads.see_more": "Глядзіце больш адказаў на {domain}",
"home.column_settings.show_quotes": "Паказаць цытаты",
"home.column_settings.show_reblogs": "Паказваць пашырэнні", "home.column_settings.show_reblogs": "Паказваць пашырэнні",
"home.column_settings.show_replies": "Паказваць адказы", "home.column_settings.show_replies": "Паказваць адказы",
"home.hide_announcements": "Схаваць аб'явы", "home.hide_announcements": "Схаваць аб'явы",
"home.pending_critical_update.body": "Абнавіце свой сервер Mastodon як мага хутчэй!", "home.pending_critical_update.body": "Калі ласка, абнавіце свой сервер Mastodon як мага хутчэй!",
"home.pending_critical_update.link": "Прагледзець абнаўленні", "home.pending_critical_update.link": "Прагледзець абнаўленні",
"home.pending_critical_update.title": "Даступна крытычнае абнаўленне бяспекі!", "home.pending_critical_update.title": "Даступна крытычнае абнаўленне бяспекі!",
"home.show_announcements": "Паказаць аб'явы", "home.show_announcements": "Паказаць аб'явы",
"ignore_notifications_modal.disclaimer": "Mastodon не можа паведамляць карыстальнікам, што вы праігнаравалі апавяшчэнні ад іх. Ігнараванне апавяшчэнняў не спыніць адпраўку саміх паведамленняў.", "ignore_notifications_modal.disclaimer": "Mastodon ня можа йнфармаваць карыстальнікаў аб тым, што вы прайігнаравалі йх паведамленьні. Ігнараваньне паведамленьняў не спыніць іх адпраўку.",
"ignore_notifications_modal.filter_instead": "Замест гэтага адфільтраваць", "ignore_notifications_modal.filter_instead": "Замест гэтага адфільтраваць",
"ignore_notifications_modal.filter_to_act_users": "Вы па-ранейшаму зможаце прымаць, адхіляць ці скардзіцца на карыстальнікаў", "ignore_notifications_modal.filter_to_act_users": "Вы па-ранейшаму зможаце прымаць, адхіляць ці скардзіцца на карыстальнікаў",
"ignore_notifications_modal.filter_to_avoid_confusion": "Выкарыстанне фільтраў дапамагае пазбягаць патэнцыйнай блытаніны", "ignore_notifications_modal.filter_to_avoid_confusion": "Фільтраваньне дапамагае пазьбегнуць патэнцыйнай блытаніны",
"ignore_notifications_modal.filter_to_review_separately": "Вы можаце прагледзець адфільтраваныя апавяшчэнні асобна", "ignore_notifications_modal.filter_to_review_separately": "Вы можаце прагледзець адфільтраваныя паведамленьні асобна",
"ignore_notifications_modal.ignore": "Ігнараваць апавяшчэнні", "ignore_notifications_modal.ignore": "Ігнараваць паведамленьні",
"ignore_notifications_modal.limited_accounts_title": "Ігнараваць апавяшчэнні ад уліковых запісаў пад мадэрацыяй?", "ignore_notifications_modal.limited_accounts_title": "Ігнараваць паведамленьні ад абмежаваных уліковых запісаў?",
"ignore_notifications_modal.new_accounts_title": "Ігнараваць апавяшчэнні ад новых уліковых запісаў?", "ignore_notifications_modal.new_accounts_title": "Ігнараваць паведамленьні ад новых уліковых запісаў?",
"ignore_notifications_modal.not_followers_title": "Ігнараваць апавяшчэнні ад людзей, якія не падпісаныя на вас?", "ignore_notifications_modal.not_followers_title": "Ігнараваць паведамленьні ад людзей, якія ня падпісаныя на вас?",
"ignore_notifications_modal.not_following_title": "Ігнараваць апавяшчэнні ад людзей на якіх вы не падпісаны?", "ignore_notifications_modal.not_following_title": "Ігнараваць апавяшчэнні ад людзей на якіх вы не падпісаны?",
"ignore_notifications_modal.private_mentions_title": "Ігнараваць апавяшчэнні пра непажаданыя асабістыя згадванні?", "ignore_notifications_modal.private_mentions_title": "Ігнараваць паведамленьні аб непажаданых прыватных згадках?",
"info_button.label": "Даведка", "info_button.label": "Даведка",
"interaction_modal.action.favourite": "Каб працягнуць, вы мусіце ўпадабаць нешта са свайго ўліковага запісу.", "interaction_modal.action.favourite": "Каб працягнуць, вы мусіце ўпадабаць з вашага ўліковага запісу.",
"interaction_modal.action.follow": "Каб працягнуць, вы мусіце падпісацца на некага са свайго ўліковага запісу.", "interaction_modal.action.follow": "Каб працягнуць, вы мусіце падпісацца з вашага ўліковага запісу.",
"interaction_modal.go": "Перайсці",
"interaction_modal.no_account_yet": "Не маеце ўліковага запісу?",
"interaction_modal.on_another_server": "На іншым серверы", "interaction_modal.on_another_server": "На іншым серверы",
"interaction_modal.on_this_server": "На гэтым серверы", "interaction_modal.on_this_server": "На гэтым серверы",
"interaction_modal.title.favourite": "Упадабаць допіс {name}", "interaction_modal.title.favourite": "Упадабаць допіс {name}",
"interaction_modal.title.follow": "Падпісацца на {name}", "interaction_modal.title.follow": "Падпісацца на {name}",
"interaction_modal.title.reblog": "Пашырыць допіс ад {name}", "interaction_modal.title.reblog": "Пашырыць допіс ад {name}",
"interaction_modal.title.reply": "Адказаць на допіс {name}", "interaction_modal.title.reply": "Адказаць на допіс {name}",
"interaction_modal.username_prompt": "Напр., {example}",
"intervals.full.days": "{number, plural, one {# дзень} few {# дні} many {# дзён} other {# дня}}", "intervals.full.days": "{number, plural, one {# дзень} few {# дні} many {# дзён} other {# дня}}",
"intervals.full.hours": "{number, plural, one {# гадзіна} few {# гадзіны} many {# гадзін} other {# гадзіны}}", "intervals.full.hours": "{number, plural, one {# гадзіна} few {# гадзіны} many {# гадзін} other {# гадзіны}}",
"intervals.full.minutes": "{number, plural, one {# хвіліна} few {# хвіліны} many {# хвілін} other {# хвіліны}}", "intervals.full.minutes": "{number, plural, one {# хвіліна} few {# хвіліны} many {# хвілін} other {# хвіліны}}",
@ -472,32 +438,21 @@
"keyboard_shortcuts.toggle_hidden": "Паказаць/схаваць тэкст за папярэджаннем пра кантэнт", "keyboard_shortcuts.toggle_hidden": "Паказаць/схаваць тэкст за папярэджаннем пра кантэнт",
"keyboard_shortcuts.toggle_sensitivity": "Паказаць/схаваць медыя", "keyboard_shortcuts.toggle_sensitivity": "Паказаць/схаваць медыя",
"keyboard_shortcuts.toot": "Стварыць новы допіс", "keyboard_shortcuts.toot": "Стварыць новы допіс",
"keyboard_shortcuts.translate": "каб перакласці допіс",
"keyboard_shortcuts.unfocus": "Расфакусаваць тэкставую вобласць/пошукавы радок", "keyboard_shortcuts.unfocus": "Расфакусаваць тэкставую вобласць/пошукавы радок",
"keyboard_shortcuts.up": "Перамясціцца ўверх па спісе", "keyboard_shortcuts.up": "Перамясціцца ўверх па спісе",
"lightbox.close": "Закрыць", "lightbox.close": "Закрыць",
"lightbox.next": "Далей", "lightbox.next": "Далей",
"lightbox.previous": "Назад", "lightbox.previous": "Назад",
"lightbox.zoom_in": "Маштабаваць да фактычнага памеру",
"lightbox.zoom_out": "Дапасаваць усё змесціва пад памеры экрана",
"limited_account_hint.action": "Усе роўна паказваць профіль", "limited_account_hint.action": "Усе роўна паказваць профіль",
"limited_account_hint.title": "Гэты профіль быў схаваны мадэратарамі", "limited_account_hint.title": "Гэты профіль быў схаваны мадэратарамі",
"link_preview.author": "Ад {name}", "link_preview.author": "Ад {name}",
"link_preview.more_from_author": "Больш ад {name}", "link_preview.more_from_author": "Больш ад {name}",
"link_preview.shares": "{count, plural, one {{counter} допіс} few {{counter} допісы} many {{counter} допісаў} other {{counter} допісу}}", "link_preview.shares": "{count, plural, one {{counter} допіс} few {{counter} допісы} many {{counter} допісаў} other {{counter} допісу}}",
"lists.add_member": "Дадаць", "lists.add_member": "Дадаць",
"lists.add_to_list": "Дадаць у спіс",
"lists.add_to_lists": "Дадаць {name} у спісы",
"lists.create": "Стварыць", "lists.create": "Стварыць",
"lists.create_list": "Стварыць спіс", "lists.create_list": "Стварыць спіс",
"lists.delete": "Выдаліць спіс", "lists.delete": "Выдаліць спіс",
"lists.done": "Гатова",
"lists.edit": "Рэдагаваць спіс", "lists.edit": "Рэдагаваць спіс",
"lists.list_name": "Назва спіса",
"lists.new_list_name": "Назва новага спіса",
"lists.no_lists_yet": "Пакуль няма спісаў.",
"lists.no_members_yet": "Пакуль няма ўдзельнікаў.",
"lists.no_results_found": "Нічога не знойдзена.",
"lists.remove_member": "Выдаліць", "lists.remove_member": "Выдаліць",
"lists.replies_policy.followed": "Любы карыстальнік, на якога вы падпісаліся", "lists.replies_policy.followed": "Любы карыстальнік, на якога вы падпісаліся",
"lists.replies_policy.list": "Удзельнікі гэтага спісу", "lists.replies_policy.list": "Удзельнікі гэтага спісу",
@ -505,7 +460,7 @@
"lists.save": "Захаваць", "lists.save": "Захаваць",
"lists.search": "Пошук", "lists.search": "Пошук",
"load_pending": "{count, plural, one {# новы элемент} few {# новыя элементы} many {# новых элементаў} other {# новых элементаў}}", "load_pending": "{count, plural, one {# новы элемент} few {# новыя элементы} many {# новых элементаў} other {# новых элементаў}}",
"loading_indicator.label": "Ідзе загрузка…", "loading_indicator.label": "Загрузка…",
"media_gallery.hide": "Схаваць", "media_gallery.hide": "Схаваць",
"moved_to_account_banner.text": "Ваш уліковы запіс {disabledAccount} зараз адключаны таму што вы перанесены на {movedToAccount}.", "moved_to_account_banner.text": "Ваш уліковы запіс {disabledAccount} зараз адключаны таму што вы перанесены на {movedToAccount}.",
"mute_modal.hide_from_notifications": "Схаваць з апавяшчэнняў", "mute_modal.hide_from_notifications": "Схаваць з апавяшчэнняў",
@ -518,10 +473,7 @@
"mute_modal.you_wont_see_mentions": "Вы не ўбачыце паведамленняў са згадваннем карыстальніка.", "mute_modal.you_wont_see_mentions": "Вы не ўбачыце паведамленняў са згадваннем карыстальніка.",
"mute_modal.you_wont_see_posts": "Карыстальнік па-ранейшаму будзе бачыць вашыя паведамленні, але вы не будзеце паведамленні карыстальніка.", "mute_modal.you_wont_see_posts": "Карыстальнік па-ранейшаму будзе бачыць вашыя паведамленні, але вы не будзеце паведамленні карыстальніка.",
"navigation_bar.about": "Пра нас", "navigation_bar.about": "Пра нас",
"navigation_bar.account_settings": "Пароль і бяспека",
"navigation_bar.administration": "Адміністрацыя",
"navigation_bar.advanced_interface": "Адкрыць у пашыраным вэб-інтэрфейсе", "navigation_bar.advanced_interface": "Адкрыць у пашыраным вэб-інтэрфейсе",
"navigation_bar.automated_deletion": "Аўтаматычнае выдаленне допісаў",
"navigation_bar.blocks": "Заблакіраваныя карыстальнікі", "navigation_bar.blocks": "Заблакіраваныя карыстальнікі",
"navigation_bar.bookmarks": "Закладкі", "navigation_bar.bookmarks": "Закладкі",
"navigation_bar.direct": "Асабістыя згадванні", "navigation_bar.direct": "Асабістыя згадванні",
@ -531,21 +483,13 @@
"navigation_bar.follow_requests": "Запыты на падпіску", "navigation_bar.follow_requests": "Запыты на падпіску",
"navigation_bar.followed_tags": "Падпіскі", "navigation_bar.followed_tags": "Падпіскі",
"navigation_bar.follows_and_followers": "Падпіскі і падпісчыкі", "navigation_bar.follows_and_followers": "Падпіскі і падпісчыкі",
"navigation_bar.import_export": "Імпарт і экспарт",
"navigation_bar.lists": "Спісы", "navigation_bar.lists": "Спісы",
"navigation_bar.live_feed_local": "Жывая стужка (лакальная)",
"navigation_bar.live_feed_public": "Жывая стужка (публічная)",
"navigation_bar.logout": "Выйсці", "navigation_bar.logout": "Выйсці",
"navigation_bar.moderation": "Мадэрацыя", "navigation_bar.moderation": "Мадэрацыя",
"navigation_bar.more": "Больш",
"navigation_bar.mutes": "Ігнараваныя карыстальнікі", "navigation_bar.mutes": "Ігнараваныя карыстальнікі",
"navigation_bar.opened_in_classic_interface": "Допісы, уліковыя запісы і іншыя спецыфічныя старонкі па змоўчанні адчыняюцца ў класічным вэб-інтэрфейсе.", "navigation_bar.opened_in_classic_interface": "Допісы, уліковыя запісы і іншыя спецыфічныя старонкі па змоўчанні адчыняюцца ў класічным вэб-інтэрфейсе.",
"navigation_bar.preferences": "Налады", "navigation_bar.preferences": "Налады",
"navigation_bar.privacy_and_reach": "Прыватнасць і пошук",
"navigation_bar.search": "Пошук", "navigation_bar.search": "Пошук",
"navigation_bar.search_trends": "Пошук / Трэндавае",
"navigation_panel.collapse_followed_tags": "Згарнуць меню падпісак на хэштэгі",
"navigation_panel.collapse_lists": "Згарнуць меню спісаў",
"not_signed_in_indicator.not_signed_in": "Вам трэба ўвайсці каб атрымаць доступ да гэтага рэсурсу.", "not_signed_in_indicator.not_signed_in": "Вам трэба ўвайсці каб атрымаць доступ да гэтага рэсурсу.",
"notification.admin.report": "{name} паскардзіўся на {target}", "notification.admin.report": "{name} паскардзіўся на {target}",
"notification.admin.report_account": "{name} паскардзіўся на {count, plural, one {# допіс} many {# допісаў} other {# допіса}} ад {target} з прычыны {category}", "notification.admin.report_account": "{name} паскардзіўся на {count, plural, one {# допіс} many {# допісаў} other {# допіса}} ад {target} з прычыны {category}",
@ -553,10 +497,7 @@
"notification.admin.report_statuses": "{name} паскардзіўся на {target} з прычыны {category}", "notification.admin.report_statuses": "{name} паскардзіўся на {target} з прычыны {category}",
"notification.admin.report_statuses_other": "{name} паскардзіўся на {target}", "notification.admin.report_statuses_other": "{name} паскардзіўся на {target}",
"notification.admin.sign_up": "{name} зарэгістраваўся", "notification.admin.sign_up": "{name} зарэгістраваўся",
"notification.annual_report.view": "Перайсці да #Wrapstodon",
"notification.favourite": "Ваш допіс упадабаны {name}", "notification.favourite": "Ваш допіс упадабаны {name}",
"notification.favourite_pm": "Ваша асабістае згадванне ўпадабана {name}",
"notification.favourite_pm.name_and_others_with_link": "{name} і <a>{count, plural, one {# іншы} few {# іншыя} many {# іншых} other {# іншых}}</a> ўпадабалі ваша асабістае згадванне",
"notification.follow": "{name} падпісаўся на вас", "notification.follow": "{name} падпісаўся на вас",
"notification.follow_request": "{name} адправіў запыт на падпіску", "notification.follow_request": "{name} адправіў запыт на падпіску",
"notification.follow_request.name_and_others": "{name} і {count, plural, one {# іншы} many {# іншых} other {# іншых}} запыталіся падпісацца на вас", "notification.follow_request.name_and_others": "{name} і {count, plural, one {# іншы} many {# іншых} other {# іншых}} запыталіся падпісацца на вас",
@ -567,7 +508,7 @@
"notification.mention": "Згадванне", "notification.mention": "Згадванне",
"notification.mentioned_you": "{name} згадаў вас", "notification.mentioned_you": "{name} згадаў вас",
"notification.moderation-warning.learn_more": "Даведацца больш", "notification.moderation-warning.learn_more": "Даведацца больш",
"notification.moderation_warning": "Вы атрымалі папярэджанне ад мадэратараў", "notification.moderation_warning": "Вы атрымалі папярэджанне аб мадэрацыі",
"notification.moderation_warning.action_delete_statuses": "Некаторыя вашыя допісы былі выдаленыя.", "notification.moderation_warning.action_delete_statuses": "Некаторыя вашыя допісы былі выдаленыя.",
"notification.moderation_warning.action_disable": "Ваш уліковы запіс быў адключаны.", "notification.moderation_warning.action_disable": "Ваш уліковы запіс быў адключаны.",
"notification.moderation_warning.action_mark_statuses_as_sensitive": "Некаторыя з вашых допісаў былі пазначаныя як далікатныя.", "notification.moderation_warning.action_mark_statuses_as_sensitive": "Некаторыя з вашых допісаў былі пазначаныя як далікатныя.",
@ -598,7 +539,7 @@
"notification_requests.title": "Адфільтраваныя апавяшчэнні", "notification_requests.title": "Адфільтраваныя апавяшчэнні",
"notification_requests.view": "Прагляд апавяшчэнняў", "notification_requests.view": "Прагляд апавяшчэнняў",
"notifications.clear": "Ачысціць апавяшчэнні", "notifications.clear": "Ачысціць апавяшчэнні",
"notifications.clear_confirmation": "Вы ўпэўнены, што хочаце назаўсёды сцерці ўсе свае паведамленні?", "notifications.clear_confirmation": "Вы ўпэўнены, што жадаеце назаўсёды сцерці ўсё паведамленні?",
"notifications.clear_title": "Ачысціць апавяшчэнні?", "notifications.clear_title": "Ачысціць апавяшчэнні?",
"notifications.column_settings.admin.report": "Новыя скаргі:", "notifications.column_settings.admin.report": "Новыя скаргі:",
"notifications.column_settings.admin.sign_up": "Новыя ўваходы:", "notifications.column_settings.admin.sign_up": "Новыя ўваходы:",
@ -608,7 +549,7 @@
"notifications.column_settings.filter_bar.category": "Панэль хуткай фільтрацыі", "notifications.column_settings.filter_bar.category": "Панэль хуткай фільтрацыі",
"notifications.column_settings.follow": "Новыя падпісчыкі:", "notifications.column_settings.follow": "Новыя падпісчыкі:",
"notifications.column_settings.follow_request": "Новыя запыты на падпіску:", "notifications.column_settings.follow_request": "Новыя запыты на падпіску:",
"notifications.column_settings.group": "Абяднаць апавяшчэнні ад падпісчыкаў", "notifications.column_settings.group": "Аб'яднаць апавяшчэнні ад падпісчыкаў",
"notifications.column_settings.mention": "Згадванні:", "notifications.column_settings.mention": "Згадванні:",
"notifications.column_settings.poll": "Вынікі апытання:", "notifications.column_settings.poll": "Вынікі апытання:",
"notifications.column_settings.push": "Push-апавяшчэнні", "notifications.column_settings.push": "Push-апавяшчэнні",
@ -630,13 +571,13 @@
"notifications.group": "{count} Апавяшчэнняў", "notifications.group": "{count} Апавяшчэнняў",
"notifications.mark_as_read": "Пазначыць усе апавяшчэнні як прачытаныя", "notifications.mark_as_read": "Пазначыць усе апавяшчэнні як прачытаныя",
"notifications.permission_denied": "Апавяшчэнні на працоўным стале недаступныя з-за папярэдне адхіленага запыта праў браўзера", "notifications.permission_denied": "Апавяшчэнні на працоўным стале недаступныя з-за папярэдне адхіленага запыта праў браўзера",
"notifications.permission_denied_alert": "З-за таго, што запыт браўзера быў раней адхілены, немагчыма ўключыць апавяшчэнні на працоўным стале", "notifications.permission_denied_alert": "Апавяшчэнні на працоўным стале не могуць быць уключаныя, з-за таго што запыт браўзера быў адхілены",
"notifications.permission_required": "Апавяшчэнні на працоўным стале недаступныя, з-за таго што неабходны дазвол не быў дадзены.", "notifications.permission_required": "Апавяшчэнні на працоўным стале недаступныя, з-за таго што неабходны дазвол не быў дадзены.",
"notifications.policy.accept": "Прыняць", "notifications.policy.accept": "Прыняць",
"notifications.policy.accept_hint": "Паказваць у апавяшчэннях", "notifications.policy.accept_hint": "Паказваць у апавяшчэннях",
"notifications.policy.drop": "Iгнараваць", "notifications.policy.drop": "Iгнараваць",
"notifications.policy.filter": "Фільтраваць", "notifications.policy.filter": "Фільтраваць",
"notifications.policy.filter_limited_accounts_title": "Уліковыя запісы пад мадэрацыяй", "notifications.policy.filter_limited_accounts_title": "Абмежаваныя ўліковыя запісы",
"notifications.policy.filter_new_accounts.hint": "Створаныя на працягу {days, plural, one {апошняга # дня} few {апошніх # дзён} many {апошніх # дзён} other {апошняй # дня}}", "notifications.policy.filter_new_accounts.hint": "Створаныя на працягу {days, plural, one {апошняга # дня} few {апошніх # дзён} many {апошніх # дзён} other {апошняй # дня}}",
"notifications.policy.filter_new_accounts_title": "Новыя ўліковыя запісы", "notifications.policy.filter_new_accounts_title": "Новыя ўліковыя запісы",
"notifications.policy.filter_not_followers_hint": "Уключаючы людзей, якія падпісаны на вас менш, чым {days, plural, one {# дзень} few {# дні} many {# дзён} other {# дня}}", "notifications.policy.filter_not_followers_hint": "Уключаючы людзей, якія падпісаны на вас менш, чым {days, plural, one {# дзень} few {# дні} many {# дзён} other {# дня}}",
@ -653,13 +594,13 @@
"onboarding.follows.done": "Гатова", "onboarding.follows.done": "Гатова",
"onboarding.follows.empty": "На жаль, зараз немагчыма паказаць вынікі. Вы можаце паспрабаваць выкарыстоўваць пошук і праглядзець старонку агляду, каб знайсці людзей, на якіх можна падпісацца, або паўтарыце спробу пазней.", "onboarding.follows.empty": "На жаль, зараз немагчыма паказаць вынікі. Вы можаце паспрабаваць выкарыстоўваць пошук і праглядзець старонку агляду, каб знайсці людзей, на якіх можна падпісацца, або паўтарыце спробу пазней.",
"onboarding.follows.search": "Пошук", "onboarding.follows.search": "Пошук",
"onboarding.follows.title": "Падпішыцеся на некага, каб пачаць", "onboarding.follows.title": "Падпішыцеся каб пачаць",
"onboarding.profile.discoverable": "Зрабіць мой профіль бачным", "onboarding.profile.discoverable": "Зрабіць мой профіль бачным",
"onboarding.profile.discoverable_hint": "Калі вы звяртаецеся да адкрытасці на Mastodon, вашы паведамленні могуць з'яўляцца ў выніках пошуку і тэндэнцый, а ваш профіль можа быць прапанаваны людзям з такімі ж інтарэсамі.", "onboarding.profile.discoverable_hint": "Калі вы звяртаецеся да адкрытасці на Mastodon, вашы паведамленні могуць з'яўляцца ў выніках пошуку і тэндэнцый, а ваш профіль можа быць прапанаваны людзям з такімі ж інтарэсамі.",
"onboarding.profile.display_name": "Бачнае імя", "onboarding.profile.display_name": "Бачнае імя",
"onboarding.profile.display_name_hint": "Ваша поўнае імя або ваш псеўданім…", "onboarding.profile.display_name_hint": "Ваша поўнае імя або ваш псеўданім…",
"onboarding.profile.note": "Біяграфія", "onboarding.profile.note": "Біяграфія",
"onboarding.profile.note_hint": "Вы можаце @згадваць іншых людзей або выкарыстоўваць #хэштэгі…", "onboarding.profile.note_hint": "Вы можаце @згадаць іншых людзей або выкарыстоўваць #хэштэгі…",
"onboarding.profile.save_and_continue": "Захаваць і працягнуць", "onboarding.profile.save_and_continue": "Захаваць і працягнуць",
"onboarding.profile.title": "Налады профілю", "onboarding.profile.title": "Налады профілю",
"onboarding.profile.upload_avatar": "Загрузіць фота профілю", "onboarding.profile.upload_avatar": "Загрузіць фота профілю",
@ -679,7 +620,6 @@
"poll_button.remove_poll": "Выдаліць апытанне", "poll_button.remove_poll": "Выдаліць апытанне",
"privacy.change": "Змяніць прыватнасць допісу", "privacy.change": "Змяніць прыватнасць допісу",
"privacy.direct.long": "Усе згаданыя ў допісе", "privacy.direct.long": "Усе згаданыя ў допісе",
"privacy.direct.short": "Асабістае згадванне",
"privacy.private.long": "Толькі вашыя падпісчыкі", "privacy.private.long": "Толькі вашыя падпісчыкі",
"privacy.private.short": "Падпісчыкі", "privacy.private.short": "Падпісчыкі",
"privacy.public.long": "Усе, хто ёсць і каго няма ў Mastodon", "privacy.public.long": "Усе, хто ёсць і каго няма ў Mastodon",
@ -689,10 +629,10 @@
"privacy.unlisted.short": "Ціхі публічны", "privacy.unlisted.short": "Ціхі публічны",
"privacy_policy.last_updated": "Адноўлена {date}", "privacy_policy.last_updated": "Адноўлена {date}",
"privacy_policy.title": "Палітыка канфідэнцыйнасці", "privacy_policy.title": "Палітыка канфідэнцыйнасці",
"recommended": "Рэкамендаванае", "recommended": "Рэкамендуем",
"refresh": "Абнавiць", "refresh": "Абнавiць",
"regeneration_indicator.please_stand_by": "Пачакайце.", "regeneration_indicator.please_stand_by": "Калі ласка, пачакайце.",
"regeneration_indicator.preparing_your_home_feed": "Рыхтуем вашу галоўную стужку…", "regeneration_indicator.preparing_your_home_feed": "Рыхтуем вашую стужку…",
"relative_time.days": "{number} д", "relative_time.days": "{number} д",
"relative_time.full.days": "{number, plural, one {# дзень} few {# дні} many {# дзён} other {# дня}} таму", "relative_time.full.days": "{number, plural, one {# дзень} few {# дні} many {# дзён} other {# дня}} таму",
"relative_time.full.hours": "{number, plural, one {# гадзіна} few {# гадзіны} many {# гадзін} other {# гадзіны}} таму", "relative_time.full.hours": "{number, plural, one {# гадзіна} few {# гадзіны} many {# гадзін} other {# гадзіны}} таму",
@ -709,7 +649,7 @@
"reply_indicator.poll": "Апытанне", "reply_indicator.poll": "Апытанне",
"report.block": "Заблакіраваць", "report.block": "Заблакіраваць",
"report.block_explanation": "Вы перастанеце бачыць допісы гэтага карыстальніка. Ён не зможа сачыць за вамі і бачыць вашы допісы. Ён зможа зразумець, што яго заблакіравалі.", "report.block_explanation": "Вы перастанеце бачыць допісы гэтага карыстальніка. Ён не зможа сачыць за вамі і бачыць вашы допісы. Ён зможа зразумець, што яго заблакіравалі.",
"report.categories.legal": "Звязанае з правам", "report.categories.legal": "Права",
"report.categories.other": "Іншае", "report.categories.other": "Іншае",
"report.categories.spam": "Спам", "report.categories.spam": "Спам",
"report.categories.violation": "Змест парушае адно ці некалькі правілаў сервера", "report.categories.violation": "Змест парушае адно ці некалькі правілаў сервера",
@ -776,8 +716,8 @@
"search_results.accounts": "Профілі", "search_results.accounts": "Профілі",
"search_results.all": "Усё", "search_results.all": "Усё",
"search_results.hashtags": "Хэштэгі", "search_results.hashtags": "Хэштэгі",
"search_results.no_results": "Няма вынікаў.", "search_results.no_results": "Анічога ня знойдзена.",
"search_results.no_search_yet": "Паспрабуйце пашукаць допісы, профілі або хэштэгі.", "search_results.no_search_yet": "Паспрабуйце пашукаць допісы, профілі або гэштаґі.",
"search_results.see_all": "Праглядзець усе", "search_results.see_all": "Праглядзець усе",
"search_results.statuses": "Допісы", "search_results.statuses": "Допісы",
"search_results.title": "Шукаць \"{q}\"", "search_results.title": "Шукаць \"{q}\"",
@ -798,7 +738,7 @@
"status.bookmark": "Дадаць закладку", "status.bookmark": "Дадаць закладку",
"status.cancel_reblog_private": "Прыбраць", "status.cancel_reblog_private": "Прыбраць",
"status.cannot_reblog": "Гэты пост нельга пашырыць", "status.cannot_reblog": "Гэты пост нельга пашырыць",
"status.continued_thread": "Працяг ланцужка", "status.continued_thread": "Працяг тэмы",
"status.copy": "Скапіраваць спасылку на допіс", "status.copy": "Скапіраваць спасылку на допіс",
"status.delete": "Выдаліць", "status.delete": "Выдаліць",
"status.detailed_status": "Дэтальны агляд размовы", "status.detailed_status": "Дэтальны агляд размовы",
@ -823,7 +763,6 @@
"status.mute_conversation": "Ігнараваць размову", "status.mute_conversation": "Ігнараваць размову",
"status.open": "Разгарнуць гэты допіс", "status.open": "Разгарнуць гэты допіс",
"status.pin": "Замацаваць у профілі", "status.pin": "Замацаваць у профілі",
"status.quote_post_author": "Допіс карыстальніка @{name}",
"status.read_more": "Чытаць болей", "status.read_more": "Чытаць болей",
"status.reblog": "Пашырыць", "status.reblog": "Пашырыць",
"status.reblog_private": "Пашырыць з першапачатковай бачнасцю", "status.reblog_private": "Пашырыць з першапачатковай бачнасцю",
@ -832,7 +771,7 @@
"status.reblogs.empty": "Гэты допіс яшчэ ніхто не пашырыў. Калі гэта адбудзецца, гэтых людзей будзе бачна тут.", "status.reblogs.empty": "Гэты допіс яшчэ ніхто не пашырыў. Калі гэта адбудзецца, гэтых людзей будзе бачна тут.",
"status.redraft": "Выдаліць і паправіць", "status.redraft": "Выдаліць і паправіць",
"status.remove_bookmark": "Выдаліць закладку", "status.remove_bookmark": "Выдаліць закладку",
"status.replied_in_thread": "Адказаў у ланцужку", "status.replied_in_thread": "Адказаў у тэме",
"status.replied_to": "Адказаў {name}", "status.replied_to": "Адказаў {name}",
"status.reply": "Адказаць", "status.reply": "Адказаць",
"status.replyAll": "Адказаць у ланцугу", "status.replyAll": "Адказаць у ланцугу",
@ -852,11 +791,8 @@
"subscribed_languages.save": "Захаваць змены", "subscribed_languages.save": "Захаваць змены",
"subscribed_languages.target": "Змяніць мовы падпіскі для {target}", "subscribed_languages.target": "Змяніць мовы падпіскі для {target}",
"tabs_bar.home": "Галоўная", "tabs_bar.home": "Галоўная",
"tabs_bar.menu": "Меню",
"tabs_bar.notifications": "Апавяшчэнні", "tabs_bar.notifications": "Апавяшчэнні",
"tabs_bar.publish": "Новы допіс", "terms_of_service.title": "Умовы абслугоўваньня",
"tabs_bar.search": "Пошук",
"terms_of_service.title": "Умовы выкарыстання",
"time_remaining.days": "{number, plural, one {застаўся # дзень} few {засталося # дні} many {засталося # дзён} other {засталося # дня}}", "time_remaining.days": "{number, plural, one {застаўся # дзень} few {засталося # дні} many {засталося # дзён} other {засталося # дня}}",
"time_remaining.hours": "{number, plural, one {засталася # гадзіна} few {засталося # гадзіны} many {засталося # гадзін} other {засталося # гадзіны}}", "time_remaining.hours": "{number, plural, one {засталася # гадзіна} few {засталося # гадзіны} many {засталося # гадзін} other {засталося # гадзіны}}",
"time_remaining.minutes": "{number, plural, one {засталася # хвіліна} few {засталося # хвіліны} many {засталося # хвілін} other {засталося # хвіліны}}", "time_remaining.minutes": "{number, plural, one {засталася # хвіліна} few {засталося # хвіліны} many {засталося # хвілін} other {засталося # хвіліны}}",
@ -882,12 +818,6 @@
"video.expand": "Разгарнуць відэа", "video.expand": "Разгарнуць відэа",
"video.fullscreen": "Увесь экран", "video.fullscreen": "Увесь экран",
"video.hide": "Схаваць відэа", "video.hide": "Схаваць відэа",
"video.mute": "Выключыць гук",
"video.pause": "Паўза", "video.pause": "Паўза",
"video.play": "Прайграць", "video.play": "Прайграць"
"video.skip_backward": "Праматаць назад",
"video.skip_forward": "Праматаць уперад",
"video.unmute": "Уключыць гук",
"video.volume_down": "Паменшыць гучнасць",
"video.volume_up": "Павялічыць гучнасць"
} }

View File

@ -8,7 +8,6 @@
"about.domain_blocks.silenced.title": "Ограничено", "about.domain_blocks.silenced.title": "Ограничено",
"about.domain_blocks.suspended.explanation": "Никакви данни от този сървър няма да се обработват, съхраняват или обменят, правещи невъзможно всяко взаимодействие или комуникация с потребители от тези сървъри.", "about.domain_blocks.suspended.explanation": "Никакви данни от този сървър няма да се обработват, съхраняват или обменят, правещи невъзможно всяко взаимодействие или комуникация с потребители от тези сървъри.",
"about.domain_blocks.suspended.title": "Спряно", "about.domain_blocks.suspended.title": "Спряно",
"about.language_label": "Език",
"about.not_available": "Тази информация не е публична на този сървър.", "about.not_available": "Тази информация не е публична на този сървър.",
"about.powered_by": "Децентрализирана социална мрежа, захранвана от {mastodon}", "about.powered_by": "Децентрализирана социална мрежа, захранвана от {mastodon}",
"about.rules": "Правила на сървъра", "about.rules": "Правила на сървъра",
@ -29,7 +28,6 @@
"account.edit_profile": "Редактиране на профила", "account.edit_profile": "Редактиране на профила",
"account.enable_notifications": "Известяване при публикуване от @{name}", "account.enable_notifications": "Известяване при публикуване от @{name}",
"account.endorse": "Представи в профила", "account.endorse": "Представи в профила",
"account.familiar_followers_many": "Последвано от {name1}, {name2}, и {othersCount, plural, one {един друг, когото познавате} other {# други, които познавате}}",
"account.familiar_followers_one": "Последвано от {name1}", "account.familiar_followers_one": "Последвано от {name1}",
"account.familiar_followers_two": "Последвано от {name1} и {name2}", "account.familiar_followers_two": "Последвано от {name1} и {name2}",
"account.featured": "Препоръчано", "account.featured": "Препоръчано",
@ -42,7 +40,6 @@
"account.followers": "Последователи", "account.followers": "Последователи",
"account.followers.empty": "Още никой не следва потребителя.", "account.followers.empty": "Още никой не следва потребителя.",
"account.followers_counter": "{count, plural, one {{counter} последовател} other {{counter} последователи}}", "account.followers_counter": "{count, plural, one {{counter} последовател} other {{counter} последователи}}",
"account.followers_you_know_counter": "{counter} познавате",
"account.following": "Последвано", "account.following": "Последвано",
"account.following_counter": "{count, plural, one {{counter} последван} other {{counter} последвани}}", "account.following_counter": "{count, plural, one {{counter} последван} other {{counter} последвани}}",
"account.follows.empty": "Потребителят още никого не следва.", "account.follows.empty": "Потребителят още никого не следва.",
@ -188,7 +185,7 @@
"community.column_settings.remote_only": "Само отдалечено", "community.column_settings.remote_only": "Само отдалечено",
"compose.language.change": "Смяна на езика", "compose.language.change": "Смяна на езика",
"compose.language.search": "Търсене на езици...", "compose.language.search": "Търсене на езици...",
"compose.published.body": "Публикувано.", "compose.published.body": "Публикувана публикация.",
"compose.published.open": "Отваряне", "compose.published.open": "Отваряне",
"compose.saved.body": "Запазена публикация.", "compose.saved.body": "Запазена публикация.",
"compose_form.direct_message_warning_learn_more": "Още информация", "compose_form.direct_message_warning_learn_more": "Още информация",
@ -218,13 +215,6 @@
"confirmations.delete_list.confirm": "Изтриване", "confirmations.delete_list.confirm": "Изтриване",
"confirmations.delete_list.message": "Наистина ли искате да изтриете завинаги списъка?", "confirmations.delete_list.message": "Наистина ли искате да изтриете завинаги списъка?",
"confirmations.delete_list.title": "Изтривате ли списъка?", "confirmations.delete_list.title": "Изтривате ли списъка?",
"confirmations.discard_draft.confirm": "Изхвърляне и продължаване",
"confirmations.discard_draft.edit.cancel": "Възобновяване на редактиране",
"confirmations.discard_draft.edit.message": "Продължаването ще изхвърли всякакви промени, които сте правили в публикацията, която сега редактирате.",
"confirmations.discard_draft.edit.title": "Изхвърляте ли промените в публикацията си?",
"confirmations.discard_draft.post.cancel": "Възстановка на чернова",
"confirmations.discard_draft.post.message": "Продължаването ще изхвърли публикацията, която сега съставяте.",
"confirmations.discard_draft.post.title": "Изхвърляте ли черновата си публикация?",
"confirmations.discard_edit_media.confirm": "Отхвърляне", "confirmations.discard_edit_media.confirm": "Отхвърляне",
"confirmations.discard_edit_media.message": "Не сте запазили промени на описанието или огледа на мултимедията, отхвърляте ли ги?", "confirmations.discard_edit_media.message": "Не сте запазили промени на описанието или огледа на мултимедията, отхвърляте ли ги?",
"confirmations.follow_to_list.confirm": "Последване и добавяне в списък", "confirmations.follow_to_list.confirm": "Последване и добавяне в списък",
@ -334,15 +324,9 @@
"errors.unexpected_crash.copy_stacktrace": "Копиране на трасето на стека в буферната памет", "errors.unexpected_crash.copy_stacktrace": "Копиране на трасето на стека в буферната памет",
"errors.unexpected_crash.report_issue": "Сигнал за проблем", "errors.unexpected_crash.report_issue": "Сигнал за проблем",
"explore.suggested_follows": "Хора", "explore.suggested_follows": "Хора",
"explore.title": "Вървежно",
"explore.trending_links": "Новини", "explore.trending_links": "Новини",
"explore.trending_statuses": "Публикации", "explore.trending_statuses": "Публикации",
"explore.trending_tags": "Хаштагове", "explore.trending_tags": "Хаштагове",
"featured_carousel.header": "{count, plural, one {закачена публикация} other {закачени публикации}}",
"featured_carousel.next": "Напред",
"featured_carousel.post": "Публикация",
"featured_carousel.previous": "Назад",
"featured_carousel.slide": "{index} от {total}",
"filter_modal.added.context_mismatch_explanation": "Тази категория филтър не е приложима към контекста, в който достъпвате тази публикация. Ако желаете да филтрирате публикациите в този контекст, трябва да изберете друг филтър.", "filter_modal.added.context_mismatch_explanation": "Тази категория филтър не е приложима към контекста, в който достъпвате тази публикация. Ако желаете да филтрирате публикациите в този контекст, трябва да изберете друг филтър.",
"filter_modal.added.context_mismatch_title": "Несъвпадащ контекст!", "filter_modal.added.context_mismatch_title": "Несъвпадащ контекст!",
"filter_modal.added.expired_explanation": "Валидността на тази категория филтър е изтекла. Сменете срока на валидност, за да я приложите.", "filter_modal.added.expired_explanation": "Валидността на тази категория филтър е изтекла. Сменете срока на валидност, за да я приложите.",
@ -421,7 +405,6 @@
"hints.profiles.see_more_posts": "Преглед на още публикации на {domain}", "hints.profiles.see_more_posts": "Преглед на още публикации на {domain}",
"hints.threads.replies_may_be_missing": "Отговори от други сървъри може да липсват.", "hints.threads.replies_may_be_missing": "Отговори от други сървъри може да липсват.",
"hints.threads.see_more": "Преглед на още отговори на {domain}", "hints.threads.see_more": "Преглед на още отговори на {domain}",
"home.column_settings.show_quotes": "Показване на цитираното",
"home.column_settings.show_reblogs": "Показване на подсилванията", "home.column_settings.show_reblogs": "Показване на подсилванията",
"home.column_settings.show_replies": "Показване на отговорите", "home.column_settings.show_replies": "Показване на отговорите",
"home.hide_announcements": "Скриване на оповестяванията", "home.hide_announcements": "Скриване на оповестяванията",
@ -544,10 +527,8 @@
"mute_modal.you_wont_see_mentions": "Няма да виждате споменаващите ги публикации.", "mute_modal.you_wont_see_mentions": "Няма да виждате споменаващите ги публикации.",
"mute_modal.you_wont_see_posts": "Още могат да виждат публикациите ви, но вие техните не.", "mute_modal.you_wont_see_posts": "Още могат да виждат публикациите ви, но вие техните не.",
"navigation_bar.about": "Относно", "navigation_bar.about": "Относно",
"navigation_bar.account_settings": "Парола и сигурност",
"navigation_bar.administration": "Администрация", "navigation_bar.administration": "Администрация",
"navigation_bar.advanced_interface": "Отваряне в разширен уебинтерфейс", "navigation_bar.advanced_interface": "Отваряне в разширен уебинтерфейс",
"navigation_bar.automated_deletion": "Автоматично изтриване на публикации",
"navigation_bar.blocks": "Блокирани потребители", "navigation_bar.blocks": "Блокирани потребители",
"navigation_bar.bookmarks": "Отметки", "navigation_bar.bookmarks": "Отметки",
"navigation_bar.direct": "Частни споменавания", "navigation_bar.direct": "Частни споменавания",
@ -557,17 +538,13 @@
"navigation_bar.follow_requests": "Заявки за последване", "navigation_bar.follow_requests": "Заявки за последване",
"navigation_bar.followed_tags": "Последвани хаштагове", "navigation_bar.followed_tags": "Последвани хаштагове",
"navigation_bar.follows_and_followers": "Последвания и последователи", "navigation_bar.follows_and_followers": "Последвания и последователи",
"navigation_bar.import_export": "Внасяне и изнасяне",
"navigation_bar.lists": "Списъци", "navigation_bar.lists": "Списъци",
"navigation_bar.logout": "Излизане", "navigation_bar.logout": "Излизане",
"navigation_bar.moderation": "Модериране", "navigation_bar.moderation": "Модериране",
"navigation_bar.more": "Още",
"navigation_bar.mutes": "Заглушени потребители", "navigation_bar.mutes": "Заглушени потребители",
"navigation_bar.opened_in_classic_interface": "Публикации, акаунти и други особени страници се отварят по подразбиране в класическия мрежови интерфейс.", "navigation_bar.opened_in_classic_interface": "Публикации, акаунти и други особени страници се отварят по подразбиране в класическия мрежови интерфейс.",
"navigation_bar.preferences": "Предпочитания", "navigation_bar.preferences": "Предпочитания",
"navigation_bar.privacy_and_reach": "Поверителност и обхват",
"navigation_bar.search": "Търсене", "navigation_bar.search": "Търсене",
"navigation_bar.search_trends": "Търсене / Вървежно",
"not_signed_in_indicator.not_signed_in": "Трябва ви вход за достъп до ресурса.", "not_signed_in_indicator.not_signed_in": "Трябва ви вход за достъп до ресурса.",
"notification.admin.report": "{name} докладва {target}", "notification.admin.report": "{name} докладва {target}",
"notification.admin.report_account": "{name} докладва {count, plural, one {публикация} other {# публикации}} от {target} за {category}", "notification.admin.report_account": "{name} докладва {count, plural, one {публикация} other {# публикации}} от {target} за {category}",
@ -794,7 +771,6 @@
"report_notification.categories.violation": "Нарушение на правилото", "report_notification.categories.violation": "Нарушение на правилото",
"report_notification.categories.violation_sentence": "нарушение на правило", "report_notification.categories.violation_sentence": "нарушение на правило",
"report_notification.open": "Отваряне на доклада", "report_notification.open": "Отваряне на доклада",
"search.clear": "Изчистване на търсенето",
"search.no_recent_searches": "Няма скорошни търсения", "search.no_recent_searches": "Няма скорошни търсения",
"search.placeholder": "Търсене", "search.placeholder": "Търсене",
"search.quick_action.account_search": "Съвпадение на профили {x}", "search.quick_action.account_search": "Съвпадение на профили {x}",
@ -861,13 +837,6 @@
"status.mute_conversation": "Заглушаване на разговора", "status.mute_conversation": "Заглушаване на разговора",
"status.open": "Разширяване на публикацията", "status.open": "Разширяване на публикацията",
"status.pin": "Закачане в профила", "status.pin": "Закачане в профила",
"status.quote_error.filtered": "Скрито поради един от филтрите ви",
"status.quote_error.not_found": "Публикацията не може да се показва.",
"status.quote_error.pending_approval": "Публикацията чака одобрение от първоначалния автор.",
"status.quote_error.rejected": "Публикацията не може да се показва като първоначалния автор не позволява цитирането ѝ.",
"status.quote_error.removed": "Публикацията е премахната от автора ѝ.",
"status.quote_error.unauthorized": "Публикацията не може да се показва, тъй като не сте упълномощени да я гледате.",
"status.quote_post_author": "Публикация от {name}",
"status.read_more": "Още за четене", "status.read_more": "Още за четене",
"status.reblog": "Подсилване", "status.reblog": "Подсилване",
"status.reblog_private": "Подсилване с оригиналната видимост", "status.reblog_private": "Подсилване с оригиналната видимост",
@ -897,10 +866,7 @@
"subscribed_languages.save": "Запазване на промените", "subscribed_languages.save": "Запазване на промените",
"subscribed_languages.target": "Промяна на абонираните езици за {target}", "subscribed_languages.target": "Промяна на абонираните езици за {target}",
"tabs_bar.home": "Начало", "tabs_bar.home": "Начало",
"tabs_bar.menu": "Меню",
"tabs_bar.notifications": "Известия", "tabs_bar.notifications": "Известия",
"tabs_bar.publish": "Нова публикация",
"tabs_bar.search": "Търсене",
"terms_of_service.effective_as_of": "В сила от {date}", "terms_of_service.effective_as_of": "В сила от {date}",
"terms_of_service.title": "Условия на услугата", "terms_of_service.title": "Условия на услугата",
"terms_of_service.upcoming_changes_on": "Предстоящи промени на {date}", "terms_of_service.upcoming_changes_on": "Предстоящи промени на {date}",

View File

@ -219,13 +219,6 @@
"confirmations.delete_list.confirm": "Elimina", "confirmations.delete_list.confirm": "Elimina",
"confirmations.delete_list.message": "Segur que vols suprimir permanentment aquesta llista?", "confirmations.delete_list.message": "Segur que vols suprimir permanentment aquesta llista?",
"confirmations.delete_list.title": "Eliminar la llista?", "confirmations.delete_list.title": "Eliminar la llista?",
"confirmations.discard_draft.confirm": "Descarta i continua",
"confirmations.discard_draft.edit.cancel": "Continua l'edició",
"confirmations.discard_draft.edit.message": "Continuar descartarà tots els canvis que hàgiu fet a la publicació que editeu.",
"confirmations.discard_draft.edit.title": "Descartar els canvis a la publicació?",
"confirmations.discard_draft.post.cancel": "Reprendre l'esborrany",
"confirmations.discard_draft.post.message": "Continuar descartarà la publicació que escriviu.",
"confirmations.discard_draft.post.title": "Descartar l'esborrany?",
"confirmations.discard_edit_media.confirm": "Descarta", "confirmations.discard_edit_media.confirm": "Descarta",
"confirmations.discard_edit_media.message": "Tens canvis no desats en la descripció del contingut o en la previsualització, els vols descartar?", "confirmations.discard_edit_media.message": "Tens canvis no desats en la descripció del contingut o en la previsualització, els vols descartar?",
"confirmations.follow_to_list.confirm": "Seguir i afegir a una llista", "confirmations.follow_to_list.confirm": "Seguir i afegir a una llista",
@ -563,8 +556,6 @@
"navigation_bar.follows_and_followers": "Seguint i seguidors", "navigation_bar.follows_and_followers": "Seguint i seguidors",
"navigation_bar.import_export": "Importació i exportació", "navigation_bar.import_export": "Importació i exportació",
"navigation_bar.lists": "Llistes", "navigation_bar.lists": "Llistes",
"navigation_bar.live_feed_local": "Canal en directe (local)",
"navigation_bar.live_feed_public": "Canal en directe (públic)",
"navigation_bar.logout": "Tanca la sessió", "navigation_bar.logout": "Tanca la sessió",
"navigation_bar.moderation": "Moderació", "navigation_bar.moderation": "Moderació",
"navigation_bar.more": "Més", "navigation_bar.more": "Més",
@ -573,10 +564,7 @@
"navigation_bar.preferences": "Preferències", "navigation_bar.preferences": "Preferències",
"navigation_bar.privacy_and_reach": "Privacitat i abast", "navigation_bar.privacy_and_reach": "Privacitat i abast",
"navigation_bar.search": "Cerca", "navigation_bar.search": "Cerca",
"navigation_bar.search_trends": "Cerca / En tendència",
"navigation_panel.collapse_followed_tags": "Comprimeix el menú d'etiquetes seguides",
"navigation_panel.collapse_lists": "Tanca el menú", "navigation_panel.collapse_lists": "Tanca el menú",
"navigation_panel.expand_followed_tags": "Expandeix el menú d'etiquetes seguides",
"navigation_panel.expand_lists": "Expandeix el menú", "navigation_panel.expand_lists": "Expandeix el menú",
"not_signed_in_indicator.not_signed_in": "Cal que iniciïs la sessió per a accedir a aquest recurs.", "not_signed_in_indicator.not_signed_in": "Cal que iniciïs la sessió per a accedir a aquest recurs.",
"notification.admin.report": "{name} ha reportat {target}", "notification.admin.report": "{name} ha reportat {target}",
@ -804,7 +792,6 @@
"report_notification.categories.violation": "Violació de norma", "report_notification.categories.violation": "Violació de norma",
"report_notification.categories.violation_sentence": "violació de normes", "report_notification.categories.violation_sentence": "violació de normes",
"report_notification.open": "Obre l'informe", "report_notification.open": "Obre l'informe",
"search.clear": "Esborra la cerca",
"search.no_recent_searches": "No hi ha cerques recents", "search.no_recent_searches": "No hi ha cerques recents",
"search.placeholder": "Cerca", "search.placeholder": "Cerca",
"search.quick_action.account_search": "Perfils coincidint amb {x}", "search.quick_action.account_search": "Perfils coincidint amb {x}",

View File

@ -62,7 +62,7 @@
"account.mute_notifications_short": "Sluk for notifikationer", "account.mute_notifications_short": "Sluk for notifikationer",
"account.mute_short": "Skjul", "account.mute_short": "Skjul",
"account.muted": "Skjult", "account.muted": "Skjult",
"account.muting": "Skjuler", "account.muting": "Tavsgørelse",
"account.mutual": "I følger hinanden", "account.mutual": "I følger hinanden",
"account.no_bio": "Ingen beskrivelse til rådighed.", "account.no_bio": "Ingen beskrivelse til rådighed.",
"account.open_original_page": "Åbn oprindelig side", "account.open_original_page": "Åbn oprindelig side",
@ -83,7 +83,7 @@
"account.unendorse": "Vis ikke på profil", "account.unendorse": "Vis ikke på profil",
"account.unfollow": "Følg ikke længere", "account.unfollow": "Følg ikke længere",
"account.unmute": "Vis @{name} igen", "account.unmute": "Vis @{name} igen",
"account.unmute_notifications_short": "Vis notifikationer igen", "account.unmute_notifications_short": "Tænd for notifikationer",
"account.unmute_short": "Vis igen", "account.unmute_short": "Vis igen",
"account_note.placeholder": "Klik for at tilføje notat", "account_note.placeholder": "Klik for at tilføje notat",
"admin.dashboard.daily_retention": "Brugerfastholdelsesrate pr. dag efter tilmelding", "admin.dashboard.daily_retention": "Brugerfastholdelsesrate pr. dag efter tilmelding",
@ -130,7 +130,7 @@
"attachments_list.unprocessed": "(ubehandlet)", "attachments_list.unprocessed": "(ubehandlet)",
"audio.hide": "Skjul lyd", "audio.hide": "Skjul lyd",
"block_modal.remote_users_caveat": "Serveren {domain} vil blive bedt om at respektere din beslutning. Overholdelse er dog ikke garanteret, da nogle servere kan håndtere blokke forskelligt. Offentlige indlæg kan stadig være synlige for ikke-indloggede brugere.", "block_modal.remote_users_caveat": "Serveren {domain} vil blive bedt om at respektere din beslutning. Overholdelse er dog ikke garanteret, da nogle servere kan håndtere blokke forskelligt. Offentlige indlæg kan stadig være synlige for ikke-indloggede brugere.",
"block_modal.show_less": "Vis mindre", "block_modal.show_less": "Vis færre",
"block_modal.show_more": "Vis flere", "block_modal.show_more": "Vis flere",
"block_modal.they_cant_mention": "Vedkommende kan ikke omtale eller følge dig.", "block_modal.they_cant_mention": "Vedkommende kan ikke omtale eller følge dig.",
"block_modal.they_cant_see_posts": "Vedkommende kan ikke se dine indlæg, og du vil ikke se vedkommendes.", "block_modal.they_cant_see_posts": "Vedkommende kan ikke se dine indlæg, og du vil ikke se vedkommendes.",
@ -208,9 +208,9 @@
"compose_form.publish": "Publicér", "compose_form.publish": "Publicér",
"compose_form.reply": "Svar", "compose_form.reply": "Svar",
"compose_form.save_changes": "Opdatér", "compose_form.save_changes": "Opdatér",
"compose_form.spoiler.marked": "Fjern indholdsadvarsel", "compose_form.spoiler.marked": "Fjern emnefelt",
"compose_form.spoiler.unmarked": "Tilføj indholdsadvarsel", "compose_form.spoiler.unmarked": "Tilføj emnefelt",
"compose_form.spoiler_placeholder": "Indholdsadvarsel (valgfri)", "compose_form.spoiler_placeholder": "Emnefelt (valgfrit)",
"confirmation_modal.cancel": "Afbryd", "confirmation_modal.cancel": "Afbryd",
"confirmations.block.confirm": "Blokér", "confirmations.block.confirm": "Blokér",
"confirmations.delete.confirm": "Slet", "confirmations.delete.confirm": "Slet",
@ -239,9 +239,9 @@
"confirmations.missing_alt_text.secondary": "Læg op alligevel", "confirmations.missing_alt_text.secondary": "Læg op alligevel",
"confirmations.missing_alt_text.title": "Tilføj alt-tekst?", "confirmations.missing_alt_text.title": "Tilføj alt-tekst?",
"confirmations.mute.confirm": "Skjul", "confirmations.mute.confirm": "Skjul",
"confirmations.redraft.confirm": "Slet og omskriv", "confirmations.redraft.confirm": "Slet og omformulér",
"confirmations.redraft.message": "Sikker på, at dette indlæg skal slettes og omskrives? Favoritter og fremhævelser går tabt, og svar til det oprindelige indlæg mister tilknytningen.", "confirmations.redraft.message": "Sikker på, at dette indlæg skal slettes og omskrives? Favoritter og fremhævelser går tabt, og svar til det oprindelige indlæg mister tilknytningen.",
"confirmations.redraft.title": "Slet og omskriv indlæg?", "confirmations.redraft.title": "Slet og omformulér indlæg?",
"confirmations.remove_from_followers.confirm": "Fjern følger", "confirmations.remove_from_followers.confirm": "Fjern følger",
"confirmations.remove_from_followers.message": "{name} vil ikke længere følge dig. Er du sikker på, at du vil fortsætte?", "confirmations.remove_from_followers.message": "{name} vil ikke længere følge dig. Er du sikker på, at du vil fortsætte?",
"confirmations.remove_from_followers.title": "Fjern følger?", "confirmations.remove_from_followers.title": "Fjern følger?",
@ -279,14 +279,14 @@
"domain_pill.activitypub_lets_connect": "Det muliggører at forbinde og interagere med folk, ikke kun på Mastodon, men også på tværs af forskellige sociale apps.", "domain_pill.activitypub_lets_connect": "Det muliggører at forbinde og interagere med folk, ikke kun på Mastodon, men også på tværs af forskellige sociale apps.",
"domain_pill.activitypub_like_language": "ActivityPub er \"sproget\", som Mastodon taler med andre sociale netværk.", "domain_pill.activitypub_like_language": "ActivityPub er \"sproget\", som Mastodon taler med andre sociale netværk.",
"domain_pill.server": "Server", "domain_pill.server": "Server",
"domain_pill.their_handle": "Deres handle:", "domain_pill.their_handle": "Deres greb:",
"domain_pill.their_server": "Det digitale hjem, hvor alle indlæggene findes.", "domain_pill.their_server": "Det digitale hjem, hvor alle indlæggene findes.",
"domain_pill.their_username": "Entydig identifikator på denne server. Det er muligt at finde brugere med samme brugernavn på forskellige servere.", "domain_pill.their_username": "Entydig identifikator på denne server. Det er muligt at finde brugere med samme brugernavn på forskellige servere.",
"domain_pill.username": "Brugernavn", "domain_pill.username": "Brugernavn",
"domain_pill.whats_in_a_handle": "Hvad indeholder et handle?", "domain_pill.whats_in_a_handle": "Hvad er der i et greb?",
"domain_pill.who_they_are": "Da et handle fortæller, hvem nogen er, og hvor de er, kan du interagere med folk på tværs af det sociale net af <button>ActivityPub-drevne platforme</button>.", "domain_pill.who_they_are": "Da et handle fortæller, hvem nogen er, og hvor de er, kan du interagere med folk på tværs af det sociale net af <button>ActivityPub-drevne platforme</button>.",
"domain_pill.who_you_are": "Fordi dit handle fortæller, hvem du er, og hvor du er, kan du interagere med folk på tværs af det sociale net af <button>ActivityPub-drevne platforme</button>.", "domain_pill.who_you_are": "Fordi dit handle fortæller, hvem du er, og hvor du er, kan du interagere med folk på tværs af det sociale net af <button>ActivityPub-drevne platforme</button>.",
"domain_pill.your_handle": "Dit handle:", "domain_pill.your_handle": "Dit greb:",
"domain_pill.your_server": "Dit digitale hjem, hvor alle dine indlæg lever. Synes ikke om den her server? Du kan til enhver tid rykke over på en anden server og beholde dine følgere.", "domain_pill.your_server": "Dit digitale hjem, hvor alle dine indlæg lever. Synes ikke om den her server? Du kan til enhver tid rykke over på en anden server og beholde dine følgere.",
"domain_pill.your_username": "Din entydige identifikator på denne server. Det er muligt at finde brugere med samme brugernavn på forskellige servere.", "domain_pill.your_username": "Din entydige identifikator på denne server. Det er muligt at finde brugere med samme brugernavn på forskellige servere.",
"embed.instructions": "Indlejr dette indlæg på din hjemmeside ved at kopiere nedenstående kode.", "embed.instructions": "Indlejr dette indlæg på din hjemmeside ved at kopiere nedenstående kode.",
@ -386,7 +386,7 @@
"follow_suggestions.similar_to_recently_followed_longer": "Minder om profiler, du har fulgt for nylig", "follow_suggestions.similar_to_recently_followed_longer": "Minder om profiler, du har fulgt for nylig",
"follow_suggestions.view_all": "Vis alle", "follow_suggestions.view_all": "Vis alle",
"follow_suggestions.who_to_follow": "Hvem, som skal følges", "follow_suggestions.who_to_follow": "Hvem, som skal følges",
"followed_tags": "Hashtags, som følges", "followed_tags": "Hashtag, som følges",
"footer.about": "Om", "footer.about": "Om",
"footer.directory": "Profiloversigt", "footer.directory": "Profiloversigt",
"footer.get_app": "Hent appen", "footer.get_app": "Hent appen",
@ -414,7 +414,7 @@
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} indlæg} other {{counter} indlæg}} i dag", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} indlæg} other {{counter} indlæg}} i dag",
"hashtag.feature": "Fremhæv på profil", "hashtag.feature": "Fremhæv på profil",
"hashtag.follow": "Følg hashtag", "hashtag.follow": "Følg hashtag",
"hashtag.mute": "Skjul #{hashtag}", "hashtag.mute": "Tavsgør #{hashtag}",
"hashtag.unfeature": "Fremhæv ikke på profil", "hashtag.unfeature": "Fremhæv ikke på profil",
"hashtag.unfollow": "Følg ikke længere hashtag", "hashtag.unfollow": "Følg ikke længere hashtag",
"hashtags.and_other": "…og {count, plural, one {}other {# flere}}", "hashtags.and_other": "…og {count, plural, one {}other {# flere}}",
@ -492,9 +492,9 @@
"keyboard_shortcuts.reply": "Besvar indlægget", "keyboard_shortcuts.reply": "Besvar indlægget",
"keyboard_shortcuts.requests": "Åbn liste over følgeanmodninger", "keyboard_shortcuts.requests": "Åbn liste over følgeanmodninger",
"keyboard_shortcuts.search": "Fokusér søgebjælke", "keyboard_shortcuts.search": "Fokusér søgebjælke",
"keyboard_shortcuts.spoilers": "Vis/skjul indholdsadvarsel-felt", "keyboard_shortcuts.spoilers": "Vis/skjul emnefelt",
"keyboard_shortcuts.start": "Åbn \"komme i gang\"-kolonne", "keyboard_shortcuts.start": "Åbn \"komme i gang\"-kolonne",
"keyboard_shortcuts.toggle_hidden": "Vis/skjul tekst bag indholdsadvarsel", "keyboard_shortcuts.toggle_hidden": "Vis/skjul tekst bag emnefelt",
"keyboard_shortcuts.toggle_sensitivity": "Vis/skjul medier", "keyboard_shortcuts.toggle_sensitivity": "Vis/skjul medier",
"keyboard_shortcuts.toot": "Påbegynd nyt indlæg", "keyboard_shortcuts.toot": "Påbegynd nyt indlæg",
"keyboard_shortcuts.translate": "for at oversætte et indlæg", "keyboard_shortcuts.translate": "for at oversætte et indlæg",
@ -543,10 +543,10 @@
"mute_modal.hide_options": "Skjul valgmuligheder", "mute_modal.hide_options": "Skjul valgmuligheder",
"mute_modal.indefinite": "Indtil jeg vælger at se dem igen", "mute_modal.indefinite": "Indtil jeg vælger at se dem igen",
"mute_modal.show_options": "Vis valgmuligheder", "mute_modal.show_options": "Vis valgmuligheder",
"mute_modal.they_can_mention_and_follow": "Vedkommende kan nævne og følge dig, men vil ikke blive vist.", "mute_modal.they_can_mention_and_follow": "De kan omtale og følge dig, men du vil ikke se dem.",
"mute_modal.they_wont_know": "De vil ikke vide, at de er blevet skjult.", "mute_modal.they_wont_know": "De vil ikke vide, at de er blevet skjult.",
"mute_modal.title": "Skjul bruger?", "mute_modal.title": "Skjul bruger?",
"mute_modal.you_wont_see_mentions": "Indlæg, som nævner vedkommende, vises ikke.", "mute_modal.you_wont_see_mentions": "Du vil ikke se indlæg som omtaler dem.",
"mute_modal.you_wont_see_posts": "De kan stadig se dine indlæg, men du vil ikke se deres.", "mute_modal.you_wont_see_posts": "De kan stadig se dine indlæg, men du vil ikke se deres.",
"navigation_bar.about": "Om", "navigation_bar.about": "Om",
"navigation_bar.account_settings": "Adgangskode og sikkerhed", "navigation_bar.account_settings": "Adgangskode og sikkerhed",
@ -560,7 +560,7 @@
"navigation_bar.favourites": "Favoritter", "navigation_bar.favourites": "Favoritter",
"navigation_bar.filters": "Skjulte ord", "navigation_bar.filters": "Skjulte ord",
"navigation_bar.follow_requests": "Følgeanmodninger", "navigation_bar.follow_requests": "Følgeanmodninger",
"navigation_bar.followed_tags": "Hashtags, som følges", "navigation_bar.followed_tags": "Hashtag, som følges",
"navigation_bar.follows_and_followers": "Følges og følgere", "navigation_bar.follows_and_followers": "Følges og følgere",
"navigation_bar.import_export": "Import og eksport", "navigation_bar.import_export": "Import og eksport",
"navigation_bar.lists": "Lister", "navigation_bar.lists": "Lister",
@ -572,7 +572,7 @@
"navigation_bar.mutes": "Skjulte brugere", "navigation_bar.mutes": "Skjulte brugere",
"navigation_bar.opened_in_classic_interface": "Indlæg, konti og visse andre sider åbnes som standard i den klassiske webgrænseflade.", "navigation_bar.opened_in_classic_interface": "Indlæg, konti og visse andre sider åbnes som standard i den klassiske webgrænseflade.",
"navigation_bar.preferences": "Præferencer", "navigation_bar.preferences": "Præferencer",
"navigation_bar.privacy_and_reach": "Fortrolighed og rækkevidde", "navigation_bar.privacy_and_reach": "Fortrolighed og udbredelse",
"navigation_bar.search": "Søg", "navigation_bar.search": "Søg",
"navigation_bar.search_trends": "Søg/Trender", "navigation_bar.search_trends": "Søg/Trender",
"navigation_panel.collapse_followed_tags": "Sammenfold menuen Fulgte hashtags", "navigation_panel.collapse_followed_tags": "Sammenfold menuen Fulgte hashtags",
@ -686,11 +686,11 @@
"notifications.policy.filter_limited_accounts_hint": "Begrænset af servermoderatorer", "notifications.policy.filter_limited_accounts_hint": "Begrænset af servermoderatorer",
"notifications.policy.filter_limited_accounts_title": "Modererede konti", "notifications.policy.filter_limited_accounts_title": "Modererede konti",
"notifications.policy.filter_new_accounts.hint": "Oprettet indenfor {days, plural, one {den seneste dag} other {de seneste # dage}}", "notifications.policy.filter_new_accounts.hint": "Oprettet indenfor {days, plural, one {den seneste dag} other {de seneste # dage}}",
"notifications.policy.filter_new_accounts_title": "Nye konti", "notifications.policy.filter_new_accounts_title": "Ny konti",
"notifications.policy.filter_not_followers_hint": "Inklusiv personer, som har fulgt dig {days, plural, one {mindre end én dag} other {mindre end # dage}}", "notifications.policy.filter_not_followers_hint": "Inklusiv personer, som har fulgt dig {days, plural, one {mindre end én dag} other {færre end # dage}}",
"notifications.policy.filter_not_followers_title": "Personer, som ikke følger dig", "notifications.policy.filter_not_followers_title": "Folk, som ikke følger dig",
"notifications.policy.filter_not_following_hint": "Indtil du manuelt godkender dem", "notifications.policy.filter_not_following_hint": "Indtil du manuelt godkender dem",
"notifications.policy.filter_not_following_title": "Personer, du ikke følger", "notifications.policy.filter_not_following_title": "Folk, du ikke følger",
"notifications.policy.filter_private_mentions_hint": "Filtreret, medmindre det er i svar på egen omtale, eller hvis afsenderen følges", "notifications.policy.filter_private_mentions_hint": "Filtreret, medmindre det er i svar på egen omtale, eller hvis afsenderen følges",
"notifications.policy.filter_private_mentions_title": "Uopfordrede private omtaler", "notifications.policy.filter_private_mentions_title": "Uopfordrede private omtaler",
"notifications.policy.title": "Håndtér notifikationer fra…", "notifications.policy.title": "Håndtér notifikationer fra…",
@ -830,7 +830,7 @@
"search_results.see_all": "Vis alle", "search_results.see_all": "Vis alle",
"search_results.statuses": "Indlæg", "search_results.statuses": "Indlæg",
"search_results.title": "Søg efter \"{q}\"", "search_results.title": "Søg efter \"{q}\"",
"server_banner.about_active_users": "Personer, som brugte denne server de seneste 30 dage (månedlige aktive brugere)", "server_banner.about_active_users": "Folk, som brugte denne server de seneste 30 dage (månedlige aktive brugere)",
"server_banner.active_users": "aktive brugere", "server_banner.active_users": "aktive brugere",
"server_banner.administered_by": "Håndteres af:", "server_banner.administered_by": "Håndteres af:",
"server_banner.is_one_of_many": "{domain} er en af de mange uafhængige Mastodon-servere, du kan bruge for at deltage i fediverset.", "server_banner.is_one_of_many": "{domain} er en af de mange uafhængige Mastodon-servere, du kan bruge for at deltage i fediverset.",
@ -885,10 +885,10 @@
"status.reblogged_by": "{name} fremhævede", "status.reblogged_by": "{name} fremhævede",
"status.reblogs": "{count, plural, one {# fremhævelse} other {# fremhævelser}}", "status.reblogs": "{count, plural, one {# fremhævelse} other {# fremhævelser}}",
"status.reblogs.empty": "Ingen har endnu fremhævet dette indlæg. Når nogen gør, vil det fremgå hér.", "status.reblogs.empty": "Ingen har endnu fremhævet dette indlæg. Når nogen gør, vil det fremgå hér.",
"status.redraft": "Slet og omskriv", "status.redraft": "Slet og omformulér",
"status.remove_bookmark": "Fjern bogmærke", "status.remove_bookmark": "Fjern bogmærke",
"status.remove_favourite": "Fjern fra favoritter", "status.remove_favourite": "Fjern fra favoritter",
"status.replied_in_thread": "Svarede i tråd", "status.replied_in_thread": "Svaret i tråd",
"status.replied_to": "Svarede {name}", "status.replied_to": "Svarede {name}",
"status.reply": "Besvar", "status.reply": "Besvar",
"status.replyAll": "Svar alle", "status.replyAll": "Svar alle",
@ -902,7 +902,7 @@
"status.translate": "Oversæt", "status.translate": "Oversæt",
"status.translated_from_with": "Oversat fra {lang} ved brug af {provider}", "status.translated_from_with": "Oversat fra {lang} ved brug af {provider}",
"status.uncached_media_warning": "Ingen forhåndsvisning", "status.uncached_media_warning": "Ingen forhåndsvisning",
"status.unmute_conversation": "Vis samtale", "status.unmute_conversation": "Genaktivér samtale",
"status.unpin": "Frigør fra profil", "status.unpin": "Frigør fra profil",
"subscribed_languages.lead": "Efter ændringen vises kun indlæg på de valgte sprog på din hjem- og listetidslinje. Vælger du ingen, vil du modtage indlæg på alle sprog.", "subscribed_languages.lead": "Efter ændringen vises kun indlæg på de valgte sprog på din hjem- og listetidslinje. Vælger du ingen, vil du modtage indlæg på alle sprog.",
"subscribed_languages.save": "Gem ændringer", "subscribed_languages.save": "Gem ændringer",

View File

@ -4,7 +4,7 @@
"about.default_locale": "Προεπιλογή", "about.default_locale": "Προεπιλογή",
"about.disclaimer": "Το Mastodon είναι ελεύθερο λογισμικό ανοιχτού κώδικα και εμπορικό σήμα της Mastodon gGmbH.", "about.disclaimer": "Το Mastodon είναι ελεύθερο λογισμικό ανοιχτού κώδικα και εμπορικό σήμα της Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Αιτιολογία μη διαθέσιμη", "about.domain_blocks.no_reason_available": "Αιτιολογία μη διαθέσιμη",
"about.domain_blocks.preamble": "Σε γενικές γραμμές το Mastodon σου επιτρέπει να βλέπεις περιεχόμενο και να αλληλεπιδράς με χρήστες από οποιονδήποτε άλλο διακομιστή σε ένα διασυνδεδεμένο σύμπαν διακομιστών (fediverse). Ακολουθούν οι εξαιρέσεις που ισχύουν για τον συγκεκριμένο διακομιστή.", "about.domain_blocks.preamble": "Σε γενικές γραμμές το Mastodon σού επιτρέπει να βλέπεις περιεχόμενο και να αλληλεπιδράς με χρήστες από οποιονδήποτε άλλο διακομιστή σε ένα διασυνδεδεμένο σύμπαν διακομιστών (fediverse). Ακολουθούν οι εξαιρέσεις που ισχύουν για τον συγκεκριμένο διακομιστή.",
"about.domain_blocks.silenced.explanation": "Συνήθως δε θα βλέπεις προφίλ και περιεχόμενο απ' αυτόν τον διακομιστή, εκτός αν κάνεις συγκεκριμένη αναζήτηση ή επιλέξεις να τον ακολουθήσεις.", "about.domain_blocks.silenced.explanation": "Συνήθως δε θα βλέπεις προφίλ και περιεχόμενο απ' αυτόν τον διακομιστή, εκτός αν κάνεις συγκεκριμένη αναζήτηση ή επιλέξεις να τον ακολουθήσεις.",
"about.domain_blocks.silenced.title": "Περιορισμένος", "about.domain_blocks.silenced.title": "Περιορισμένος",
"about.domain_blocks.suspended.explanation": "Τα δεδομένα αυτού του διακομιστή, δε θα επεξεργάζονται, δε θα αποθηκεύονται και δε θα ανταλλάσσονται, καθιστώντας οποιαδήποτε αλληλεπίδραση ή επικοινωνία με χρήστες από αυτόν το διακομιστή αδύνατη.", "about.domain_blocks.suspended.explanation": "Τα δεδομένα αυτού του διακομιστή, δε θα επεξεργάζονται, δε θα αποθηκεύονται και δε θα ανταλλάσσονται, καθιστώντας οποιαδήποτε αλληλεπίδραση ή επικοινωνία με χρήστες από αυτόν το διακομιστή αδύνατη.",
@ -65,7 +65,7 @@
"account.muting": "Σίγαση", "account.muting": "Σίγαση",
"account.mutual": "Ακολουθείτε ο ένας τον άλλο", "account.mutual": "Ακολουθείτε ο ένας τον άλλο",
"account.no_bio": "Δεν υπάρχει περιγραφή.", "account.no_bio": "Δεν υπάρχει περιγραφή.",
"account.open_original_page": "Άνοιγμα αυθεντικής σελίδας", "account.open_original_page": "Ανοικτό",
"account.posts": "Τουτ", "account.posts": "Τουτ",
"account.posts_with_replies": "Τουτ και απαντήσεις", "account.posts_with_replies": "Τουτ και απαντήσεις",
"account.remove_from_followers": "Κατάργηση {name} από τους ακόλουθους", "account.remove_from_followers": "Κατάργηση {name} από τους ακόλουθους",
@ -194,7 +194,7 @@
"compose.saved.body": "Η ανάρτηση αποθηκεύτηκε.", "compose.saved.body": "Η ανάρτηση αποθηκεύτηκε.",
"compose_form.direct_message_warning_learn_more": "Μάθε περισσότερα", "compose_form.direct_message_warning_learn_more": "Μάθε περισσότερα",
"compose_form.encryption_warning": "Οι δημοσιεύσεις στο Mastodon δεν είναι κρυπτογραφημένες από άκρο σε άκρο. Μη μοιράζεσαι ευαίσθητες πληροφορίες μέσω του Mastodon.", "compose_form.encryption_warning": "Οι δημοσιεύσεις στο Mastodon δεν είναι κρυπτογραφημένες από άκρο σε άκρο. Μη μοιράζεσαι ευαίσθητες πληροφορίες μέσω του Mastodon.",
"compose_form.hashtag_warning": "Αυτή η ανάρτηση δεν θα εμφανίζεται κάτω από οποιαδήποτε ετικέτα καθώς δεν είναι δημόσια. Μόνο οι δημόσιες αναρτήσεις μπορούν να αναζητηθούν με ετικέτα.", "compose_form.hashtag_warning": "Αυτή η δημοσίευση δεν θα εμφανίζεται κάτω από οποιαδήποτε ετικέτα καθώς δεν είναι δημόσια. Μόνο οι δημόσιες δημοσιεύσεις μπορούν να αναζητηθούν με ετικέτα.",
"compose_form.lock_disclaimer": "Ο λογαριασμός σου δεν είναι {locked}. Οποιοσδήποτε μπορεί να σε ακολουθήσει για να δει τις δημοσιεύσεις σου προς τους ακολούθους σου.", "compose_form.lock_disclaimer": "Ο λογαριασμός σου δεν είναι {locked}. Οποιοσδήποτε μπορεί να σε ακολουθήσει για να δει τις δημοσιεύσεις σου προς τους ακολούθους σου.",
"compose_form.lock_disclaimer.lock": "κλειδωμένο", "compose_form.lock_disclaimer.lock": "κλειδωμένο",
"compose_form.placeholder": "Τι σκέφτεσαι;", "compose_form.placeholder": "Τι σκέφτεσαι;",
@ -214,18 +214,11 @@
"confirmation_modal.cancel": "Άκυρο", "confirmation_modal.cancel": "Άκυρο",
"confirmations.block.confirm": "Αποκλεισμός", "confirmations.block.confirm": "Αποκλεισμός",
"confirmations.delete.confirm": "Διαγραφή", "confirmations.delete.confirm": "Διαγραφή",
"confirmations.delete.message": "Σίγουρα θες να διαγράψεις αυτή την ανάρτηση;", "confirmations.delete.message": "Σίγουρα θες να διαγράψεις αυτή τη δημοσίευση;",
"confirmations.delete.title": "Διαγραφή ανάρτησης;", "confirmations.delete.title": "Διαγραφή ανάρτησης;",
"confirmations.delete_list.confirm": "Διαγραφή", "confirmations.delete_list.confirm": "Διαγραφή",
"confirmations.delete_list.message": "Σίγουρα θες να διαγράψεις οριστικά αυτή τη λίστα;", "confirmations.delete_list.message": "Σίγουρα θες να διαγράψεις οριστικά αυτή τη λίστα;",
"confirmations.delete_list.title": "Διαγραφή λίστας;", "confirmations.delete_list.title": "Διαγραφή λίστας;",
"confirmations.discard_draft.confirm": "Απόρριψη και συνέχεια",
"confirmations.discard_draft.edit.cancel": "Συνέχιση επεξεργασίας",
"confirmations.discard_draft.edit.message": "Συνεχίζοντας θα απορρίψει τυχόν αλλαγές που έχετε κάνει στην ανάρτηση που επεξεργάζεστε.",
"confirmations.discard_draft.edit.title": "Απόρριψη αλλαγών στην ανάρτηση σας;",
"confirmations.discard_draft.post.cancel": "Συνέχιση προχείρου",
"confirmations.discard_draft.post.message": "Συνεχίζοντας θα απορρίψει την ανάρτηση που συνθέτετε.",
"confirmations.discard_draft.post.title": "Απόρριψη της πρόχειρης ανάρτησης σας;",
"confirmations.discard_edit_media.confirm": "Απόρριψη", "confirmations.discard_edit_media.confirm": "Απόρριψη",
"confirmations.discard_edit_media.message": "Έχεις μη αποθηκευμένες αλλαγές στην περιγραφή πολυμέσων ή στην προεπισκόπηση, απόρριψη ούτως ή άλλως;", "confirmations.discard_edit_media.message": "Έχεις μη αποθηκευμένες αλλαγές στην περιγραφή πολυμέσων ή στην προεπισκόπηση, απόρριψη ούτως ή άλλως;",
"confirmations.follow_to_list.confirm": "Ακολούθησε και πρόσθεσε στη λίστα", "confirmations.follow_to_list.confirm": "Ακολούθησε και πρόσθεσε στη λίστα",
@ -237,7 +230,7 @@
"confirmations.missing_alt_text.confirm": "Προσθήκη εναλ κειμένου", "confirmations.missing_alt_text.confirm": "Προσθήκη εναλ κειμένου",
"confirmations.missing_alt_text.message": "Η ανάρτησή σου περιέχει πολυμέσα χωρίς εναλλακτικό κείμενο. Η προσθήκη περιγραφών βοηθά να γίνει το περιεχόμενό σου προσβάσιμο σε περισσότερους ανθρώπους.", "confirmations.missing_alt_text.message": "Η ανάρτησή σου περιέχει πολυμέσα χωρίς εναλλακτικό κείμενο. Η προσθήκη περιγραφών βοηθά να γίνει το περιεχόμενό σου προσβάσιμο σε περισσότερους ανθρώπους.",
"confirmations.missing_alt_text.secondary": "Δημοσίευση όπως και να ΄χει", "confirmations.missing_alt_text.secondary": "Δημοσίευση όπως και να ΄χει",
"confirmations.missing_alt_text.title": "Προσθήκη εναλλακτικού κειμένου;", "confirmations.missing_alt_text.title": "Προσθήκη alt κειμένου;",
"confirmations.mute.confirm": "Αποσιώπηση", "confirmations.mute.confirm": "Αποσιώπηση",
"confirmations.redraft.confirm": "Διαγραφή & ξαναγράψιμο", "confirmations.redraft.confirm": "Διαγραφή & ξαναγράψιμο",
"confirmations.redraft.message": "Σίγουρα θέλεις να σβήσεις αυτή την ανάρτηση και να την ξαναγράψεις; Οι προτιμήσεις και προωθήσεις θα χαθούν και οι απαντήσεις στην αρχική ανάρτηση θα μείνουν ορφανές.", "confirmations.redraft.message": "Σίγουρα θέλεις να σβήσεις αυτή την ανάρτηση και να την ξαναγράψεις; Οι προτιμήσεις και προωθήσεις θα χαθούν και οι απαντήσεις στην αρχική ανάρτηση θα μείνουν ορφανές.",
@ -276,7 +269,7 @@
"domain_block_modal.you_will_lose_num_followers": "Θα χάσετε {followersCount, plural, one {{followersCountDisplay} ακόλουθο} other {{followersCountDisplay} ακόλουθους}} και {followingCount, plural, one {{followingCountDisplay} άτομο που ακολουθείτε} other {{followingCountDisplay} άτομα που ακολουθείτε}}.", "domain_block_modal.you_will_lose_num_followers": "Θα χάσετε {followersCount, plural, one {{followersCountDisplay} ακόλουθο} other {{followersCountDisplay} ακόλουθους}} και {followingCount, plural, one {{followingCountDisplay} άτομο που ακολουθείτε} other {{followingCountDisplay} άτομα που ακολουθείτε}}.",
"domain_block_modal.you_will_lose_relationships": "Θα χάσετε όλους τους ακόλουθους και τα άτομα που ακολουθείτε από αυτόν τον διακομιστή.", "domain_block_modal.you_will_lose_relationships": "Θα χάσετε όλους τους ακόλουθους και τα άτομα που ακολουθείτε από αυτόν τον διακομιστή.",
"domain_block_modal.you_wont_see_posts": "Δεν θα βλέπεις αναρτήσεις ή ειδοποιήσεις από χρήστες σε αυτόν το διακομιστή.", "domain_block_modal.you_wont_see_posts": "Δεν θα βλέπεις αναρτήσεις ή ειδοποιήσεις από χρήστες σε αυτόν το διακομιστή.",
"domain_pill.activitypub_lets_connect": "Σου επιτρέπει να συνδεθείς και να αλληλεπιδράσεις με τους ανθρώπους όχι μόνο στο Mastodon, αλλά και σε διαφορετικές κοινωνικές εφαρμογές.", "domain_pill.activitypub_lets_connect": "Σού επιτρέπει να συνδεθείς και να αλληλεπιδράσεις με τους ανθρώπους όχι μόνο στο Mastodon, αλλά και σε διαφορετικές κοινωνικές εφαρμογές.",
"domain_pill.activitypub_like_language": "Το ActivityPub είναι σαν τη γλώσσα Mastodon μιλάει με άλλα κοινωνικά δίκτυα.", "domain_pill.activitypub_like_language": "Το ActivityPub είναι σαν τη γλώσσα Mastodon μιλάει με άλλα κοινωνικά δίκτυα.",
"domain_pill.server": "Διακομιστής", "domain_pill.server": "Διακομιστής",
"domain_pill.their_handle": "Το πλήρες όνομα χρήστη:", "domain_pill.their_handle": "Το πλήρες όνομα χρήστη:",
@ -322,7 +315,7 @@
"empty_column.favourited_statuses": "Δεν έχεις καμία αγαπημένη ανάρτηση ακόμα. Μόλις αγαπήσεις κάποια, θα εμφανιστεί εδώ.", "empty_column.favourited_statuses": "Δεν έχεις καμία αγαπημένη ανάρτηση ακόμα. Μόλις αγαπήσεις κάποια, θα εμφανιστεί εδώ.",
"empty_column.favourites": "Κανείς δεν έχει αγαπήσει αυτή την ανάρτηση ακόμα. Μόλις το κάνει κάποιος, θα εμφανιστεί εδώ.", "empty_column.favourites": "Κανείς δεν έχει αγαπήσει αυτή την ανάρτηση ακόμα. Μόλις το κάνει κάποιος, θα εμφανιστεί εδώ.",
"empty_column.follow_requests": "Δεν έχεις κανένα αίτημα παρακολούθησης ακόμα. Μόλις λάβεις κάποιο, θα εμφανιστεί εδώ.", "empty_column.follow_requests": "Δεν έχεις κανένα αίτημα παρακολούθησης ακόμα. Μόλις λάβεις κάποιο, θα εμφανιστεί εδώ.",
"empty_column.followed_tags": "Δεν έχετε ακολουθήσει ακόμα καμία ετικέτα. Όταν το κάνετε, θα εμφανιστούν εδώ.", "empty_column.followed_tags": "Δεν έχετε παρακολουθήσει ακόμα καμία ετικέτα. Όταν το κάνετε, θα εμφανιστούν εδώ.",
"empty_column.hashtag": "Δεν υπάρχει ακόμα κάτι για αυτή την ετικέτα.", "empty_column.hashtag": "Δεν υπάρχει ακόμα κάτι για αυτή την ετικέτα.",
"empty_column.home": "Η τοπική σου ροή είναι κενή! Πήγαινε στο {public} ή κάνε αναζήτηση για να ξεκινήσεις και να γνωρίσεις άλλους χρήστες.", "empty_column.home": "Η τοπική σου ροή είναι κενή! Πήγαινε στο {public} ή κάνε αναζήτηση για να ξεκινήσεις και να γνωρίσεις άλλους χρήστες.",
"empty_column.list": "Δεν υπάρχει τίποτα σε αυτή τη λίστα ακόμα. Όταν τα μέλη της δημοσιεύσουν νέες καταστάσεις, θα εμφανιστούν εδώ.", "empty_column.list": "Δεν υπάρχει τίποτα σε αυτή τη λίστα ακόμα. Όταν τα μέλη της δημοσιεύσουν νέες καταστάσεις, θα εμφανιστούν εδώ.",
@ -386,7 +379,7 @@
"follow_suggestions.similar_to_recently_followed_longer": "Παρόμοια με προφίλ που ακολούθησες πρόσφατα", "follow_suggestions.similar_to_recently_followed_longer": "Παρόμοια με προφίλ που ακολούθησες πρόσφατα",
"follow_suggestions.view_all": "Εμφάνιση όλων", "follow_suggestions.view_all": "Εμφάνιση όλων",
"follow_suggestions.who_to_follow": "Ποιον να ακολουθήσεις", "follow_suggestions.who_to_follow": "Ποιον να ακολουθήσεις",
"followed_tags": "Ακολουθούμενες ετικέτες", "followed_tags": "Ετικέτες που ακολουθούνται",
"footer.about": "Σχετικά με", "footer.about": "Σχετικά με",
"footer.directory": "Κατάλογος προφίλ", "footer.directory": "Κατάλογος προφίλ",
"footer.get_app": "Αποκτήστε την εφαρμογή", "footer.get_app": "Αποκτήστε την εφαρμογή",
@ -417,7 +410,7 @@
"hashtag.mute": "Σίγαση #{hashtag}", "hashtag.mute": "Σίγαση #{hashtag}",
"hashtag.unfeature": "Να μην αναδεικνύεται στο προφίλ", "hashtag.unfeature": "Να μην αναδεικνύεται στο προφίλ",
"hashtag.unfollow": "Διακοπή παρακολούθησης ετικέτας", "hashtag.unfollow": "Διακοπή παρακολούθησης ετικέτας",
"hashtags.and_other": "…και {count, plural, other {# ακόμη}}", "hashtags.and_other": "…και {count, plural, one {}other {# ακόμη}}",
"hints.profiles.followers_may_be_missing": "Μπορεί να λείπουν ακόλουθοι για αυτό το προφίλ.", "hints.profiles.followers_may_be_missing": "Μπορεί να λείπουν ακόλουθοι για αυτό το προφίλ.",
"hints.profiles.follows_may_be_missing": "Άτομα που ακολουθούνται μπορεί να λείπουν απ' αυτό το προφίλ.", "hints.profiles.follows_may_be_missing": "Άτομα που ακολουθούνται μπορεί να λείπουν απ' αυτό το προφίλ.",
"hints.profiles.posts_may_be_missing": "Κάποιες αναρτήσεις από αυτό το προφίλ μπορεί να λείπουν.", "hints.profiles.posts_may_be_missing": "Κάποιες αναρτήσεις από αυτό το προφίλ μπορεί να λείπουν.",
@ -425,7 +418,7 @@
"hints.profiles.see_more_follows": "Δες περισσότερα άτομα που ακολουθούνται στο {domain}", "hints.profiles.see_more_follows": "Δες περισσότερα άτομα που ακολουθούνται στο {domain}",
"hints.profiles.see_more_posts": "Δες περισσότερες αναρτήσεις στο {domain}", "hints.profiles.see_more_posts": "Δες περισσότερες αναρτήσεις στο {domain}",
"hints.threads.replies_may_be_missing": "Απαντήσεις από άλλους διακομιστές μπορεί να λείπουν.", "hints.threads.replies_may_be_missing": "Απαντήσεις από άλλους διακομιστές μπορεί να λείπουν.",
"hints.threads.see_more": "Δες περισσότερες απαντήσεις στο {domain}", "hints.threads.see_more": "Δες περισσότερες αναρτήσεις στο {domain}",
"home.column_settings.show_quotes": "Εμφάνιση παραθεμάτων", "home.column_settings.show_quotes": "Εμφάνιση παραθεμάτων",
"home.column_settings.show_reblogs": "Εμφάνιση προωθήσεων", "home.column_settings.show_reblogs": "Εμφάνιση προωθήσεων",
"home.column_settings.show_replies": "Εμφάνιση απαντήσεων", "home.column_settings.show_replies": "Εμφάνιση απαντήσεων",
@ -456,7 +449,7 @@
"interaction_modal.no_account_yet": "Δεν έχεις ακόμη λογαριασμό;", "interaction_modal.no_account_yet": "Δεν έχεις ακόμη λογαριασμό;",
"interaction_modal.on_another_server": "Σε διαφορετικό διακομιστή", "interaction_modal.on_another_server": "Σε διαφορετικό διακομιστή",
"interaction_modal.on_this_server": "Σε αυτόν τον διακομιστή", "interaction_modal.on_this_server": "Σε αυτόν τον διακομιστή",
"interaction_modal.title.favourite": "Αγάπησε την ανάρτηση του χρήστη {name}", "interaction_modal.title.favourite": "Favorite {name}'s post\nΠροτίμησε την ανάρτηση της/του {name}",
"interaction_modal.title.follow": "Ακολούθησε {name}", "interaction_modal.title.follow": "Ακολούθησε {name}",
"interaction_modal.title.reblog": "Ενίσχυσε την ανάρτηση του {name}", "interaction_modal.title.reblog": "Ενίσχυσε την ανάρτηση του {name}",
"interaction_modal.title.reply": "Απάντηση στην ανάρτηση του {name}", "interaction_modal.title.reply": "Απάντηση στην ανάρτηση του {name}",
@ -468,13 +461,13 @@
"keyboard_shortcuts.back": "Μετάβαση πίσω", "keyboard_shortcuts.back": "Μετάβαση πίσω",
"keyboard_shortcuts.blocked": "Άνοιγμα λίστας αποκλεισμένων χρηστών", "keyboard_shortcuts.blocked": "Άνοιγμα λίστας αποκλεισμένων χρηστών",
"keyboard_shortcuts.boost": "Ενίσχυση ανάρτησης", "keyboard_shortcuts.boost": "Ενίσχυση ανάρτησης",
"keyboard_shortcuts.column": "Εστίαση στη στήλη", "keyboard_shortcuts.column": "Στήλη εστίασης",
"keyboard_shortcuts.compose": "Εστίαση στην περιοχή συγγραφής κειμένου", "keyboard_shortcuts.compose": "Περιοχή συγγραφής κειμένου εστίασης",
"keyboard_shortcuts.description": "Περιγραφή", "keyboard_shortcuts.description": "Περιγραφή",
"keyboard_shortcuts.direct": "για το άνοιγμα της στήλης ιδιωτικών επισημάνσεων", "keyboard_shortcuts.direct": "για το άνοιγμα της στήλης ιδιωτικών επισημάνσεων",
"keyboard_shortcuts.down": "Μετακίνηση προς τα κάτω στη λίστα", "keyboard_shortcuts.down": "κίνηση προς τα κάτω στη λίστα",
"keyboard_shortcuts.enter": "Άνοιγμα ανάρτησης", "keyboard_shortcuts.enter": "Εμφάνιση ανάρτησης",
"keyboard_shortcuts.favourite": "Αγάπησε την ανάρτηση", "keyboard_shortcuts.favourite": "Αγαπημένη δημοσίευση",
"keyboard_shortcuts.favourites": "Άνοιγμα λίστας αγαπημένων", "keyboard_shortcuts.favourites": "Άνοιγμα λίστας αγαπημένων",
"keyboard_shortcuts.federated": "Άνοιγμα ροής συναλλαγών", "keyboard_shortcuts.federated": "Άνοιγμα ροής συναλλαγών",
"keyboard_shortcuts.heading": "Συντομεύσεις πληκτρολογίου", "keyboard_shortcuts.heading": "Συντομεύσεις πληκτρολογίου",
@ -491,13 +484,13 @@
"keyboard_shortcuts.profile": "Άνοιγμα προφίλ συγγραφέα", "keyboard_shortcuts.profile": "Άνοιγμα προφίλ συγγραφέα",
"keyboard_shortcuts.reply": "Απάντηση στην ανάρτηση", "keyboard_shortcuts.reply": "Απάντηση στην ανάρτηση",
"keyboard_shortcuts.requests": "Άνοιγμα λίστας αιτημάτων ακολούθησης", "keyboard_shortcuts.requests": "Άνοιγμα λίστας αιτημάτων ακολούθησης",
"keyboard_shortcuts.search": "Εστίαση στη γραμμή αναζήτησης", "keyboard_shortcuts.search": "Γραμμή αναζήτησης εστίασης",
"keyboard_shortcuts.spoilers": "Εμφάνιση/απόκρυψη πεδίου CW", "keyboard_shortcuts.spoilers": "Εμφάνιση/απόκρυψη πεδίου CW",
"keyboard_shortcuts.start": "Άνοιγμα της στήλης \"Ας ξεκινήσουμε\"", "keyboard_shortcuts.start": "Άνοιγμα της στήλης \"Ας ξεκινήσουμε\"",
"keyboard_shortcuts.toggle_hidden": "Εμφάνιση/απόκρυψη κειμένου πίσω από το CW", "keyboard_shortcuts.toggle_hidden": "Εμφάνιση/απόκρυψη κειμένου πίσω από το CW",
"keyboard_shortcuts.toggle_sensitivity": "Εμφάνιση/απόκρυψη πολυμέσων", "keyboard_shortcuts.toggle_sensitivity": "Εμφάνιση/απόκρυψη πολυμέσων",
"keyboard_shortcuts.toot": "Δημιουργία νέας ανάρτησης", "keyboard_shortcuts.toot": "Δημιουργία νέας ανάρτησης",
"keyboard_shortcuts.translate": "για να μεταφραστεί μια ανάρτηση", "keyboard_shortcuts.translate": "να μεταφράσει μια δημοσίευση",
"keyboard_shortcuts.unfocus": "Αποεστίαση του πεδίου σύνθεσης/αναζήτησης", "keyboard_shortcuts.unfocus": "Αποεστίαση του πεδίου σύνθεσης/αναζήτησης",
"keyboard_shortcuts.up": "Μετακίνηση προς τα πάνω στη λίστα", "keyboard_shortcuts.up": "Μετακίνηση προς τα πάνω στη λίστα",
"lightbox.close": "Κλείσιμο", "lightbox.close": "Κλείσιμο",
@ -560,12 +553,10 @@
"navigation_bar.favourites": "Αγαπημένα", "navigation_bar.favourites": "Αγαπημένα",
"navigation_bar.filters": "Αποσιωπημένες λέξεις", "navigation_bar.filters": "Αποσιωπημένες λέξεις",
"navigation_bar.follow_requests": "Αιτήματα ακολούθησης", "navigation_bar.follow_requests": "Αιτήματα ακολούθησης",
"navigation_bar.followed_tags": "Ακολουθούμενες ετικέτες", "navigation_bar.followed_tags": "Ετικέτες που ακολουθούνται",
"navigation_bar.follows_and_followers": "Ακολουθείς και σε ακολουθούν", "navigation_bar.follows_and_followers": "Ακολουθείς και σε ακολουθούν",
"navigation_bar.import_export": "Εισαγωγή και εξαγωγή", "navigation_bar.import_export": "Εισαγωγή και εξαγωγή",
"navigation_bar.lists": "Λίστες", "navigation_bar.lists": "Λίστες",
"navigation_bar.live_feed_local": "Ζωντανή ροή (τοπική)",
"navigation_bar.live_feed_public": "Ζωντανή ροή (δημόσια)",
"navigation_bar.logout": "Αποσύνδεση", "navigation_bar.logout": "Αποσύνδεση",
"navigation_bar.moderation": "Συντονισμός", "navigation_bar.moderation": "Συντονισμός",
"navigation_bar.more": "Περισσότερα", "navigation_bar.more": "Περισσότερα",
@ -575,9 +566,9 @@
"navigation_bar.privacy_and_reach": "Ιδιωτικότητα και προσιτότητα", "navigation_bar.privacy_and_reach": "Ιδιωτικότητα και προσιτότητα",
"navigation_bar.search": "Αναζήτηση", "navigation_bar.search": "Αναζήτηση",
"navigation_bar.search_trends": "Αναζήτηση / Τάσεις", "navigation_bar.search_trends": "Αναζήτηση / Τάσεις",
"navigation_panel.collapse_followed_tags": "Σύμπτυξη μενού ετικετών που ακολουθείτε", "navigation_panel.collapse_followed_tags": "Σύμπτυξη μενού ετικετών που ακολουθούνται",
"navigation_panel.collapse_lists": "Σύμπτυξη μενού λίστας", "navigation_panel.collapse_lists": "Σύμπτυξη μενού λίστας",
"navigation_panel.expand_followed_tags": "Επέκταση μενού ετικετών που ακολουθείτε", "navigation_panel.expand_followed_tags": "Επέκταση μενού ετικετών που ακολουθούνται",
"navigation_panel.expand_lists": "Επέκταση μενού λίστας", "navigation_panel.expand_lists": "Επέκταση μενού λίστας",
"not_signed_in_indicator.not_signed_in": "Πρέπει να συνδεθείς για να αποκτήσεις πρόσβαση σε αυτόν τον πόρο.", "not_signed_in_indicator.not_signed_in": "Πρέπει να συνδεθείς για να αποκτήσεις πρόσβαση σε αυτόν τον πόρο.",
"notification.admin.report": "Ο/Η {name} ανέφερε τον {target}", "notification.admin.report": "Ο/Η {name} ανέφερε τον {target}",
@ -589,11 +580,11 @@
"notification.admin.sign_up.name_and_others": "{name} και {count, plural, one {# ακόμη} other {# ακόμη}} έχουν εγγραφεί", "notification.admin.sign_up.name_and_others": "{name} και {count, plural, one {# ακόμη} other {# ακόμη}} έχουν εγγραφεί",
"notification.annual_report.message": "Το #Wrapstodon {year} σε περιμένει! Αποκάλυψε τα στιγμιότυπα της χρονιάς και αξέχαστες στιγμές σου στο Mastodon!", "notification.annual_report.message": "Το #Wrapstodon {year} σε περιμένει! Αποκάλυψε τα στιγμιότυπα της χρονιάς και αξέχαστες στιγμές σου στο Mastodon!",
"notification.annual_report.view": "Προβολή #Wrapstodon", "notification.annual_report.view": "Προβολή #Wrapstodon",
"notification.favourite": "{name} αγάπησε την ανάρτηση σου", "notification.favourite": "{name} favorited your post\n{name} προτίμησε την ανάρτηση σου",
"notification.favourite.name_and_others_with_link": "{name} και <a>{count, plural, one {# ακόμη} other {# ακόμη}}</a> αγάπησαν την ανάρτησή σου", "notification.favourite.name_and_others_with_link": "{name} και <a>{count, plural, one {# ακόμη} other {# ακόμη}}</a> αγάπησαν την ανάρτησή σου",
"notification.favourite_pm": "Ο χρήστης {name} αγάπησε την ιδιωτική σου επισήμανση", "notification.favourite_pm": "Ο χρήστης {name} αγάπησε την ιδιωτική σου επισήμανση",
"notification.favourite_pm.name_and_others_with_link": "Ο χρήστης {name} και <a>{count, plural, one {# ακόμη} other {# ακόμη}}</a> αγάπησαν την ιδωτική σου επισήμανση", "notification.favourite_pm.name_and_others_with_link": "Ο χρήστης {name} και <a>{count, plural, one {# ακόμη} other {# ακόμη}}</a> αγάπησαν την ιδωτική σου επισήμανση",
"notification.follow": "Ο χρήστης {name} σε ακολούθησε", "notification.follow": "Ο/Η {name} σε ακολούθησε",
"notification.follow.name_and_others": "Ο χρήστης {name} και <a>{count, plural, one {# ακόμη} other {# ακόμη}}</a> σε ακολούθησαν", "notification.follow.name_and_others": "Ο χρήστης {name} και <a>{count, plural, one {# ακόμη} other {# ακόμη}}</a> σε ακολούθησαν",
"notification.follow_request": "Ο/H {name} ζήτησε να σε ακολουθήσει", "notification.follow_request": "Ο/H {name} ζήτησε να σε ακολουθήσει",
"notification.follow_request.name_and_others": "{name} και {count, plural, one {# άλλος} other {# άλλοι}} ζήτησαν να σε ακολουθήσουν", "notification.follow_request.name_and_others": "{name} και {count, plural, one {# άλλος} other {# άλλοι}} ζήτησαν να σε ακολουθήσουν",
@ -726,7 +717,7 @@
"poll_button.add_poll": "Προσθήκη δημοσκόπησης", "poll_button.add_poll": "Προσθήκη δημοσκόπησης",
"poll_button.remove_poll": "Αφαίρεση δημοσκόπησης", "poll_button.remove_poll": "Αφαίρεση δημοσκόπησης",
"privacy.change": "Προσαρμογή ιδιωτικότητας ανάρτησης", "privacy.change": "Προσαρμογή ιδιωτικότητας ανάρτησης",
"privacy.direct.long": "Όλοι όσοι αναφέρθηκαν στην ανάρτηση", "privacy.direct.long": "Όλοι όσοι αναφέρθηκαν στη δημοσίευση",
"privacy.direct.short": "Ιδιωτική επισήμανση", "privacy.direct.short": "Ιδιωτική επισήμανση",
"privacy.private.long": "Μόνο οι ακόλουθοί σας", "privacy.private.long": "Μόνο οι ακόλουθοί σας",
"privacy.private.short": "Ακόλουθοι", "privacy.private.short": "Ακόλουθοι",
@ -804,8 +795,7 @@
"report_notification.categories.spam_sentence": "ανεπιθύμητα", "report_notification.categories.spam_sentence": "ανεπιθύμητα",
"report_notification.categories.violation": "Παραβίαση κανόνα", "report_notification.categories.violation": "Παραβίαση κανόνα",
"report_notification.categories.violation_sentence": "παραβίαση κανόνα", "report_notification.categories.violation_sentence": "παραβίαση κανόνα",
"report_notification.open": "Άνοιγμα αναφοράς", "report_notification.open": "Ανοιχτή αναφορά",
"search.clear": "Εκκαθάριση αναζήτησης",
"search.no_recent_searches": "Καμία πρόσφατη αναζήτηση", "search.no_recent_searches": "Καμία πρόσφατη αναζήτηση",
"search.placeholder": "Αναζήτηση", "search.placeholder": "Αναζήτηση",
"search.quick_action.account_search": "Προφίλ που ταιριάζουν με {x}", "search.quick_action.account_search": "Προφίλ που ταιριάζουν με {x}",
@ -858,7 +848,7 @@
"status.edited_x_times": "Επεξεργάστηκε {count, plural, one {{count} φορά} other {{count} φορές}}", "status.edited_x_times": "Επεξεργάστηκε {count, plural, one {{count} φορά} other {{count} φορές}}",
"status.embed": "Απόκτηση κώδικα ενσωμάτωσης", "status.embed": "Απόκτηση κώδικα ενσωμάτωσης",
"status.favourite": "Αγαπημένα", "status.favourite": "Αγαπημένα",
"status.favourites": "{count, plural, one {αγαπημένο} other {αγαπημένα}}", "status.favourites": "{count, plural, one {# αγαπημένο} other {# αγαπημένα}}",
"status.filter": "Φιλτράρισμα αυτής της ανάρτησης", "status.filter": "Φιλτράρισμα αυτής της ανάρτησης",
"status.history.created": "{name} δημιούργησε στις {date}", "status.history.created": "{name} δημιούργησε στις {date}",
"status.history.edited": "{name} επεξεργάστηκε στις {date}", "status.history.edited": "{name} επεξεργάστηκε στις {date}",
@ -883,7 +873,7 @@
"status.reblog": "Ενίσχυση", "status.reblog": "Ενίσχυση",
"status.reblog_private": "Ενίσχυση με αρχική ορατότητα", "status.reblog_private": "Ενίσχυση με αρχική ορατότητα",
"status.reblogged_by": "{name} προώθησε", "status.reblogged_by": "{name} προώθησε",
"status.reblogs": "{count, plural, one {ενίσχυση} other {ενισχύσεις}}", "status.reblogs": "{count, plural, one {# ενίσχυση} other {# ενισχύσεις}}",
"status.reblogs.empty": "Κανείς δεν ενίσχυσε αυτή την ανάρτηση ακόμα. Μόλις το κάνει κάποιος, θα εμφανιστεί εδώ.", "status.reblogs.empty": "Κανείς δεν ενίσχυσε αυτή την ανάρτηση ακόμα. Μόλις το κάνει κάποιος, θα εμφανιστεί εδώ.",
"status.redraft": "Σβήσε & ξαναγράψε", "status.redraft": "Σβήσε & ξαναγράψε",
"status.remove_bookmark": "Αφαίρεση σελιδοδείκτη", "status.remove_bookmark": "Αφαίρεση σελιδοδείκτη",
@ -895,8 +885,8 @@
"status.report": "Αναφορά @{name}", "status.report": "Αναφορά @{name}",
"status.sensitive_warning": "Ευαίσθητο περιεχόμενο", "status.sensitive_warning": "Ευαίσθητο περιεχόμενο",
"status.share": "Κοινοποίηση", "status.share": "Κοινοποίηση",
"status.show_less_all": "Δείξε λιγότερο για όλες", "status.show_less_all": "Δείξε λιγότερα για όλα",
"status.show_more_all": "Δείξε περισσότερο για όλες", "status.show_more_all": "Δείξε περισσότερα για όλα",
"status.show_original": "Εμφάνιση αρχικού", "status.show_original": "Εμφάνιση αρχικού",
"status.title.with_attachments": "{user} δημοσίευσε {attachmentCount, plural, one {ένα συνημμένο} other {{attachmentCount} συνημμένα}}", "status.title.with_attachments": "{user} δημοσίευσε {attachmentCount, plural, one {ένα συνημμένο} other {{attachmentCount} συνημμένα}}",
"status.translate": "Μετάφραση", "status.translate": "Μετάφραση",

View File

@ -219,13 +219,6 @@
"confirmations.delete_list.confirm": "Delete", "confirmations.delete_list.confirm": "Delete",
"confirmations.delete_list.message": "Are you sure you want to permanently delete this list?", "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
"confirmations.delete_list.title": "Delete list?", "confirmations.delete_list.title": "Delete list?",
"confirmations.discard_draft.confirm": "Discard and continue",
"confirmations.discard_draft.edit.cancel": "Resume editing",
"confirmations.discard_draft.edit.message": "Continuing will discard any changes you have made to the post you are currently editing.",
"confirmations.discard_draft.edit.title": "Discard changes to your post?",
"confirmations.discard_draft.post.cancel": "Resume draft",
"confirmations.discard_draft.post.message": "Continuing will discard the post you are currently composing.",
"confirmations.discard_draft.post.title": "Discard your draft post?",
"confirmations.discard_edit_media.confirm": "Discard", "confirmations.discard_edit_media.confirm": "Discard",
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.follow_to_list.confirm": "Follow and add to list", "confirmations.follow_to_list.confirm": "Follow and add to list",
@ -337,7 +330,6 @@
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
"errors.unexpected_crash.report_issue": "Report issue", "errors.unexpected_crash.report_issue": "Report issue",
"explore.suggested_follows": "People", "explore.suggested_follows": "People",
"explore.title": "Trending",
"explore.trending_links": "News", "explore.trending_links": "News",
"explore.trending_statuses": "Posts", "explore.trending_statuses": "Posts",
"explore.trending_tags": "Hashtags", "explore.trending_tags": "Hashtags",
@ -549,10 +541,8 @@
"mute_modal.you_wont_see_mentions": "You won't see posts that mention them.", "mute_modal.you_wont_see_mentions": "You won't see posts that mention them.",
"mute_modal.you_wont_see_posts": "They can still see your posts, but you won't see theirs.", "mute_modal.you_wont_see_posts": "They can still see your posts, but you won't see theirs.",
"navigation_bar.about": "About", "navigation_bar.about": "About",
"navigation_bar.account_settings": "Password and security",
"navigation_bar.administration": "Administration", "navigation_bar.administration": "Administration",
"navigation_bar.advanced_interface": "Open in advanced web interface", "navigation_bar.advanced_interface": "Open in advanced web interface",
"navigation_bar.automated_deletion": "Automated post deletion",
"navigation_bar.blocks": "Blocked users", "navigation_bar.blocks": "Blocked users",
"navigation_bar.bookmarks": "Bookmarks", "navigation_bar.bookmarks": "Bookmarks",
"navigation_bar.direct": "Private mentions", "navigation_bar.direct": "Private mentions",
@ -562,23 +552,13 @@
"navigation_bar.follow_requests": "Follow requests", "navigation_bar.follow_requests": "Follow requests",
"navigation_bar.followed_tags": "Followed hashtags", "navigation_bar.followed_tags": "Followed hashtags",
"navigation_bar.follows_and_followers": "Follows and followers", "navigation_bar.follows_and_followers": "Follows and followers",
"navigation_bar.import_export": "Import and export",
"navigation_bar.lists": "Lists", "navigation_bar.lists": "Lists",
"navigation_bar.live_feed_local": "Live feed (local)",
"navigation_bar.live_feed_public": "Live feed (public)",
"navigation_bar.logout": "Logout", "navigation_bar.logout": "Logout",
"navigation_bar.moderation": "Moderation", "navigation_bar.moderation": "Moderation",
"navigation_bar.more": "More",
"navigation_bar.mutes": "Muted users", "navigation_bar.mutes": "Muted users",
"navigation_bar.opened_in_classic_interface": "Posts, accounts, and other specific pages are opened by default in the classic web interface.", "navigation_bar.opened_in_classic_interface": "Posts, accounts, and other specific pages are opened by default in the classic web interface.",
"navigation_bar.preferences": "Preferences", "navigation_bar.preferences": "Preferences",
"navigation_bar.privacy_and_reach": "Privacy and reach",
"navigation_bar.search": "Search", "navigation_bar.search": "Search",
"navigation_bar.search_trends": "Search / Trending",
"navigation_panel.collapse_followed_tags": "Collapse followed hashtags menu",
"navigation_panel.collapse_lists": "Collapse list menu",
"navigation_panel.expand_followed_tags": "Expand followed hashtags menu",
"navigation_panel.expand_lists": "Expand list menu",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.admin.report": "{name} reported {target}", "notification.admin.report": "{name} reported {target}",
"notification.admin.report_account": "{name} reported {count, plural, one {one post} other {# posts}} from {target} for {category}", "notification.admin.report_account": "{name} reported {count, plural, one {one post} other {# posts}} from {target} for {category}",
@ -805,7 +785,6 @@
"report_notification.categories.violation": "Rule violation", "report_notification.categories.violation": "Rule violation",
"report_notification.categories.violation_sentence": "rule violation", "report_notification.categories.violation_sentence": "rule violation",
"report_notification.open": "Open report", "report_notification.open": "Open report",
"search.clear": "Clear search",
"search.no_recent_searches": "No recent searches", "search.no_recent_searches": "No recent searches",
"search.placeholder": "Search", "search.placeholder": "Search",
"search.quick_action.account_search": "Profiles matching {x}", "search.quick_action.account_search": "Profiles matching {x}",
@ -908,10 +887,7 @@
"subscribed_languages.save": "Save changes", "subscribed_languages.save": "Save changes",
"subscribed_languages.target": "Change subscribed languages for {target}", "subscribed_languages.target": "Change subscribed languages for {target}",
"tabs_bar.home": "Home", "tabs_bar.home": "Home",
"tabs_bar.menu": "Menu",
"tabs_bar.notifications": "Notifications", "tabs_bar.notifications": "Notifications",
"tabs_bar.publish": "New Post",
"tabs_bar.search": "Search",
"terms_of_service.effective_as_of": "Effective as of {date}", "terms_of_service.effective_as_of": "Effective as of {date}",
"terms_of_service.title": "Terms of Service", "terms_of_service.title": "Terms of Service",
"terms_of_service.upcoming_changes_on": "Upcoming changes on {date}", "terms_of_service.upcoming_changes_on": "Upcoming changes on {date}",

View File

@ -858,7 +858,7 @@
"status.edited_x_times": "Editado {count, plural, one {{count} vez} other {{count} veces}}", "status.edited_x_times": "Editado {count, plural, one {{count} vez} other {{count} veces}}",
"status.embed": "Obtener código para insertar", "status.embed": "Obtener código para insertar",
"status.favourite": "Marcar como favorito", "status.favourite": "Marcar como favorito",
"status.favourites": "{count, plural, one {vez marcado como favorito} other {veces marcado como favorito}}", "status.favourites": "{count, plural, one {# vez marcado como favorito} other {# veces marcado como favorito}}",
"status.filter": "Filtrar este mensaje", "status.filter": "Filtrar este mensaje",
"status.history.created": "Creado por {name}, {date}", "status.history.created": "Creado por {name}, {date}",
"status.history.edited": "Editado por {name}, {date}", "status.history.edited": "Editado por {name}, {date}",

View File

@ -795,7 +795,7 @@
"report.thanks.title_actionable": "Gracias por informar, estudiaremos esto.", "report.thanks.title_actionable": "Gracias por informar, estudiaremos esto.",
"report.unfollow": "Dejar de seguir a @{name}", "report.unfollow": "Dejar de seguir a @{name}",
"report.unfollow_explanation": "Estás siguiendo esta cuenta. Para dejar de ver sus publicaciones en tu página de inicio, deja de seguirla.", "report.unfollow_explanation": "Estás siguiendo esta cuenta. Para dejar de ver sus publicaciones en tu página de inicio, deja de seguirla.",
"report_notification.attached_statuses": "{count, plural, one {{count} publicación adjunta} other {{count} publicaciones adjuntas}}", "report_notification.attached_statuses": "{count, plural, one {{count} publicación} other {{count} publicaciones}} adjunta(s)",
"report_notification.categories.legal": "Legal", "report_notification.categories.legal": "Legal",
"report_notification.categories.legal_sentence": "contenido ilegal", "report_notification.categories.legal_sentence": "contenido ilegal",
"report_notification.categories.other": "Otros", "report_notification.categories.other": "Otros",

View File

@ -167,7 +167,7 @@
"column.domain_blocks": "Peidetud domeenid", "column.domain_blocks": "Peidetud domeenid",
"column.edit_list": "Muuda loendit", "column.edit_list": "Muuda loendit",
"column.favourites": "Lemmikud", "column.favourites": "Lemmikud",
"column.firehose": "Postitused reaalajas", "column.firehose": "Laiv lõimed",
"column.follow_requests": "Jälgimistaotlused", "column.follow_requests": "Jälgimistaotlused",
"column.home": "Kodu", "column.home": "Kodu",
"column.list_members": "Halda loendi liikmeid", "column.list_members": "Halda loendi liikmeid",
@ -337,7 +337,7 @@
"errors.unexpected_crash.copy_stacktrace": "Kopeeri stacktrace lõikelauale", "errors.unexpected_crash.copy_stacktrace": "Kopeeri stacktrace lõikelauale",
"errors.unexpected_crash.report_issue": "Teavita veast", "errors.unexpected_crash.report_issue": "Teavita veast",
"explore.suggested_follows": "Inimesed", "explore.suggested_follows": "Inimesed",
"explore.title": "Populaarsust koguv", "explore.title": "Populaarsust kohuv",
"explore.trending_links": "Uudised", "explore.trending_links": "Uudised",
"explore.trending_statuses": "Postitused", "explore.trending_statuses": "Postitused",
"explore.trending_tags": "Sildid", "explore.trending_tags": "Sildid",
@ -389,7 +389,7 @@
"followed_tags": "Jälgitavad märksõnad", "followed_tags": "Jälgitavad märksõnad",
"footer.about": "Teave", "footer.about": "Teave",
"footer.directory": "Profiilikataloog", "footer.directory": "Profiilikataloog",
"footer.get_app": "Laadi rakendus", "footer.get_app": "Tõmba äpp",
"footer.keyboard_shortcuts": "Kiirklahvid", "footer.keyboard_shortcuts": "Kiirklahvid",
"footer.privacy_policy": "Isikuandmete kaitse", "footer.privacy_policy": "Isikuandmete kaitse",
"footer.source_code": "Lähtekood", "footer.source_code": "Lähtekood",
@ -831,7 +831,7 @@
"search_results.statuses": "Postitused", "search_results.statuses": "Postitused",
"search_results.title": "Otsi märksõna: {q}", "search_results.title": "Otsi märksõna: {q}",
"server_banner.about_active_users": "Inimesed, kes kasutavad seda serverit viimase 30 päeva jooksul (kuu aktiivsed kasutajad)", "server_banner.about_active_users": "Inimesed, kes kasutavad seda serverit viimase 30 päeva jooksul (kuu aktiivsed kasutajad)",
"server_banner.active_users": "aktiivset kasutajaid", "server_banner.active_users": "aktiivsed kasutajad",
"server_banner.administered_by": "Administraator:", "server_banner.administered_by": "Administraator:",
"server_banner.is_one_of_many": "{domain} on üks paljudest sõltumatutest Mastodoni serveritest, mida saab fediversumis osalemiseks kasutada.", "server_banner.is_one_of_many": "{domain} on üks paljudest sõltumatutest Mastodoni serveritest, mida saab fediversumis osalemiseks kasutada.",
"server_banner.server_stats": "Serveri statistika:", "server_banner.server_stats": "Serveri statistika:",
@ -858,7 +858,7 @@
"status.edited_x_times": "Muudetud {count, plural, one{{count} kord} other {{count} korda}}", "status.edited_x_times": "Muudetud {count, plural, one{{count} kord} other {{count} korda}}",
"status.embed": "Hangi manustamiskood", "status.embed": "Hangi manustamiskood",
"status.favourite": "Lemmik", "status.favourite": "Lemmik",
"status.favourites": "{count, plural, one {lemmik} other {lemmikut}}", "status.favourites": "{count, plural, one {lemmik} other {lemmikud}}",
"status.filter": "Filtreeri seda postitust", "status.filter": "Filtreeri seda postitust",
"status.history.created": "{name} lõi {date}", "status.history.created": "{name} lõi {date}",
"status.history.edited": "{name} muutis {date}", "status.history.edited": "{name} muutis {date}",

View File

@ -1,7 +1,6 @@
{ {
"about.blocks": "Moderatutako zerbitzariak", "about.blocks": "Moderatutako zerbitzariak",
"about.contact": "Kontaktua:", "about.contact": "Kontaktua:",
"about.default_locale": "Lehenetsia",
"about.disclaimer": "Mastodon software libre eta kode irekikoa da, eta Mastodon gGmbH-ren marka erregistratua.", "about.disclaimer": "Mastodon software libre eta kode irekikoa da, eta Mastodon gGmbH-ren marka erregistratua.",
"about.domain_blocks.no_reason_available": "Arrazoia ez dago eskuragarri", "about.domain_blocks.no_reason_available": "Arrazoia ez dago eskuragarri",
"about.domain_blocks.preamble": "Mastodonek orokorrean aukera ematen dizu fedibertsoko beste zerbitzarietako erabiltzaileen edukia ikusi eta haiekin komunikatzeko. Zerbitzari zehatz honi ezarritako salbuespenak hauek dira.", "about.domain_blocks.preamble": "Mastodonek orokorrean aukera ematen dizu fedibertsoko beste zerbitzarietako erabiltzaileen edukia ikusi eta haiekin komunikatzeko. Zerbitzari zehatz honi ezarritako salbuespenak hauek dira.",
@ -9,7 +8,6 @@
"about.domain_blocks.silenced.title": "Mugatua", "about.domain_blocks.silenced.title": "Mugatua",
"about.domain_blocks.suspended.explanation": "Ez da zerbitzari honetako daturik prozesatuko, gordeko, edo partekatuko, zerbitzari honetako erabiltzaileekin komunikatzea ezinezkoa eginez.", "about.domain_blocks.suspended.explanation": "Ez da zerbitzari honetako daturik prozesatuko, gordeko, edo partekatuko, zerbitzari honetako erabiltzaileekin komunikatzea ezinezkoa eginez.",
"about.domain_blocks.suspended.title": "Kanporatua", "about.domain_blocks.suspended.title": "Kanporatua",
"about.language_label": "Hizkuntza",
"about.not_available": "Zerbitzari honek ez du informazio hau eskuragarri jarri.", "about.not_available": "Zerbitzari honek ez du informazio hau eskuragarri jarri.",
"about.powered_by": "{mastodon} erabiltzen duen sare sozial deszentralizatua", "about.powered_by": "{mastodon} erabiltzen duen sare sozial deszentralizatua",
"about.rules": "Zerbitzariaren arauak", "about.rules": "Zerbitzariaren arauak",
@ -21,20 +19,13 @@
"account.block_domain": "Blokeatu {domain} domeinua", "account.block_domain": "Blokeatu {domain} domeinua",
"account.block_short": "Blokeatu", "account.block_short": "Blokeatu",
"account.blocked": "Blokeatuta", "account.blocked": "Blokeatuta",
"account.blocking": "Eragotzitakoak",
"account.cancel_follow_request": "Baztertu jarraitzeko eskaera", "account.cancel_follow_request": "Baztertu jarraitzeko eskaera",
"account.copy": "Kopiatu profilerako esteka", "account.copy": "Kopiatu profilerako esteka",
"account.direct": "Aipatu pribatuki @{name}", "account.direct": "Aipatu pribatuki @{name}",
"account.disable_notifications": "Utzi jakinarazteari @{name} erabiltzaileak argitaratzean", "account.disable_notifications": "Utzi jakinarazteari @{name} erabiltzaileak argitaratzean",
"account.domain_blocking": "Eragotzitako domeinua",
"account.edit_profile": "Editatu profila", "account.edit_profile": "Editatu profila",
"account.enable_notifications": "Jakinarazi @{name} erabiltzaileak argitaratzean", "account.enable_notifications": "Jakinarazi @{name} erabiltzaileak argitaratzean",
"account.endorse": "Nabarmendu profilean", "account.endorse": "Nabarmendu profilean",
"account.familiar_followers_one": "{name1}-k jarraitzen du",
"account.familiar_followers_two": "{name1}-k eta {name2}-k jarraitzen dute",
"account.featured": "Gailenak",
"account.featured.accounts": "Profilak",
"account.featured.hashtags": "Traolak",
"account.featured_tags.last_status_at": "Azken bidalketa {date} datan", "account.featured_tags.last_status_at": "Azken bidalketa {date} datan",
"account.featured_tags.last_status_never": "Bidalketarik ez", "account.featured_tags.last_status_never": "Bidalketarik ez",
"account.follow": "Jarraitu", "account.follow": "Jarraitu",
@ -42,11 +33,9 @@
"account.followers": "Jarraitzaileak", "account.followers": "Jarraitzaileak",
"account.followers.empty": "Ez du inork erabiltzaile hau jarraitzen oraindik.", "account.followers.empty": "Ez du inork erabiltzaile hau jarraitzen oraindik.",
"account.followers_counter": "{count, plural, one {{counter} jarraitzaile} other {{counter} jarraitzaile}}", "account.followers_counter": "{count, plural, one {{counter} jarraitzaile} other {{counter} jarraitzaile}}",
"account.followers_you_know_counter": "{counter} ezagutzen dituzu",
"account.following": "Jarraitzen", "account.following": "Jarraitzen",
"account.following_counter": "{count, plural, one {{counter} jarraitzen} other {{counter} jarraitzen}}", "account.following_counter": "{count, plural, one {{counter} jarraitzen} other {{counter} jarraitzen}}",
"account.follows.empty": "Erabiltzaile honek ez du inor jarraitzen oraindik.", "account.follows.empty": "Erabiltzaile honek ez du inor jarraitzen oraindik.",
"account.follows_you": "Jarraitzen zaitu",
"account.go_to_profile": "Joan profilera", "account.go_to_profile": "Joan profilera",
"account.hide_reblogs": "Ezkutatu @{name} erabiltzailearen bultzadak", "account.hide_reblogs": "Ezkutatu @{name} erabiltzailearen bultzadak",
"account.in_memoriam": "Oroimenezkoa.", "account.in_memoriam": "Oroimenezkoa.",
@ -61,23 +50,18 @@
"account.mute_notifications_short": "Mututu jakinarazpenak", "account.mute_notifications_short": "Mututu jakinarazpenak",
"account.mute_short": "Mututu", "account.mute_short": "Mututu",
"account.muted": "Mutututa", "account.muted": "Mutututa",
"account.muting": "Isilarazitakoak",
"account.mutual": "Elkar jarraitzen duzue",
"account.no_bio": "Ez da deskribapenik eman.", "account.no_bio": "Ez da deskribapenik eman.",
"account.open_original_page": "Ireki jatorrizko orria", "account.open_original_page": "Ireki jatorrizko orria",
"account.posts": "Bidalketa", "account.posts": "Bidalketa",
"account.posts_with_replies": "Bidalketak eta erantzunak", "account.posts_with_replies": "Bidalketak eta erantzunak",
"account.remove_from_followers": "Kendu {name} zure jarraitzaileengandik",
"account.report": "Salatu @{name}", "account.report": "Salatu @{name}",
"account.requested": "Onarpenaren zain. Egin klik jarraipen-eskaera ezeztatzeko", "account.requested": "Onarpenaren zain. Egin klik jarraipen-eskaera ezeztatzeko",
"account.requested_follow": "{name}-(e)k zu jarraitzeko eskaera egin du", "account.requested_follow": "{name}-(e)k zu jarraitzeko eskaera egin du",
"account.requests_to_follow_you": "Zu jarraitzeko eskaera egin du",
"account.share": "Partekatu @{name} erabiltzailearen profila", "account.share": "Partekatu @{name} erabiltzailearen profila",
"account.show_reblogs": "Erakutsi @{name} erabiltzailearen bultzadak", "account.show_reblogs": "Erakutsi @{name} erabiltzailearen bultzadak",
"account.statuses_counter": "{count, plural, one {{counter} bidalketa} other {{counter} bidalketa}}", "account.statuses_counter": "{count, plural, one {{counter} bidalketa} other {{counter} bidalketa}}",
"account.unblock": "Desblokeatu @{name}", "account.unblock": "Desblokeatu @{name}",
"account.unblock_domain": "Berriz erakutsi {domain}", "account.unblock_domain": "Berriz erakutsi {domain}",
"account.unblock_domain_short": "Desblokeatu",
"account.unblock_short": "Desblokeatu", "account.unblock_short": "Desblokeatu",
"account.unendorse": "Ez nabarmendu profilean", "account.unendorse": "Ez nabarmendu profilean",
"account.unfollow": "Utzi jarraitzeari", "account.unfollow": "Utzi jarraitzeari",
@ -103,13 +87,10 @@
"alt_text_modal.add_text_from_image": "Gehitu testua iruditik", "alt_text_modal.add_text_from_image": "Gehitu testua iruditik",
"alt_text_modal.cancel": "Utzi", "alt_text_modal.cancel": "Utzi",
"alt_text_modal.change_thumbnail": "Aldatu koadro txikia", "alt_text_modal.change_thumbnail": "Aldatu koadro txikia",
"alt_text_modal.describe_for_people_with_hearing_impairments": "Deskribatu hau entzumen arazoak dituzten pertsonentzat…",
"alt_text_modal.describe_for_people_with_visual_impairments": "Deskribatu hau ikusmen arazoak dituzten pertsonentzat…",
"alt_text_modal.done": "Egina", "alt_text_modal.done": "Egina",
"announcement.announcement": "Iragarpena", "announcement.announcement": "Iragarpena",
"annual_report.summary.followers.followers": "jarraitzaileak", "annual_report.summary.followers.followers": "jarraitzaileak",
"annual_report.summary.followers.total": "{count} guztira", "annual_report.summary.followers.total": "{count} guztira",
"annual_report.summary.here_it_is": "Hona hemen zure {year}. urtearen bilduma:",
"annual_report.summary.highlighted_post.by_favourites": "egindako bidalketa gogokoena", "annual_report.summary.highlighted_post.by_favourites": "egindako bidalketa gogokoena",
"annual_report.summary.highlighted_post.by_reblogs": "egindako bidalketa zabalduena", "annual_report.summary.highlighted_post.by_reblogs": "egindako bidalketa zabalduena",
"annual_report.summary.highlighted_post.by_replies": "erantzun gehien izan dituen bidalketa", "annual_report.summary.highlighted_post.by_replies": "erantzun gehien izan dituen bidalketa",
@ -211,12 +192,6 @@
"confirmations.delete_list.confirm": "Ezabatu", "confirmations.delete_list.confirm": "Ezabatu",
"confirmations.delete_list.message": "Ziur behin betiko ezabatu nahi duzula zerrenda hau?", "confirmations.delete_list.message": "Ziur behin betiko ezabatu nahi duzula zerrenda hau?",
"confirmations.delete_list.title": "Ezabatu zerrenda?", "confirmations.delete_list.title": "Ezabatu zerrenda?",
"confirmations.discard_draft.confirm": "Baztertu eta jarraitu",
"confirmations.discard_draft.edit.cancel": "Berrekin edizioari",
"confirmations.discard_draft.edit.message": "Jarraitzeak editatzen ari zaren mezuan egindako aldaketak baztertuko ditu.",
"confirmations.discard_draft.edit.title": "Baztertu zure argitalpenari egindako aldaketak?",
"confirmations.discard_draft.post.cancel": "Zirriborroa berrekin",
"confirmations.discard_draft.post.title": "Zure argitalpenaren zirriborroa baztertu nahi duzu?",
"confirmations.discard_edit_media.confirm": "Baztertu", "confirmations.discard_edit_media.confirm": "Baztertu",
"confirmations.discard_edit_media.message": "Multimediaren deskribapen edo aurrebistan gorde gabeko aldaketak daude, baztertu nahi dituzu?", "confirmations.discard_edit_media.message": "Multimediaren deskribapen edo aurrebistan gorde gabeko aldaketak daude, baztertu nahi dituzu?",
"confirmations.follow_to_list.confirm": "Jarraitu eta zerrendan sartu", "confirmations.follow_to_list.confirm": "Jarraitu eta zerrendan sartu",
@ -226,16 +201,12 @@
"confirmations.logout.message": "Ziur saioa amaitu nahi duzula?", "confirmations.logout.message": "Ziur saioa amaitu nahi duzula?",
"confirmations.logout.title": "Itxi saioa?", "confirmations.logout.title": "Itxi saioa?",
"confirmations.missing_alt_text.confirm": "Gehitu testu alternatiboa", "confirmations.missing_alt_text.confirm": "Gehitu testu alternatiboa",
"confirmations.missing_alt_text.message": "Zure argitalpenak \"alt text\"-urik gabeko multimedia edukia dauka. Deskribapenak gehitzeak zure edukia jende gehiagorentzat eskuragarri jartzen laguntzen du.",
"confirmations.missing_alt_text.secondary": "Bidali edonola ere", "confirmations.missing_alt_text.secondary": "Bidali edonola ere",
"confirmations.missing_alt_text.title": "Testu alternatiboa gehitu?", "confirmations.missing_alt_text.title": "Testu alternatiboa gehitu?",
"confirmations.mute.confirm": "Mututu", "confirmations.mute.confirm": "Mututu",
"confirmations.redraft.confirm": "Ezabatu eta berridatzi", "confirmations.redraft.confirm": "Ezabatu eta berridatzi",
"confirmations.redraft.message": "Ziur argitalpen hau ezabatu eta zirriborroa berriro egitea nahi duzula? Gogokoak eta bultzadak galduko dira, eta jatorrizko argitalpenaren erantzunak zurtz geratuko dira.", "confirmations.redraft.message": "Ziur argitalpen hau ezabatu eta zirriborroa berriro egitea nahi duzula? Gogokoak eta bultzadak galduko dira, eta jatorrizko argitalpenaren erantzunak zurtz geratuko dira.",
"confirmations.redraft.title": "Ezabatu eta berridatzi bidalketa?", "confirmations.redraft.title": "Ezabatu eta berridatzi bidalketa?",
"confirmations.remove_from_followers.confirm": "Jarraitzailea Kendu",
"confirmations.remove_from_followers.message": "{name}-k zu jarraitzeari utziko dio. Seguru zaude jarraitu nahi duzula?",
"confirmations.remove_from_followers.title": "Jarraitzailea kendu nahi duzu?",
"confirmations.unfollow.confirm": "Utzi jarraitzeari", "confirmations.unfollow.confirm": "Utzi jarraitzeari",
"confirmations.unfollow.message": "Ziur {name} jarraitzeari utzi nahi diozula?", "confirmations.unfollow.message": "Ziur {name} jarraitzeari utzi nahi diozula?",
"confirmations.unfollow.title": "Erabiltzailea jarraitzeari utzi?", "confirmations.unfollow.title": "Erabiltzailea jarraitzeari utzi?",
@ -257,14 +228,12 @@
"disabled_account_banner.text": "Zure {disabledAccount} kontua desgaituta dago une honetan.", "disabled_account_banner.text": "Zure {disabledAccount} kontua desgaituta dago une honetan.",
"dismissable_banner.community_timeline": "Hauek dira {domain} zerbitzarian ostatatutako kontuen bidalketa publiko berrienak.", "dismissable_banner.community_timeline": "Hauek dira {domain} zerbitzarian ostatatutako kontuen bidalketa publiko berrienak.",
"dismissable_banner.dismiss": "Baztertu", "dismissable_banner.dismiss": "Baztertu",
"dismissable_banner.public_timeline": "Hauek dira {domain}-eko jendeak jarraitzen dituen fedibertsoko erabiltzaileen azken mezu publikoak.",
"domain_block_modal.block": "Blokeatu zerbitzaria", "domain_block_modal.block": "Blokeatu zerbitzaria",
"domain_block_modal.block_account_instead": "Blokeatu @{name} bestela", "domain_block_modal.block_account_instead": "Blokeatu @{name} bestela",
"domain_block_modal.they_can_interact_with_old_posts": "Zerbitzari honetako jendea zure argitalpen zaharrekin elkarreragin dezake.", "domain_block_modal.they_can_interact_with_old_posts": "Zerbitzari honetako jendea zure argitalpen zaharrekin elkarreragin dezake.",
"domain_block_modal.they_cant_follow": "Zerbitzari honetako inork ezin zaitu jarraitu.", "domain_block_modal.they_cant_follow": "Zerbitzari honetako inork ezin zaitu jarraitu.",
"domain_block_modal.they_wont_know": "Ez dute jakingo blokeatuak izan direnik.", "domain_block_modal.they_wont_know": "Ez dute jakingo blokeatuak izan direnik.",
"domain_block_modal.title": "Domeinua blokeatu nahi duzu?", "domain_block_modal.title": "Domeinua blokeatu nahi duzu?",
"domain_block_modal.you_will_lose_relationships": "Instantzia honetatik jarraitzen dituzun jarraitzaile eta pertsona guztiak galduko dituzu.",
"domain_block_modal.you_wont_see_posts": "Ez dituzu zerbitzari honetako erabiltzaileen argitalpenik edota jakinarazpenik ikusiko.", "domain_block_modal.you_wont_see_posts": "Ez dituzu zerbitzari honetako erabiltzaileen argitalpenik edota jakinarazpenik ikusiko.",
"domain_pill.activitypub_lets_connect": "Mastodon-en ez ezik, beste sare sozialen aplikazioetako jendearekin konektatzea eta harremanetan jartzea uzten dizu.", "domain_pill.activitypub_lets_connect": "Mastodon-en ez ezik, beste sare sozialen aplikazioetako jendearekin konektatzea eta harremanetan jartzea uzten dizu.",
"domain_pill.activitypub_like_language": "ActivityPub, Mastodon-ek beste sare sozialekin hitz egiteko erabiltzen duen hizkuntza bezalakoxea da.", "domain_pill.activitypub_like_language": "ActivityPub, Mastodon-ek beste sare sozialekin hitz egiteko erabiltzen duen hizkuntza bezalakoxea da.",
@ -296,9 +265,6 @@
"emoji_button.search_results": "Bilaketaren emaitzak", "emoji_button.search_results": "Bilaketaren emaitzak",
"emoji_button.symbols": "Sinboloak", "emoji_button.symbols": "Sinboloak",
"emoji_button.travel": "Bidaiak eta tokiak", "emoji_button.travel": "Bidaiak eta tokiak",
"empty_column.account_featured.me": "Oraindik ez duzu ezer nabarmendu. Ba al zenekien gehien erabiltzen dituzun traolak eta baita zure lagunen kontuak ere zure profilean nabarmendu ditzakezula?",
"empty_column.account_featured.other": "{acct}-ek ez du ezer nabarmendu oraindik. Ba al zenekien gehien erabiltzen dituzun traolak eta baita zure lagunen kontuak ere zure profilean nabarmendu ditzakezula?",
"empty_column.account_featured_other.unknown": "Kontu honek ez du ezer nabarmendu oraindik.",
"empty_column.account_hides_collections": "Erabiltzaile honek informazio hau erabilgarri ez egotea aukeratu du.", "empty_column.account_hides_collections": "Erabiltzaile honek informazio hau erabilgarri ez egotea aukeratu du.",
"empty_column.account_suspended": "Kanporatutako kontua", "empty_column.account_suspended": "Kanporatutako kontua",
"empty_column.account_timeline": "Ez dago bidalketarik hemen!", "empty_column.account_timeline": "Ez dago bidalketarik hemen!",
@ -327,14 +293,9 @@
"errors.unexpected_crash.copy_stacktrace": "Kopiatu irteera arbelera", "errors.unexpected_crash.copy_stacktrace": "Kopiatu irteera arbelera",
"errors.unexpected_crash.report_issue": "Eman arazoaren berri", "errors.unexpected_crash.report_issue": "Eman arazoaren berri",
"explore.suggested_follows": "Jendea", "explore.suggested_follows": "Jendea",
"explore.title": "Joerak",
"explore.trending_links": "Berriak", "explore.trending_links": "Berriak",
"explore.trending_statuses": "Tutak", "explore.trending_statuses": "Tutak",
"explore.trending_tags": "Traolak", "explore.trending_tags": "Traolak",
"featured_carousel.next": "Hurrengoa",
"featured_carousel.post": "Argitaratu",
"featured_carousel.previous": "Aurrekoa",
"featured_carousel.slide": "{total}-tik {index}",
"filter_modal.added.context_mismatch_explanation": "Iragazki-kategoria hau ez zaio aplikatzen bidalketa honetara sartzeko erabili duzun testuinguruari. Bidalketa testuinguru horretan ere iragaztea nahi baduzu, iragazkia editatu beharko duzu.", "filter_modal.added.context_mismatch_explanation": "Iragazki-kategoria hau ez zaio aplikatzen bidalketa honetara sartzeko erabili duzun testuinguruari. Bidalketa testuinguru horretan ere iragaztea nahi baduzu, iragazkia editatu beharko duzu.",
"filter_modal.added.context_mismatch_title": "Testuingurua ez dator bat!", "filter_modal.added.context_mismatch_title": "Testuingurua ez dator bat!",
"filter_modal.added.expired_explanation": "Iragazki kategoria hau iraungi da, eragina izan dezan bere iraungitze-data aldatu beharko duzu.", "filter_modal.added.expired_explanation": "Iragazki kategoria hau iraungi da, eragina izan dezan bere iraungitze-data aldatu beharko duzu.",
@ -387,8 +348,6 @@
"generic.saved": "Gordea", "generic.saved": "Gordea",
"getting_started.heading": "Menua", "getting_started.heading": "Menua",
"hashtag.admin_moderation": "#{name}-(r)en moderazio-interfazea ireki", "hashtag.admin_moderation": "#{name}-(r)en moderazio-interfazea ireki",
"hashtag.browse": "Arakatu bidalketak #{hashtag}(e)n",
"hashtag.browse_from_account": "Arakatu @{name}(r)en bidalketak #{hashtag}(e)n",
"hashtag.column_header.tag_mode.all": "eta {osagarria}", "hashtag.column_header.tag_mode.all": "eta {osagarria}",
"hashtag.column_header.tag_mode.any": "edo {osagarria}", "hashtag.column_header.tag_mode.any": "edo {osagarria}",
"hashtag.column_header.tag_mode.none": "gabe {osagarria}", "hashtag.column_header.tag_mode.none": "gabe {osagarria}",
@ -401,10 +360,7 @@
"hashtag.counter_by_accounts": "{count, plural, one {{counter} parte-hartzaile} other {{counter} parte-hartzaile}}", "hashtag.counter_by_accounts": "{count, plural, one {{counter} parte-hartzaile} other {{counter} parte-hartzaile}}",
"hashtag.counter_by_uses": "{count, plural, one {{counter} argitalpen} other {{counter} argitalpen}}", "hashtag.counter_by_uses": "{count, plural, one {{counter} argitalpen} other {{counter} argitalpen}}",
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} argitalpen} other {{counter} argitalpen}} gaur", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} argitalpen} other {{counter} argitalpen}} gaur",
"hashtag.feature": "Nabarmendu profilean",
"hashtag.follow": "Jarraitu traolari", "hashtag.follow": "Jarraitu traolari",
"hashtag.mute": "Mututu #{hashtag}",
"hashtag.unfeature": "Ez nabarmendu profilean",
"hashtag.unfollow": "Utzi traola jarraitzeari", "hashtag.unfollow": "Utzi traola jarraitzeari",
"hashtags.and_other": "…eta {count, plural, one {}other {# gehiago}}", "hashtags.and_other": "…eta {count, plural, one {}other {# gehiago}}",
"hints.profiles.followers_may_be_missing": "Baliteke profil honen jarraitzaile guztiak ez agertzea.", "hints.profiles.followers_may_be_missing": "Baliteke profil honen jarraitzaile guztiak ez agertzea.",
@ -415,7 +371,6 @@
"hints.profiles.see_more_posts": "Ikusi bidalketa gehiago {domain}-(e)n", "hints.profiles.see_more_posts": "Ikusi bidalketa gehiago {domain}-(e)n",
"hints.threads.replies_may_be_missing": "Baliteke beste zerbitzari batzuen erantzun batzuk ez erakustea.", "hints.threads.replies_may_be_missing": "Baliteke beste zerbitzari batzuen erantzun batzuk ez erakustea.",
"hints.threads.see_more": "Ikusi erantzun gehiago {domain}-(e)n", "hints.threads.see_more": "Ikusi erantzun gehiago {domain}-(e)n",
"home.column_settings.show_quotes": "Erakutsi aipamenak",
"home.column_settings.show_reblogs": "Erakutsi bultzadak", "home.column_settings.show_reblogs": "Erakutsi bultzadak",
"home.column_settings.show_replies": "Erakutsi erantzunak", "home.column_settings.show_replies": "Erakutsi erantzunak",
"home.hide_announcements": "Ezkutatu iragarpenak", "home.hide_announcements": "Ezkutatu iragarpenak",
@ -434,11 +389,6 @@
"ignore_notifications_modal.not_followers_title": "Jarraitzen ez zaituzten pertsonen jakinarazpenei ez ikusiarena egin?", "ignore_notifications_modal.not_followers_title": "Jarraitzen ez zaituzten pertsonen jakinarazpenei ez ikusiarena egin?",
"ignore_notifications_modal.not_following_title": "Jarraitzen ez dituzun pertsonen jakinarazpenei ez ikusiarena egin?", "ignore_notifications_modal.not_following_title": "Jarraitzen ez dituzun pertsonen jakinarazpenei ez ikusiarena egin?",
"ignore_notifications_modal.private_mentions_title": "Eskatu gabeko aipamen pribatuen jakinarazpenei ez ikusiarena egin?", "ignore_notifications_modal.private_mentions_title": "Eskatu gabeko aipamen pribatuen jakinarazpenei ez ikusiarena egin?",
"info_button.label": "Laguntza",
"interaction_modal.action.favourite": "Jarraitzeko, zure kontutik atsegindu behar duzu.",
"interaction_modal.action.follow": "Jarraitzeko zure kontutik jarraitu behar duzu.",
"interaction_modal.action.reply": "Jarraitzeko zure kontutik erantzun behar duzu.",
"interaction_modal.action.vote": "Jarraitzeko, zure kontutik bozkatu behar duzu.",
"interaction_modal.go": "Joan", "interaction_modal.go": "Joan",
"interaction_modal.no_account_yet": "Ez al duzu konturik oraindik?", "interaction_modal.no_account_yet": "Ez al duzu konturik oraindik?",
"interaction_modal.on_another_server": "Beste zerbitzari batean", "interaction_modal.on_another_server": "Beste zerbitzari batean",
@ -483,14 +433,11 @@
"keyboard_shortcuts.toggle_hidden": "testua erakustea/ezkutatzea abisu baten atzean", "keyboard_shortcuts.toggle_hidden": "testua erakustea/ezkutatzea abisu baten atzean",
"keyboard_shortcuts.toggle_sensitivity": "multimedia erakutsi/ezkutatzeko", "keyboard_shortcuts.toggle_sensitivity": "multimedia erakutsi/ezkutatzeko",
"keyboard_shortcuts.toot": "Hasi bidalketa berri bat", "keyboard_shortcuts.toot": "Hasi bidalketa berri bat",
"keyboard_shortcuts.translate": "bidalketa itzultzeko",
"keyboard_shortcuts.unfocus": "testua konposatzeko area / bilaketatik fokua kentzea", "keyboard_shortcuts.unfocus": "testua konposatzeko area / bilaketatik fokua kentzea",
"keyboard_shortcuts.up": "zerrendan gora mugitzea", "keyboard_shortcuts.up": "zerrendan gora mugitzea",
"lightbox.close": "Itxi", "lightbox.close": "Itxi",
"lightbox.next": "Hurrengoa", "lightbox.next": "Hurrengoa",
"lightbox.previous": "Aurrekoa", "lightbox.previous": "Aurrekoa",
"lightbox.zoom_in": "Zooma egungo tamainara",
"lightbox.zoom_out": "Zooma egokitzeko",
"limited_account_hint.action": "Erakutsi profila hala ere", "limited_account_hint.action": "Erakutsi profila hala ere",
"limited_account_hint.title": "Profil hau ezkutatu egin dute {domain} zerbitzariko moderatzaileek.", "limited_account_hint.title": "Profil hau ezkutatu egin dute {domain} zerbitzariko moderatzaileek.",
"link_preview.author": "Egilea: {name}", "link_preview.author": "Egilea: {name}",
@ -500,24 +447,13 @@
"lists.add_to_list": "Gehitu zerrendara", "lists.add_to_list": "Gehitu zerrendara",
"lists.add_to_lists": "Gehitu {name} zerrendetara", "lists.add_to_lists": "Gehitu {name} zerrendetara",
"lists.create": "Sortu", "lists.create": "Sortu",
"lists.create_a_list_to_organize": "Sortu zerrenda berria zure Hasierako jarioa antolatzeko",
"lists.create_list": "Sortu zerrenda", "lists.create_list": "Sortu zerrenda",
"lists.delete": "Ezabatu zerrenda", "lists.delete": "Ezabatu zerrenda",
"lists.done": "Egina", "lists.done": "Egina",
"lists.edit": "Editatu zerrenda", "lists.edit": "Editatu zerrenda",
"lists.exclusive": "Ezkutatu kideak Hasieran",
"lists.exclusive_hint": "Norbait zerrenda honetan badago, ezkutatu zure Hasierako jariotik mezuak bi aldiz ez ikusteko.",
"lists.find_users_to_add": "Bilatu erabiltzaileak gehitzeko",
"lists.list_name": "Zerrenda izena",
"lists.new_list_name": "Zerrenda izen berria",
"lists.no_lists_yet": "Ez duzu zerrendarik oraindik.",
"lists.no_members_yet": "Ez duzu kiderik oraindik.",
"lists.no_results_found": "Ez da emaitzarik aurkitu.",
"lists.remove_member": "Ezabatu",
"lists.replies_policy.followed": "Jarraitutako edozein erabiltzaile", "lists.replies_policy.followed": "Jarraitutako edozein erabiltzaile",
"lists.replies_policy.list": "Zerrendako kideak", "lists.replies_policy.list": "Zerrendako kideak",
"lists.replies_policy.none": "Bat ere ez", "lists.replies_policy.none": "Bat ere ez",
"lists.save": "Gorde",
"lists.search": "Bilatu", "lists.search": "Bilatu",
"load_pending": "{count, plural, one {elementu berri #} other {# elementu berri}}", "load_pending": "{count, plural, one {elementu berri #} other {# elementu berri}}",
"loading_indicator.label": "Kargatzen…", "loading_indicator.label": "Kargatzen…",
@ -533,10 +469,8 @@
"mute_modal.you_wont_see_mentions": "Ez duzu ikusiko bera aipatzen duen argitalpenik.", "mute_modal.you_wont_see_mentions": "Ez duzu ikusiko bera aipatzen duen argitalpenik.",
"mute_modal.you_wont_see_posts": "Zure argitalpenak ikus ditzake, baina ez dituzu bereak ikusiko.", "mute_modal.you_wont_see_posts": "Zure argitalpenak ikus ditzake, baina ez dituzu bereak ikusiko.",
"navigation_bar.about": "Honi buruz", "navigation_bar.about": "Honi buruz",
"navigation_bar.account_settings": "Pasahitza eta segurtasuna",
"navigation_bar.administration": "Administrazioa", "navigation_bar.administration": "Administrazioa",
"navigation_bar.advanced_interface": "Ireki web interfaze aurreratuan", "navigation_bar.advanced_interface": "Ireki web interfaze aurreratuan",
"navigation_bar.automated_deletion": "Bidalketa automatikoaren ezabaketa",
"navigation_bar.blocks": "Blokeatutako erabiltzaileak", "navigation_bar.blocks": "Blokeatutako erabiltzaileak",
"navigation_bar.bookmarks": "Laster-markak", "navigation_bar.bookmarks": "Laster-markak",
"navigation_bar.direct": "Aipamen pribatuak", "navigation_bar.direct": "Aipamen pribatuak",
@ -546,19 +480,13 @@
"navigation_bar.follow_requests": "Jarraitzeko eskaerak", "navigation_bar.follow_requests": "Jarraitzeko eskaerak",
"navigation_bar.followed_tags": "Jarraitutako traolak", "navigation_bar.followed_tags": "Jarraitutako traolak",
"navigation_bar.follows_and_followers": "Jarraitutakoak eta jarraitzaileak", "navigation_bar.follows_and_followers": "Jarraitutakoak eta jarraitzaileak",
"navigation_bar.import_export": "Inportazioa eta esportazioa",
"navigation_bar.lists": "Zerrendak", "navigation_bar.lists": "Zerrendak",
"navigation_bar.live_feed_local": "Zuzeneko jarioa (lokala)",
"navigation_bar.live_feed_public": "Zuzeneko jarioa (publikoa)",
"navigation_bar.logout": "Amaitu saioa", "navigation_bar.logout": "Amaitu saioa",
"navigation_bar.moderation": "Moderazioa", "navigation_bar.moderation": "Moderazioa",
"navigation_bar.more": "Gehiago",
"navigation_bar.mutes": "Mutututako erabiltzaileak", "navigation_bar.mutes": "Mutututako erabiltzaileak",
"navigation_bar.opened_in_classic_interface": "Argitalpenak, kontuak eta beste orri jakin batzuk lehenespenez irekitzen dira web-interfaze klasikoan.", "navigation_bar.opened_in_classic_interface": "Argitalpenak, kontuak eta beste orri jakin batzuk lehenespenez irekitzen dira web-interfaze klasikoan.",
"navigation_bar.preferences": "Hobespenak", "navigation_bar.preferences": "Hobespenak",
"navigation_bar.privacy_and_reach": "Pribatutasuna eta irismena",
"navigation_bar.search": "Bilatu", "navigation_bar.search": "Bilatu",
"navigation_bar.search_trends": "Bilatu / Joera",
"not_signed_in_indicator.not_signed_in": "Baliabide honetara sarbidea izateko saioa hasi behar duzu.", "not_signed_in_indicator.not_signed_in": "Baliabide honetara sarbidea izateko saioa hasi behar duzu.",
"notification.admin.report": "{name} erabiltzaileak {target} salatu du", "notification.admin.report": "{name} erabiltzaileak {target} salatu du",
"notification.admin.report_account": "{name}-(e)k {target}-ren {count, plural, one {bidalketa bat} other {# bidalketa}} salatu zituen {category} delakoagatik", "notification.admin.report_account": "{name}-(e)k {target}-ren {count, plural, one {bidalketa bat} other {# bidalketa}} salatu zituen {category} delakoagatik",
@ -569,7 +497,6 @@
"notification.admin.sign_up.name_and_others": "{name} eta {count, plural, one {erabiltzaile # gehiago} other {# erabiltzaile gehiago}} erregistratu dira", "notification.admin.sign_up.name_and_others": "{name} eta {count, plural, one {erabiltzaile # gehiago} other {# erabiltzaile gehiago}} erregistratu dira",
"notification.favourite": "{name}(e)k zure bidalketa gogoko du", "notification.favourite": "{name}(e)k zure bidalketa gogoko du",
"notification.favourite.name_and_others_with_link": "{name} eta <a>{count, plural, one {erabiltzaile # gehiagok} other {# erabiltzaile gehiagok}}</a> zure bidalketa gogoko dute", "notification.favourite.name_and_others_with_link": "{name} eta <a>{count, plural, one {erabiltzaile # gehiagok} other {# erabiltzaile gehiagok}}</a> zure bidalketa gogoko dute",
"notification.favourite_pm": "{name}-ek zure aipamen pribatua gogokoetan jarri du",
"notification.follow": "{name}(e)k jarraitzen dizu", "notification.follow": "{name}(e)k jarraitzen dizu",
"notification.follow_request": "{name}(e)k zu jarraitzeko eskaera egin du", "notification.follow_request": "{name}(e)k zu jarraitzeko eskaera egin du",
"notification.follow_request.name_and_others": "{name} eta {count, plural, one {erabiltzaile # gehiagok} other {# erabiltzaile gehiagok}} zu jarraitzeko eskaera egin dute", "notification.follow_request.name_and_others": "{name} eta {count, plural, one {erabiltzaile # gehiagok} other {# erabiltzaile gehiagok}} zu jarraitzeko eskaera egin dute",
@ -578,7 +505,6 @@
"notification.label.private_reply": "Erantzun pribatua", "notification.label.private_reply": "Erantzun pribatua",
"notification.label.reply": "Erantzuna", "notification.label.reply": "Erantzuna",
"notification.mention": "Aipamena", "notification.mention": "Aipamena",
"notification.mentioned_you": "{name}(e)k aipatu zaitu",
"notification.moderation-warning.learn_more": "Informazio gehiago", "notification.moderation-warning.learn_more": "Informazio gehiago",
"notification.moderation_warning": "Moderazio-abisu bat jaso duzu", "notification.moderation_warning": "Moderazio-abisu bat jaso duzu",
"notification.moderation_warning.action_delete_statuses": "Argitalpen batzuk kendu dira.", "notification.moderation_warning.action_delete_statuses": "Argitalpen batzuk kendu dira.",
@ -625,7 +551,6 @@
"notifications.column_settings.filter_bar.category": "Iragazki-barra bizkorra", "notifications.column_settings.filter_bar.category": "Iragazki-barra bizkorra",
"notifications.column_settings.follow": "Jarraitzaile berriak:", "notifications.column_settings.follow": "Jarraitzaile berriak:",
"notifications.column_settings.follow_request": "Jarraitzeko eskaera berriak:", "notifications.column_settings.follow_request": "Jarraitzeko eskaera berriak:",
"notifications.column_settings.group": "Taldea",
"notifications.column_settings.mention": "Aipamenak:", "notifications.column_settings.mention": "Aipamenak:",
"notifications.column_settings.poll": "Inkestaren emaitzak:", "notifications.column_settings.poll": "Inkestaren emaitzak:",
"notifications.column_settings.push": "Push jakinarazpenak", "notifications.column_settings.push": "Push jakinarazpenak",
@ -776,7 +701,6 @@
"report_notification.categories.violation": "Arau haustea", "report_notification.categories.violation": "Arau haustea",
"report_notification.categories.violation_sentence": "arau haustea", "report_notification.categories.violation_sentence": "arau haustea",
"report_notification.open": "Ireki salaketa", "report_notification.open": "Ireki salaketa",
"search.clear": "Garbitu bilaketa",
"search.no_recent_searches": "Duela gutxiko bilaketarik ez", "search.no_recent_searches": "Duela gutxiko bilaketarik ez",
"search.placeholder": "Bilatu", "search.placeholder": "Bilatu",
"search.quick_action.account_search": "{x}-(r)ekin bat datozen profilak", "search.quick_action.account_search": "{x}-(r)ekin bat datozen profilak",
@ -841,8 +765,6 @@
"status.mute_conversation": "Mututu elkarrizketa", "status.mute_conversation": "Mututu elkarrizketa",
"status.open": "Hedatu bidalketa hau", "status.open": "Hedatu bidalketa hau",
"status.pin": "Finkatu profilean", "status.pin": "Finkatu profilean",
"status.quote_error.not_found": "Bidalketa hau ezin da erakutsi.",
"status.quote_error.pending_approval": "Bidalketa hau egile originalak onartzeko zain dago.",
"status.read_more": "Irakurri gehiago", "status.read_more": "Irakurri gehiago",
"status.reblog": "Bultzada", "status.reblog": "Bultzada",
"status.reblog_private": "Bultzada jatorrizko hartzaileei", "status.reblog_private": "Bultzada jatorrizko hartzaileei",
@ -871,11 +793,7 @@
"subscribed_languages.save": "Gorde aldaketak", "subscribed_languages.save": "Gorde aldaketak",
"subscribed_languages.target": "Aldatu {target}(e)n harpidetutako hizkuntzak", "subscribed_languages.target": "Aldatu {target}(e)n harpidetutako hizkuntzak",
"tabs_bar.home": "Hasiera", "tabs_bar.home": "Hasiera",
"tabs_bar.menu": "Menua",
"tabs_bar.notifications": "Jakinarazpenak", "tabs_bar.notifications": "Jakinarazpenak",
"tabs_bar.publish": "Bidalketa berria",
"tabs_bar.search": "Bilatu",
"terms_of_service.title": "Zerbitzuaren baldintzak",
"time_remaining.days": "{number, plural, one {egun #} other {# egun}} amaitzeko", "time_remaining.days": "{number, plural, one {egun #} other {# egun}} amaitzeko",
"time_remaining.hours": "{number, plural, one {ordu #} other {# ordu}} amaitzeko", "time_remaining.hours": "{number, plural, one {ordu #} other {# ordu}} amaitzeko",
"time_remaining.minutes": "{number, plural, one {minutu #} other {# minutu}} amaitzeko", "time_remaining.minutes": "{number, plural, one {minutu #} other {# minutu}} amaitzeko",
@ -902,8 +820,5 @@
"video.fullscreen": "Pantaila osoa", "video.fullscreen": "Pantaila osoa",
"video.hide": "Ezkutatu bideoa", "video.hide": "Ezkutatu bideoa",
"video.pause": "Pausatu", "video.pause": "Pausatu",
"video.play": "Jo", "video.play": "Jo"
"video.unmute": "Soinua ezarri",
"video.volume_down": "Bolumena jaitsi",
"video.volume_up": "Bolumena Igo"
} }

View File

@ -219,13 +219,6 @@
"confirmations.delete_list.confirm": "حذف", "confirmations.delete_list.confirm": "حذف",
"confirmations.delete_list.message": "مطمئنید می‌خواهید این سیاهه را برای همیشه حذف کنید؟", "confirmations.delete_list.message": "مطمئنید می‌خواهید این سیاهه را برای همیشه حذف کنید؟",
"confirmations.delete_list.title": "حذف سیاهه؟", "confirmations.delete_list.title": "حذف سیاهه؟",
"confirmations.discard_draft.confirm": "دور انداختن و ادامه",
"confirmations.discard_draft.edit.cancel": "ادامهٔ ویرایش",
"confirmations.discard_draft.edit.message": "ادامه دادن هر تغییری که روی فرستهٔ در حال ویرایش داده‌اید را دور خواهد ریخت.",
"confirmations.discard_draft.edit.title": "دور ریختن تغییرات فرسته‌تان؟",
"confirmations.discard_draft.post.cancel": "از سر گیری پیش‌نویس",
"confirmations.discard_draft.post.message": "ادامه دادن باعث دور ریخته شدن تغییرات روی فرسته‌ای که دارید می‌نویسید خواهد شد.",
"confirmations.discard_draft.post.title": "دور ریختن فرستهٔ پیش‌نویستان؟",
"confirmations.discard_edit_media.confirm": "دور انداختن", "confirmations.discard_edit_media.confirm": "دور انداختن",
"confirmations.discard_edit_media.message": "تغییرات ذخیره نشده‌ای در توضیحات یا پیش‌نمایش رسانه دارید. همگی نادیده گرفته شوند؟", "confirmations.discard_edit_media.message": "تغییرات ذخیره نشده‌ای در توضیحات یا پیش‌نمایش رسانه دارید. همگی نادیده گرفته شوند؟",
"confirmations.follow_to_list.confirm": "پی‌گیری و افزودن به سیاهه", "confirmations.follow_to_list.confirm": "پی‌گیری و افزودن به سیاهه",
@ -564,8 +557,6 @@
"navigation_bar.follows_and_followers": "پی‌گرفتگان و پی‌گیرندگان", "navigation_bar.follows_and_followers": "پی‌گرفتگان و پی‌گیرندگان",
"navigation_bar.import_export": "درون‌ریزی و برون‌بری", "navigation_bar.import_export": "درون‌ریزی و برون‌بری",
"navigation_bar.lists": "سیاهه‌ها", "navigation_bar.lists": "سیاهه‌ها",
"navigation_bar.live_feed_local": "خوراک زنده (محلی)",
"navigation_bar.live_feed_public": "خوراک زنده (عمومی)",
"navigation_bar.logout": "خروج", "navigation_bar.logout": "خروج",
"navigation_bar.moderation": "نظارت", "navigation_bar.moderation": "نظارت",
"navigation_bar.more": "بیشتر", "navigation_bar.more": "بیشتر",
@ -575,10 +566,6 @@
"navigation_bar.privacy_and_reach": "محرمانگی و دسترسی", "navigation_bar.privacy_and_reach": "محرمانگی و دسترسی",
"navigation_bar.search": "جست‌وجو", "navigation_bar.search": "جست‌وجو",
"navigation_bar.search_trends": "جستجو \\ پرطرفدار", "navigation_bar.search_trends": "جستجو \\ پرطرفدار",
"navigation_panel.collapse_followed_tags": "جمع کردن فهرست برچسب‌های پی‌گرفته",
"navigation_panel.collapse_lists": "جمع کردن فهرست سیاهه",
"navigation_panel.expand_followed_tags": "گسترش فهرست برچسب‌های پی‌گرفته",
"navigation_panel.expand_lists": "گسترش فهرست سیاهه",
"not_signed_in_indicator.not_signed_in": "برای دسترسی به این منبع باید وارد شوید.", "not_signed_in_indicator.not_signed_in": "برای دسترسی به این منبع باید وارد شوید.",
"notification.admin.report": "{name}، {target} را گزارش داد", "notification.admin.report": "{name}، {target} را گزارش داد",
"notification.admin.report_account": "{name} {count, plural, one {یک پست} other {پست}} از {target} برای {category} را گزارش داد", "notification.admin.report_account": "{name} {count, plural, one {یک پست} other {پست}} از {target} برای {category} را گزارش داد",
@ -805,7 +792,6 @@
"report_notification.categories.violation": "تخطّی از قانون", "report_notification.categories.violation": "تخطّی از قانون",
"report_notification.categories.violation_sentence": "تخطّی از قانون", "report_notification.categories.violation_sentence": "تخطّی از قانون",
"report_notification.open": "گشودن گزارش", "report_notification.open": "گشودن گزارش",
"search.clear": "پاک‌سازی جست‌وجو",
"search.no_recent_searches": "جست‌وجوی اخیری نیست", "search.no_recent_searches": "جست‌وجوی اخیری نیست",
"search.placeholder": "جست‌وجو", "search.placeholder": "جست‌وجو",
"search.quick_action.account_search": "نمایه‌های جور با {x}", "search.quick_action.account_search": "نمایه‌های جور با {x}",
@ -872,12 +858,6 @@
"status.mute_conversation": "خموشاندن گفت‌وگو", "status.mute_conversation": "خموشاندن گفت‌وگو",
"status.open": "گسترش این فرسته", "status.open": "گسترش این فرسته",
"status.pin": "سنجاق به نمایه", "status.pin": "سنجاق به نمایه",
"status.quote_error.filtered": "نهفته بنا بر یکی از پالایه‌هایتان",
"status.quote_error.not_found": "این فرسته قابل نمایش نیست.",
"status.quote_error.pending_approval": "این فرسته منظر تأیید نگارندهٔ اصلی است.",
"status.quote_error.rejected": "از آن‌جا که نگارندهٔ اصلی فرسته اجازهٔ نقل قولش را نمی‌دهد این فرسته قابل نمایش نیست.",
"status.quote_error.removed": "این فرسته به دست نگارنده‌اش برداشته شده.",
"status.quote_error.unauthorized": "از آن‌جا که اجازهٔ دیدن این فرسته را ندارید قابل نمایش نیست.",
"status.quote_post_author": "فرسته توسط {name}", "status.quote_post_author": "فرسته توسط {name}",
"status.read_more": "بیشتر بخوانید", "status.read_more": "بیشتر بخوانید",
"status.reblog": "تقویت", "status.reblog": "تقویت",

View File

@ -68,7 +68,6 @@
"account.open_original_page": "Ouvrir la page d'origine", "account.open_original_page": "Ouvrir la page d'origine",
"account.posts": "Publications", "account.posts": "Publications",
"account.posts_with_replies": "Publications et réponses", "account.posts_with_replies": "Publications et réponses",
"account.remove_from_followers": "Retirer {name} des suiveurs",
"account.report": "Signaler @{name}", "account.report": "Signaler @{name}",
"account.requested": "En attente dapprobation. Cliquez pour annuler la demande", "account.requested": "En attente dapprobation. Cliquez pour annuler la demande",
"account.requested_follow": "{name} a demandé à vous suivre", "account.requested_follow": "{name} a demandé à vous suivre",
@ -138,8 +137,8 @@
"block_modal.title": "Bloquer le compte ?", "block_modal.title": "Bloquer le compte ?",
"block_modal.you_wont_see_mentions": "Vous ne verrez pas les messages qui le mentionne.", "block_modal.you_wont_see_mentions": "Vous ne verrez pas les messages qui le mentionne.",
"boost_modal.combo": "Vous pouvez appuyer sur {combo} pour sauter ceci la prochaine fois", "boost_modal.combo": "Vous pouvez appuyer sur {combo} pour sauter ceci la prochaine fois",
"boost_modal.reblog": "Booster le message ?", "boost_modal.reblog": "Amplifier le message ?",
"boost_modal.undo_reblog": "Annuler le boost du message ?", "boost_modal.undo_reblog": "Annuler l'amplification du message ?",
"bundle_column_error.copy_stacktrace": "Copier le rapport d'erreur", "bundle_column_error.copy_stacktrace": "Copier le rapport d'erreur",
"bundle_column_error.error.body": "La page demandée n'a pas pu être affichée. Cela pourrait être dû à un bogue dans notre code, ou à un problème de compatibilité avec le navigateur.", "bundle_column_error.error.body": "La page demandée n'a pas pu être affichée. Cela pourrait être dû à un bogue dans notre code, ou à un problème de compatibilité avec le navigateur.",
"bundle_column_error.error.title": "Oh non!", "bundle_column_error.error.title": "Oh non!",
@ -219,13 +218,8 @@
"confirmations.delete_list.confirm": "Supprimer", "confirmations.delete_list.confirm": "Supprimer",
"confirmations.delete_list.message": "Voulez-vous vraiment supprimer définitivement cette liste?", "confirmations.delete_list.message": "Voulez-vous vraiment supprimer définitivement cette liste?",
"confirmations.delete_list.title": "Supprimer la liste ?", "confirmations.delete_list.title": "Supprimer la liste ?",
"confirmations.discard_draft.confirm": "Effacer et continuer", "confirmations.discard_draft.confirm": "Efface et continue",
"confirmations.discard_draft.edit.cancel": "Retour vers l'éditeur", "confirmations.discard_draft.edit.cancel": "Retour vers l'éditeur",
"confirmations.discard_draft.edit.message": "Continued va perdre les changements que vous avez faits dans le message courant.",
"confirmations.discard_draft.edit.title": "Jeter les changements faits au message?",
"confirmations.discard_draft.post.cancel": "Retour au brouillon",
"confirmations.discard_draft.post.message": "En continuant, vous perdez le message que vous êtes en train d'écrire.",
"confirmations.discard_draft.post.title": "Jeter le brouillon de message?",
"confirmations.discard_edit_media.confirm": "Rejeter", "confirmations.discard_edit_media.confirm": "Rejeter",
"confirmations.discard_edit_media.message": "Vous avez des modifications non enregistrées de la description ou de l'aperçu du média, voulez-vous quand même les supprimer?", "confirmations.discard_edit_media.message": "Vous avez des modifications non enregistrées de la description ou de l'aperçu du média, voulez-vous quand même les supprimer?",
"confirmations.follow_to_list.confirm": "Suivre et ajouter à la liste", "confirmations.follow_to_list.confirm": "Suivre et ajouter à la liste",
@ -242,9 +236,6 @@
"confirmations.redraft.confirm": "Supprimer et réécrire", "confirmations.redraft.confirm": "Supprimer et réécrire",
"confirmations.redraft.message": "Êtes-vous sûr·e de vouloir effacer cette publication pour la réécrire? Ses ses mises en favori et boosts seront perdus et ses réponses seront orphelines.", "confirmations.redraft.message": "Êtes-vous sûr·e de vouloir effacer cette publication pour la réécrire? Ses ses mises en favori et boosts seront perdus et ses réponses seront orphelines.",
"confirmations.redraft.title": "Supprimer et réécrire le message ?", "confirmations.redraft.title": "Supprimer et réécrire le message ?",
"confirmations.remove_from_followers.confirm": "Supprimer l'abonné·e",
"confirmations.remove_from_followers.message": "{name} cessera de vous suivre. Êtes-vous sûr de vouloir continuer ?",
"confirmations.remove_from_followers.title": "Supprimer l'abonné·e ?",
"confirmations.unfollow.confirm": "Ne plus suivre", "confirmations.unfollow.confirm": "Ne plus suivre",
"confirmations.unfollow.message": "Voulez-vous vraiment arrêter de suivre {name}?", "confirmations.unfollow.message": "Voulez-vous vraiment arrêter de suivre {name}?",
"confirmations.unfollow.title": "Se désabonner de l'utilisateur·rice ?", "confirmations.unfollow.title": "Se désabonner de l'utilisateur·rice ?",
@ -306,9 +297,6 @@
"emoji_button.search_results": "Résultats", "emoji_button.search_results": "Résultats",
"emoji_button.symbols": "Symboles", "emoji_button.symbols": "Symboles",
"emoji_button.travel": "Voyage et lieux", "emoji_button.travel": "Voyage et lieux",
"empty_column.account_featured.me": "Vous n'avez pas encore mis de contenu en avant. Saviez-vous que vous pouviez mettre en avant les hashtags que vous utilisez le plus, et même les comptes de vos amis sur votre profil ?",
"empty_column.account_featured.other": "{acct} n'a pas encore mis de contenu en avant. Saviez-vous que vous pouviez mettre en avant les hashtags que vous utilisez le plus, et même les comptes de vos amis sur votre profil ?",
"empty_column.account_featured_other.unknown": "Ce compte n'a mis aucun contenu en avant pour l'instant.",
"empty_column.account_hides_collections": "Cet utilisateur·ice préfère ne pas rendre publiques ces informations", "empty_column.account_hides_collections": "Cet utilisateur·ice préfère ne pas rendre publiques ces informations",
"empty_column.account_suspended": "Compte suspendu", "empty_column.account_suspended": "Compte suspendu",
"empty_column.account_timeline": "Aucune publication ici!", "empty_column.account_timeline": "Aucune publication ici!",
@ -337,7 +325,6 @@
"errors.unexpected_crash.copy_stacktrace": "Copier la trace d'appels dans le presse-papier", "errors.unexpected_crash.copy_stacktrace": "Copier la trace d'appels dans le presse-papier",
"errors.unexpected_crash.report_issue": "Signaler un problème", "errors.unexpected_crash.report_issue": "Signaler un problème",
"explore.suggested_follows": "Personnes", "explore.suggested_follows": "Personnes",
"explore.title": "Tendances",
"explore.trending_links": "Nouvelles", "explore.trending_links": "Nouvelles",
"explore.trending_statuses": "Messages", "explore.trending_statuses": "Messages",
"explore.trending_tags": "Hashtags", "explore.trending_tags": "Hashtags",
@ -397,8 +384,6 @@
"generic.saved": "Sauvegardé", "generic.saved": "Sauvegardé",
"getting_started.heading": "Pour commencer", "getting_started.heading": "Pour commencer",
"hashtag.admin_moderation": "Ouvrir l'interface de modération pour #{name}", "hashtag.admin_moderation": "Ouvrir l'interface de modération pour #{name}",
"hashtag.browse": "Parcourir les posts dans #{hashtag}",
"hashtag.browse_from_account": "Parcourir les posts de @{name} dans #{hashtag}",
"hashtag.column_header.tag_mode.all": "et {additional}", "hashtag.column_header.tag_mode.all": "et {additional}",
"hashtag.column_header.tag_mode.any": "ou {additional}", "hashtag.column_header.tag_mode.any": "ou {additional}",
"hashtag.column_header.tag_mode.none": "sans {additional}", "hashtag.column_header.tag_mode.none": "sans {additional}",
@ -411,10 +396,7 @@
"hashtag.counter_by_accounts": "{count, plural, one {{counter} participant} other {{counter} participants}}", "hashtag.counter_by_accounts": "{count, plural, one {{counter} participant} other {{counter} participants}}",
"hashtag.counter_by_uses": "{count, plural, one {{counter} message} other {{counter} messages}}", "hashtag.counter_by_uses": "{count, plural, one {{counter} message} other {{counter} messages}}",
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} message} other {{counter} messages}} aujourdhui", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} message} other {{counter} messages}} aujourdhui",
"hashtag.feature": "Mettre en avant sur votre profil",
"hashtag.follow": "Suivre ce hashtag", "hashtag.follow": "Suivre ce hashtag",
"hashtag.mute": "Mettre #{hashtag} en sourdine",
"hashtag.unfeature": "Ne plus mettre en avant sur votre profil",
"hashtag.unfollow": "Ne plus suivre ce hashtag", "hashtag.unfollow": "Ne plus suivre ce hashtag",
"hashtags.and_other": "…et {count, plural, other {# de plus}}", "hashtags.and_other": "…et {count, plural, other {# de plus}}",
"hints.profiles.followers_may_be_missing": "Les abonné·e·s à ce profil peuvent être manquant·e·s.", "hints.profiles.followers_may_be_missing": "Les abonné·e·s à ce profil peuvent être manquant·e·s.",
@ -425,7 +407,6 @@
"hints.profiles.see_more_posts": "Voir plus de messages sur {domain}", "hints.profiles.see_more_posts": "Voir plus de messages sur {domain}",
"hints.threads.replies_may_be_missing": "Les réponses provenant des autres serveurs pourraient être manquantes.", "hints.threads.replies_may_be_missing": "Les réponses provenant des autres serveurs pourraient être manquantes.",
"hints.threads.see_more": "Afficher plus de réponses sur {domain}", "hints.threads.see_more": "Afficher plus de réponses sur {domain}",
"home.column_settings.show_quotes": "Afficher les citations",
"home.column_settings.show_reblogs": "Afficher boosts", "home.column_settings.show_reblogs": "Afficher boosts",
"home.column_settings.show_replies": "Afficher réponses", "home.column_settings.show_replies": "Afficher réponses",
"home.hide_announcements": "Masquer les annonces", "home.hide_announcements": "Masquer les annonces",
@ -548,10 +529,8 @@
"mute_modal.you_wont_see_mentions": "Vous ne verrez pas les publications qui le mentionne.", "mute_modal.you_wont_see_mentions": "Vous ne verrez pas les publications qui le mentionne.",
"mute_modal.you_wont_see_posts": "Il peut toujours voir vos publications, mais vous ne verrez pas les siennes.", "mute_modal.you_wont_see_posts": "Il peut toujours voir vos publications, mais vous ne verrez pas les siennes.",
"navigation_bar.about": "À propos", "navigation_bar.about": "À propos",
"navigation_bar.account_settings": "Mot de passe et sécurité",
"navigation_bar.administration": "Administration", "navigation_bar.administration": "Administration",
"navigation_bar.advanced_interface": "Ouvrir dans linterface avancée", "navigation_bar.advanced_interface": "Ouvrir dans linterface avancée",
"navigation_bar.automated_deletion": "Suppression automatique du message",
"navigation_bar.blocks": "Comptes bloqués", "navigation_bar.blocks": "Comptes bloqués",
"navigation_bar.bookmarks": "Signets", "navigation_bar.bookmarks": "Signets",
"navigation_bar.direct": "Mention privée", "navigation_bar.direct": "Mention privée",
@ -561,19 +540,13 @@
"navigation_bar.follow_requests": "Demandes d'abonnements", "navigation_bar.follow_requests": "Demandes d'abonnements",
"navigation_bar.followed_tags": "Hashtags suivis", "navigation_bar.followed_tags": "Hashtags suivis",
"navigation_bar.follows_and_followers": "Abonnements et abonnés", "navigation_bar.follows_and_followers": "Abonnements et abonnés",
"navigation_bar.import_export": "Import et export",
"navigation_bar.lists": "Listes", "navigation_bar.lists": "Listes",
"navigation_bar.live_feed_local": "Flux en direct (local)",
"navigation_bar.live_feed_public": "Flux en direct (public)",
"navigation_bar.logout": "Se déconnecter", "navigation_bar.logout": "Se déconnecter",
"navigation_bar.moderation": "Modération", "navigation_bar.moderation": "Modération",
"navigation_bar.more": "Plus",
"navigation_bar.mutes": "Utilisateurs masqués", "navigation_bar.mutes": "Utilisateurs masqués",
"navigation_bar.opened_in_classic_interface": "Les messages, les comptes et les pages spécifiques sont ouvertes dans linterface classique.", "navigation_bar.opened_in_classic_interface": "Les messages, les comptes et les pages spécifiques sont ouvertes dans linterface classique.",
"navigation_bar.preferences": "Préférences", "navigation_bar.preferences": "Préférences",
"navigation_bar.privacy_and_reach": "Vie privée et visibilité",
"navigation_bar.search": "Rechercher", "navigation_bar.search": "Rechercher",
"navigation_bar.search_trends": "Recherche / Tendance",
"not_signed_in_indicator.not_signed_in": "Vous devez vous connecter pour accéder à cette ressource.", "not_signed_in_indicator.not_signed_in": "Vous devez vous connecter pour accéder à cette ressource.",
"notification.admin.report": "{name} a signalé {target}", "notification.admin.report": "{name} a signalé {target}",
"notification.admin.report_account": "{name} a signalé {count, plural, one {un message} other {# messages}} de {target} pour {category}", "notification.admin.report_account": "{name} a signalé {count, plural, one {un message} other {# messages}} de {target} pour {category}",
@ -866,8 +839,8 @@
"status.mute_conversation": "Masquer la conversation", "status.mute_conversation": "Masquer la conversation",
"status.open": "Afficher la publication entière", "status.open": "Afficher la publication entière",
"status.pin": "Épingler sur profil", "status.pin": "Épingler sur profil",
"status.quote_error.removed": "Ce message a été retiré par son auteur·ice.", "status.quote_error.removed": "Ce message a été retiré par son auteur.",
"status.quote_error.unauthorized": "Ce message ne peut pas être affiché car vous n'êtes pas autorisé·e à le voir.", "status.quote_error.unauthorized": "Ce message ne peut pas être affiché car vous n'êtes pas autorisé à le voir.",
"status.quote_post_author": "Message par {name}", "status.quote_post_author": "Message par {name}",
"status.read_more": "En savoir plus", "status.read_more": "En savoir plus",
"status.reblog": "Booster", "status.reblog": "Booster",

View File

@ -68,7 +68,6 @@
"account.open_original_page": "Ouvrir la page d'origine", "account.open_original_page": "Ouvrir la page d'origine",
"account.posts": "Messages", "account.posts": "Messages",
"account.posts_with_replies": "Messages et réponses", "account.posts_with_replies": "Messages et réponses",
"account.remove_from_followers": "Retirer {name} des suiveurs",
"account.report": "Signaler @{name}", "account.report": "Signaler @{name}",
"account.requested": "En attente dapprobation. Cliquez pour annuler la demande", "account.requested": "En attente dapprobation. Cliquez pour annuler la demande",
"account.requested_follow": "{name} a demandé à vous suivre", "account.requested_follow": "{name} a demandé à vous suivre",
@ -138,8 +137,8 @@
"block_modal.title": "Bloquer le compte ?", "block_modal.title": "Bloquer le compte ?",
"block_modal.you_wont_see_mentions": "Vous ne verrez pas les messages qui le mentionne.", "block_modal.you_wont_see_mentions": "Vous ne verrez pas les messages qui le mentionne.",
"boost_modal.combo": "Vous pouvez appuyer sur {combo} pour passer ceci la prochaine fois", "boost_modal.combo": "Vous pouvez appuyer sur {combo} pour passer ceci la prochaine fois",
"boost_modal.reblog": "Booster le message ?", "boost_modal.reblog": "Amplifier le message ?",
"boost_modal.undo_reblog": "Annuler le boost du message ?", "boost_modal.undo_reblog": "Annuler l'amplification du message ?",
"bundle_column_error.copy_stacktrace": "Copier le rapport d'erreur", "bundle_column_error.copy_stacktrace": "Copier le rapport d'erreur",
"bundle_column_error.error.body": "La page demandée n'a pas pu être affichée. Cela peut être dû à un bogue dans notre code, ou à un problème de compatibilité avec le navigateur.", "bundle_column_error.error.body": "La page demandée n'a pas pu être affichée. Cela peut être dû à un bogue dans notre code, ou à un problème de compatibilité avec le navigateur.",
"bundle_column_error.error.title": "Oh non!", "bundle_column_error.error.title": "Oh non!",
@ -219,13 +218,8 @@
"confirmations.delete_list.confirm": "Supprimer", "confirmations.delete_list.confirm": "Supprimer",
"confirmations.delete_list.message": "Voulez-vous vraiment supprimer définitivement cette liste?", "confirmations.delete_list.message": "Voulez-vous vraiment supprimer définitivement cette liste?",
"confirmations.delete_list.title": "Supprimer la liste ?", "confirmations.delete_list.title": "Supprimer la liste ?",
"confirmations.discard_draft.confirm": "Effacer et continuer", "confirmations.discard_draft.confirm": "Efface et continue",
"confirmations.discard_draft.edit.cancel": "Retour vers l'éditeur", "confirmations.discard_draft.edit.cancel": "Retour vers l'éditeur",
"confirmations.discard_draft.edit.message": "Continued va perdre les changements que vous avez faits dans le message courant.",
"confirmations.discard_draft.edit.title": "Jeter les changements faits au message?",
"confirmations.discard_draft.post.cancel": "Retour au brouillon",
"confirmations.discard_draft.post.message": "En continuant, vous perdez le message que vous êtes en train d'écrire.",
"confirmations.discard_draft.post.title": "Jeter le brouillon de message?",
"confirmations.discard_edit_media.confirm": "Rejeter", "confirmations.discard_edit_media.confirm": "Rejeter",
"confirmations.discard_edit_media.message": "Vous avez des modifications non enregistrées de la description ou de l'aperçu du média, les supprimer quand même ?", "confirmations.discard_edit_media.message": "Vous avez des modifications non enregistrées de la description ou de l'aperçu du média, les supprimer quand même ?",
"confirmations.follow_to_list.confirm": "Suivre et ajouter à la liste", "confirmations.follow_to_list.confirm": "Suivre et ajouter à la liste",
@ -242,9 +236,6 @@
"confirmations.redraft.confirm": "Supprimer et ré-écrire", "confirmations.redraft.confirm": "Supprimer et ré-écrire",
"confirmations.redraft.message": "Voulez-vous vraiment supprimer le message pour le réécrire? Ses partages ainsi que ses mises en favori seront perdues, et ses réponses seront orphelines.", "confirmations.redraft.message": "Voulez-vous vraiment supprimer le message pour le réécrire? Ses partages ainsi que ses mises en favori seront perdues, et ses réponses seront orphelines.",
"confirmations.redraft.title": "Supprimer et réécrire le message ?", "confirmations.redraft.title": "Supprimer et réécrire le message ?",
"confirmations.remove_from_followers.confirm": "Supprimer l'abonné·e",
"confirmations.remove_from_followers.message": "{name} cessera de vous suivre. Êtes-vous sûr de vouloir continuer ?",
"confirmations.remove_from_followers.title": "Supprimer l'abonné·e ?",
"confirmations.unfollow.confirm": "Ne plus suivre", "confirmations.unfollow.confirm": "Ne plus suivre",
"confirmations.unfollow.message": "Voulez-vous vraiment vous désabonner de {name}?", "confirmations.unfollow.message": "Voulez-vous vraiment vous désabonner de {name}?",
"confirmations.unfollow.title": "Se désabonner de l'utilisateur·rice ?", "confirmations.unfollow.title": "Se désabonner de l'utilisateur·rice ?",
@ -306,9 +297,6 @@
"emoji_button.search_results": "Résultats de la recherche", "emoji_button.search_results": "Résultats de la recherche",
"emoji_button.symbols": "Symboles", "emoji_button.symbols": "Symboles",
"emoji_button.travel": "Voyage et lieux", "emoji_button.travel": "Voyage et lieux",
"empty_column.account_featured.me": "Vous n'avez pas encore mis de contenu en avant. Saviez-vous que vous pouviez mettre en avant les hashtags que vous utilisez le plus, et même les comptes de vos amis sur votre profil ?",
"empty_column.account_featured.other": "{acct} n'a pas encore mis de contenu en avant. Saviez-vous que vous pouviez mettre en avant les hashtags que vous utilisez le plus, et même les comptes de vos amis sur votre profil ?",
"empty_column.account_featured_other.unknown": "Ce compte n'a mis aucun contenu en avant pour l'instant.",
"empty_column.account_hides_collections": "Cet utilisateur·ice préfère ne pas rendre publiques ces informations", "empty_column.account_hides_collections": "Cet utilisateur·ice préfère ne pas rendre publiques ces informations",
"empty_column.account_suspended": "Compte suspendu", "empty_column.account_suspended": "Compte suspendu",
"empty_column.account_timeline": "Aucun message ici !", "empty_column.account_timeline": "Aucun message ici !",
@ -337,7 +325,6 @@
"errors.unexpected_crash.copy_stacktrace": "Copier la trace d'appels dans le presse-papier", "errors.unexpected_crash.copy_stacktrace": "Copier la trace d'appels dans le presse-papier",
"errors.unexpected_crash.report_issue": "Signaler le problème", "errors.unexpected_crash.report_issue": "Signaler le problème",
"explore.suggested_follows": "Personnes", "explore.suggested_follows": "Personnes",
"explore.title": "Tendances",
"explore.trending_links": "Nouvelles", "explore.trending_links": "Nouvelles",
"explore.trending_statuses": "Messages", "explore.trending_statuses": "Messages",
"explore.trending_tags": "Hashtags", "explore.trending_tags": "Hashtags",
@ -397,8 +384,6 @@
"generic.saved": "Sauvegardé", "generic.saved": "Sauvegardé",
"getting_started.heading": "Pour commencer", "getting_started.heading": "Pour commencer",
"hashtag.admin_moderation": "Ouvrir l'interface de modération pour #{name}", "hashtag.admin_moderation": "Ouvrir l'interface de modération pour #{name}",
"hashtag.browse": "Parcourir les posts dans #{hashtag}",
"hashtag.browse_from_account": "Parcourir les posts de @{name} dans #{hashtag}",
"hashtag.column_header.tag_mode.all": "et {additional}", "hashtag.column_header.tag_mode.all": "et {additional}",
"hashtag.column_header.tag_mode.any": "ou {additional}", "hashtag.column_header.tag_mode.any": "ou {additional}",
"hashtag.column_header.tag_mode.none": "sans {additional}", "hashtag.column_header.tag_mode.none": "sans {additional}",
@ -411,10 +396,7 @@
"hashtag.counter_by_accounts": "{count, plural, one {{counter} participant} other {{counter} participants}}", "hashtag.counter_by_accounts": "{count, plural, one {{counter} participant} other {{counter} participants}}",
"hashtag.counter_by_uses": "{count, plural, one {{counter} message} other {{counter} messages}}", "hashtag.counter_by_uses": "{count, plural, one {{counter} message} other {{counter} messages}}",
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} message} other {{counter} messages}} aujourdhui", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} message} other {{counter} messages}} aujourdhui",
"hashtag.feature": "Mettre en avant sur votre profil",
"hashtag.follow": "Suivre le hashtag", "hashtag.follow": "Suivre le hashtag",
"hashtag.mute": "Mettre #{hashtag} en sourdine",
"hashtag.unfeature": "Ne plus mettre en avant sur votre profil",
"hashtag.unfollow": "Ne plus suivre le hashtag", "hashtag.unfollow": "Ne plus suivre le hashtag",
"hashtags.and_other": "…et {count, plural, other {# de plus}}", "hashtags.and_other": "…et {count, plural, other {# de plus}}",
"hints.profiles.followers_may_be_missing": "Les abonné·e·s à ce profil peuvent être manquant·e·s.", "hints.profiles.followers_may_be_missing": "Les abonné·e·s à ce profil peuvent être manquant·e·s.",
@ -425,7 +407,6 @@
"hints.profiles.see_more_posts": "Voir plus de messages sur {domain}", "hints.profiles.see_more_posts": "Voir plus de messages sur {domain}",
"hints.threads.replies_may_be_missing": "Les réponses provenant des autres serveurs pourraient être manquantes.", "hints.threads.replies_may_be_missing": "Les réponses provenant des autres serveurs pourraient être manquantes.",
"hints.threads.see_more": "Afficher plus de réponses sur {domain}", "hints.threads.see_more": "Afficher plus de réponses sur {domain}",
"home.column_settings.show_quotes": "Afficher les citations",
"home.column_settings.show_reblogs": "Afficher les partages", "home.column_settings.show_reblogs": "Afficher les partages",
"home.column_settings.show_replies": "Afficher les réponses", "home.column_settings.show_replies": "Afficher les réponses",
"home.hide_announcements": "Masquer les annonces", "home.hide_announcements": "Masquer les annonces",
@ -548,10 +529,8 @@
"mute_modal.you_wont_see_mentions": "Vous ne verrez pas les publications qui le mentionne.", "mute_modal.you_wont_see_mentions": "Vous ne verrez pas les publications qui le mentionne.",
"mute_modal.you_wont_see_posts": "Il peut toujours voir vos publications, mais vous ne verrez pas les siennes.", "mute_modal.you_wont_see_posts": "Il peut toujours voir vos publications, mais vous ne verrez pas les siennes.",
"navigation_bar.about": "À propos", "navigation_bar.about": "À propos",
"navigation_bar.account_settings": "Mot de passe et sécurité",
"navigation_bar.administration": "Administration", "navigation_bar.administration": "Administration",
"navigation_bar.advanced_interface": "Ouvrir dans linterface avancée", "navigation_bar.advanced_interface": "Ouvrir dans linterface avancée",
"navigation_bar.automated_deletion": "Suppression automatique du message",
"navigation_bar.blocks": "Comptes bloqués", "navigation_bar.blocks": "Comptes bloqués",
"navigation_bar.bookmarks": "Marque-pages", "navigation_bar.bookmarks": "Marque-pages",
"navigation_bar.direct": "Mention privée", "navigation_bar.direct": "Mention privée",
@ -561,19 +540,13 @@
"navigation_bar.follow_requests": "Demandes dabonnement", "navigation_bar.follow_requests": "Demandes dabonnement",
"navigation_bar.followed_tags": "Hashtags suivis", "navigation_bar.followed_tags": "Hashtags suivis",
"navigation_bar.follows_and_followers": "Abonnements et abonnés", "navigation_bar.follows_and_followers": "Abonnements et abonnés",
"navigation_bar.import_export": "Import et export",
"navigation_bar.lists": "Listes", "navigation_bar.lists": "Listes",
"navigation_bar.live_feed_local": "Flux en direct (local)",
"navigation_bar.live_feed_public": "Flux en direct (public)",
"navigation_bar.logout": "Déconnexion", "navigation_bar.logout": "Déconnexion",
"navigation_bar.moderation": "Modération", "navigation_bar.moderation": "Modération",
"navigation_bar.more": "Plus",
"navigation_bar.mutes": "Comptes masqués", "navigation_bar.mutes": "Comptes masqués",
"navigation_bar.opened_in_classic_interface": "Les messages, les comptes et les pages spécifiques sont ouvertes dans linterface classique.", "navigation_bar.opened_in_classic_interface": "Les messages, les comptes et les pages spécifiques sont ouvertes dans linterface classique.",
"navigation_bar.preferences": "Préférences", "navigation_bar.preferences": "Préférences",
"navigation_bar.privacy_and_reach": "Vie privée et visibilité",
"navigation_bar.search": "Rechercher", "navigation_bar.search": "Rechercher",
"navigation_bar.search_trends": "Recherche / Tendance",
"not_signed_in_indicator.not_signed_in": "Vous devez vous connecter pour accéder à cette ressource.", "not_signed_in_indicator.not_signed_in": "Vous devez vous connecter pour accéder à cette ressource.",
"notification.admin.report": "{name} a signalé {target}", "notification.admin.report": "{name} a signalé {target}",
"notification.admin.report_account": "{name} a signalé {count, plural, one {un message} other {# messages}} de {target} pour {category}", "notification.admin.report_account": "{name} a signalé {count, plural, one {un message} other {# messages}} de {target} pour {category}",
@ -866,8 +839,8 @@
"status.mute_conversation": "Masquer la conversation", "status.mute_conversation": "Masquer la conversation",
"status.open": "Afficher le message entier", "status.open": "Afficher le message entier",
"status.pin": "Épingler sur le profil", "status.pin": "Épingler sur le profil",
"status.quote_error.removed": "Ce message a été retiré par son auteur·ice.", "status.quote_error.removed": "Ce message a été retiré par son auteur.",
"status.quote_error.unauthorized": "Ce message ne peut pas être affiché car vous n'êtes pas autorisé·e à le voir.", "status.quote_error.unauthorized": "Ce message ne peut pas être affiché car vous n'êtes pas autorisé à le voir.",
"status.quote_post_author": "Message par {name}", "status.quote_post_author": "Message par {name}",
"status.read_more": "En savoir plus", "status.read_more": "En savoir plus",
"status.reblog": "Partager", "status.reblog": "Partager",

View File

@ -564,8 +564,6 @@
"navigation_bar.follows_and_followers": "Folgers en folgjenden", "navigation_bar.follows_and_followers": "Folgers en folgjenden",
"navigation_bar.import_export": "Ymportearje en eksportearje", "navigation_bar.import_export": "Ymportearje en eksportearje",
"navigation_bar.lists": "Listen", "navigation_bar.lists": "Listen",
"navigation_bar.live_feed_local": "Livefeed (lokaal)",
"navigation_bar.live_feed_public": "Livefeed (iepenbier)",
"navigation_bar.logout": "Ofmelde", "navigation_bar.logout": "Ofmelde",
"navigation_bar.moderation": "Moderaasje", "navigation_bar.moderation": "Moderaasje",
"navigation_bar.more": "Mear", "navigation_bar.more": "Mear",
@ -805,7 +803,6 @@
"report_notification.categories.violation": "Skeinde regels", "report_notification.categories.violation": "Skeinde regels",
"report_notification.categories.violation_sentence": "skeinde regels", "report_notification.categories.violation_sentence": "skeinde regels",
"report_notification.open": "Rapport iepenje", "report_notification.open": "Rapport iepenje",
"search.clear": "Sykopdracht wiskje",
"search.no_recent_searches": "Gjin resinte sykopdrachten", "search.no_recent_searches": "Gjin resinte sykopdrachten",
"search.placeholder": "Sykje", "search.placeholder": "Sykje",
"search.quick_action.account_search": "Accounts dyt oerienkomme mei {x}", "search.quick_action.account_search": "Accounts dyt oerienkomme mei {x}",

View File

@ -6,7 +6,6 @@
"about.domain_blocks.preamble": "Maṣṭudun s umata yeḍmen-ak ad teẓreḍ agbur, ad tesdemreḍ akked yimseqdacen-nniḍen seg yal aqeddac deg fedivers. Ha-tent-an ɣur-k tsuraf i yellan deg uqeddac-agi.", "about.domain_blocks.preamble": "Maṣṭudun s umata yeḍmen-ak ad teẓreḍ agbur, ad tesdemreḍ akked yimseqdacen-nniḍen seg yal aqeddac deg fedivers. Ha-tent-an ɣur-k tsuraf i yellan deg uqeddac-agi.",
"about.domain_blocks.silenced.title": "Ɣur-s talast", "about.domain_blocks.silenced.title": "Ɣur-s talast",
"about.domain_blocks.suspended.title": "Yettwaḥbes", "about.domain_blocks.suspended.title": "Yettwaḥbes",
"about.language_label": "Tutlayt",
"about.not_available": "Talɣut-a ur tettwabder ara deg uqeddac-a.", "about.not_available": "Talɣut-a ur tettwabder ara deg uqeddac-a.",
"about.powered_by": "Azeṭṭa inmetti yettwasɣelsen sɣur {mastodon}", "about.powered_by": "Azeṭṭa inmetti yettwasɣelsen sɣur {mastodon}",
"about.rules": "Ilugan n uqeddac", "about.rules": "Ilugan n uqeddac",
@ -238,10 +237,6 @@
"explore.trending_links": "Isallen", "explore.trending_links": "Isallen",
"explore.trending_statuses": "Tisuffaɣ", "explore.trending_statuses": "Tisuffaɣ",
"explore.trending_tags": "Ihacṭagen", "explore.trending_tags": "Ihacṭagen",
"featured_carousel.next": "Uḍfiṛ",
"featured_carousel.post": "Tasuffeɣt",
"featured_carousel.previous": "Uzwir",
"featured_carousel.slide": "{index} ɣef {total}",
"filter_modal.added.review_and_configure_title": "Iɣewwaṛen n imzizdig", "filter_modal.added.review_and_configure_title": "Iɣewwaṛen n imzizdig",
"filter_modal.added.settings_link": "asebter n yiɣewwaṛen", "filter_modal.added.settings_link": "asebter n yiɣewwaṛen",
"filter_modal.added.short_explanation": "Tasuffeɣt-a tettwarna ɣer taggayt-a n yimsizdegen: {title}.", "filter_modal.added.short_explanation": "Tasuffeɣt-a tettwarna ɣer taggayt-a n yimsizdegen: {title}.",
@ -362,7 +357,6 @@
"lists.add_to_list": "Rnu ɣer tebdart", "lists.add_to_list": "Rnu ɣer tebdart",
"lists.add_to_lists": "Rnu {name} ɣer tebdarin", "lists.add_to_lists": "Rnu {name} ɣer tebdarin",
"lists.create": "Snulfu-d", "lists.create": "Snulfu-d",
"lists.create_list": "Snulfu-d tabdart",
"lists.delete": "Kkes tabdart", "lists.delete": "Kkes tabdart",
"lists.done": "Immed", "lists.done": "Immed",
"lists.edit": "Ẓreg tabdart", "lists.edit": "Ẓreg tabdart",
@ -403,7 +397,6 @@
"navigation_bar.lists": "Tibdarin", "navigation_bar.lists": "Tibdarin",
"navigation_bar.logout": "Ffeɣ", "navigation_bar.logout": "Ffeɣ",
"navigation_bar.moderation": "Aseɣyed", "navigation_bar.moderation": "Aseɣyed",
"navigation_bar.more": "Ugar",
"navigation_bar.mutes": "Iseqdacen yettwasusmen", "navigation_bar.mutes": "Iseqdacen yettwasusmen",
"navigation_bar.opened_in_classic_interface": "Tisuffaɣ, imiḍanen akked isebtar-nniḍen igejdanen ldin-d s wudem amezwer deg ugrudem web aklasiki.", "navigation_bar.opened_in_classic_interface": "Tisuffaɣ, imiḍanen akked isebtar-nniḍen igejdanen ldin-d s wudem amezwer deg ugrudem web aklasiki.",
"navigation_bar.preferences": "Imenyafen", "navigation_bar.preferences": "Imenyafen",
@ -617,7 +610,6 @@
"status.mute_conversation": "Sgugem adiwenni", "status.mute_conversation": "Sgugem adiwenni",
"status.open": "Semɣeṛ tasuffeɣt-ayi", "status.open": "Semɣeṛ tasuffeɣt-ayi",
"status.pin": "Senteḍ-itt deg umaɣnu", "status.pin": "Senteḍ-itt deg umaɣnu",
"status.quote_post_author": "Izen sɣur {name}",
"status.read_more": "Issin ugar", "status.read_more": "Issin ugar",
"status.reblog": "Bḍu", "status.reblog": "Bḍu",
"status.reblogged_by": "Yebḍa-tt {name}", "status.reblogged_by": "Yebḍa-tt {name}",
@ -643,10 +635,7 @@
"status.unpin": "Kkes asenteḍ seg umaɣnu", "status.unpin": "Kkes asenteḍ seg umaɣnu",
"subscribed_languages.save": "Sekles ibeddilen", "subscribed_languages.save": "Sekles ibeddilen",
"tabs_bar.home": "Agejdan", "tabs_bar.home": "Agejdan",
"tabs_bar.menu": "Umuɣ",
"tabs_bar.notifications": "Ilɣa", "tabs_bar.notifications": "Ilɣa",
"tabs_bar.publish": "Tasuffeɣt tamaynut",
"tabs_bar.search": "Nadi",
"terms_of_service.title": "Tiwtilin n useqdec", "terms_of_service.title": "Tiwtilin n useqdec",
"time_remaining.days": "Mazal {number, plural, one {# wass} other {# wussan}}", "time_remaining.days": "Mazal {number, plural, one {# wass} other {# wussan}}",
"time_remaining.hours": "Mazal {number, plural, one {# usarag} other {# yisragen}}", "time_remaining.hours": "Mazal {number, plural, one {# usarag} other {# yisragen}}",

View File

@ -356,7 +356,6 @@
"hashtag.counter_by_accounts": "{count, plural, one {{counter} partisipante} other {{counter} partisipantes}}", "hashtag.counter_by_accounts": "{count, plural, one {{counter} partisipante} other {{counter} partisipantes}}",
"hashtag.counter_by_uses": "{count, plural, one {{counter} publikasyon} other {{counter} publikasyones}}", "hashtag.counter_by_uses": "{count, plural, one {{counter} publikasyon} other {{counter} publikasyones}}",
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} publikasyon} other {{counter} publikasyones}} oy", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} publikasyon} other {{counter} publikasyones}} oy",
"hashtag.feature": "Avalia en profil",
"hashtag.follow": "Sige etiketa", "hashtag.follow": "Sige etiketa",
"hashtag.mute": "Silensia #{hashtag}", "hashtag.mute": "Silensia #{hashtag}",
"hashtag.unfeature": "No avalia en profil", "hashtag.unfeature": "No avalia en profil",
@ -391,7 +390,6 @@
"interaction_modal.title.reblog": "Repartaja publikasyon de {name}", "interaction_modal.title.reblog": "Repartaja publikasyon de {name}",
"interaction_modal.title.reply": "Arisponde a publikasyon de {name}", "interaction_modal.title.reply": "Arisponde a publikasyon de {name}",
"interaction_modal.title.vote": "Vota en la anketa de {name}", "interaction_modal.title.vote": "Vota en la anketa de {name}",
"interaction_modal.username_prompt": "Por enshemplo {example}",
"intervals.full.days": "{number, plural, one {# diya} other {# diyas}}", "intervals.full.days": "{number, plural, one {# diya} other {# diyas}}",
"intervals.full.hours": "{number, plural, one {# ora} other {# oras}}", "intervals.full.hours": "{number, plural, one {# ora} other {# oras}}",
"intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}", "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}",
@ -444,7 +442,6 @@
"lists.delete": "Efasa lista", "lists.delete": "Efasa lista",
"lists.done": "Fecho", "lists.done": "Fecho",
"lists.edit": "Edita lista", "lists.edit": "Edita lista",
"lists.list_name": "Nombre de lista",
"lists.new_list_name": "Nombre de mueva lista", "lists.new_list_name": "Nombre de mueva lista",
"lists.replies_policy.followed": "Kualseker utilizador segido", "lists.replies_policy.followed": "Kualseker utilizador segido",
"lists.replies_policy.list": "Miembros de la lista", "lists.replies_policy.list": "Miembros de la lista",
@ -741,7 +738,6 @@
"status.reblogs.empty": "Ainda nadie tiene repartajado esta publikasyon. Kuando algien lo aga, se amostrara aki.", "status.reblogs.empty": "Ainda nadie tiene repartajado esta publikasyon. Kuando algien lo aga, se amostrara aki.",
"status.redraft": "Efasa i eskrive de muevo", "status.redraft": "Efasa i eskrive de muevo",
"status.remove_bookmark": "Kita markador", "status.remove_bookmark": "Kita markador",
"status.remove_favourite": "Kita de los favoritos",
"status.replied_in_thread": "Arispondo en filo", "status.replied_in_thread": "Arispondo en filo",
"status.replied_to": "Arispondio a {name}", "status.replied_to": "Arispondio a {name}",
"status.reply": "Arisponde", "status.reply": "Arisponde",
@ -762,7 +758,6 @@
"subscribed_languages.save": "Guadra trokamientos", "subscribed_languages.save": "Guadra trokamientos",
"subscribed_languages.target": "Troka linguas abonadas para {target}", "subscribed_languages.target": "Troka linguas abonadas para {target}",
"tabs_bar.home": "Linya prinsipala", "tabs_bar.home": "Linya prinsipala",
"tabs_bar.menu": "Menu",
"tabs_bar.notifications": "Avizos", "tabs_bar.notifications": "Avizos",
"tabs_bar.publish": "Mueva publikasyon", "tabs_bar.publish": "Mueva publikasyon",
"tabs_bar.search": "Bushkeda", "tabs_bar.search": "Bushkeda",

View File

@ -1,7 +1,6 @@
{ {
"about.blocks": "Servidores moderados", "about.blocks": "Servidores moderados",
"about.contact": "Contato:", "about.contact": "Contato:",
"about.default_locale": "Padrão",
"about.disclaimer": "Mastodon é um software de código aberto e livre, e uma marca registrada de Mastodon gGmbH.", "about.disclaimer": "Mastodon é um software de código aberto e livre, e uma marca registrada de Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Razão não disponível", "about.domain_blocks.no_reason_available": "Razão não disponível",
"about.domain_blocks.preamble": "O Mastodon geralmente permite que você veja o conteúdo e interaja com usuários de qualquer outro servidor no fediverso. Estas são as exceções deste servidor em específico.", "about.domain_blocks.preamble": "O Mastodon geralmente permite que você veja o conteúdo e interaja com usuários de qualquer outro servidor no fediverso. Estas são as exceções deste servidor em específico.",
@ -9,7 +8,6 @@
"about.domain_blocks.silenced.title": "Limitado", "about.domain_blocks.silenced.title": "Limitado",
"about.domain_blocks.suspended.explanation": "Nenhum dado desse servidor será processado, armazenado ou trocado, impossibilitando qualquer interação ou comunicação com os usuários deste servidor.", "about.domain_blocks.suspended.explanation": "Nenhum dado desse servidor será processado, armazenado ou trocado, impossibilitando qualquer interação ou comunicação com os usuários deste servidor.",
"about.domain_blocks.suspended.title": "Suspenso", "about.domain_blocks.suspended.title": "Suspenso",
"about.language_label": "Idioma",
"about.not_available": "Esta informação não foi disponibilizada neste servidor.", "about.not_available": "Esta informação não foi disponibilizada neste servidor.",
"about.powered_by": "Redes sociais descentralizadas alimentadas por {mastodon}", "about.powered_by": "Redes sociais descentralizadas alimentadas por {mastodon}",
"about.rules": "Regras do servidor", "about.rules": "Regras do servidor",
@ -219,11 +217,6 @@
"confirmations.delete_list.confirm": "Excluir", "confirmations.delete_list.confirm": "Excluir",
"confirmations.delete_list.message": "Você tem certeza de que deseja excluir esta lista?", "confirmations.delete_list.message": "Você tem certeza de que deseja excluir esta lista?",
"confirmations.delete_list.title": "Excluir lista?", "confirmations.delete_list.title": "Excluir lista?",
"confirmations.discard_draft.confirm": "Descartar e continuar",
"confirmations.discard_draft.edit.cancel": "Continuar editando",
"confirmations.discard_draft.edit.message": "Continuar vai descartar quaisquer mudanças feitas ao post sendo editado.",
"confirmations.discard_draft.edit.title": "Descartar mudanças no seu post?",
"confirmations.discard_draft.post.cancel": "Continuar rascunho",
"confirmations.discard_edit_media.confirm": "Descartar", "confirmations.discard_edit_media.confirm": "Descartar",
"confirmations.discard_edit_media.message": "Há mudanças não salvas na descrição ou pré-visualização da mídia. Descartar assim mesmo?", "confirmations.discard_edit_media.message": "Há mudanças não salvas na descrição ou pré-visualização da mídia. Descartar assim mesmo?",
"confirmations.follow_to_list.confirm": "Seguir e adicionar à lista", "confirmations.follow_to_list.confirm": "Seguir e adicionar à lista",

View File

@ -4,17 +4,17 @@
"about.default_locale": "по умолчанию", "about.default_locale": "по умолчанию",
"about.disclaimer": "Mastodon — свободное программное обеспечение с открытым исходным кодом и торговая марка Mastodon gGmbH.", "about.disclaimer": "Mastodon — свободное программное обеспечение с открытым исходным кодом и торговая марка Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Причина не указана", "about.domain_blocks.no_reason_available": "Причина не указана",
"about.domain_blocks.preamble": "Обычно Mastodon даёт вам возможность просматривать содержимое с любых других серверов в федивёрсе и взаимодействовать с их пользователями. Вот исключения, сделанные конкретно для этого сервера:", "about.domain_blocks.preamble": "Mastodon обычно позволяет просматривать содержимое и взаимодействовать с пользователями любых других серверов в федивёрсе. Вот исключения, сделанные конкретно для этого сервера.",
"about.domain_blocks.silenced.explanation": "Как правило, вы не увидите профили и содержимое с этого сервера, если только вы не запросите их с помощью поиска или не подпишетесь на пользователя с этого сервера.", "about.domain_blocks.silenced.explanation": "Как правило, вы не увидите профили и контент с этого сервера, если специально не будете их искать или не подпишетесь на них.",
"about.domain_blocks.silenced.title": "Ограничивается", "about.domain_blocks.silenced.title": "Ограничивается",
"about.domain_blocks.suspended.explanation": "Никакие данные с этого сервера не будут обрабатываться, храниться и обмениваться, что делает невозможным любое взаимодействие и связь с пользователями на этом сервере.", "about.domain_blocks.suspended.explanation": "Никакие данные с этого сервера не будут обрабатываться, храниться или обмениваться, что делает невозможным любое взаимодействие или связь с пользователями с этого сервера.",
"about.domain_blocks.suspended.title": "Заблокирован", "about.domain_blocks.suspended.title": "Заблокирован",
"about.language_label": "Язык", "about.language_label": "Язык",
"about.not_available": "Администраторы сервера предпочли не раскрывать эту информацию.", "about.not_available": "Эта информация не указана на данном сервере.",
"about.powered_by": "Децентрализованная социальная сеть на базе {mastodon}", "about.powered_by": "Децентрализованная социальная сеть на базе {mastodon}",
"about.rules": "Правила сервера", "about.rules": "Правила сервера",
"account.account_note_header": "Личная заметка", "account.account_note_header": "Личная заметка",
"account.add_or_remove_from_list": "Добавить в списки", "account.add_or_remove_from_list": "Управление списками",
"account.badges.bot": "Бот", "account.badges.bot": "Бот",
"account.badges.group": "Группа", "account.badges.group": "Группа",
"account.block": "Заблокировать @{name}", "account.block": "Заблокировать @{name}",
@ -25,10 +25,10 @@
"account.cancel_follow_request": "Отозвать запрос на подписку", "account.cancel_follow_request": "Отозвать запрос на подписку",
"account.copy": "Копировать ссылку на профиль", "account.copy": "Копировать ссылку на профиль",
"account.direct": "Упомянуть @{name} лично", "account.direct": "Упомянуть @{name} лично",
"account.disable_notifications": "Не уведомлять о постах пользователя @{name}", "account.disable_notifications": "Не уведомлять о постах от @{name}",
"account.domain_blocking": "Домен заблокирован", "account.domain_blocking": "Домен заблокирован",
"account.edit_profile": "Редактировать", "account.edit_profile": "Редактировать",
"account.enable_notifications": "Уведомлять о постах пользователя @{name}", "account.enable_notifications": "Уведомлять о постах от @{name}",
"account.endorse": "Рекомендовать в профиле", "account.endorse": "Рекомендовать в профиле",
"account.familiar_followers_many": "В подписках у {name1}, {name2}, и ещё {othersCount, plural, one {# человека, которого вы знаете} other {# человек, которых вы знаете}}", "account.familiar_followers_many": "В подписках у {name1}, {name2}, и ещё {othersCount, plural, one {# человека, которого вы знаете} other {# человек, которых вы знаете}}",
"account.familiar_followers_one": "В подписках у {name1}", "account.familiar_followers_one": "В подписках у {name1}",
@ -36,7 +36,7 @@
"account.featured": "Рекомендации", "account.featured": "Рекомендации",
"account.featured.accounts": "Профили", "account.featured.accounts": "Профили",
"account.featured.hashtags": "Хештеги", "account.featured.hashtags": "Хештеги",
"account.featured_tags.last_status_at": "Последний пост опубликован {date}", "account.featured_tags.last_status_at": "Последний пост {date}",
"account.featured_tags.last_status_never": "Нет постов", "account.featured_tags.last_status_never": "Нет постов",
"account.follow": "Подписаться", "account.follow": "Подписаться",
"account.follow_back": "Подписаться в ответ", "account.follow_back": "Подписаться в ответ",
@ -59,7 +59,7 @@
"account.mention": "Упомянуть @{name}", "account.mention": "Упомянуть @{name}",
"account.moved_to": "У {name} теперь новая учётная запись:", "account.moved_to": "У {name} теперь новая учётная запись:",
"account.mute": "Игнорировать @{name}", "account.mute": "Игнорировать @{name}",
"account.mute_notifications_short": "Скрыть уведомления", "account.mute_notifications_short": "Отключить уведомления",
"account.mute_short": "Игнорировать", "account.mute_short": "Игнорировать",
"account.muted": "Игнорируется", "account.muted": "Игнорируется",
"account.muting": "Игнорируется", "account.muting": "Игнорируется",
@ -83,7 +83,7 @@
"account.unendorse": "Не рекомендовать в профиле", "account.unendorse": "Не рекомендовать в профиле",
"account.unfollow": "Отписаться", "account.unfollow": "Отписаться",
"account.unmute": "Не игнорировать @{name}", "account.unmute": "Не игнорировать @{name}",
"account.unmute_notifications_short": "Показать уведомления", "account.unmute_notifications_short": "Включить уведомления",
"account.unmute_short": "Не игнорировать", "account.unmute_short": "Не игнорировать",
"account_note.placeholder": "Текст заметки", "account_note.placeholder": "Текст заметки",
"admin.dashboard.daily_retention": "Уровень удержания пользователей после регистрации, в днях", "admin.dashboard.daily_retention": "Уровень удержания пользователей после регистрации, в днях",
@ -129,10 +129,10 @@
"annual_report.summary.thanks": "Спасибо за то, что были вместе с Mastodon!", "annual_report.summary.thanks": "Спасибо за то, что были вместе с Mastodon!",
"attachments_list.unprocessed": "(не обработан)", "attachments_list.unprocessed": "(не обработан)",
"audio.hide": "Скрыть аудио", "audio.hide": "Скрыть аудио",
"block_modal.remote_users_caveat": "Мы попросим сервер {domain} уважать ваше решение, однако нельзя гарантировать, что он будет соблюдать блокировку, поскольку некоторые серверы могут по-разному обрабатывать запросы. Публичные посты по-прежнему могут быть видны неавторизованным пользователям.", "block_modal.remote_users_caveat": "Мы попросим сервер {domain} уважать ваше решение, однако соблюдение им блокировки не гарантировано, поскольку некоторые серверы могут по-разному обрабатывать запросы. Публичные посты по-прежнему могут быть видны неавторизованным пользователям.",
"block_modal.show_less": "Показать меньше", "block_modal.show_less": "Показать меньше",
"block_modal.show_more": "Показать больше", "block_modal.show_more": "Показать больше",
"block_modal.they_cant_mention": "Он не сможет ни упоминать вас, ни подписаться на вас.", "block_modal.they_cant_mention": "Он не сможет упоминать вас или подписаться на вас.",
"block_modal.they_cant_see_posts": "Он не сможет видеть ваши посты, а вы не будете видеть его посты.", "block_modal.they_cant_see_posts": "Он не сможет видеть ваши посты, а вы не будете видеть его посты.",
"block_modal.they_will_know": "Он будет знать, что вы его блокируете.", "block_modal.they_will_know": "Он будет знать, что вы его блокируете.",
"block_modal.title": "Заблокировать пользователя?", "block_modal.title": "Заблокировать пользователя?",
@ -141,21 +141,21 @@
"boost_modal.reblog": "Продвинуть пост?", "boost_modal.reblog": "Продвинуть пост?",
"boost_modal.undo_reblog": "Отменить продвижение?", "boost_modal.undo_reblog": "Отменить продвижение?",
"bundle_column_error.copy_stacktrace": "Копировать отчёт об ошибке", "bundle_column_error.copy_stacktrace": "Копировать отчёт об ошибке",
"bundle_column_error.error.body": "Запрошенная страница не может быть отображена. Это могло произойти из-за ошибки в нашем коде или из-за проблемы совместимости браузера.", "bundle_column_error.error.body": "Запрошенная страница не может быть отображена. Это может быть вызвано ошибкой в нашем коде или проблемой совместимости браузера.",
"bundle_column_error.error.title": "О нет!", "bundle_column_error.error.title": "О нет!",
"bundle_column_error.network.body": "При загрузке этой страницы произошла ошибка. Она могла быть вызвана временными проблемами либо с вашим подключением к интернету, либо с этим сервером.", "bundle_column_error.network.body": "При загрузке этой страницы произошла ошибка. Это может быть вызвано временными проблемами с вашим подключением к интернету или ошибкой на сервере.",
"bundle_column_error.network.title": "Ошибка сети", "bundle_column_error.network.title": "Ошибка сети",
"bundle_column_error.retry": "Попробовать снова", "bundle_column_error.retry": "Попробовать снова",
"bundle_column_error.return": "Вернуться на главную", "bundle_column_error.return": "Вернуться на главную",
"bundle_column_error.routing.body": "Запрошенная страница не найдена. Вы уверены, что в адресной строке указан правильный URL?", "bundle_column_error.routing.body": "Запрошенная страница не найдена. Вы уверены, что в адресной строке указан правильный URL?",
"bundle_column_error.routing.title": "404", "bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "Закрыть", "bundle_modal_error.close": "Закрыть",
"bundle_modal_error.message": "Което пошло не так при загрузке этой страницы.", "bundle_modal_error.message": "Что-то пошло не так при загрузке этой страницы.",
"bundle_modal_error.retry": "Попробовать снова", "bundle_modal_error.retry": "Попробовать снова",
"closed_registrations.other_server_instructions": "Благодаря тому что Mastodon децентрализован, вы можете взаимодействовать с этим сервером, даже если зарегистрируетесь на другом сервере.", "closed_registrations.other_server_instructions": "Поскольку Mastodon децентрализован, вы можете зарегистрироваться на другом сервере и всё равно взаимодействовать с этим сервером.",
"closed_registrations_modal.description": "Зарегистрироваться на {domain} сейчас не выйдет, но имейте в виду, что вам не нужна учётная запись именно на {domain}, чтобы использовать Mastodon.", "closed_registrations_modal.description": "Зарегистрироваться на {domain} сейчас не выйдет, но имейте в виду, что вам не нужна учётная запись именно на {domain}, чтобы использовать Mastodon.",
"closed_registrations_modal.find_another_server": "Найти другой сервер", "closed_registrations_modal.find_another_server": "Найти другой сервер",
"closed_registrations_modal.preamble": "Mastodon децентрализован, поэтому независимо от того, где именно вы зарегистрируетесь, вы сможете подписываться на кого угодно и взаимодействовать с кем угодно на этом сервере. Вы даже можете создать свой собственный сервер!", "closed_registrations_modal.preamble": "Mastodon децентрализован, поэтому независимо от того, где именно вы зарегистрируетесь, вы сможете подписываться и взаимодействовать с кем угодно на этом сервере. Вы даже можете создать свой собственный сервер!",
"closed_registrations_modal.title": "Регистрация в Mastodon", "closed_registrations_modal.title": "Регистрация в Mastodon",
"column.about": "О проекте", "column.about": "О проекте",
"column.blocks": "Заблокированные пользователи", "column.blocks": "Заблокированные пользователи",
@ -170,7 +170,7 @@
"column.firehose": "Живая лента", "column.firehose": "Живая лента",
"column.follow_requests": "Запросы на подписку", "column.follow_requests": "Запросы на подписку",
"column.home": "Главная", "column.home": "Главная",
"column.list_members": "Пользователи в списке", "column.list_members": "Добавить или удалить из списка",
"column.lists": "Списки", "column.lists": "Списки",
"column.mutes": "Игнорируемые пользователи", "column.mutes": "Игнорируемые пользователи",
"column.notifications": "Уведомления", "column.notifications": "Уведомления",
@ -240,7 +240,7 @@
"confirmations.missing_alt_text.title": "Добавить альтернативный текст?", "confirmations.missing_alt_text.title": "Добавить альтернативный текст?",
"confirmations.mute.confirm": "Игнорировать", "confirmations.mute.confirm": "Игнорировать",
"confirmations.redraft.confirm": "Удалить и исправить", "confirmations.redraft.confirm": "Удалить и исправить",
"confirmations.redraft.message": "Вы уверены, что хотите удалить этот пост и создать его заново? Взаимодействия, такие как добавление в избранное и продвижение, будут потеряны, а ответы к оригинальному посту перестанут на него ссылаться.", "confirmations.redraft.message": "Вы уверены, что хотите удалить этот пост и создать его заново? Взаимодействия, такие как добавление в избранное или продвижение, будут потеряны, а ответы к оригинальному посту перестанут на него ссылаться.",
"confirmations.redraft.title": "Удалить и создать пост заново?", "confirmations.redraft.title": "Удалить и создать пост заново?",
"confirmations.remove_from_followers.confirm": "Убрать подписчика", "confirmations.remove_from_followers.confirm": "Убрать подписчика",
"confirmations.remove_from_followers.message": "Пользователь {name} перестанет быть подписан на вас. Продолжить?", "confirmations.remove_from_followers.message": "Пользователь {name} перестанет быть подписан на вас. Продолжить?",
@ -264,7 +264,7 @@
"directory.recently_active": "Недавно активные", "directory.recently_active": "Недавно активные",
"disabled_account_banner.account_settings": "Настройки учётной записи", "disabled_account_banner.account_settings": "Настройки учётной записи",
"disabled_account_banner.text": "Ваша учётная запись {disabledAccount} в настоящее время отключена.", "disabled_account_banner.text": "Ваша учётная запись {disabledAccount} в настоящее время отключена.",
"dismissable_banner.community_timeline": "Это самые новые публичные посты от тех пользователей, чьи учётные записи размещены на сервере {domain}.", "dismissable_banner.community_timeline": "Это самые новые публичные посты от тех пользователей, чьи учётные записи находятся на сервере {domain}.",
"dismissable_banner.dismiss": "Закрыть", "dismissable_banner.dismiss": "Закрыть",
"dismissable_banner.public_timeline": "Это самые новые публичные посты от всех тех людей в федивёрсе, на которых подписаны пользователи {domain}.", "dismissable_banner.public_timeline": "Это самые новые публичные посты от всех тех людей в федивёрсе, на которых подписаны пользователи {domain}.",
"domain_block_modal.block": "Заблокировать сервер", "domain_block_modal.block": "Заблокировать сервер",
@ -275,9 +275,9 @@
"domain_block_modal.title": "Заблокировать домен?", "domain_block_modal.title": "Заблокировать домен?",
"domain_block_modal.you_will_lose_num_followers": "Вы потеряете {followersCount, plural, one {{followersCountDisplay} подписчика} few {{followersCountDisplay} подписчика} other {{followersCountDisplay} подписчиков}} и {followingCount, plural, one {{followingCountDisplay} подписку} few {{followingCountDisplay} подписки} other {{followingCountDisplay} подписок}}.", "domain_block_modal.you_will_lose_num_followers": "Вы потеряете {followersCount, plural, one {{followersCountDisplay} подписчика} few {{followersCountDisplay} подписчика} other {{followersCountDisplay} подписчиков}} и {followingCount, plural, one {{followingCountDisplay} подписку} few {{followingCountDisplay} подписки} other {{followingCountDisplay} подписок}}.",
"domain_block_modal.you_will_lose_relationships": "Вы потеряете все подписки и всех подписчиков с этого сервера.", "domain_block_modal.you_will_lose_relationships": "Вы потеряете все подписки и всех подписчиков с этого сервера.",
"domain_block_modal.you_wont_see_posts": "Вы не будете видеть посты и уведомления от пользователей с этого сервера.", "domain_block_modal.you_wont_see_posts": "Вы не будете видеть посты или уведомления от пользователей с этого сервера.",
"domain_pill.activitypub_lets_connect": "Благодаря ему вы можете связываться и взаимодействовать не только с пользователями Mastodon, но и с пользователями других платформ.", "domain_pill.activitypub_lets_connect": "Благодаря ему вы можете связываться и взаимодействовать не только с пользователями Mastodon, но и с пользователями других платформ.",
"domain_pill.activitypub_like_language": "ActivityPub это язык, на котором Mastodon говорит с другими социальными сетями.", "domain_pill.activitypub_like_language": "ActivityPub это язык, на котором Mastodon говорит с другими социальными сетями.",
"domain_pill.server": "Сервер", "domain_pill.server": "Сервер",
"domain_pill.their_handle": "Адрес пользователя:", "domain_pill.their_handle": "Адрес пользователя:",
"domain_pill.their_server": "Цифровой дом пользователя, где находятся все его посты.", "domain_pill.their_server": "Цифровой дом пользователя, где находятся все его посты.",
@ -319,7 +319,7 @@
"empty_column.direct": "Вы ещё не упоминали кого-либо и сами не были ни разу упомянуты лично. Все личные упоминания будут показаны здесь.", "empty_column.direct": "Вы ещё не упоминали кого-либо и сами не были ни разу упомянуты лично. Все личные упоминания будут показаны здесь.",
"empty_column.domain_blocks": "Заблокированных доменов пока нет.", "empty_column.domain_blocks": "Заблокированных доменов пока нет.",
"empty_column.explore_statuses": "Сейчас нет популярных постов. Проверьте позже!", "empty_column.explore_statuses": "Сейчас нет популярных постов. Проверьте позже!",
"empty_column.favourited_statuses": "Вы ещё не добавили ни одного поста в избранное. Все добавленные вами в избранное посты будут показаны здесь.", "empty_column.favourited_statuses": "Вы ещё не добавили ни один пост в избранное. Все добавленные вами в избранное посты будут показаны здесь.",
"empty_column.favourites": "Никто ещё не добавил этот пост в избранное. Все пользователи, добавившие этот пост в избранное, будут показаны здесь.", "empty_column.favourites": "Никто ещё не добавил этот пост в избранное. Все пользователи, добавившие этот пост в избранное, будут показаны здесь.",
"empty_column.follow_requests": "Вам ещё не приходили запросы на подписку. Все новые запросы будут показаны здесь.", "empty_column.follow_requests": "Вам ещё не приходили запросы на подписку. Все новые запросы будут показаны здесь.",
"empty_column.followed_tags": "Вы ещё не подписались ни на один хештег. Все хештеги, на которые вы подписаны, будут показаны здесь.", "empty_column.followed_tags": "Вы ещё не подписались ни на один хештег. Все хештеги, на которые вы подписаны, будут показаны здесь.",
@ -346,7 +346,7 @@
"featured_carousel.post": "Пост", "featured_carousel.post": "Пост",
"featured_carousel.previous": "Предыдущий", "featured_carousel.previous": "Предыдущий",
"featured_carousel.slide": "{index} из {total}", "featured_carousel.slide": "{index} из {total}",
"filter_modal.added.context_mismatch_explanation": "Этот фильтр не применяется в том контексте, в котором вы видели этот пост. Если вы хотите, чтобы пост был отфильтрован в текущем контексте, необходимо редактировать фильтр.", "filter_modal.added.context_mismatch_explanation": "Этот фильтр не применяется в том контексте, в котором вы видели этот пост. Если вы хотите, чтобы пост был отфильтрован в этом контексте, необходимо редактировать фильтр.",
"filter_modal.added.context_mismatch_title": "Несоответствие контекста!", "filter_modal.added.context_mismatch_title": "Несоответствие контекста!",
"filter_modal.added.expired_explanation": "Этот фильтр истёк. Чтобы он был применён, вам нужно изменить срок действия фильтра.", "filter_modal.added.expired_explanation": "Этот фильтр истёк. Чтобы он был применён, вам нужно изменить срок действия фильтра.",
"filter_modal.added.expired_title": "Истёкший фильтр!", "filter_modal.added.expired_title": "Истёкший фильтр!",
@ -363,7 +363,7 @@
"filter_modal.select_filter.title": "Фильтровать этот пост", "filter_modal.select_filter.title": "Фильтровать этот пост",
"filter_modal.title.status": "Фильтровать пост", "filter_modal.title.status": "Фильтровать пост",
"filter_warning.matches_filter": "Соответствует фильтру «<span>{title}</span>»", "filter_warning.matches_filter": "Соответствует фильтру «<span>{title}</span>»",
"filtered_notifications_banner.pending_requests": "От {count, plural, =0 {незнакомых вам людей} one {# человека, которого вы можете знать} other {# человек, которых вы можете знать}}", "filtered_notifications_banner.pending_requests": "От {count, plural, =0 {не знакомых вам людей} one {# человека, которого вы можете знать} other {# человек, которых вы можете знать}}",
"filtered_notifications_banner.title": "Отфильтрованные уведомления", "filtered_notifications_banner.title": "Отфильтрованные уведомления",
"firehose.all": "Всё вместе", "firehose.all": "Всё вместе",
"firehose.local": "Этот сервер", "firehose.local": "Этот сервер",
@ -413,18 +413,18 @@
"hashtag.counter_by_uses": "{count, plural, one {{counter} пост} few {{counter} поста} other {{counter} постов}}", "hashtag.counter_by_uses": "{count, plural, one {{counter} пост} few {{counter} поста} other {{counter} постов}}",
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} пост} few {{counter} поста} other {{counter} постов}} сегодня", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} пост} few {{counter} поста} other {{counter} постов}} сегодня",
"hashtag.feature": "Рекомендовать в профиле", "hashtag.feature": "Рекомендовать в профиле",
"hashtag.follow": "Подписаться на хештег", "hashtag.follow": "Подписаться на новые посты",
"hashtag.mute": "Игнорировать #{hashtag}", "hashtag.mute": "Игнорировать #{hashtag}",
"hashtag.unfeature": "Не рекомендовать в профиле", "hashtag.unfeature": "Не рекомендовать в профиле",
"hashtag.unfollow": "Отписаться от хештега", "hashtag.unfollow": "Отписаться от новых постов",
"hashtags.and_other": "…и {count, plural, other {ещё #}}", "hashtags.and_other": "…и {count, plural, other {ещё #}}",
"hints.profiles.followers_may_be_missing": "Некоторые подписчики этого профиля могут здесь отсутствовать.", "hints.profiles.followers_may_be_missing": "Некоторые подписчики этого профиля могут отсутствовать.",
"hints.profiles.follows_may_be_missing": "Некоторые подписки этого профиля могут здесь отсутствовать.", "hints.profiles.follows_may_be_missing": "Некоторые подписки этого профиля могут отсутствовать.",
"hints.profiles.posts_may_be_missing": "Некоторые посты в этом профиле могут здесь отсутствовать.", "hints.profiles.posts_may_be_missing": "Некоторые посты в этом профиле могут отсутствовать.",
"hints.profiles.see_more_followers": "Перейдите на {domain}, чтобы увидеть всех подписчиков", "hints.profiles.see_more_followers": "Перейдите на {domain}, чтобы увидеть всех подписчиков",
"hints.profiles.see_more_follows": "Перейдите на {domain}, чтобы увидеть все подписки", "hints.profiles.see_more_follows": "Перейдите на {domain}, чтобы увидеть все подписки",
"hints.profiles.see_more_posts": "Перейдите на {domain}, чтобы увидеть все посты", "hints.profiles.see_more_posts": "Перейдите на {domain}, чтобы увидеть все посты",
"hints.threads.replies_may_be_missing": "Некоторые ответы с других серверов могут здесь отсутствовать.", "hints.threads.replies_may_be_missing": "Некоторые ответы с других серверов могут отсутствовать.",
"hints.threads.see_more": "Перейдите на {domain}, чтобы увидеть все ответы", "hints.threads.see_more": "Перейдите на {domain}, чтобы увидеть все ответы",
"home.column_settings.show_quotes": "Показывать цитирования", "home.column_settings.show_quotes": "Показывать цитирования",
"home.column_settings.show_reblogs": "Показывать продвижения", "home.column_settings.show_reblogs": "Показывать продвижения",
@ -466,7 +466,7 @@
"intervals.full.hours": "{number, plural, one {# час} few {# часа} other {# часов}}", "intervals.full.hours": "{number, plural, one {# час} few {# часа} other {# часов}}",
"intervals.full.minutes": "{number, plural, one {# минута} few {# минуты} other {# минут}}", "intervals.full.minutes": "{number, plural, one {# минута} few {# минуты} other {# минут}}",
"keyboard_shortcuts.back": "перейти назад", "keyboard_shortcuts.back": "перейти назад",
"keyboard_shortcuts.blocked": "открыть список заблокированных пользователей", "keyboard_shortcuts.blocked": "открыть список заблокированных",
"keyboard_shortcuts.boost": "продвинуть пост", "keyboard_shortcuts.boost": "продвинуть пост",
"keyboard_shortcuts.column": "фокус на одном из столбцов", "keyboard_shortcuts.column": "фокус на одном из столбцов",
"keyboard_shortcuts.compose": "фокус на поле ввода", "keyboard_shortcuts.compose": "фокус на поле ввода",
@ -483,7 +483,7 @@
"keyboard_shortcuts.legend": "показать эту справку", "keyboard_shortcuts.legend": "показать эту справку",
"keyboard_shortcuts.local": "перейти к локальной ленте", "keyboard_shortcuts.local": "перейти к локальной ленте",
"keyboard_shortcuts.mention": "упомянуть автора поста", "keyboard_shortcuts.mention": "упомянуть автора поста",
"keyboard_shortcuts.muted": "открыть список игнорируемых пользователей", "keyboard_shortcuts.muted": "открыть список игнорируемых",
"keyboard_shortcuts.my_profile": "перейти к своему профилю", "keyboard_shortcuts.my_profile": "перейти к своему профилю",
"keyboard_shortcuts.notifications": "перейти к уведомлениям", "keyboard_shortcuts.notifications": "перейти к уведомлениям",
"keyboard_shortcuts.open_media": "открыть медиа", "keyboard_shortcuts.open_media": "открыть медиа",
@ -546,7 +546,7 @@
"mute_modal.they_can_mention_and_follow": "Он сможет упоминать вас и подписаться на вас, но вы этого не увидите.", "mute_modal.they_can_mention_and_follow": "Он сможет упоминать вас и подписаться на вас, но вы этого не увидите.",
"mute_modal.they_wont_know": "Он не будет знать, что вы его игнорируете.", "mute_modal.they_wont_know": "Он не будет знать, что вы его игнорируете.",
"mute_modal.title": "Игнорировать пользователя?", "mute_modal.title": "Игнорировать пользователя?",
"mute_modal.you_wont_see_mentions": "Вы не будете видеть посты, упоминающие его.", "mute_modal.you_wont_see_mentions": "Вы не увидите посты, которые его упоминают.",
"mute_modal.you_wont_see_posts": "Он по-прежнему сможет видеть ваши посты, но вы не будете видеть его посты.", "mute_modal.you_wont_see_posts": "Он по-прежнему сможет видеть ваши посты, но вы не будете видеть его посты.",
"navigation_bar.about": "О проекте", "navigation_bar.about": "О проекте",
"navigation_bar.account_settings": "Пароль и безопасность", "navigation_bar.account_settings": "Пароль и безопасность",
@ -607,9 +607,9 @@
"notification.moderation_warning": "Модераторы вынесли вам предупреждение", "notification.moderation_warning": "Модераторы вынесли вам предупреждение",
"notification.moderation_warning.action_delete_statuses": "Некоторые ваши посты были удалены.", "notification.moderation_warning.action_delete_statuses": "Некоторые ваши посты были удалены.",
"notification.moderation_warning.action_disable": "Ваша учётная запись была отключена.", "notification.moderation_warning.action_disable": "Ваша учётная запись была отключена.",
"notification.moderation_warning.action_mark_statuses_as_sensitive": "Некоторые ваши посты были отмечены как содержимое деликатного характера.", "notification.moderation_warning.action_mark_statuses_as_sensitive": "Некоторые ваши посты были отмечены как контент деликатного характера.",
"notification.moderation_warning.action_none": "Модераторы вынесли вам предупреждение.", "notification.moderation_warning.action_none": "Модераторы вынесли вам предупреждение.",
"notification.moderation_warning.action_sensitive": "С этого момента все ваши новые посты будут отмечены как содержимое деликатного характера.", "notification.moderation_warning.action_sensitive": "С этого момента все ваши новые посты будут отмечены как контент деликатного характера.",
"notification.moderation_warning.action_silence": "Ваша учётная запись была ограничена.", "notification.moderation_warning.action_silence": "Ваша учётная запись была ограничена.",
"notification.moderation_warning.action_suspend": "Ваша учётная запись была заблокирована.", "notification.moderation_warning.action_suspend": "Ваша учётная запись была заблокирована.",
"notification.own_poll": "Ваш опрос завершился", "notification.own_poll": "Ваш опрос завершился",
@ -618,9 +618,9 @@
"notification.reblog.name_and_others_with_link": "{name} и ещё <a>{count, plural, one {# пользователь} few {# пользователя} other {# пользователей}}</a> продвинули ваш пост", "notification.reblog.name_and_others_with_link": "{name} и ещё <a>{count, plural, one {# пользователь} few {# пользователя} other {# пользователей}}</a> продвинули ваш пост",
"notification.relationships_severance_event": "Разорвана связь с {name}", "notification.relationships_severance_event": "Разорвана связь с {name}",
"notification.relationships_severance_event.account_suspension": "Администратор сервера {from} заблокировал сервер {target}, поэтому вы больше не сможете получать обновления от людей с этого сервера или взаимодействовать с ними.", "notification.relationships_severance_event.account_suspension": "Администратор сервера {from} заблокировал сервер {target}, поэтому вы больше не сможете получать обновления от людей с этого сервера или взаимодействовать с ними.",
"notification.relationships_severance_event.domain_block": "Администратор сервера {from} заблокировал сервер {target}, где размещены учётные записи {followersCount} ваших подписчиков и {followingCount, plural, one {# пользователя, на которого вы подписаны} other {# пользователей, на которых вы подписаны}}.", "notification.relationships_severance_event.domain_block": "Администратор сервера {from} заблокировал сервер {target}, где размещены учётные записи у {followersCount} ваших подписчиков и {followingCount, plural, one {# пользователя, на которого вы подписаны} other {# пользователей, на которых вы подписаны}}.",
"notification.relationships_severance_event.learn_more": "Узнать больше", "notification.relationships_severance_event.learn_more": "Узнать больше",
"notification.relationships_severance_event.user_domain_block": "Вы заблокировали сервер {target}, где размещены учётные записи {followersCount} ваших подписчиков и {followingCount, plural, one {# пользователя, на которого вы подписаны} other {# пользователей, на которых вы подписаны}}.", "notification.relationships_severance_event.user_domain_block": "Вы заблокировали сервер {target}, где размещены учётные записи у {followersCount} ваших подписчиков и {followingCount, plural, one {# пользователя, на которого вы подписаны} other {# пользователей, на которых вы подписаны}}.",
"notification.status": "{name} опубликовал(а) новый пост", "notification.status": "{name} опубликовал(а) новый пост",
"notification.update": "{name} отредактировал(а) пост", "notification.update": "{name} отредактировал(а) пост",
"notification_requests.accept": "Принять", "notification_requests.accept": "Принять",

View File

@ -27,7 +27,6 @@
"account.edit_profile": "Upraviť profil", "account.edit_profile": "Upraviť profil",
"account.enable_notifications": "Zapnúť upozornenia na príspevky od @{name}", "account.enable_notifications": "Zapnúť upozornenia na príspevky od @{name}",
"account.endorse": "Zobraziť na vlastnom profile", "account.endorse": "Zobraziť na vlastnom profile",
"account.featured": "Zviditeľnené",
"account.featured.accounts": "Profily", "account.featured.accounts": "Profily",
"account.featured.hashtags": "Hashtagy", "account.featured.hashtags": "Hashtagy",
"account.featured_tags.last_status_at": "Posledný príspevok dňa {date}", "account.featured_tags.last_status_at": "Posledný príspevok dňa {date}",

View File

@ -220,12 +220,6 @@
"confirmations.delete_list.message": "Är du säker på att du vill radera denna lista permanent?", "confirmations.delete_list.message": "Är du säker på att du vill radera denna lista permanent?",
"confirmations.delete_list.title": "Ta bort listan?", "confirmations.delete_list.title": "Ta bort listan?",
"confirmations.discard_draft.confirm": "Släng bort och fortsätt", "confirmations.discard_draft.confirm": "Släng bort och fortsätt",
"confirmations.discard_draft.edit.cancel": "Fortsätt redigera",
"confirmations.discard_draft.edit.message": "Fortsätter du, kommer ändringarna till inlägget att förkastas.",
"confirmations.discard_draft.edit.title": "Vill du förkasta ändringarna i inlägget?",
"confirmations.discard_draft.post.cancel": "Återuppta utkast",
"confirmations.discard_draft.post.message": "Fortsätter du, kommer inlägget du skriver att förkastas.",
"confirmations.discard_draft.post.title": "Vill du förkasta utkastet?",
"confirmations.discard_edit_media.confirm": "Kasta", "confirmations.discard_edit_media.confirm": "Kasta",
"confirmations.discard_edit_media.message": "Du har osparade ändringar till mediabeskrivningen eller förhandsgranskningen, kasta bort dem ändå?", "confirmations.discard_edit_media.message": "Du har osparade ändringar till mediabeskrivningen eller förhandsgranskningen, kasta bort dem ändå?",
"confirmations.follow_to_list.confirm": "Följ och lägg till i listan", "confirmations.follow_to_list.confirm": "Följ och lägg till i listan",
@ -564,8 +558,6 @@
"navigation_bar.follows_and_followers": "Följer och följare", "navigation_bar.follows_and_followers": "Följer och följare",
"navigation_bar.import_export": "Importera och exportera", "navigation_bar.import_export": "Importera och exportera",
"navigation_bar.lists": "Listor", "navigation_bar.lists": "Listor",
"navigation_bar.live_feed_local": "Direkt flöde (lokalt)",
"navigation_bar.live_feed_public": "Direkt flöde (publikt)",
"navigation_bar.logout": "Logga ut", "navigation_bar.logout": "Logga ut",
"navigation_bar.moderation": "Moderering", "navigation_bar.moderation": "Moderering",
"navigation_bar.more": "Fler", "navigation_bar.more": "Fler",
@ -805,7 +797,6 @@
"report_notification.categories.violation": "Regelöverträdelse", "report_notification.categories.violation": "Regelöverträdelse",
"report_notification.categories.violation_sentence": "regelöverträdelse", "report_notification.categories.violation_sentence": "regelöverträdelse",
"report_notification.open": "Öppna rapport", "report_notification.open": "Öppna rapport",
"search.clear": "Rensa sökning",
"search.no_recent_searches": "Inga sökningar nyligen", "search.no_recent_searches": "Inga sökningar nyligen",
"search.placeholder": "Sök", "search.placeholder": "Sök",
"search.quick_action.account_search": "Profiler som matchar {x}", "search.quick_action.account_search": "Profiler som matchar {x}",

View File

@ -1,7 +1,6 @@
{ {
"about.blocks": "เซิร์ฟเวอร์ที่ได้รับการกลั่นกรอง", "about.blocks": "เซิร์ฟเวอร์ที่ได้รับการกลั่นกรอง",
"about.contact": "ติดต่อ:", "about.contact": "ติดต่อ:",
"about.default_locale": "ค่าเริ่มต้น",
"about.disclaimer": "Mastodon เป็นซอฟต์แวร์เสรี โอเพนซอร์ส และเครื่องหมายการค้าของ Mastodon gGmbH", "about.disclaimer": "Mastodon เป็นซอฟต์แวร์เสรี โอเพนซอร์ส และเครื่องหมายการค้าของ Mastodon gGmbH",
"about.domain_blocks.no_reason_available": "เหตุผลไม่พร้อมใช้งาน", "about.domain_blocks.no_reason_available": "เหตุผลไม่พร้อมใช้งาน",
"about.domain_blocks.preamble": "โดยทั่วไป Mastodon อนุญาตให้คุณดูเนื้อหาจากและโต้ตอบกับผู้ใช้จากเซิร์ฟเวอร์อื่นใดในจักรวาลสหพันธ์ นี่คือข้อยกเว้นที่ทำขึ้นในเซิร์ฟเวอร์นี้โดยเฉพาะ", "about.domain_blocks.preamble": "โดยทั่วไป Mastodon อนุญาตให้คุณดูเนื้อหาจากและโต้ตอบกับผู้ใช้จากเซิร์ฟเวอร์อื่นใดในจักรวาลสหพันธ์ นี่คือข้อยกเว้นที่ทำขึ้นในเซิร์ฟเวอร์นี้โดยเฉพาะ",
@ -9,7 +8,6 @@
"about.domain_blocks.silenced.title": "จำกัดอยู่", "about.domain_blocks.silenced.title": "จำกัดอยู่",
"about.domain_blocks.suspended.explanation": "จะไม่ประมวลผล จัดเก็บ หรือแลกเปลี่ยนข้อมูลจากเซิร์ฟเวอร์นี้ ทำให้การโต้ตอบหรือการสื่อสารใด ๆ กับผู้ใช้จากเซิร์ฟเวอร์นี้เป็นไปไม่ได้", "about.domain_blocks.suspended.explanation": "จะไม่ประมวลผล จัดเก็บ หรือแลกเปลี่ยนข้อมูลจากเซิร์ฟเวอร์นี้ ทำให้การโต้ตอบหรือการสื่อสารใด ๆ กับผู้ใช้จากเซิร์ฟเวอร์นี้เป็นไปไม่ได้",
"about.domain_blocks.suspended.title": "ระงับอยู่", "about.domain_blocks.suspended.title": "ระงับอยู่",
"about.language_label": "ภาษา",
"about.not_available": "ไม่ได้ทำให้ข้อมูลนี้พร้อมใช้งานในเซิร์ฟเวอร์นี้", "about.not_available": "ไม่ได้ทำให้ข้อมูลนี้พร้อมใช้งานในเซิร์ฟเวอร์นี้",
"about.powered_by": "สื่อสังคมแบบกระจายศูนย์ที่ขับเคลื่อนโดย {mastodon}", "about.powered_by": "สื่อสังคมแบบกระจายศูนย์ที่ขับเคลื่อนโดย {mastodon}",
"about.rules": "กฎของเซิร์ฟเวอร์", "about.rules": "กฎของเซิร์ฟเวอร์",
@ -21,18 +19,14 @@
"account.block_domain": "ปิดกั้นโดเมน {domain}", "account.block_domain": "ปิดกั้นโดเมน {domain}",
"account.block_short": "ปิดกั้น", "account.block_short": "ปิดกั้น",
"account.blocked": "ปิดกั้นอยู่", "account.blocked": "ปิดกั้นอยู่",
"account.blocking": "กำลังปิดกั้น",
"account.cancel_follow_request": "ยกเลิกการติดตาม", "account.cancel_follow_request": "ยกเลิกการติดตาม",
"account.copy": "คัดลอกลิงก์ไปยังโปรไฟล์", "account.copy": "คัดลอกลิงก์ไปยังโปรไฟล์",
"account.direct": "กล่าวถึง @{name} แบบส่วนตัว", "account.direct": "กล่าวถึง @{name} แบบส่วนตัว",
"account.disable_notifications": "หยุดแจ้งเตือนฉันเมื่อ @{name} โพสต์", "account.disable_notifications": "หยุดแจ้งเตือนฉันเมื่อ @{name} โพสต์",
"account.domain_blocking": "กำลังปิดกั้นโดเมน", "account.domain_blocking": "โดเมน",
"account.edit_profile": "แก้ไขโปรไฟล์", "account.edit_profile": "แก้ไขโปรไฟล์",
"account.enable_notifications": "แจ้งเตือนฉันเมื่อ @{name} โพสต์", "account.enable_notifications": "แจ้งเตือนฉันเมื่อ @{name} โพสต์",
"account.endorse": "แสดงในโปรไฟล์", "account.endorse": "แสดงในโปรไฟล์",
"account.featured": "น่าสนใจ",
"account.featured.accounts": "โปรไฟล์",
"account.featured.hashtags": "แฮชแท็ก",
"account.featured_tags.last_status_at": "โพสต์ล่าสุดเมื่อ {date}", "account.featured_tags.last_status_at": "โพสต์ล่าสุดเมื่อ {date}",
"account.featured_tags.last_status_never": "ไม่มีโพสต์", "account.featured_tags.last_status_never": "ไม่มีโพสต์",
"account.follow": "ติดตาม", "account.follow": "ติดตาม",
@ -43,7 +37,6 @@
"account.following": "กำลังติดตาม", "account.following": "กำลังติดตาม",
"account.following_counter": "{count, plural, other {{counter} กำลังติดตาม}}", "account.following_counter": "{count, plural, other {{counter} กำลังติดตาม}}",
"account.follows.empty": "ผู้ใช้นี้ยังไม่ได้ติดตามใคร", "account.follows.empty": "ผู้ใช้นี้ยังไม่ได้ติดตามใคร",
"account.follows_you": "ติดตามคุณ",
"account.go_to_profile": "ไปยังโปรไฟล์", "account.go_to_profile": "ไปยังโปรไฟล์",
"account.hide_reblogs": "ซ่อนการดันจาก @{name}", "account.hide_reblogs": "ซ่อนการดันจาก @{name}",
"account.in_memoriam": "เพื่อระลึกถึง", "account.in_memoriam": "เพื่อระลึกถึง",
@ -58,7 +51,6 @@
"account.mute_notifications_short": "ซ่อนการแจ้งเตือน", "account.mute_notifications_short": "ซ่อนการแจ้งเตือน",
"account.mute_short": "ซ่อน", "account.mute_short": "ซ่อน",
"account.muted": "ซ่อนอยู่", "account.muted": "ซ่อนอยู่",
"account.muting": "กำลังซ่อน",
"account.no_bio": "ไม่ได้ให้คำอธิบาย", "account.no_bio": "ไม่ได้ให้คำอธิบาย",
"account.open_original_page": "เปิดหน้าดั้งเดิม", "account.open_original_page": "เปิดหน้าดั้งเดิม",
"account.posts": "โพสต์", "account.posts": "โพสต์",
@ -313,14 +305,9 @@
"errors.unexpected_crash.copy_stacktrace": "คัดลอกการติดตามสแตกไปยังคลิปบอร์ด", "errors.unexpected_crash.copy_stacktrace": "คัดลอกการติดตามสแตกไปยังคลิปบอร์ด",
"errors.unexpected_crash.report_issue": "รายงานปัญหา", "errors.unexpected_crash.report_issue": "รายงานปัญหา",
"explore.suggested_follows": "ผู้คน", "explore.suggested_follows": "ผู้คน",
"explore.title": "กำลังนิยม",
"explore.trending_links": "ข่าว", "explore.trending_links": "ข่าว",
"explore.trending_statuses": "โพสต์", "explore.trending_statuses": "โพสต์",
"explore.trending_tags": "แฮชแท็ก", "explore.trending_tags": "แฮชแท็ก",
"featured_carousel.next": "ถัดไป",
"featured_carousel.post": "โพสต์",
"featured_carousel.previous": "ก่อนหน้า",
"featured_carousel.slide": "{index} จาก {total}",
"filter_modal.added.context_mismatch_explanation": "หมวดหมู่ตัวกรองนี้ไม่นำไปใช้กับบริบทที่คุณได้เข้าถึงโพสต์นี้ หากคุณต้องการกรองโพสต์ในบริบทนี้ด้วย คุณจะต้องแก้ไขตัวกรอง", "filter_modal.added.context_mismatch_explanation": "หมวดหมู่ตัวกรองนี้ไม่นำไปใช้กับบริบทที่คุณได้เข้าถึงโพสต์นี้ หากคุณต้องการกรองโพสต์ในบริบทนี้ด้วย คุณจะต้องแก้ไขตัวกรอง",
"filter_modal.added.context_mismatch_title": "บริบทไม่ตรงกัน!", "filter_modal.added.context_mismatch_title": "บริบทไม่ตรงกัน!",
"filter_modal.added.expired_explanation": "หมวดหมู่ตัวกรองนี้หมดอายุแล้ว คุณจะต้องเปลี่ยนวันหมดอายุสำหรับหมวดหมู่เพื่อนำไปใช้", "filter_modal.added.expired_explanation": "หมวดหมู่ตัวกรองนี้หมดอายุแล้ว คุณจะต้องเปลี่ยนวันหมดอายุสำหรับหมวดหมู่เพื่อนำไปใช้",
@ -385,10 +372,7 @@
"hashtag.counter_by_accounts": "{count, plural, other {{counter} ผู้มีส่วนร่วม}}", "hashtag.counter_by_accounts": "{count, plural, other {{counter} ผู้มีส่วนร่วม}}",
"hashtag.counter_by_uses": "{count, plural, other {{counter} โพสต์}}", "hashtag.counter_by_uses": "{count, plural, other {{counter} โพสต์}}",
"hashtag.counter_by_uses_today": "{count, plural, other {{counter} โพสต์}}วันนี้", "hashtag.counter_by_uses_today": "{count, plural, other {{counter} โพสต์}}วันนี้",
"hashtag.feature": "แสดงในโปรไฟล์",
"hashtag.follow": "ติดตามแฮชแท็ก", "hashtag.follow": "ติดตามแฮชแท็ก",
"hashtag.mute": "ซ่อน #{hashtag}",
"hashtag.unfeature": "ไม่แสดงในโปรไฟล์",
"hashtag.unfollow": "เลิกติดตามแฮชแท็ก", "hashtag.unfollow": "เลิกติดตามแฮชแท็ก",
"hashtags.and_other": "…และอีก {count, plural, other {# เพิ่มเติม}}", "hashtags.and_other": "…และอีก {count, plural, other {# เพิ่มเติม}}",
"hints.profiles.followers_may_be_missing": "ผู้ติดตามสำหรับโปรไฟล์นี้อาจขาดหายไป", "hints.profiles.followers_may_be_missing": "ผู้ติดตามสำหรับโปรไฟล์นี้อาจขาดหายไป",
@ -520,10 +504,8 @@
"mute_modal.you_wont_see_mentions": "คุณจะไม่เห็นโพสต์ที่กล่าวถึงเขา", "mute_modal.you_wont_see_mentions": "คุณจะไม่เห็นโพสต์ที่กล่าวถึงเขา",
"mute_modal.you_wont_see_posts": "เขายังคงสามารถเห็นโพสต์ของคุณ แต่คุณจะไม่เห็นโพสต์ของเขา", "mute_modal.you_wont_see_posts": "เขายังคงสามารถเห็นโพสต์ของคุณ แต่คุณจะไม่เห็นโพสต์ของเขา",
"navigation_bar.about": "เกี่ยวกับ", "navigation_bar.about": "เกี่ยวกับ",
"navigation_bar.account_settings": "รหัสผ่านและความปลอดภัย",
"navigation_bar.administration": "การดูแล", "navigation_bar.administration": "การดูแล",
"navigation_bar.advanced_interface": "เปิดในส่วนติดต่อเว็บขั้นสูง", "navigation_bar.advanced_interface": "เปิดในส่วนติดต่อเว็บขั้นสูง",
"navigation_bar.automated_deletion": "การลบโพสต์แบบอัตโนมัติ",
"navigation_bar.blocks": "ผู้ใช้ที่ปิดกั้นอยู่", "navigation_bar.blocks": "ผู้ใช้ที่ปิดกั้นอยู่",
"navigation_bar.bookmarks": "ที่คั่นหน้า", "navigation_bar.bookmarks": "ที่คั่นหน้า",
"navigation_bar.direct": "การกล่าวถึงแบบส่วนตัว", "navigation_bar.direct": "การกล่าวถึงแบบส่วนตัว",
@ -533,15 +515,12 @@
"navigation_bar.follow_requests": "คำขอติดตาม", "navigation_bar.follow_requests": "คำขอติดตาม",
"navigation_bar.followed_tags": "แฮชแท็กที่ติดตาม", "navigation_bar.followed_tags": "แฮชแท็กที่ติดตาม",
"navigation_bar.follows_and_followers": "การติดตามและผู้ติดตาม", "navigation_bar.follows_and_followers": "การติดตามและผู้ติดตาม",
"navigation_bar.import_export": "การนำเข้าและการส่งออก",
"navigation_bar.lists": "รายการ", "navigation_bar.lists": "รายการ",
"navigation_bar.logout": "ออกจากระบบ", "navigation_bar.logout": "ออกจากระบบ",
"navigation_bar.moderation": "การกลั่นกรอง", "navigation_bar.moderation": "การกลั่นกรอง",
"navigation_bar.more": "เพิ่มเติม",
"navigation_bar.mutes": "ผู้ใช้ที่ซ่อนอยู่", "navigation_bar.mutes": "ผู้ใช้ที่ซ่อนอยู่",
"navigation_bar.opened_in_classic_interface": "จะเปิดโพสต์, บัญชี และหน้าที่เฉพาะเจาะจงอื่น ๆ เป็นค่าเริ่มต้นในส่วนติดต่อเว็บแบบคลาสสิก", "navigation_bar.opened_in_classic_interface": "จะเปิดโพสต์, บัญชี และหน้าที่เฉพาะเจาะจงอื่น ๆ เป็นค่าเริ่มต้นในส่วนติดต่อเว็บแบบคลาสสิก",
"navigation_bar.preferences": "การกำหนดลักษณะ", "navigation_bar.preferences": "การกำหนดลักษณะ",
"navigation_bar.privacy_and_reach": "ความเป็นส่วนตัวและการเข้าถึง",
"navigation_bar.search": "ค้นหา", "navigation_bar.search": "ค้นหา",
"not_signed_in_indicator.not_signed_in": "คุณจำเป็นต้องเข้าสู่ระบบเพื่อเข้าถึงทรัพยากรนี้", "not_signed_in_indicator.not_signed_in": "คุณจำเป็นต้องเข้าสู่ระบบเพื่อเข้าถึงทรัพยากรนี้",
"notification.admin.report": "{name} ได้รายงาน {target}", "notification.admin.report": "{name} ได้รายงาน {target}",
@ -768,7 +747,6 @@
"report_notification.categories.violation": "การละเมิดกฎ", "report_notification.categories.violation": "การละเมิดกฎ",
"report_notification.categories.violation_sentence": "การละเมิดกฎ", "report_notification.categories.violation_sentence": "การละเมิดกฎ",
"report_notification.open": "รายงานที่เปิด", "report_notification.open": "รายงานที่เปิด",
"search.clear": "ล้างการค้นหา",
"search.no_recent_searches": "ไม่มีการค้นหาล่าสุด", "search.no_recent_searches": "ไม่มีการค้นหาล่าสุด",
"search.placeholder": "ค้นหา", "search.placeholder": "ค้นหา",
"search.quick_action.account_search": "โปรไฟล์ที่ตรงกับ {x}", "search.quick_action.account_search": "โปรไฟล์ที่ตรงกับ {x}",
@ -834,7 +812,6 @@
"status.mute_conversation": "ซ่อนการสนทนา", "status.mute_conversation": "ซ่อนการสนทนา",
"status.open": "ขยายโพสต์นี้", "status.open": "ขยายโพสต์นี้",
"status.pin": "ปักหมุดในโปรไฟล์", "status.pin": "ปักหมุดในโปรไฟล์",
"status.quote_post_author": "โพสต์โดย {name}",
"status.read_more": "อ่านเพิ่มเติม", "status.read_more": "อ่านเพิ่มเติม",
"status.reblog": "ดัน", "status.reblog": "ดัน",
"status.reblog_private": "ดันด้วยการมองเห็นดั้งเดิม", "status.reblog_private": "ดันด้วยการมองเห็นดั้งเดิม",
@ -864,10 +841,7 @@
"subscribed_languages.save": "บันทึกการเปลี่ยนแปลง", "subscribed_languages.save": "บันทึกการเปลี่ยนแปลง",
"subscribed_languages.target": "เปลี่ยนภาษาที่บอกรับสำหรับ {target}", "subscribed_languages.target": "เปลี่ยนภาษาที่บอกรับสำหรับ {target}",
"tabs_bar.home": "หน้าแรก", "tabs_bar.home": "หน้าแรก",
"tabs_bar.menu": "เมนู",
"tabs_bar.notifications": "การแจ้งเตือน", "tabs_bar.notifications": "การแจ้งเตือน",
"tabs_bar.publish": "โพสต์ใหม่",
"tabs_bar.search": "ค้นหา",
"terms_of_service.title": "เงื่อนไขการให้บริการ", "terms_of_service.title": "เงื่อนไขการให้บริการ",
"time_remaining.days": "เหลืออีก {number, plural, other {# วัน}}", "time_remaining.days": "เหลืออีก {number, plural, other {# วัน}}",
"time_remaining.hours": "เหลืออีก {number, plural, other {# ชั่วโมง}}", "time_remaining.hours": "เหลืออีก {number, plural, other {# ชั่วโมง}}",

View File

@ -458,8 +458,6 @@
"navigation_bar.favourites": "ijo pona", "navigation_bar.favourites": "ijo pona",
"navigation_bar.filters": "nimi len", "navigation_bar.filters": "nimi len",
"navigation_bar.lists": "kulupu lipu", "navigation_bar.lists": "kulupu lipu",
"navigation_bar.logout": "o weka tan sijelo",
"navigation_bar.moderation": "nasin lawa",
"navigation_bar.mutes": "sina wile ala kute e jan ni", "navigation_bar.mutes": "sina wile ala kute e jan ni",
"navigation_bar.preferences": "wile sina", "navigation_bar.preferences": "wile sina",
"navigation_bar.search": "o alasa", "navigation_bar.search": "o alasa",

View File

@ -98,7 +98,7 @@
"alert.rate_limited.message": "Vui lòng thử lại sau {retry_time, time, medium}.", "alert.rate_limited.message": "Vui lòng thử lại sau {retry_time, time, medium}.",
"alert.rate_limited.title": "Vượt giới hạn", "alert.rate_limited.title": "Vượt giới hạn",
"alert.unexpected.message": "Đã xảy ra lỗi không mong muốn.", "alert.unexpected.message": "Đã xảy ra lỗi không mong muốn.",
"alert.unexpected.title": "Ốii!", "alert.unexpected.title": "Ốiii!",
"alt_text_badge.title": "Văn bản thay thế", "alt_text_badge.title": "Văn bản thay thế",
"alt_text_modal.add_alt_text": "Thêm văn bản thay thế", "alt_text_modal.add_alt_text": "Thêm văn bản thay thế",
"alt_text_modal.add_text_from_image": "Thêm văn bản từ ảnh", "alt_text_modal.add_text_from_image": "Thêm văn bản từ ảnh",
@ -276,7 +276,7 @@
"domain_block_modal.you_will_lose_num_followers": "Bạn sẽ mất {followersCount, plural, other {{followersCountDisplay} người theo dõi}} và {followingCount, plural, other {{followingCountDisplay} người bạn theo dõi}}.", "domain_block_modal.you_will_lose_num_followers": "Bạn sẽ mất {followersCount, plural, other {{followersCountDisplay} người theo dõi}} và {followingCount, plural, other {{followingCountDisplay} người bạn theo dõi}}.",
"domain_block_modal.you_will_lose_relationships": "Bạn sẽ mất tất cả người theo dõi và những người bạn theo dõi từ máy chủ này.", "domain_block_modal.you_will_lose_relationships": "Bạn sẽ mất tất cả người theo dõi và những người bạn theo dõi từ máy chủ này.",
"domain_block_modal.you_wont_see_posts": "Bạn không còn thấy tút hoặc thông báo từ thành viên máy chủ này.", "domain_block_modal.you_wont_see_posts": "Bạn không còn thấy tút hoặc thông báo từ thành viên máy chủ này.",
"domain_pill.activitypub_lets_connect": "Nó cho phép bạn kết nối và tương tác với mọi người, không chỉ trên Mastodon mà còn trên các nền tảng khác.", "domain_pill.activitypub_lets_connect": "Nó cho phép bạn kết nối và tương tác với mọi người không chỉ trên Mastodon mà còn trên các ứng dụng xã hội khác.",
"domain_pill.activitypub_like_language": "ActivityPub giống như ngôn ngữ Mastodon giao tiếp với các mạng xã hội khác.", "domain_pill.activitypub_like_language": "ActivityPub giống như ngôn ngữ Mastodon giao tiếp với các mạng xã hội khác.",
"domain_pill.server": "Máy chủ", "domain_pill.server": "Máy chủ",
"domain_pill.their_handle": "Địa chỉ Mastodon:", "domain_pill.their_handle": "Địa chỉ Mastodon:",

View File

@ -218,9 +218,6 @@
"confirmations.delete_list.confirm": "删除", "confirmations.delete_list.confirm": "删除",
"confirmations.delete_list.message": "确定要永久删除此列表吗?", "confirmations.delete_list.message": "确定要永久删除此列表吗?",
"confirmations.delete_list.title": "确定要删除列表?", "confirmations.delete_list.title": "确定要删除列表?",
"confirmations.discard_draft.confirm": "放弃并继续",
"confirmations.discard_draft.edit.cancel": "恢复编辑",
"confirmations.discard_draft.post.cancel": "恢复草稿",
"confirmations.discard_edit_media.confirm": "丢弃", "confirmations.discard_edit_media.confirm": "丢弃",
"confirmations.discard_edit_media.message": "你还有未保存的媒体描述或预览修改,仍要丢弃吗?", "confirmations.discard_edit_media.message": "你还有未保存的媒体描述或预览修改,仍要丢弃吗?",
"confirmations.follow_to_list.confirm": "关注并添加到列表", "confirmations.follow_to_list.confirm": "关注并添加到列表",

View File

@ -126,9 +126,6 @@ export function createAccountFromServerJSON(serverJSON: ApiAccountJSON) {
? accountJSON.username ? accountJSON.username
: accountJSON.display_name; : accountJSON.display_name;
const accountNote =
accountJSON.note && accountJSON.note !== '<p></p>' ? accountJSON.note : '';
return AccountFactory({ return AccountFactory({
...accountJSON, ...accountJSON,
moved: moved?.id, moved: moved?.id,
@ -145,8 +142,8 @@ export function createAccountFromServerJSON(serverJSON: ApiAccountJSON) {
escapeTextContentForBrowser(displayName), escapeTextContentForBrowser(displayName),
emojiMap, emojiMap,
), ),
note_emojified: emojify(accountNote, emojiMap), note_emojified: emojify(accountJSON.note, emojiMap),
note_plain: unescapeHTML(accountNote), note_plain: unescapeHTML(accountJSON.note),
url: url:
accountJSON.url.startsWith('http://') || accountJSON.url.startsWith('http://') ||
accountJSON.url.startsWith('https://') accountJSON.url.startsWith('https://')

View File

@ -101,7 +101,7 @@
} }
// Change the background colors of statuses // Change the background colors of statuses
.focusable:focus-visible { .focusable:focus {
background: lighten($white, 4%); background: lighten($white, 4%);
} }

View File

@ -2848,6 +2848,7 @@ a.account__display-name {
&__pane { &__pane {
height: 100%; height: 100%;
overflow: hidden; overflow: hidden;
pointer-events: none;
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
min-width: 285px; min-width: 285px;
@ -2859,6 +2860,7 @@ a.account__display-name {
&__inner { &__inner {
position: fixed; position: fixed;
width: 285px; width: 285px;
pointer-events: auto;
height: 100%; height: 100%;
} }
} }
@ -3872,18 +3874,16 @@ a.account__display-name {
display: flex; display: flex;
align-items: center; align-items: center;
gap: 8px; gap: 8px;
width: 100%;
padding: 12px;
font-size: 16px; font-size: 16px;
font-weight: 400; font-weight: 400;
padding: 12px;
text-decoration: none; text-decoration: none;
overflow: hidden; overflow: hidden;
white-space: nowrap; white-space: nowrap;
color: $secondary-text-color;
background: transparent;
border: 0; border: 0;
background: transparent;
color: $secondary-text-color;
border-left: 4px solid transparent; border-left: 4px solid transparent;
box-sizing: border-box;
&:hover, &:hover,
&:focus, &:focus,

View File

@ -28,7 +28,7 @@ class AnnualReport::Archetype < AnnualReport::Source
end end
def polls_count def polls_count
@polls_count ||= report_statuses.only_polls.count @polls_count ||= report_statuses.where.not(poll_id: nil).count
end end
def reblogs_count def reblogs_count
@ -36,7 +36,7 @@ class AnnualReport::Archetype < AnnualReport::Source
end end
def replies_count def replies_count
@replies_count ||= report_statuses.where.not(in_reply_to_id: nil).not_replying_to_account(@account).count @replies_count ||= report_statuses.where.not(in_reply_to_id: nil).where.not(in_reply_to_account_id: @account.id).count
end end
def standalone_count def standalone_count

View File

@ -18,7 +18,7 @@ class AnnualReport::CommonlyInteractedWithAccounts < AnnualReport::Source
private private
def commonly_interacted_with_accounts def commonly_interacted_with_accounts
report_statuses.not_replying_to_account(@account).group(:in_reply_to_account_id).having(minimum_interaction_count).order(count_all: :desc).limit(SET_SIZE).count report_statuses.where.not(in_reply_to_account_id: @account.id).group(:in_reply_to_account_id).having(minimum_interaction_count).order(count_all: :desc).limit(SET_SIZE).count
end end
def minimum_interaction_count def minimum_interaction_count

View File

@ -2,44 +2,20 @@
class AnnualReport::TopStatuses < AnnualReport::Source class AnnualReport::TopStatuses < AnnualReport::Source
def generate def generate
top_reblogs = base_scope.order(reblogs_count: :desc).first&.id
top_favourites = base_scope.where.not(id: top_reblogs).order(favourites_count: :desc).first&.id
top_replies = base_scope.where.not(id: [top_reblogs, top_favourites]).order(replies_count: :desc).first&.id
{ {
top_statuses: { top_statuses: {
by_reblogs: status_identifier(most_reblogged_status), by_reblogs: top_reblogs&.to_s,
by_favourites: status_identifier(most_favourited_status), by_favourites: top_favourites&.to_s,
by_replies: status_identifier(most_replied_status), by_replies: top_replies&.to_s,
}, },
} }
end end
private
def status_identifier(status)
status.id.to_s if status.present?
end
def most_reblogged_status
base_scope
.order(reblogs_count: :desc)
.first
end
def most_favourited_status
base_scope
.excluding(most_reblogged_status)
.order(favourites_count: :desc)
.first
end
def most_replied_status
base_scope
.excluding(most_reblogged_status, most_favourited_status)
.order(replies_count: :desc)
.first
end
def base_scope def base_scope
report_statuses report_statuses.public_visibility.joins(:status_stat)
.public_visibility
.joins(:status_stat)
end end
end end

View File

@ -6,7 +6,7 @@ class AnnualReport::TypeDistribution < AnnualReport::Source
type_distribution: { type_distribution: {
total: report_statuses.count, total: report_statuses.count,
reblogs: report_statuses.only_reblogs.count, reblogs: report_statuses.only_reblogs.count,
replies: report_statuses.where.not(in_reply_to_id: nil).not_replying_to_account(@account).count, replies: report_statuses.where.not(in_reply_to_id: nil).where.not(in_reply_to_account_id: @account.id).count,
standalone: report_statuses.without_replies.without_reblogs.count, standalone: report_statuses.without_replies.without_reblogs.count,
}, },
} }

View File

@ -49,8 +49,6 @@ class Fasp::Request
end end
def validate!(response) def validate!(response)
raise Mastodon::UnexpectedResponseError, response if response.code >= 400
content_digest_header = response.headers['content-digest'] content_digest_header = response.headers['content-digest']
raise Mastodon::SignatureVerificationError, 'content-digest missing' if content_digest_header.blank? raise Mastodon::SignatureVerificationError, 'content-digest missing' if content_digest_header.blank?
raise Mastodon::SignatureVerificationError, 'content-digest does not match' if content_digest_header != content_digest(response.body) raise Mastodon::SignatureVerificationError, 'content-digest does not match' if content_digest_header != content_digest(response.body)

View File

@ -196,8 +196,6 @@ class SignedRequest
return if body_digest == received_digest return if body_digest == received_digest
raise Mastodon::SignatureVerificationError, "Invalid Digest value. Computed SHA-256 digest: #{body_digest}; given: #{received_digest}" raise Mastodon::SignatureVerificationError, "Invalid Digest value. Computed SHA-256 digest: #{body_digest}; given: #{received_digest}"
rescue Starry::ParseError
raise Mastodon::MalformedHeaderError, 'Content-Digest could not be parsed. It does not contain a valid RFC8941 dictionary.'
end end
def created_time def created_time

View File

@ -138,7 +138,10 @@ class Account < ApplicationRecord
scope :partitioned, -> { order(Arel.sql('row_number() over (partition by domain)')) } scope :partitioned, -> { order(Arel.sql('row_number() over (partition by domain)')) }
scope :without_instance_actor, -> { where.not(id: INSTANCE_ACTOR_ID) } scope :without_instance_actor, -> { where.not(id: INSTANCE_ACTOR_ID) }
scope :recent, -> { reorder(id: :desc) } scope :recent, -> { reorder(id: :desc) }
scope :bots, -> { where(actor_type: AUTOMATED_ACTOR_TYPES) }
scope :non_automated, -> { where.not(actor_type: AUTOMATED_ACTOR_TYPES) } scope :non_automated, -> { where.not(actor_type: AUTOMATED_ACTOR_TYPES) }
scope :groups, -> { where(actor_type: 'Group') }
scope :alphabetic, -> { order(domain: :asc, username: :asc) }
scope :matches_uri_prefix, ->(value) { where(arel_table[:uri].matches("#{sanitize_sql_like(value)}/%", false, true)).or(where(uri: value)) } scope :matches_uri_prefix, ->(value) { where(arel_table[:uri].matches("#{sanitize_sql_like(value)}/%", false, true)).or(where(uri: value)) }
scope :matches_username, ->(value) { where('lower((username)::text) LIKE lower(?)', "#{value}%") } scope :matches_username, ->(value) { where('lower((username)::text) LIKE lower(?)', "#{value}%") }
scope :matches_display_name, ->(value) { where(arel_table[:display_name].matches("#{value}%")) } scope :matches_display_name, ->(value) { where(arel_table[:display_name].matches("#{value}%")) }

View File

@ -161,7 +161,7 @@ class AccountStatusesCleanupPolicy < ApplicationRecord
end end
def without_poll_scope def without_poll_scope
Status.without_polls Status.where(poll_id: nil)
end end
def without_popular_scope def without_popular_scope

View File

@ -2,7 +2,6 @@
class Admin::AccountAction class Admin::AccountAction
include ActiveModel::Model include ActiveModel::Model
include ActiveModel::Attributes
include AccountableConcern include AccountableConcern
include Authorization include Authorization
@ -21,10 +20,7 @@ class Admin::AccountAction
:report_id, :report_id,
:warning_preset_id :warning_preset_id
attr_reader :warning attr_reader :warning, :send_email_notification, :include_statuses
attribute :include_statuses, :boolean, default: true
attribute :send_email_notification, :boolean, default: true
alias send_email_notification? send_email_notification alias send_email_notification? send_email_notification
alias include_statuses? include_statuses alias include_statuses? include_statuses
@ -32,8 +28,23 @@ class Admin::AccountAction
validates :type, :target_account, :current_account, presence: true validates :type, :target_account, :current_account, presence: true
validates :type, inclusion: { in: TYPES } validates :type, inclusion: { in: TYPES }
def save def initialize(attributes = {})
return false unless valid? @send_email_notification = true
@include_statuses = true
super
end
def send_email_notification=(value)
@send_email_notification = ActiveModel::Type::Boolean.new.cast(value)
end
def include_statuses=(value)
@include_statuses = ActiveModel::Type::Boolean.new.cast(value)
end
def save!
raise ActiveRecord::RecordInvalid, self unless valid?
ApplicationRecord.transaction do ApplicationRecord.transaction do
process_action! process_action!
@ -43,12 +54,6 @@ class Admin::AccountAction
process_notification! process_notification!
process_queue! process_queue!
true
end
def save!
raise ActiveRecord::RecordInvalid, self unless save
end end
def report def report
@ -180,7 +185,7 @@ class Admin::AccountAction
@reports ||= if type == 'none' @reports ||= if type == 'none'
with_report? ? [report] : [] with_report? ? [report] : []
else else
target_account.targeted_reports.unresolved Report.where(target_account: target_account).unresolved
end end
end end

View File

@ -2,7 +2,6 @@
class Admin::StatusBatchAction class Admin::StatusBatchAction
include ActiveModel::Model include ActiveModel::Model
include ActiveModel::Attributes
include AccountableConcern include AccountableConcern
include Authorization include Authorization
@ -10,7 +9,11 @@ class Admin::StatusBatchAction
:status_ids, :report_id, :status_ids, :report_id,
:text :text
attribute :send_email_notification, :boolean attr_reader :send_email_notification
def send_email_notification=(value)
@send_email_notification = ActiveModel::Type::Boolean.new.cast(value)
end
def save! def save!
process_action! process_action!

View File

@ -3,12 +3,10 @@
module Account::AttributionDomains module Account::AttributionDomains
extend ActiveSupport::Concern extend ActiveSupport::Concern
ATTRIBUTION_DOMAINS_LIMIT = 100
included do included do
normalizes :attribution_domains, with: ->(arr) { arr.filter_map { |str| str.to_s.strip.delete_prefix('http://').delete_prefix('https://').delete_prefix('*.').presence }.uniq } normalizes :attribution_domains, with: ->(arr) { arr.filter_map { |str| str.to_s.strip.delete_prefix('http://').delete_prefix('https://').delete_prefix('*.').presence }.uniq }
validates :attribution_domains, domain: true, length: { maximum: ATTRIBUTION_DOMAINS_LIMIT }, if: -> { local? && will_save_change_to_attribution_domains? } validates :attribution_domains, domain: true, length: { maximum: 100 }, if: -> { local? && will_save_change_to_attribution_domains? }
end end
def can_be_attributed_from?(domain) def can_be_attributed_from?(domain)

View File

@ -10,6 +10,12 @@ module DatabaseViewRecord
concurrently: true, concurrently: true,
cascade: false cascade: false
) )
rescue ActiveRecord::StatementInvalid
Scenic.database.refresh_materialized_view(
table_name,
concurrently: false,
cascade: false
)
end end
end end

View File

@ -4,8 +4,14 @@ module FollowLimitable
extend ActiveSupport::Concern extend ActiveSupport::Concern
included do included do
validates_with FollowLimitValidator, on: :create, unless: :bypass_follow_limit validates_with FollowLimitValidator, on: :create, unless: :bypass_follow_limit?
end
attribute :bypass_follow_limit, :boolean, default: false def bypass_follow_limit=(value)
@bypass_follow_limit = value
end
def bypass_follow_limit?
@bypass_follow_limit
end end
end end

View File

@ -17,14 +17,12 @@ class CustomFilterStatus < ApplicationRecord
belongs_to :custom_filter belongs_to :custom_filter
belongs_to :status belongs_to :status
validates :status_id, uniqueness: { scope: :custom_filter_id } validates :status, uniqueness: { scope: :custom_filter }
validate :validate_status_access, if: [:custom_filter_account, :status] validate :validate_status_access
delegate :account, to: :custom_filter, prefix: true, allow_nil: true
private private
def validate_status_access def validate_status_access
errors.add(:status_id, :invalid) unless StatusPolicy.new(custom_filter_account, status).show? errors.add(:status_id, :invalid) unless StatusPolicy.new(custom_filter.account, status).show?
end end
end end

View File

@ -14,7 +14,7 @@ class FollowRecommendationMute < ApplicationRecord
belongs_to :account belongs_to :account
belongs_to :target_account, class_name: 'Account' belongs_to :target_account, class_name: 'Account'
validates :target_account_id, uniqueness: { scope: :account_id } validates :target_account, uniqueness: { scope: :account_id }
after_commit :invalidate_follow_recommendations_cache after_commit :invalidate_follow_recommendations_cache

View File

@ -128,7 +128,7 @@ class Form::AccountBatch
# Suspending a single account closes their associated reports, so # Suspending a single account closes their associated reports, so
# mass-suspending would be consistent. # mass-suspending would be consistent.
account.targeted_reports.unresolved.find_each do |report| Report.where(target_account: account).unresolved.find_each do |report|
authorize(report, :update?) authorize(report, :update?)
log_action(:resolve, report) log_action(:resolve, report)
report.resolve!(current_account) report.resolve!(current_account)

View File

@ -24,7 +24,7 @@ class GeneratedAnnualReport < ApplicationRecord
end end
def view! def view!
touch(:viewed_at) update!(viewed_at: Time.now.utc)
end end
def account_ids def account_ids

View File

@ -31,7 +31,7 @@ class Quote < ApplicationRecord
belongs_to :quoted_account, class_name: 'Account', optional: true belongs_to :quoted_account, class_name: 'Account', optional: true
before_validation :set_accounts before_validation :set_accounts
before_validation :set_activity_uri, only: :create, if: -> { account.local? && quoted_account&.remote? }
validates :activity_uri, presence: true, if: -> { account.local? && quoted_account&.remote? } validates :activity_uri, presence: true, if: -> { account.local? && quoted_account&.remote? }
validate :validate_visibility validate :validate_visibility
@ -69,8 +69,4 @@ class Quote < ApplicationRecord
errors.add(:quoted_status_id, :visibility_mismatch) errors.add(:quoted_status_id, :visibility_mismatch)
end end
def set_activity_uri
self.activity_uri = [ActivityPub::TagManager.instance.uri_for(account), '/quote_requests/', SecureRandom.uuid].join
end
end end

View File

@ -121,10 +121,7 @@ class Status < ApplicationRecord
scope :without_replies, -> { not_reply.or(reply_to_account) } scope :without_replies, -> { not_reply.or(reply_to_account) }
scope :not_reply, -> { where(reply: false) } scope :not_reply, -> { where(reply: false) }
scope :only_reblogs, -> { where.not(reblog_of_id: nil) } scope :only_reblogs, -> { where.not(reblog_of_id: nil) }
scope :only_polls, -> { where.not(poll_id: nil) }
scope :without_polls, -> { where(poll_id: nil) }
scope :reply_to_account, -> { where(arel_table[:in_reply_to_account_id].eq arel_table[:account_id]) } scope :reply_to_account, -> { where(arel_table[:in_reply_to_account_id].eq arel_table[:account_id]) }
scope :not_replying_to_account, ->(account) { where.not(in_reply_to_account: account) }
scope :without_reblogs, -> { where(statuses: { reblog_of_id: nil }) } scope :without_reblogs, -> { where(statuses: { reblog_of_id: nil }) }
scope :tagged_with, ->(tag_ids) { joins(:statuses_tags).where(statuses_tags: { tag_id: tag_ids }) } scope :tagged_with, ->(tag_ids) { joins(:statuses_tags).where(statuses_tags: { tag_id: tag_ids }) }
scope :not_excluded_by_account, ->(account) { where.not(account_id: account.excluded_from_timeline_account_ids) } scope :not_excluded_by_account, ->(account) { where.not(account_id: account.excluded_from_timeline_account_ids) }

View File

@ -49,8 +49,8 @@ class Tag < ApplicationRecord
validates :name, presence: true, format: { with: HASHTAG_NAME_RE } validates :name, presence: true, format: { with: HASHTAG_NAME_RE }
validates :display_name, format: { with: HASHTAG_NAME_RE } validates :display_name, format: { with: HASHTAG_NAME_RE }
validate :validate_name_change, on: :update, if: :name_changed? validate :validate_name_change, if: -> { !new_record? && name_changed? }
validate :validate_display_name_change, on: :update, if: :display_name_changed? validate :validate_display_name_change, if: -> { !new_record? && display_name_changed? }
scope :pending_review, -> { unreviewed.where.not(requested_review_at: nil) } scope :pending_review, -> { unreviewed.where.not(requested_review_at: nil) }
scope :usable, -> { where(usable: [true, nil]) } scope :usable, -> { where(usable: [true, nil]) }

View File

@ -90,7 +90,6 @@ class User < ApplicationRecord
has_many :applications, class_name: 'Doorkeeper::Application', as: :owner, dependent: nil has_many :applications, class_name: 'Doorkeeper::Application', as: :owner, dependent: nil
has_many :backups, inverse_of: :user, dependent: nil has_many :backups, inverse_of: :user, dependent: nil
has_many :invites, inverse_of: :user, dependent: nil has_many :invites, inverse_of: :user, dependent: nil
has_many :login_activities, inverse_of: :user, dependent: :destroy
has_many :markers, inverse_of: :user, dependent: :destroy has_many :markers, inverse_of: :user, dependent: :destroy
has_many :webauthn_credentials, dependent: :destroy has_many :webauthn_credentials, dependent: :destroy
has_many :ips, class_name: 'UserIp', inverse_of: :user, dependent: nil has_many :ips, class_name: 'UserIp', inverse_of: :user, dependent: nil

View File

@ -35,7 +35,6 @@ class UserSettings
setting :expand_content_warnings, default: false setting :expand_content_warnings, default: false
setting :display_media, default: 'default', in: %w(default show_all hide_all) setting :display_media, default: 'default', in: %w(default show_all hide_all)
setting :auto_play, default: false setting :auto_play, default: false
setting :emoji_style, default: 'auto', in: %w(auto native twemoji)
end end
namespace :notification_emails do namespace :notification_emails do

View File

@ -7,7 +7,7 @@ class ActivityPub::QuoteRequestSerializer < ActivityPub::Serializer
attribute :virtual_object, key: :object attribute :virtual_object, key: :object
def id def id
object.activity_uri object.activity_uri || [ActivityPub::TagManager.instance.uri_for(object.target_account), '#quote_requests/', object.id].join
end end
def type def type

View File

@ -5,7 +5,7 @@ class InitialStateSerializer < ActiveModel::Serializer
attributes :meta, :compose, :accounts, attributes :meta, :compose, :accounts,
:media_attachments, :settings, :media_attachments, :settings,
:languages, :features :languages
attribute :critical_updates_pending, if: -> { object&.role&.can?(:view_devops) && SoftwareUpdate.check_enabled? } attribute :critical_updates_pending, if: -> { object&.role&.can?(:view_devops) && SoftwareUpdate.check_enabled? }
@ -85,10 +85,6 @@ class InitialStateSerializer < ActiveModel::Serializer
LanguagesHelper::SUPPORTED_LOCALES.map { |(key, value)| [key, value[0], value[1]] } LanguagesHelper::SUPPORTED_LOCALES.map { |(key, value)| [key, value[0], value[1]] }
end end
def features
Mastodon::Feature.enabled_features
end
private private
def default_meta_store def default_meta_store

View File

@ -66,7 +66,6 @@ class ActivityPub::ProcessStatusUpdateService < BaseService
update_interaction_policies! update_interaction_policies!
update_poll!(allow_significant_changes: false) update_poll!(allow_significant_changes: false)
queue_poll_notifications! queue_poll_notifications!
update_quote_approval!
update_counts! update_counts!
end end
end end
@ -271,23 +270,6 @@ class ActivityPub::ProcessStatusUpdateService < BaseService
end end
end end
# This method is only concerned with approval and skips other meaningful changes,
# as it is used instead of `update_quote!` in implicit updates
def update_quote_approval!
quote_uri = @status_parser.quote_uri
return unless quote_uri.present? && @status.quote.present?
quote = @status.quote
return if quote.quoted_status.present? && ActivityPub::TagManager.instance.uri_for(quote.quoted_status) != quote_uri
approval_uri = @status_parser.quote_approval_uri
approval_uri = nil if unsupported_uri_scheme?(approval_uri)
quote.update(approval_uri: approval_uri, state: :pending, legacy: @status_parser.legacy_quote?) if quote.approval_uri != @status_parser.quote_approval_uri
fetch_and_verify_quote!(quote, quote_uri)
end
def update_quote! def update_quote!
quote_uri = @status_parser.quote_uri quote_uri = @status_parser.quote_uri

View File

@ -297,7 +297,7 @@ class DeleteAccountService < BaseService
end end
def reported_status_ids def reported_status_ids
@reported_status_ids ||= @account.targeted_reports.unresolved.pluck(:status_ids).flatten.uniq @reported_status_ids ||= Report.where(target_account: @account).unresolved.pluck(:status_ids).flatten.uniq
end end
def associations_for_destruction def associations_for_destruction

View File

@ -56,7 +56,7 @@
.fields-group .fields-group
= f.input :date_of_birth, = f.input :date_of_birth,
as: :date_of_birth, as: :date_of_birth,
hint: t('simple_form.hints.user.date_of_birth', count: Setting.min_age.to_i, domain: site_hostname), hint: t('simple_form.hints.user.date_of_birth', count: Setting.min_age.to_i),
required: true, required: true,
wrapper: :with_block_label wrapper: :with_block_label

View File

@ -31,17 +31,6 @@
label: I18n.t('simple_form.labels.defaults.setting_theme'), label: I18n.t('simple_form.labels.defaults.setting_theme'),
wrapper: :with_label wrapper: :with_label
- if Mastodon::Feature.modern_emojis_enabled?
.fields-group
= f.simple_fields_for :settings, current_user.settings do |ff|
= ff.input :'web.emoji_style',
collection: %w(auto twemoji native),
include_blank: false,
hint: I18n.t('simple_form.hints.defaults.setting_emoji_style'),
label: I18n.t('simple_form.labels.defaults.setting_emoji_style'),
label_method: ->(emoji_style) { I18n.t("emoji_styles.#{emoji_style}", default: emoji_style) },
wrapper: :with_label
- unless I18n.locale == :en - unless I18n.locale == :en
.flash-message.translation-prompt .flash-message.translation-prompt
#{t 'appearance.localization.body'} #{content_tag(:a, t('appearance.localization.guide_link_text'), href: t('appearance.localization.guide_link'), target: '_blank', rel: 'noopener')} #{t 'appearance.localization.body'} #{content_tag(:a, t('appearance.localization.guide_link_text'), href: t('appearance.localization.guide_link'), target: '_blank', rel: 'noopener')}

View File

@ -1,5 +1,5 @@
shared: shared:
enabled: <%= ENV.fetch('CACHE_BUSTER_ENABLED', 'false') == 'true' %> enabled: <%= ENV.fetch('CACHE_BUSTER_ENABLED', 'false') == 'true' %>
secret_header: <%= ENV.fetch('CACHE_BUSTER_SECRET_HEADER', nil)&.to_json %> secret_header: <%= ENV.fetch('CACHE_BUSTER_SECRET_HEADER', nil) %>
secret: <%= ENV.fetch('CACHE_BUSTER_SECRET', nil)&.to_json %> secret: <%= ENV.fetch('CACHE_BUSTER_SECRET', nil) %>
http_method: <%= ENV.fetch('CACHE_BUSTER_HTTP_METHOD', 'GET') %> http_method: <%= ENV.fetch('CACHE_BUSTER_HTTP_METHOD', 'GET') %>

View File

@ -2,14 +2,14 @@
# keys are added here. # keys are added here.
production: production:
delivery_method: <%= ENV.fetch('SMTP_DELIVERY_METHOD', 'smtp') %> delivery_method: <%= ENV.fetch('SMTP_DELIVERY_METHOD', 'smtp') %>
from_address: <%= ENV.fetch('SMTP_FROM_ADDRESS', 'notifications@localhost')&.to_json %> from_address: <%= ENV.fetch('SMTP_FROM_ADDRESS', 'notifications@localhost') %>
reply_to: <%= ENV.fetch('SMTP_REPLY_TO', nil)&.to_json %> reply_to: <%= ENV.fetch('SMTP_REPLY_TO', nil) %>
return_path: <%= ENV.fetch('SMTP_RETURN_PATH', nil)&.to_json %> return_path: <%= ENV.fetch('SMTP_RETURN_PATH', nil) %>
smtp_settings: smtp_settings:
port: <%= ENV.fetch('SMTP_PORT', nil) %> port: <%= ENV.fetch('SMTP_PORT', nil) %>
address: <%= ENV.fetch('SMTP_SERVER', nil)&.to_json %> address: <%= ENV.fetch('SMTP_SERVER', nil) %>
user_name: <%= ENV.fetch('SMTP_LOGIN', nil)&.to_json %> user_name: <%= ENV.fetch('SMTP_LOGIN', nil) %>
password: <%= ENV.fetch('SMTP_PASSWORD', nil)&.to_json %> password: <%= ENV.fetch('SMTP_PASSWORD', nil) %>
domain: <%= ENV.fetch('SMTP_DOMAIN', ENV.fetch('LOCAL_DOMAIN', nil)) %> domain: <%= ENV.fetch('SMTP_DOMAIN', ENV.fetch('LOCAL_DOMAIN', nil)) %>
authentication: <%= ENV.fetch('SMTP_AUTH_METHOD', 'plain') %> authentication: <%= ENV.fetch('SMTP_AUTH_METHOD', 'plain') %>
ca_file: <%= ENV.fetch('SMTP_CA_FILE', '/etc/ssl/certs/ca-certificates.crt') %> ca_file: <%= ENV.fetch('SMTP_CA_FILE', '/etc/ssl/certs/ca-certificates.crt') %>
@ -22,9 +22,9 @@ production:
bulk_mail: bulk_mail:
smtp_settings: smtp_settings:
port: <%= ENV.fetch('BULK_SMTP_PORT', nil) %> port: <%= ENV.fetch('BULK_SMTP_PORT', nil) %>
address: <%= ENV.fetch('BULK_SMTP_SERVER', nil)&.to_json %> address: <%= ENV.fetch('BULK_SMTP_SERVER', nil) %>
user_name: <%= ENV.fetch('BULK_SMTP_LOGIN', nil)&.to_json %> user_name: <%= ENV.fetch('BULK_SMTP_LOGIN', nil) %>
password: <%= ENV.fetch('BULK_SMTP_PASSWORD', nil)&.to_json %> password: <%= ENV.fetch('BULK_SMTP_PASSWORD', nil) %>
domain: <%= ENV.fetch('BULK_SMTP_DOMAIN', ENV.fetch('LOCAL_DOMAIN', nil)) %> domain: <%= ENV.fetch('BULK_SMTP_DOMAIN', ENV.fetch('LOCAL_DOMAIN', nil)) %>
authentication: <%= ENV.fetch('BULK_SMTP_AUTH_METHOD', 'plain') %> authentication: <%= ENV.fetch('BULK_SMTP_AUTH_METHOD', 'plain') %>
ca_file: <%= ENV.fetch('BULK_SMTP_CA_FILE', '/etc/ssl/certs/ca-certificates.crt') %> ca_file: <%= ENV.fetch('BULK_SMTP_CA_FILE', '/etc/ssl/certs/ca-certificates.crt') %>

View File

@ -5,14 +5,24 @@ require 'linzer/message/adapter/http_gem/response'
module Linzer::Message::Adapter module Linzer::Message::Adapter
module ActionDispatch module ActionDispatch
class Response < Linzer::Message::Adapter::Generic::Response class Response < Linzer::Message::Adapter::Abstract
private def initialize(operation, **_options) # rubocop:disable Lint/MissingSuper
@operation = operation
end
def header(name)
@operation.headers[name]
end
def attach!(signature)
signature.to_h.each { |h, v| @operation.headers[h] = v }
end
# Incomplete, but sufficient for FASP # Incomplete, but sufficient for FASP
def derived(name) def [](field_name)
case name.value return @operation.status if field_name == '@status'
when '@status' then @operation.status
end @operation.headers[field_name]
end end
end end
end end

View File

@ -3,7 +3,7 @@
Rails.application.config.to_prepare do Rails.application.config.to_prepare do
custom_css = begin custom_css = begin
Setting.custom_css Setting.custom_css
rescue # Running without a cache, database, not migrated, no connection, etc rescue ActiveRecord::AdapterError # Running without a database, not migrated, no connection, etc
nil nil
end end

View File

@ -15,9 +15,6 @@ be:
user/invite_request: user/invite_request:
text: Прычына text: Прычына
errors: errors:
attributes:
domain:
invalid: не з’яўляецца сапраўдным даменным імем
models: models:
account: account:
attributes: attributes:
@ -40,7 +37,7 @@ be:
attributes: attributes:
account_id: account_id:
taken: ужо ў спісе taken: ужо ў спісе
must_be_following: мусіць быць карыстальнікам у вашых падпісках must_be_following: мусіць быць падпісаным уліковым запісам
status: status:
attributes: attributes:
reblog: reblog:

View File

@ -49,14 +49,8 @@ en-GB:
attributes: attributes:
reblog: reblog:
taken: of post already exists taken: of post already exists
terms_of_service:
attributes:
effective_date:
too_soon: is too soon, must be later than %{date}
user: user:
attributes: attributes:
date_of_birth:
below_limit: is below the age limit
email: email:
blocked: uses a disallowed e-mail provider blocked: uses a disallowed e-mail provider
unreachable: does not seem to exist unreachable: does not seem to exist

View File

@ -49,14 +49,8 @@ eu:
attributes: attributes:
reblog: reblog:
taken: mezu honentzat bazegoen aurretik taken: mezu honentzat bazegoen aurretik
terms_of_service:
attributes:
effective_date:
too_soon: goizegi da, %{date} baino geroagokoa izan behar da
user: user:
attributes: attributes:
date_of_birth:
below_limit: adinaren mugaren azpitik dago
email: email:
blocked: onartu gabeko e-posta hornitzaile bat erabiltzen du blocked: onartu gabeko e-posta hornitzaile bat erabiltzen du
unreachable: dirudienez ez da existitzen unreachable: dirudienez ez da existitzen

View File

@ -18,7 +18,7 @@ be:
link_verified_on: Права ўласнасці на гэтую спасылку праверана %{date} link_verified_on: Права ўласнасці на гэтую спасылку праверана %{date}
nothing_here: Тут нічога няма! nothing_here: Тут нічога няма!
pin_errors: pin_errors:
following: Трэба падпісацца на чалавека, якога вы хочаце рэкамендаваць following: Вы павінны быць падпісаны на чалавека, якога жадаеце рэкамендаваць
posts: posts:
few: Допісы few: Допісы
many: Допісаў many: Допісаў
@ -28,8 +28,6 @@ be:
admin: admin:
account_actions: account_actions:
action: Выканаць дзеянне action: Выканаць дзеянне
already_silenced: Гэты ўліковы запіс ужо абмежаваны.
already_suspended: Гэты ўліковы запіс ужо прыпынены.
title: Мадэраваць %{acct} title: Мадэраваць %{acct}
account_moderation_notes: account_moderation_notes:
create: Пакінуць нататку create: Пакінуць нататку
@ -109,7 +107,7 @@ be:
no_role_assigned: Роля не прызначана no_role_assigned: Роля не прызначана
not_subscribed: Не падпісаны not_subscribed: Не падпісаны
pending: Чакае праверкі pending: Чакае праверкі
perform_full_suspension: Прыпыніць perform_full_suspension: Выключыць
previous_strikes: Ранейшыя скаргі previous_strikes: Ранейшыя скаргі
previous_strikes_description_html: previous_strikes_description_html:
few: Гэты ўліковы запіс мае <strong>%{count}</strong> скаргі. few: Гэты ўліковы запіс мае <strong>%{count}</strong> скаргі.
@ -166,7 +164,7 @@ be:
unconfirmed_email: Непацверджаны адрас эл. пошты unconfirmed_email: Непацверджаны адрас эл. пошты
undo_sensitized: Прыбраць прымусовую пазнаку далікатнасці undo_sensitized: Прыбраць прымусовую пазнаку далікатнасці
undo_silenced: Адмяніць ліміт undo_silenced: Адмяніць ліміт
undo_suspension: Разблакіраваць карыстальніка undo_suspension: Разблакаваць карыстальніка
unsilenced_msg: З уліковага запісу %{username} зняты абмежаванні unsilenced_msg: З уліковага запісу %{username} зняты абмежаванні
unsubscribe: Адпісацца unsubscribe: Адпісацца
unsuspended_msg: Уліковы запіс %{username} адноўлены unsuspended_msg: Уліковы запіс %{username} адноўлены
@ -191,7 +189,7 @@ be:
create_domain_block: Стварыць даменны блок create_domain_block: Стварыць даменны блок
create_email_domain_block: Стварыць даменны блок электроннай пошты create_email_domain_block: Стварыць даменны блок электроннай пошты
create_ip_block: Стварыць IP правіла create_ip_block: Стварыць IP правіла
create_relay: Стварыць рэтранслятар create_relay: Стварыць паўтор
create_unavailable_domain: Стварыць недаступны Дамен create_unavailable_domain: Стварыць недаступны Дамен
create_user_role: Стварыць ролю create_user_role: Стварыць ролю
demote_user: Панізіць карыстальніка demote_user: Панізіць карыстальніка
@ -203,22 +201,22 @@ be:
destroy_email_domain_block: Выдаліць даменны блок электроннай пошты destroy_email_domain_block: Выдаліць даменны блок электроннай пошты
destroy_instance: Вычысціць дамен destroy_instance: Вычысціць дамен
destroy_ip_block: Выдаліць IP правіла destroy_ip_block: Выдаліць IP правіла
destroy_relay: Выдаліць рэтранслятар destroy_relay: Выдаліць паўтор
destroy_status: Выдаліць допіс destroy_status: Выдаліць допіс
destroy_unavailable_domain: Выдаліць недаступны дамен destroy_unavailable_domain: Выдаліць недаступны дамен
destroy_user_role: Выдаліць ролю destroy_user_role: Выдаліць ролю
disable_2fa_user: Адключыць двухэтапнае спраўджанне disable_2fa_user: Адключыць двухэтапнае спраўджанне
disable_custom_emoji: Адключыць адвольныя эмодзі disable_custom_emoji: Адключыць адвольныя эмодзі
disable_relay: Выключыць рэтранслятар disable_relay: Выключыць паўтор
disable_sign_in_token_auth_user: Адключыць аўтарызацыю праз электронную пошту для карыстальніка disable_sign_in_token_auth_user: Адключыць аўтарызацыю праз электронную пошту для карыстальніка
disable_user: Адключыць карыстальніка disable_user: Адключыць карыстальніка
enable_custom_emoji: Уключыць адвольныя эмодзі enable_custom_emoji: Уключыць адвольныя эмодзі
enable_relay: Уключыць рэтранслятар enable_relay: Уключыць паўтор
enable_sign_in_token_auth_user: Уключыць аўтарызацыю праз электронную пошту для карыстальніка enable_sign_in_token_auth_user: Уключыць аўтарызацыю праз электронную пошту для карыстальніка
enable_user: Уключыць карыстальніка enable_user: Уключыць карыстальніка
memorialize_account: Запомніць уліковы запіс memorialize_account: Запомніць уліковы запіс
promote_user: Павысіць правы Карыстальніка promote_user: Павысіць правы Карыстальніка
publish_terms_of_service: Апублікаваць умовы выкарыстання publish_terms_of_service: Апублікаваць Умовы выкарыстаньня
reject_appeal: Адхіліць абскарджанне reject_appeal: Адхіліць абскарджанне
reject_user: Адмовіць карыстальніку reject_user: Адмовіць карыстальніку
remove_avatar_user: Выдаліць аватар remove_avatar_user: Выдаліць аватар
@ -228,13 +226,13 @@ be:
resolve_report: Вырашыць скаргу resolve_report: Вырашыць скаргу
sensitive_account: Уліковы запіс прымусова пазначаны як далікатны sensitive_account: Уліковы запіс прымусова пазначаны як далікатны
silence_account: Абмежаваць уліковы запіс silence_account: Абмежаваць уліковы запіс
suspend_account: Прыпыніць уліковы запіс suspend_account: Выключыць уліковы запіс
unassigned_report: Прыбраць прызначэнне скаргі unassigned_report: Прыбраць прызначэнне скаргі
unblock_email_account: Разблакіраваць электронны адрас unblock_email_account: Разблакіраваць электронны адрас
unsensitive_account: Прымусовая пазнака далікатнасці прыбраная unsensitive_account: Прымусовая пазнака далікатнасці прыбраная
unsilence_account: Уліковы запіс больш не абмежаваны unsilence_account: Уліковы запіс больш не абмежаваны
unsuspend_account: Аднавіць уліковы запіс unsuspend_account: Аднавіць уліковы запіс
update_announcement: Абнавіць абяву update_announcement: Абнавіць аб'яву
update_custom_emoji: Абнавіць адвольныя эмодзі update_custom_emoji: Абнавіць адвольныя эмодзі
update_domain_block: Актуалізаваць блакіроўку дамена update_domain_block: Актуалізаваць блакіроўку дамена
update_ip_block: Абнавіць IP правіла update_ip_block: Абнавіць IP правіла
@ -256,34 +254,34 @@ be:
create_domain_block_html: "%{name} заблакіраваў дамен %{target}" create_domain_block_html: "%{name} заблакіраваў дамен %{target}"
create_email_domain_block_html: "%{name} заблакіраваў дамен эл. пошты %{target}" create_email_domain_block_html: "%{name} заблакіраваў дамен эл. пошты %{target}"
create_ip_block_html: "%{name} стварыў правіла для IP %{target}" create_ip_block_html: "%{name} стварыў правіла для IP %{target}"
create_relay_html: "%{name} стварыў(-ла) рэтранслятар %{target}" create_relay_html: "%{name} стварыў(-а) паўтор %{target}"
create_unavailable_domain_html: "%{name} прыпыніў дастаўку да дамена %{target}" create_unavailable_domain_html: "%{name} прыпыніў дастаўку да дамена %{target}"
create_user_role_html: "%{name} зрабіў ролю %{target}" create_user_role_html: "%{name} зрабіў ролю %{target}"
demote_user_html: "%{name} прыбраў карыстальніка %{target}" demote_user_html: "%{name} прыбраў карыстальніка %{target}"
destroy_announcement_html: "%{name} выдаліў аб'яву %{target}" destroy_announcement_html: "%{name} выдаліў аб'яву %{target}"
destroy_canonical_email_block_html: "%{name} разблакіраваў эл. пошту з хэшам %{target}" destroy_canonical_email_block_html: "%{name} разблакіраваў эл. пошту з хэшам %{target}"
destroy_custom_emoji_html: "%{name} выдаліў(-ла) эмодзі %{target}" destroy_custom_emoji_html: "%{name} выдаліў(а) эмоджі %{target}"
destroy_domain_allow_html: "%{name} зняў(-ла) дазвол на аб’яднанне з даменам %{target}" destroy_domain_allow_html: "%{name} зняў дазвол на аб'яднанне з даменам %{target}\n"
destroy_domain_block_html: "%{name} разблакаваў дамен %{target}" destroy_domain_block_html: "%{name} разблакаваў дамен %{target}"
destroy_email_domain_block_html: "%{name} разблакіраваў дамен эл. пошты %{target}" destroy_email_domain_block_html: "%{name} разблакіраваў дамен эл. пошты %{target}"
destroy_instance_html: "%{name} цалкам прыбраў дамен %{target}" destroy_instance_html: "%{name} цалкам прыбраў дамен %{target}"
destroy_ip_block_html: "%{name} выдаліў правіла для IP %{target}" destroy_ip_block_html: "%{name} выдаліў правіла для IP %{target}"
destroy_relay_html: "%{name} выдаліў(-ла) рэтранслятар %{target}" destroy_relay_html: "%{name} выдаліў(-ла) паўтор %{target}"
destroy_status_html: "%{name} выдаліў допіс %{target}" destroy_status_html: "%{name} выдаліў допіс %{target}"
destroy_unavailable_domain_html: "%{name} дазволіў працягнуць адпраўку на дамен %{target}" destroy_unavailable_domain_html: "%{name} дазволіў працягнуць адпраўку на дамен %{target}"
destroy_user_role_html: "%{name} выдаліў ролю %{target}" destroy_user_role_html: "%{name} выдаліў ролю %{target}"
disable_2fa_user_html: "%{name} амяніў абавязковую двухфактарную верыфікацыю для карыстальніка %{target}" disable_2fa_user_html: "%{name} амяніў абавязковую двухфактарную верыфікацыю для карыстальніка %{target}"
disable_custom_emoji_html: "%{name} заблакіраваў эмодзі %{target}" disable_custom_emoji_html: "%{name} заблакіраваў эмодзі %{target}"
disable_relay_html: "%{name} выключыў(-ла) рэтранслятар %{target}" disable_relay_html: "%{name} выключыў(-ла) паўтор %{target}"
disable_sign_in_token_auth_user_html: "%{name} адключыў уваход праз эл. пошту для %{target}" disable_sign_in_token_auth_user_html: "%{name} адключыў уваход праз эл. пошту для %{target}"
disable_user_html: "%{name} адключыў уваход для карыстальніка %{target}" disable_user_html: "%{name} адключыў уваход для карыстальніка %{target}"
enable_custom_emoji_html: "%{name} уключыў эмодзі %{target}" enable_custom_emoji_html: "%{name} уключыў эмодзі %{target}"
enable_relay_html: "%{name} уключыў(-ла) рэтранслятар %{target}" enable_relay_html: "%{name} уключыў(-ла) паўтор %{target}"
enable_sign_in_token_auth_user_html: "%{name} уключыў уваход праз эл. пошту для %{target}" enable_sign_in_token_auth_user_html: "%{name} уключыў уваход праз эл. пошту для %{target}"
enable_user_html: "%{name} уключыў уваход для карыстальніка %{target}" enable_user_html: "%{name} уключыў уваход для карыстальніка %{target}"
memorialize_account_html: Карыстальнік %{name} пераключыў уліковы запіс %{target} у старонку памяці memorialize_account_html: Карыстальнік %{name} пераключыў уліковы запіс %{target} у старонку памяці
promote_user_html: "%{name} павысіў карыстальніка %{target}" promote_user_html: "%{name} павысіў карыстальніка %{target}"
publish_terms_of_service_html: "%{name} апублікаваў(-ла) абнаўленні ва ўмовах выкарыстання" publish_terms_of_service_html: "%{name} апублікаваў абнаўленьне ўмоваў абслугоўваньня"
reject_appeal_html: "%{name} адхіліў запыт на абскарджанне %{target}" reject_appeal_html: "%{name} адхіліў запыт на абскарджанне %{target}"
reject_user_html: "%{name} адхіліў рэгістрацыю з %{target}" reject_user_html: "%{name} адхіліў рэгістрацыю з %{target}"
remove_avatar_user_html: "%{name} выдаліў аватар %{target}" remove_avatar_user_html: "%{name} выдаліў аватар %{target}"
@ -293,13 +291,13 @@ be:
resolve_report_html: "%{name} вырашыў скаргу %{target}" resolve_report_html: "%{name} вырашыў скаргу %{target}"
sensitive_account_html: "%{name} адзначыў медыя %{target} як далікатнае" sensitive_account_html: "%{name} адзначыў медыя %{target} як далікатнае"
silence_account_html: "%{name} абмежаваў уліковы запіс %{target}" silence_account_html: "%{name} абмежаваў уліковы запіс %{target}"
suspend_account_html: Уліковы запіс %{target} прыпынены %{name} suspend_account_html: Уліковы запіс %{target} выключаны %{name}
unassigned_report_html: "%{name} знял(а) прызначэнне скаргі %{target}" unassigned_report_html: "%{name} знял(а) прызначэнне скаргі %{target}"
unblock_email_account_html: "%{name} разблакіраваў эл. пошту %{target}" unblock_email_account_html: "%{name} разблакіраваў эл. пошту %{target}"
unsensitive_account_html: "%{name} зняў адзнаку далікатнае з медыя %{target}" unsensitive_account_html: "%{name} зняў адзнаку далікатнае з медыя %{target}"
unsilence_account_html: "%{name} зняў ліміт з уліковага запісу %{target}" unsilence_account_html: "%{name} зняў ліміт з уліковага запісу %{target}"
unsuspend_account_html: Уліковы запіс %{target} адноўлены %{name} unsuspend_account_html: Уліковы запіс %{target} адноўлены %{name}
update_announcement_html: "%{name} абнавіў(-ла) абяву %{target}" update_announcement_html: "%{name} абнавіў аб'яву %{target}"
update_custom_emoji_html: "%{name} абнавіў эмодзі %{target}" update_custom_emoji_html: "%{name} абнавіў эмодзі %{target}"
update_domain_block_html: "%{name} абнавіў блакіроўку дамена для %{target}" update_domain_block_html: "%{name} абнавіў блакіроўку дамена для %{target}"
update_ip_block_html: "%{name} змяніў правіла для IP %{target}" update_ip_block_html: "%{name} змяніў правіла для IP %{target}"
@ -313,7 +311,7 @@ be:
title: Аўдыт title: Аўдыт
unavailable_instance: "(імя дамена недаступнае)" unavailable_instance: "(імя дамена недаступнае)"
announcements: announcements:
destroyed_msg: Аб’ява выдалена! destroyed_msg: Аб'ява паспяхова выдалена!
edit: edit:
title: Рэдагаваць абвестку title: Рэдагаваць абвестку
empty: Не знайдзена ніводнай абвесткі empty: Не знайдзена ніводнай абвесткі
@ -327,26 +325,26 @@ be:
scheduled_msg: Аб'ява запланавана да публікацыі! scheduled_msg: Аб'ява запланавана да публікацыі!
title: Аб'явы title: Аб'явы
unpublish: Зняць з публікацыі unpublish: Зняць з публікацыі
unpublished_msg: Аб’ява схавана! unpublished_msg: Аб'ява паспяхова схована!
updated_msg: Аб’ява абноўлена! updated_msg: Аб'ява паспяхова адноўлена!
critical_update_pending: Чакаецца абнаўленне critical_update_pending: Чакаецца абнаўленне
custom_emojis: custom_emojis:
assign_category: Прызначыць катэгорыю assign_category: Прызначыць катэгорыю
by_domain: Дамен by_domain: Дамен
copied_msg: Створана лакальная копія эмодзі copied_msg: Лакальная копія эмодзі паспяхова створана
copy: Скапіраваць copy: Скапіраваць
copy_failed_msg: Немагчыма зрабіць лакальную копію гэтага эмодзі copy_failed_msg: Немагчыма зрабіць лакальную копію гэтага эмодзі
create_new_category: Стварыць новую катэгорыю create_new_category: Стварыць новую катэгорыю
created_msg: Эмодзі паспяхова створана! created_msg: Эмодзі паспяхова створана!
delete: Выдаліць delete: Выдаліць
destroyed_msg: Уласнае эмодзі знішчана! destroyed_msg: Смайлік паспяхова прыбраны!
disable: Адключыць disable: Адключыць
disabled: Адключана disabled: Адключана
disabled_msg: Смайлік паспяхова адключаны disabled_msg: Смайлік паспяхова адключаны
emoji: Эмодзі emoji: Эмодзі
enable: Уключыць enable: Уключыць
enabled: Уключана enabled: Уключана
enabled_msg: Эмодзі паспяхова ўключана enabled_msg: Смайлік паспяхова ўключаны
image_hint: PNG або GIF да %{size} image_hint: PNG або GIF да %{size}
list: Паказваць list: Паказваць
listed: Паказваецца listed: Паказваецца
@ -425,7 +423,7 @@ be:
domain: Дамен domain: Дамен
edit: Рэдагаваць блакіраванне дамену edit: Рэдагаваць блакіраванне дамену
existing_domain_block: Вы ўжо налажылі стражэйшыя абмежаванні на %{name}. existing_domain_block: Вы ўжо налажылі стражэйшыя абмежаванні на %{name}.
existing_domain_block_html: Вы ўжо наклалі больш строгія абмежаванні на %{name}, спачатку вам трэба <a href="%{unblock_url}">разблакіраваць гэты ўліковы запіс</a>. existing_domain_block_html: Вы ўжо налажылі стражэйшыя абмежаванні на %{name}, спачатку вам неабходна <a href="%{unblock_url}">разблакаваць гэты акаўнт</a>.
export: Экспарт export: Экспарт
import: Імпарт import: Імпарт
new: new:
@ -435,7 +433,7 @@ be:
desc_html: "<strong>Абмежаванне</strong> зробіць допісы людзей з гэтага дамену нябачнымі для тых, хто на іх не падпісаны. <strong>Выключэнне</strong> выдаліць усё змесціва, медыя і даныя профіляў дамену з вашага серверу. <strong>«Нічога»</strong> проста адхіліць медыя файлы." desc_html: "<strong>Абмежаванне</strong> зробіць допісы людзей з гэтага дамену нябачнымі для тых, хто на іх не падпісаны. <strong>Выключэнне</strong> выдаліць усё змесціва, медыя і даныя профіляў дамену з вашага серверу. <strong>«Нічога»</strong> проста адхіліць медыя файлы."
noop: Пуста noop: Пуста
silence: Абмежаваць silence: Абмежаваць
suspend: Прыпыніць suspend: Выключыць
title: Новы блок дамену title: Новы блок дамену
no_domain_block_selected: Блакіроўкі даменаў не былі змененыя, таму што ні адзін з іх не быў выбраны no_domain_block_selected: Блакіроўкі даменаў не былі змененыя, таму што ні адзін з іх не быў выбраны
not_permitted: Вам забаронена выконваць гэта дзеянне not_permitted: Вам забаронена выконваць гэта дзеянне
@ -480,7 +478,7 @@ be:
no_file: Файл не выбраны no_file: Файл не выбраны
export_domain_blocks: export_domain_blocks:
import: import:
description_html: Вы збіраецеся імпартаваць спіс даменных блокаў. Праглядзіце гэты спіс вельмі ўважліва, асабліва калі вы асабіста не з’яўляецеся аўтарам гэтага спіса. description_html: Вы збіраецеся імпартаваць спіс даменных блокаў. Калі ласка, праглядзіце гэты спіс вельмі ўважліва, асабліва калі вы асабіста не з'яўляецеся аўтарам гэтага спісу.
existing_relationships_warning: Наяўныя зносіны existing_relationships_warning: Наяўныя зносіны
private_comment_description_html: 'Каб дапамагчы вам адсочваць, адкуль паходзяць імпартаваныя блокі, імпартаваныя блокі будуць створаны з наступным прыватным каментарыем: <q>%{comment}</q>' private_comment_description_html: 'Каб дапамагчы вам адсочваць, адкуль паходзяць імпартаваныя блокі, імпартаваныя блокі будуць створаны з наступным прыватным каментарыем: <q>%{comment}</q>'
private_comment_template: Імпартавана з %{source} %{date} private_comment_template: Імпартавана з %{source} %{date}
@ -489,26 +487,6 @@ be:
new: new:
title: Імпарт блакіровак дамену title: Імпарт блакіровак дамену
no_file: Файл не выбраны no_file: Файл не выбраны
fasp:
debug:
callbacks:
delete: Выдаліць
ip: IP-адрас
providers:
active: Актыўны
base_url: Базавы URL-адрас
delete: Выдаліць
edit: Рэдагаваць пастаўшчыка
finish_registration: Завяршыць рэгістрацыю
name: Назва
providers: Пастаўшчыкі
public_key_fingerprint: Лічбавы адбітак публічнага ключа
registrations:
confirm: Пацвердзіць
reject: Адхіліць
save: Захаваць
sign_in: Увайсці
title: FASP
follow_recommendations: follow_recommendations:
description_html: "<strong>Рэкамендацыі падпісак, дапамогаюць новым карыстальнікам хутка знайсці цікавы кантэнт</strong>. Калі карыстальнік недастаткова ўзаемадзейнічаў з іншымі, каб сфарміраваць персанальныя рэкамендацыі прытрымлівацца, замест гэтага рэкамендуюцца гэтыя ўліковыя запісы. Яны штодзённа пераразлічваюцца з сумесі ўліковых запісаў з самымі апошнімі ўзаемадзеяннямі і найбольшай колькасцю мясцовых падпісчыкаў для дадзенай мовы." description_html: "<strong>Рэкамендацыі падпісак, дапамогаюць новым карыстальнікам хутка знайсці цікавы кантэнт</strong>. Калі карыстальнік недастаткова ўзаемадзейнічаў з іншымі, каб сфарміраваць персанальныя рэкамендацыі прытрымлівацца, замест гэтага рэкамендуюцца гэтыя ўліковыя запісы. Яны штодзённа пераразлічваюцца з сумесі ўліковых запісаў з самымі апошнімі ўзаемадзеяннямі і найбольшай колькасцю мясцовых падпісчыкаў для дадзенай мовы."
language: Для мовы language: Для мовы
@ -549,7 +527,7 @@ be:
reject_media: Адхіліць мультымедыя reject_media: Адхіліць мультымедыя
reject_reports: Адхіліць справаздачы reject_reports: Адхіліць справаздачы
silence: Ліміт silence: Ліміт
suspend: Прыпыніць suspend: Выключыць
policy: Палітыка policy: Палітыка
reason: Публічная прычына reason: Публічная прычына
title: Палітыкі кантэнту title: Палітыкі кантэнту
@ -583,11 +561,6 @@ be:
all: Усе all: Усе
limited: Абмежаваныя limited: Абмежаваныя
title: Мадэрацыя title: Мадэрацыя
moderation_notes:
create: Дадаць нататку мадэратара
created_msg: Нататка мадэратара для экзэмпляра сервера створана!
destroyed_msg: Нататка мадэратара экзэмпляра сервера выдалена!
title: Нататкі мадэратараў
private_comment: Прыватны каментарый private_comment: Прыватны каментарый
public_comment: Публічны каментарый public_comment: Публічны каментарый
purge: Ачысціць purge: Ачысціць
@ -628,7 +601,7 @@ be:
relays: relays:
add_new: Дадаць новы рэтранслятар add_new: Дадаць новы рэтранслятар
delete: Выдаліць delete: Выдаліць
description_html: "<strong>Федэрацыйны рэтранслятар</strong> - гэта прамежкавы сервер, які абменьваецца вялікімі абёмамі публічных паведамленняў паміж серверамі, якія падпісваюцца і робяць публікацыі на ім. <strong>Гэта можа дапамагчы малым і сярэднім серверам выяўляць змесціва з fediverse</strong>, бо ў іншым выпадку лакальным карыстальнікам трэба было б уручную сачыць за іншымі людзьмі на аддаленых серверах." description_html: "<strong>Федэрацыйны рэтранслятар</strong> - гэта прамежкавы сервер, які абменьваецца вялікімі аб'ёмамі публічных паведамленняў паміж серверамі, якія падпісваюцца і публікуюць на ім. <strong>Гэта можа дапамагчы малым і сярэднім серверам выяўляць кантэнт з fediverse</strong>, для чаго лакальным карыстальнікам у адваротным выпадку трэба было б уручную сачыць за іншымі людзьмі на аддаленых серверах."
disable: Адключыць disable: Адключыць
disabled: Адключана disabled: Адключана
enable: Уключыць enable: Уключыць
@ -662,11 +635,11 @@ be:
suspend_description_html: Уліковы запіс і ўсё яго змесціва будзе недаступна і ў далейшым выдалены, узаемадзеянне з ім будзе немагчыма. Магчыма адмяніць на працягу 30 дзён. Закрывае ўсе скаргі на гэты ўліковы запіс. suspend_description_html: Уліковы запіс і ўсё яго змесціва будзе недаступна і ў далейшым выдалены, узаемадзеянне з ім будзе немагчыма. Магчыма адмяніць на працягу 30 дзён. Закрывае ўсе скаргі на гэты ўліковы запіс.
actions_description_html: Вырашыце, якія дзеянні распачаць, каб вырашыць гэтую скаргу. Калі вы прымеце меры пакарання ў дачыненні да ўліковага запісу, пра які паведамляецца, ім будзе адпраўлена апавяшчэнне па электроннай пошце, за выключэннем выпадкаў, калі выбрана катэгорыя <strong>Спам</strong>. actions_description_html: Вырашыце, якія дзеянні распачаць, каб вырашыць гэтую скаргу. Калі вы прымеце меры пакарання ў дачыненні да ўліковага запісу, пра які паведамляецца, ім будзе адпраўлена апавяшчэнне па электроннай пошце, за выключэннем выпадкаў, калі выбрана катэгорыя <strong>Спам</strong>.
actions_description_remote_html: Вырашыце як паступіць з гэтай скаргай. Гэта паўплывае толькі на тое як <strong>ваш</strong> сервер звязваецца з аддалёным уліковым запісам і апрацоўвае яго кантэнт. actions_description_remote_html: Вырашыце як паступіць з гэтай скаргай. Гэта паўплывае толькі на тое як <strong>ваш</strong> сервер звязваецца з аддалёным уліковым запісам і апрацоўвае яго кантэнт.
actions_no_posts: Да гэтай скаргі не прывязаны допісы да выдалення actions_no_posts: У гэтай скаргі няма зьвязаных паведамленьняў для выдаленьня
add_to_report: Дадаць яшчэ дэталяў да скаргі add_to_report: Дадаць яшчэ дэталяў да скаргі
already_suspended_badges: already_suspended_badges:
local: Ужо прыпынена на гэтым серверы local: Ужо прыпынена на гэтым сэрвэры
remote: Ужо прыпынена на іх серверы remote: Ужо прыпынена на іх сэрвэры
are_you_sure: Вы ўпэўнены? are_you_sure: Вы ўпэўнены?
assign_to_self: Прызначыць мне assign_to_self: Прызначыць мне
assigned: Прызначаны мадэратар assigned: Прызначаны мадэратар
@ -695,7 +668,7 @@ be:
delete: Выдаліць delete: Выдаліць
placeholder: Апішыце, якія дзеянні былі зроблены, або любыя іншыя звязаныя абнаўленні... placeholder: Апішыце, якія дзеянні былі зроблены, або любыя іншыя звязаныя абнаўленні...
title: Нататкі title: Нататкі
notes_description_html: Праглядайце і пакідайце нататкі для іншых мадэратараў і сябе ў будучыні notes_description_html: Праглядвайце і пакідайце нататкі іншым мадэратарам і сабе ў будучыні
processed_msg: 'Скарга #%{id} паспяхова апрацавана' processed_msg: 'Скарга #%{id} паспяхова апрацавана'
quick_actions_description_html: 'Выканайце хуткае дзеянне або пракруціце ўніз, каб убачыць змесціва, на якое пададзена скарга:' quick_actions_description_html: 'Выканайце хуткае дзеянне або пракруціце ўніз, каб убачыць змесціва, на якое пададзена скарга:'
remote_user_placeholder: аддалены карыстальнік з %{instance} remote_user_placeholder: аддалены карыстальнік з %{instance}
@ -765,12 +738,12 @@ be:
delete_user_data_description: Дазваляе карыстальнікам без затрымкі выдаляць даныя іншых карыстальнікаў delete_user_data_description: Дазваляе карыстальнікам без затрымкі выдаляць даныя іншых карыстальнікаў
invite_users: Запрашэнне карыстальнікаў invite_users: Запрашэнне карыстальнікаў
invite_users_description: Дазваляе запрашаць новых людзей на сервер invite_users_description: Дазваляе запрашаць новых людзей на сервер
manage_announcements: Кіраванне абявамі manage_announcements: Кіраванне аб'явамі
manage_announcements_description: Дазваляе кіраваць абявамі на серверы manage_announcements_description: Дазваляе кіраваць аб'явамі на серверы
manage_appeals: Кіраванне апеляцыямі manage_appeals: Кіраванне апеляцыямі
manage_appeals_description: Дазваляе карыстальнікам разглядаць апеляцыі на дзеянні мадэратара manage_appeals_description: Дазваляе карыстальнікам разглядаць апеляцыі на дзеянні мадэратара
manage_blocks: Кіраванне блакіроўкамі manage_blocks: Кіраванне блакіроўкамі
manage_blocks_description: Дазваляе блакіраваць пэўных пастаўшчыкоў паслуг электроннай пошты і IP адрасы manage_blocks_description: Дазваляе блакаваць пэўныя паштовыя правайдэры і IP адрасы
manage_custom_emojis: Кіраванне адвольнымі эмодзі manage_custom_emojis: Кіраванне адвольнымі эмодзі
manage_custom_emojis_description: Дазваляе кіраваць адвольнымі эмодзі на серверы manage_custom_emojis_description: Дазваляе кіраваць адвольнымі эмодзі на серверы
manage_federation: Кіраваць федэрацыяй manage_federation: Кіраваць федэрацыяй
@ -802,14 +775,11 @@ be:
title: Ролі title: Ролі
rules: rules:
add_new: Дадаць правіла add_new: Дадаць правіла
add_translation: Дадаць пераклад
delete: Выдаліць delete: Выдаліць
description_html: Большасць сцвярджаюць, што прачыталі ўмовы абслугоўвання і згаджаюцца з імі, але звычайна людзі не чытаюць іх да канца, пакуль не ўзнікне праблема. <strong>Таму зрабіце правілы вашага сервера простымі з першага погляду, прадставіўшы іх у выглядзе маркіраванага спісу.</strong> Старайцеся рабіць правілы кароткімі і простымі, але не разбіваць іх на шмат асобных пунктаў. description_html: Большасць сцвярджаюць, што прачыталі ўмовы абслугоўвання і згаджаюцца з імі, але звычайна людзі не чытаюць іх да канца, пакуль не ўзнікне праблема. <strong>Таму зрабіце правілы вашага сервера простымі з першага погляду, прадставіўшы іх у выглядзе маркіраванага спісу.</strong> Старайцеся рабіць правілы кароткімі і простымі, але не разбіваць іх на шмат асобных пунктаў.
edit: Рэдагаваць правіла edit: Рэдагаваць правіла
empty: Правілы сервера яшчэ не вызначаны. empty: Правілы сервера яшчэ не вызначаны.
title: Правілы сервера title: Правілы сервера
translation: Пераклад
translations: Пераклады
settings: settings:
about: about:
manage_rules: Кіраваць правіламі сервера manage_rules: Кіраваць правіламі сервера
@ -823,7 +793,7 @@ be:
preamble: Брэндынг вашага сервера адрознівае яго ад іншых сервераў у сетцы. Гэтая інфармацыя можа адлюстроўвацца ў розных асяроддзях, напрыклад, у вэб-інтэрфейсе Mastodon, уласных праграмах, у папярэднім праглядзе спасылак на іншых вэб-сайтах і ў праграмах абмену паведамленнямі і гэтак далей. Па гэтай прычыне лепш трымаць гэтую інфармацыю яснай, кароткай і сціслай. preamble: Брэндынг вашага сервера адрознівае яго ад іншых сервераў у сетцы. Гэтая інфармацыя можа адлюстроўвацца ў розных асяроддзях, напрыклад, у вэб-інтэрфейсе Mastodon, уласных праграмах, у папярэднім праглядзе спасылак на іншых вэб-сайтах і ў праграмах абмену паведамленнямі і гэтак далей. Па гэтай прычыне лепш трымаць гэтую інфармацыю яснай, кароткай і сціслай.
title: Брэндынг title: Брэндынг
captcha_enabled: captcha_enabled:
desc_html: Гэта функцыянальнасць залежыць ад знешніх скрыптоў hCaptcha, што можа быць праблемай бяспекі і прыватнасці. Акрамя таго, <strong>гэта можыць зменшыць даступнасць працэсу рэгістрацыі для некаторых людзей (асабліва інвалідаў)</strong>. Па гэтых прычынах, разгледзьце альтэрнатыўныя меры, такія як рэгістрацыя на аснове зацвярджэння або запрашэння. desc_html: Гэта функцыянальнасць залежыць ад знешніх скрыптоў hCaptcha, што можа быць праблемай бяспекі і прыватнасці. Акрамя таго, <strong>гэта можа зрабіць працэс рэгістрацыі значна менш даступным для некаторых людзей, асабліва інвалідаў</strong>. Па гэтых прычынах, калі ласка, разгледзьце альтэрнатыўныя меры, такія як рэгістрацыя на аснове зацвярджэння або запрашэння.
title: Патрабаваць ад новых карыстальнікаў рашэння CAPTCHA для пацверджання іх уліковага запісу title: Патрабаваць ад новых карыстальнікаў рашэння CAPTCHA для пацверджання іх уліковага запісу
content_retention: content_retention:
danger_zone: Небяспечная зона danger_zone: Небяспечная зона
@ -835,12 +805,11 @@ be:
discovery: discovery:
follow_recommendations: Выконвайце рэкамендацыі follow_recommendations: Выконвайце рэкамендацыі
preamble: Прадстаўленне цікавага кантэнту дапамагае прыцягнуць новых карыстальнікаў, якія могуць не ведаць нікога на Mastodon. Кантралюйце працу розных функцый выяўлення на вашым серверы. preamble: Прадстаўленне цікавага кантэнту дапамагае прыцягнуць новых карыстальнікаў, якія могуць не ведаць нікога на Mastodon. Кантралюйце працу розных функцый выяўлення на вашым серверы.
privacy: Прыватнасць
profile_directory: Дырэкторыя профіляў profile_directory: Дырэкторыя профіляў
public_timelines: Публічная паслядоўнасць публікацый public_timelines: Публічная паслядоўнасць публікацый
publish_statistics: Апублікаваць статыстыку publish_statistics: Апублікаваць статыстыку
title: Выяўленне title: Выяўленне
trends: Трэнды trends: Актуальныя
domain_blocks: domain_blocks:
all: Для ўсіх all: Для ўсіх
disabled: Нікому disabled: Нікому
@ -885,7 +854,7 @@ be:
add_to_report: 'Дадаць да скаргі #%{id}' add_to_report: 'Дадаць да скаргі #%{id}'
remove_from_report: Выдаліць са справаздачы remove_from_report: Выдаліць са справаздачы
report: Справаздача report: Справаздача
contents: Змест contents: Зьмест
deleted: Выдалены deleted: Выдалены
favourites: Упадабаныя favourites: Упадабаныя
history: Гісторыя версій history: Гісторыя версій
@ -894,7 +863,7 @@ be:
media: media:
title: Медыя title: Медыя
metadata: Метаданыя metadata: Метаданыя
no_history: Гэты допіс не рэдагаваўся no_history: Гэты пост не рэдагаваўся
no_status_selected: Ніводная публікацыя не была зменена, бо ніводная не была выбрана no_status_selected: Ніводная публікацыя не была зменена, бо ніводная не была выбрана
open: Адкрыць допіс open: Адкрыць допіс
original_status: Зыходны допіс original_status: Зыходны допіс
@ -903,7 +872,7 @@ be:
status_changed: Допіс зменены status_changed: Допіс зменены
status_title: Допіс карыстальніка @%{name} status_title: Допіс карыстальніка @%{name}
title: Допісы карыстальніка - @%{name} title: Допісы карыстальніка - @%{name}
trending: Трэндавае trending: Папулярныя
view_publicly: Глядзець публічна view_publicly: Глядзець публічна
visibility: Бачнасць visibility: Бачнасць
with_media: З медыя with_media: З медыя
@ -921,13 +890,13 @@ be:
appeal_rejected: Абскарджанне адхілена appeal_rejected: Абскарджанне адхілена
system_checks: system_checks:
database_schema_check: database_schema_check:
message_html: Ёсць незавершаныя міграцыі базы даных. Запусціце іх, каб пераканацца, што праграма паводзіць сябе належным чынам message_html: Ёсць незавершаныя міграцыі базы дадзеных. Калі ласка, запусціце іх, каб пераканацца, што дадатак паводзіць сябе належным чынам
elasticsearch_health_red: elasticsearch_health_red:
message_html: Кластар Elasticsearch нездаровы (чырвоны статус), функцыі пошуку недаступныя message_html: Кластар Elasticsearch нездаровы (чырвоны статус), функцыі пошуку недаступныя
elasticsearch_health_yellow: elasticsearch_health_yellow:
message_html: Кластар Elasticsearch нездаровы (жоўты статус), магчыма, неабходна высветліць прычыну message_html: Кластар Elasticsearch нездаровы (жоўты статус), магчыма, неабходна высветліць прычыну
elasticsearch_index_mismatch: elasticsearch_index_mismatch:
message_html: Супастаўленне індэксаў Elasticsearch састарэла. Выканайце каманду <code>tootctl search deploy --only=%{value}</code> message_html: Супастаўленне індэксаў Elasticsearch састарэла. Калі ласка, выканайце каманду <code>tootctl search deploy --only=%{value}</code>
elasticsearch_preset: elasticsearch_preset:
action: Падрабязней у дакументацыі action: Падрабязней у дакументацыі
message_html: Ваш кластар Elasticsearch мае больш за адзін вузел, але Mastodon не наладжаны на іх выкарыстанне. message_html: Ваш кластар Elasticsearch мае больш за адзін вузел, але Mastodon не наладжаны на іх выкарыстанне.
@ -937,7 +906,7 @@ be:
elasticsearch_reset_chewy: elasticsearch_reset_chewy:
message_html: Ваш сістэмны індэкс Elasticsearch састарэлы з-за змены налад. Для яго абнаўлення выканайце каманду <code>tootctl search deploy --reset-chewy</code>. message_html: Ваш сістэмны індэкс Elasticsearch састарэлы з-за змены налад. Для яго абнаўлення выканайце каманду <code>tootctl search deploy --reset-chewy</code>.
elasticsearch_running_check: elasticsearch_running_check:
message_html: Немагчыма падключыцца да Elasticsearch. Праверце, што ён запушчаны, або адключыце пошук па ўсім тэксце message_html: Немагчыма падключыцца да Elasticsearch. Калі ласка, праверце, што ён запушчаны, або адключыце паўнатэкставы пошук
elasticsearch_version_check: elasticsearch_version_check:
message_html: 'Несумяшчальная версія Elasticsearch: %{value}' message_html: 'Несумяшчальная версія Elasticsearch: %{value}'
version_comparison: Elasticsearch %{running_version} выяўлены, але патрабуецца %{required_version} version_comparison: Elasticsearch %{running_version} выяўлены, але патрабуецца %{required_version}
@ -947,11 +916,11 @@ be:
sidekiq_process_check: sidekiq_process_check:
message_html: Не працуе працэс Sidekiq для %{value} чаргі. Калі ласка праверце вашу канфігурацыю Sidekiq message_html: Не працуе працэс Sidekiq для %{value} чаргі. Калі ласка праверце вашу канфігурацыю Sidekiq
software_version_check: software_version_check:
action: Праверыць наяўнасць абнаўленняў action: Праверыць наяўнасьць абнаўленьняў
message_html: Даступна абнаўленне Mastodon. message_html: Даступна абнаўленьне Mastodon.
software_version_critical_check: software_version_critical_check:
action: Прагледзець даступныя абнаўленні action: Прагледзець даступныя абнаўленні
message_html: Даступна крытычнае абнаўленне Mastodon, абнавіцеся як мага хутчэй. message_html: Даступна крытычнае абнаўленне Mastodon, калі ласка, зрабіце абнаўленне як мага хутчэй.
software_version_patch_check: software_version_patch_check:
action: Прагледзець даступныя абнаўленні action: Прагледзець даступныя абнаўленні
message_html: Даступна абнаўленне Mastodon з выпраўленнем памылак. message_html: Даступна абнаўленне Mastodon з выпраўленнем памылак.
@ -963,13 +932,13 @@ be:
message_html: "<strong>Ваша сховішча не наладжана. Прыватнасць карыстальнікаў пад пагрозай.</strong>" message_html: "<strong>Ваша сховішча не наладжана. Прыватнасць карыстальнікаў пад пагрозай.</strong>"
tags: tags:
moderation: moderation:
not_trendable: Не можа трапіць у трэнды not_trendable: Не ў трэндзе
not_usable: Непрыгодныя not_usable: Непрыгодныя
pending_review: Чакае праверкі pending_review: Чакае праверкі
review_requested: Патрабуюць прагледжвання review_requested: Патрабуюць прагледжвання
reviewed: Прагледжаныя reviewed: Прагледжаныя
title: Стан title: Стан
trendable: Можа трапіць у трэнды trendable: У трэндзе
unreviewed: Непрагледжаныя unreviewed: Непрагледжаныя
usable: Прыгодныя usable: Прыгодныя
name: Назва name: Назва
@ -982,26 +951,18 @@ be:
title: Хэштэгі title: Хэштэгі
updated_msg: Налады хэштэгаў паспяхова змененыя updated_msg: Налады хэштэгаў паспяхова змененыя
terms_of_service: terms_of_service:
back: Вернуцца да ўмоў выкарыстання back: Вернуцца да ўмоваў абслугоўваньня
changelog: Што змянілася changelog: Што зьмянілася
create: Выкарыстоўвайце свой тэкст create: Выкарыстоўвайце свой уласны
current: Бягучыя current: Цякучы
draft: Чарнавік draft: Чарнавік
generate: Выкарыстаць шаблон generate: Выкарыстаць шаблон
generates: generates:
action: Згенерыраваць action: Зґенераваць
history: Гісторыя
live: Дзейнічае
notify_users: Апавясціць карыстальнікаў
publish: Апублікаваць
published_on_html: Апублікавана %{date}
save_draft: Захаваць чарнавік
title: Умовы выкарыстання
title: Адміністрацыя title: Адміністрацыя
trends: trends:
allow: Дазволіць allow: Дазволіць
approved: Пацверджаны approved: Пацверджаны
confirm_allow: Вы ўпэўнены, што хочаце дазволіць выбраныя тэгі?
disallow: Забараніць disallow: Забараніць
links: links:
allow: Дазволіць спасылка allow: Дазволіць спасылка
@ -1017,15 +978,15 @@ be:
many: Абагулілі %{count} чалавек за апошні тыдзень many: Абагулілі %{count} чалавек за апошні тыдзень
one: Абагуліў адзін чалавек за апошні тыдзень one: Абагуліў адзін чалавек за апошні тыдзень
other: Абагулілі %{count} чалавек за апошні тыдзень other: Абагулілі %{count} чалавек за апошні тыдзень
title: Трэндавыя спасылкі title: Актуальныя спасылкі
usage_comparison: Выкарыстоўвалася %{today} разоў сёння, у параўнанні з %{yesterday} учора usage_comparison: Выкарыстоўвалася %{today} разоў сёння, у параўнанні з %{yesterday} учора
not_allowed_to_trend: Забаронена выходзіць у трэнды not_allowed_to_trend: Забаронена выходзіць у актуальныя
only_allowed: Толькі дазволенае only_allowed: Толькі дазволенае
pending_review: Чакае праверкі pending_review: Чакае праверкі
preview_card_providers: preview_card_providers:
allowed: Спасылкі ад гэтага выдаўца не будуць у трэндзе allowed: Спасылкі ад гэтага выдаўца не будуць у трэндзе
description_html: Спасылкі з гэтых даменаў часта абагульняюцца на вашым серверы. Спасылкі не трапяць у публічныя трэнды, калі дамен спасылкі не ўхвалены. Вашае ўхваленне (ці адхіленне) распаўсюдзіцца на субдамены. description_html: Спасылкі з гэтых даменаў часта абагульняюцца на вашым серверы. Спасылкі не трапяць у публічныя трэнды, калі дамен спасылкі не ўхвалены. Вашае ўхваленне (ці адхіленне) распаўсюдзіцца на субдамены.
rejected: Спасылкі ад гэтага выдаўца не будуць у трэндзе rejected: Спасылкі ад гэтага выдаўца не будуць у трэнде
title: Выдаўцы title: Выдаўцы
rejected: Адхілена rejected: Адхілена
statuses: statuses:
@ -1041,7 +1002,7 @@ be:
many: Пашыраны або ўпадабаны %{friendly_count} разоў many: Пашыраны або ўпадабаны %{friendly_count} разоў
one: Пашыраны або ўпадабаны %{friendly_count} раз one: Пашыраны або ўпадабаны %{friendly_count} раз
other: Пашыраны або ўпадабаны %{friendly_count} разоў other: Пашыраны або ўпадабаны %{friendly_count} разоў
title: Трэндавыя допісы title: Актуальныя допісы
tags: tags:
current_score: Бягучы рэзультат %{score} current_score: Бягучы рэзультат %{score}
dashboard: dashboard:
@ -1054,11 +1015,11 @@ be:
listable: Можа быць прапанавана listable: Можа быць прапанавана
no_tag_selected: Ніводны тэг не быў зменены, бо ніводны не быў выбраны no_tag_selected: Ніводны тэг не быў зменены, бо ніводны не быў выбраны
not_listable: Не будзе прапанавана not_listable: Не будзе прапанавана
not_trendable: Не з’явіцца сярод трэндаў not_trendable: Не з'явіцца ў трэндах
not_usable: Немагчыма выкарыстаць not_usable: Немагчыма выкарыстаць
peaked_on_and_decaying: На піку %{date}, зараз спадае peaked_on_and_decaying: На піку %{date}, зараз спадае
title: Актуальныя хэштэгі title: Актуальныя хэштэгі
trendable: Можа зявіцца сярод трэндаў trendable: Можа з'явіцца сярод трэндаў
trending_rank: 'Папулярнае #%{rank}' trending_rank: 'Папулярнае #%{rank}'
usable: Магчыма выкарыстаць usable: Магчыма выкарыстаць
usage_comparison: Выкарыстоўвалася %{today} разоў сёння, у параўнанні з %{yesterday} учора usage_comparison: Выкарыстоўвалася %{today} разоў сёння, у параўнанні з %{yesterday} учора
@ -1068,7 +1029,7 @@ be:
one: Выкарыстаў адзін чалавек за апошні тыдзень one: Выкарыстаў адзін чалавек за апошні тыдзень
other: Выкарысталі %{count} чалавек за апошні тыдзень other: Выкарысталі %{count} чалавек за апошні тыдзень
title: Рэкамендацыі і трэнды title: Рэкамендацыі і трэнды
trending: Трэндавае trending: Папулярныя
warning_presets: warning_presets:
add_new: Дадаць новы add_new: Дадаць новы
delete: Выдаліць delete: Выдаліць
@ -1109,7 +1070,7 @@ be:
none: папярэджанне none: папярэджанне
sensitive: пазначыць уліковы запіс як далікатны sensitive: пазначыць уліковы запіс як далікатны
silence: абмежаваць уліковы запіс silence: абмежаваць уліковы запіс
suspend: каб прыпыніць гэты ўліковы запіс suspend: выключыць уліковы запіс
body: "%{target} абскарджвае рашэнне мадэратара %{action_taken_by} ад %{date}, якая была %{type}. Яны напісалі:" body: "%{target} абскарджвае рашэнне мадэратара %{action_taken_by} ад %{date}, якая была %{type}. Яны напісалі:"
next_steps: Вы можаце ўхваліць апеляцыю каб адмяніць рашэнне мадэратараў ці ігнараваць яе. next_steps: Вы можаце ўхваліць апеляцыю каб адмяніць рашэнне мадэратараў ці ігнараваць яе.
subject: "%{username} абскарджвае рашэнне мадэратараў на %{instance}" subject: "%{username} абскарджвае рашэнне мадэратараў на %{instance}"
@ -1129,12 +1090,12 @@ be:
new_trends: new_trends:
body: 'Гэтыя элементы трэба праверыць, перш чым публікаваць:' body: 'Гэтыя элементы трэба праверыць, перш чым публікаваць:'
new_trending_links: new_trending_links:
title: Трэндавыя спасылкі title: Папулярныя спасылкі
new_trending_statuses: new_trending_statuses:
title: Трэндавыя допісы title: Папулярныя допісы
new_trending_tags: new_trending_tags:
title: Трэндавыя хэштэгі title: Папулярныя хэштэгі
subject: Новыя трэнды да прагляду %{instance} subject: Новае ў папулярным для разгляду %{instance}
aliases: aliases:
add_new: Стварыць псеўданім add_new: Стварыць псеўданім
created_msg: Створаны новы псеўданім. Цяпер вы можаце пачаць пераход са старога ўліковага запісу. created_msg: Створаны новы псеўданім. Цяпер вы можаце пачаць пераход са старога ўліковага запісу.
@ -1186,7 +1147,7 @@ be:
welcome_title: Вітаем, %{name}! welcome_title: Вітаем, %{name}!
wrong_email_hint: Калі гэты адрас электроннай пошты памылковы, вы можаце змяніць яго ў наладах уліковага запісу. wrong_email_hint: Калі гэты адрас электроннай пошты памылковы, вы можаце змяніць яго ў наладах уліковага запісу.
delete_account: Выдаліць уліковы запіс delete_account: Выдаліць уліковы запіс
delete_account_html: Калі вы жадаеце выдаліць свой уліковы запіс, вы можаце <a href="%{path}">працягнуць тут</a>. Ад вас спатрэбіцца пацвярджэнне. delete_account_html: Калі вы жадаеце выдаліць ваш уліковы запіс, можаце <a href="%{path}">працягнуць тут</a>. Ад вас будзе запатрабавана пацвярджэнне.
description: description:
prefix_invited_by_user: "@%{name} запрашае вас далучыцца да гэтага сервера ў Mastodon!" prefix_invited_by_user: "@%{name} запрашае вас далучыцца да гэтага сервера ў Mastodon!"
prefix_sign_up: Зарэгістравацца ў Mastodon сёння! prefix_sign_up: Зарэгістравацца ў Mastodon сёння!
@ -1205,7 +1166,7 @@ be:
or_log_in_with: Або ўвайсці з дапамогай or_log_in_with: Або ўвайсці з дапамогай
progress: progress:
confirm: Пацвердзіць email confirm: Пацвердзіць email
details: Вашы даныя details: Вашы дадзеныя
review: Наш водгук review: Наш водгук
rules: Прыняць правілы rules: Прыняць правілы
providers: providers:
@ -1246,10 +1207,6 @@ be:
view_strikes: Праглядзець мінулыя папярэджанні для вашага ўліковага запісу view_strikes: Праглядзець мінулыя папярэджанні для вашага ўліковага запісу
too_fast: Форма адпраўлена занадта хутка, паспрабуйце яшчэ раз. too_fast: Форма адпраўлена занадта хутка, паспрабуйце яшчэ раз.
use_security_key: Выкарыстаеце ключ бяспекі use_security_key: Выкарыстаеце ключ бяспекі
author_attribution:
example_title: Прыклад тэксту
s_blog: Блог %{name}
title: Пазначэнне аўтарства
challenge: challenge:
confirm: Працягнуць confirm: Працягнуць
hint_html: "<strong>Парада:</strong> Мы не будзем запытваць ваш пароль зноўку на працягу наступнай гадзіны." hint_html: "<strong>Парада:</strong> Мы не будзем запытваць ваш пароль зноўку на працягу наступнай гадзіны."
@ -1319,7 +1276,7 @@ be:
none: Папярэджанне none: Папярэджанне
sensitive: Пазначэнне ўліковага запісу як далікатнага sensitive: Пазначэнне ўліковага запісу як далікатнага
silence: Абмежаванне ўліковага запісу silence: Абмежаванне ўліковага запісу
suspend: Прыпыненне ўліковага запісу suspend: Выключэнне ўліковага запісу
your_appeal_approved: Ваша абскарджанне было ўхвалена your_appeal_approved: Ваша абскарджанне было ўхвалена
your_appeal_pending: Вы адправілі апеляцыю your_appeal_pending: Вы адправілі апеляцыю
your_appeal_rejected: Ваша абскарджанне было адхілена your_appeal_rejected: Ваша абскарджанне было адхілена
@ -1327,10 +1284,6 @@ be:
basic_information: Асноўная інфармацыя basic_information: Асноўная інфармацыя
hint_html: "<strong>Наладзьце тое, што людзі будуць бачыць у вашым профілі і побач з вашымі паведамленнямі.</strong> Іншыя людзі з большай верагоднасцю будуць сачыць і ўзаемадзейнічаць з вамі, калі ў вас ёсць запоўнены профіль і фота профілю." hint_html: "<strong>Наладзьце тое, што людзі будуць бачыць у вашым профілі і побач з вашымі паведамленнямі.</strong> Іншыя людзі з большай верагоднасцю будуць сачыць і ўзаемадзейнічаць з вамі, калі ў вас ёсць запоўнены профіль і фота профілю."
other: Іншае other: Іншае
emoji_styles:
auto: Аўтаматычны
native: Мясцовы
twemoji: Twemoji
errors: errors:
'400': Запыт, які вы адправілі, памылковы або няправільны. '400': Запыт, які вы адправілі, памылковы або няправільны.
'403': У вас няма дазволу на прагляд гэтай старонкі. '403': У вас няма дазволу на прагляд гэтай старонкі.
@ -1445,10 +1398,10 @@ be:
other: Выберыце %{count} элементаў, якія адпавядаюць вашаму пошуку. other: Выберыце %{count} элементаў, якія адпавядаюць вашаму пошуку.
today: сёння today: сёння
validation_errors: validation_errors:
few: Штосьці тут пакуль не сыходзіцца! Праглядзіце %{count} памылкі ніжэй few: Штосьці пакуль не зусім правільна! Калі ласка, праглядзіце %{count} памылкі ніжэй
many: Штосьці тут пакуль не сыходзіцца! Праглядзіце %{count} памылак ніжэй many: Штосьці пакуль не зусім правільна! Калі ласка, праглядзіце %{count} памылак ніжэй
one: Штосьці тут пакуль не сыходзіцца! Праглядзіце памылку ніжэй one: Штосьці пакуль не зусім правільна! Калі ласка, праглядзіце памылку ніжэй
other: Штосьці тут пакуль не сыходзіцца! Праглядзіце %{count} памылак ніжэй other: Штосьці пакуль не зусім правільна! Калі ласка, праглядзіце %{count} памылак ніжэй
imports: imports:
errors: errors:
empty: Пусты CSV файл empty: Пусты CSV файл
@ -1460,7 +1413,7 @@ be:
imported: Імпартавана imported: Імпартавана
mismatched_types_warning: Здаецца, вы выбралі няправільны тып для гэтага імпарту, праверце яшчэ раз. mismatched_types_warning: Здаецца, вы выбралі няправільны тып для гэтага імпарту, праверце яшчэ раз.
modes: modes:
merge: Абяднаць merge: Аб'яднаць
merge_long: Захаваць існуючыя запісы і дадаць новыя merge_long: Захаваць існуючыя запісы і дадаць новыя
overwrite: Перазапісаць overwrite: Перазапісаць
overwrite_long: Замяніць бягучыя запісы на новыя overwrite_long: Замяніць бягучыя запісы на новыя
@ -1536,7 +1489,7 @@ be:
unsubscribe: unsubscribe:
action: Так, адпісацца action: Так, адпісацца
complete: Адпісаны complete: Адпісаны
confirmation_html: Вы ўпэўнены, што жадаеце адмовіцца ад атрымання %{type} з Mastodon на дамене %{domain} на сваю электронную пошту %{email}? Вы заўсёды можаце паўторна падпісацца ў <a href="%{settings_path}">наладах апавяшчэнняў па электроннай пошце</a>. confirmation_html: Вы ўпэўнены, што жадаеце адмовіцца ад %{type} з Mastodon на дамене %{domain} на вашу электронную пошту %{email}? Вы заўсёды можаце паўторна падпісацца у <a href="%{settings_path}">наладах апавяшчэнняў па электроннай пошце</a>.
emails: emails:
notification_emails: notification_emails:
favourite: апавяшчэнні на пошту пра упадабанае favourite: апавяшчэнні на пошту пра упадабанае
@ -1576,7 +1529,7 @@ be:
set_redirect: Задаць перанакіраванне set_redirect: Задаць перанакіраванне
warning: warning:
backreference_required: Спачатку трэба наладзіць зваротнае спасыланне новага ўліковага запісу на бягучы backreference_required: Спачатку трэба наладзіць зваротнае спасыланне новага ўліковага запісу на бягучы
before: 'Перш чым працягнуць, уважліва прачытайце гэтыя заўвагі:' before: 'Перш чым працягнуць, калі ласка, уважліва прачытайце гэтыя заўвагі:'
cooldown: Пасля «пераезду» будзе перыяд чакання, на працягу якога вы не зможаце зноў «пераехаць» cooldown: Пасля «пераезду» будзе перыяд чакання, на працягу якога вы не зможаце зноў «пераехаць»
disabled_account: Пасля гэтага ваш бягучы ўліковы запіс не будзе цалкам даступны. Аднак у вас будзе доступ да экспарту даных, а таксама да паўторнай актывацыі. disabled_account: Пасля гэтага ваш бягучы ўліковы запіс не будзе цалкам даступны. Аднак у вас будзе доступ да экспарту даных, а таксама да паўторнай актывацыі.
followers: Гэтае дзеянне будзе «пераносіць» усіх падпісчыкаў з бягучага ўліковага запісу на новы followers: Гэтае дзеянне будзе «пераносіць» усіх падпісчыкаў з бягучага ўліковага запісу на новы
@ -1689,9 +1642,9 @@ be:
title: Вы пакідаеце %{instance}. title: Вы пакідаеце %{instance}.
relationships: relationships:
activity: Актыўнасць ул. запісу activity: Актыўнасць ул. запісу
confirm_follow_selected_followers: Вы ўпэўнены, што хочаце падпісацца на выбраных падпісчыкаў? confirm_follow_selected_followers: Вы ўпэўнены, што жадаеце падпісацца на выбраных падпісчыкаў?
confirm_remove_selected_followers: Вы ўпэўнены, што хочаце выдаліць выбраных падпісчыкаў? confirm_remove_selected_followers: Вы ўпэўнены, што жадаеце выдаліць выбраных падпісчыкаў?
confirm_remove_selected_follows: Вы ўпэўнены, што хочаце выдаліць выбраныя падпіскі? confirm_remove_selected_follows: Вы ўпэўнены, што жадаеце выдаліць выбраныя падпіскі?
dormant: Занядбаны dormant: Занядбаны
follow_failure: Вы не можаце падпісацца на некаторыя акаўнты. follow_failure: Вы не можаце падпісацца на некаторыя акаўнты.
follow_selected_followers: Падпісацца на выбраных падпісчыкаў follow_selected_followers: Падпісацца на выбраных падпісчыкаў
@ -1721,7 +1674,6 @@ be:
scheduled_statuses: scheduled_statuses:
over_daily_limit: Вы перавысілі ліміт ў %{limit} запланаваных на сёння допісаў over_daily_limit: Вы перавысілі ліміт ў %{limit} запланаваных на сёння допісаў
over_total_limit: Вы перавысілі ліміт ў %{limit} запланаваных допісаў over_total_limit: Вы перавысілі ліміт ў %{limit} запланаваных допісаў
too_soon: дата публікацыі мусіць быць у будучыні
self_destruct: self_destruct:
lead_html: На жаль, дамен <strong>%{domain}</strong> зачыняецца назаўсёды. Калі ў вас быў уліковы запіс, вы не зможаце працягваць выкарыстоўваць яго, але вы ўсё яшчэ можаце запытаць рэзервовае капіраванне вашых даных. lead_html: На жаль, дамен <strong>%{domain}</strong> зачыняецца назаўсёды. Калі ў вас быў уліковы запіс, вы не зможаце працягваць выкарыстоўваць яго, але вы ўсё яшчэ можаце запытаць рэзервовае капіраванне вашых даных.
title: Гэты сервер зачыняецца title: Гэты сервер зачыняецца
@ -1837,14 +1789,10 @@ be:
in_reply_not_found: Здаецца, допіс, на які вы спрабуеце адказаць, не існуе. in_reply_not_found: Здаецца, допіс, на які вы спрабуеце адказаць, не існуе.
over_character_limit: перавышаная колькасць сімвалаў у %{max} over_character_limit: перавышаная колькасць сімвалаў у %{max}
pin_errors: pin_errors:
direct: Допісы, бачныя толькі згаданым карыстальнікам, нельга замацаваць direct: Допісы, бачныя толькі згаданым карыстальнікам, не могуць быць замацаваныя
limit: Вы ўжо замацавалі максімальную колькасць допісаў limit: Вы ўжо замацавалі максімальную колькасць допісаў
ownership: Немагчыма замацаваць чужы допіс ownership: Немагчыма замацаваць чужы допіс
reblog: Немагчыма замацаваць пашырэнне reblog: Немагчыма замацаваць пашырэнне
quote_policies:
followers: Падпісчыкі і згаданыя карыстальнікі
nobody: Толькі згаданыя карыстальнікі
public: Усе
title: '%{name}: "%{quote}"' title: '%{name}: "%{quote}"'
visibilities: visibilities:
direct: Асабіста direct: Асабіста
@ -1897,7 +1845,7 @@ be:
tags: tags:
does_not_match_previous_name: не супадае з папярэднім імям does_not_match_previous_name: не супадае з папярэднім імям
terms_of_service: terms_of_service:
title: Умовы выкарыстання title: Умовы абслугоўваньня
themes: themes:
contrast: Mastodon (высокі кантраст) contrast: Mastodon (высокі кантраст)
default: Mastodon (цёмная) default: Mastodon (цёмная)
@ -1926,7 +1874,7 @@ be:
otp: Праграма аўтэнтыфікацыі otp: Праграма аўтэнтыфікацыі
recovery_codes: Абнавіць коды аднаўлення recovery_codes: Абнавіць коды аднаўлення
recovery_codes_regenerated: Новыя коды аднаўлення паспяхова створаныя recovery_codes_regenerated: Новыя коды аднаўлення паспяхова створаныя
recovery_instructions_html: Калі раптам вы страціце доступ да свайго тэлефона, вы можаце скарыстаць адзін з кодаў аднаўлення ніжэй каб аднавіць доступ да свайго ўліковага запісу. <strong>Захоўвайце іх у бяспечным месцы</strong>. Напрыклад, вы можаце раздрукаваць іх і захоўваць разам з іншымі важнымі дакументамі. recovery_instructions_html: Калі раптам вы страціце доступ да вашага тэлефона, вы можаце скарыстацца адным з кодаў аднаўлення ніжэй каб аднавіць доступ да вашага ўліковага запісу. <strong>Захоўвайце іх у бяспечным месцы</strong>. Напрыклад, вы можаце раздрукаваць іх і захоўваць разам з іншымі важнымі дакументамі.
webauthn: Ключы бяспекі webauthn: Ключы бяспекі
user_mailer: user_mailer:
appeal_approved: appeal_approved:
@ -1947,10 +1895,10 @@ be:
title: Ваш архіў можна спампаваць title: Ваш архіў можна спампаваць
failed_2fa: failed_2fa:
details: 'Вось падрабязнасці ўваходу:' details: 'Вось падрабязнасці ўваходу:'
explanation: Хтосьці спрабаваў увайсці ў ваш уліковы запіс, але ўвёў няправільны часовы пароль. explanation: Хтосьці спрабаваў увайсці ў ваш уліковы запіс, але ўвёў няправільны другі фактар аўтэнтыфікацыі.
further_actions_html: Калі гэта не вы, мы рэкамендуем неадкладна %{action}, бо ён можа быць скампраметаваны. further_actions_html: Калі гэта не вы, мы рэкамендуем неадкладна %{action}, бо ён можа быць скампраметаваны.
subject: Збой двухфактарнай аўтэнтыфікацыі subject: Збой аўтэнтыфікацыі па другім фактары
title: Двухфактарная аўтэнтыфікацыя не ўдалася title: Няўдалая аўтэнтыфікацыя па другім фактары
suspicious_sign_in: suspicious_sign_in:
change_password: змяніць свой пароль change_password: змяніць свой пароль
details: 'Вось падрабязнасці ўваходу:' details: 'Вось падрабязнасці ўваходу:'
@ -1958,9 +1906,6 @@ be:
further_actions_html: Калі гэта былі не вы, раім вам неадкладна %{action}, а таксама ўключыць двухфактарную аўтэнтыфікацыю, каб захаваць бяспеку вашага ўліковага запісу. further_actions_html: Калі гэта былі не вы, раім вам неадкладна %{action}, а таксама ўключыць двухфактарную аўтэнтыфікацыю, каб захаваць бяспеку вашага ўліковага запісу.
subject: У вас уліковы запіс зайшлі з новага IP-адрасу subject: У вас уліковы запіс зайшлі з новага IP-адрасу
title: Новы ўваход title: Новы ўваход
terms_of_service_changed:
sign_off: Каманда %{domain}
title: Важнае абнаўленне
warning: warning:
appeal: Падаць апеляцыю appeal: Падаць апеляцыю
appeal_description: "Калі вы лічыце гэта памылкай, вы можаце падаць апеляцыю \nсупрацоўнікам %{instance}." appeal_description: "Калі вы лічыце гэта памылкай, вы можаце падаць апеляцыю \nсупрацоўнікам %{instance}."
@ -1991,7 +1936,7 @@ be:
none: Папярэджанне none: Папярэджанне
sensitive: Уліковыя запісы, пазначаныя як далікатныя sensitive: Уліковыя запісы, пазначаныя як далікатныя
silence: Уліковы запіс абмежаваны silence: Уліковы запіс абмежаваны
suspend: Уліковы запіс прыпынены suspend: Уліковы запіс выключаны
welcome: welcome:
apps_android_action: Спампаваць з Google Play apps_android_action: Спампаваць з Google Play
apps_ios_action: Спампваваць з App Store apps_ios_action: Спампваваць з App Store
@ -2023,9 +1968,9 @@ be:
many: "%{people} чалавек за апошнія 2 дні" many: "%{people} чалавек за апошнія 2 дні"
one: "%{people} чалавек за апошнія 2 дні" one: "%{people} чалавек за апошнія 2 дні"
other: "%{people} чалавека за апошнія 2 дні" other: "%{people} чалавека за апошнія 2 дні"
hashtags_subtitle: Даведайцеся што было ў трэндзе за апошнія 2 дні hashtags_subtitle: Даведайцеся што было папулярна ў апошнія 2 дні
hashtags_title: Папулярныя хэштэгі hashtags_title: Папулярныя хэштэгі
hashtags_view_more: Прагледзець іншыя трэндавыя хэштэгі hashtags_view_more: Прагледзець іншыя папулярныя хэштэгі
post_action: Стварыць post_action: Стварыць
post_step: Скажыце ўсім прывітанне з дапамогай тэксту, фатаграфій, відэа і апытанняў. post_step: Скажыце ўсім прывітанне з дапамогай тэксту, фатаграфій, відэа і апытанняў.
post_title: Стварыце свой першы допіс post_title: Стварыце свой першы допіс
@ -2038,7 +1983,7 @@ be:
follow_limit_reached: Вы не можаце падпісацца на большую колькасць людзей чым %{limit} follow_limit_reached: Вы не можаце падпісацца на большую колькасць людзей чым %{limit}
go_to_sso_account_settings: Перайдзіце ў налады ідэнтыфікацыі вашага ўліковага запісу go_to_sso_account_settings: Перайдзіце ў налады ідэнтыфікацыі вашага ўліковага запісу
invalid_otp_token: Няправільны код двухфактарнай аўтэнтыфікацыі invalid_otp_token: Няправільны код двухфактарнай аўтэнтыфікацыі
otp_lost_help_html: Калі вы страцілі доступ да абодвух, вы можаце звязацца з намі праз %{email} otp_lost_help_html: Калі вы страцілі доступ да абодвух, вы можаце скарыстацца %{email}
rate_limited: Занадта шмат спробаў аўтэнтыфікацыі, паспрабуйце пазней. rate_limited: Занадта шмат спробаў аўтэнтыфікацыі, паспрабуйце пазней.
seamless_external_login: Вы ўвайшлі праз знешні сэрвіс, таму налады пароля і эл. пошты недаступныя. seamless_external_login: Вы ўвайшлі праз знешні сэрвіс, таму налады пароля і эл. пошты недаступныя.
signed_in_as: 'Увайшлі як:' signed_in_as: 'Увайшлі як:'

View File

@ -566,13 +566,6 @@ bg:
all: Всичко all: Всичко
limited: Ограничено limited: Ограничено
title: Mодериране title: Mодериране
moderation_notes:
create: Добавяне на бележка за модериране
created_msg: Успешно създадена бележка за модериране на екземпляр!
description_html: Прегледайте и оставете бележки за други модератори и за вас в бъдеще
destroyed_msg: Успешно изтрита бележка за модериране на екземпляр!
placeholder: Сведенията за този екземпляр, предприети действия, или всичко друго, което ще ви помогне да модерирате този екземпляр в бъдеще.
title: Бележки за модериране
private_comment: Личен коментар private_comment: Личен коментар
public_comment: Публичен коментар public_comment: Публичен коментар
purge: Чистка purge: Чистка
@ -781,16 +774,11 @@ bg:
title: Роли title: Роли
rules: rules:
add_new: Добавяне на правило add_new: Добавяне на правило
add_translation: Добавяне на превод
delete: Изтриване delete: Изтриване
description_html: Дори повечето хора да отбелязват, че са прочели и са съгласни с условията на услугата, обикновено хората не ги четат, докато не се сблъскат с проблем. <strong>Улеснете четенето на правилата за сървъра си, представяйки ги като списък с точки.</strong> Опитайте да се придържате към кратки и прости правила, но не ги разпилявайте в премного точки. description_html: Дори повечето хора да отбелязват, че са прочели и са съгласни с условията на услугата, обикновено хората не ги четат, докато не се сблъскат с проблем. <strong>Улеснете четенето на правилата за сървъра си, представяйки ги като списък с точки.</strong> Опитайте да се придържате към кратки и прости правила, но не ги разпилявайте в премного точки.
edit: Промяна на правило edit: Промяна на правило
empty: Още няма определени правила на сървъра. empty: Още няма определени правила на сървъра.
move_down: Преместване надолу
move_up: Преместване нагоре
title: Сървърни правила title: Сървърни правила
translation: Превод
translations: Преводи
settings: settings:
about: about:
manage_rules: Управление на правилата на сървъра manage_rules: Управление на правилата на сървъра
@ -816,7 +804,6 @@ bg:
discovery: discovery:
follow_recommendations: Препоръки за следване follow_recommendations: Препоръки за следване
preamble: За потребители, които са нови и не познават никого в Mastodon, показването на интересно съдържание е ключово. Настройте начина, по който различни функции по откриване на съдържание работят на вашия сървър. preamble: За потребители, които са нови и не познават никого в Mastodon, показването на интересно съдържание е ключово. Настройте начина, по който различни функции по откриване на съдържание работят на вашия сървър.
privacy: Поверителност
profile_directory: Указател на профила profile_directory: Указател на профила
public_timelines: Публични хронологии public_timelines: Публични хронологии
publish_statistics: Публикуване на статистиката publish_statistics: Публикуване на статистиката
@ -903,8 +890,6 @@ bg:
system_checks: system_checks:
database_schema_check: database_schema_check:
message_html: Има миграции на базата данни, които чакат да бъдат изпълнени. Моля, изпълнете ги, за да осигурите изправността на приложението message_html: Има миграции на базата данни, които чакат да бъдат изпълнени. Моля, изпълнете ги, за да осигурите изправността на приложението
elasticsearch_analysis_index_mismatch:
message_html: Настройките за анализиращия индекс Elasticsearch са остарели. Пуснете <code>tootctl search deploy --only-mapping --only=%{value}</code>
elasticsearch_health_red: elasticsearch_health_red:
message_html: Клъстерът Elasticsearch е нездрав (червено състояние), функциите за търсене не са налични message_html: Клъстерът Elasticsearch е нездрав (червено състояние), функциите за търсене не са налични
elasticsearch_health_yellow: elasticsearch_health_yellow:
@ -1856,10 +1841,6 @@ bg:
limit: Вече сте закачили максималния брой публикации limit: Вече сте закачили максималния брой публикации
ownership: Публикация на някого другиго не може да бъде закачена ownership: Публикация на някого другиго не може да бъде закачена
reblog: Раздуване не може да бъде закачано reblog: Раздуване не може да бъде закачано
quote_policies:
followers: Последователи и споменати потребители
nobody: Само споменатите потребители
public: Всеки
title: "%{name}: „%{quote}“" title: "%{name}: „%{quote}“"
visibilities: visibilities:
direct: Директно direct: Директно
@ -1913,11 +1894,6 @@ bg:
does_not_match_previous_name: не съвпада с предишното име does_not_match_previous_name: не съвпада с предишното име
terms_of_service: terms_of_service:
title: Условия на услугата title: Условия на услугата
terms_of_service_interstitial:
future_preamble_html: Правим някои промени в условията на услугата ни, което ще влезе в сила на <strong>%{date}</strong>. Насърчаваме ви да разгледате обновените условия.
past_preamble_html: Променихме условията на услугата ни от последното ви посещение. Насърчаваме ви да разгледате обновените условия.
review_link: Разглеждане на условията на услугата
title: Условията на услугата на %{domain} се променят
themes: themes:
contrast: Mastodon (висок контраст) contrast: Mastodon (висок контраст)
default: Mastodon (тъмно) default: Mastodon (тъмно)

View File

@ -396,9 +396,6 @@ br:
created_at: Deiziad created_at: Deiziad
title_actions: title_actions:
none: Diwall none: Diwall
emoji_styles:
auto: Emgefreek
twemoji: Twemoji
exports: exports:
archive_takeout: archive_takeout:
date: Deiziad date: Deiziad

View File

@ -578,12 +578,6 @@ ca:
all: Totes all: Totes
limited: Limitades limited: Limitades
title: Moderació title: Moderació
moderation_notes:
create: Afegeix una nota de moderació
created_msg: S'ha creat la nota de moderació d'instància.
description_html: Mireu i deixeu notes per als altres moderadors i per a un mateix
destroyed_msg: S'ha esborrat la nota de moderació d'instància.
title: Notes de moderació
private_comment: Comentari privat private_comment: Comentari privat
public_comment: Comentari públic public_comment: Comentari públic
purge: Purga purge: Purga
@ -809,8 +803,6 @@ ca:
preamble: Proporciona informació detallada sobre com funciona, com es modera i com es financia el servidor. preamble: Proporciona informació detallada sobre com funciona, com es modera i com es financia el servidor.
rules_hint: Hi ha un àrea dedicada a les normes a les que s'espera que els teus usuaris s'hi adhereixin. rules_hint: Hi ha un àrea dedicada a les normes a les que s'espera que els teus usuaris s'hi adhereixin.
title: Quant a title: Quant a
allow_referrer_origin:
title: Permeteu que llocs externs vegin el vostre servidor de Mastodon com a font de trànsit
appearance: appearance:
preamble: Personalitza l'interfície web de Mastodon. preamble: Personalitza l'interfície web de Mastodon.
title: Aparença title: Aparença
@ -1347,10 +1339,6 @@ ca:
basic_information: Informació bàsica basic_information: Informació bàsica
hint_html: "<strong>Personalitza el que la gent veu en el teu perfil públic i a prop dels teus tuts..</strong> És més probable que altres persones et segueixin i interaccionin amb tu quan tens emplenat el teu perfil i amb la teva imatge." hint_html: "<strong>Personalitza el que la gent veu en el teu perfil públic i a prop dels teus tuts..</strong> És més probable que altres persones et segueixin i interaccionin amb tu quan tens emplenat el teu perfil i amb la teva imatge."
other: Altres other: Altres
emoji_styles:
auto: Automàtic
native: Nadiu
twemoji: Twemoji
errors: errors:
'400': La sol·licitud que vas emetre no era vàlida o no era correcta. '400': La sol·licitud que vas emetre no era vàlida o no era correcta.
'403': No tens permís per a veure aquesta pàgina. '403': No tens permís per a veure aquesta pàgina.
@ -1486,28 +1474,6 @@ ca:
lists_html: lists_html:
one: Esteu a punt de <strong>reemplaçar les vostres llistes</strong> amb contactes de <strong>%{filename}</strong>. S'afegirà <strong>%{count} compte</strong> a les noves llistes. one: Esteu a punt de <strong>reemplaçar les vostres llistes</strong> amb contactes de <strong>%{filename}</strong>. S'afegirà <strong>%{count} compte</strong> a les noves llistes.
other: Esteu a punt de <strong>reemplaçar les vostres llistes</strong> amb contactes de <strong>%{filename}</strong>. S'afegiran fins a <strong>%{count} comptes</strong> a les noves llistes. other: Esteu a punt de <strong>reemplaçar les vostres llistes</strong> amb contactes de <strong>%{filename}</strong>. S'afegiran fins a <strong>%{count} comptes</strong> a les noves llistes.
muting_html:
one: Esteu a punt de <strong>reemplaçar la vostra llista de comptes silenciats</strong> amb fins a <strong>%{count} compte</strong> de <strong>%{filename}</strong>.
other: Esteu a punt de <strong>reemplaçar la vostra llista de comptes silenciats</strong> amb fins a <strong>%{count} comptes</strong> de <strong>%{filename}</strong>.
preambles:
blocking_html:
one: Esteu a punt de <strong>blocar</strong> fins a <strong>%{count} compte</strong> de <strong>%{filename}</strong>.
other: Esteu a punt de <strong>blocar</strong> fins a <strong>%{count} comptes</strong> de <strong>%{filename}</strong>.
bookmarks_html:
one: Esteu a punt d'afegir fins a <strong>%{count} publicació</strong> de <strong>%{filename}</strong> als vostres <strong>marcadors</strong>.
other: Esteu a punt d'afegir fins a <strong>%{count} publicacions</strong> de <strong>%{filename}</strong> als vostres <strong>marcadors</strong>.
domain_blocking_html:
one: Esteu a punt de <strong>blocar</strong> fins a <strong>%{count} domini</strong> de <strong>%{filename}</strong>.
other: Esteu a punt de <strong>blocar</strong> fins a <strong>%{count} dominis</strong> de <strong>%{filename}</strong>.
following_html:
one: Esteu a punt de <strong>seguir</strong> fins a <strong>%{count} compte</strong> de <strong>%{filename}</strong>.
other: Esteu a punt de <strong>seguir</strong> fins a <strong>%{count} comptes</strong> de <strong>%{filename}</strong>.
lists_html:
one: Esteu a punt d'afegir <strong>%{count} compte</strong> de <strong>%{filename}</strong> a les vostres <strong>llistes</strong>. Es crearan noves llistes si no n'hi ha cap on afegir-lo.
other: Esteu a punt d'afegir <strong>%{count} comptes</strong> de <strong>%{filename}</strong> a les vostres <strong>llistes</strong>. Es crearan noves llistes si no n'hi ha cap on afegir-los.
muting_html:
one: Esteu a punt de <strong>silenciar</strong> fins a <strong>%{count} compte</strong> de <strong>%{filename}</strong>.
other: Esteu a punt de <strong>silenciar</strong> fins a <strong>%{count} comptes</strong> de <strong>%{filename}</strong>.
preface: Pots importar algunes les dades que has exportat des d'un altre servidor, com ara el llistat de les persones que estàs seguint o bloquejant. preface: Pots importar algunes les dades que has exportat des d'un altre servidor, com ara el llistat de les persones que estàs seguint o bloquejant.
recent_imports: Importacions recents recent_imports: Importacions recents
states: states:

View File

@ -1387,10 +1387,6 @@ cs:
basic_information: Základní informace basic_information: Základní informace
hint_html: "<strong>Nastavte si, co lidé uvidí na vašem veřejném profilu a vedle vašich příspěvků.</strong> Ostatní lidé vás budou spíše sledovat a komunikovat s vámi, když budete mít vyplněný profil a profilový obrázek." hint_html: "<strong>Nastavte si, co lidé uvidí na vašem veřejném profilu a vedle vašich příspěvků.</strong> Ostatní lidé vás budou spíše sledovat a komunikovat s vámi, když budete mít vyplněný profil a profilový obrázek."
other: Další other: Další
emoji_styles:
auto: Auto
native: Výchozí
twemoji: Twemoji
errors: errors:
'400': Žádost, kterou jste odeslali, byla neplatná nebo poškozená. '400': Žádost, kterou jste odeslali, byla neplatná nebo poškozená.
'403': Nejste oprávněni tuto stránku zobrazit. '403': Nejste oprávněni tuto stránku zobrazit.

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