1
0
Fork 0
forked from gitea/nas

Merge pull request #599 from kmycode/upstream-20240218

Upstream 20240218
This commit is contained in:
KMY(雪あすか) 2024-02-22 10:20:05 +09:00 committed by GitHub
commit f9100f1d93
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
147 changed files with 3454 additions and 2567 deletions

View file

@ -16,6 +16,6 @@ class CustomCssController < ActionController::Base # rubocop:disable Rails/Appli
helper_method :custom_css_styles
def set_user_roles
@user_roles = UserRole.where(highlighted: true).where.not(color: [nil, ''])
@user_roles = UserRole.providing_styles
end
end

View file

@ -8,8 +8,8 @@ import { NavLink, Switch, Route } from 'react-router-dom';
import { connect } from 'react-redux';
import ExploreIcon from '@/material-icons/400-24px/explore.svg?react';
import SearchIcon from '@/material-icons/400-24px/search.svg?react';
import TagIcon from '@/material-icons/400-24px/tag.svg?react';
import Column from 'mastodon/components/column';
import ColumnHeader from 'mastodon/components/column_header';
import Search from 'mastodon/features/compose/containers/search_container';
@ -59,7 +59,7 @@ class Explore extends PureComponent {
<Column bindToDocument={!multiColumn} ref={this.setRef} label={intl.formatMessage(messages.title)}>
<ColumnHeader
icon={isSearching ? 'search' : 'hashtag'}
iconComponent={isSearching ? SearchIcon : TagIcon}
iconComponent={isSearching ? SearchIcon : ExploreIcon}
title={intl.formatMessage(isSearching ? messages.searchResults : messages.title)}
onClick={this.handleHeaderClick}
multiColumn={multiColumn}

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

@ -8,6 +8,7 @@ import { Link } from 'react-router-dom';
import CirclesIcon from '@/material-icons/400-24px/account_circle-fill.svg?react';
import AlternateEmailIcon from '@/material-icons/400-24px/alternate_email.svg?react';
import BookmarksIcon from '@/material-icons/400-24px/bookmarks-fill.svg?react';
import ExploreIcon from '@/material-icons/400-24px/explore.svg?react';
import PeopleIcon from '@/material-icons/400-24px/group.svg?react';
import HomeIcon from '@/material-icons/400-24px/home-fill.svg?react';
import ListAltIcon from '@/material-icons/400-24px/list_alt.svg?react';
@ -16,7 +17,6 @@ import PublicIcon from '@/material-icons/400-24px/public.svg?react';
import SearchIcon from '@/material-icons/400-24px/search.svg?react';
import SettingsIcon from '@/material-icons/400-24px/settings-fill.svg?react';
import StarIcon from '@/material-icons/400-24px/star-fill.svg?react';
import TagIcon from '@/material-icons/400-24px/tag.svg?react';
import AntennaIcon from '@/material-icons/400-24px/wifi.svg?react';
import { WordmarkLogo } from 'mastodon/components/logo';
import { NavigationPortal } from 'mastodon/components/navigation_portal';
@ -74,7 +74,7 @@ class NavigationPanel extends Component {
const { signedIn, disabledAccountId } = this.context.identity;
const explorer = (trendsEnabled ? (
<ColumnLink transparent to='/explore' icon='hashtag' iconComponent={TagIcon} text={intl.formatMessage(messages.explore)} />
<ColumnLink transparent to='/explore' icon='hashtag' iconComponent={ExploreIcon} text={intl.formatMessage(messages.explore)} />
) : (
<ColumnLink transparent to='/search' icon='search' iconComponent={SearchIcon} text={intl.formatMessage(messages.search)} />
));

View file

@ -277,7 +277,6 @@
"follow_request.authorize": "ترخيص",
"follow_request.reject": "رفض",
"follow_requests.unlocked_explanation": "حتى وإن كان حسابك غير مقفل، يعتقد فريق {domain} أنك قد ترغب في مراجعة طلبات المتابعة من هذه الحسابات يدوياً.",
"follow_suggestions.curated_suggestion": "خيار المحرر",
"follow_suggestions.dismiss": "لا تُظهرها مجدّدًا",
"follow_suggestions.personalized_suggestion": "توصية مخصصة",
"follow_suggestions.popular_suggestion": "توصية رائجة",

View file

@ -199,7 +199,6 @@
"follow_request.authorize": "Autorizar",
"follow_request.reject": "Refugar",
"follow_requests.unlocked_explanation": "Magar que la to cuenta nun seya privada, el personal del dominiu «{domain}» pensó qu'a lo meyor quies revisar manualmente les solicitúes de siguimientu d'estes cuentes.",
"follow_suggestions.curated_suggestion": "Escoyeta del sirvidor",
"follow_suggestions.dismiss": "Nun volver amosar",
"follow_suggestions.personalized_suggestion": "Suxerencia personalizada",
"follow_suggestions.popular_suggestion": "Suxerencia popular",

View file

@ -277,8 +277,13 @@
"follow_request.authorize": "Аўтарызацыя",
"follow_request.reject": "Адхіліць",
"follow_requests.unlocked_explanation": "Ваш акаўнт не схаваны, аднак прадстаўнікі {domain} палічылі, што вы можаце захацець праглядзець запыты на падпіску з гэтых профіляў уручную.",
"follow_suggestions.curated_suggestion": "Выбар сервера",
"follow_suggestions.curated_suggestion": "Выбар адміністрацыі",
"follow_suggestions.dismiss": "Не паказваць зноў",
"follow_suggestions.hints.featured": "Гэты профіль быў выбраны ўручную камандай {domain}.",
"follow_suggestions.hints.friends_of_friends": "Гэты профіль папулярны сярод людзей, на якіх вы падпісаліся.",
"follow_suggestions.hints.most_followed": "Гэты профіль - адзін з профіляў з самай вялікай колькасцю падпісак на {domain}.",
"follow_suggestions.hints.most_interactions": "У апошні час гэты профіль прыцягвае шмат увагі на {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Гэты профіль падобны на профілі, на якія вы нядаўна падпісаліся.",
"follow_suggestions.personalized_suggestion": "Персаналізаваная прапанова",
"follow_suggestions.popular_suggestion": "Папулярная прапанова",
"follow_suggestions.view_all": "Праглядзець усё",

View file

@ -277,8 +277,13 @@
"follow_request.authorize": "Упълномощаване",
"follow_request.reject": "Отхвърляне",
"follow_requests.unlocked_explanation": "Въпреки че акаунтът ви не е заключен, служителите на {domain} помислиха, че може да искате да преглеждате ръчно заявките за последване на тези профили.",
"follow_suggestions.curated_suggestion": "Избор от редакторите",
"follow_suggestions.curated_suggestion": "Избор на персонал",
"follow_suggestions.dismiss": "Без ново показване",
"follow_suggestions.hints.featured": "Този профил е ръчно подбран от отбора на {domain}.",
"follow_suggestions.hints.friends_of_friends": "Този профил е популярен измежду хората, които следвате.",
"follow_suggestions.hints.most_followed": "Този профил е един от най-следваните при {domain}.",
"follow_suggestions.hints.most_interactions": "Този профил наскоро получи много внимание при {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Този профил е подобен на профилите, които сте последвали наскоро.",
"follow_suggestions.personalized_suggestion": "Персонализирано предложение",
"follow_suggestions.popular_suggestion": "Популярно предложение",
"follow_suggestions.view_all": "Преглед на всички",
@ -471,7 +476,7 @@
"notifications.permission_required": "Известията на работния плот ги няма, щото няма дадено нужното позволение.",
"notifications_permission_banner.enable": "Включване на известията на работния плот",
"notifications_permission_banner.how_to_control": "За да получавате известия, когато Mastodon не е отворен, включете известията на работния плот. Може да управлявате точно кои видове взаимодействия пораждат известия на работния плот чрез бутона {icon} по-горе, след като бъдат включени.",
"notifications_permission_banner.title": "Никога не пропускате нещо",
"notifications_permission_banner.title": "Никога не пропускайте нищо",
"onboarding.action.back": "Върнете ме обратно",
"onboarding.actions.back": "Върнете ме обратно",
"onboarding.actions.go_to_explore": "Виж тенденции",

View file

@ -29,7 +29,7 @@
"account.enable_notifications": "Ma c'hemenn pa vez embannet traoù gant @{name}",
"account.endorse": "Lakaat war-wel war ar profil",
"account.featured_tags.last_status_at": "Toud diwezhañ : {date}",
"account.featured_tags.last_status_never": "Toud ebet",
"account.featured_tags.last_status_never": "Embannadur ebet",
"account.featured_tags.title": "Hashtagoù pennañ {name}",
"account.follow": "Heuliañ",
"account.follow_back": "Heuliañ d'ho tro",
@ -62,7 +62,7 @@
"account.requested_follow": "Gant {name} eo bet goulennet ho heuliañ",
"account.share": "Skignañ profil @{name}",
"account.show_reblogs": "Diskouez skignadennoù @{name}",
"account.statuses_counter": "{count, plural, one {{counter} Toud} two {{counter} Doud} other {{counter} a Doudoù}}",
"account.statuses_counter": "{count, plural, one {{counter} C'hannad} two {{counter} Gannad} other {{counter} a Gannadoù}}",
"account.unblock": "Diverzañ @{name}",
"account.unblock_domain": "Diverzañ an domani {domain}",
"account.unblock_short": "Distankañ",
@ -118,9 +118,9 @@
"column.lists": "Listennoù",
"column.mutes": "Implijer·ion·ezed kuzhet",
"column.notifications": "Kemennoù",
"column.pins": "Toudoù spilhennet",
"column.pins": "Embannadurioù spilhennet",
"column.public": "Red-amzer kevredet",
"column_back_button.label": "Distro",
"column_back_button.label": "Distreiñ",
"column_header.hide_settings": "Kuzhat an arventennoù",
"column_header.moveLeft_settings": "Dilec'hiañ ar bannad a-gleiz",
"column_header.moveRight_settings": "Dilec'hiañ ar bannad a-zehou",
@ -199,9 +199,9 @@
"embed.preview": "Setu penaos e teuio war wel :",
"emoji_button.activity": "Obererezh",
"emoji_button.clear": "Diverkañ",
"emoji_button.custom": "Kempennet",
"emoji_button.custom": "Personelaet",
"emoji_button.flags": "Bannieloù",
"emoji_button.food": "Boued hag Evaj",
"emoji_button.food": "Boued & Evajoù",
"emoji_button.label": "Enlakaat un emoji",
"emoji_button.nature": "Natur",
"emoji_button.not_found": "Emoji ebet !! (╯°□°)╯︵ ┻━┻",
@ -211,12 +211,12 @@
"emoji_button.search": "O klask...",
"emoji_button.search_results": "Disoc'hoù an enklask",
"emoji_button.symbols": "Arouezioù",
"emoji_button.travel": "Lec'hioù ha Beajoù",
"emoji_button.travel": "Beajiñ & Lec'hioù",
"empty_column.account_suspended": "Kont ehanet",
"empty_column.account_timeline": "Toud ebet amañ !",
"empty_column.account_unavailable": "Profil dihegerz",
"empty_column.blocks": "N'eus ket bet berzet implijer·ez ganeoc'h c'hoazh.",
"empty_column.bookmarked_statuses": "N'ho peus toud ebet enrollet en ho sinedoù c'hoazh. Pa vo ouzhpennet unan e teuio war wel amañ.",
"empty_column.bookmarked_statuses": "N'ho peus embannadur ebet enrollet en ho sinedoù c'hoazh. Pa vo ouzhpennet unan e teuio war wel amañ.",
"empty_column.community": "Goulo eo ar red-amzer lec'hel. Skrivit'ta un dra evit lakaat tan dezhi !",
"empty_column.domain_blocks": "N'eus domani kuzh ebet c'hoazh.",
"empty_column.explore_statuses": "N'eus tuadur ebet evit c'hoazh. Distroit diwezhatoc'h !",
@ -260,6 +260,7 @@
"follow_request.authorize": "Aotren",
"follow_request.reject": "Nac'hañ",
"follow_requests.unlocked_explanation": "Daoust ma n'eo ket ho kont prennet, skipailh {domain} a soñj e fellfe deoc'h gwiriekaat pedadennoù heuliañ deus ar c'hontoù-se diwar-zorn.",
"follow_suggestions.view_all": "Gwelet pep tra",
"followed_tags": "Hashtagoù o heuliañ",
"footer.about": "Diwar-benn",
"footer.directory": "Kavlec'h ar profiloù",
@ -267,7 +268,7 @@
"footer.invite": "Pediñ tud",
"footer.keyboard_shortcuts": "Berradennoù klavier",
"footer.privacy_policy": "Reolennoù prevezded",
"footer.source_code": "Gwelet kod mammenn",
"footer.source_code": "Gwelet ar c'hod mammenn",
"footer.status": "Statud",
"generic.saved": "Enrollet",
"getting_started.heading": "Loc'hañ",
@ -295,7 +296,7 @@
"interaction_modal.description.follow": "Gant ur gont Mastodon e c'hellit heuliañ {name} evit resev an toudoù a embann war ho red degemer.",
"interaction_modal.description.reblog": "Gant ur gont Mastodon e c'hellit skignañ an toud-mañ evit rannañ anezhañ gant ho heulierien·ezed.",
"interaction_modal.description.reply": "Gant ur gont Mastodon e c'hellit respont d'an toud-mañ.",
"interaction_modal.no_account_yet": "N'eo ket war vMastodon?",
"interaction_modal.no_account_yet": "N'emañ ket war vMastodon?",
"interaction_modal.on_another_server": "War ur servijer all",
"interaction_modal.on_this_server": "War ar servijer-mañ",
"interaction_modal.title.favourite": "Ouzhpennañ embannadur {name} d'ar re vuiañ-karet",
@ -463,7 +464,7 @@
"onboarding.steps.setup_profile.body": "Others are more likely to interact with you with a filled out profile.",
"onboarding.steps.setup_profile.title": "Customize your profile",
"onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
"onboarding.steps.share_profile.title": "Share your profile",
"onboarding.steps.share_profile.title": "Rannit ho kont Mastodon",
"password_confirmation.mismatching": "Disheñvel eo an daou c'her-termen-se",
"picture_in_picture.restore": "Adlakaat",
"poll.closed": "Serret",
@ -476,7 +477,8 @@
"poll.votes": "{votes, plural,one {#votadenn} other {# votadenn}}",
"poll_button.add_poll": "Ouzhpennañ ur sontadeg",
"poll_button.remove_poll": "Dilemel ar sontadeg",
"privacy.change": "Cheñch prevezded an toud",
"privacy.change": "Cheñch prevezded an embannadur",
"privacy.direct.short": "Tud resis",
"privacy.private.short": "Heulierien",
"privacy.public.short": "Publik",
"privacy_policy.last_updated": "Hizivadenn ziwezhañ {date}",

View file

@ -277,8 +277,13 @@
"follow_request.authorize": "Autoritza",
"follow_request.reject": "Rebutja",
"follow_requests.unlocked_explanation": "Tot i que el teu compte no està blocat, el personal de {domain} ha pensat que és possible que vulguis revisar manualment les sol·licituds de seguiment daquests comptes.",
"follow_suggestions.curated_suggestion": "Tria de l'editor",
"follow_suggestions.curated_suggestion": "Tria de l'equip",
"follow_suggestions.dismiss": "No ho tornis a mostrar",
"follow_suggestions.hints.featured": "L'equip de {domain} ha seleccionat aquest perfil.",
"follow_suggestions.hints.friends_of_friends": "Aquest perfil és popular entre la gent que seguiu.",
"follow_suggestions.hints.most_followed": "Aquest perfil és un dels més seguits a {domain}.",
"follow_suggestions.hints.most_interactions": "Aquest perfil ha estat rebent un munt d'atenció recentment a {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Aquest perfil és similar a d'altres que heu seguit recentment.",
"follow_suggestions.personalized_suggestion": "Suggeriment personalitzat",
"follow_suggestions.popular_suggestion": "Suggeriment popular",
"follow_suggestions.view_all": "Mostra-ho tot",

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.",
@ -276,9 +276,17 @@
"firehose.remote": "Ostatní servery",
"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_requests.unlocked_explanation": "Přestože váš účet není uzamčen, personál {domain} usoudil, že byste mohli chtít tyto požadavky na sledování zkontrolovat ručně.",
"follow_suggestions.curated_suggestion": "Výběr personálů",
"follow_suggestions.dismiss": "Znovu nezobrazovat",
"follow_suggestions.hints.featured": "Tento profil byl ručně vybrán týmem {domain}.",
"follow_suggestions.hints.friends_of_friends": "Tento profil je populární mezi lidmi, které sledujete.",
"follow_suggestions.hints.most_followed": "Tento profil je jedním z nejvíce sledovaných na {domain}.",
"follow_suggestions.hints.most_interactions": "Tento profil nedávno dostalo velkou pozornost na {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Tento profil je podobný profilům, které jste nedávno sledovali.",
"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 +308,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 +483,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 +503,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 +537,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 +555,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

@ -277,8 +277,13 @@
"follow_request.authorize": "Awdurdodi",
"follow_request.reject": "Gwrthod",
"follow_requests.unlocked_explanation": "Er nid yw eich cyfrif wedi'i gloi, roedd y staff {domain} yn meddwl efallai hoffech adolygu ceisiadau dilyn o'r cyfrifau rhain wrth law.",
"follow_suggestions.curated_suggestion": "Dewis y Golygydd",
"follow_suggestions.curated_suggestion": "Dewis staff",
"follow_suggestions.dismiss": "Peidio â dangos hwn eto",
"follow_suggestions.hints.featured": "Mae'r proffil hwn wedi'i ddewis yn arbennig gan dîm {domain}.",
"follow_suggestions.hints.friends_of_friends": "Mae'r proffil hwn yn boblogaidd ymhlith y bobl rydych chi'n eu dilyn.",
"follow_suggestions.hints.most_followed": "Mae'r proffil hwn yn un o'r rhai sy'n cael ei ddilyn fwyaf ar {domain}.",
"follow_suggestions.hints.most_interactions": "Mae'r proffil hwn wedi bod yn cael llawer o sylw yn ddiweddar ar {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Mae'r proffil hwn yn debyg i'r proffiliau rydych chi wedi'u dilyn yn fwyaf diweddar.",
"follow_suggestions.personalized_suggestion": "Awgrym personol",
"follow_suggestions.popular_suggestion": "Awgrym poblogaidd",
"follow_suggestions.view_all": "Gweld y cyfan",

View file

@ -277,7 +277,13 @@
"follow_request.authorize": "Godkend",
"follow_request.reject": "Afvis",
"follow_requests.unlocked_explanation": "Selvom din konto ikke er låst, synes {domain}-personalet, du måske bør gennemgå disse anmodninger manuelt.",
"follow_suggestions.curated_suggestion": "Personaleudvalgt",
"follow_suggestions.dismiss": "Vis ikke igen",
"follow_suggestions.hints.featured": "Denne profil er håndplukket af {domain}-teamet.",
"follow_suggestions.hints.friends_of_friends": "Denne profil er populær blandt de personer, som følges.",
"follow_suggestions.hints.most_followed": "Denne profil er en af de mest fulgte på {domain}.",
"follow_suggestions.hints.most_interactions": "Denne profil har for nylig fået stor opmærksomhed på {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Denne profil svarer til de profiler, som senest er blevet fulgt.",
"follow_suggestions.personalized_suggestion": "Personligt forslag",
"follow_suggestions.popular_suggestion": "Populært forslag",
"follow_suggestions.view_all": "Vis alle",

View file

@ -277,8 +277,13 @@
"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": "Auswahl des Herausgebers",
"follow_suggestions.curated_suggestion": "Vom Server empfohlen",
"follow_suggestions.dismiss": "Nicht mehr anzeigen",
"follow_suggestions.hints.featured": "Dieses Profil wurde vom {domain}-Team ausgewählt.",
"follow_suggestions.hints.friends_of_friends": "Dieses Profil ist bei deinen Followern beliebt.",
"follow_suggestions.hints.most_followed": "Dieses Profil wird von den meisten auf {domain} gefolgt.",
"follow_suggestions.hints.most_interactions": "Dieses Profil erhielt auf {domain} in letzter Zeit viel Aufmerksamkeit.",
"follow_suggestions.hints.similar_to_recently_followed": "Dieses Profil ähnelt den Profilen, denen du in letzter Zeit gefolgt hast.",
"follow_suggestions.personalized_suggestion": "Persönliche Empfehlung",
"follow_suggestions.popular_suggestion": "Beliebte Empfehlung",
"follow_suggestions.view_all": "Alle anzeigen",

View file

@ -277,7 +277,6 @@
"follow_request.authorize": "Authorise",
"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.dismiss": "Don't show again",
"follow_suggestions.personalized_suggestion": "Personalised suggestion",
"follow_suggestions.popular_suggestion": "Popular suggestion",
@ -308,7 +307,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

@ -295,8 +295,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

@ -277,8 +277,13 @@
"follow_request.authorize": "Autorizar",
"follow_request.reject": "Rechazar",
"follow_requests.unlocked_explanation": "A pesar de que tu cuenta no es privada, el equipo de {domain} pensó que podrías querer revisar manualmente las solicitudes de seguimiento de estas cuentas.",
"follow_suggestions.curated_suggestion": "Cuentas elegidas del servidor",
"follow_suggestions.curated_suggestion": "Selección del equipo",
"follow_suggestions.dismiss": "No mostrar de nuevo",
"follow_suggestions.hints.featured": "Este perfil fue seleccionado a mano por el equipo de {domain}.",
"follow_suggestions.hints.friends_of_friends": "Este perfil es popular entre las cuentas que seguís.",
"follow_suggestions.hints.most_followed": "Este perfil es uno de los más seguidos en {domain}.",
"follow_suggestions.hints.most_interactions": "Este perfil ha estado recibiendo recientemente mucha atención en {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Este perfil es similar a los que comenzaste a seguir.",
"follow_suggestions.personalized_suggestion": "Sugerencia personalizada",
"follow_suggestions.popular_suggestion": "Sugerencia popular",
"follow_suggestions.view_all": "Ver todo",

View file

@ -279,6 +279,11 @@
"follow_requests.unlocked_explanation": "A pesar de que tu cuenta no es privada, el personal de {domain} ha pensado que quizás deberías revisar manualmente las solicitudes de seguimiento de estas cuentas.",
"follow_suggestions.curated_suggestion": "Recomendaciones del equipo",
"follow_suggestions.dismiss": "No mostrar de nuevo",
"follow_suggestions.hints.featured": "Este perfil ha sido elegido a mano por el equipo de {domain}.",
"follow_suggestions.hints.friends_of_friends": "Este perfil es popular entre las personas que sigues.",
"follow_suggestions.hints.most_followed": "Este perfil es uno de los más seguidos en {domain}.",
"follow_suggestions.hints.most_interactions": "Este perfil ha estado recibiendo recientemente mucha atención en {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Este perfil es similar a los perfiles que has seguido recientemente.",
"follow_suggestions.personalized_suggestion": "Sugerencia personalizada",
"follow_suggestions.popular_suggestion": "Sugerencia popular",
"follow_suggestions.view_all": "Ver todo",

View file

@ -279,6 +279,11 @@
"follow_requests.unlocked_explanation": "A pesar de que tu cuenta no es privada, el personal de {domain} ha pensado que quizás deberías revisar manualmente las solicitudes de seguimiento de estas cuentas.",
"follow_suggestions.curated_suggestion": "Recomendaciones del equipo",
"follow_suggestions.dismiss": "No mostrar de nuevo",
"follow_suggestions.hints.featured": "Este perfil ha sido elegido a mano por el equipo de {domain}.",
"follow_suggestions.hints.friends_of_friends": "Este perfil es popular entre las personas que sigues.",
"follow_suggestions.hints.most_followed": "Este perfil es uno de los más seguidos en {domain}.",
"follow_suggestions.hints.most_interactions": "Este perfil ha estado recibiendo recientemente mucha atención en {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Este perfil es similar a los perfiles que has seguido recientemente.",
"follow_suggestions.personalized_suggestion": "Sugerencia personalizada",
"follow_suggestions.popular_suggestion": "Sugerencia popular",
"follow_suggestions.view_all": "Ver todo",

View file

@ -277,8 +277,13 @@
"follow_request.authorize": "Baimendu",
"follow_request.reject": "Ukatu",
"follow_requests.unlocked_explanation": "Zure kontua blokeatuta ez badago ere, {domain} domeinuko arduradunek uste dute kontu hauetako jarraipen eskaerak agian eskuz begiratu nahiko dituzula.",
"follow_suggestions.curated_suggestion": "Zerbitzariaren iradokizunak",
"follow_suggestions.curated_suggestion": "Domeinuaren iradokizuna",
"follow_suggestions.dismiss": "Ez erakutsi berriro",
"follow_suggestions.hints.featured": "Profil hau {domain} domeinuko taldeak eskuz aukeratu du.",
"follow_suggestions.hints.friends_of_friends": "Profil hau ezaguna da jarraitzen duzun jendearen artean.",
"follow_suggestions.hints.most_followed": "Profil hau {domain} domeinuan gehien jarraitzen den profiletako bat da.",
"follow_suggestions.hints.most_interactions": "Profil hau arreta handia jasotzen ari da berriki {domain} domeinuan.",
"follow_suggestions.hints.similar_to_recently_followed": "Profil hau duela gutxi jarraitu dituzun profil askoren antzekoa da.",
"follow_suggestions.personalized_suggestion": "Iradokizun pertsonalizatua",
"follow_suggestions.popular_suggestion": "Iradokizun ezaguna",
"follow_suggestions.view_all": "Ikusi denak",

View file

@ -277,8 +277,13 @@
"follow_request.authorize": "Valtuuta",
"follow_request.reject": "Hylkää",
"follow_requests.unlocked_explanation": "Vaikkei tiliäsi ole lukittu, palvelimen {domain} ylläpito on arvioinut, että saatat olla halukas tarkistamaan nämä seuraamispyynnöt erikseen.",
"follow_suggestions.curated_suggestion": "Päätoimittajan valinta",
"follow_suggestions.curated_suggestion": "Ylläpidon valinta",
"follow_suggestions.dismiss": "Älä näytä uudelleen",
"follow_suggestions.hints.featured": "Tämän profiilin on valinnut palvelimen {domain} tiimi.",
"follow_suggestions.hints.friends_of_friends": "Tämä profiili on suosittu seuraamiesi henkilöiden parissa.",
"follow_suggestions.hints.most_followed": "Tämä profiili on yksi seuratuimmista palvelimella {domain}.",
"follow_suggestions.hints.most_interactions": "Tämä profiili on viime aikoina saanut paljon huomiota palvelimella {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Tämä profiili on samankaltainen kuin profiilit, joita olet viimeksi seurannut.",
"follow_suggestions.personalized_suggestion": "Personoitu ehdotus",
"follow_suggestions.popular_suggestion": "Suosittu ehdotus",
"follow_suggestions.view_all": "Näytä kaikki",

View file

@ -46,7 +46,10 @@
"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}.",
"audio.hide": "Itago ang tunog",
"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",
@ -98,6 +101,7 @@
"compose_form.encryption_warning": "Ang mga post sa Mastodon ay hindi naka-encrypt nang dulo-dulo. Huwag magbahagi ng anumang sensitibong impormasyon sa Mastodon.",
"compose_form.hashtag_warning": "Hindi maililista ang post na ito sa anumang hashtag dahil hindi ito nakapubliko. Mga nakapublikong post lamang ang mahahanap ayon sa hashtag.",
"compose_form.placeholder": "Anong nangyari?",
"compose_form.poll.multiple": "Maraming pagpipilian",
"compose_form.poll.single": "Piliin ang isa",
"compose_form.reply": "Tumugon",
"compose_form.spoiler.unmarked": "Idagdag ang babala sa nilalaman",
@ -107,6 +111,10 @@
"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.delete.message": "Sigurado ka bang gusto mong burahin ang post na ito?",
"confirmations.delete_list.confirm": "Tanggalin",
"confirmations.delete_list.message": "Sigurado ka bang gusto mong burahin ang listahang ito?",
"confirmations.discard_edit_media.confirm": "Ipagpaliban",
"confirmations.domain_block.confirm": "Harangan ang buong domain",
"confirmations.edit.confirm": "Baguhin",
"confirmations.reply.confirm": "Tumugon",
@ -175,46 +183,108 @@
"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.mention": "Banggitin ang may-akda",
"keyboard_shortcuts.requests": "Buksan ang talaan ng mga kahilingan sa pagsunod",
"keyboard_shortcuts.up": "Ilipat pataas sa talaan",
"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.direct": "Mga palihim na banggit",
"navigation_bar.favourites": "Mga paborito",
"navigation_bar.follows_and_followers": "Mga sinusundan at tagasunod",
"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.clear": "Burahin mga abiso",
"notifications.column_settings.admin.report": "Mga bagong ulat:",
"notifications.column_settings.favourite": "Mga paborito:",
"notifications.column_settings.follow": "Mga bagong tagasunod:",
"notifications.column_settings.unread_notifications.category": "Hindi Nabasang mga Abiso",
"notifications.column_settings.update": "Mga pagbago:",
"notifications.filter.all": "Lahat",
"notifications.mark_as_read": "Markahan lahat ng abiso bilang nabasa na",
"onboarding.action.back": "Ibalik mo ako",
"onboarding.actions.back": "Ibalik mo ako",
"onboarding.profile.note_hint": "Maaari mong @bangitin ang ibang mga tao o mga #hashtag…",
"onboarding.profile.save_and_continue": "Iimbak at magpatuloy",
"onboarding.share.next_steps": "Mga posibleng susunod na hakbang:",
"poll.closed": "Sarado",
"poll.reveal": "Ipakita ang mga resulta",
"poll.voted": "Binoto mo para sa sagot na ito",
"poll_button.remove_poll": "Tanggalin ang boto",
"privacy.direct.long": "Lahat ng mga binanggit sa post",
"privacy.private.long": "Mga tagasunod mo lamang",
"privacy.private.short": "Mga tagasunod",
"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",
"search_results.see_all": "Ipakita lahat",
"server_banner.learn_more": "Matuto nang higit pa",
"server_banner.server_stats": "Katayuan ng serbiro:",
"status.block": "Harangan si @{name}",
"status.delete": "Tanggalin",
"status.direct": "Palihim na banggitin si/ang @{name}",
"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.media.open": "Pindutin upang buksan",
"status.media.show": "Pindutin upang ipakita",
"status.mention": "Banggitin ang/si @{name}",
"status.more": "Higit pa",
"status.read_more": "Basahin ang higit pa",
"status.reblogs.empty": "Wala pang nagpalakas ng post na ito. Kung may sinumang nagpalakas, makikita sila rito.",
"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 +292,13 @@
"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",
"tabs_bar.notifications": "Mga abiso",
"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

@ -277,8 +277,13 @@
"follow_request.authorize": "Veit myndugleika",
"follow_request.reject": "Nokta",
"follow_requests.unlocked_explanation": "Sjálvt um konta tín ikki er læst, so hugsa {domain} starvsfólkini, at tú kanska hevur hug at kanna umbønir um at fylgja frá hesum kontum við hond.",
"follow_suggestions.curated_suggestion": "Val umsjónarfólksins",
"follow_suggestions.curated_suggestion": "Val hjá ábyrgdarfólki",
"follow_suggestions.dismiss": "Lat vera við at vísa",
"follow_suggestions.hints.featured": "Hesin vangin er úrvaldur av toyminum handan {domain}.",
"follow_suggestions.hints.friends_of_friends": "Hesin vangin er vælumtóktur millum tey, tú fylgir.",
"follow_suggestions.hints.most_followed": "Hesin vangin er ein av teimum, sum er mest fylgdur á {domain}.",
"follow_suggestions.hints.most_interactions": "Nýliga hava nógv lagt merki til hendan vangan á {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Hesin vangin líkist teimum, sum tú nýliga hevur fylgt.",
"follow_suggestions.personalized_suggestion": "Persónligt uppskot",
"follow_suggestions.popular_suggestion": "Vælumtókt uppskot",
"follow_suggestions.view_all": "Vís øll",

View file

@ -277,8 +277,13 @@
"follow_request.authorize": "Goedkarre",
"follow_request.reject": "Wegerje",
"follow_requests.unlocked_explanation": "Ek al is jo account net besletten, de meiwurkers fan {domain} tinke dat jo miskien de folgjende folchfersiken hânmjittich kontrolearje.",
"follow_suggestions.curated_suggestion": "Kar fan de moderator",
"follow_suggestions.curated_suggestion": "Spesjaal selektearre",
"follow_suggestions.dismiss": "Net mear werjaan",
"follow_suggestions.hints.featured": "Dit profyl is hânmjittich troch it {domain}-team selektearre.",
"follow_suggestions.hints.friends_of_friends": "Dit profyl is populêr ûnder de minsken dyt jo folgje.",
"follow_suggestions.hints.most_followed": "Dit profyl is ien fan de meast folge op {domain}.",
"follow_suggestions.hints.most_interactions": "Dit profyl hat de lêste tiid in protte oandacht krigen op {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Dit profyl is hast lyk oan de profilen dyt jo koartlyn folge hawwe.",
"follow_suggestions.personalized_suggestion": "Personalisearre suggestje",
"follow_suggestions.popular_suggestion": "Populêre suggestje",
"follow_suggestions.view_all": "Alles werjaan",

View file

@ -226,7 +226,6 @@
"follow_request.authorize": "Ceadaigh",
"follow_request.reject": "Diúltaigh",
"follow_requests.unlocked_explanation": "Cé nach bhfuil do chuntas faoi ghlas, cheap foireann {domain} gur mhaith leat súil siar ar iarratais leanúnaí as na cuntais seo.",
"follow_suggestions.curated_suggestion": "Rogha an eagarthóra",
"follow_suggestions.dismiss": "Ná taispeáin arís",
"follow_suggestions.personalized_suggestion": "Nod pearsantaithe",
"follow_suggestions.popular_suggestion": "Nod coiteann",

View file

@ -277,7 +277,6 @@
"follow_request.authorize": "Ùghdarraich",
"follow_request.reject": "Diùlt",
"follow_requests.unlocked_explanation": "Ged nach eil an cunntas agad glaiste, tha sgioba {domain} dhen bheachd gum b fheàirrde thu lèirmheas a dhèanamh air na h-iarrtasan leantainn o na cunntasan seo a làimh.",
"follow_suggestions.curated_suggestion": "Roghainn an deasaiche",
"follow_suggestions.dismiss": "Na seall seo a-rithist",
"follow_suggestions.personalized_suggestion": "Moladh pearsanaichte",
"follow_suggestions.popular_suggestion": "Moladh air a bheil fèill mhòr",

View file

@ -277,8 +277,13 @@
"follow_request.authorize": "Autorizar",
"follow_request.reject": "Rexeitar",
"follow_requests.unlocked_explanation": "Malia que a túa conta non é privada, a administración de {domain} pensou que quizabes terías que revisar de xeito manual as solicitudes de seguiminto.",
"follow_suggestions.curated_suggestion": "O servidor suxíreche",
"follow_suggestions.curated_suggestion": "Suxestións do Servidor",
"follow_suggestions.dismiss": "Non mostrar máis",
"follow_suggestions.hints.featured": "Este perfil foi escollido pola administración de {domain}.",
"follow_suggestions.hints.friends_of_friends": "Este perfil é popular entre as persoas que segues.",
"follow_suggestions.hints.most_followed": "Este perfil é un dos máis seguidos en {domain}.",
"follow_suggestions.hints.most_interactions": "Este perfil tivo moitas interaccións últimamente en {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Este perfil ten semellanzas cos perfís que ti seguiches últimamente.",
"follow_suggestions.personalized_suggestion": "Suxestión personalizada",
"follow_suggestions.popular_suggestion": "Suxestión popular",
"follow_suggestions.view_all": "Ver todas",

View file

@ -277,8 +277,13 @@
"follow_request.authorize": "הרשאה",
"follow_request.reject": "דחיה",
"follow_requests.unlocked_explanation": "למרות שחשבונך אינו נעול, צוות {domain} חושב שאולי כדאי לוודא את בקשות המעקב האלה ידנית.",
"follow_suggestions.curated_suggestion": "בחירת העורכים",
"follow_suggestions.curated_suggestion": "בחירת הצוות",
"follow_suggestions.dismiss": "לא להציג שוב",
"follow_suggestions.hints.featured": "החשבון הזה נבחר אישית על ידי צוות {domain}.",
"follow_suggestions.hints.friends_of_friends": "חשבון זה פופולרי בין הנעקבים שלך.",
"follow_suggestions.hints.most_followed": "חשבון זה הוא מבין הנעקבים ביותר בשרת {domain}.",
"follow_suggestions.hints.most_interactions": "חשבון זה קיבל לאחרונה הרבה תשומת לב על שרת {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "חשבון זה דומה לחשבונות אחרים שאחריהם התחלת לעקוב לאחרונה.",
"follow_suggestions.personalized_suggestion": "הצעות מותאמות אישית",
"follow_suggestions.popular_suggestion": "הצעה פופולרית",
"follow_suggestions.view_all": "צפיה בכל",

View file

@ -277,8 +277,13 @@
"follow_request.authorize": "Hitelesítés",
"follow_request.reject": "Elutasítás",
"follow_requests.unlocked_explanation": "Bár a fiókod nincs zárolva, a(z) {domain} csapata úgy gondolta, hogy talán kézzel szeretnéd ellenőrizni ezen fiókok követési kéréseit.",
"follow_suggestions.curated_suggestion": "Szerkesztői ajánlat",
"follow_suggestions.curated_suggestion": "A stáb választása",
"follow_suggestions.dismiss": "Ne jelenjen meg újra",
"follow_suggestions.hints.featured": "Ezt a profilt a(z) {domain} csapata választotta ki.",
"follow_suggestions.hints.friends_of_friends": "Ez a profil népszerű az általad követett emberek körében.",
"follow_suggestions.hints.most_followed": "Ez a profil a leginkább követett a(z) {domain} oldalon.",
"follow_suggestions.hints.most_interactions": "Ez a profil mostanában sok figyelmet kap a(z) {domain} oldalon.",
"follow_suggestions.hints.similar_to_recently_followed": "Ez a profil hasonló azokhoz a profilokhoz, melyeket nemrég kezdtél el követni.",
"follow_suggestions.personalized_suggestion": "Személyre szabott javaslat",
"follow_suggestions.popular_suggestion": "Népszerű javaslat",
"follow_suggestions.view_all": "Összes megtekintése",

View file

@ -197,7 +197,6 @@
"firehose.all": "Toto",
"firehose.local": "Iste servitor",
"firehose.remote": "Altere servitores",
"follow_suggestions.curated_suggestion": "Selection del editores",
"follow_suggestions.dismiss": "Non monstrar novemente",
"follow_suggestions.personalized_suggestion": "Suggestion personalisate",
"follow_suggestions.popular_suggestion": "Suggestion personalisate",

View file

@ -277,7 +277,6 @@
"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",

View file

@ -277,8 +277,13 @@
"follow_request.authorize": "Heimila",
"follow_request.reject": "Hafna",
"follow_requests.unlocked_explanation": "Jafnvel þótt aðgangurinn þinn sé ekki læstur, hafa umsjónarmenn {domain} ímyndað sér að þú gætir viljað yfirfara handvirkt fylgjendabeiðnir frá þessum notendum.",
"follow_suggestions.curated_suggestion": "Úrval umsjónarfólks",
"follow_suggestions.curated_suggestion": "Úrval starfsfólks",
"follow_suggestions.dismiss": "Ekki birta þetta aftur",
"follow_suggestions.hints.featured": "Þetta notandasnið hefur verið handvalið af {domain}-teyminu.",
"follow_suggestions.hints.friends_of_friends": "Þetta notandasnið er vinsælt hjá fólki sem þú fylgist með.",
"follow_suggestions.hints.most_followed": "Þetta notandasnið er eitt af þeim sem mest er fylgst með á {domain}.",
"follow_suggestions.hints.most_interactions": "Þetta notandasnið hefur vakið mikla athygli að undanförnu á {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Þetta notandasnið er líkt þeim sniðum sem þú hefur valið að fylgjast með að undanförnu.",
"follow_suggestions.personalized_suggestion": "Persónuaðlöguð tillaga",
"follow_suggestions.popular_suggestion": "Vinsæl tillaga",
"follow_suggestions.view_all": "Skoða allt",

View file

@ -277,8 +277,13 @@
"follow_request.authorize": "Autorizza",
"follow_request.reject": "Rifiuta",
"follow_requests.unlocked_explanation": "Anche se il tuo profilo non è privato, lo staff di {domain} ha pensato che potresti voler revisionare manualmente le richieste di seguirti da questi profili.",
"follow_suggestions.curated_suggestion": "Scelta dell'editore",
"follow_suggestions.curated_suggestion": "Scelta personale",
"follow_suggestions.dismiss": "Non visualizzare più",
"follow_suggestions.hints.featured": "Questo profilo è stato selezionato personalmente dal team di {domain}.",
"follow_suggestions.hints.friends_of_friends": "Questo profilo è popolare tra le persone che segui.",
"follow_suggestions.hints.most_followed": "Questo profilo è uno dei più seguiti su {domain}.",
"follow_suggestions.hints.most_interactions": "Recentemente, questo profilo ha ricevuto molta attenzione su {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Questo profilo è simile ai profili che hai seguito più recentemente.",
"follow_suggestions.personalized_suggestion": "Suggerimenti personalizzati",
"follow_suggestions.popular_suggestion": "Suggerimento frequente",
"follow_suggestions.view_all": "Vedi tutto",

View file

@ -370,7 +370,17 @@
"follow_request.authorize": "許可",
"follow_request.reject": "拒否",
"follow_requests.unlocked_explanation": "あなたのアカウントは承認制ではありませんが、{domain}のスタッフはこれらのアカウントからのフォローリクエストの確認が必要であると判断しました。",
"follow_suggestions.curated_suggestion": "サーバースタッフ公認",
"follow_suggestions.dismiss": "今後表示しない",
"follow_suggestions.hints.featured": "{domain} の運営スタッフが選んだアカウントです。",
"follow_suggestions.hints.friends_of_friends": "フォロー中のユーザーのあいだで人気のアカウントです。",
"follow_suggestions.hints.most_followed": "{domain} でもっともフォローされているアカウントのひとつです。",
"follow_suggestions.hints.most_interactions": "{domain} でいま大きな注目を集めています。",
"follow_suggestions.hints.similar_to_recently_followed": "最近フォローしたユーザーに似ているアカウントです。",
"follow_suggestions.personalized_suggestion": "フォローに基づく提案",
"follow_suggestions.popular_suggestion": "人気のアカウント",
"follow_suggestions.view_all": "すべて表示",
"follow_suggestions.who_to_follow": "フォローを増やしてみませんか?",
"followed_tags": "フォロー中のハッシュタグ",
"footer.about": "概要",
"footer.directory": "ディレクトリ",

View file

@ -26,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",
@ -67,6 +68,7 @@
"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",
"closed_registrations_modal.title": "Ajerred deg Masṭudun",
"column.about": "Ɣef",
"column.blocks": "Imiḍanen yettusḥebsen",
"column.bookmarks": "Ticraḍ",
@ -95,6 +97,7 @@
"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": "",
"compose_form.hashtag_warning": "",
@ -104,6 +107,7 @@
"compose_form.poll.duration": "Tanzagt n tefrant",
"compose_form.poll.option_placeholder": "Taxtiṛt {number}",
"compose_form.poll.single": "Fren yiwen",
"compose_form.publish": "Suffeɣ",
"compose_form.publish_form": "Tasuffeɣt tamaynut",
"compose_form.reply": "Err",
"compose_form.save_changes": "Leqqem",
@ -163,7 +167,7 @@
"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.",
@ -190,6 +194,7 @@
"firehose.local": "Deg uqeddac-ayi",
"follow_request.authorize": "Ssireg",
"follow_request.reject": "Agi",
"follow_suggestions.who_to_follow": "Menhu ara ḍefṛeḍ",
"followed_tags": "Ihacṭagen yettwaḍfaren",
"footer.about": "Ɣef",
"footer.directory": "Akaram n imaɣnuten",
@ -209,6 +214,8 @@
"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",
@ -289,6 +296,7 @@
"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ɣ",
@ -300,7 +308,7 @@
"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",
@ -354,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}}",
@ -363,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",
@ -400,6 +409,7 @@
"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 :",
@ -419,6 +429,7 @@
"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": "Amidya yettwaffer",
"status.mention": "Bder-d @{name}",

