Merge commit 'c645490d553124d800d30488595f7d2d9d61584d' into glitch-soc/merge-upstream

Conflicts:
- `Gemfile.lock`:
  Changes were already cherry-picked and updated further in glitch-soc.
  Kept glitch-soc's version.
- `README.md`:
  Upstream updated its README, we have a completely different one.
  Kept glitch-soc's README.
- `app/models/account.rb`:
  Not a real conflict, upstream updated some lines textually adjacent
  to glitch-soc-specific lines.
  Ported upstream's changes.
This commit is contained in:
Claire 2024-02-24 14:46:14 +01:00
commit ef3d15554b
146 changed files with 1608 additions and 731 deletions

View file

@ -53,7 +53,7 @@ jobs:
# Create or update the pull request
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5.0.2
uses: peter-evans/create-pull-request@v6.0.0
with:
commit-message: 'New Crowdin translations'
title: 'New Crowdin Translations (automated)'

View file

@ -224,7 +224,7 @@ jobs:
if: failure()
with:
name: e2e-screenshots
path: tmp/screenshots/
path: tmp/capybara/
test-search:
name: Elastic Search integration testing
@ -328,4 +328,4 @@ jobs:
if: failure()
with:
name: test-search-screenshots
path: tmp/screenshots/
path: tmp/capybara/

View file

@ -96,12 +96,6 @@ Rails/FilePath:
Rails/HttpStatus:
EnforcedStyle: numeric
# Reason: Allowed in boot ENV checker
# https://docs.rubocop.org/rubocop-rails/cops_rails.html#railsexit
Rails/Exit:
Exclude:
- 'config/boot.rb'
# Reason: Conflicts with `Lint/UselessMethodDefinition` for inherited controller actions
# https://docs.rubocop.org/rubocop-rails/cops_rails.html#railslexicallyscopedactionfilter
Rails/LexicallyScopedActionFilter:
@ -134,6 +128,11 @@ Rails/UnusedIgnoredColumns:
Rails/NegateInclude:
Enabled: false
# Reason: Enforce default limit, but allow some elements to span lines
# https://docs.rubocop.org/rubocop-rspec/cops_rspec.html#rspecexamplelength
RSpec/ExampleLength:
CountAsOne: ['array', 'heredoc', 'method_call']
# Reason: Deprecated cop, will be removed in 3.0, replaced by SpecFilePathFormat
# https://docs.rubocop.org/rubocop-rspec/cops_rspec.html#rspecfilepath
RSpec/FilePath:

View file

@ -36,7 +36,7 @@ Metrics/PerceivedComplexity:
# Configuration parameters: CountAsOne.
RSpec/ExampleLength:
Max: 22
Max: 20 # Override default of 5
RSpec/MultipleExpectations:
Max: 7

View file

@ -62,11 +62,10 @@ class ActivityPub::InboxesController < ActivityPub::BaseController
return if raw_params.blank? || ENV['DISABLE_FOLLOWERS_SYNCHRONIZATION'] == 'true' || signed_request_account.nil?
# Re-using the syntax for signature parameters
tree = SignatureParamsParser.new.parse(raw_params)
params = SignatureParamsTransformer.new.apply(tree)
params = SignatureParser.parse(raw_params)
ActivityPub::PrepareFollowersSynchronizationService.new.call(signed_request_account, params)
rescue Parslet::ParseFailed
rescue SignatureParser::ParsingError
Rails.logger.warn 'Error parsing Collection-Synchronization header'
end

View file

@ -188,7 +188,9 @@ class Auth::SessionsController < Devise::SessionsController
)
# Only send a notification email every hour at most
return if redis.set("2fa_failure_notification:#{user.id}", '1', ex: 1.hour, get: true).present?
return if redis.get("2fa_failure_notification:#{user.id}").present?
redis.set("2fa_failure_notification:#{user.id}", '1', ex: 1.hour)
UserMailer.failed_2fa(user, request.remote_ip, request.user_agent, Time.now.utc).deliver_later!
end

View file

@ -12,39 +12,6 @@ module SignatureVerification
class SignatureVerificationError < StandardError; end
class SignatureParamsParser < Parslet::Parser
rule(:token) { match("[0-9a-zA-Z!#$%&'*+.^_`|~-]").repeat(1).as(:token) }
rule(:quoted_string) { str('"') >> (qdtext | quoted_pair).repeat.as(:quoted_string) >> str('"') }
# qdtext and quoted_pair are not exactly according to spec but meh
rule(:qdtext) { match('[^\\\\"]') }
rule(:quoted_pair) { str('\\') >> any }
rule(:bws) { match('\s').repeat }
rule(:param) { (token.as(:key) >> bws >> str('=') >> bws >> (token | quoted_string).as(:value)).as(:param) }
rule(:comma) { bws >> str(',') >> bws }
# Old versions of node-http-signature add an incorrect "Signature " prefix to the header
rule(:buggy_prefix) { str('Signature ') }
rule(:params) { buggy_prefix.maybe >> (param >> (comma >> param).repeat).as(:params) }
root(:params)
end
class SignatureParamsTransformer < Parslet::Transform
rule(params: subtree(:param)) do
(param.is_a?(Array) ? param : [param]).each_with_object({}) { |(key, value), hash| hash[key] = value }
end
rule(param: { key: simple(:key), value: simple(:val) }) do
[key, val]
end
rule(quoted_string: simple(:string)) do
string.to_s
end
rule(token: simple(:string)) do
string.to_s
end
end
def require_account_signature!
render json: signature_verification_failure_reason, status: signature_verification_failure_code unless signed_request_account
end
@ -135,12 +102,8 @@ module SignatureVerification
end
def signature_params
@signature_params ||= begin
raw_signature = request.headers['Signature']
tree = SignatureParamsParser.new.parse(raw_signature)
SignatureParamsTransformer.new.apply(tree)
end
rescue Parslet::ParseFailed
@signature_params ||= SignatureParser.parse(request.headers['Signature'])
rescue SignatureParser::ParsingError
raise SignatureVerificationError, 'Error parsing signature parameters'
end

View file

@ -65,6 +65,7 @@ class UploadButton extends ImmutablePureComponent {
key={resetFileKey}
ref={this.setRef}
type='file'
name='file-upload-input'
multiple
accept={acceptContentTypes.toArray().join(',')}
onChange={this.handleChange}

View file

@ -21,6 +21,7 @@ import { DisplayName } from 'mastodon/components/display_name';
import { Icon } from 'mastodon/components/icon';
import { IconButton } from 'mastodon/components/icon_button';
import { VerifiedBadge } from 'mastodon/components/verified_badge';
import { domain } from 'mastodon/initial_state';
const messages = defineMessages({
follow: { id: 'account.follow', defaultMessage: 'Follow' },
@ -28,27 +29,43 @@ const messages = defineMessages({
previous: { id: 'lightbox.previous', defaultMessage: 'Previous' },
next: { id: 'lightbox.next', defaultMessage: 'Next' },
dismiss: { id: 'follow_suggestions.dismiss', defaultMessage: "Don't show again" },
friendsOfFriendsHint: { id: 'follow_suggestions.hints.friends_of_friends', defaultMessage: 'This profile is popular among the people you follow.' },
similarToRecentlyFollowedHint: { id: 'follow_suggestions.hints.similar_to_recently_followed', defaultMessage: 'This profile is similar to the profiles you have most recently followed.' },
featuredHint: { id: 'follow_suggestions.hints.featured', defaultMessage: 'This profile has been hand-picked by the {domain} team.' },
mostFollowedHint: { id: 'follow_suggestions.hints.most_followed', defaultMessage: 'This profile is one of the most followed on {domain}.'},
mostInteractionsHint: { id: 'follow_suggestions.hints.most_interactions', defaultMessage: 'This profile has been recently getting a lot of attention on {domain}.' },
});
const Source = ({ id }) => {
let label;
const intl = useIntl();
let label, hint;
switch (id) {
case 'friends_of_friends':
hint = intl.formatMessage(messages.friendsOfFriendsHint);
label = <FormattedMessage id='follow_suggestions.personalized_suggestion' defaultMessage='Personalized suggestion' />;
break;
case 'similar_to_recently_followed':
hint = intl.formatMessage(messages.similarToRecentlyFollowedHint);
label = <FormattedMessage id='follow_suggestions.personalized_suggestion' defaultMessage='Personalized suggestion' />;
break;
case 'featured':
label = <FormattedMessage id='follow_suggestions.curated_suggestion' defaultMessage="Editors' Choice" />;
hint = intl.formatMessage(messages.featuredHint, { domain });
label = <FormattedMessage id='follow_suggestions.curated_suggestion' defaultMessage='Staff pick' />;
break;
case 'most_followed':
hint = intl.formatMessage(messages.mostFollowedHint, { domain });
label = <FormattedMessage id='follow_suggestions.popular_suggestion' defaultMessage='Popular suggestion' />;
break;
case 'most_interactions':
hint = intl.formatMessage(messages.mostInteractionsHint, { domain });
label = <FormattedMessage id='follow_suggestions.popular_suggestion' defaultMessage='Popular suggestion' />;
break;
}
return (
<div className='inline-follow-suggestions__body__scrollable__card__text-stack__source'>
<div className='inline-follow-suggestions__body__scrollable__card__text-stack__source' title={hint}>
<Icon icon={InfoIcon} />
{label}
</div>
@ -92,7 +109,7 @@ const Card = ({ id, sources }) => {
{firstVerifiedField ? <VerifiedBadge link={firstVerifiedField.get('value')} /> : <Source id={sources.get(0)} />}
</div>
<Button text={intl.formatMessage(following ? messages.unfollow : messages.follow)} onClick={handleFollow} />
<Button text={intl.formatMessage(following ? messages.unfollow : messages.follow)} secondary={following} onClick={handleFollow} />
</div>
);
};

View file

@ -152,8 +152,8 @@
"compose_form.poll.switch_to_multiple": "Змяніце апытанне, каб дазволіць некалькі варыянтаў адказу",
"compose_form.poll.switch_to_single": "Змяніце апытанне, каб дазволіць адзіны варыянт адказу",
"compose_form.poll.type": "Стыль",
"compose_form.publish": опіс",
"compose_form.publish_form": "Апублікаваць",
"compose_form.publish": аслаць",
"compose_form.publish_form": "Новы допіс",
"compose_form.reply": "Адказаць",
"compose_form.save_changes": "Абнавіць",
"compose_form.spoiler.marked": "Выдаліць папярэджанне аб змесціве",

View file

@ -3,7 +3,7 @@
"about.contact": "За контакти:",
"about.disclaimer": "Mastodon е безплатен софтуер с отворен изходен код и търговска марка на Mastodon gGmbH.",
"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.title": "Ограничено",
"about.domain_blocks.suspended.explanation": "Никакви данни от този сървър няма да се обработват, съхраняват или обменят, правещи невъзможно всяко взаимодействие или комуникация с потребители от тези сървъри.",
@ -110,7 +110,7 @@
"column.about": "Относно",
"column.blocks": "Блокирани потребители",
"column.bookmarks": "Отметки",
"column.community": "Локална часова ос",
"column.community": "Локален инфопоток",
"column.direct": "Частни споменавания",
"column.directory": "Разглеждане на профили",
"column.domain_blocks": "Блокирани домейни",
@ -201,7 +201,7 @@
"disabled_account_banner.text": "Вашият акаунт {disabledAccount} сега е изключен.",
"dismissable_banner.community_timeline": "Ето най-скорошните публични публикации от хора, чиито акаунти са разположени в {domain}.",
"dismissable_banner.dismiss": "Отхвърляне",
"dismissable_banner.explore_links": "Тези новини се разказват от хората в този и други сървъри на децентрализираната мрежа точно сега.",
"dismissable_banner.explore_links": "Това са най-споделяните новини в социалната мрежа днес. По-нови истории, споделени от повече хора се показват по-напред.",
"dismissable_banner.explore_statuses": "Има публикации през социалната мрежа, които днес набират популярност. По-новите публикации с повече подсилвания и любими са класирани по-високо.",
"dismissable_banner.explore_tags": "Тези хаштагове сега набират популярност сред хората в този и други сървъри на децентрализирата мрежа.",
"dismissable_banner.public_timeline": "Ето най-новите обществени публикации от хора в социална мрежа, която хората в {domain} следват.",
@ -228,10 +228,10 @@
"empty_column.account_unavailable": "Профилът не е наличен",
"empty_column.blocks": "Още не сте блокирали никакви потребители.",
"empty_column.bookmarked_statuses": "Още не сте отметнали публикации. Отметвайки някоя, то тя ще се покаже тук.",
"empty_column.community": "Местната часова ос е празна. Напишете нещо обществено, за да завъртите нещата!",
"empty_column.community": "Локалният инфопоток е празен. Публикувайте нещо, за да започнете!",
"empty_column.direct": "Още нямате никакви частни споменавания. Тук ще се показват, изпращайки или получавайки едно.",
"empty_column.domain_blocks": "Още няма блокирани домейни.",
"empty_column.explore_statuses": "Няма нищо налагащо се в момента. Проверете пак по-късно!",
"empty_column.explore_statuses": "Няма тенденции в момента. Проверете пак по-късно!",
"empty_column.favourited_statuses": "Още нямате никакви любими публикации. Правейки любима, то тя ще се покаже тук.",
"empty_column.favourites": "Още никого не е слагал публикацията в любими. Когато някой го направи, този човек ще се покаже тук.",
"empty_column.follow_requests": "Още нямате заявки за последване. Получавайки такава, то тя ще се покаже тук.",
@ -348,10 +348,10 @@
"keyboard_shortcuts.favourites": "Отваряне на списъка с любими",
"keyboard_shortcuts.federated": "Отваряне на федерирания инфопоток",
"keyboard_shortcuts.heading": "Клавишни съчетания",
"keyboard_shortcuts.home": "Отваряне на началната часова ос",
"keyboard_shortcuts.home": "Отваряне на личния инфопоток",
"keyboard_shortcuts.hotkey": "Бърз клавиш",
"keyboard_shortcuts.legend": "Показване на тази легенда",
"keyboard_shortcuts.local": "Отваряне на местна часова ос",
"keyboard_shortcuts.local": "Отваряне на локалния инфопоток",
"keyboard_shortcuts.mention": "Споменаване на автора",
"keyboard_shortcuts.muted": "Отваряне на списъка със заглушени потребители",
"keyboard_shortcuts.my_profile": "Отваряне на профила ви",
@ -402,12 +402,12 @@
"navigation_bar.advanced_interface": "Отваряне в разширен уебинтерфейс",
"navigation_bar.blocks": "Блокирани потребители",
"navigation_bar.bookmarks": "Отметки",
"navigation_bar.community_timeline": "Локална часова ос",
"navigation_bar.community_timeline": "Локален инфопоток",
"navigation_bar.compose": "Съставяне на нова публикация",
"navigation_bar.direct": "Частни споменавания",
"navigation_bar.discover": "Откриване",
"navigation_bar.domain_blocks": "Блокирани домейни",
"navigation_bar.explore": "Изследване",
"navigation_bar.explore": "Разглеждане",
"navigation_bar.favourites": "Любими",
"navigation_bar.filters": "Заглушени думи",
"navigation_bar.follow_requests": "Заявки за последване",
@ -474,10 +474,10 @@
"notifications_permission_banner.title": "Никога не пропускате нещо",
"onboarding.action.back": "Върнете ме обратно",
"onboarding.actions.back": "Върнете ме обратно",
"onboarding.actions.go_to_explore": "Вижте какво изгрява",
"onboarding.actions.go_to_explore": "Виж тенденции",
"onboarding.actions.go_to_home": "Към началния ви инфоканал",
"onboarding.compose.template": "Здравейте, #Mastodon!",
"onboarding.follows.empty": "За съжаление, в момента не могат да се показват резултати. Може да опитате да употребявате търсене или да прегледате страницата за изследване, за да намерите страница за последване, или да опитате пак по-късно.",
"onboarding.follows.empty": "За съжаление, в момента не могат да бъдат показани резултати. Може да опитате да търсите или да разгледате, за да намерите кого да последвате, или опитайте отново по-късно.",
"onboarding.follows.lead": "Може да бъдете куратор на началния си инфоканал. Последвайки повече хора, по-деен и по-интересен ще става. Тези профили може да са добра начална точка, от която винаги по-късно да спрете да следвате!",
"onboarding.follows.title": "Популярно в Mastodon",
"onboarding.profile.discoverable": "Правене на моя профил откриваем",
@ -524,13 +524,13 @@
"poll_button.add_poll": "Анкетиране",
"poll_button.remove_poll": "Премахване на анкета",
"privacy.change": "Промяна на поверителността на публикация",
"privacy.direct.long": "Всеки споменат в публикацията",
"privacy.direct.long": "Споменатите в публикацията",
"privacy.direct.short": "Определени хора",
"privacy.private.long": "Само последователите ви",
"privacy.private.short": "Последователи",
"privacy.public.long": "Всеки във и извън Mastodon",
"privacy.public.short": "Публично",
"privacy.unlisted.additional": "Това поведение е точно като публичното, с изключение на това, че публикацията няма да се появява в каналите на живо, хаштаговете, проучването или търсенето в Mastodon, дори ако сте се включили в целия акаунт.",
"privacy.unlisted.additional": "Това действие е точно като публичното, с изключение на това, че публикацията няма да се появява в каналите на живо, хаштаговете, разглеждането или търсенето в Mastodon, дори ако сте избрали да се публично видими на ниво акаунт.",
"privacy.unlisted.long": "По-малко алгоритмични фанфари",
"privacy.unlisted.short": "Тиха публика",
"privacy_policy.last_updated": "Последно осъвременяване на {date}",

View file

@ -532,7 +532,7 @@
"privacy.public.short": "Públic",
"privacy.unlisted.additional": "Es comporta igual que públic, excepte que la publicació no apareixerà als canals en directe o etiquetes, l'explora o a la cerca de Mastodon, fins i tot si ho heu activat a nivell de compte.",
"privacy.unlisted.long": "Menys fanfàrries algorísmiques",
"privacy.unlisted.short": "Públic tranquil",
"privacy.unlisted.short": "Públic silenciós",
"privacy_policy.last_updated": "Darrera actualització {date}",
"privacy_policy.title": "Política de Privacitat",
"recommended": "Recomanat",

View file

@ -237,7 +237,7 @@
"empty_column.follow_requests": "Zatím nemáte žádné žádosti o sledování. Až nějakou obdržíte, zobrazí se zde.",
"empty_column.followed_tags": "Zatím jste nesledovali žádné hashtagy. Až to uděláte, objeví se zde.",
"empty_column.hashtag": "Pod tímto hashtagem zde zatím nic není.",
"empty_column.home": "Vaše domovská časová osa je prázdná! Naplňte ji sledováním dalších lidí. {suggestions}",
"empty_column.home": "Vaše domovská časová osa je prázdná! Naplňte ji sledováním dalších lidí.",
"empty_column.list": "V tomto seznamu zatím nic není. Až nějaký člen z tohoto seznamu zveřejní nový příspěvek, objeví se zde.",
"empty_column.lists": "Zatím nemáte žádné seznamy. Až nějaký vytvoříte, zobrazí se zde.",
"empty_column.mutes": "Zatím jste neskryli žádného uživatele.",
@ -277,8 +277,11 @@
"follow_request.authorize": "Autorizovat",
"follow_request.reject": "Zamítnout",
"follow_requests.unlocked_explanation": "Přestože váš účet není zamčený, administrátor {domain} usoudil, že byste mohli chtít tyto žádosti o sledování zkontrolovat ručně.",
"follow_suggestions.curated_suggestion": "Návrh serveru",
"follow_suggestions.dismiss": "Znovu nezobrazovat",
"follow_suggestions.personalized_suggestion": "Přizpůsobený návrh",
"follow_suggestions.popular_suggestion": "Populární návrh",
"follow_suggestions.view_all": "Zobrazit vše",
"follow_suggestions.who_to_follow": "Koho sledovat",
"followed_tags": "Sledované hashtagy",
"footer.about": "O aplikaci",
@ -300,8 +303,12 @@
"hashtag.column_settings.tag_mode.any": "Jakýkoliv z těchto",
"hashtag.column_settings.tag_mode.none": "Žádný z těchto",
"hashtag.column_settings.tag_toggle": "Zahrnout v tomto sloupci další štítky",
"hashtag.counter_by_accounts": "{count, plural, one {{counter} účastník} few {{counter} účastníci} other {{counter} účastníků}}",
"hashtag.counter_by_uses": "{count, plural, one {{counter} příspěvek} few {{counter} příspěvky} other {{counter} příspěvků}}",
"hashtag.counter_by_uses_today": "Dnes {count, plural, one {{counter} příspěvek} few {{counter} příspěvky} other {{counter} příspěvků}}",
"hashtag.follow": "Sledovat hashtag",
"hashtag.unfollow": "Přestat sledovat hashtag",
"hashtags.and_other": "…a {count, plural, one {# další} few {# další} other {# dalších}}",
"home.column_settings.basic": "Základní",
"home.column_settings.show_reblogs": "Zobrazit boosty",
"home.column_settings.show_replies": "Zobrazit odpovědi",
@ -471,8 +478,8 @@
"onboarding.actions.go_to_home": "Přejít na svůj domovský feed",
"onboarding.compose.template": "Ahoj #Mastodon!",
"onboarding.follows.empty": "Bohužel, žádné výsledky nelze momentálně zobrazit. Můžete zkusit vyhledat nebo procházet stránku s průzkumem a najít lidi, kteří budou sledovat, nebo to zkuste znovu později.",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Populární na Mastodonu",
"onboarding.follows.lead": "Domovský kanál je hlavní metodou zažívání Mastodonu. Čím více lidí sledujete, tím aktivnější a zajímavější bude. Pro začnutí, zde máte několik návrhů:",
"onboarding.follows.title": "Přispůsobit vlastní domovský kanál",
"onboarding.profile.discoverable": "Udělat svůj profil vyhledatelným",
"onboarding.profile.discoverable_hint": "Když se rozhodnete být vyhledatelný na Mastodonu, vaše příspěvky se mohou objevit ve výsledcích vyhledávání a v populárních, a váš profil může být navrhován lidem s podobnými zájmy.",
"onboarding.profile.display_name": "Zobrazované jméno",
@ -491,13 +498,13 @@
"onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:",
"onboarding.start.skip": "Want to skip right ahead?",
"onboarding.start.title": "Dokázali jste to!",
"onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.",
"onboarding.steps.follow_people.title": "Follow {count, plural, one {one person} other {# people}}",
"onboarding.steps.publish_status.body": "Řekněte světu Ahoj.",
"onboarding.steps.follow_people.body": "Mastodon je o sledování zajimavých lidí.",
"onboarding.steps.follow_people.title": "Přispůsobit vlastní domovský kanál",
"onboarding.steps.publish_status.body": "Řekněte světu ahoj s pomocí textem, fotografiemi, videami nebo anketami {emoji}",
"onboarding.steps.publish_status.title": "Vytvořte svůj první příspěvek",
"onboarding.steps.setup_profile.body": "Others are more likely to interact with you with a filled out profile.",
"onboarding.steps.setup_profile.title": "Přizpůsobit svůj profil",
"onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
"onboarding.steps.share_profile.body": "Dejte blízkým lidem vědět, jak vás mohou najít na Mastodonu",
"onboarding.steps.share_profile.title": "Sdílejte svůj profil",
"onboarding.tips.2fa": "<strong>Víte, že?</strong> Svůj účet můžete zabezpečit nastavením dvoufaktorového ověřování v nastavení účtu. Funguje s jakoukoli TOTP aplikací podle vašeho výběru, telefonní číslo není nutné!",
"onboarding.tips.accounts_from_other_servers": "<strong>Víte, že?</strong> Protože je Mastodon decentralizovaný, některé profily, na které narazíte, budou hostovány na jiných serverech, než je ten váš. A přesto s nimi můžete bezproblémově komunikovat! Jejich server se nachází v druhé polovině uživatelského jména!",
@ -525,6 +532,7 @@
"privacy.public.short": "Veřejné",
"privacy.unlisted.additional": "Chová se stejně jako veřejný, až na to, že se příspěvek neobjeví v živých kanálech nebo hashtazích, v objevování nebo vyhledávání na Mastodonu, a to i když je účet nastaven tak, aby se zde všude tyto příspěvky zobrazovaly.",
"privacy.unlisted.long": "Méně algoritmických fanfár",
"privacy.unlisted.short": "Ztišené veřejné",
"privacy_policy.last_updated": "Naposledy aktualizováno {date}",
"privacy_policy.title": "Zásady ochrany osobních údajů",
"recommended": "Doporučeno",
@ -542,6 +550,7 @@
"relative_time.minutes": "{number} m",
"relative_time.seconds": "{number} s",
"relative_time.today": "dnes",
"reply_indicator.attachments": "{count, plural, one {{counter} příloha} few {{counter} přílohy} other {{counter} přilohů}}",
"reply_indicator.cancel": "Zrušit",
"reply_indicator.poll": "Anketa",
"report.block": "Blokovat",

View file

@ -146,12 +146,12 @@
"compose_form.lock_disclaimer.lock": "geschützt",
"compose_form.placeholder": "Was gibts Neues?",
"compose_form.poll.duration": "Umfragedauer",
"compose_form.poll.multiple": "Mehrfachauswahl",
"compose_form.poll.option_placeholder": "{number}. Auswahlmöglichkeit",
"compose_form.poll.multiple": "Mul­ti­ple-Choice",
"compose_form.poll.option_placeholder": "Option {number}",
"compose_form.poll.single": "Einfachauswahl",
"compose_form.poll.switch_to_multiple": "Mehrfachauswahl erlauben",
"compose_form.poll.switch_to_single": "Nur Einfachauswahl erlauben",
"compose_form.poll.type": "Art",
"compose_form.poll.type": "Stil",
"compose_form.publish": "Veröffentlichen",
"compose_form.publish_form": "Neuer Beitrag",
"compose_form.reply": "Antworten",
@ -277,9 +277,9 @@
"follow_request.authorize": "Genehmigen",
"follow_request.reject": "Ablehnen",
"follow_requests.unlocked_explanation": "Auch wenn dein Konto öffentlich bzw. nicht geschützt ist, haben die Moderator*innen von {domain} gedacht, dass du diesen Follower lieber manuell bestätigen solltest.",
"follow_suggestions.curated_suggestion": "Vom Server empfohlen",
"follow_suggestions.curated_suggestion": "Auswahl des Herausgebers",
"follow_suggestions.dismiss": "Nicht mehr anzeigen",
"follow_suggestions.personalized_suggestion": "Personalisierte Empfehlung",
"follow_suggestions.personalized_suggestion": "Persönliche Empfehlung",
"follow_suggestions.popular_suggestion": "Beliebte Empfehlung",
"follow_suggestions.view_all": "Alle anzeigen",
"follow_suggestions.who_to_follow": "Empfohlene Profile",
@ -528,7 +528,7 @@
"privacy.direct.short": "Bestimmte Profile",
"privacy.private.long": "Nur deine Follower",
"privacy.private.short": "Follower",
"privacy.public.long": "Alle auf und außerhalb von Mastodon",
"privacy.public.long": "Alle in und außerhalb von Mastodon",
"privacy.public.short": "Öffentlich",
"privacy.unlisted.additional": "Das Verhalten ist wie bei „Öffentlich“, jedoch erscheint dieser Beitrag nicht in „Live-Feeds“, „Erkunden“, Hashtags oder über die Mastodon-Suchfunktion selbst wenn du das in den Einstellungen aktiviert hast.",
"privacy.unlisted.long": "Weniger im Algorithmus berücksichtigt",

View file

@ -308,7 +308,7 @@
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} post} other {{counter} posts}} today",
"hashtag.follow": "Follow hashtag",
"hashtag.unfollow": "Unfollow hashtag",
"hashtags.and_other": "…and {count, plural, one {}other {# more}}",
"hashtags.and_other": "…and {count, plural, one {one more} other {# more}}",
"home.column_settings.basic": "Basic",
"home.column_settings.show_reblogs": "Show boosts",
"home.column_settings.show_replies": "Show replies",

View file

@ -277,8 +277,13 @@
"follow_request.authorize": "Authorize",
"follow_request.reject": "Reject",
"follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
"follow_suggestions.curated_suggestion": "Editors' Choice",
"follow_suggestions.curated_suggestion": "Staff pick",
"follow_suggestions.dismiss": "Don't show again",
"follow_suggestions.hints.featured": "This profile has been hand-picked by the {domain} team.",
"follow_suggestions.hints.friends_of_friends": "This profile is popular among the people you follow.",
"follow_suggestions.hints.most_followed": "This profile is one of the most followed on {domain}.",
"follow_suggestions.hints.most_interactions": "This profile has been recently getting a lot of attention on {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "This profile is similar to the profiles you have most recently followed.",
"follow_suggestions.personalized_suggestion": "Personalized suggestion",
"follow_suggestions.popular_suggestion": "Popular suggestion",
"follow_suggestions.view_all": "View all",

View file

@ -115,7 +115,7 @@
"column.directory": "Foliumi la profilojn",
"column.domain_blocks": "Blokitaj domajnoj",
"column.favourites": "Stelumoj",
"column.firehose": "Vivantaj fluoj",
"column.firehose": "Rektaj fluoj",
"column.follow_requests": "Petoj de sekvado",
"column.home": "Hejmo",
"column.lists": "Listoj",

View file

@ -530,6 +530,8 @@
"privacy.private.short": "Seguidores",
"privacy.public.long": "Cualquiera dentro y fuera de Mastodon",
"privacy.public.short": "Público",
"privacy.unlisted.additional": "Esto se comporta exactamente igual que el público, excepto que la publicación no aparecerá en la cronología en directo o en las etiquetas, la exploración o búsqueda de Mastodon, incluso si está optado por activar la cuenta de usuario.",
"privacy.unlisted.long": "Menos fanfares algorítmicos",
"privacy.unlisted.short": "Público tranquilo",
"privacy_policy.last_updated": "Actualizado por última vez {date}",
"privacy_policy.title": "Política de Privacidad",

View file

@ -46,7 +46,9 @@
"account.report": "I-ulat si/ang @{name}",
"account.requested_follow": "Hinihiling ni {name} na sundan ka",
"account.show_reblogs": "Ipakita ang mga pagpapalakas mula sa/kay {name}",
"account.unendorse": "Huwag itampok sa profile",
"admin.dashboard.retention.cohort_size": "Mga bagong tagagamit",
"alert.rate_limited.message": "Mangyaring subukan muli pagkatapos ng {retry_time, time, medium}.",
"bundle_column_error.error.title": "Naku!",
"bundle_column_error.network.body": "Nagkaroon ng kamalian habang sinusubukang i-karga ang pahinang ito. Maaaring dahil ito sa pansamantalang problema ng iyong koneksyon sa internet o ang server na ito.",
"bundle_column_error.network.title": "Kamaliang network",
@ -107,6 +109,7 @@
"confirmations.block.message": "Sigurado ka bang gusto mong harangan si {name}?",
"confirmations.cancel_follow_request.confirm": "Bawiin ang kahilingan",
"confirmations.cancel_follow_request.message": "Sigurdo ka bang gusto mong bawiin ang kahilingang sundan si/ang {name}?",
"confirmations.discard_edit_media.confirm": "Ipagpaliban",
"confirmations.domain_block.confirm": "Harangan ang buong domain",
"confirmations.edit.confirm": "Baguhin",
"confirmations.reply.confirm": "Tumugon",
@ -175,10 +178,14 @@
"hashtag.column_header.tag_mode.all": "at {additional}",
"hashtag.column_header.tag_mode.any": "o {additional}",
"home.pending_critical_update.body": "Mangyaring i-update ang iyong serbiro ng Mastodon sa lalong madaling panahon!",
"interaction_modal.login.action": "Iuwi mo ako",
"interaction_modal.no_account_yet": "Wala sa Mastodon?",
"interaction_modal.on_another_server": "Sa ibang serbiro",
"interaction_modal.on_this_server": "Sa serbirong ito",
"interaction_modal.title.follow": "Sundan si {name}",
"intervals.full.days": "{number, plural, one {# araw} other {# na araw}}",
"intervals.full.hours": "{number, plural, one {# oras} other {# na oras}}",
"intervals.full.minutes": "{number, plural, one {# minuto} other {# na minuto}}",
"keyboard_shortcuts.description": "Paglalarawan",
"keyboard_shortcuts.down": "Ilipat pababa sa talaan",
"keyboard_shortcuts.requests": "Buksan ang talaan ng mga kahilingan sa pagsunod",
@ -186,35 +193,72 @@
"lightbox.close": "Isara",
"lightbox.next": "Susunod",
"lightbox.previous": "Nakaraan",
"link_preview.author": "Ni/ng {name}",
"lists.account.add": "Idagdag sa talaan",
"lists.account.remove": "Tanggalin mula sa talaan",
"lists.new.create": "Idagdag sa talaan",
"lists.new.title_placeholder": "Bagong pangalan ng talaan",
"lists.replies_policy.title": "Ipakita ang mga tugon sa:",
"lists.subheading": "Iyong mga talaan",
"loading_indicator.label": "Kumakarga…",
"navigation_bar.about": "Tungkol dito",
"navigation_bar.blocks": "Nakaharang na mga tagagamit",
"navigation_bar.favourites": "Mga paborito",
"navigation_bar.lists": "Mga listahan",
"navigation_bar.search": "Maghanap",
"notification.admin.report": "Iniulat ni {name} si {target}",
"notification.follow": "Sinundan ka ni {name}",
"notification.follow_request": "Hinihiling ni {name} na sundan ka",
"notification.mention": "Binanggit ka ni {name}",
"notifications.column_settings.admin.report": "Mga bagong ulat:",
"notifications.column_settings.favourite": "Mga paborito:",
"notifications.column_settings.follow": "Mga bagong tagasunod:",
"notifications.column_settings.update": "Mga pagbago:",
"notifications.filter.all": "Lahat",
"onboarding.action.back": "Ibalik mo ako",
"onboarding.actions.back": "Ibalik mo ako",
"onboarding.profile.save_and_continue": "Iimbak at magpatuloy",
"onboarding.share.next_steps": "Mga posibleng susunod na hakbang:",
"poll.voted": "Binoto mo para sa sagot na ito",
"poll_button.remove_poll": "Tanggalin ang boto",
"relative_time.days": "{number}a",
"relative_time.full.days": "{number, plural, one {# araw} other {# na araw}} ang nakalipas",
"relative_time.full.hours": "{number, plural, one {# oras} other {# na oras}} ang nakalipas",
"relative_time.full.just_now": "ngayon lang",
"relative_time.full.minutes": "{number, plural, one {# minuto} other {# na minuto}} ang nakalipas",
"relative_time.full.seconds": "{number, plural, one {# segundo} other {# na segundo}} ang nakalipas",
"relative_time.hours": "{number}o",
"relative_time.just_now": "ngayon",
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"reply_indicator.cancel": "Ipagpaliban",
"report.block": "Harangan",
"report.categories.other": "Iba pa",
"report.category.title": "Sabihin mo sa amin kung anong nangyari sa {type} na ito",
"report.close": "Tapos na",
"report.next": "Sunod",
"report.reasons.violation": "Lumalabag ito sa mga panuntunan ng serbiro",
"report.reasons.violation_description": "Alam mo na lumalabag ito sa mga partikular na panuntunan",
"report.rules.title": "Aling mga patakaran ang nilabag?",
"report.submit": "Isumite",
"report.target": "Iniulat si/ang {target}",
"report.thanks.take_action_actionable": "Habang sinusuri namin ito, maaari kang gumawa ng aksyon laban kay/sa {name}:",
"report.thanks.title": "Ayaw mo bang makita ito?",
"report.thanks.title_actionable": "Salamat sa pag-uulat, titingnan namin ito.",
"report_notification.categories.other": "Iba pa",
"search_results.all": "Lahat",
"server_banner.learn_more": "Matuto nang higit pa",
"status.direct_indicator": "Palihim na banggit",
"status.edit": "Baguhin",
"status.edited": "Binago noong {date}",
"status.edited_x_times": "Binago {count, plural, one {{count} beses} other {{count} na beses}}",
"status.history.created": "Nilikha ni/ng {name} {date}",
"status.history.edited": "Binago ni/ng {name} {date}",
"status.mention": "Banggitin ang/si @{name}",
"status.more": "Higit pa",
"status.reply": "Tumugon",
"status.report": "I-ulat si/ang @{name}",
"status.sensitive_warning": "Sensitibong nilalaman",
"status.share": "Ibahagi",
"status.show_less": "Magpakita ng mas kaunti",
"status.show_less_all": "Magpakita ng mas kaunti para sa lahat",
@ -222,5 +266,12 @@
"status.show_more_all": "Magpakita ng higit pa para sa lahat",
"status.translate": "Isalin",
"status.translated_from_with": "Isalin mula sa {lang} gamit ang {provider}",
"status.uncached_media_warning": "Hindi makuha ang paunang tigin"
"status.uncached_media_warning": "Hindi makuha ang paunang tigin",
"time_remaining.days": "{number, plural, one {# araw} other {# na araw}} ang natitira",
"time_remaining.hours": "{number, plural, one {# oras} other {# na oras}} ang natitira",
"time_remaining.minutes": "{number, plural, one {# minuto} other {# na minuto}} ang natitira",
"time_remaining.seconds": "{number, plural, one {# segundo} other {# na segundo}} ang natitira",
"timeline_hint.remote_resource_not_displayed": "Hindi ipinapakita ang {resource} mula sa ibang mga serbiro.",
"timeline_hint.resources.followers": "Mga tagasunod",
"timeline_hint.resources.follows": "Mga sinusundan"
}