View file

@ -277,8 +277,13 @@
"follow_request.authorize": "허가",
"follow_request.reject": "거부",
"follow_requests.unlocked_explanation": "귀하의 계정이 잠긴 계정이 아닐지라도, {domain} 스태프는 이 계정들의 팔로우 요청을 수동으로 처리해 주시면 좋겠다고 생각했습니다.",
"follow_suggestions.curated_suggestion": "중재자의 추천",
"follow_suggestions.curated_suggestion": "스태프의 추천",
"follow_suggestions.dismiss": "다시 보지 않기",
"follow_suggestions.hints.featured": "이 프로필은 {domain} 팀이 손수 선택했습니다.",
"follow_suggestions.hints.friends_of_friends": "이 프로필은 내가 팔로우 하는 사람들에게서 유명합니다.",
"follow_suggestions.hints.most_followed": "이 프로필은 {domain}에서 가장 많이 팔로우 된 사람들 중 하나입니다.",
"follow_suggestions.hints.most_interactions": "이 프로필은 최근 {domain}에서 많은 관심을 받았습니다.",
"follow_suggestions.hints.similar_to_recently_followed": "이 프로필은 내가 최근에 팔로우 한 프로필들과 유사합니다.",
"follow_suggestions.personalized_suggestion": "개인화된 추천",
"follow_suggestions.popular_suggestion": "인기있는 추천",
"follow_suggestions.view_all": "모두 보기",

View file

@ -277,8 +277,13 @@
"follow_request.authorize": "Autoriza",
"follow_request.reject": "Refuza",
"follow_requests.unlocked_explanation": "Aunke tu kuento no esta serrado, la taifa de {domain} kreye ke talvez keres revizar manualmente las solisitudes de segimento de estos kuentos.",
"follow_suggestions.curated_suggestion": "Sujestion del sirvidor",
"follow_suggestions.curated_suggestion": "Seleksyon de la taifa",
"follow_suggestions.dismiss": "No amostra mas",
"follow_suggestions.hints.featured": "Este profil tiene sido eskojido por la taifa de {domain}.",
"follow_suggestions.hints.friends_of_friends": "Este profil es popular entre las personas ke siges.",
"follow_suggestions.hints.most_followed": "Este profil es uno de los mas segidos en {domain}.",
"follow_suggestions.hints.most_interactions": "Este profil tiene resivido muncha atansion resientemente en {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Este profil es similar a otros ke tienes segido resientemente.",
"follow_suggestions.personalized_suggestion": "Sujestion personalizada",
"follow_suggestions.popular_suggestion": "Sujestion populara",
"follow_suggestions.view_all": "Ve todos",

View file

@ -269,8 +269,12 @@
"follow_request.authorize": "Autorizuoti",
"follow_request.reject": "Atmesti",
"follow_requests.unlocked_explanation": "Nors tavo paskyra neužrakinta, {domain} personalas mano, kad galbūt norėsi rankiniu būdu patikrinti šių paskyrų sekimo užklausas.",
"follow_suggestions.curated_suggestion": "Redaktorių pasirinkimas",
"follow_suggestions.curated_suggestion": "Personalo pasirinkimai",
"follow_suggestions.dismiss": "Daugiau nerodyti",
"follow_suggestions.hints.friends_of_friends": "Šis profilis yra populiarus tarp žmonių, kuriuos sekei.",
"follow_suggestions.hints.most_followed": "Šis profilis yra vienas iš labiausiai sekamų {domain}.",
"follow_suggestions.hints.most_interactions": "Pastaruoju metu šis profilis sulaukia daug dėmesio šiame {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Šis profilis panašus į profilius, kuriuos neseniai sekei.",
"follow_suggestions.personalized_suggestion": "Suasmenintas pasiūlymas",
"follow_suggestions.popular_suggestion": "Populiarus pasiūlymas",
"follow_suggestions.view_all": "Peržiūrėti viską",

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,10 @@
"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.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 +301,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 +390,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 +478,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 +516,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 +538,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.",
@ -277,8 +277,13 @@
"follow_request.authorize": "Goedkeuren",
"follow_request.reject": "Afwijzen",
"follow_requests.unlocked_explanation": "Ook al is jouw account niet besloten, de medewerkers van {domain} denken dat jij misschien de volgende volgverzoeken handmatig wil controleren.",
"follow_suggestions.curated_suggestion": "Keuze van de moderator(en)",
"follow_suggestions.curated_suggestion": "Speciaal geselecteerd",
"follow_suggestions.dismiss": "Niet meer weergeven",
"follow_suggestions.hints.featured": "Deze gebruiker is geselecteerd door het team van {domain}.",
"follow_suggestions.hints.friends_of_friends": "Deze gebruiker is populair onder de mensen die jij volgt.",
"follow_suggestions.hints.most_followed": "Deze gebruiker is een van de meest gevolgde gebruikers op {domain}.",
"follow_suggestions.hints.most_interactions": "Deze gebruiker is de laatste tijd erg populair op {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Deze gebruiker is vergelijkbaar met gebruikers die je recentelijk hebt gevolgd.",
"follow_suggestions.personalized_suggestion": "Gepersonaliseerde aanbeveling",
"follow_suggestions.popular_suggestion": "Populaire aanbeveling",
"follow_suggestions.view_all": "Alles weergeven",
@ -406,7 +411,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