View file

@ -2,6 +2,10 @@
"about.blocks": "Servitores moderate",
"about.contact": "Contacto:",
"about.disclaimer": "Mastodon es software libere, de codice aperte, e un marca de Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Ration non disponibile",
"about.domain_blocks.silenced.title": "Limitate",
"about.domain_blocks.suspended.title": "Suspendite",
"about.not_available": "Iste information non faceva disponibile in iste servitor.",
"about.rules": "Regulas del servitor",
"account.account_note_header": "Nota",
"account.add_or_remove_from_list": "Adder o remover ab listas",
@ -12,6 +16,7 @@
"account.blocked": "Blocate",
"account.browse_more_on_origin_server": "Navigar plus sur le profilo original",
"account.copy": "Copiar ligamine a profilo",
"account.direct": "Mentionar privatemente a @{name}",
"account.disable_notifications": "Stoppar le notificationes quando @{name} publica",
"account.domain_blocked": "Dominio blocate",
"account.edit_profile": "Modificar profilo",
@ -33,6 +38,7 @@
"account.languages": "Cambiar le linguas subscribite",
"account.link_verified_on": "Le proprietate de iste ligamine esseva verificate le {date}",
"account.locked_info": "Le stato de confidentialitate de iste conto es definite a blocate. Le proprietario revisa manualmente qui pote sequer lo.",
"account.media": "Multimedia",
"account.mention": "Mentionar @{name}",
"account.moved_to": "{name} indicava que lor nove conto ora es:",
"account.mute": "Silentiar @{name}",
@ -57,6 +63,7 @@
"account.unmute_notifications_short": "Non plus silentiar le notificationes",
"account.unmute_short": "Non plus silentiar",
"account_note.placeholder": "Clicca pro adder un nota",
"admin.dashboard.retention.average": "Median",
"admin.dashboard.retention.cohort_size": "Nove usatores",
"admin.impact_report.instance_followers": "Sequitores que nostre usatores poterea perder",
"admin.impact_report.instance_follows": "Sequitores que lor usatores poterea perder",
@ -69,6 +76,7 @@
"bundle_column_error.return": "Retornar al initio",
"bundle_modal_error.close": "Clauder",
"bundle_modal_error.retry": "Tentar novemente",
"closed_registrations_modal.description": "Crear un conto in {domain} actualmente non es possibile, ma considera que tu non besonia un conto specific in {domain} pro usar Mastodon.",
"closed_registrations_modal.find_another_server": "Trovar altere servitor",
"column.about": "A proposito de",
"column.blocks": "Usatores blocate",
@ -105,6 +113,7 @@
"compose_form.poll.option_placeholder": "Option {number}",
"compose_form.poll.single": "Seliger un",
"compose_form.poll.switch_to_multiple": "Cambiar inquesta pro permitter selectiones multiple",
"compose_form.poll.switch_to_single": "Cambiar inquesta pro permitter selection singule",
"compose_form.poll.type": "Stylo",
"compose_form.publish": "Publicar",
"compose_form.publish_form": "Nove message",
@ -117,6 +126,8 @@
"confirmations.block.block_and_report": "Blocar e signalar",
"confirmations.block.confirm": "Blocar",
"confirmations.block.message": "Es tu secur que tu vole blocar {name}?",
"confirmations.cancel_follow_request.confirm": "Retirar requesta",
"confirmations.cancel_follow_request.message": "Es tu secur que tu vole retirar tu requesta a sequer a {name}?",
"confirmations.delete.confirm": "Deler",
"confirmations.delete.message": "Es tu secur que tu vole deler iste message?",
"confirmations.delete_list.confirm": "Deler",
@ -144,6 +155,7 @@
"disabled_account_banner.account_settings": "Parametros de conto",
"disabled_account_banner.text": "Tu conto {disabledAccount} es actualmente disactivate.",
"dismissable_banner.dismiss": "Dimitter",
"embed.preview": "Hic es como il parera:",
"emoji_button.activity": "Activitate",
"emoji_button.clear": "Rader",
"emoji_button.custom": "Personalisate",
@ -162,6 +174,11 @@
"empty_column.account_timeline": "Nulle messages hic!",
"empty_column.account_unavailable": "Profilo non disponibile",
"empty_column.blocks": "Tu non ha blocate alcun usator ancora.",
"empty_column.domain_blocks": "Il non ha dominios blocate ancora.",
"empty_column.explore_statuses": "Nihil es in tendentias ora mesme. Retorna postea!",
"empty_column.favourited_statuses": "Tu non ha necun messages favorite ancora. Quando tu marca un como favorito, ille essera monstrate hic.",
"empty_column.followed_tags": "Tu ancora non ha sequite necun hashtags. Quando tu lo face, illes essera monstrate hic.",
"empty_column.hashtag": "Ancora non il ha nihil in iste hashtag.",
"errors.unexpected_crash.report_issue": "Signalar un defecto",
"explore.search_results": "Resultatos de recerca",
"explore.suggested_follows": "Personas",
@ -320,6 +337,8 @@
"report.placeholder": "Commentos additional",
"report.reasons.dislike": "Non me place",
"report_notification.categories.other": "Alteres",
"report_notification.open": "Aperir reporto",
"search.no_recent_searches": "Nulle recercas recente",
"search.quick_action.go_to_account": "Vader al profilo {x}",
"search.quick_action.go_to_hashtag": "Vader al hashtag {x}",
"search.quick_action.open_url": "Aperir URL in Mastodon",
@ -333,14 +352,20 @@
"search_results.hashtags": "Hashtags",
"search_results.see_all": "Vider toto",
"search_results.statuses": "Messages",
"server_banner.active_users": "usatores active",
"server_banner.learn_more": "Apprender plus",
"server_banner.server_stats": "Statos del servitor:",
"sign_in_banner.create_account": "Crear un conto",
"sign_in_banner.sign_in": "Initiar le session",
"status.block": "Blocar @{name}",
"status.copy": "Copiar ligamine a message",
"status.delete": "Deler",
"status.direct": "Mentionar privatemente a @{name}",
"status.direct_indicator": "Mention private",
"status.edit": "Modificar",
"status.edited": "Modificate le {date}",
"status.edited_x_times": "Modificate {count, plural, one {{count} tempore} other {{count} tempores}}",
"status.favourite": "Adder al favoritos",
"status.filter": "Filtrar iste message",
"status.hide": "Celar le message",
"status.history.created": "create per {name} le {date}",
@ -351,12 +376,17 @@
"status.mute_conversation": "Silentiar conversation",
"status.read_more": "Leger plus",
"status.share": "Compartir",
"status.show_less": "Monstrar minus",
"status.show_more": "Monstrar plus",
"status.translate": "Traducer",
"status.translated_from_with": "Traducite ab {lang} usante {provider}",
"status.uncached_media_warning": "Previsualisation non disponibile",
"subscribed_languages.save": "Salveguardar le cambiamentos",
"tabs_bar.home": "Initio",
"tabs_bar.notifications": "Notificationes",
"timeline_hint.resources.statuses": "Messages ancian",
"trends.trending_now": "Ora in tendentias",
"upload_button.label": "Adde imagines, un video o un file de audio",
"upload_modal.choose_image": "Seliger un imagine",
"upload_modal.detect_text": "Deteger texto ab un pictura",
"video.close": "Clauder le video",