@ -277,8 +277,13 @@
"follow_request.authorize": "Autoryzuj",
"follow_request.reject": "Odrzuć",
"follow_requests.unlocked_explanation": "Mimo że Twoje konto nie jest zablokowane, zespół {domain} uznał że możesz chcieć ręcznie przejrzeć prośby o możliwość obserwacji.",
"follow_suggestions.curated_suggestion": "Wybór redakcji",
"follow_suggestions.curated_suggestion": "Wybrane przez personel",
"follow_suggestions.dismiss": "Nie pokazuj ponownie",
"follow_suggestions.hints.featured": "Ten profil został wybrany przez zespół {domain}.",
"follow_suggestions.hints.friends_of_friends": "Ten profil jest popularny w gronie użytkowników, których obserwujesz.",
"follow_suggestions.hints.most_followed": "Ten profil jest jednym z najczęściej obserwowanych na {domain}.",
"follow_suggestions.hints.most_interactions": "Ten profil otrzymuje dużo interakcji na {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Ten profil jest podobny do profili ostatnio przez ciebie zaobserwowanych.",
"follow_suggestions.personalized_suggestion": "Sugestia spersonalizowana",
"follow_suggestions.popular_suggestion": "Sugestia popularna",
"follow_suggestions.view_all": "Pokaż wszystkie",

View file

@ -277,7 +277,6 @@
"follow_request.authorize": "Aprovar",
"follow_request.reject": "Recusar",
"follow_requests.unlocked_explanation": "Apesar de seu perfil não ser trancado, {domain} exige que você revise a solicitação para te seguir destes perfis manualmente.",
"follow_suggestions.curated_suggestion": "Escolha dos editores",
"follow_suggestions.dismiss": "Não mostrar novamente",
"follow_suggestions.personalized_suggestion": "Sugestão personalizada",
"follow_suggestions.popular_suggestion": "Sugestão popular",

View file

@ -277,8 +277,13 @@
"follow_request.authorize": "Autorizar",
"follow_request.reject": "Rejeitar",
"follow_requests.unlocked_explanation": "Apesar de a sua não ser privada, a administração de {domain} pensa que poderá querer rever manualmente os pedidos de seguimento dessas contas.",
"follow_suggestions.curated_suggestion": "Escolha dos Editores",
"follow_suggestions.curated_suggestion": "Escolha da equipe",
"follow_suggestions.dismiss": "Não mostrar novamente",
"follow_suggestions.hints.featured": "Este perfil foi escolhido a dedo pela equipe {domain}.",
"follow_suggestions.hints.friends_of_friends": "Este perfil é popular entre as pessoas que você segue.",
"follow_suggestions.hints.most_followed": "Este perfil é um dos mais seguidos no {domain}.",
"follow_suggestions.hints.most_interactions": "Este perfil tem recebido recentemente muita atenção no {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Este perfil é semelhante aos perfis que você seguiu mais recentemente.",
"follow_suggestions.personalized_suggestion": "Sugestão personalizada",
"follow_suggestions.popular_suggestion": "Sugestão popular",
"follow_suggestions.view_all": "Ver tudo",