View file

@ -158,6 +158,7 @@
"compose_form.save_changes": "Actualisar",
"compose_form.spoiler.marked": "Remover avise pri li contenete",
"compose_form.spoiler.unmarked": "Adjunter avise pri li contenete",
"compose_form.spoiler_placeholder": "Advertiment de contenete (optional)",
"confirmation_modal.cancel": "Anullar",
"confirmations.block.block_and_report": "Bloccar & Raportar",
"confirmations.block.confirm": "Bloccar",
@ -276,6 +277,12 @@
"follow_request.authorize": "Autorisar",
"follow_request.reject": "Rejecter",
"follow_requests.unlocked_explanation": "Benque tu conto ne es cludet, li administratores de {domain} pensat que tu fórsan vell voler tractar seque-petitiones de tis-ci contos manualmen.",
"follow_suggestions.curated_suggestion": "Selection del Servitor",
"follow_suggestions.dismiss": "Ne monstrar plu",
"follow_suggestions.personalized_suggestion": "Personalisat suggestion",
"follow_suggestions.popular_suggestion": "Populari suggestion",
"follow_suggestions.view_all": "Vider omnicos",
"follow_suggestions.who_to_follow": "Persones a sequer",
"followed_tags": "Sequet hashtags",
"footer.about": "Information",
"footer.directory": "Profilarium",
@ -517,11 +524,15 @@
"poll_button.add_poll": "Adjunter un balotation",
"poll_button.remove_poll": "Remover balotation",
"privacy.change": "Changear li privatie del posta",
"privacy.direct.long": "Omnes mentionat in li posta",
"privacy.direct.short": "Specific persones",
"privacy.private.long": "Solmen tui sequitores",
"privacy.private.short": "Sequitores",
"privacy.public.long": "Quicunc in e ex Mastodon",
"privacy.public.short": "Public",
"privacy.unlisted.additional": "It acte just quam public, except que li posta ne va aparir in tendentie o hashtags, explorar, o sercha de Mastodon, mem si tu ha optet por les sur tui tot conto.",
"privacy.unlisted.long": "Minu fanfare algoritmic",
"privacy.unlisted.short": "Quiet public",
"privacy_policy.last_updated": "Ultimmen actualisat ye {date}",
"privacy_policy.title": "Politica pri Privatie",
"recommended": "Recomandat",
@ -539,7 +550,9 @@
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"relative_time.today": "hodie",
"reply_indicator.attachments": "{count, plural, one {# atachament} other {# atachamentes}}",
"reply_indicator.cancel": "Anullar",
"reply_indicator.poll": "Balotar",
"report.block": "Bloccar",
"report.block_explanation": "Tu ne va vider su postas. Li usator ni va posser vider tui postas, ni sequer te, ni va posser saver pri li statu de esser bloccat.",
"report.categories.legal": "Legal",

View file