View file

@ -265,7 +265,6 @@
"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ă",

View file

@ -277,7 +277,6 @@
"follow_request.authorize": "Авторизовать",
"follow_request.reject": "Отказать",
"follow_requests.unlocked_explanation": "Хотя ваша учетная запись не закрыта, команда {domain} подумала, что вы захотите просмотреть запросы от этих учетных записей вручную.",
"follow_suggestions.curated_suggestion": "Выбор редакции",
"follow_suggestions.dismiss": "Больше не показывать",
"follow_suggestions.personalized_suggestion": "Персонализированное предложение",
"follow_suggestions.popular_suggestion": "Популярное предложение",

View file

@ -277,7 +277,6 @@
"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",

View file

@ -277,8 +277,13 @@
"follow_request.authorize": "Overi",
"follow_request.reject": "Zavrni",
"follow_requests.unlocked_explanation": "Čeprav vaš račun ni zaklenjen, zaposleni pri {domain} menijo, da bi morda želeli pregledati zahteve za sledenje teh računov ročno.",
"follow_suggestions.curated_suggestion": "Izbor urednikov",
"follow_suggestions.curated_suggestion": "Izbor osebja",
"follow_suggestions.dismiss": "Ne pokaži več",
"follow_suggestions.hints.featured": "Ta profil so izbrali skrbniki strežnika {domain}.",
"follow_suggestions.hints.friends_of_friends": "Ta profil je priljubljen med osebami, ki jim sledite.",
"follow_suggestions.hints.most_followed": "Ta profil na strežniku {domain} je en izmed najbolj sledenih.",
"follow_suggestions.hints.most_interactions": "Ta profil na strežniku {domain} je nedavno prejel veliko pozornosti.",
"follow_suggestions.hints.similar_to_recently_followed": "Ta profil je podoben profilom, ki ste jim nedavno začeli slediti.",
"follow_suggestions.personalized_suggestion": "Osebno prilagojen predlog",
"follow_suggestions.popular_suggestion": "Priljubljen predlog",
"follow_suggestions.view_all": "Pokaži vse",

View file

@ -277,8 +277,13 @@
"follow_request.authorize": "Autorizoje",
"follow_request.reject": "Hidhe tej",
"follow_requests.unlocked_explanation": "Edhe pse llogaria juaj sështë e kyçur, ekipi i {domain} mendoi se mund të donit të shqyrtonit dorazi kërkesa ndjekjeje prej këtyre llogarive.",
"follow_suggestions.curated_suggestion": "Zgjedhur nga Ekipi",
"follow_suggestions.curated_suggestion": "Zgjedhur nga ekipi",
"follow_suggestions.dismiss": "Mos shfaq më",
"follow_suggestions.hints.featured": "Ky profil është zgjedhur nga ekipi {domain}.",
"follow_suggestions.hints.friends_of_friends": "Ky profil është popullor mes personave që ndiqni.",
"follow_suggestions.hints.most_followed": "Ky profil është një nga më të ndjekur në {domain}.",
"follow_suggestions.hints.most_interactions": "Ky profil ka tërhequr mjaft vëmendjen së fundi në {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Ky profil është i ngjashëm me profile që keni ndjekur tani afër.",
"follow_suggestions.personalized_suggestion": "Sugjerim i personalizuar",
"follow_suggestions.popular_suggestion": "Sugjerim popullor",
"follow_suggestions.view_all": "Shihni krejt",

View file

@ -277,7 +277,6 @@
"follow_request.authorize": "Odobri",
"follow_request.reject": "Odbij",
"follow_requests.unlocked_explanation": "Iako vaš nalog nije zaključan, osoblje {domain} smatra da biste možda želeli da ručno pregledate zahteve za praćenje sa ovih naloga.",
"follow_suggestions.curated_suggestion": "Izbor urednika",
"follow_suggestions.dismiss": "Ne prikazuj ponovo",
"follow_suggestions.personalized_suggestion": "Personalizovani predlog",
"follow_suggestions.popular_suggestion": "Popularni predlog",

View file

@ -277,8 +277,12 @@
"follow_request.authorize": "Одобри",
"follow_request.reject": "Одбиј",
"follow_requests.unlocked_explanation": "Иако ваш налог није закључан, особље {domain} сматра да бисте можда желели да ручно прегледате захтеве за праћење са ових налога.",
"follow_suggestions.curated_suggestion": "Избор уредника",
"follow_suggestions.dismiss": "Не приказуј поново",
"follow_suggestions.hints.featured": "Овај профил је ручно изабрао тим {domain}.",
"follow_suggestions.hints.friends_of_friends": "Овај профил је популаран међу људима које пратите.",
"follow_suggestions.hints.most_followed": "Овај профил је један од најпраћенијих на {domain}.",
"follow_suggestions.hints.most_interactions": "Овај профил је недавно добио велику пажњу на {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Овај профил је сличан профилима које сте недавно запратили.",
"follow_suggestions.personalized_suggestion": "Персонализовани предлог",
"follow_suggestions.popular_suggestion": "Популарни предлог",
"follow_suggestions.view_all": "Прикажи све",

View file

@ -277,7 +277,6 @@
"follow_request.authorize": "อนุญาต",
"follow_request.reject": "ปฏิเสธ",
"follow_requests.unlocked_explanation": "แม้ว่าไม่มีการล็อคบัญชีของคุณ พนักงานของ {domain} คิดว่าคุณอาจต้องการตรวจทานคำขอติดตามจากบัญชีเหล่านี้ด้วยตนเอง",
"follow_suggestions.curated_suggestion": "คัดสรรโดยบรรณาธิการ",
"follow_suggestions.dismiss": "ไม่ต้องแสดงอีก",
"follow_suggestions.personalized_suggestion": "ข้อเสนอแนะเฉพาะบุคคล",
"follow_suggestions.popular_suggestion": "ข้อเสนอแนะยอดนิยม",

View file