@ -11,11 +11,13 @@
"account.blocked": "Yettusewḥel",
"account.browse_more_on_origin_server": "Snirem ugar deg umeɣnu aneẓli",
"account.cancel_follow_request": "Withdraw follow request",
"account.copy": "Nɣel assaɣ ɣer umaɣnu",
"account.disable_notifications": "Ḥbes ur iyi-d-ttazen ara ilɣa mi ara d-isuffeɣ @{name}",
"account.domain_blocked": "Taɣult yeffren",
"account.edit_profile": "Ẓreg amaɣnu",
"account.enable_notifications": "Azen-iyi-d ilɣa mi ara d-isuffeɣ @{name}",
"account.endorse": "Welleh fell-as deg umaɣnu-inek",
"account.featured_tags.last_status_never": "Ulac tisuffaɣ",
"account.follow": "Ḍfer",
"account.followers": "Imeḍfaren",
"account.followers.empty": "Ar tura, ulac yiwen i yeṭṭafaṛen amseqdac-agi.",
@ -24,6 +26,7 @@
"account.follows.empty": "Ar tura, amseqdac-agi ur yeṭṭafaṛ yiwen.",
"account.go_to_profile": "Ddu ɣer umaɣnu",
"account.hide_reblogs": "Ffer ayen i ibeṭṭu @{name}",
"account.joined_short": "Izeddi da",
"account.link_verified_on": "Taɣara n useɣwen-a tettwasenqed ass n {date}",
"account.locked_info": "Amiḍan-agi uslig isekweṛ. D bab-is kan i izemren ad yeǧǧ, s ufus-is, win ara t-iḍefṛen.",
"account.media": "Timidyatin",
@ -65,7 +68,8 @@
"bundle_modal_error.message": "Tella-d kra n tuccḍa mi d-yettali ugbur-agi.",
"bundle_modal_error.retry": "Ɛreḍ tikelt-nniḍen",
"closed_registrations_modal.find_another_server": "Aff-d aqeddac nniḍen",
"column.about": "Γef",
"closed_registrations_modal.title": "Ajerred deg Masṭudun",
"column.about": "Ɣef",
"column.blocks": "Imiḍanen yettusḥebsen",
"column.bookmarks": "Ticraḍ",
"column.community": "Tasuddemt tadigant",
@ -77,7 +81,7 @@
"column.lists": "Tibdarin",
"column.mutes": "Imiḍanen yettwasgugmen",
"column.notifications": "Tilɣa",
"column.pins": "Tijewwaqin yettwasenṭḍen",
"column.pins": "Tisuffaɣ yettwasenṭḍen",
"column.public": "Tasuddemt tamatut",
"column_back_button.label": "Tuɣalin",
"column_header.hide_settings": "Ffer iɣewwaṛen",
@ -88,32 +92,38 @@
"column_header.unpin": "Kkes asenteḍ",
"column_subheading.settings": "Iɣewwaṛen",
"community.column_settings.local_only": "Adigan kan",
"community.column_settings.media_only": "Allal n teywalt kan",
"community.column_settings.media_only": "Imidyaten kan",
"community.column_settings.remote_only": "Anmeggag kan",
"compose.language.change": "Beddel tutlayt",
"compose.language.search": "Nadi tutlayin …",
"compose.published.open": "Ldi",
"compose.saved.body": "Tettwasekles tsuffeɣt.",
"compose_form.direct_message_warning_learn_more": "Issin ugar",
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
"compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
"compose_form.encryption_warning": "",
"compose_form.hashtag_warning": "",
"compose_form.lock_disclaimer": "Amiḍan-ik·im ur yelli ara {locked}. Menwala yezmer ad k·kem-yeḍfeṛ akken ad iẓer acu tbeṭṭuḍ akked yimeḍfaṛen-ik·im.",
"compose_form.lock_disclaimer.lock": "yettwacekkel",
"compose_form.placeholder": "D acu i itezzin deg wallaɣ?",
"compose_form.poll.duration": "Tanzagt n tefrant",
"compose_form.poll.option_placeholder": "Taxtiṛt {number}",
"compose_form.poll.single": "Fren yiwen",
"compose_form.publish_form": "Suffeɣ",
"compose_form.publish": "Suffeɣ",
"compose_form.publish_form": "Tasuffeɣt tamaynut",
"compose_form.reply": "Err",
"compose_form.save_changes": "Leqqem",
"compose_form.spoiler.marked": "Kkes aḍris yettwaffren deffir n walɣu",
"compose_form.spoiler.unmarked": "Rnu aḍris yettwaffren deffir n walɣu",
"confirmation_modal.cancel": "Sefsex",
"confirmations.block.block_and_report": "Sewḥel & sewɛed",
"confirmations.block.confirm": "Sewḥel",
"confirmations.block.message": "Tebγiḍ s tidet ad tesḥebseḍ {name}?",
"confirmations.block.message": "Tebɣiḍ s tidet ad tesḥebseḍ {name}?",
"confirmations.delete.confirm": "Kkes",
"confirmations.delete.message": "Tebɣiḍ s tidet ad tekkseḍ tasuffeɣt-agi?",
"confirmations.delete_list.confirm": "Kkes",
"confirmations.delete_list.message": "Tebɣiḍ s tidet ad tekkseḍ umuɣ-agi i lebda?",
"confirmations.discard_edit_media.confirm": "Sefsex",
"confirmations.domain_block.confirm": "Ffer taɣult meṛṛa",
"confirmations.edit.confirm": "Ẓreg",
"confirmations.logout.confirm": "Ffeɣ",
"confirmations.logout.message": "D tidet tebɣiḍ ad teffɣeḍ?",
"confirmations.mute.confirm": "Sgugem",
@ -133,12 +143,13 @@
"directory.local": "Seg {domain} kan",
"directory.new_arrivals": "Imaynuten id yewḍen",
"directory.recently_active": "Yermed xas melmi kan",
"disabled_account_banner.account_settings": "Iγewwaṛen n umiḍan",
"disabled_account_banner.account_settings": "Iɣewwaṛen n umiḍan",
"dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
"dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
"embed.instructions": "Ẓẓu addad-agi deg usmel-inek s wenγal n tangalt yellan sdaw-agi.",
"embed.preview": "Akka ara d-iban:",
"emoji_button.activity": "Aqeddic",
"emoji_button.clear": "Sfeḍ",
"emoji_button.custom": "Udmawan",
"emoji_button.flags": "Innayen",
"emoji_button.food": "Tegwella & Tissit",
@ -153,10 +164,10 @@
"emoji_button.symbols": "Izamulen",
"emoji_button.travel": "Imeḍqan d Yinigen",
"empty_column.account_suspended": "Amiḍan yettwaḥbas",
"empty_column.account_timeline": "Ulac tijewwaqin dagi!",
"empty_column.account_timeline": "Ulac tisuffaɣ da !",
"empty_column.account_unavailable": "Ur nufi ara amaɣnu-ayi",
"empty_column.blocks": "Ur tesḥebseḍ ula yiwen n umseqdac ar tura.",
"empty_column.bookmarked_statuses": "Ulac tijewwaqin i terniḍ ɣer yismenyifen-ik ar tura. Ticki terniḍ yiwet, ad d-tettwasken da.",
"empty_column.bookmarked_statuses": "Ulac kra n tsuffeɣt i terniḍ ɣer yismenyifen-ik·im ar tura. Ticki terniḍ yiwet, ad d-tettwasken da.",
"empty_column.community": "Tasuddemt tazayezt tadigant n yisallen d tilemt. Aru ihi kra akken ad tt-teččareḍ!",
"empty_column.domain_blocks": "Ulac kra n taɣult yettwaffren ar tura.",
"empty_column.follow_requests": "Ulac ɣur-k ula yiwen n usuter n teḍfeṛt. Ticki teṭṭfeḍ-d yiwen ad d-yettwasken da.",
@ -174,7 +185,7 @@
"explore.suggested_follows": "Imdanen",
"explore.title": "Snirem",
"explore.trending_links": "Isallen",
"explore.trending_statuses": "Tisuffiɣin",
"explore.trending_statuses": "Tisuffaɣ",
"explore.trending_tags": "Ihacṭagen",
"filter_modal.added.settings_link": "asebter n yiɣewwaṛen",
"filter_modal.select_filter.prompt_new": "Taggayt tamaynutt : {name}",
@ -183,8 +194,10 @@
"firehose.local": "Deg uqeddac-ayi",
"follow_request.authorize": "Ssireg",
"follow_request.reject": "Agi",
"footer.about": "Γef",
"footer.directory": "Akaram n imaγnuten",
"follow_suggestions.who_to_follow": "Menhu ara ḍefṛeḍ",
"followed_tags": "Ihacṭagen yettwaḍfaren",
"footer.about": "Ɣef",
"footer.directory": "Akaram n imaɣnuten",
"footer.get_app": "Awi-d asnas",
"footer.invite": "Ɛreḍ-d kra n yimdanen",
"footer.keyboard_shortcuts": "Inegzumen n unasiw",
@ -201,12 +214,15 @@
"hashtag.column_settings.tag_mode.any": "Yiwen seg-sen",
"hashtag.column_settings.tag_mode.none": "Yiwen ala seg-sen",
"hashtag.column_settings.tag_toggle": "Glu-d s yihacṭagen imerna i ujgu-agi",
"hashtag.counter_by_uses": "{count, plural, one {{counter} n tsuffeɣt} other {{counter} n tsuffaɣ}}",
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} n tsuffeɣt} other {{counter} n tsuffaɣ}} assa",
"hashtag.follow": "Ḍfeṛ ahacṭag",
"home.column_settings.basic": "Igejdanen",
"home.column_settings.show_reblogs": "Ssken-d beṭṭu",
"home.column_settings.show_replies": "Ssken-d tiririyin",
"home.hide_announcements": "Ffer ulɣuyen",
"home.show_announcements": "Ssken-d ulɣuyen",
"interaction_modal.no_account_yet": "Ulac-ik·ikem deg Maṣṭudun?",
"interaction_modal.on_this_server": "Deg uqeddac-ayi",
"interaction_modal.title.follow": "Ḍfer {name}",
"intervals.full.days": "{number, plural, one {# n wass} other {# n wussan}}",
@ -247,8 +263,8 @@
"lightbox.close": "Mdel",
"lightbox.compress": "Ḥemmeẓ tamnaḍt n uskan n tugna",
"lightbox.expand": "Simeɣer tamnaḍt n uskan n tugna",
"lightbox.next": "Γer zdat",
"lightbox.previous": "Γer deffir",
"lightbox.next": "Ɣer zdat",
"lightbox.previous": "Ɣer deffir",
"link_preview.author": "S-ɣur {name}",
"lists.account.add": "Rnu ɣer tebdart",
"lists.account.remove": "Kkes seg tebdart",
@ -264,11 +280,12 @@
"lists.search": "Nadi gar yemdanen i teṭṭafaṛeḍ",
"lists.subheading": "Tibdarin-ik·im",
"load_pending": "{count, plural, one {# n uferdis amaynut} other {# n yiferdisen imaynuten}}",
"media_gallery.toggle_visible": "Ffer {number, plural, one {tugna} other {tugniwin}}",
"loading_indicator.label": "Yessalay-d …",
"media_gallery.toggle_visible": "{number, plural, one {Ffer tugna} other {Ffer tugniwin}}",
"mute_modal.duration": "Tanzagt",
"mute_modal.hide_notifications": "Tebɣiḍ ad teffreḍ talɣutin n umseqdac-a?",
"mute_modal.indefinite": "Ur yettwasbadu ara",
"navigation_bar.about": "Γef",
"navigation_bar.about": "Ɣef",
"navigation_bar.blocks": "Imseqdacen yettusḥebsen",
"navigation_bar.bookmarks": "Ticraḍ",
"navigation_bar.community_timeline": "Tasuddemt tadigant",
@ -279,18 +296,19 @@
"navigation_bar.favourites": "Imenyafen",
"navigation_bar.filters": "Awalen i yettwasgugmen",
"navigation_bar.follow_requests": "Isuturen n teḍfeṛt",
"navigation_bar.followed_tags": "Ihacṭagen yettwaḍfaren",
"navigation_bar.follows_and_followers": "Imeḍfaṛen akked wid i teṭṭafaṛeḍ",
"navigation_bar.lists": "Tibdarin",
"navigation_bar.logout": "Ffeɣ",
"navigation_bar.mutes": "Iseqdacen yettwasusmen",
"navigation_bar.personal": "Udmawan",
"navigation_bar.pins": "Tijewwiqin yettwasentḍen",
"navigation_bar.pins": "Tisuffaɣ yettwasenṭḍen",
"navigation_bar.preferences": "Imenyafen",
"navigation_bar.public_timeline": "Tasuddemt tazayezt tamatut",
"navigation_bar.search": "Nadi",
"navigation_bar.security": "Taɣellist",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.follow": "{name} yeṭṭafaṛ-ik",
"notification.follow": "iṭṭafar-ik·em-id {name}",
"notification.follow_request": "{name} yessuter-d ad k-yeḍfeṛ",
"notification.mention": "{name} yebder-ik-id",
"notification.own_poll": "Tafrant-ik·im tfuk",
@ -311,7 +329,7 @@
"notifications.column_settings.reblog": "Seǧhed:",
"notifications.column_settings.show": "Ssken-d tilɣa deg ujgu",
"notifications.column_settings.sound": "Rmed imesli",
"notifications.column_settings.status": "Tiẓenẓunin timaynutin:",
"notifications.column_settings.status": "Tisuffaɣ timaynutin :",
"notifications.filter.all": "Akk",
"notifications.filter.boosts": "Seǧhed",
"notifications.filter.favourites": "Imenyafen",
@ -325,11 +343,15 @@
"notifications.permission_denied": "D awezɣi ad yili wermad n yilɣa n tnarit axateṛ turagt tettwagdel.",
"notifications_permission_banner.enable": "Rmed talɣutin n tnarit",
"notifications_permission_banner.title": "Ur zeggel acemma",
"onboarding.action.back": "Tuɣalin ɣer deffir",
"onboarding.actions.back": "Tuɣalin ɣer deffir",
"onboarding.actions.go_to_explore": "See what's trending",
"onboarding.actions.go_to_home": "Go to your home feed",
"onboarding.compose.template": "Azul a #Mastodon!",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Popular on Mastodon",
"onboarding.profile.display_name": "Isem ara d-yettwaskanen",
"onboarding.share.title": "Bḍu amaɣnu-inek·inem",
"onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:",
"onboarding.start.skip": "Want to skip right ahead?",
"onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.",
@ -340,7 +362,7 @@
"onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
"onboarding.steps.share_profile.title": "Share your profile",
"picture_in_picture.restore": "Err-it amkan-is",
"poll.closed": "Ifukk",
"poll.closed": "Tfukk",
"poll.refresh": "Smiren",
"poll.total_people": "{count, plural, one {# n wemdan} other {# n yemdanen}}",
"poll.total_votes": "{count, plural, one {# n udɣaṛ} other {# n yedɣaṛen}}",
@ -349,6 +371,7 @@
"poll_button.add_poll": "Rnu asenqed",
"poll_button.remove_poll": "Kkes asenqed",
"privacy.change": "Seggem tabaḍnit n yizen",
"privacy.private.short": "Imeḍfaren",
"privacy.public.short": "Azayez",
"privacy_policy.title": "Tasertit tabaḍnit",
"refresh": "Smiren",
@ -365,7 +388,7 @@
"report.block": "Sewḥel",
"report.categories.other": "Tiyyaḍ",
"report.categories.spam": "Aspam",
"report.category.title_account": "ameγnu",
"report.category.title_account": "ameɣnu",
"report.category.title_status": "tasuffeɣt",
"report.close": "Immed",
"report.forward": "Bren-it ɣeṛ {target}",
@ -383,8 +406,10 @@
"report_notification.open": "Ldi aneqqis",
"search.placeholder": "Nadi",
"search.search_or_paste": "Nadi neɣ senṭeḍ URL",
"search_popout.user": "amseqdac",
"search_results.all": "Akk",
"search_results.hashtags": "Ihacṭagen",
"search_results.see_all": "Wali-ten akk",
"search_results.statuses": "Tisuffaɣ",
"search_results.title": "Anadi ɣef {q}",
"server_banner.administered_by": "Yettwadbel sɣur :",
@ -404,8 +429,9 @@
"status.edited_x_times": "Tettwaẓreg {count, plural, one {{count} n tikkelt} other {{count} n tikkal}}",
"status.embed": "Seddu",
"status.filtered": "Yettwasizdeg",
"status.hide": "Ffer tasuffeɣt",
"status.load_more": "Sali ugar",
"status.media_hidden": "Taɣwalt tettwaffer",
"status.media_hidden": "Amidya yettwaffer",
"status.mention": "Bder-d @{name}",
"status.more": "Ugar",
"status.mute": "Sussem @{name}",
@ -425,7 +451,7 @@
"status.sensitive_warning": "Agbur amḥulfu",
"status.share": "Bḍu",
"status.show_less": "Ssken-d drus",
"status.show_less_all": "Semẓi akk tisuffγin",
"status.show_less_all": "Semẓi akk tisuffɣin",
"status.show_more": "Ssken-d ugar",
"status.show_more_all": "Ẓerr ugar lebda",
"status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}",
@ -444,7 +470,7 @@
"timeline_hint.remote_resource_not_displayed": "{resource} seg yiqeddacen-nniḍen ur d-ttwaskanent ara.",
"timeline_hint.resources.followers": "Imeḍfaṛen",
"timeline_hint.resources.follows": "T·Yeṭafaṛ",
"timeline_hint.resources.statuses": "Tijewwaqin tiqdimin",
"timeline_hint.resources.statuses": "Tisuffaɣ tiqdimin",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {# days}}",
"trends.trending_now": "Ayen mucaɛen tura",
"ui.beforeunload": "Arewway-ik·im ad iruḥ ma yella tefeɣ-d deg Maṣṭudun.",
@ -465,7 +491,7 @@
"upload_modal.choose_image": "Fren tugna",
"upload_modal.description_placeholder": "Aberraɣ arurad ineggez nnig n uqjun amuṭṭis",
"upload_modal.detect_text": "Sefru-d aḍris seg tugna",
"upload_modal.edit_media": "Ẓreg taɣwalt",
"upload_modal.edit_media": "Ẓreg amidya",
"upload_modal.preparing_ocr": "Aheyyi n OCR…",
"upload_modal.preview_label": "Taskant ({ratio})",
"upload_progress.label": "Asali iteddu...",

View file

@ -21,6 +21,7 @@
"account.blocked": "Disekat",
"account.browse_more_on_origin_server": "Layari selebihnya di profil asal",
"account.cancel_follow_request": "Menarik balik permintaan mengikut",
"account.copy": "Salin pautan ke profil",
"account.direct": "Sebut secara persendirian @{name}",
"account.disable_notifications": "Berhenti maklumkan saya apabila @{name} mengirim hantaran",
"account.domain_blocked": "Domain disekat",
@ -31,6 +32,7 @@
"account.featured_tags.last_status_never": "Tiada hantaran",
"account.featured_tags.title": "Tanda pagar pilihan {name}",
"account.follow": "Ikuti",
"account.follow_back": "Ikut balik",
"account.followers": "Pengikut",
"account.followers.empty": "Belum ada yang mengikuti pengguna ini.",
"account.followers_counter": "{count, plural, one {{counter} Pengikut} other {{counter} Pengikut}}",
@ -51,6 +53,7 @@
"account.mute_notifications_short": "Redam pemberitahuan",
"account.mute_short": "Redam",
"account.muted": "Dibisukan",
"account.mutual": "Rakan kongsi",
"account.no_bio": "Tiada penerangan diberikan.",
"account.open_original_page": "Buka halaman asal",
"account.posts": "Hantaran",
@ -143,11 +146,19 @@
"compose_form.lock_disclaimer.lock": "dikunci",
"compose_form.placeholder": "Apakah yang sedang anda fikirkan?",
"compose_form.poll.duration": "Tempoh undian",
"compose_form.poll.multiple": "Pelbagai pilihan",
"compose_form.poll.option_placeholder": "Pilihan {number}",
"compose_form.poll.single": "Pilih satu",
"compose_form.poll.switch_to_multiple": "Ubah kepada membenarkan aneka undian",
"compose_form.poll.switch_to_single": "Ubah kepada undian pilihan tunggal",
"compose_form.poll.type": "Gaya",
"compose_form.publish": "Siaran",
"compose_form.publish_form": "Terbit",
"compose_form.reply": "Balas",
"compose_form.save_changes": "Kemas kini",
"compose_form.spoiler.marked": "Buang amaran kandungan",
"compose_form.spoiler.unmarked": "Tambah amaran kandungan",
"compose_form.spoiler_placeholder": "Amaran kandungan (pilihan)",
"confirmation_modal.cancel": "Batal",
"confirmations.block.block_and_report": "Sekat & Lapor",
"confirmations.block.confirm": "Sekat",
@ -179,6 +190,7 @@
"conversation.mark_as_read": "Tanda sudah dibaca",
"conversation.open": "Lihat perbualan",
"conversation.with": "Dengan {names}",
"copy_icon_button.copied": "Disalin ke papan klip",
"copypaste.copied": "Disalin",
"copypaste.copy_to_clipboard": "Salin ke papan klip",
"directory.federated": "Dari fediverse yang diketahui",
@ -210,6 +222,7 @@
"emoji_button.search_results": "Hasil carian",
"emoji_button.symbols": "Simbol",
"emoji_button.travel": "Kembara & Tempat",
"empty_column.account_hides_collections": "Pengguna ini telah memilih untuk tidak menyediakan informasi tersebut",
"empty_column.account_suspended": "Akaun digantung",
"empty_column.account_timeline": "Tiada hantaran di sini!",
"empty_column.account_unavailable": "Profil tidak tersedia",
@ -264,6 +277,11 @@
"follow_request.authorize": "Benarkan",
"follow_request.reject": "Tolak",
"follow_requests.unlocked_explanation": "Walaupun akaun anda tidak dikunci, kakitangan {domain} merasakan anda mungkin ingin menyemak permintaan ikutan daripada akaun ini secara manual.",
"follow_suggestions.curated_suggestion": "Pilihan Editor",
"follow_suggestions.dismiss": "Jangan papar lagi",
"follow_suggestions.personalized_suggestion": "Cadangan peribadi",
"follow_suggestions.popular_suggestion": "Cadangan terkenal",
"follow_suggestions.view_all": "Lihat semua",
"followed_tags": "Topik terpilih",
"footer.about": "Perihal",
"footer.directory": "Direktori profil",
@ -284,6 +302,9 @@
"hashtag.column_settings.tag_mode.any": "Mana-mana daripada yang ini",
"hashtag.column_settings.tag_mode.none": "Tiada apa pun daripada yang ini",
"hashtag.column_settings.tag_toggle": "Sertakan tag tambahan untuk lajur ini",
"hashtag.counter_by_accounts": "{count, plural, other {{counter} peserta}}",
"hashtag.counter_by_uses": "{count, plural, other {{counter} siaran}}",
"hashtag.counter_by_uses_today": "{count, plural, other {{counter} siaran}} hari ini",
"hashtag.follow": "Ikuti hashtag",
"hashtag.unfollow": "Nyahikut tanda pagar",
"hashtags.and_other": "…dan {count, plural, other {# more}}",
@ -370,6 +391,7 @@
"lists.search": "Cari dalam kalangan orang yang anda ikuti",
"lists.subheading": "Senarai anda",
"load_pending": "{count, plural, one {# item baharu} other {# item baharu}}",
"loading_indicator.label": "Memuatkan…",
"media_gallery.toggle_visible": "{number, plural, other {Sembunyikan imej}}",
"moved_to_account_banner.text": "Akaun anda {disabledAccount} kini dinyahdayakan kerana anda berpindah ke {movedToAccount}.",
"mute_modal.duration": "Tempoh",
@ -457,6 +479,11 @@
"onboarding.follows.empty": "Malangnya, tiada hasil dapat ditunjukkan sekarang. Anda boleh cuba menggunakan carian atau menyemak imbas halaman teroka untuk mencari orang untuk diikuti atau cuba lagi kemudian.",
"onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!",
"onboarding.follows.title": "Popular on Mastodon",
"onboarding.profile.display_name": "Nama paparan",
"onboarding.profile.display_name_hint": "Nama penuh anda atau nama anda yang menyeronokkan…",
"onboarding.profile.note_hint": "Anda boleh @menyebut orang lain atau #hashtags…",
"onboarding.profile.save_and_continue": "Simpan dan teruskan",
"onboarding.profile.upload_avatar": "Muat naik gambar profil",
"onboarding.share.lead": "Beritahu orang ramai bagaimana mereka boleh menemui anda di Mastodon!",
"onboarding.share.message": "Saya {username} di #Mastodon! Jom ikut saya di {url}",
"onboarding.share.next_steps": "Langkah seterusnya yang mungkin:",
@ -490,9 +517,14 @@
"poll_button.add_poll": "Tambah undian",
"poll_button.remove_poll": "Buang undian",
"privacy.change": "Ubah privasi hantaran",
"privacy.direct.long": "Semua orang yang disebutkan dalam siaran",
"privacy.direct.short": "Orang tertentu",
"privacy.private.long": "Pengikut anda sahaja",
"privacy.private.short": "Pengikut",
"privacy.public.short": "Awam",
"privacy_policy.last_updated": "Dikemaskini {date}",
"privacy_policy.title": "Dasar Privasi",
"recommended": "Disyorkan",
"refresh": "Muat semula",
"regeneration_indicator.label": "Memuatkan…",
"regeneration_indicator.sublabel": "Suapan rumah anda sedang disediakan!",
@ -507,7 +539,9 @@
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"relative_time.today": "hari ini",
"reply_indicator.attachments": "{count, plural, other {# lampiran}}",
"reply_indicator.cancel": "Batal",
"reply_indicator.poll": "Undian",
"report.block": "Sekat",
"report.block_explanation": "Anda tidak akan melihat hantaran mereka. Mereka tidak dapat melihat hantaran anda atau mengikuti anda. Mereka akan sedar bahawa mereka disekat.",
"report.categories.legal": "Sah",

View file

@ -113,7 +113,7 @@
"column.community": "Lokale tijdlijn",
"column.direct": "Privéberichten",
"column.directory": "Gebruikersgids",
"column.domain_blocks": "Geblokkeerde domeinen",
"column.domain_blocks": "Geblokkeerde servers",
"column.favourites": "Favorieten",
"column.firehose": "Openbare tijdlijnen",
"column.follow_requests": "Volgverzoeken",
@ -230,7 +230,7 @@
"empty_column.bookmarked_statuses": "Jij hebt nog geen berichten aan je bladwijzers toegevoegd. Wanneer je er een aan jouw bladwijzers toevoegt, valt deze hier te zien.",
"empty_column.community": "De lokale tijdlijn is nog leeg. Plaats een openbaar bericht om de spits af te bijten!",
"empty_column.direct": "Je hebt nog geen privéberichten. Wanneer je er een verstuurt of ontvangt, zullen deze hier verschijnen.",
"empty_column.domain_blocks": "Er zijn nog geen geblokkeerde domeinen.",
"empty_column.domain_blocks": "Er zijn nog geen geblokkeerde servers.",
"empty_column.explore_statuses": "Momenteel zijn er geen trends. Kom later terug!",
"empty_column.favourited_statuses": "Jij hebt nog geen favoriete berichten. Wanneer je een bericht als favoriet markeert, valt deze hier te zien.",
"empty_column.favourites": "Niemand heeft dit bericht nog als favoriet gemarkeerd. Wanneer iemand dit doet, valt dat hier te zien.",
@ -406,7 +406,7 @@
"navigation_bar.compose": "Nieuw bericht schrijven",
"navigation_bar.direct": "Privéberichten",
"navigation_bar.discover": "Ontdekken",
"navigation_bar.domain_blocks": "Geblokkeerde domeinen",
"navigation_bar.domain_blocks": "Geblokkeerde servers",
"navigation_bar.explore": "Verkennen",
"navigation_bar.favourites": "Favorieten",
"navigation_bar.filters": "Filters",

View file

@ -21,6 +21,8 @@
"account.blocked": "Blocat",
"account.browse_more_on_origin_server": "Vezi mai multe pe profilul original",
"account.cancel_follow_request": "Retrage cererea de urmărire",
"account.copy": "Copiază link-ul profilului",
"account.direct": "Menționează pe @{name} în privat",
"account.disable_notifications": "Nu îmi mai trimite notificări când postează @{name}",
"account.domain_blocked": "Domeniu blocat",
"account.edit_profile": "Modifică profilul",
@ -30,6 +32,7 @@
"account.featured_tags.last_status_never": "Fără postări",
"account.featured_tags.title": "Haștagurile recomandate de {name}",
"account.follow": "Abonează-te",
"account.follow_back": "Urmăreşte înapoi",
"account.followers": "Urmăritori",
"account.followers.empty": "Acest utilizator nu are încă urmăritori.",
"account.followers_counter": "{count, plural, one {Un abonat} few {{counter} abonați} other {{counter} de abonați}}",
@ -38,6 +41,7 @@
"account.follows.empty": "Momentan acest utilizator nu are niciun abonament.",
"account.go_to_profile": "Mergi la profil",
"account.hide_reblogs": "Ascunde distribuirile de la @{name}",
"account.in_memoriam": "În Memoriam.",
"account.joined_short": "Înscris",
"account.languages": "Schimbă limbile abonate",
"account.link_verified_on": "Proprietatea acestui link a fost verificată pe {date}",
@ -46,7 +50,10 @@
"account.mention": "Menționează pe @{name}",
"account.moved_to": "{name} a indicat că noul său cont este acum:",
"account.mute": "Pune pe @{name} pe silențios",
"account.mute_notifications_short": "Amuțește notificările",
"account.mute_short": "Ignoră",
"account.muted": "Pus pe silențios",
"account.no_bio": "Nicio descriere furnizată.",
"account.open_original_page": "Deschide pagina originală",
"account.posts": "Postări",
"account.posts_with_replies": "Postări și răspunsuri",
@ -69,6 +76,7 @@
"admin.dashboard.retention.average": "În medie",
"admin.dashboard.retention.cohort": "Înregistrări lunar",
"admin.dashboard.retention.cohort_size": "Utilizatori noi",
"admin.impact_report.title": "Rezumatul impactului",
"alert.rate_limited.message": "Vă rugăm să reîncercați după {retry_time, time, medium}.",
"alert.rate_limited.title": "Debit limitat",
"alert.unexpected.message": "A apărut o eroare neașteptată.",
@ -98,9 +106,11 @@
"column.blocks": "Utilizatori blocați",
"column.bookmarks": "Marcaje",
"column.community": "Cronologie locală",
"column.direct": "Mențiuni private",
"column.directory": "Explorează profiluri",
"column.domain_blocks": "Domenii blocate",
"column.favourites": "Favorite",
"column.firehose": "Fluxuri live",
"column.follow_requests": "Cereri de abonare",
"column.home": "Acasă",
"column.lists": "Liste",
@ -131,11 +141,19 @@
"compose_form.lock_disclaimer.lock": "privat",
"compose_form.placeholder": "La ce te gândești?",
"compose_form.poll.duration": "Durata sondajului",
"compose_form.poll.multiple": "Alegeri multiple",
"compose_form.poll.option_placeholder": "Opțiune {number}",
"compose_form.poll.single": "Alegeți unul",
"compose_form.poll.switch_to_multiple": "Modifică sondajul pentru a permite mai multe opțiuni",
"compose_form.poll.switch_to_single": "Modifică sondajul pentru a permite o singură opțiune",
"compose_form.poll.type": "Stil",
"compose_form.publish": "Postare",
"compose_form.publish_form": "Publică",
"compose_form.reply": "Răspundeți",
"compose_form.save_changes": "Actualizare",
"compose_form.spoiler.marked": "Elimină avertismentul privind conținutul",
"compose_form.spoiler.unmarked": "Adaugă un avertisment privind conținutul",
"compose_form.spoiler_placeholder": "Atenționare de conținut (opțional)",
"confirmation_modal.cancel": "Anulează",
"confirmations.block.block_and_report": "Blochează și raportează",
"confirmations.block.confirm": "Blochează",
@ -151,6 +169,7 @@
"confirmations.domain_block.confirm": "Blochează întregul domeniu",
"confirmations.domain_block.message": "Ești absolut sigur că vrei să blochezi tot domeniul {domain}? În cele mai multe cazuri, raportarea sau blocarea anumitor lucruri este suficientă și de preferat. Nu vei mai vedea niciun conținut din acest domeniu în vreun flux public sau în vreo notificare. Abonații tăi din acest domeniu vor fi eliminați.",
"confirmations.edit.confirm": "Modifică",
"confirmations.edit.message": "Editarea acum va suprascrie mesajul pe care îl compuneți în prezent. Sunteți sigur că vreți să continuați?",
"confirmations.logout.confirm": "Deconectare",
"confirmations.logout.message": "Ești sigur că vrei să te deconectezi?",
"confirmations.mute.confirm": "Ignoră",
@ -165,6 +184,7 @@
"conversation.mark_as_read": "Marchează ca citit",
"conversation.open": "Vizualizează conversația",
"conversation.with": "Cu {names}",
"copy_icon_button.copied": "Copiat în clipboard",
"copypaste.copied": "Copiat",
"copypaste.copy_to_clipboard": "Copiază în clipboard",
"directory.federated": "Din fediversul cunoscut",
@ -240,10 +260,17 @@
"filter_modal.select_filter.title": "Filtrează această postare",
"filter_modal.title.status": "Filtrează o postare",
"firehose.all": "Toate",
"firehose.local": "Acest Server",
"firehose.remote": "Alte servere",
"follow_request.authorize": "Acceptă",
"follow_request.reject": "Respinge",
"follow_requests.unlocked_explanation": "Chiar dacă contul tău nu este blocat, personalul {domain} a considerat că ai putea prefera să consulți manual cererile de abonare de la aceste conturi.",
"follow_suggestions.curated_suggestion": "Alegerile Editorilor",
"follow_suggestions.dismiss": "Nu mai afișa din nou",
"follow_suggestions.personalized_suggestion": "Sugestie personalizată",
"follow_suggestions.popular_suggestion": "Sugestie populară",
"follow_suggestions.view_all": "Vizualizați tot",
"follow_suggestions.who_to_follow": "Pe cine să urmăriți",
"followed_tags": "Hastaguri urmărite",
"footer.about": "Despre",
"footer.directory": "Catalogul de profiluri",
@ -272,12 +299,15 @@
"home.hide_announcements": "Ascunde anunțurile",
"home.pending_critical_update.body": "Te rugăm să-ți actualizezi serverul de Mastodon cat mai curând posibil!",
"home.pending_critical_update.link": "Vezi noutăți",
"home.pending_critical_update.title": "Actualizare critică de securitate disponibilă!",
"home.show_announcements": "Afișează anunțurile",
"interaction_modal.description.favourite": "Cu un cont pe Mastodon, poți adăuga această postare la favorite pentru a-l informa pe autorul ei că o apreciezi și pentru a o salva pentru mai târziu.",
"interaction_modal.description.follow": "Cu un cont Mastodon, poți urmări pe {name} pentru a vedea postările sale în cronologia ta principală.",
"interaction_modal.description.reblog": "Cu un cont pe Mastodon, poți distribui această postare pentru a le-o arăta și celor abonați ție.",
"interaction_modal.description.reply": "Cu un cont pe Mastodon, poți răspunde acestei postări.",
"interaction_modal.login.action": "Du-mă acasă",
"interaction_modal.login.prompt": "Adresa serverului tău acasă, de ex. mastodon.social",
"interaction_modal.no_account_yet": "Nu ești încă pe Mastodon?",
"interaction_modal.on_another_server": "Pe un alt server",
"interaction_modal.on_this_server": "Pe acest server",
"interaction_modal.title.follow": "Urmărește pe {name}",

View file

@ -277,8 +277,10 @@
"follow_request.authorize": "Povoľ prístup",
"follow_request.reject": "Odmietni",
"follow_requests.unlocked_explanation": "Síce Váš učet nie je uzamknutý, ale {domain} tím si myslel že môžete chcieť skontrolovať žiadosti o sledovanie z týchto účtov manuálne.",
"follow_suggestions.curated_suggestion": "Výber zo servera",
"follow_suggestions.dismiss": "Znovu nezobrazuj",
"follow_suggestions.personalized_suggestion": "Prispôsobené odporúčania",
"follow_suggestions.popular_suggestion": "Populárne návrhy",
"follow_suggestions.view_all": "Zobraz všetky",
"follow_suggestions.who_to_follow": "Koho nasledovať",
"followed_tags": "Nasledované haštagy",
@ -354,7 +356,7 @@
"keyboard_shortcuts.muted": "otvor zoznam stíšených užívateľov",
"keyboard_shortcuts.my_profile": "otvor svoj profil",
"keyboard_shortcuts.notifications": "Otvor panel oznámení",
"keyboard_shortcuts.open_media": "na otvorenie médií",
"keyboard_shortcuts.open_media": "Otvorenie médií",
"keyboard_shortcuts.pinned": "otvor zoznam pripnutých príspevkov",
"keyboard_shortcuts.profile": "otvor autorov profil",
"keyboard_shortcuts.reply": "odpovedať",
@ -363,7 +365,7 @@
"keyboard_shortcuts.spoilers": "to show/hide CW field",
"keyboard_shortcuts.start": "otvor panel ''začíname''",
"keyboard_shortcuts.toggle_hidden": "ukáž/skry text za CW",
"keyboard_shortcuts.toggle_sensitivity": "pre zobrazenie/skrytie médií",
"keyboard_shortcuts.toggle_sensitivity": "Ukáž/skry médiá",
"keyboard_shortcuts.toot": "začni úplne nový príspevok",
"keyboard_shortcuts.unfocus": "nesústreď sa na písaciu plochu, alebo hľadanie",
"keyboard_shortcuts.up": "posuň sa vyššie v zozname",
@ -492,7 +494,7 @@
"onboarding.share.message": "Na Mastodone som {username}. Príď ma nasledovať na {url}",
"onboarding.share.next_steps": "Ďalšie možné kroky:",
"onboarding.share.title": "Zdieľaj svoj profil",
"onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:",
"onboarding.start.lead": "Teraz si súčasťou Mastodonu, unikátnej, decentralizovanej sociálnej platformy, kde ty, nie algoritmus, spravuješ svoj vlastný zážitok. Poďme ťa naštartovať na tomto novom sociálnom pomedzí:",
"onboarding.start.skip": "Want to skip right ahead?",
"onboarding.start.title": "Zvládli ste to!",
"onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.",
@ -521,8 +523,13 @@
"poll_button.add_poll": "Pridaj anketu",
"poll_button.remove_poll": "Odstráň anketu",
"privacy.change": "Uprav súkromie príspevku",
"privacy.direct.long": "Všetci spomenutí v príspevku",
"privacy.direct.short": "Konkrétni ľudia",
"privacy.private.long": "Iba tvoji nasledovatelia",
"privacy.private.short": "Sledovatelia",
"privacy.public.long": "Ktokoľvek na, aj mimo Mastodonu",
"privacy.public.short": "Verejné",
"privacy.unlisted.short": "Verejný v tichosti",
"privacy_policy.last_updated": "Posledná úprava {date}",
"privacy_policy.title": "Zásady súkromia",
"recommended": "Odporúčané",
@ -700,7 +707,7 @@
"units.short.million": "{count}mil.",
"units.short.thousand": "{count}tis.",
"upload_area.title": "Pretiahni a pusť pre nahratie",
"upload_button.label": "Pridaj médiálny súbor (JPEG, PNG, GIF, WebM, MP4, MOV)",
"upload_button.label": "Pridaj obrázky, video, alebo zvukový súbor",
"upload_error.limit": "Limit pre nahrávanie súborov bol prekročený.",
"upload_error.poll": "Nahrávanie súborov pri anketách nieje možné.",
"upload_form.audio_description": "Popíš, pre ľudí so stratou sluchu",

View file

@ -148,6 +148,7 @@
"compose_form.poll.duration": "Varaktighet för omröstning",
"compose_form.poll.multiple": "Flera val",
"compose_form.poll.option_placeholder": "Alternativ {number}",
"compose_form.poll.single": "Välj en",
"compose_form.poll.switch_to_multiple": "Ändra enkät för att tillåta flera val",
"compose_form.poll.switch_to_single": "Ändra enkät för att tillåta ett enda val",
"compose_form.poll.type": "Stil",

View file

@ -279,8 +279,8 @@
"follow_requests.unlocked_explanation": "แม้ว่าไม่มีการล็อคบัญชีของคุณ พนักงานของ {domain} คิดว่าคุณอาจต้องการตรวจทานคำขอติดตามจากบัญชีเหล่านี้ด้วยตนเอง",
"follow_suggestions.curated_suggestion": "คัดสรรโดยบรรณาธิการ",
"follow_suggestions.dismiss": "ไม่ต้องแสดงอีก",
"follow_suggestions.personalized_suggestion": "คำแนะนำเฉพาะบุคคล",
"follow_suggestions.popular_suggestion": "คำแนะนำยอดนิยม",
"follow_suggestions.personalized_suggestion": "ข้อเสนอแนะเฉพาะบุคคล",
"follow_suggestions.popular_suggestion": "ข้อเสนอแนะยอดนิยม",
"follow_suggestions.view_all": "ดูทั้งหมด",
"follow_suggestions.who_to_follow": "ติดตามใครดี",
"followed_tags": "แฮชแท็กที่ติดตาม",

View file

@ -0,0 +1,356 @@
{
"about.blocks": "ma lawa",
"about.contact": "toki:",
"about.domain_blocks.no_reason_available": "mi sona ala e tan",
"about.domain_blocks.preamble": "ilo Masoton li ken e ni: sina lukin e toki jan pi ma ilo mute. sina ken toki tawa ona lon kulupu ma. taso, ma ni li ken ala e ni tawa ma ni:",
"about.domain_blocks.silenced.explanation": "sina lukin ala e toki e jan tan ma ni. taso, sina wile la, sina ken ni.",
"about.domain_blocks.silenced.title": "ken lili lukin",
"about.domain_blocks.suspended.title": "weka",
"about.not_available": "lon kulupu ni la sina ken alasa ala e sona ni.",
"about.rules": "lawa kulupu",
"account.account_note_header": "sona awen",
"account.add_or_remove_from_list": "o ante e lipu jan",
"account.badges.bot": "ilo nanpa li lawa e ni",
"account.badges.group": "kulupu",
"account.block": "o weka e @{name}",
"account.block_domain": "o weka e ma {domain}",
"account.block_short": "o weka e jan tawa mi",
"account.blocked": "jan li weka tawa mi",
"account.browse_more_on_origin_server": "sina tawa ma tan pi jan ni la sina ken lukin e mute",
"account.cancel_follow_request": "o pini kute",
"account.copy": "o pali same e linja pi lipu jan",
"account.direct": "len la o mu e @{name}",
"account.disable_notifications": "@{name} li toki la o mu ala e mi",
"account.domain_blocked": "ma ni li weka tawa sina",
"account.edit_profile": "o ante e lipu mi",
"account.enable_notifications": "@{name} li toki la o toki e toki ona tawa mi",
"account.endorse": "lipu jan la o suli e ni",
"account.featured_tags.last_status_at": "sitelen pini pi jan ni li lon tenpo {date}",
"account.featured_tags.last_status_never": "toki ala li lon",
"account.follow": "o kute",
"account.follow_back": "jan ni li kute e sina. o kute",
"account.followers": "jan kute",
"account.followers.empty": "jan ala li kute e jan ni",
"account.following": "sina kute e jan ni",
"account.follows.empty": "jan ni li kute e jan ala",
"account.go_to_profile": "o tawa lipu jan",
"account.hide_reblogs": "o lukin ala e pana toki tan @{name}",
"account.in_memoriam": "jan ni li moli. pona o tawa ona.",
"account.languages": "sina wile lukin e sitelen pi toki seme",
"account.locked_info": "sina wile kute e jan ni la ona o toki e ken",
"account.media": "sitelen",
"account.mention": "o toki e jan @{name}",
"account.moved_to": "lipu jan sin pi jan {name} li ni:",
"account.mute": "o len e @{name}",
"account.mute_notifications_short": "o kute ala e mu tan jan ni",
"account.mute_short": "o kute ala",
"account.muted": "sina len e jan ni",
"account.no_bio": "lipu li weka",
"account.open_original_page": "o open e lipu open",
"account.posts": "toki suli",
"account.posts_with_replies": "toki ale",
"account.report": "jan @{name} la o toki tawa lawa",
"account.requested": "jan ni o ken e kute sina. sina pini wile kute la o luka e ni",
"account.requested_follow": "{name} li wile kute e sina",
"account.share": "o pana e lipu jan @{name}",
"account.show_reblogs": "o lukin e pana toki tan @{name}",
"account.unblock": "o weka ala e jan {name}",
"account.unblock_domain": "o weka ala e ma {domain}",
"account.unblock_short": "o pini weka",
"account.unendorse": "lipu jan la o suli ala e ni",
"account.unfollow": "o pini kute",
"account.unmute": "o len ala e @{name}",
"account.unmute_notifications_short": "o kute e mu tan jan ni",
"account.unmute_short": "o len ala",
"admin.dashboard.retention.average": "sama",
"admin.dashboard.retention.cohort": "tenpo mun open",
"admin.dashboard.retention.cohort_size": "jan sin",
"alert.rate_limited.message": "tenpo {retry_time, time, medium} la o pali awen",
"alert.unexpected.message": "pakala li lon",
"alert.unexpected.title": "pakala a!",
"announcement.announcement": "toki suli",
"audio.hide": "o len e kalama",
"boost_modal.combo": "sina ken luka e nena {combo} tawa ni: sina wile ala luka e nena lon tenpo kama",
"bundle_column_error.copy_stacktrace": "o awen e sona pakala lon ilo sina",
"bundle_column_error.error.body": "ilo li ken ala pana e lipu ni. ni li ken tan pakala ilo.",
"bundle_column_error.error.title": "ike a!",
"bundle_column_error.network.title": "pakala la ilo sina li toki ala tawa ilo ante",
"bundle_column_error.retry": "o ni sin",
"bundle_column_error.return": "o tawa tomo",
"bundle_column_error.routing.body": "ilo li sona ala e lipu wile. sina pana ala pana e nasin pona tawa lipu?",
"bundle_column_error.routing.title": "pakala nanpa 404",
"bundle_modal_error.close": "o pini",
"bundle_modal_error.message": "ilo li wile kama e ijo ni, taso pakala li lon.",
"bundle_modal_error.retry": "o ni sin",
"closed_registrations_modal.find_another_server": "o alasa e ma ante",
"column.about": "sona",
"column.blocks": "kulupu pi jan weka",
"column.bookmarks": "awen toki",
"column.home": "lipu open",
"column.lists": "kulupu lipu",
"column.mutes": "jan len",
"column.pins": "toki sewi",
"column_header.hide_settings": "o len e lawa",
"column_header.pin": "o sewi",
"column_header.show_settings": "o lukin e lawa",
"column_header.unpin": "o sewi ala",
"column_subheading.settings": "ken ilo",
"community.column_settings.local_only": "toki tan ni taso",
"community.column_settings.media_only": "sitelen taso",
"community.column_settings.remote_only": "toki tan ante taso",
"compose.language.change": "o ante e nasin toki",
"compose.language.search": "o alasa e nasin toki...",
"compose.published.body": "toki li pana.",
"compose.published.open": "o lukin",
"compose.saved.body": "ilo li awen e ijo pana sina.",
"compose_form.direct_message_warning_learn_more": "o kama sona e ijo ante",
"compose_form.encryption_warning": "toki li len ala lon ilo Masoton ꞏ o pana ala e sona suli len lon ilo Masoton",
"compose_form.placeholder": "sina wile toki e seme?",
"compose_form.poll.duration": "tenpo pana",
"compose_form.poll.multiple": "pana mute",
"compose_form.poll.option_placeholder": "ken nanpa {number}",
"compose_form.poll.single": "pana pi wan taso",
"compose_form.poll.switch_to_multiple": "o ante e nasin pana. pana mute o ken",
"compose_form.poll.switch_to_single": "o ante e nasin pana. pana wan taso o lon",
"compose_form.poll.type": "nasin",
"compose_form.publish": "o toki",
"compose_form.publish_form": "o open toki sin",
"compose_form.reply": "o toki lon ijo ni",
"compose_form.save_changes": "o sin e ni",
"compose_form.spoiler.marked": "o weka e toki pi ijo ike ken",
"confirmation_modal.cancel": "o pini",
"confirmations.block.confirm": "o weka",
"confirmations.block.message": "sina o wile ala wile weka e jan {name}?",
"confirmations.cancel_follow_request.confirm": "o weka e wile sina",
"confirmations.cancel_follow_request.message": "sina awen ala awen wile weka e wile kute sina lon {name}?",
"confirmations.delete.confirm": "o weka",
"confirmations.delete.message": "sina wile ala wile weka e toki ni?",
"confirmations.delete_list.confirm": "o weka",
"confirmations.delete_list.message": "sina wile ala wile weka e lipu ni?",
"confirmations.discard_edit_media.confirm": "o weka",
"confirmations.discard_edit_media.message": "toki sitelen anu lukin lili sitelen la ante pi awen ala li lon. sina wile weka e ante ni?",
"confirmations.domain_block.confirm": "o weka.",
"confirmations.domain_block.message": "sina wile ala a wile a len e ma {domain} ꞏ ken suli la len jan taso li pona ꞏ len pi ma ni la sina ken ala lukin e ijo pi ma ni lon lipu toki ale anu lukin toki ꞏ len ni la jan kute sina pi ma ni li weka",
"confirmations.edit.confirm": "o ante",
"confirmations.logout.confirm": "o weka",
"confirmations.logout.message": "sina wile ala wile weka",
"confirmations.mute.confirm": "o len",
"confirmations.mute.message": "sina awen ala awen wile kute ala e {name}?",
"confirmations.redraft.confirm": "o weka o pali sin e toki",
"confirmations.redraft.message": "pali sin e toki ni la sina wile ala wile weka e ona? sina ni la suli pi toki ni en wawa pi toki ni li weka. kin la toki lon toki ni li jo e mama ala.",
"confirmations.reply.confirm": "toki lon toki ni",
"confirmations.reply.message": "toki tawa ona li weka e toki pali sina ꞏ sina wile ala wile ni",
"confirmations.unfollow.confirm": "o pini kute",
"confirmations.unfollow.message": "sina o wile ala wile pini kute e jan {name}?",
"conversation.delete": "o weka e toki ni",
"conversation.mark_as_read": "ni o sin ala",
"conversation.open": "o lukin e toki",
"conversation.with": "lon {names}",
"directory.local": "tan {domain} taso",
"directory.new_arrivals": "jan pi kama sin",
"directory.recently_active": "jan lon tenpo poka",
"disabled_account_banner.account_settings": "wile pi lipu jan",
"disabled_account_banner.text": "sina ken ala kepeken e lipu jan sina pi nimi {disabledAccount}.",
"dismissable_banner.community_timeline": "ni li toki pi tenpo poka tawa ale tan jan lon ma lawa pi nimi {domain}.",
"dismissable_banner.dismiss": "o weka",
"dismissable_banner.explore_links": "ni li toki pi ijo sin ꞏ jan mute li pana e ni lon tenpo suno ni ꞏ sin la jan mute li pana la ni li kama suli",
"embed.preview": "ni li jo e sitelen ni:",
"emoji_button.activity": "musi",
"emoji_button.flags": "len ma",
"emoji_button.food": "moku",
"emoji_button.label": "o pana e sitelen pilin",
"emoji_button.nature": "soweli en kasi",
"emoji_button.not_found": "sitelen pilin ala li lon",
"emoji_button.objects": "ijo",
"emoji_button.people": "jan",
"emoji_button.search": "o alasa...",
"emoji_button.search_results": "ijo pi alasa ni",
"emoji_button.symbols": "sitelen",
"emoji_button.travel": "ma en tawa",
"empty_column.account_hides_collections": "jan ni li wile len e sona ni",
"empty_column.account_timeline": "toki ala li lon!",
"empty_column.account_unavailable": "ken ala lukin e lipu jan",
"empty_column.blocks": "jan ala li weka tawa sina.",
"empty_column.followed_tags": "sina alasa ala e toki ꞏ sina alasa e toki la toki li lon ni",
"empty_column.hashtag": "ala li lon toki ni",
"empty_column.mutes": "jan ala li len tawa sina.",
"errors.unexpected_crash.report_issue": "o toki e pakala tawa lawa",
"explore.search_results": "ijo pi alasa ni",
"explore.suggested_follows": "jan",
"explore.title": "o alasa",
"explore.trending_links": "sin",
"explore.trending_statuses": "toki",
"filter_modal.select_filter.expired": "tenpo pini",
"filter_modal.select_filter.search": "o alasa anu pali",
"firehose.all": "ale",
"firehose.local": "kulupu ni",
"firehose.remote": "kulupu ante",
"follow_request.authorize": "o ken",
"follow_request.reject": "o ala",
"follow_suggestions.view_all": "o lukin e ale",
"follow_suggestions.who_to_follow": "sina o kute e ni",
"footer.about": "sona",
"footer.directory": "lipu jan",
"footer.get_app": "o jo e ilo",
"footer.privacy_policy": "lawa len",
"footer.source_code": "o lukin e toki ilo",
"footer.status": "lon",
"generic.saved": "ni li awen",
"hashtag.column_header.tag_mode.all": "en {additional}",
"hashtag.column_header.tag_mode.any": "anu {additional}",
"hashtag.column_header.tag_mode.none": "en {additional} ala",
"hashtag.column_settings.tag_mode.all": "ale ni",
"hashtag.column_settings.tag_mode.any": "wan ni",
"hashtag.column_settings.tag_mode.none": "ala ni",
"home.pending_critical_update.link": "o lukin e ijo ilo sin",
"interaction_modal.on_another_server": "lon ma ante",
"interaction_modal.on_this_server": "lon ma ni",
"interaction_modal.title.favourite": "o suli e toki {name}",
"interaction_modal.title.follow": "o kute e {name}",
"interaction_modal.title.reblog": "o wawa e toki {name}",
"keyboard_shortcuts.blocked": "o lukin e lipu sina pi jan weka",
"keyboard_shortcuts.boost": "o pana sin e toki",
"keyboard_shortcuts.down": "o tawa anpa lon lipu",
"keyboard_shortcuts.enter": "o lukin e toki",
"keyboard_shortcuts.favourite": "o suli e toki",
"keyboard_shortcuts.favourites": "o lukin e lipu sina pi toki suli",
"keyboard_shortcuts.muted": "o lukin e lipu sina pi jan len",
"keyboard_shortcuts.my_profile": "o lukin e lipu sina",
"keyboard_shortcuts.open_media": "o lukin e sitelen",
"keyboard_shortcuts.pinned": "o lukin pi lipu sina pi toki sewi",
"keyboard_shortcuts.toggle_sensitivity": "o ante e ken lukin",
"keyboard_shortcuts.toot": "o toki",
"keyboard_shortcuts.up": "o tawa sewi lon lipu",
"lightbox.close": "o pini",
"lightbox.compress": "o lili e sitelen",
"lightbox.expand": "o suli e sitelen",
"lightbox.next": "sinpin",
"lightbox.previous": "monsi",
"link_preview.author": "tan {name}",
"lists.account.add": "o pana tawa kulupu lipu",
"lists.account.remove": "o weka tan kulupu lipu",
"lists.delete": "o weka e kulupu lipu",
"lists.edit": "o ante e kulupu lipu",
"lists.edit.submit": "o ante e nimi",
"lists.exclusive": "o len e toki lon lipu open",
"lists.new.create": "o sin e kulupu lipu",
"lists.replies_policy.followed": "jan kute ale",
"lists.replies_policy.list": "jan pi kulupu ni taso",
"lists.replies_policy.none": "jan ala",
"lists.subheading": "kulupu lipu sina",
"load_pending": "{count, plural, other {ijo sin #}}",
"loading_indicator.label": "ni li kama…",
"media_gallery.toggle_visible": "{number, plural, other {o len e sitelen}}",
"mute_modal.duration": "tenpo",
"mute_modal.indefinite": "tenpo ale",
"navigation_bar.about": "sona",
"navigation_bar.blocks": "jan weka",
"navigation_bar.compose": "o pali e toki sin",
"navigation_bar.favourites": "toki suli",
"navigation_bar.filters": "nimi len",
"navigation_bar.lists": "kulupu lipu",
"navigation_bar.mutes": "sina wile ala kute e jan ni",
"navigation_bar.pins": "toki sewi",
"navigation_bar.preferences": "wile sina",
"navigation_bar.search": "o alasa",
"notification.admin.sign_up": "{name} li kama",
"notification.favourite": "{name} li suli e toki sina",
"notification.follow": " {name} li kute e sina",
"notification.follow_request": "{name} li wile kute e sina",
"notification.mention": "jan {name} li toki e sina",
"notification.reblog": "{name} li wawa e toki sina",
"notification.status": "{name} li toki",
"notification.update": "{name} li ante e toki",
"notifications.column_settings.follow": "jan kute sin",
"notifications.filter.all": "ale",
"onboarding.compose.template": "toki a, #Mastodon o!",
"onboarding.start.title": "sina o kama pona a!",
"poll.total_people": "{count, plural, other {jan #}}",
"privacy.public.short": "tawa ale",
"relative_time.full.just_now": "tenpo ni",
"relative_time.just_now": "tenpo ni",
"relative_time.today": "tenpo suno ni",
"report.block": "o weka e jan",
"report.block_explanation": "sina kama lukin ala e toki ona. ona li kama ala ken lukin e toki sina li kama ala ken kute e sina. ona li ken sona e kama ni.",
"report.category.title": "ike seme li lon {type} ni",
"report.category.title_account": "lipu",
"report.category.title_status": "toki",
"report.close": "o pini",
"report.mute": "o kute ala e ona",
"report.mute_explanation": "sina kama ala lukin e ijo pana ona. ona li awen ken kute e sina li awen ken lukin e sina li sona ala e weka kute sina e weka lukin sina.",
"report.next": "awen",
"report.reasons.dislike": "ni li ike tawa mi",
"report.reasons.legal": "ni li ike tawa lawa",
"report.reasons.other": "ni li ike tan ante",
"report.reasons.spam": "ni li ike tan toki mute",
"report.thanks.title": "sina wile ala lukin e ni anu seme?",
"report.unfollow": "o pini kute e {name}",
"report_notification.categories.legal": "ike tawa nasin lawa",
"search.placeholder": "o alasa",
"search.quick_action.go_to_account": "o tawa lipu jan {x}",
"search_popout.language_code": "nimi toki kepeken nasin ISO",
"search_results.all": "ale",
"search_results.see_all": "ale",
"search_results.statuses": "toki",
"search_results.title": "o alasa e {q}",
"status.block": "o weka e @{name}",
"status.cancel_reblog_private": "o pini e pana",
"status.delete": "o weka",
"status.edit": "o ante",
"status.edited": "ni li ante lon {date}",
"status.embed": "ni o lon insa pi lipu ante",
"status.favourite": "o suli",
"status.hide": "o len",
"status.history.created": "{name} li pali e ni lon {date}",
"status.history.edited": "{name} li ante lon {date}",
"status.load_more": "o kama e ijo ante",
"status.media.open": "o open",
"status.media.show": "o lukin",
"status.media_hidden": "sitelen li len",
"status.mute": "o len e @{name}",
"status.mute_conversation": "o kute ala e ijo pi toki ni",
"status.pin": "o sewi lon lipu sina",
"status.pinned": "toki sewi",
"status.reblog": "o wawa",
"status.share": "o pana tawa ante",
"status.show_less": "o lili e ni",
"status.show_less_all": "o lili e ale",
"status.show_more": "o suli e ni",
"status.show_more_all": "o suli e ale",
"status.show_original": "o lukin e mama",
"status.translate": "o ante pi nasin toki",
"status.translated_from_with": "toki li ante tan {lang} kepeken {provider}",
"status.uncached_media_warning": "lukin lili li weka",
"status.unmute_conversation": "o ken kute e ijo pi toki ni",
"status.unpin": "o sewi ala lon lipu sina",
"subscribed_languages.save": "o awen e ante",
"tabs_bar.home": "lipu open",
"timeline_hint.resources.followers": "jan kute",
"timeline_hint.resources.follows": "jan lukin",
"timeline_hint.resources.statuses": "ijo pi tenpo suli",
"trends.trending_now": "jan mute li toki",
"units.short.million": "{count}AAA",
"upload_button.label": "o pana e sitelen anu kalama",
"upload_error.limit": "ilo li ken ala e suli pi ijo ni.",
"upload_form.audio_description": "o toki e ijo kute tawa jan pi kute ala, tawa jan pi kute lili",
"upload_form.description": "o toki e ijo lukin tawa jan pi lukin ala, tawa jan pi lukin lili",
"upload_form.edit": "o ante",
"upload_form.thumbnail": "o ante e sitelen lili",
"upload_form.video_description": "o toki e ijo kute tawa jan pi kute ala, tawa jan pi kute lili, e ijo lukin tawa jan pi lukin ala, tawa jan pi lukin lili",
"upload_modal.choose_image": "o wile e sitelen",
"upload_modal.description_placeholder": "mi pu jaki tan soweli",
"upload_modal.detect_text": "ilo o alasa e nimi tan sitelen",
"upload_modal.edit_media": "o ante e sitelen",
"upload_modal.preparing_ocr": "ilo li open e alasa nimi lon sitelen…",
"upload_progress.label": "ilo li kama jo e ijo sina...",
"upload_progress.processing": "ilo li pali…",
"username.taken": "jan ante li kepeken e nimi ni. sina o kepeken e nimi sin",
"video.close": "o weka e ni",
"video.download": "o jo e ni",
"video.exit_fullscreen": "o weka tan sitelen suli",
"video.expand": "o suli e ni",
"video.hide": "o len e sitelen",
"video.mute": "o kalama ala",
"video.pause": "o lape e ni",
"video.unmute": "o kalama"
}

View file

@ -274,7 +274,7 @@
"firehose.all": "Toàn bộ",
"firehose.local": "Máy chủ này",
"firehose.remote": "Máy chủ khác",
"follow_request.authorize": "Cho phép",
"follow_request.authorize": "Chấp nhận",
"follow_request.reject": "Từ chối",
"follow_requests.unlocked_explanation": "Mặc dù tài khoản của bạn đang ở chế độ công khai, quản trị viên của {domain} vẫn tin rằng bạn sẽ muốn xem lại yêu cầu theo dõi từ những người khác.",
"follow_suggestions.curated_suggestion": "Lựa chọn của máy chủ",

View file

@ -315,8 +315,8 @@ export default function compose(state = initialState, action) {
map.set('spoiler', !state.get('spoiler'));
map.set('idempotencyKey', uuid());
if (!state.get('sensitive') && state.get('media_attachments').size >= 1) {
map.set('sensitive', true);
if (state.get('media_attachments').size >= 1 && !state.get('default_sensitive')) {
map.set('sensitive', !state.get('spoiler'));
}
});
case COMPOSE_SPOILER_TEXT_CHANGE:

View file

@ -4711,43 +4711,6 @@ a.status-card {
animation: heartbeat 1.5s ease-in-out infinite both;
}
@keyframes shake-bottom {
0%,
100% {
transform: rotate(0deg);
transform-origin: 50% 100%;
}
10% {
transform: rotate(2deg);
}
20%,
40%,
60% {
transform: rotate(-4deg);
}
30%,
50%,
70% {
transform: rotate(4deg);
}
80% {
transform: rotate(-2deg);
}
90% {
transform: rotate(2deg);
}
}
.no-reduce-motion .shake-bottom {
transform-origin: 50% 100%;
animation: shake-bottom 0.8s cubic-bezier(0.455, 0.03, 0.515, 0.955) 2s 2 both;
}
.emoji-picker-dropdown__menu {
position: relative;
margin-top: 5px;
@ -5353,20 +5316,6 @@ a.status-card {
}
}
.search-results__hashtag {
display: block;
padding: 10px;
color: $secondary-text-color;
text-decoration: none;
&:hover,
&:active,
&:focus {
color: lighten($secondary-text-color, 4%);
text-decoration: underline;
}
}
.search-results__info {
padding: 20px;
color: $darker-text-color;
@ -5394,6 +5343,8 @@ a.status-card {
inset-inline-start: 0;
width: 100%;
height: 100%;
max-width: 100vw;
max-height: 100vh;
box-sizing: border-box;
display: flex;
flex-direction: column;
@ -9465,6 +9416,7 @@ noscript {
flex-direction: column;
gap: 12px;
padding: 16px 0;
padding-bottom: 0;
border-bottom: 1px solid mix($ui-base-color, $ui-highlight-color, 75%);
background: mix($ui-base-color, $ui-highlight-color, 95%);
@ -9503,6 +9455,7 @@ noscript {
cursor: pointer;
top: 0;
color: $primary-text-color;
opacity: 0.5;
&.left {
left: 0;
@ -9530,6 +9483,8 @@ noscript {
&:hover,
&:focus,
&:active {
opacity: 1;
.inline-follow-suggestions__body__scroll-button__icon {
background: lighten($ui-highlight-color, 4%);
}
@ -9541,11 +9496,10 @@ noscript {
flex-wrap: nowrap;
gap: 16px;
padding: 16px;
padding-bottom: 0;
scroll-snap-type: x mandatory;
scroll-padding: 16px;
scroll-behavior: smooth;
overflow-x: hidden;
overflow-x: scroll;
&__card {
background: darken($ui-base-color, 4%);
@ -9570,6 +9524,7 @@ noscript {
position: absolute;
inset-inline-end: 8px;
top: 8px;
opacity: 0.75;
}
&__avatar {
@ -9607,6 +9562,7 @@ noscript {
gap: 4px;
overflow: hidden;
white-space: nowrap;
cursor: help;
> span {
overflow: hidden;

View file

@ -0,0 +1,40 @@
# frozen_string_literal: true
class SignatureParser
class ParsingError < StandardError; end
# The syntax of this header is defined in:
# https://datatracker.ietf.org/doc/html/draft-cavage-http-signatures-12#section-4
# See https://datatracker.ietf.org/doc/html/rfc7235#appendix-C
# and https://datatracker.ietf.org/doc/html/rfc7230#section-3.2.6
# In addition, ignore a `Signature ` string prefix that was added by old versions
# of `node-http-signatures`
TOKEN_RE = /[0-9a-zA-Z!#$%&'*+.^_`|~-]+/
# qdtext and quoted_pair are not exactly according to spec but meh
QUOTED_STRING_RE = /"([^\\"]|(\\.))*"/
PARAM_RE = /(?<key>#{TOKEN_RE})\s*=\s*((?<value>#{TOKEN_RE})|(?<quoted_value>#{QUOTED_STRING_RE}))/
def self.parse(raw_signature)
# Old versions of node-http-signature add an incorrect "Signature " prefix to the header
raw_signature = raw_signature.delete_prefix('Signature ')
params = {}
scanner = StringScanner.new(raw_signature)
# Use `skip` instead of `scan` as we only care about the subgroups
while scanner.skip(PARAM_RE)
# This is not actually correct with regards to quoted pairs, but it's consistent
# with our previous implementation, and good enough in practice.
params[scanner[:key]] = scanner[:value] || scanner[:quoted_value][1...-1]
scanner.skip(/\s*/)
return params if scanner.eos?
raise ParsingError unless scanner.skip(/\s*,\s*/)
end
raise ParsingError
end
end

View file

@ -64,6 +64,7 @@ class Account < ApplicationRecord
)
BACKGROUND_REFRESH_INTERVAL = 1.week.freeze
INSTANCE_ACTOR_ID = -99
USERNAME_RE = /[a-z0-9_]+([a-z0-9_.-]+[a-z0-9_]+)?/i
MENTION_RE = %r{(?<![=/[:word:]])@((#{USERNAME_RE})(?:@[[:word:].-]+[[:word:]]+)?)}i
@ -89,8 +90,8 @@ class Account < ApplicationRecord
MAX_NOTE_LENGTH = (ENV['MAX_BIO_CHARS'] || 500).to_i
DEFAULT_FIELDS_SIZE = (ENV['MAX_PROFILE_FIELDS'] || 4).to_i
enum protocol: { ostatus: 0, activitypub: 1 }
enum suspension_origin: { local: 0, remote: 1 }, _prefix: true
enum :protocol, { ostatus: 0, activitypub: 1 }
enum :suspension_origin, { local: 0, remote: 1 }, prefix: true
validates :username, presence: true
validates_with UniqueUsernameValidator, if: -> { will_save_change_to_username? }
@ -122,7 +123,7 @@ class Account < ApplicationRecord
scope :sensitized, -> { where.not(sensitized_at: nil) }
scope :without_suspended, -> { where(suspended_at: nil) }
scope :without_silenced, -> { where(silenced_at: nil) }
scope :without_instance_actor, -> { where.not(id: -99) }
scope :without_instance_actor, -> { where.not(id: INSTANCE_ACTOR_ID) }
scope :recent, -> { reorder(id: :desc) }
scope :bots, -> { where(actor_type: %w(Application Service)) }
scope :groups, -> { where(actor_type: 'Group') }
@ -180,7 +181,7 @@ class Account < ApplicationRecord
end
def instance_actor?
id == -99
id == INSTANCE_ACTOR_ID
end
alias bot bot?

View file

@ -17,7 +17,7 @@
#
class AccountWarning < ApplicationRecord
enum action: {
enum :action, {
none: 0,
disable: 1_000,
mark_statuses_as_sensitive: 1_250,
@ -25,7 +25,7 @@ class AccountWarning < ApplicationRecord
sensitive: 2_000,
silence: 3_000,
suspend: 4_000,
}, _suffix: :action
}, suffix: :action
normalizes :text, with: ->(text) { text.to_s }, apply_to_nil: true

View file

@ -24,7 +24,7 @@ class BulkImport < ApplicationRecord
belongs_to :account
has_many :rows, class_name: 'BulkImportRow', inverse_of: :bulk_import, dependent: :delete_all
enum type: {
enum :type, {
following: 0,
blocking: 1,
muting: 2,
@ -33,7 +33,7 @@ class BulkImport < ApplicationRecord
lists: 5,
}
enum state: {
enum :state, {
unconfirmed: 0,
scheduled: 1,
in_progress: 2,

View file

@ -13,11 +13,11 @@ module Account::FinderConcern
end
def representative
actor = Account.find(-99).tap(&:ensure_keys!)
actor = Account.find(Account::INSTANCE_ACTOR_ID).tap(&:ensure_keys!)
actor.update!(username: 'mastodon.internal') if actor.username.include?(':')
actor
rescue ActiveRecord::RecordNotFound
Account.create!(id: -99, actor_type: 'Application', locked: true, username: 'mastodon.internal')
Account.create!(id: Account::INSTANCE_ACTOR_ID, actor_type: 'Application', locked: true, username: 'mastodon.internal')
end
def find_local(username)

View file

@ -31,7 +31,7 @@ class CustomFilter < ApplicationRecord
include Expireable
include Redisable
enum action: { warn: 0, hide: 1 }, _suffix: :action
enum :action, { warn: 0, hide: 1 }, suffix: :action
belongs_to :account
has_many :keywords, class_name: 'CustomFilterKeyword', inverse_of: :custom_filter, dependent: :destroy

View file

@ -21,7 +21,7 @@ class DomainBlock < ApplicationRecord
include DomainNormalizable
include DomainMaterializable
enum severity: { silence: 0, suspend: 1, noop: 2 }
enum :severity, { silence: 0, suspend: 1, noop: 2 }
validates :domain, presence: true, uniqueness: true, domain: true

View file

@ -28,7 +28,7 @@ class Import < ApplicationRecord
belongs_to :account
enum type: { following: 0, blocking: 1, muting: 2, domain_blocking: 3, bookmarks: 4 }
enum :type, { following: 0, blocking: 1, muting: 2, domain_blocking: 3, bookmarks: 4 }
validates :type, presence: true

View file

@ -19,7 +19,7 @@ class IpBlock < ApplicationRecord
include Expireable
include Paginable
enum severity: {
enum :severity, {
sign_up_requires_approval: 5000,
sign_up_block: 5500,
no_access: 9999,

View file

@ -18,7 +18,7 @@ class List < ApplicationRecord
PER_ACCOUNT_LIMIT = 50
enum replies_policy: { list: 0, followed: 1, none: 2 }, _prefix: :show
enum :replies_policy, { list: 0, followed: 1, none: 2 }, prefix: :show
belongs_to :account, optional: true

View file

@ -16,7 +16,7 @@
#
class LoginActivity < ApplicationRecord
enum authentication_method: { password: 'password', otp: 'otp', webauthn: 'webauthn', sign_in_token: 'sign_in_token', omniauth: 'omniauth' }
enum :authentication_method, { password: 'password', otp: 'otp', webauthn: 'webauthn', sign_in_token: 'sign_in_token', omniauth: 'omniauth' }
belongs_to :user

View file

@ -34,8 +34,8 @@ class MediaAttachment < ApplicationRecord
include Attachmentable
enum type: { image: 0, gifv: 1, video: 2, unknown: 3, audio: 4 }
enum processing: { queued: 0, in_progress: 1, complete: 2, failed: 3 }, _prefix: true
enum :type, { image: 0, gifv: 1, video: 2, unknown: 3, audio: 4 }
enum :processing, { queued: 0, in_progress: 1, complete: 2, failed: 3 }, prefix: true
MAX_DESCRIPTION_LENGTH = 1_500

View file

@ -47,8 +47,8 @@ class PreviewCard < ApplicationRecord
self.inheritance_column = false
enum type: { link: 0, photo: 1, video: 2, rich: 3 }
enum link_type: { unknown: 0, article: 1 }
enum :type, { link: 0, photo: 1, video: 2, rich: 3 }
enum :link_type, { unknown: 0, article: 1 }
has_many :preview_cards_statuses, dependent: :delete_all, inverse_of: :preview_card
has_many :statuses, through: :preview_cards_statuses

View file

@ -15,7 +15,7 @@
class Relay < ApplicationRecord
validates :inbox_url, presence: true, uniqueness: true, url: true, if: :will_save_change_to_inbox_url?
enum state: { idle: 0, pending: 1, accepted: 2, rejected: 3 }
enum :state, { idle: 0, pending: 1, accepted: 2, rejected: 3 }
scope :enabled, -> { accepted }

View file

@ -55,7 +55,7 @@ class Report < ApplicationRecord
# - app/javascript/mastodon/features/notifications/components/report.jsx
# - app/javascript/mastodon/features/report/category.jsx
# - app/javascript/mastodon/components/admin/ReportReasonSelector.jsx
enum category: {
enum :category, {
other: 0,
spam: 1_000,
legal: 1_500,

View file

@ -16,7 +16,7 @@
class SoftwareUpdate < ApplicationRecord
self.inheritance_column = nil
enum type: { patch: 0, minor: 1, major: 2 }, _suffix: :type
enum :type, { patch: 0, minor: 1, major: 2 }, suffix: :type
def gem_version
Gem::Version.new(version)

View file

@ -52,7 +52,7 @@ class Status < ApplicationRecord
update_index('statuses', :proper)
update_index('public_statuses', :proper)
enum visibility: { public: 0, unlisted: 1, private: 2, direct: 3, limited: 4 }, _suffix: :visibility
enum :visibility, { public: 0, unlisted: 1, private: 2, direct: 3, limited: 4 }, suffix: :visibility
belongs_to :application, class_name: 'Doorkeeper::Application', optional: true

View file

@ -38,6 +38,8 @@ class UserRole < ApplicationRecord
delete_user_data: (1 << 19),
}.freeze
EVERYONE_ROLE_ID = -99
module Flags
NONE = 0
ALL = FLAGS.values.reduce(&:|)
@ -94,7 +96,7 @@ class UserRole < ApplicationRecord
before_validation :set_position
scope :assignable, -> { where.not(id: -99).order(position: :asc) }
scope :assignable, -> { where.not(id: EVERYONE_ROLE_ID).order(position: :asc) }
has_many :users, inverse_of: :role, foreign_key: 'role_id', dependent: :nullify
@ -103,9 +105,9 @@ class UserRole < ApplicationRecord
end
def self.everyone
UserRole.find(-99)
UserRole.find(EVERYONE_ROLE_ID)
rescue ActiveRecord::RecordNotFound
UserRole.create!(id: -99, permissions: Flags::DEFAULT)
UserRole.create!(id: EVERYONE_ROLE_ID, permissions: Flags::DEFAULT)
end
def self.that_can(*any_of_privileges)
@ -113,7 +115,7 @@ class UserRole < ApplicationRecord
end
def everyone?
id == -99
id == EVERYONE_ROLE_ID
end
def nobody?

View file

@ -1,8 +1,15 @@
# frozen_string_literal: true
unless ENV.key?('RAILS_ENV')
warn 'ERROR: Missing RAILS_ENV environment variable, please set it to "production", "development", or "test".'
exit 1
abort <<~ERROR
The RAILS_ENV environment variable is not set.
Please set it correctly depending on context:
- Use "production" for a live deployment of the application
- Use "development" for local feature work
- Use "test" when running the automated spec suite
ERROR
end
ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)

View file

@ -7,6 +7,9 @@ user = ENV.fetch('ES_USER', nil).presence
password = ENV.fetch('ES_PASS', nil).presence
fallback_prefix = ENV.fetch('REDIS_NAMESPACE', nil).presence
prefix = ENV.fetch('ES_PREFIX') { fallback_prefix }
ca_file = ENV.fetch('ES_CA_FILE', nil).presence
transport_options = { ssl: { ca_file: ca_file } } if ca_file.present?
Chewy.settings = {
host: "#{host}:#{port}",
@ -18,6 +21,7 @@ Chewy.settings = {
index: {
number_of_replicas: ['single_node_cluster', nil].include?(ENV['ES_PRESET'].presence) ? 0 : 1,
},
transport_options: transport_options,
}
# We use our own async strategy even outside the request-response

View file

@ -0,0 +1,14 @@
---
tok:
activerecord:
attributes:
poll:
expires_at: pini tenpo
user/account:
username: nimi jan
errors:
models:
account:
attributes:
username:
reserved: jan ante li jo e nimi ni

View file

@ -1548,7 +1548,7 @@ ca:
unrecognized_emoji: no és un emoji reconegut
redirects:
prompt: Si confieu en aquest enllaç, feu-hi clic per a continuar.
title: Esteu sortint de %{instance}.
title: Deixeu %{instance}.
relationships:
activity: Activitat del compte
confirm_follow_selected_followers: Segur que vols seguir els seguidors seleccionats?

View file

@ -439,6 +439,7 @@ cs:
view: Zobrazit blokaci domény
email_domain_blocks:
add_new: Přidat
allow_registrations_with_approval: Povolit registrace se schválením
attempts_over_week:
few: "%{count} pokusy o registraci za poslední týden"
many: "%{count} pokusů o registraci za poslední týden"
@ -635,6 +636,7 @@ cs:
created_at: Nahlášené
delete_and_resolve: Smazat příspěvky
forwarded: Přeposláno
forwarded_replies_explanation: Toto hlášení je od uživatele z jiného serveru, a je o obsahu z jeho serveru. Byl převeden na vás, protože nahlášený obsah odpovídá jednomu z vašich uživatelů.
forwarded_to: Přeposláno na %{domain}
mark_as_resolved: Označit jako vyřešené
mark_as_sensitive: Označit jako citlivé
@ -645,7 +647,7 @@ cs:
create_and_resolve: Vyřešit s poznámkou
create_and_unresolve: Znovu otevřít s poznámkou
delete: Smazat
placeholder: Popište, jaké akce byly vykonány, nebo jakékoliv jiné související aktuality
placeholder: Popište, jaké akce byly vykonány, nebo jakékoliv jiné související aktuality...
title: Poznámky
notes_description_html: Zobrazit a zanechat poznámky pro ostatní moderátory i sebe v budoucnu
processed_msg: Nahlášení č.%{id} bylo úspěšně zpracováno
@ -714,7 +716,7 @@ cs:
administrator_description: Uživatelé s tímto oprávněním obejdou všechna oprávnění
delete_user_data: Mazat uživatelská data
delete_user_data_description: Umožňuje uživatelům bezodkladně mazat data jiných uživatelů
invite_users: Zvát uživatele
invite_users: Pozvat uživatele
invite_users_description: Umožňuje uživatelům zvát na server nové lidi
manage_announcements: Spravovat oznámení
manage_announcements_description: Umožňuje uživatelům spravovat oznámení na serveru
@ -802,13 +804,16 @@ cs:
open: Kdokoliv se může registrovat
security:
authorized_fetch: Vyžadovat autentizaci od federovaných serverů
authorized_fetch_hint: Vyžadování ověřování pravosti od federalizovaných serverů umožňuje přísnější prosazování uživatelských i serverních bloků. K tomu však dochází k snížení výkonu, snižení dosah vašich odpovědí a můžou se zavést problémy s kompatibilitou s některými federálními službami. Kromě toho to nebude bránit oddaným uživatelům či robotům v načítání vašich veřejných příspěvků a účtů.
authorized_fetch_overridden_hint: Momentálně nemůžete změnit toto nastavení, protože je přepsáno proměnnou prostředí.
federation_authentication: Uplatnění ověřování pravosti federace
title: Nastavení serveru
site_uploads:
delete: Odstranit nahraný soubor
destroyed_msg: Upload stránky byl úspěšně smazán!
software_updates:
critical_update: Kritické — aktualizujte, prosím, co nejdříve
description: Doporučujeme udržovat vaši instalaci Mastodonu aktuální, aby se využily nejnovější opravy a funkce. Kromě toho je někdy velmi důležité včas aktualizovat Mastodon, aby se předešlo bezpečnostním problémům. Z těchto důvodů Mastodon kontroluje aktualizace každých 30 minut a bude vás informovat podle nastavení e-mailových oznámení.
documentation_link: Zjistit více
release_notes: Poznámky k vydání
title: Dostupné aktualizace
@ -1072,8 +1077,12 @@ cs:
hint_html: Ještě jedna věc! Musíme potvrdit, že jste člověk (to proto, abychom drželi stranou spam!). Vyřešte CAPTCHA níže a klikněte na "Pokračovat".
title: Bezpečnostní kontrola
confirmations:
awaiting_review: Vaše e-mailová adresa je potvrzena! Pracovníci %{domain} nyní kontrolují vaši registraci. Pokud váš účet schválí, obdržíte e-mail!
awaiting_review_title: Vaše registrace se ověřuje
clicking_this_link: kliknutím na tento odkaz
login_link: přihlásit se
proceed_to_login_html: Nyní můžete pokračovat do %{login_link}.
redirect_to_app_html: Měli byste být přesměrováni do aplikace <strong>%{app_name}</strong>. Pokud se tak nestalo, zkuste %{clicking_this_link} nebo ručně se vrátit do aplikace.
registration_complete: Vaše registrace na %{domain} je hotová!
welcome_title: Vítám uživatele %{name}!
wrong_email_hint: Pokud není e-mail správný, můžete si ho změnit v nastavení účtu.
@ -1244,7 +1253,7 @@ cs:
date: Datum
download: Stáhnout váš archiv
hint_html: Můžete si vyžádat archiv vašich <strong>příspěvků a nahraných médií</strong>. Exportovaná data budou ve formátu ActivityPub a budou čitelná kterýmkoliv kompatibilním softwarem. Archiv si můžete vyžádat každých 7 dní.
in_progress: Kompiluji váš archiv…
in_progress: Kompilujeme váš archiv...
request: Vyžádat váš archiv
size: Velikost
blocks: Blokujete
@ -1354,6 +1363,20 @@ cs:
merge_long: Ponechat existující záznamy a přidat nové
overwrite: Přepsat
overwrite_long: Nahradit aktuální záznamy novými
overwrite_preambles:
blocking_html: Chystáte se <strong>nahradit váš seznam bloků</strong> s <strong>%{total_items} účtami</strong> od <strong>%{filename}</strong>.
bookmarks_html: Chystáte se <strong>nahradit své záložky</strong> s <strong>%{total_items} příspěvků</strong> z <strong>%{filename}</strong>.
domain_blocking_html: Chystáte se <strong>nahradit seznam stránek</strong> s <strong>%{total_items} stránek</strong> z <strong>%{filename}</strong>.
following_html: Chystáte se <strong>sledovat</strong> až <strong>%{total_items} účtů</strong> z <strong>%{filename}</strong> a <strong>přestanete sledovat všechny ostatní</strong>.
lists_html: Chystáte se <strong>nahradit své seznamy</strong> obsahem <strong>%{filename}</strong>. Až <strong>%{total_items} účtů</strong> budou přidány do nových seznamů.
muting_html: Chystáte se <strong>nahradit seznam skrytých účtů</strong> s <strong>%{total_items} účtami</strong> z <strong>%{filename}</strong>.
preambles:
blocking_html: Chystáte se <strong>blokovat</strong> až <strong>%{total_items} účtů</strong> z <strong>%{filename}</strong>.
bookmarks_html: Chystáte se přidat až <strong>%{total_items} příspěvků</strong> z <strong>%{filename}</strong> do vašich <strong>záložek</strong>.
domain_blocking_html: Chystáte se <strong>blokovat</strong> až <strong>%{total_items} stránek</strong> z <strong>%{filename}</strong>.
following_html: Chystáte se <strong>sledovat</strong> až <strong>%{total_items} účtů</strong> z <strong>%{filename}</strong>.
lists_html: Chystáte se přidat <strong>%{total_items} účtů</strong> z <strong>%{filename}</strong> do vaších <strong>seznamů</strong>. Nové seznamy budou vytvořeny, pokud neexistuje žádný seznam, do kterého by bylo možné přidat.
muting_html: Chystáte se <strong>skrýt</strong> až <strong>%{total_items} účtů</strong> z <strong>%{filename}</strong>.
preface: Můžete importovat data, která jste exportovali z jiného serveru, jako například seznam lidí, které sledujete či blokujete.
recent_imports: Nedávné importy
states:
@ -1369,8 +1392,12 @@ cs:
bookmarks: Import záložek
domain_blocking: Import blokovaných domén
following: Import sledovaných účtů
muting: Import ztlumených účtů
lists: Příjmání seznamů
muting: Dovoz skrytých uživatelů
type: Typ importu
type_groups:
constructive: Sledování a Záložky
destructive: Bloky & skrytí
types:
blocking: Seznam blokovaných
bookmarks: Záložky
@ -1391,6 +1418,7 @@ cs:
'86400': 1 den
expires_in_prompt: Nikdy
generate: Vygenerovat zvací odkaz
invalid: Tato pozvánka není platná
invited_by: 'Pozval váš uživatel:'
max_uses:
few: "%{count} použití"
@ -1417,6 +1445,21 @@ cs:
failed_sign_in_html: Neúspěšný pokus o přihlášení %{method} z %{ip} (%{browser})
successful_sign_in_html: Úspěšné přihlášení %{method} z %{ip} (%{browser})
title: Historie přihlášení
mail_subscriptions:
unsubscribe:
action: Ano, odeberte odběr
complete: Odběr byl odhlášen
confirmation_html: Opravdu nechcete dostávat %{type} pro Mastodon na %{domain} na váš e-mail %{email}? Vždy se můžete opět přihlásit do <a href="%{settings_path}">nastavení e-mailových oznámení</a>.
emails:
notification_emails:
favourite: e-mailové oznámení při oblíbení
follow: e-mailové oznámení při sledování
follow_request: e-mail při žádost o sledování
mention: e-mailové oznámení při zmínění
reblog: e-mailové oznámení při boostu
resubscribe_html: Při omylu se můžete znovu přihlásit do vaších <a href="%{settings_path}">nastavení e-mailových oznámení</a>.
success_html: Již nebudete dostávat %{type} pro Mastodon na %{domain} na vaší e-mailové adrese %{email}.
title: Odhlásit odběr
media_attachments:
validations:
images_and_video: K příspěvku, který již obsahuje obrázky, nelze připojit video
@ -1496,6 +1539,7 @@ cs:
update:
subject: Uživatel %{name} upravil příspěvek
notifications:
administration_emails: E-mailová oznámení administrátora
email_events: Události pro e-mailová oznámení
email_events_hint: 'Vyberte události, pro které chcete dostávat oznámení:'
other_settings: Další nastavení oznámení
@ -1554,6 +1598,9 @@ cs:
errors:
limit_reached: Dosažen limit různých reakcí
unrecognized_emoji: není známý smajlík
redirects:
prompt: Pokud tomuto odkazu důvěřujete, klikněte na něj a pokračujte.
title: Odcházíte z %{instance}.
relationships:
activity: Aktivita účtu
confirm_follow_selected_followers: Jste si jisti, že chcete sledovat vybrané sledující?
@ -1616,6 +1663,7 @@ cs:
unknown_browser: Neznámý prohlížeč
weibo: Weibo
current_session: Aktuální relace
date: Datum
description: "%{browser} na systému %{platform}"
explanation: Tohle jsou webové prohlížeče aktuálně přihlášené na váš účet Mastodon.
ip: IP adresa
@ -1772,8 +1820,10 @@ cs:
default: "%d. %b %Y, %H:%M"
month: "%b %Y"
time: "%H:%M"
with_time_zone: "%b %d, %Y, %H:%M %Z"
translation:
errors:
quota_exceeded: Byla vyčerpaná kvóta pro využívání překládací služby na úrovni serveru.
too_many_requests: Na překladatelskou službu bylo zasláno v poslední době příliš mnoho požadavků.
two_factor_authentication:
add: Přidat
@ -1792,16 +1842,27 @@ cs:
webauthn: Bezpečnostní klíče
user_mailer:
appeal_approved:
action: Možnosti Účtu
explanation: Odvolání proti prohřešku vašeho účtu ze dne %{strike_date}, které jste podali %{appeal_date}, bylo schváleno. Váš účet je opět v pořádku.
subject: Vaše odvolání ze dne %{date} bylo schváleno
subtitle: Váš účet je opět v dobrém stavu.
title: Odvolání schváleno
appeal_rejected:
explanation: Odvolání proti prohřešku vašeho účtu ze dne %{strike_date}, které jste podali %{appeal_date}, bylo zamítnuto.
subject: Vaše odvolání z %{date} bylo zamítnuto
subtitle: Vaše odvolání bylo zamítnuto.
title: Odvolání zamítnuto
backup_ready:
explanation: Požádali jste o úplnou zálohu vašeho účtu Mastodon.
extra: Nyní je připraven ke stažení!
subject: Váš archiv je připraven ke stažení
title: Stažení archivu
failed_2fa:
details: 'Zde jsou podrobnosti o pokusu o přihlášení:'
explanation: Někdo se pokusil přihlásit k vašemu účtu, ale poskytl neplatný token Dvoufázového ověření.
further_actions_html: Pokud jste to nebyl, doporučujeme vám okamžitě %{action}, protože váš účet mohl být napaden.
subject: Druhý omyl při Dvoufázovém ověření
title: Omyl při Dvoufázovém ověření
suspicious_sign_in:
change_password: změnit vaše heslo
details: 'Tady jsou detaily přihášení:'
@ -1855,10 +1916,13 @@ cs:
go_to_sso_account_settings: Přejděte do nastavení účtu poskytovatele identity
invalid_otp_token: Neplatný kód pro dvoufázové ověřování
otp_lost_help_html: Pokud jste ztratili přístup k oběma, spojte se s %{email}
rate_limited: Příliš mnoho pokusů o ověření, zkuste to znovu později.
seamless_external_login: Jste přihlášeni přes externí službu, nastavení hesla a e-mailu proto nejsou dostupná.
signed_in_as: 'Přihlášeni jako:'
verification:
extra_instructions_html: <strong>Tip:</strong> Odkaz na vaší webové stránce může být neviditelný. Důležitou součástí je <code>rel="me"</code>, která brání proti napodování vás na webových stránkách s obsahem vytvořeným uživatelem. Můžete dokonce použít <code>odkaz</code> v záhlaví stránky místo <code>a</code>, ale HTML musí být přístupné bez spuštění JavaScript.
here_is_how: Jak na to
hint_html: "<strong>Ověření Vaší identity na Mastodonu je pro každého výborné.</strong> Na základě otevřených webových standardů, nyní a navždy zdarma. Jediné, co potřebujete, je osobní webová stránka, na které vás lidé poznají. Když odkazujete na tuto stránku z vašeho profilu, zkontrolujeme, zda webové stránky odkazují na váš profil a zobrazí na něm vizuální indikátor."
instructions_html: Zkopírujte a vložte níže uvedený kód do HTML vašeho webu. Poté přidejte adresu vašeho webu do jednoho z extra políček na vašem profilu na záložce "Upravit profil" a uložte změny.
verification: Ověření
verified_links: Vaše ověřené odkazy

View file

@ -979,7 +979,7 @@ de:
next_steps: Du kannst dem Einspruch zustimmen, um die Moderationsentscheidung rückgängig zu machen, oder ihn ignorieren.
subject: "%{username} hat Einspruch gegen eine Moderationsentscheidung auf %{instance} erhoben"
new_critical_software_updates:
body: Kritische Updates wurden für Mastodon veröffentlicht du solltest so schnell wie möglich aktualisieren!
body: ein neues Sicherheitsupdate wurde veröffentlicht. Du solltest Mastodon so schnell wie möglich aktualisieren!
subject: Kritische Mastodon-Updates sind für %{instance} verfügbar!
new_pending_account:
body: Die Details von diesem neuem Konto sind unten. Du kannst die Anfrage akzeptieren oder ablehnen.
@ -1023,7 +1023,7 @@ de:
salutation: "%{name},"
settings: 'E-Mail-Einstellungen ändern: %{link}'
unsubscribe: Abbestellen
view: 'Hier überprüfen:'
view: 'Siehe:'
view_profile: Profil anzeigen
view_status: Beitrag anschauen
applications:

View file

@ -12,6 +12,7 @@ be:
last_attempt: У вас ёсць яшчэ адна спроба, перш чым ваш рахунак будзе заблакаваны
locked: Ваш уліковы запіс заблакіраваны.
not_found_in_database: Няправільны %{authentication_keys} або пароль.
omniauth_user_creation_failure: Памылка пры стварэнні ўліковага запісу для гэтай асобы.
pending: Ваш уліковы запіс яшчэ разглядаецца.
timeout: Ваш сеанс скончыўся. Каб працягнуць, увайдзіце яшчэ раз.
unauthenticated: Вам патрэбна зайсьці альбо зарэгістравацца, каб працягнуць

View file

@ -12,6 +12,7 @@ bg:
last_attempt: Разполагате с още един опит преди акаунтът ви да се заключи.
locked: Вашият акаунт е заключен.
not_found_in_database: Невалиден %{authentication_keys} или парола.
omniauth_user_creation_failure: Грешка, сътворявайки акаунт за тази самоличност.
pending: Вашият акаунт все още е в процес на проверка.
timeout: Заседанието ви изтече. Влезте пак, за да продължите.
unauthenticated: Преди да продължите, трябва да влезете или да се регистрирате.

View file

@ -14,6 +14,7 @@ ca:
last_attempt: Tens un intent més abans no es bloqui el teu compte.
locked: El teu compte s'ha blocat.
not_found_in_database: "%{authentication_keys} o contrasenya no són vàlids."
omniauth_user_creation_failure: S'ha produït un error en crear un compte per a aquesta identitat.
pending: El teu compte encara està en revisió.
timeout: La teva sessió ha expirat. Torna a iniciar-la per a continuar.
unauthenticated: Necessites iniciar sessió o registrar-te abans de continuar.

View file

@ -12,6 +12,7 @@ cs:
last_attempt: Máte ještě jeden pokus, než bude váš účet uzamčen.
locked: Váš účet je uzamčen.
not_found_in_database: Neplatné %{authentication_keys} nebo heslo.
omniauth_user_creation_failure: Při vytvoření účtu pro tuto identitu se nastala chyba.
pending: Váš účet je stále posuzován.
timeout: Vaše relace vypršela. Pro pokračování se prosím přihlaste znovu.
unauthenticated: Před pokračováním se musíte přihlásit nebo zaregistrovat.
@ -47,15 +48,20 @@ cs:
subject: 'Mastodon: Instrukce pro obnovení hesla'
title: Obnovení hesla
two_factor_disabled:
explanation: Přihlášení je nyní možné pouze pomocí emailové adresy a hesla.
subject: 'Mastodon: Dvoufázové ověření bylo vypnuto'
title: 2FA bylo vypnuto
subtitle: Dvoufaktorové ověřování vašeho účtu bylo vypnuto.
title: Dvoufázové ověření bylo vypnuto
two_factor_enabled:
explanation: Pro přihlášení bude vyžadován token generovaný spárovanou TOTP aplikací.
subject: 'Mastodon: Dvoufázové ověření bylo zapnuto'
title: 2FA bylo zapnuto
subtitle: Dvoufaktorové ověřování vašeho účtu bylo zapnuto.
title: Dvoufázové ověření bylo zapnuto
two_factor_recovery_codes_changed:
explanation: Předchozí záložní kódy byly zrušeny a byly vygenerovány nové.
subject: 'Mastodon: Dvoufázové záložní kódy byly znovu vygenerovány'
title: Záložní kódy pro 2FA byly změněny
subject: 'Mastodon: Záložní kódy pro dvoufázové ověření byly znovu vygenerovány'
subtitle: Předchozí záložní kódy byly zrušeny a byly vygenerovány nové.
title: Záložní kódy pro dvoufázové ověření byly změněny
unlock_instructions:
subject: 'Mastodon: Instrukce pro odemčení účtu'
webauthn_credential:
@ -68,9 +74,13 @@ cs:
subject: 'Mastodon: Bezpečnostní klíč byl smazán'
title: Jeden z vašich bezpečnostních klíčů byl smazán
webauthn_disabled:
subject: 'Mastodon: Přihlašování bezpečnostními klíči bylo vypnuto'
explanation: 'Mastodon: Přihlašování pomocí bezpečnostními klíčemi bylo pro váš účet vypnuto.'
extra: Přihlášení je nyní možné pouze pomocí tokenem vygenerovaný spárovanou TOTP aplikací.
subject: 'Mastodon: Přihlašování pomocí bezpečnostními klíčemi bylo vypnuto'
title: Bezpečnostní klíče byly zakázány
webauthn_enabled:
explanation: 'Mastodon: Přihlašování bezpečnostními klíči bylo pro váš účet povoleno.'
extra: Váš bezpečnostní klíč nyní může být použit pro přihlášení.
subject: 'Mastodon: Přihlašování bezpečnostními klíči bylo povoleno'
title: Bezpečnostní klíče byly povoleny
omniauth_callbacks:

View file

@ -12,6 +12,7 @@ cy:
last_attempt: Mae gennych un cyfle arall cyn i'ch cyfrif gael ei gloi.
locked: Mae eich cyfrif wedi ei gloi.
not_found_in_database: "%{authentication_keys} neu gyfrinair annilys."
omniauth_user_creation_failure: Gwall wrth greu cyfrif ar gyfer yr hunaniaeth hon.
pending: Mae eich cyfrif dal o dan adolygiad.
timeout: Mae eich sesiwn wedi dod i ben. Mewngofnodwch eto i barhau.
unauthenticated: Mae angen i chi fewngofnodi neu gofrestru cyn parhau.

View file

@ -12,6 +12,7 @@ da:
last_attempt: Du har ét forsøg mere, før din konto bliver låst.
locked: Din konto er låst.
not_found_in_database: Ugyldig %{authentication_keys} eller adgangskode.
omniauth_user_creation_failure: Fejl under oprettelse af konto for denne identitet.
pending: Din konto er stadig under revision.
timeout: Session udløbet. Log ind igen for at fortsætte.
unauthenticated: Log ind eller tilmeld dig for at fortsætte.

View file

@ -12,6 +12,7 @@ de:
last_attempt: Du hast nur noch einen Versuch, bevor dein Zugang gesperrt wird.
locked: Dein Konto ist gesperrt.
not_found_in_database: "%{authentication_keys} oder Passwort ungültig."
omniauth_user_creation_failure: Fehler beim Erstellen eines Kontos für diese Identität.
pending: Dein Konto wird weiterhin überprüft.
timeout: Deine Sitzung ist abgelaufen. Bitte melde dich erneut an, um fortzufahren.
unauthenticated: Du musst dich anmelden oder registrieren, bevor du fortfahren kannst.

View file

@ -12,6 +12,7 @@ es-AR:
last_attempt: Tenés un intento más antes de que se bloquee tu cuenta.
locked: Se bloqueó tu cuenta.
not_found_in_database: "%{authentication_keys} o contraseña no válidas."
omniauth_user_creation_failure: Error al crear una cuenta para esta identidad.
pending: Tu cuenta todavía está bajo revisión.
timeout: Venció tu sesión. Por favor, volvé a iniciar sesión para continuar.
unauthenticated: Necesitás iniciar sesión o registrarte antes de continuar.

View file

@ -12,6 +12,7 @@ eu:
last_attempt: Saiakera bat geratzen zaizu zure kontua giltzapetu aurretik.
locked: Zure kontua giltzapetuta dago.
not_found_in_database: Baliogabeko %{authentication_keys} edo pasahitza.
omniauth_user_creation_failure: Errorea identitate honen kontu bat sortzean.
pending: Zure kontua oraindik berrikusteke dago.
timeout: Zure saioa iraungitu da. Hasi saioa berriro jarraitzeko.
unauthenticated: Saioa hasi edo izena eman behar duzu jarraitu aurretik.

View file

@ -12,6 +12,7 @@ fi:
last_attempt: Sinulla on vielä yksi yritys ennen kuin tilisi lukitaan.
locked: Tilisi on lukittu.
not_found_in_database: Virheellinen %{authentication_keys} tai salasana.
omniauth_user_creation_failure: Virhe luotaessa tiliä tälle henkilöllisyydelle.
pending: Tilisi on vielä tarkistamatta.
timeout: Istuntosi on vanhentunut. Jatkaaksesi käyttöä, kirjaudu uudelleen.
unauthenticated: Sinun on kirjauduttava tai rekisteröidyttävä ennen kuin voit jatkaa.

View file

@ -12,6 +12,7 @@ fo:
last_attempt: Tú kanst royna einaferð afturat áðrenn kontan verður stongd.
locked: Kontan hjá tær er læst.
not_found_in_database: Ogyldigur %{authentication_keys} ella loyniorð.
omniauth_user_creation_failure: Feilur í sambandi við, at ein konta fyri hendan samleikan bleiv stovnað.
pending: Kontan hjá tær verður kannað enn.
timeout: Tín innritan er útgingin. Innrita av nýggjum, fyri at hada fram.
unauthenticated: Tú mást skriva teg inn aftur fyri at halda fram.

View file

@ -12,6 +12,7 @@ fy:
last_attempt: Jo hawwe noch ien besykjen oer eardat jo account blokkearre wurdt.
locked: Jo account is blokkearre.
not_found_in_database: "%{authentication_keys} of wachtwurd ûnjildich."
omniauth_user_creation_failure: Flater by it oanmeitsjen fan in account foar dizze identiteit.
pending: Jo account moat noch hieltyd beoardiele wurde.
timeout: Jo sesje is ferrûn. Meld jo opnij oan om troch te gean.
unauthenticated: Jo moatte oanmelde of registrearje.

View file

@ -12,6 +12,7 @@ gl:
last_attempt: Tes un intento máis antes de que a túa conta fique bloqueada.
locked: A túa conta está bloqueada.
not_found_in_database: "%{authentication_keys} ou contrasinal non válidos."
omniauth_user_creation_failure: Erro ao crear unha conta para esta identidade.
pending: A túa conta aínda está baixo revisión.
timeout: A túa sesión caducou. Accede outra vez para continuar.
unauthenticated: Precisas iniciar sesión ou rexistrarte antes de continuar.

View file

@ -12,6 +12,7 @@ he:
last_attempt: יש לך עוד ניסיון אחד לפני נעילת החשבון.
locked: חשבון זה נעול.
not_found_in_database: "%{authentication_keys} או סיסמה לא נכונים."
omniauth_user_creation_failure: שגיאה ביצירת חשבון לזהות הזו.
pending: חשבונך נמצא עדיין בבדיקה.
timeout: פג תוקף השהיה בחשבון. נא להכנס מחדש על מנת להמשיך.
unauthenticated: יש להרשם או להכנס לחשבון על מנת להמשיך.

View file

@ -12,6 +12,7 @@ hu:
last_attempt: Már csak egy próbálkozásod maradt, mielőtt a fiókodat zároljuk.
locked: A fiókodat zároltuk.
not_found_in_database: Helytelen %{authentication_keys} vagy jelszó.
omniauth_user_creation_failure: Hiba történt a fiók létrehozása során ehhez az identitáshoz.
pending: A fiókod még engedélyezésre vár.
timeout: A munkameneted lejárt. A folytatáshoz jelentkezz be újra.
unauthenticated: A folytatás előtt be kell jelentkezned vagy regisztrálnod kell.

View file

@ -39,6 +39,8 @@ ia:
webauthn_enabled:
title: Claves de securitate activate
registrations:
destroyed: A revider! Tu conto esseva cancellate con successo. Nos spera vider te novemente tosto.
signed_up_but_pending: Un message con un ligamine de confirmation esseva inviate a tu conto de email. Post que tu clicca le ligamine, nos revidera tu application. Tu essera notificate si illo es approbate.
updated: Tu conto ha essite actualisate con successo.
unlocks:
unlocked: Tu conto ha essite disblocate con successo. Initia session a continuar.

View file

@ -12,6 +12,7 @@ ie:
last_attempt: Hay solmen un prova ante que tui conto deveni serrat.
locked: Tui conto es serrat.
not_found_in_database: Ínvalid %{authentication_keys} o passa-parol.
omniauth_user_creation_failure: Errore in li creation de un conto por ti-ci identitá.
pending: Tui conto es ancor sub revision.
timeout: Tui session ha expirat. Ples reintrar denov por continuar.
unauthenticated: Tu deve intrar o registrar te ante continuar.

View file

@ -12,6 +12,7 @@ is:
last_attempt: Þú getur reynt einu sinni í viðbót áður en aðgangnum þínum verður læst.
locked: Notandaaðgangurinn þinn er læstur.
not_found_in_database: Ógilt %{authentication_keys} eða lykilorð.
omniauth_user_creation_failure: Villa við að útbúa aðgang fyrir þetta auðkenni.
pending: Notandaaðgangurinn þinn er enn til yfirferðar.
timeout: Setan þín er útrunnin. Skráðu þig aftur inn til að halda áfram.
unauthenticated: Þú þarft að skrá þig inn eða nýskrá þig áður en lengra er haldið.

View file

@ -12,6 +12,7 @@ it:
last_attempt: Hai un altro tentativo, prima che il tuo profilo venga bloccato.
locked: Il tuo profilo è bloccato.
not_found_in_database: "%{authentication_keys} o password non valida."
omniauth_user_creation_failure: Errore nella creazione di un account per questa identità.
pending: Il tuo profilo è ancora in revisione.
timeout: La tua sessione è scaduta. Sei pregato di accedere nuovamente per continuare.
unauthenticated: Devi accedere o registrarti, per continuare.

View file

@ -13,13 +13,13 @@ kab:
locked: Amiḍan-ik yettwargel.
not_found_in_database: Tella tuccḍa deg %{authentication_keys} neγ deg wawal uffir.
pending: Amiḍan-inek mazal-it deg ɛiwed n tmuγli.
timeout: Tiγimit n tuqqna tezri. Ma ulac aγilif ɛiwed tuqqna akken ad tkemmleḍ.
unauthenticated: Ilaq ad teqqneḍ neγ ad tjerrḍeḍ akken ad tkemmelḍ.
timeout: Tiɣimit n tuqqna tezri. Ma ulac aɣilif ɛiwed tuqqna akken ad tkemmleḍ.
unauthenticated: Ilaq ad teqqneḍ neɣ ad tjerrḍeḍ akken ad tkemmelḍ.
unconfirmed: Ilaq ad wekdeḍ tansa-inek imayl akken ad tkemmelḍ.
mailer:
confirmation_instructions:
action: Senqed tansa-inek imayl
action_with_app: Wekked sakkin uγal γer %{app}
action_with_app: Sentem sakkin uɣal ɣer %{app}
explanation: Aqla-k terniḍ amiḍan deg %{host} s tansa imayl-agi. Mazal-ak yiwen utekki akken ad t-tremdeḍ. Ma mačči d kečč i yessutren ay-agi, ttxil-k ssinef izen-a.
explanation_when_pending: Tsutreḍ-d ajerred deg %{host} s tansa-agi imayl. Ad nγeṛ asuter-ik ticki tsentmeḍ tansa-ik imayl. Send asentem, ur tezmireḍ ara ad teqqneḍ γer umiḍan-ik. Ma yella nugi asuter-ik, isefka-ik ad ttwakksen seg uqeddac, ihi ulac tigawt-nniḍen ara k-d-yettuqeblen. Ma mačči d kečč i yellan deffir n usuter-agi, ttxil-k ssinef izen-agi.
extra_html: Ttxil-k ẓer daγen <a href="%{terms_path}">ilugan n uqeddac</a> akked <a href="%{policy_path}">twetlin n useqdec-nneγ</a>.
@ -87,7 +87,7 @@ kab:
unlocks:
send_instructions: Deg kra n tesdatin, ad teṭṭfeḍ imayl deg-s iwellihen i yilaqen i userreḥ n umiḍan-ik·im. Ma yella ur tufiḍ ara izen-agi, ttxil-k·m ẓer deg ukaram spam.
send_paranoid_instructions: Ma yella umiḍan-ik·im yella, ad teṭṭfeḍ imayl deg tesdatin i d-iteddun, deg-s iwellihen i yilaqen i userreḥ n umiḍan-ik·im. Ma yella ur tufiḍ ara izen-agi, ttxil-k·m ẓer deg ukaram spam.
unlocked: Iserreḥ umiḍan-ik·im akken iwata. ttxil qqen akken ad tkemleḍ.
unlocked: Iserreḥ umiḍan-ik·im akken iwata. Ttxil qqen akken ad tkemleḍ.
errors:
messages:
already_confirmed: ittwasentem yakan, ttxil εreḍ ad teqneḍ

View file

@ -12,6 +12,7 @@ ko:
last_attempt: 계정이 잠기기까지 한 번의 시도가 남았습니다.
locked: 계정이 잠겼습니다.
not_found_in_database: 올바르지 않은 %{authentication_keys} 혹은 암호입니다.
omniauth_user_creation_failure: 이 신원으로 계정을 만드는데 실패했습니다.
pending: 이 계정은 아직 검토 중입니다.
timeout: 세션이 만료되었습니다. 다시 로그인 하세요.
unauthenticated: 계속 하려면 로그인을 해야 합니다.

View file

@ -12,6 +12,7 @@ lad:
last_attempt: Aprova una vez mas antes de ke tu kuento sea blokado.
locked: Tu kuento esta blokado.
not_found_in_database: Inkorekto %{authentication_keys} o kod.
omniauth_user_creation_failure: Ay un error en kriyar un kuento para esta identita.
pending: Tu kuento ainda esta basho revizyon.
timeout: Tu sesyon tiene kadukado. Por favor konektate kon tu kuento de muevo para kontinuar.
unauthenticated: Kale konektarte kon tu kuento o enregistrarte antes de kontinuar.
@ -89,25 +90,25 @@ lad:
no_token: No puedes akseder a esta pajina si no vienes dizde una posta elektronika de restablesimyento de kod. Si vienes dizde una posta elektronika de restablesimyento de kod, por favor asigurate de utilizar el URL kompleto embiado.
send_instructions: Si tu adreso de posta elektronika existe en muestra baza de datos, risiviras un atadijo de rekuperasyon de kod en tu adreso de posta elektronika en pokos minutos. Por favor, komprova tu kuti de posta spam si no risives akeya posta elektronika.
send_paranoid_instructions: Si tu adreso de posta elektronika existe en muestra baza de datos, risiviras un atadijo de rekuperasyon de kod en tu adreso de posta elektronika en pokos minutos. Por favor, komprova tu kuti de posta no deseado si no risives akeya posta elektronika.
updated: Tu kod a sido trokado kon reusho. Tyenes entrado en kuento.
updated_not_active: Tu kod se tiene trokado kon reusho.
updated: Tu kod a sido trokado kon reushita. Tyenes entrado en kuento.
updated_not_active: Tu kod se tiene trokado kon reushita.
registrations:
destroyed: Tu kuento a sido efasado kon reusho. Asperamos verte de muevo pronto.
destroyed: Tu kuento a sido efasado kon reushita. Asperamos verte de muevo pronto.
signed_up: Bienvenido! Te tienes enrejistrado djustamente.
signed_up_but_inactive: Te tienes enrejistrado kon reusho. Entanto, no se pudio inisyar sesyon porke tu kuento ainda no esta aktivado.
signed_up_but_locked: Te tienes enrejistrado kon reusho. Entanto, no pudites konektarte kon tu kuento porke tu kuento esta blokado.
signed_up_but_inactive: Te tienes enrejistrado kon reushita. Entanto, no se pudio inisyar sesyon porke tu kuento ainda no esta aktivado.
signed_up_but_locked: Te tienes enrejistrado kon reushita. Entanto, no pudites konektarte kon tu kuento porke tu kuento esta blokado.
signed_up_but_pending: Un mesaj kon un atadijo de konfirmasyon a sido enviado a tu adreso de posta elektronika. Dempues de klikar en el atadijo, revizaremos tu solisitud. Seras avizado si se acheta.
signed_up_but_unconfirmed: Un mesaj kon un atadijo de konfirmasyon a sido enviado a tu adreso de posta elektronika. Por favor, sigue el atadijo para aktivar tu kuento. Por favor, komprova tu kuti de posta spam si no risives akeya posta elektronika.
update_needs_confirmation: Tienes aktualizado tu kuento kon reusho, pero kale verifikar tu muevo adreso de posta elektronika. Por favor, komprova tu posta elektronika i sige el atadijo de konfirmasyon para konfirmar tu muevo adreso de posta elektronika. Por favor, komprova tu kuti de posta spam si no risives akeya posta elektronika.
updated: Tu kuento se aktualizo kon reusho.
update_needs_confirmation: Tienes aktualizado tu kuento kon reushita, pero kale verifikar tu muevo adreso de posta elektronika. Por favor, komprova tu posta elektronika i sige el atadijo de konfirmasyon para konfirmar tu muevo adreso de posta elektronika. Por favor, komprova tu kuti de posta spam si no risives akeya posta elektronika.
updated: Tu kuento se aktualizo kon reushita.
sessions:
already_signed_out: Salites del kuento kon reusho.
signed_in: Konektates kon tu kuento kon reusho.
signed_out: Salites del kuento kon reusho.
already_signed_out: Salites del kuento kon reushita.
signed_in: Konektates kon tu kuento kon reushita.
signed_out: Salites del kuento kon reushita.
unlocks:
send_instructions: En unos minutos risiviras una posta elektronika kon instruksyones para dezblokar tu kuento. Por favor, komprova tu kuti de posta spam si no risives akeya posta elektronika.
send_paranoid_instructions: Si tu kuento existe, en unos minutos risiviras una posta elektronika kon instruksyones para dezblokarlo. Por favor, reviza tu kuti de posta spam si no risives akeya posta elektronika.
unlocked: Tu kuento fue dezblokado kon reusho. Por favor, konektate kon tu kuento para kontinuar.
unlocked: Tu kuento fue dezblokado kon reushita. Por favor, konektate kon tu kuento para kontinuar.
errors:
messages:
already_confirmed: ya estaba konfirmado, por favor aprova konektarte kon tu kuento

View file

@ -12,6 +12,7 @@ lt:
last_attempt: Turi dar vieną bandymą, kol tavo paskyra bus užrakinta.
locked: Tavo paskyra užrakinta.
not_found_in_database: Netinkami %{authentication_keys} arba slaptažodis.
omniauth_user_creation_failure: Klaida kuriant šios tapatybės paskyrą.
pending: Tavo paskyra vis dar peržiūrima.
timeout: Tavo seansas baigėsi. Norėdamas (-a) tęsti, prisijunk dar kartą.
unauthenticated: Prieš tęsdamas (-a) turi prisijungti arba užsiregistruoti.

View file

@ -12,6 +12,7 @@ nl:
last_attempt: Je hebt nog één poging over voordat jouw account wordt opgeschort.
locked: Jouw account is opgeschort.
not_found_in_database: "%{authentication_keys} of wachtwoord ongeldig."
omniauth_user_creation_failure: Fout bij het aanmaken van een account voor deze identiteit.
pending: Jouw account moet nog steeds worden beoordeeld.
timeout: Jouw sessie is verlopen, log opnieuw in.
unauthenticated: Je dient in te loggen of te registreren.

View file

@ -12,6 +12,7 @@ pl:
last_attempt: Masz jeszcze jedną próbę; Twoje konto zostanie zablokowane jeśli się nie powiedzie.
locked: Twoje konto zostało zablokowane.
not_found_in_database: Nieprawidłowy %{authentication_keys} lub hasło.
omniauth_user_creation_failure: Błąd przy tworzeniu konta dla tej tożsamości.
pending: Twoje konto oczekuje na przegląd.
timeout: Twoja sesja wygasła. Zaloguj się ponownie, aby kontynuować..
unauthenticated: Zapisz się lub zaloguj, aby kontynuować.

View file

@ -12,6 +12,7 @@ pt-PT:
last_attempt: Tem só mais uma tentativa antes da sua conta ser bloqueada.
locked: A tua conta está bloqueada.
not_found_in_database: "%{authentication_keys} ou palavra-passe inválida."
omniauth_user_creation_failure: Erro ao criar uma conta para esta identidade.
pending: A sua conta está ainda a aguardar revisão.
timeout: A tua sessão expirou. Por favor, entra de novo para continuares.
unauthenticated: Precisas de entrar na tua conta ou de te registares antes de continuar.

View file

@ -47,14 +47,19 @@ ro:
subject: Instrucțiuni pentru resetarea parolei
title: Resetare parolă
two_factor_disabled:
explanation: Conectarea este acum posibilă folosind doar adresa de e-mail și parola.
subject: Autentificare cu doi factori dezactivată
subtitle: Autentificarea cu doi factori pentru contul dvs. a fost dezactivată.
title: 2FA dezactivat
two_factor_enabled:
explanation: Pentru autentificare va fi necesar un token generat de aplicația TOTP asociată.
subject: Autentificare în doi pași activată
subtitle: Autentificarea cu doi factori a fost activată pentru contul dvs.
title: 2FA activat
two_factor_recovery_codes_changed:
explanation: Codurile anterioare de recuperare au fost invalidate și unele noi generate.
subject: Recuperare în doi factori
subtitle: Codurile de recuperare anterioare au fost invalidate și s-au generat altele noi.
title: Coduri de recuperare 2FA modificate
unlock_instructions:
subject: Instrucțiuni de deblocare
@ -68,9 +73,13 @@ ro:
subject: 'Mastodon: Cheie de securitate ștearsă'
title: Una dintre cheile tale de securitate a fost ștearsă
webauthn_disabled:
explanation: Autentificarea cu chei de securitate a fost dezactivată pentru contul dvs.
extra: Conectarea este acum posibilă folosind doar token-ul generat de aplicația TOTP asociată.
subject: 'Mastodon: Autentificarea cu chei de securitate dezactivată'
title: Chei de securitate dezactivate
webauthn_enabled:
explanation: Autentificarea cu cheie de securitate a fost activată pentru contul dvs.
extra: Cheia ta de securitate poate fi acum folosită pentru conectare.
subject: 'Mastodon: Autentificarea cheii de securitate activată'
title: Chei de securitate activate
omniauth_callbacks:

View file

@ -12,6 +12,7 @@ sk:
last_attempt: Máš posledný pokus pred zamknutím tvojho účtu.
locked: Tvoj účet je zamknutý.
not_found_in_database: Nesprávny %{authentication_keys}, alebo heslo.
omniauth_user_creation_failure: Chyba pri vytváraní účtu pre túto identitu.
pending: Tvoj účet je stále prehodnocovaný.
timeout: Tvoja aktívna sezóna vypršala. Pre pokračovanie sa prosím prihlás znovu.
unauthenticated: K pokračovaniu sa musíš zaregistrovať alebo prihlásiť.

View file

@ -12,6 +12,7 @@ sl:
last_attempt: Pred zaklepom računa imate še en poskus.
locked: Vaš račun je zaklenjen.
not_found_in_database: Neveljavno %{authentication_keys} ali geslo.
omniauth_user_creation_failure: Napaka pri ustvarjanju računa za to identiteto.
pending: Vaš račun je še vedno pod drobnogledom.
timeout: Vaša seja je potekla. Če želite nadaljevati, se znova prijavite.
unauthenticated: Pred nadaljevanjem se morate prijaviti ali vpisati.

View file

@ -12,6 +12,7 @@ sq:
last_attempt: Mund të provoni edhe një herë, përpara se llogaria juaj të kyçet.
locked: Llogaria juaj është e kyçur.
not_found_in_database: "%{authentication_keys} ose fjalëkalim i pavlefshëm."
omniauth_user_creation_failure: Gabim në krijim llogarie për këtë identitet.
pending: Llogaria juaj është ende nën shqyrtim.
timeout: Sesioni juaj ka skaduar. Ju lutemi, që të vazhdohet, ribëni hyrjen.
unauthenticated: Përpara se të vazhdohet më tej, lypset të bëni hyrjen ose të regjistroheni.

View file

@ -12,6 +12,7 @@ sr-Latn:
last_attempt: Imate još jedan pokušaj pre nego što Vaš nalog bude zaključan.
locked: Vaš nalog je zaključan.
not_found_in_database: Neispravna %{authentication_keys} ili lozinka.
omniauth_user_creation_failure: Greška pri kreiranju naloga za ovaj identitet.
pending: Vaš račun je još uvek u pregledu.
timeout: Vreme trajanja Vaše sesije je isteklo. Za nastavak prijavite se ponovo.
unauthenticated: Za nastavak se morate prijaviti ili registrovati.

View file

@ -12,6 +12,7 @@ sr:
last_attempt: Имате још један покушај пре него што Ваш налог буде закључан.
locked: Ваш налог је закључан.
not_found_in_database: Неисправна %{authentication_keys} или лозинка.
omniauth_user_creation_failure: Грешка при креирању налога за овај идентитет.
pending: Ваш налог се још увек прегледа.
timeout: Ваша сесија је истекла. Пријавите се поново да бисте наставили.
unauthenticated: Морате да се пријавите или региструјете пре него што наставите.

View file

@ -12,6 +12,7 @@ th:
last_attempt: คุณลองได้อีกหนึ่งครั้งก่อนที่จะมีการล็อคบัญชีของคุณ
locked: มีการล็อคบัญชีของคุณอยู่
not_found_in_database: "%{authentication_keys} หรือรหัสผ่านไม่ถูกต้อง"
omniauth_user_creation_failure: เกิดข้อผิดพลาดในการสร้างบัญชีสำหรับข้อมูลประจำตัวนี้
pending: บัญชีของคุณยังคงอยู่ระหว่างการตรวจทาน
timeout: เซสชันของคุณหมดอายุแล้ว โปรดเข้าสู่ระบบอีกครั้งเพื่อดำเนินการต่อ
unauthenticated: คุณจำเป็นต้องเข้าสู่ระบบหรือลงทะเบียนก่อนดำเนินการต่อ

View file

@ -0,0 +1 @@
tok:

View file

@ -12,6 +12,7 @@ tr:
last_attempt: Hesabınız kilitlenmeden önce bir kez daha denemeniz gerekir.
locked: Hesabınız kilitlendi.
not_found_in_database: Geçersiz %{authentication_keys} ya da parola.
omniauth_user_creation_failure: Bu kimlik için hesap oluşturmada hata.
pending: Hesabınız hala inceleniyor.
timeout: Oturum süreniz sona erdi. Lütfen devam etmek için tekrar giriş yapınız.
unauthenticated: Devam etmeden önce oturum açmanız veya kayıt olmanız gerek.

View file

@ -12,6 +12,7 @@ uk:
last_attempt: У вас залишилась ще одна спроба, після якої ваш обліковий запис буде заблоковано.
locked: Ваш обліковий запис заблоковано.
not_found_in_database: Неправильний %{authentication_keys} або пароль.
omniauth_user_creation_failure: Помилка створення облікового запису для цієї особи.
pending: Ваш обліковий запис ще перебуває на розгляді.
timeout: Час сеансу минув. Будь ласка, увійдіть знову, щоб продовжити.
unauthenticated: Щоб продовжити, увійдіть або зареєструйтеся.

View file

@ -12,6 +12,7 @@ vi:
last_attempt: Nếu thử sai lần nữa, tài khoản của bạn sẽ bị khóa.
locked: Tài khoản của bạn bị khóa.
not_found_in_database: "%{authentication_keys} không có trong dữ liệu."
omniauth_user_creation_failure: Xảy ra lỗi khi tạo tài khoản này.
pending: Tài khoản của bạn vẫn đang được xem xét.
timeout: Phiên của bạn đã hết hạn. Vui lòng đăng nhập lại để tiếp tục.
unauthenticated: Bạn cần đăng nhập để tiếp tục.

View file

@ -12,6 +12,7 @@ zh-CN:
last_attempt: 你只有最后一次尝试机会,若未通过,帐号将被锁定。
locked: 你的账户已被锁定。
not_found_in_database: "%{authentication_keys}或密码错误。"
omniauth_user_creation_failure: 为此身份创建账户时出错。
pending: 你的账号仍在审核中。
timeout: 你的会话已过期。请重新登录再继续操作。
unauthenticated: 继续操作前请注册或者登录。

View file

@ -12,6 +12,7 @@ zh-HK:
last_attempt: 若你再一次嘗試失敗,我們將鎖定你的帳號,以策安全。
locked: 你的帳號已被鎖定。
not_found_in_database: 不正確的%{authentication_keys}或密碼。
omniauth_user_creation_failure: 為此身份建立帳號時出錯。
pending: 你的帳號仍在審核中
timeout: 你的登入階段已經過期,請重新登入以繼續使用。
unauthenticated: 你必須先登入或登記,以繼續使用。

View file

@ -12,6 +12,7 @@ zh-TW:
last_attempt: 帳號鎖定前,您還有最後一次嘗試機會。
locked: 已鎖定您的帳號。
not_found_in_database: 無效的 %{authentication_keys} 或密碼。
omniauth_user_creation_failure: 以此身分新增帳號時發生錯誤。
pending: 您的帳號仍在審核中。
timeout: 登入階段逾時。請重新登入以繼續。
unauthenticated: 您必須先登入或註冊才能繼續使用。

View file

@ -84,7 +84,7 @@ cs:
credential_flow_not_configured: Proud Resource Owner Password Credentials selhal, protože Doorkeeper.configure.resource_owner_from_credentials nebylo nakonfigurováno.
invalid_client: Ověření klienta selhalo kvůli neznámému klientovi, chybějící klientské autentizaci či nepodporované autentizační metodě.
invalid_grant: Poskytnuté oprávnění je neplatné, vypršela jeho platnost, bylo odvoláno, neshoduje se s URI přesměrování použitým v požadavku o autorizaci, nebo bylo uděleno jinému klientu.
invalid_redirect_uri: URI pro přesměrování není platné.
invalid_redirect_uri: Zahrnutá přesměrovací URI není platná.
invalid_request:
missing_param: 'Chybí potřebný parametr: %{value}.'
request_not_authorized: Požadavek musí být autorizován. Potřebný parametr pro autorizaci požadavku chybí nebo není platný.

View file

@ -34,6 +34,7 @@ ia:
confirmations:
revoke: Es tu secur?
index:
last_used_at: Ultime uso in %{date}
never_used: Nunquam usate
scopes: Permissiones
title: Tu applicationes autorisate

View file

@ -36,7 +36,7 @@ kab:
application: Asnas
callback_url: URL n tririt n wawal
delete: Kkes
empty: Ulac γur-ek·em isnasen.
empty: Ulac ɣur-k·m isnasen.
name: Isem
new: Asnas amaynut
show: Ẓer
@ -57,7 +57,7 @@ kab:
new:
title: Tlaq tsiregt
show:
title: Nγel tangalt n wurag sakkin senteḍ-itt deg usnas.
title: Nɣel tangalt n wurag sakkin senteḍ-itt deg usnas.
authorized_applications:
buttons:
revoke: Ḥwi
@ -113,13 +113,13 @@ kab:
read:notifications: ẓer tilγa-ik
read:reports: ẓer ineqqisen-ik·im
read:search: anadi deg umkan-ik·im
read:statuses: ẓer meṛṛa tisuffaγ
read:statuses: ẓer meṛṛa tisuffaɣ
write: beddel meṛṛa isefka n umiḍan-ik
write:accounts: ẓreg amaγnu-ik
write:blocks: seḥbes imiḍanen d tγula
write:bookmarks: ad yernu tisuffγin γer ticraḍ
write:bookmarks: ad yernu tisuffaɣ ɣer ticraḍ
write:filters: rnu-d imsizedgen
write:follows: ḍfeṛ imdanen
write:lists: ad yesnulfu tibdarin
write:media: ad yessali ifayluyen n teγwalt
write:media: ad yessali ifuyla n umidya
write:notifications: sfeḍ tilɣa-k·m

View file

@ -0,0 +1,51 @@
---
tok:
doorkeeper:
applications:
buttons:
cancel: o pini
destroy: o weka
edit: o ante
submit: o awen
confirmations:
destroy: ni li pona ala pona?
edit:
title: o ante e ilo nanpa
form:
error: 'pakala a! o lukin e ni: lipu sina li jo ala jo e pakala.'
index:
delete: o weka
empty: sina li jo e ilo nanpa ala.
name: nimi
new: o pali e ilo nanpa sin
title: ilo nanpa sina
new:
title: o pali e ilo nanpa sin
show:
title: ilo nanpa pi nimi %{name}
authorizations:
error:
title: pakala li lon.
authorized_applications:
confirmations:
revoke: ni li pona ala pona?
index:
scopes: ken
errors:
messages:
invalid_request:
missing_param: o pana e sona "%{value}".
flash:
applications:
create:
notice: sina pali e ilo nanpa.
destroy:
notice: sina weka e ilo nanpa.
update:
notice: sina ante e ilo nanpa.
authorized_applications:
destroy:
notice: sina weka e ilo nanpa tawa sina.
grouped_scopes:
access:
read: lukin taso

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