@ -277,8 +277,13 @@
"follow_request.authorize": "İzin Ver",
"follow_request.reject": "Reddet",
"follow_requests.unlocked_explanation": "Hesabınız kilitli olmasa da, {domain} personeli bu hesaplardan gelen takip isteklerini gözden geçirmek isteyebileceğinizi düşündü.",
"follow_suggestions.curated_suggestion": "Editörün Seçimi",
"follow_suggestions.curated_suggestion": "Çalışanların seçtikleri",
"follow_suggestions.dismiss": "Tekrar gösterme",
"follow_suggestions.hints.featured": "Bu profil {domain} ekibi tarafından elle seçilmiştir.",
"follow_suggestions.hints.friends_of_friends": "Bu profil takip ettiğiniz insanlar arasında popülerdir.",
"follow_suggestions.hints.most_followed": "Bu, {domain} sunucusunda en fazla izlenen profildir.",
"follow_suggestions.hints.most_interactions": "Bu, {domain} sunucusunda son zamanlarda oldukça fazla dikkat çeken bir profildir.",
"follow_suggestions.hints.similar_to_recently_followed": "Bu profil, son zamanlarda takip ettiğiniz profillere benziyor.",
"follow_suggestions.personalized_suggestion": "Kişiselleşmiş öneriler",
"follow_suggestions.popular_suggestion": "Popüler öneriler",
"follow_suggestions.view_all": "Tümünü gör",

View file

@ -277,8 +277,13 @@
"follow_request.authorize": "Авторизувати",
"follow_request.reject": "Відмовити",
"follow_requests.unlocked_explanation": "Хоча ваш обліковий запис не заблоковано, персонал {domain} припускає, що, можливо, ви хотіли б переглянути ці запити на підписку.",
"follow_suggestions.curated_suggestion": "Вибір редакції",
"follow_suggestions.curated_suggestion": "Відібрано командою",
"follow_suggestions.dismiss": "Більше не показувати",
"follow_suggestions.hints.featured": "Цей профіль був обраний командою {domain}.",
"follow_suggestions.hints.friends_of_friends": "Цей профіль популярний серед тих людей, на яких ви підписані.",
"follow_suggestions.hints.most_followed": "За цим профілем один з найпопулярніших на {domain}.",
"follow_suggestions.hints.most_interactions": "Нещодавно цей профіль отримав багато уваги на {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Цей профіль схожий на профілі, за якими ви стежили останнім часом.",
"follow_suggestions.personalized_suggestion": "Персоналізована пропозиція",
"follow_suggestions.popular_suggestion": "Популярна пропозиція",
"follow_suggestions.view_all": "Переглянути все",

View file

@ -274,11 +274,16 @@
"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ủ",
"follow_suggestions.curated_suggestion": "Gợi ý từ máy chủ",
"follow_suggestions.dismiss": "Không hiện lại",
"follow_suggestions.hints.featured": "Người này được đội ngũ {domain} đề xuất.",
"follow_suggestions.hints.friends_of_friends": "Người này nổi tiếng với những người bạn theo dõi.",
"follow_suggestions.hints.most_followed": "Người này được theo dõi nhiều nhất trên {domain}.",
"follow_suggestions.hints.most_interactions": "Người này đang thu hút sự chú ý trên {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Người này có nét giống những người mà bạn theo dõi gần đây.",
"follow_suggestions.personalized_suggestion": "Gợi ý cá nhân hóa",
"follow_suggestions.popular_suggestion": "Những người nổi tiếng",
"follow_suggestions.view_all": "Xem tất cả",

View file

@ -21,7 +21,7 @@
"account.blocked": "已屏蔽",
"account.browse_more_on_origin_server": "在原始个人资料页面上浏览详情",
"account.cancel_follow_request": "撤回关注请求",
"account.copy": "复制资料链接",
"account.copy": "复制个人资料链接",
"account.direct": "私下提及 @{name}",
"account.disable_notifications": "当 @{name} 发布嘟文时不要通知我",
"account.domain_blocked": "域名已屏蔽",
@ -53,7 +53,7 @@
"account.mute_notifications_short": "关闭通知",
"account.mute_short": "隐藏",
"account.muted": "已隐藏",
"account.mutual": "互粉好友",
"account.mutual": "互相关注",
"account.no_bio": "未提供描述。",
"account.open_original_page": "打开原始页面",
"account.posts": "嘟文",
@ -277,8 +277,13 @@
"follow_request.authorize": "同意",
"follow_request.reject": "拒绝",
"follow_requests.unlocked_explanation": "尽管你没有锁嘟,但是 {domain} 的工作人员认为你也许会想手动审核审核这些账号的关注请求。",
"follow_suggestions.curated_suggestion": "主编推荐",
"follow_suggestions.curated_suggestion": "站务人员精选",
"follow_suggestions.dismiss": "不再显示",
"follow_suggestions.hints.featured": "该用户已被 {domain} 管理团队精选。",
"follow_suggestions.hints.friends_of_friends": "该用户在您关注的人中很受欢迎。",
"follow_suggestions.hints.most_followed": "该用户是 {domain} 上关注度最高的用户之一。",
"follow_suggestions.hints.most_interactions": "该用户最近在 {domain} 上获得了很多关注。",
"follow_suggestions.hints.similar_to_recently_followed": "该用户与您最近关注的用户类似。",
"follow_suggestions.personalized_suggestion": "个性化建议",
"follow_suggestions.popular_suggestion": "热门建议",
"follow_suggestions.view_all": "查看全部",
@ -442,7 +447,7 @@
"notifications.column_settings.alert": "桌面通知",
"notifications.column_settings.favourite": "喜欢:",
"notifications.column_settings.filter_bar.advanced": "显示所有类别",
"notifications.column_settings.filter_bar.category": "快速过滤栏",
"notifications.column_settings.filter_bar.category": "快速筛选栏",
"notifications.column_settings.filter_bar.show_bar": "显示过滤栏",
"notifications.column_settings.follow": "新粉丝:",
"notifications.column_settings.follow_request": "新关注请求:",

View file

@ -277,7 +277,6 @@
"follow_request.authorize": "批准",
"follow_request.reject": "拒絕",
"follow_requests.unlocked_explanation": "即使您的帳號未上鎖,{domain} 的工作人員認為您可能會想手動審核來自這些帳號的追蹤請求。",
"follow_suggestions.curated_suggestion": "編輯推薦",
"follow_suggestions.dismiss": "不再顯示",
"follow_suggestions.personalized_suggestion": "個人化推薦",
"follow_suggestions.popular_suggestion": "熱門推薦",

View file

@ -279,6 +279,11 @@
"follow_requests.unlocked_explanation": "即便您的帳號未被鎖定,{domain} 的管理員認為您可能想要自己審核這些帳號的跟隨請求。",
"follow_suggestions.curated_suggestion": "精選內容",
"follow_suggestions.dismiss": "不再顯示",
"follow_suggestions.hints.featured": "這個個人檔案是 {domain} 管理團隊精心挑選。",
"follow_suggestions.hints.friends_of_friends": "這個個人檔案於您跟隨的帳號中很受歡迎。",
"follow_suggestions.hints.most_followed": "這個個人檔案是 {domain} 中最受歡迎的帳號之一。",
"follow_suggestions.hints.most_interactions": "這個個人檔案最近於 {domain} 受到非常多關注。",
"follow_suggestions.hints.similar_to_recently_followed": "這個個人檔案與您最近跟隨之帳號類似。",
"follow_suggestions.personalized_suggestion": "個人化推薦",
"follow_suggestions.popular_suggestion": "熱門推薦",
"follow_suggestions.view_all": "檢視全部",

View file

@ -398,8 +398,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

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="m260-260 300-140 140-300-300 140-140 300Zm220-180q-17 0-28.5-11.5T440-480q0-17 11.5-28.5T480-520q17 0 28.5 11.5T520-480q0 17-11.5 28.5T480-440Zm0 360q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z"/></svg>

After

Width:  |  Height:  |  Size: 437 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="m260-260 300-140 140-300-300 140-140 300Zm220-180q-17 0-28.5-11.5T440-480q0-17 11.5-28.5T480-520q17 0 28.5 11.5T520-480q0 17-11.5 28.5T480-440Zm0 360q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z"/></svg>

After

Width:  |  Height:  |  Size: 533 B

View file

@ -210,12 +210,6 @@ html {
}
}
// Change the background colors of media and video spoilers
.media-spoiler,
.video-player__spoiler {
background: $ui-base-color;
}
.account-gallery__item a {
background-color: $ui-base-color;
}

View file

@ -4469,35 +4469,6 @@ a.status-card {
z-index: 100;
}
.media-spoiler {
background: $base-overlay-background;
color: $darker-text-color;
border: 0;
padding: 0;
width: 100%;
height: 100%;
border-radius: 4px;
appearance: none;
&:hover,
&:active,
&:focus {
padding: 0;
color: lighten($darker-text-color, 8%);
}
}
.media-spoiler__warning {
display: block;
font-size: 14px;
}
.media-spoiler__trigger {
display: block;
font-size: 11px;
font-weight: 700;
}
.spoiler-button {
top: 0;
inset-inline-start: 0;
@ -9852,6 +9823,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%);
@ -9890,6 +9862,7 @@ noscript {
cursor: pointer;
top: 0;
color: $primary-text-color;
opacity: 0.5;
&.left {
left: 0;
@ -9917,6 +9890,8 @@ noscript {
&:hover,
&:focus,
&:active {
opacity: 1;
.inline-follow-suggestions__body__scroll-button__icon {
background: lighten($ui-highlight-color, 4%);
}
@ -9928,11 +9903,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%);
@ -9957,6 +9931,7 @@ noscript {
position: absolute;
inset-inline-end: 8px;
top: 8px;
opacity: 0.75;
}
&__avatar {
@ -9994,6 +9969,7 @@ noscript {
gap: 4px;
overflow: hidden;
white-space: nowrap;
cursor: help;
> span {
overflow: hidden;

View file

@ -69,6 +69,12 @@ class AdminMailer < ApplicationMailer
end
end
def auto_close_registrations
locale_for_account(@me) do
mail subject: default_i18n_subject(instance: @instance)
end
end
private
def process_params

View file

@ -69,6 +69,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
@ -92,9 +93,9 @@ class Account < ApplicationRecord
include DomainNormalizable
include Paginable
enum protocol: { ostatus: 0, activitypub: 1 }
enum suspension_origin: { local: 0, remote: 1 }, _prefix: true
enum searchability: { public: 0, private: 1, direct: 2, limited: 3, unsupported: 4, public_unlisted: 10 }, _suffix: :searchability
enum :protocol, { ostatus: 0, activitypub: 1 }
enum :suspension_origin, { local: 0, remote: 1 }, prefix: true
enum :searchability, { public: 0, private: 1, direct: 2, limited: 3, unsupported: 4, public_unlisted: 10 }, suffix: :searchability
validates :username, presence: true
validates_with UniqueUsernameValidator, if: -> { will_save_change_to_username? }
@ -127,7 +128,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') }
@ -185,7 +186,7 @@ class Account < ApplicationRecord
end
def instance_actor?
id == -99
id == INSTANCE_ACTOR_ID
end
alias bot bot?

View file

@ -1,7 +1,7 @@
# frozen_string_literal: true
class AccountSuggestions::FriendsOfFriendsSource < AccountSuggestions::Source
def get(account, limit: 10)
def get(account, limit: DEFAULT_LIMIT)
Account.find_by_sql([<<~SQL.squish, { id: account.id, limit: limit }]).map { |row| [row.id, key] }
WITH first_degree AS (
SELECT target_account_id

View file

@ -1,7 +1,7 @@
# frozen_string_literal: true
class AccountSuggestions::GlobalSource < AccountSuggestions::Source
def get(account, limit: 10)
def get(account, limit: DEFAULT_LIMIT)
FollowRecommendation.localized(content_locale).joins(:account).merge(base_account_scope(account)).order(rank: :desc).limit(limit).pluck(:account_id, :reason)
end

View file

@ -1,7 +1,7 @@
# frozen_string_literal: true
class AccountSuggestions::SettingSource < AccountSuggestions::Source
def get(account, limit: 10)
def get(account, limit: DEFAULT_LIMIT)
if setting_enabled?
base_account_scope(account).where(setting_to_where_condition).limit(limit).pluck(:id).zip([key].cycle)
else

View file

@ -47,7 +47,7 @@ class AccountSuggestions::SimilarProfilesSource < AccountSuggestions::Source
end
end
def get(account, limit: 10)
def get(account, limit: DEFAULT_LIMIT)
recently_followed_account_ids = account.active_relationships.recent.limit(5).pluck(:target_account_id)
if Chewy.enabled? && !recently_followed_account_ids.empty?

View file

@ -1,6 +1,8 @@
# frozen_string_literal: true
class AccountSuggestions::Source
DEFAULT_LIMIT = 10
def get(_account, **kwargs)
raise NotImplementedError
end

View file

@ -17,7 +17,7 @@
#
class AccountWarning < ApplicationRecord
enum action: {
enum :action, {
none: 0,
disable: 1_000,
force_cw: 1_200,
@ -26,7 +26,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

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

View file

@ -32,7 +32,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

@ -23,8 +23,8 @@ class FriendDomain < ApplicationRecord
validates :domain, presence: true, uniqueness: true, if: :will_save_change_to_domain?
validates :inbox_url, presence: true, uniqueness: true, if: :will_save_change_to_inbox_url?
enum active_state: { idle: 0, pending: 1, accepted: 2, rejected: 3 }, _prefix: :i_am
enum passive_state: { idle: 0, pending: 1, accepted: 2, rejected: 3 }, _prefix: :they_are
enum :active_state, { idle: 0, pending: 1, accepted: 2, rejected: 3 }, prefix: :i_am
enum :passive_state, { idle: 0, pending: 1, accepted: 2, rejected: 3 }, prefix: :they_are
scope :by_domain_and_subdomains, ->(domain) { where(domain: Instance.by_domain_and_subdomains(domain).select(:domain)) }
scope :enabled, -> { where(active_state: :accepted).or(FriendDomain.where(passive_state: :accepted)).where(available: 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

@ -19,7 +19,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

@ -39,8 +39,8 @@ class MediaAttachment < ApplicationRecord
LOCAL_STATUS_ATTACHMENT_MAX_WITH_POLL = 4
ACTIVITYPUB_STATUS_ATTACHMENT_MAX = 16
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

@ -17,6 +17,6 @@
class NgwordHistory < ApplicationRecord
include Paginable
enum target_type: { status: 0, account_note: 1, account_name: 2 }, _suffix: :blocked
enum reason: { ng_words: 0, ng_words_for_stranger_mention: 1, hashtag_count: 2, mention_count: 3, stranger_mention_count: 4 }, _prefix: :within
enum :target_type, { status: 0, account_note: 1, account_name: 2 }, suffix: :blocked
enum :reason, { ng_words: 0, ng_words_for_stranger_mention: 1, hashtag_count: 2, mention_count: 3, stranger_mention_count: 4 }, prefix: :within
end

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

@ -58,9 +58,9 @@ class Status < ApplicationRecord
update_index('statuses', :proper)
update_index('public_statuses', :proper)
enum visibility: { public: 0, unlisted: 1, private: 2, direct: 3, limited: 4, public_unlisted: 10, login: 11 }, _suffix: :visibility
enum searchability: { public: 0, private: 1, direct: 2, limited: 3, unsupported: 4, public_unlisted: 10 }, _suffix: :searchability
enum limited_scope: { none: 0, mutual: 1, circle: 2, personal: 3, reply: 4 }, _suffix: :limited
enum :visibility, { public: 0, unlisted: 1, private: 2, direct: 3, limited: 4, public_unlisted: 10, login: 11 }, suffix: :visibility
enum :searchability, { public: 0, private: 1, direct: 2, limited: 3, unsupported: 4, public_unlisted: 10 }, suffix: :searchability
enum :limited_scope, { none: 0, mutual: 1, circle: 2, personal: 3, reply: 4 }, suffix: :limited
belongs_to :application, class_name: 'Doorkeeper::Application', optional: true

View file

@ -40,6 +40,8 @@ class UserRole < ApplicationRecord
manage_ng_words: (1 << 30),
}.freeze
EVERYONE_ROLE_ID = -99
module Flags
NONE = 0
ALL = FLAGS.values.reduce(&:|)
@ -98,7 +100,10 @@ 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) }
scope :highlighted, -> { where(highlighted: true) }
scope :with_color, -> { where.not(color: [nil, '']) }
scope :providing_styles, -> { highlighted.with_color }
has_many :users, inverse_of: :role, foreign_key: 'role_id', dependent: :nullify
@ -107,9 +112,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)
@ -117,7 +122,7 @@ class UserRole < ApplicationRecord
end
def everyone?
id == -99
id == EVERYONE_ROLE_ID
end
def nobody?

View file

@ -16,7 +16,32 @@ class TagSearchService < BaseService
private
def from_elasticsearch
query = {
definition = TagsIndex.query(elastic_search_query)
definition = definition.filter(elastic_search_filter) if @options[:exclude_unreviewed]
ensure_exact_match(definition.limit(@limit).offset(@offset).objects.compact)
rescue Faraday::ConnectionFailed, Parslet::ParseFailed
nil
end
# Since the ElasticSearch Query doesn't guarantee the exact match will be the
# first result or that it will even be returned, patch the results accordingly
def ensure_exact_match(results)
return results unless @offset.nil? || @offset.zero?
normalized_query = Tag.normalize(@query)
exact_match = results.find { |tag| tag.name.downcase == normalized_query }
exact_match ||= Tag.find_normalized(normalized_query)
unless exact_match.nil?
results.delete(exact_match)
results = [exact_match] + results
end
results
end
def elastic_search_query
{
function_score: {
query: {
multi_match: {
@ -50,8 +75,10 @@ class TagSearchService < BaseService
boost_mode: 'multiply',
},
}
end
filter = {
def elastic_search_filter
{
bool: {
should: [
{
@ -72,29 +99,6 @@ class TagSearchService < BaseService
],
},
}
definition = TagsIndex.query(query)
definition = definition.filter(filter) if @options[:exclude_unreviewed]
ensure_exact_match(definition.limit(@limit).offset(@offset).objects.compact)
rescue Faraday::ConnectionFailed, Parslet::ParseFailed
nil
end
# Since the ElasticSearch Query doesn't guarantee the exact match will be the
# first result or that it will even be returned, patch the results accordingly
def ensure_exact_match(results)
return results unless @offset.nil? || @offset.zero?
normalized_query = Tag.normalize(@query)
exact_match = results.find { |tag| tag.name.downcase == normalized_query }
exact_match ||= Tag.find_normalized(normalized_query)
unless exact_match.nil?
results.delete(exact_match)
results = [exact_match] + results
end
results
end
def from_database

View file

@ -0,0 +1,3 @@
<%= raw t('admin_mailer.auto_close_registrations.body', instance: @instance) %>
<%= raw t('application_mailer.view')%> <%= admin_settings_registrations_url %>

View file

@ -0,0 +1,33 @@
# frozen_string_literal: true
class Scheduler::AutoCloseRegistrationsScheduler
include Sidekiq::Worker
include Redisable
sidekiq_options retry: 0
# Automatically switch away from open registrations if no
# moderator had any activity in that period of time
OPEN_REGISTRATIONS_MODERATOR_THRESHOLD = 1.week + UserTrackingConcern::SIGN_IN_UPDATE_FREQUENCY
def perform
return if Rails.configuration.x.email_domains_whitelist.present? || ENV['DISABLE_AUTOMATIC_SWITCHING_TO_APPROVED_REGISTRATIONS'] == 'true'
return unless Setting.registrations_mode == 'open'
switch_to_approval_mode! unless active_moderators?
end
private
def active_moderators?
User.those_who_can(:manage_reports).exists?(current_sign_in_at: OPEN_REGISTRATIONS_MODERATOR_THRESHOLD.ago...)
end
def switch_to_approval_mode!
Setting.registrations_mode = 'approved'
User.those_who_can(:view_devops).includes(:account).find_each do |user|
AdminMailer.with(recipient: user.account).auto_close_registrations.deliver_later
end
end
end