@@ -61,7 +66,9 @@ export default class VideoModal extends ImmutablePureComponent {
preview={media.get('preview_url')}
blurhash={media.get('blurhash')}
src={media.get('url')}
- startTime={time}
+ startTime={options.startTime}
+ autoPlay={options.autoPlay}
+ defaultVolume={options.defaultVolume}
onCloseVideo={onClose}
detailed
alt={media.get('description')}
diff --git a/app/javascript/mastodon/features/video/index.js b/app/javascript/mastodon/features/video/index.js
index 8ac9c8db7..95e107618 100644
--- a/app/javascript/mastodon/features/video/index.js
+++ b/app/javascript/mastodon/features/video/index.js
@@ -109,6 +109,8 @@ class Video extends React.PureComponent {
intl: PropTypes.object.isRequired,
blurhash: PropTypes.string,
link: PropTypes.node,
+ autoPlay: PropTypes.bool,
+ defaultVolume: PropTypes.number,
};
state = {
@@ -367,6 +369,13 @@ class Video extends React.PureComponent {
handleLoadedData = () => {
if (this.props.startTime) {
this.video.currentTime = this.props.startTime;
+ }
+
+ if (this.props.defaultVolume !== undefined) {
+ this.video.volume = this.props.defaultVolume;
+ }
+
+ if (this.props.autoPlay) {
this.video.play();
}
}
@@ -393,8 +402,14 @@ class Video extends React.PureComponent {
height,
});
+ const options = {
+ startTime: this.video.currentTime,
+ autoPlay: !this.state.paused,
+ defaultVolume: this.state.volume,
+ };
+
this.video.pause();
- this.props.onOpenVideo(media, this.video.currentTime);
+ this.props.onOpenVideo(media, options);
}
handleCloseVideo = () => {
@@ -492,8 +507,8 @@ class Video extends React.PureComponent {
-
-
+
+
@@ -517,11 +532,11 @@ class Video extends React.PureComponent {
- {(!onCloseVideo && !editable && !fullscreen) &&
}
- {(!fullscreen && onOpenVideo) &&
}
- {onCloseVideo &&
}
-
-
+ {(!onCloseVideo && !editable && !fullscreen) &&
}
+ {(!fullscreen && onOpenVideo) &&
}
+ {onCloseVideo &&
}
+
+
diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json
index fb6de8a53..b21f2a68a 100644
--- a/app/javascript/mastodon/locales/ar.json
+++ b/app/javascript/mastodon/locales/ar.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "عرض الإعدادات",
"column_header.unpin": "فك التدبيس",
"column_subheading.settings": "الإعدادات",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "الوسائط فقط",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "لن يَظهر هذا التبويق إلا للمستخدمين المذكورين.",
"compose_form.direct_message_warning_learn_more": "اقرأ المزيد",
"compose_form.hashtag_warning": "هذا التبويق لن يُدرَج تحت أي وسم كان بما أنه غير مُدرَج. لا يُسمح بالبحث إلّا عن التبويقات العمومية عن طريق الوسوم.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "ترخيص",
"follow_request.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.",
"getting_started.developers": "المُطوِّرون",
"getting_started.directory": "دليل الصفحات التعريفية",
"getting_started.documentation": "الدليل",
diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json
index 1495c0997..9dc51c5dd 100644
--- a/app/javascript/mastodon/locales/ast.json
+++ b/app/javascript/mastodon/locales/ast.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "Amosar axustes",
"column_header.unpin": "Desfixar",
"column_subheading.settings": "Axustes",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Namái multimedia",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Esti barritu namái va unviase a los usuarios mentaos.",
"compose_form.direct_message_warning_learn_more": "Learn more",
"compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
@@ -123,7 +125,7 @@
"directory.federated": "Dende'l fediversu",
"directory.local": "Dende {domain} namái",
"directory.new_arrivals": "Cuentes nueves",
- "directory.recently_active": "Recently active",
+ "directory.recently_active": "Actividá recién",
"embed.instructions": "Empotra esti estáu nun sitiu web copiando'l códigu d'embaxo.",
"embed.preview": "Asina ye cómo va vese:",
"emoji_button.activity": "Actividaes",
@@ -154,7 +156,7 @@
"empty_column.home": "¡Tienes la llinia temporal balera! Visita {public} o usa la gueta pa entamar y conocer a otros usuarios.",
"empty_column.home.public_timeline": "la llinia temporal pública",
"empty_column.list": "Entá nun hai nada nesta llista. Cuando los miembros d'esta llista espublicen estaos nuevos, van apaecer equí.",
- "empty_column.lists": "Entá nun tienes nunenguna llista. Cuando crees una, va amosase equí.",
+ "empty_column.lists": "Entá nun tienes nenguna llista. Cuando crees una, va amosase equí.",
"empty_column.mutes": "Entá nun silenciesti a nunengún usuariu.",
"empty_column.notifications": "Entá nun tienes nunengún avisu. Interactúa con otros p'aniciar la conversación.",
"empty_column.public": "¡Equí nun hai nada! Escribi daqué público o sigui a usuarios d'otros sirvidores pa rellenar esto",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Autorizar",
"follow_request.reject": "Refugar",
+ "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.",
"getting_started.developers": "Desendolcadores",
"getting_started.directory": "Direutoriu de perfiles",
"getting_started.documentation": "Documentación",
diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json
index ea60e9d34..fd974023d 100644
--- a/app/javascript/mastodon/locales/bg.json
+++ b/app/javascript/mastodon/locales/bg.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "Show settings",
"column_header.unpin": "Unpin",
"column_subheading.settings": "Settings",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Media only",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
"compose_form.direct_message_warning_learn_more": "Learn more",
"compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"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.",
"getting_started.developers": "Developers",
"getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
@@ -259,7 +262,7 @@
"lists.subheading": "Your lists",
"load_pending": "{count, plural, one {# new item} other {# new items}}",
"loading_indicator.label": "Зареждане...",
- "media_gallery.toggle_visible": "Toggle visibility",
+ "media_gallery.toggle_visible": "Hide media",
"missing_indicator.label": "Not found",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.hide_notifications": "Hide notifications from this user?",
diff --git a/app/javascript/mastodon/locales/bn.json b/app/javascript/mastodon/locales/bn.json
index 679df9f6b..07bba8eac 100644
--- a/app/javascript/mastodon/locales/bn.json
+++ b/app/javascript/mastodon/locales/bn.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "সেটিং দেখান",
"column_header.unpin": "পিন খুলুন",
"column_subheading.settings": "সেটিং",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "শুধুমাত্র ছবি বা ভিডিও",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "শুধুমাত্র যাদেরকে উল্লেখ করা হয়েছে তাদেরকেই এই টুটটি পাঠানো হবে ।",
"compose_form.direct_message_warning_learn_more": "আরো জানুন",
"compose_form.hashtag_warning": "কোনো হ্যাশট্যাগের ভেতরে এই টুটটি থাকবেনা কারণ এটি তালিকাবহির্ভূত। শুধুমাত্র প্রকাশ্য ঠোটগুলো হ্যাশট্যাগের ভেতরে খুঁজে পাওয়া যাবে।",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "অনুমতি দিন",
"follow_request.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.",
"getting_started.developers": "তৈরিকারকদের জন্য",
"getting_started.directory": "নিজস্ব-পাতাগুলির তালিকা",
"getting_started.documentation": "নথিপত্র",
diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json
index 96092457f..d96d78993 100644
--- a/app/javascript/mastodon/locales/br.json
+++ b/app/javascript/mastodon/locales/br.json
@@ -1,64 +1,64 @@
{
- "account.add_or_remove_from_list": "Ouzhpenn pe lemel ag ar listennadoù",
+ "account.add_or_remove_from_list": "Ouzhpenn pe dilemel eus al listennadoù",
"account.badges.bot": "Robot",
"account.badges.group": "Strollad",
- "account.block": "Stankañ @{name}",
- "account.block_domain": "Kuzh kement tra a {domain}",
+ "account.block": "Berzañ @{name}",
+ "account.block_domain": "Berzañ pep tra eus {domain}",
"account.blocked": "Stanket",
- "account.cancel_follow_request": "Nullañ ar pedad heuliañ",
- "account.direct": "Kas ur c'hemennad da @{name}",
- "account.domain_blocked": "Domani kuzhet",
+ "account.cancel_follow_request": "Nullañ ar bedadenn heuliañ",
+ "account.direct": "Kas ur gemennadenn da @{name}",
+ "account.domain_blocked": "Domani berzet",
"account.edit_profile": "Aozañ ar profil",
"account.endorse": "Lakaat war-wel war ar profil",
"account.follow": "Heuliañ",
- "account.followers": "Heilour·ezed·ion",
- "account.followers.empty": "Den na heul an implijour-mañ c'hoazh.",
+ "account.followers": "Heulier·ezed·ien",
+ "account.followers.empty": "Den na heul an implijer-mañ c'hoazh.",
"account.follows": "Koumanantoù",
- "account.follows.empty": "An implijer-mañ na heul ket den ebet.",
+ "account.follows.empty": "An implijer·ez-mañ na heul den ebet.",
"account.follows_you": "Ho heul",
- "account.hide_reblogs": "Kuzh toudoù skignet gant @{name}",
+ "account.hide_reblogs": "Kuzh toudoù rannet gant @{name}",
"account.last_status": "Oberiantiz zivezhañ",
- "account.link_verified_on": "Ownership of this link was checked on {date}",
- "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
+ "account.link_verified_on": "Gwiriet eo bet perc'hennidigezh al liamm d'an deiziad-mañ : {date}",
+ "account.locked_info": "Prennet eo ar gon-mañ. Dibab a ra ar perc'henn ar re a c'hall heuliañ anezhi pe anezhañ.",
"account.media": "Media",
"account.mention": "Menegiñ @{name}",
- "account.moved_to": "Dilojet en·he deus {name} da:",
+ "account.moved_to": "Dilojet en·he deus {name} da :",
"account.mute": "Kuzhat @{name}",
- "account.mute_notifications": "Kuzh kemennoù a @{name}",
+ "account.mute_notifications": "Kuzh kemennoù eus @{name}",
"account.muted": "Kuzhet",
"account.never_active": "Birviken",
- "account.posts": "Toudoù",
+ "account.posts": "a doudoù",
"account.posts_with_replies": "Toudoù ha respontoù",
"account.report": "Disklêriañ @{name}",
- "account.requested": "É c'hortoz bout aprouet. Clikit da nullañ ar pedad heuliañ",
+ "account.requested": "O c'hortoz an asant. Klikit evit nullañ ar goulenn heuliañ",
"account.share": "Skignañ profil @{name}",
- "account.show_reblogs": "Diskouez toudoù a @{name}",
- "account.unblock": "Distankañ @{name}",
- "account.unblock_domain": "Diguzh {domain}",
+ "account.show_reblogs": "Diskouez skignadennoù @{name}",
+ "account.unblock": "Diverzañ @{name}",
+ "account.unblock_domain": "Diverzañ an domani {domain}",
"account.unendorse": "Paouez da lakaat war-wel war ar profil",
"account.unfollow": "Diheuliañ",
"account.unmute": "Diguzhat @{name}",
"account.unmute_notifications": "Diguzhat kemennoù a @{name}",
"alert.rate_limited.message": "Klaskit en-dro a-benn {retry_time, time, medium}.",
- "alert.rate_limited.title": "Rate limited",
+ "alert.rate_limited.title": "Feur bevennet",
"alert.unexpected.message": "Ur fazi dic'hortozet zo degouezhet.",
- "alert.unexpected.title": "C'hem !",
+ "alert.unexpected.title": "Hopala!",
"announcement.announcement": "Kemenn",
"autosuggest_hashtag.per_week": "{count} bep sizhun",
"boost_modal.combo": "Ar wezh kentañ e c'halliot gwaskañ war {combo} evit tremen hebiou",
- "bundle_column_error.body": "Something went wrong while loading this component.",
- "bundle_column_error.retry": "Klask endro",
+ "bundle_column_error.body": "Degouezhet ez eus bet ur fazi en ur gargañ an elfenn-mañ.",
+ "bundle_column_error.retry": "Klask en-dro",
"bundle_column_error.title": "Fazi rouedad",
"bundle_modal_error.close": "Serriñ",
- "bundle_modal_error.message": "Something went wrong while loading this component.",
- "bundle_modal_error.retry": "Klask endro",
- "column.blocks": "Implijour·ezed·ion stanket",
+ "bundle_modal_error.message": "Degouezhet ez eus bet ur fazi en ur gargañ an elfenn-mañ.",
+ "bundle_modal_error.retry": "Klask en-dro",
+ "column.blocks": "Implijer·ezed·ien berzet",
"column.bookmarks": "Sinedoù",
"column.community": "Red-amzer lec'hel",
"column.direct": "Kemennadoù prevez",
"column.directory": "Mont a-dreuz ar profiloù",
- "column.domain_blocks": "Domani kuzhet",
- "column.favourites": "Ar re vuiañ-karet",
+ "column.domain_blocks": "Domani berzet",
+ "column.favourites": "Muiañ-karet",
"column.follow_requests": "Pedadoù heuliañ",
"column.home": "Degemer",
"column.lists": "Listennoù",
@@ -68,150 +68,153 @@
"column.public": "Red-amzer kevreet",
"column_back_button.label": "Distro",
"column_header.hide_settings": "Kuzhat an arventennoù",
- "column_header.moveLeft_settings": "Move column to the left",
- "column_header.moveRight_settings": "Move column to the right",
+ "column_header.moveLeft_settings": "Dilec'hiañ ar bannad a-gleiz",
+ "column_header.moveRight_settings": "Dilec'hiañ ar bannad a-zehou",
"column_header.pin": "Spilhennañ",
"column_header.show_settings": "Diskouez an arventennoù",
"column_header.unpin": "Dispilhennañ",
"column_subheading.settings": "Arventennoù",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Nemet Mediaoù",
- "compose_form.direct_message_warning": "An toud-mañ a vo kaset nemet d'an implijer·ion·ezed meneget.",
- "compose_form.direct_message_warning_learn_more": "Gouiet hiroc'h",
- "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
- "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
+ "community.column_settings.remote_only": "Remote only",
+ "compose_form.direct_message_warning": "An toud-mañ a vo kaset nemet d'an implijer·ezed·ien meneget.",
+ "compose_form.direct_message_warning_learn_more": "Gouzout hiroc'h",
+ "compose_form.hashtag_warning": "Ne vo ket lakaet an toud-mañ er rolloù gerioù-klik dre mard eo anlistennet. N'eus nemet an toudoù foran a c'hall bezañ klasket dre c'her-klik.",
+ "compose_form.lock_disclaimer": "N'eo ket {locked} ho kont. An holl a c'hal heuliañ ac'hanoc'h evit gwelout ho toudoù prevez.",
"compose_form.lock_disclaimer.lock": "prennet",
"compose_form.placeholder": "Petra eh oc'h é soñjal a-barzh ?",
"compose_form.poll.add_option": "Ouzhpenniñ un dibab",
- "compose_form.poll.duration": "Poll duration",
+ "compose_form.poll.duration": "Pad ar sontadeg",
"compose_form.poll.option_placeholder": "Dibab {number}",
"compose_form.poll.remove_option": "Lemel an dibab-mañ",
- "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
- "compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
+ "compose_form.poll.switch_to_multiple": "Kemmañ ar sontadeg evit aotren meur a zibab",
+ "compose_form.poll.switch_to_single": "Kemmañ ar sontadeg evit aotren un dibab hepken",
"compose_form.publish": "Toudañ",
"compose_form.publish_loud": "{publish} !",
- "compose_form.sensitive.hide": "Mark media as sensitive",
- "compose_form.sensitive.marked": "Media is marked as sensitive",
- "compose_form.sensitive.unmarked": "Media is not marked as sensitive",
- "compose_form.spoiler.marked": "Text is hidden behind warning",
+ "compose_form.sensitive.hide": "Merkañ ar media evel kizidik",
+ "compose_form.sensitive.marked": "Merket eo ar media evel kizidik",
+ "compose_form.sensitive.unmarked": "N'eo ket merket ar media evel kizidik",
+ "compose_form.spoiler.marked": "Kuzhet eo an destenn a-dreñv ur c'hemenn",
"compose_form.spoiler.unmarked": "N'eo ket kuzhet an destenn",
- "compose_form.spoiler_placeholder": "Write your warning here",
+ "compose_form.spoiler_placeholder": "Skrivit ho kemenn amañ",
"confirmation_modal.cancel": "Nullañ",
- "confirmations.block.block_and_report": "Block & Report",
- "confirmations.block.confirm": "Block",
- "confirmations.block.message": "Are you sure you want to block {name}?",
+ "confirmations.block.block_and_report": "Berzañ ha Disklêriañ",
+ "confirmations.block.confirm": "Stankañ",
+ "confirmations.block.message": "Ha sur oc'h e fell deoc'h stankañ {name} ?",
"confirmations.delete.confirm": "Dilemel",
- "confirmations.delete.message": "Are you sure you want to delete this status?",
+ "confirmations.delete.message": "Ha sur oc'h e fell deoc'h dilemel an toud-mañ ?",
"confirmations.delete_list.confirm": "Dilemel",
"confirmations.delete_list.message": "Ha sur eo hoc'h eus c'hoant da zilemel ar roll-mañ da vat ?",
- "confirmations.domain_block.confirm": "Kuzhat an domani a-bezh",
- "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
+ "confirmations.domain_block.confirm": "Berzañ an domani a-bezh",
+ "confirmations.domain_block.message": "Ha sur oc'h e fell deoc'h berzañ an {domain} a-bezh? Peurvuiañ eo trawalc'h berzañ pe mudañ un nebeud implijer·ezed·ien. Ne welot danvez ebet o tont eus an domani-mañ. Dilamet e vo ar c'houmanantoù war an domani-mañ.",
"confirmations.logout.confirm": "Digevreañ",
- "confirmations.logout.message": "Are you sure you want to log out?",
+ "confirmations.logout.message": "Ha sur oc'h e fell deoc'h digevreañ ?",
"confirmations.mute.confirm": "Kuzhat",
- "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.",
+ "confirmations.mute.explanation": "Kuzhat a raio an toudoù skrivet gantañ·i hag ar re a veneg anezhañ·i, met aotren a raio anezhañ·i da welet ho todoù ha a heuliañ ac'hanoc'h.",
"confirmations.mute.message": "Ha sur oc'h e fell deoc'h kuzhaat {name} ?",
"confirmations.redraft.confirm": "Diverkañ ha skrivañ en-dro",
- "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.",
+ "confirmations.redraft.message": "Ha sur oc'h e fell deoc'h dilemel ar statud-mañ hag adlakaat anezhañ er bouilhoñs? Kollet e vo ar merkoù muiañ-karet hag ar skignadennoù hag emzivat e vo ar respontoù d'an toud orin.",
"confirmations.reply.confirm": "Respont",
- "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
+ "confirmations.reply.message": "Respont bremañ a zilamo ar gemennadenn emaoc'h o skrivañ. Sur e oc'h e fell deoc'h kenderc'hel ganti?",
"confirmations.unfollow.confirm": "Diheuliañ",
- "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
- "conversation.delete": "Delete conversation",
- "conversation.mark_as_read": "Mark as read",
- "conversation.open": "View conversation",
- "conversation.with": "With {names}",
- "directory.federated": "From known fediverse",
- "directory.local": "From {domain} only",
- "directory.new_arrivals": "New arrivals",
- "directory.recently_active": "Recently active",
- "embed.instructions": "Embed this status on your website by copying the code below.",
- "embed.preview": "Here is what it will look like:",
- "emoji_button.activity": "Activity",
- "emoji_button.custom": "Custom",
- "emoji_button.flags": "Flags",
- "emoji_button.food": "Food & Drink",
- "emoji_button.label": "Insert emoji",
- "emoji_button.nature": "Nature",
- "emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
- "emoji_button.objects": "Objects",
- "emoji_button.people": "People",
- "emoji_button.recent": "Frequently used",
- "emoji_button.search": "Search...",
- "emoji_button.search_results": "Search results",
- "emoji_button.symbols": "Symbols",
- "emoji_button.travel": "Travel & Places",
- "empty_column.account_timeline": "No toots here!",
- "empty_column.account_unavailable": "Profile unavailable",
- "empty_column.blocks": "You haven't blocked any users yet.",
- "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
- "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
- "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
- "empty_column.domain_blocks": "There are no hidden domains yet.",
- "empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
- "empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
- "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
- "empty_column.hashtag": "There is nothing in this hashtag yet.",
- "empty_column.home": "Your home timeline is empty! Visit {public} or use search to get started and meet other users.",
- "empty_column.home.public_timeline": "the public timeline",
- "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.",
- "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
- "empty_column.mutes": "You haven't muted any users yet.",
- "empty_column.notifications": "You don't have any notifications yet. Interact with others to start the conversation.",
- "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up",
- "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
- "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
- "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
- "errors.unexpected_crash.report_issue": "Report issue",
- "follow_request.authorize": "Authorize",
- "follow_request.reject": "Reject",
- "getting_started.developers": "Developers",
- "getting_started.directory": "Profile directory",
- "getting_started.documentation": "Documentation",
- "getting_started.heading": "Getting started",
- "getting_started.invite": "Invite people",
+ "confirmations.unfollow.message": "Ha sur oc'h e fell deoc'h paouez da heuliañ {name}?",
+ "conversation.delete": "Dilemel ar gaozeadenn",
+ "conversation.mark_as_read": "Merkañ evel lennet",
+ "conversation.open": "Gwelout ar gaozeadenn",
+ "conversation.with": "Gant {names}",
+ "directory.federated": "Eus ar c'hevrebed anavezet",
+ "directory.local": "Eus {domain} hepken",
+ "directory.new_arrivals": "Degouezhet a-nevez",
+ "directory.recently_active": "Oberiant nevez zo",
+ "embed.instructions": "Enkorfit ar statud war ho lec'hienn en ur eilañ ar c'hod dindan.",
+ "embed.preview": "Setu penaos e vo diskouezet:",
+ "emoji_button.activity": "Obererezh",
+ "emoji_button.custom": "Kempennet",
+ "emoji_button.flags": "Bannieloù",
+ "emoji_button.food": "Boued hag Evaj",
+ "emoji_button.label": "Enlakaat un emoji",
+ "emoji_button.nature": "Natur",
+ "emoji_button.not_found": "Emoji ebet !! (╯°□°)╯︵ ┻━┻",
+ "emoji_button.objects": "Traoù",
+ "emoji_button.people": "Tud",
+ "emoji_button.recent": "Implijet alies",
+ "emoji_button.search": "O klask...",
+ "emoji_button.search_results": "Disoc'hoù an enklask",
+ "emoji_button.symbols": "Arouezioù",
+ "emoji_button.travel": "Lec'hioù ha Beajoù",
+ "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 ganeoc'h 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.direct": "N'ho peus kemennad prevez ebet c'hoazh. Pa vo resevet pe kaset unan ganeoc'h e teuio war wel amañ.",
+ "empty_column.domain_blocks": "N'eus domani kuzh ebet c'hoazh.",
+ "empty_column.favourited_statuses": "N'ho peus toud muiañ-karet ebet c'hoazh. Pa vo lakaet unan ganeoc'h e vo diskouezet amañ.",
+ "empty_column.favourites": "Den ebet n'eus lakaet an toud-mañ en e reoù muiañ-karet. Pa vo graet gant unan bennak e vo diskouezet amañ.",
+ "empty_column.follow_requests": "N'ho peus goulenn heuliañ ebet c'hoazh. Pa resevot reoù e vo diskouezet amañ.",
+ "empty_column.hashtag": "N'eus netra er ger-klik-mañ c'hoazh.",
+ "empty_column.home": "Goullo eo ho red-amzer degemer! Kit da weladenniñ {public} pe implijit ar c'hlask evit kregiñ ganti ha kejañ gant implijer·ien·ezed all.",
+ "empty_column.home.public_timeline": "ar red-amzer publik",
+ "empty_column.list": "Goullo eo ar roll-mañ evit ar poent. Pa vo toudet gant e izili e vo diskouezet amañ.",
+ "empty_column.lists": "N'ho peus roll ebet c'hoazh. Pa vo krouet unan ganeoc'h e vo diskouezet amañ.",
+ "empty_column.mutes": "N'ho peus kuzhet implijer ebet c'hoazh.",
+ "empty_column.notifications": "N'ho peus kemenn ebet c'hoazh. Grit gant implijer·ezed·ien all evit loc'hañ ar gomz.",
+ "empty_column.public": "N'eus netra amañ! Skrivit un dra bennak foran pe heuilhit implijer·ien·ezed eus dafariadoù all evit leuniañ",
+ "error.unexpected_crash.explanation": "Abalamour d'ur beug en hor c'hod pe d'ur gudenn geverlec'hded n'hallomp ket skrammañ ar bajenn-mañ en un doare dereat.",
+ "error.unexpected_crash.next_steps": "Klaskit azbevaat ar bajenn. Ma n'a ket en-dro e c'hallit klask ober gant Mastodon dre ur merdeer disheñvel pe dre an arload genidik.",
+ "errors.unexpected_crash.copy_stacktrace": "Eilañ ar roudoù diveugañ er golver",
+ "errors.unexpected_crash.report_issue": "Danevellañ ur fazi",
+ "follow_request.authorize": "Aotren",
+ "follow_request.reject": "Nac'hañ",
+ "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.",
+ "getting_started.developers": "Diorroerien",
+ "getting_started.directory": "Roll ar profiloù",
+ "getting_started.documentation": "Teuliadur",
+ "getting_started.heading": "Loc'hañ",
+ "getting_started.invite": "Pediñ tud",
"getting_started.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.",
- "getting_started.security": "Security",
- "getting_started.terms": "Terms of service",
- "hashtag.column_header.tag_mode.all": "and {additional}",
- "hashtag.column_header.tag_mode.any": "or {additional}",
- "hashtag.column_header.tag_mode.none": "without {additional}",
- "hashtag.column_settings.select.no_options_message": "No suggestions found",
- "hashtag.column_settings.select.placeholder": "Enter hashtags…",
- "hashtag.column_settings.tag_mode.all": "All of these",
- "hashtag.column_settings.tag_mode.any": "Any of these",
- "hashtag.column_settings.tag_mode.none": "None of these",
- "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
- "home.column_settings.basic": "Basic",
- "home.column_settings.show_reblogs": "Show boosts",
- "home.column_settings.show_replies": "Show replies",
+ "getting_started.security": "Arventennoù ar gont",
+ "getting_started.terms": "Divizoù gwerzhañ hollek",
+ "hashtag.column_header.tag_mode.all": "ha {additional}",
+ "hashtag.column_header.tag_mode.any": "pe {additional}",
+ "hashtag.column_header.tag_mode.none": "hep {additional}",
+ "hashtag.column_settings.select.no_options_message": "N'eus bet kavet ali ebet",
+ "hashtag.column_settings.select.placeholder": "Ouzhpennañ gerioù-klik…",
+ "hashtag.column_settings.tag_mode.all": "An holl elfennoù-mañ",
+ "hashtag.column_settings.tag_mode.any": "Unan e mesk anezho",
+ "hashtag.column_settings.tag_mode.none": "Hini ebet anezho",
+ "hashtag.column_settings.tag_toggle": "Endelc'her gerioù-alc'hwez ouzhpenn evit ar bannad-mañ",
+ "home.column_settings.basic": "Diazez",
+ "home.column_settings.show_reblogs": "Diskouez ar skignadennoù",
+ "home.column_settings.show_replies": "Diskouez ar respontoù",
"home.hide_announcements": "Hide announcements",
"home.show_announcements": "Show announcements",
- "intervals.full.days": "{number, plural, one {# day} other {# days}}",
- "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
- "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
- "introduction.federation.action": "Next",
- "introduction.federation.federated.headline": "Federated",
+ "intervals.full.days": "{number, plural, one {# devezh} other{# a zevezhioù}}",
+ "intervals.full.hours": "{number, plural, one {# eurvezh} other{# eurvezh}}",
+ "intervals.full.minutes": "{number, plural, one {# munut} other{# a vunutoù}}",
+ "introduction.federation.action": "Da-heul",
+ "introduction.federation.federated.headline": "Kevreet",
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
- "introduction.federation.home.headline": "Home",
+ "introduction.federation.home.headline": "Degemer",
"introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
- "introduction.federation.local.headline": "Local",
+ "introduction.federation.local.headline": "Lec'hel",
"introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
"introduction.interactions.action": "Finish toot-orial!",
- "introduction.interactions.favourite.headline": "Favourite",
+ "introduction.interactions.favourite.headline": "Muiañ-karet",
"introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
- "introduction.interactions.reblog.headline": "Boost",
+ "introduction.interactions.reblog.headline": "Skignañ",
"introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
- "introduction.interactions.reply.headline": "Reply",
+ "introduction.interactions.reply.headline": "Respont",
"introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
- "introduction.welcome.action": "Let's go!",
- "introduction.welcome.headline": "First steps",
+ "introduction.welcome.action": "Bec'h dezhi!",
+ "introduction.welcome.headline": "Pazennoù kentañ",
"introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.",
"keyboard_shortcuts.back": "to navigate back",
"keyboard_shortcuts.blocked": "to open blocked users list",
- "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.boost": "da skignañ",
"keyboard_shortcuts.column": "to focus a status in one of the columns",
"keyboard_shortcuts.compose": "to focus the compose textarea",
- "keyboard_shortcuts.description": "Description",
+ "keyboard_shortcuts.description": "Deskrivadur",
"keyboard_shortcuts.direct": "to open direct messages column",
"keyboard_shortcuts.down": "to move down in the list",
"keyboard_shortcuts.enter": "to open status",
@@ -230,7 +233,7 @@
"keyboard_shortcuts.open_media": "to open media",
"keyboard_shortcuts.pinned": "to open pinned toots list",
"keyboard_shortcuts.profile": "to open author's profile",
- "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.reply": "da respont",
"keyboard_shortcuts.requests": "to open follow requests list",
"keyboard_shortcuts.search": "to focus search",
"keyboard_shortcuts.start": "to open \"get started\" column",
@@ -239,48 +242,48 @@
"keyboard_shortcuts.toot": "to start a brand new toot",
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "to move up in the list",
- "lightbox.close": "Close",
+ "lightbox.close": "Serriñ",
"lightbox.next": "Next",
"lightbox.previous": "Previous",
"lightbox.view_context": "View context",
- "lists.account.add": "Add to list",
- "lists.account.remove": "Remove from list",
- "lists.delete": "Delete list",
- "lists.edit": "Edit list",
- "lists.edit.submit": "Change title",
- "lists.new.create": "Add list",
- "lists.new.title_placeholder": "New list title",
+ "lists.account.add": "Ouzhpennañ d'al listenn",
+ "lists.account.remove": "Lemel kuit eus al listenn",
+ "lists.delete": "Dilemel al listenn",
+ "lists.edit": "Aozañ al listenn",
+ "lists.edit.submit": "Cheñch an titl",
+ "lists.new.create": "Ouzhpennañ ul listenn",
+ "lists.new.title_placeholder": "Titl nevez al listenn",
"lists.search": "Search among people you follow",
- "lists.subheading": "Your lists",
+ "lists.subheading": "Ho listennoù",
"load_pending": "{count, plural, one {# new item} other {# new items}}",
- "loading_indicator.label": "Loading...",
+ "loading_indicator.label": "O kargañ...",
"media_gallery.toggle_visible": "Toggle visibility",
- "missing_indicator.label": "Not found",
+ "missing_indicator.label": "Digavet",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.hide_notifications": "Hide notifications from this user?",
- "navigation_bar.apps": "Mobile apps",
- "navigation_bar.blocks": "Blocked users",
- "navigation_bar.bookmarks": "Bookmarks",
- "navigation_bar.community_timeline": "Local timeline",
- "navigation_bar.compose": "Compose new toot",
- "navigation_bar.direct": "Direct messages",
- "navigation_bar.discover": "Discover",
- "navigation_bar.domain_blocks": "Hidden domains",
- "navigation_bar.edit_profile": "Edit profile",
- "navigation_bar.favourites": "Favourites",
- "navigation_bar.filters": "Muted words",
- "navigation_bar.follow_requests": "Follow requests",
+ "navigation_bar.apps": "Arloadoù pellgomz",
+ "navigation_bar.blocks": "Implijer·ezed·ien berzet",
+ "navigation_bar.bookmarks": "Sinedoù",
+ "navigation_bar.community_timeline": "Red-amzer lec'hel",
+ "navigation_bar.compose": "Skrivañ un toud nevez",
+ "navigation_bar.direct": "Kemennadoù prevez",
+ "navigation_bar.discover": "Dizoleiñ",
+ "navigation_bar.domain_blocks": "Domanioù kuzhet",
+ "navigation_bar.edit_profile": "Aozañ ar profil",
+ "navigation_bar.favourites": "Ar re vuiañ-karet",
+ "navigation_bar.filters": "Gerioù kuzhet",
+ "navigation_bar.follow_requests": "Pedadoù heuliañ",
"navigation_bar.follows_and_followers": "Follows and followers",
- "navigation_bar.info": "About this server",
- "navigation_bar.keyboard_shortcuts": "Hotkeys",
- "navigation_bar.lists": "Lists",
- "navigation_bar.logout": "Logout",
- "navigation_bar.mutes": "Muted users",
- "navigation_bar.personal": "Personal",
- "navigation_bar.pins": "Pinned toots",
- "navigation_bar.preferences": "Preferences",
- "navigation_bar.public_timeline": "Federated timeline",
- "navigation_bar.security": "Security",
+ "navigation_bar.info": "Diwar-benn an dafariad-mañ",
+ "navigation_bar.keyboard_shortcuts": "Berradurioù",
+ "navigation_bar.lists": "Listennoù",
+ "navigation_bar.logout": "Digennaskañ",
+ "navigation_bar.mutes": "Implijer·ion·ezed kuzhet",
+ "navigation_bar.personal": "Personel",
+ "navigation_bar.pins": "Toudoù spilhennet",
+ "navigation_bar.preferences": "Gwellvezioù",
+ "navigation_bar.public_timeline": "Red-amzer kevreet",
+ "navigation_bar.security": "Diogelroez",
"notification.favourite": "{name} favourited your status",
"notification.follow": "{name} followed you",
"notification.follow_request": "{name} has requested to follow you",
@@ -291,135 +294,135 @@
"notifications.clear": "Clear notifications",
"notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
"notifications.column_settings.alert": "Desktop notifications",
- "notifications.column_settings.favourite": "Favourites:",
+ "notifications.column_settings.favourite": "Ar re vuiañ-karet:",
"notifications.column_settings.filter_bar.advanced": "Display all categories",
- "notifications.column_settings.filter_bar.category": "Quick filter bar",
- "notifications.column_settings.filter_bar.show": "Show",
+ "notifications.column_settings.filter_bar.category": "Barrenn siloù prim",
+ "notifications.column_settings.filter_bar.show": "Diskouez",
"notifications.column_settings.follow": "New followers:",
"notifications.column_settings.follow_request": "New follow requests:",
- "notifications.column_settings.mention": "Mentions:",
- "notifications.column_settings.poll": "Poll results:",
+ "notifications.column_settings.mention": "Menegoù:",
+ "notifications.column_settings.poll": "Disoc'hoù ar sontadeg:",
"notifications.column_settings.push": "Push notifications",
- "notifications.column_settings.reblog": "Boosts:",
- "notifications.column_settings.show": "Show in column",
- "notifications.column_settings.sound": "Play sound",
- "notifications.filter.all": "All",
- "notifications.filter.boosts": "Boosts",
- "notifications.filter.favourites": "Favourites",
+ "notifications.column_settings.reblog": "Skignadennoù:",
+ "notifications.column_settings.show": "Diskouez er bann",
+ "notifications.column_settings.sound": "Seniñ",
+ "notifications.filter.all": "Pep tra",
+ "notifications.filter.boosts": "Skignadennoù",
+ "notifications.filter.favourites": "Muiañ-karet",
"notifications.filter.follows": "Follows",
- "notifications.filter.mentions": "Mentions",
- "notifications.filter.polls": "Poll results",
- "notifications.group": "{count} notifications",
- "poll.closed": "Closed",
- "poll.refresh": "Refresh",
+ "notifications.filter.mentions": "Menegoù",
+ "notifications.filter.polls": "Disoc'hoù ar sontadegoù",
+ "notifications.group": "{count} a gemennoù",
+ "poll.closed": "Serret",
+ "poll.refresh": "Azbevaat",
"poll.total_people": "{count, plural, one {# person} other {# people}}",
"poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
- "poll.vote": "Vote",
- "poll.voted": "You voted for this answer",
- "poll_button.add_poll": "Add a poll",
- "poll_button.remove_poll": "Remove poll",
- "privacy.change": "Adjust status privacy",
- "privacy.direct.long": "Post to mentioned users only",
- "privacy.direct.short": "Direct",
- "privacy.private.long": "Post to followers only",
- "privacy.private.short": "Followers-only",
- "privacy.public.long": "Post to public timelines",
- "privacy.public.short": "Public",
- "privacy.unlisted.long": "Do not show in public timelines",
- "privacy.unlisted.short": "Unlisted",
- "refresh": "Refresh",
- "regeneration_indicator.label": "Loading…",
- "regeneration_indicator.sublabel": "Your home feed is being prepared!",
+ "poll.vote": "Mouezhiañ",
+ "poll.voted": "Mouezhiet ho peus evit ar respont-mañ",
+ "poll_button.add_poll": "Ouzhpennañ ur sontadeg",
+ "poll_button.remove_poll": "Dilemel ar sontadeg",
+ "privacy.change": "Kemmañ gwelidigezh ar statud",
+ "privacy.direct.long": "Embann evit an implijer·ezed·ien meneget hepken",
+ "privacy.direct.short": "War-eeun",
+ "privacy.private.long": "Embann evit ar re a heuilh ac'hanon hepken",
+ "privacy.private.short": "Ar re a heuilh ac'hanon hepken",
+ "privacy.public.long": "Embann war ar redoù-amzer foran",
+ "privacy.public.short": "Publik",
+ "privacy.unlisted.long": "Na embann war ar redoù-amzer foran",
+ "privacy.unlisted.short": "Anlistennet",
+ "refresh": "Freskaat",
+ "regeneration_indicator.label": "O kargañ…",
+ "regeneration_indicator.sublabel": "War brientiñ emañ ho red degemer!",
"relative_time.days": "{number}d",
- "relative_time.hours": "{number}h",
- "relative_time.just_now": "now",
+ "relative_time.hours": "{number}e",
+ "relative_time.just_now": "bremañ",
"relative_time.minutes": "{number}m",
- "relative_time.seconds": "{number}s",
- "relative_time.today": "today",
- "reply_indicator.cancel": "Cancel",
- "report.forward": "Forward to {target}",
+ "relative_time.seconds": "{number}eil",
+ "relative_time.today": "hiziv",
+ "reply_indicator.cancel": "Nullañ",
+ "report.forward": "Treuzkas da: {target}",
"report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
"report.hint": "The report will be sent to your server moderators. You can provide an explanation of why you are reporting this account below:",
"report.placeholder": "Additional comments",
"report.submit": "Submit",
"report.target": "Report {target}",
- "search.placeholder": "Search",
+ "search.placeholder": "Klask",
"search_popout.search_format": "Advanced search format",
"search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
- "search_popout.tips.hashtag": "hashtag",
- "search_popout.tips.status": "status",
+ "search_popout.tips.hashtag": "ger-klik",
+ "search_popout.tips.status": "statud",
"search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
- "search_popout.tips.user": "user",
- "search_results.accounts": "People",
- "search_results.hashtags": "Hashtags",
- "search_results.statuses": "Toots",
+ "search_popout.tips.user": "implijer·ez",
+ "search_results.accounts": "Tud",
+ "search_results.hashtags": "Gerioù-klik",
+ "search_results.statuses": "a doudoù",
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"status.admin_account": "Open moderation interface for @{name}",
"status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
- "status.bookmark": "Bookmark",
+ "status.bookmark": "Ouzhpennañ d'ar sinedoù",
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "This post cannot be boosted",
"status.copy": "Copy link to status",
- "status.delete": "Delete",
+ "status.delete": "Dilemel",
"status.detailed_status": "Detailed conversation view",
- "status.direct": "Direct message @{name}",
- "status.embed": "Embed",
- "status.favourite": "Favourite",
+ "status.direct": "Kas ur c'hemennad da @{name}",
+ "status.embed": "Enframmañ",
+ "status.favourite": "Muiañ-karet",
"status.filtered": "Filtered",
- "status.load_more": "Load more",
- "status.media_hidden": "Media hidden",
- "status.mention": "Mention @{name}",
- "status.more": "More",
- "status.mute": "Mute @{name}",
- "status.mute_conversation": "Mute conversation",
+ "status.load_more": "Kargañ muioc'h",
+ "status.media_hidden": "Media kuzhet",
+ "status.mention": "Menegiñ @{name}",
+ "status.more": "Muioc'h",
+ "status.mute": "Kuzhat @{name}",
+ "status.mute_conversation": "Kuzhat ar gaozeadenn",
"status.open": "Expand this status",
- "status.pin": "Pin on profile",
- "status.pinned": "Pinned toot",
- "status.read_more": "Read more",
- "status.reblog": "Boost",
+ "status.pin": "Spilhennañ d'ar profil",
+ "status.pinned": "Toud spilhennet",
+ "status.read_more": "Lenn muioc'h",
+ "status.reblog": "Skignañ",
"status.reblog_private": "Boost to original audience",
"status.reblogged_by": "{name} boosted",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Delete & re-draft",
"status.remove_bookmark": "Remove bookmark",
- "status.reply": "Reply",
+ "status.reply": "Respont",
"status.replyAll": "Reply to thread",
- "status.report": "Report @{name}",
+ "status.report": "Disklêriañ @{name}",
"status.sensitive_warning": "Sensitive content",
- "status.share": "Share",
+ "status.share": "Rannañ",
"status.show_less": "Show less",
"status.show_less_all": "Show less for all",
"status.show_more": "Show more",
"status.show_more_all": "Show more for all",
"status.show_thread": "Show thread",
"status.uncached_media_warning": "Not available",
- "status.unmute_conversation": "Unmute conversation",
- "status.unpin": "Unpin from profile",
+ "status.unmute_conversation": "Diguzhat ar gaozeadenn",
+ "status.unpin": "Dispilhennañ eus ar profil",
"suggestions.dismiss": "Dismiss suggestion",
"suggestions.header": "You might be interested in…",
"tabs_bar.federated_timeline": "Federated",
- "tabs_bar.home": "Home",
- "tabs_bar.local_timeline": "Local",
- "tabs_bar.notifications": "Notifications",
- "tabs_bar.search": "Search",
+ "tabs_bar.home": "Degemer",
+ "tabs_bar.local_timeline": "Lec'hel",
+ "tabs_bar.notifications": "Kemennoù",
+ "tabs_bar.search": "Klask",
"time_remaining.days": "{number, plural, one {# day} other {# days}} left",
"time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
"time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
"time_remaining.moments": "Moments remaining",
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
- "trends.trending_now": "Trending now",
+ "trends.trending_now": "Luskad ar mare",
"ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
"upload_area.title": "Drag & drop to upload",
- "upload_button.label": "Add media ({formats})",
+ "upload_button.label": "Ouzhpennañ ur media ({formats})",
"upload_error.limit": "File upload limit exceeded.",
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
- "upload_form.edit": "Edit",
- "upload_form.undo": "Delete",
+ "upload_form.edit": "Aozañ",
+ "upload_form.undo": "Dilemel",
"upload_form.video_description": "Describe for people with hearing loss or visual impairment",
"upload_modal.analyzing_picture": "Analyzing picture…",
"upload_modal.apply": "Apply",
@@ -428,9 +431,9 @@
"upload_modal.edit_media": "Edit media",
"upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
"upload_modal.preview_label": "Preview ({ratio})",
- "upload_progress.label": "Uploading…",
+ "upload_progress.label": "O pellgargañ...",
"video.close": "Close video",
- "video.download": "Download file",
+ "video.download": "Pellgargañ ar restr",
"video.exit_fullscreen": "Exit full screen",
"video.expand": "Expand video",
"video.fullscreen": "Full screen",
diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json
index d948ab903..5e338dac4 100644
--- a/app/javascript/mastodon/locales/ca.json
+++ b/app/javascript/mastodon/locales/ca.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "Mostra la configuració",
"column_header.unpin": "No fixis",
"column_subheading.settings": "Configuració",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Només multimèdia",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Aquest tut només serà enviat als usuaris esmentats.",
"compose_form.direct_message_warning_learn_more": "Aprèn més",
"compose_form.hashtag_warning": "Aquesta tut no es mostrarà en cap etiqueta ja que no està llistat. Només els tuts públics poden ser cercats per etiqueta.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Autoritzar",
"follow_request.reject": "Rebutjar",
+ "follow_requests.unlocked_explanation": "Tot i que el teu compte no està bloquejat, el personal de {domain} ha pensat que és possible que vulguis revisar les sol·licituds de seguiment d’aquests comptes de forma manual.",
"getting_started.developers": "Desenvolupadors",
"getting_started.directory": "Directori de perfils",
"getting_started.documentation": "Documentació",
diff --git a/app/javascript/mastodon/locales/co.json b/app/javascript/mastodon/locales/co.json
index 87ccdfdbc..6113c29cc 100644
--- a/app/javascript/mastodon/locales/co.json
+++ b/app/javascript/mastodon/locales/co.json
@@ -3,7 +3,7 @@
"account.badges.bot": "Bot",
"account.badges.group": "Gruppu",
"account.block": "Bluccà @{name}",
- "account.block_domain": "Piattà tuttu da {domain}",
+ "account.block_domain": "Piattà u duminiu {domain}",
"account.blocked": "Bluccatu",
"account.cancel_follow_request": "Annullà a dumanda d'abbunamentu",
"account.direct": "Missaghju direttu @{name}",
@@ -74,7 +74,9 @@
"column_header.show_settings": "Mustrà i parametri",
"column_header.unpin": "Spuntarulà",
"column_subheading.settings": "Parametri",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Solu media",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Solu l'utilizatori mintuvati puderenu vede stu statutu.",
"compose_form.direct_message_warning_learn_more": "Amparà di più",
"compose_form.hashtag_warning": "Stu statutu ùn hè \"Micca listatu\" è ùn sarà micca listatu indè e circate da hashtag. Per esse vistu in quesse, u statutu deve esse \"Pubblicu\".",
@@ -100,15 +102,15 @@
"confirmations.block.confirm": "Bluccà",
"confirmations.block.message": "Site sicuru·a che vulete bluccà @{name}?",
"confirmations.delete.confirm": "Toglie",
- "confirmations.delete.message": "Site sicuru·a che vulete supprime stu statutu?",
+ "confirmations.delete.message": "Site sicuru·a che vulete sguassà stu statutu?",
"confirmations.delete_list.confirm": "Toglie",
- "confirmations.delete_list.message": "Site sicuru·a che vulete supprime sta lista?",
+ "confirmations.delete_list.message": "Site sicuru·a che vulete toglie sta lista?",
"confirmations.domain_block.confirm": "Piattà tuttu u duminiu",
- "confirmations.domain_block.message": "Site sicuru·a che vulete piattà tuttu à {domain}? Saria forse abbastanza di bluccà ò piattà alcuni conti da quallà. Ùn viderete più nunda da quallà indè e linee pubbliche o e nutificazione. I vostri abbunati da stu duminiu saranu tolti.",
+ "confirmations.domain_block.message": "Site veramente sicuru·a che vulete piattà tuttu à {domain}? Saria forse abbastanza di bluccà ò piattà alcuni conti da quallà. Ùn viderete più nunda da quallà indè e linee pubbliche o e nutificazione. I vostri abbunati da stu duminiu saranu tolti.",
"confirmations.logout.confirm": "Scunnettassi",
"confirmations.logout.message": "Site sicuru·a che vulete scunnettà vi?",
"confirmations.mute.confirm": "Piattà",
- "confirmations.mute.explanation": "Quessu hà da piattà i statuti da sta persona è i posti chì a mintuvanu, mà ellu·a puderà sempre vede i vostri statuti è siguità vi.",
+ "confirmations.mute.explanation": "Quessu hà da piattà i statuti da sta persona è i posti chì a mintuvanu, ma ellu·a puderà sempre vede i vostri statuti è siguità vi.",
"confirmations.mute.message": "Site sicuru·a che vulete piattà @{name}?",
"confirmations.redraft.confirm": "Sguassà è riscrive",
"confirmations.redraft.message": "Site sicuru·a chè vulete sguassà stu statutu è riscrivelu? I favuriti è spartere saranu persi, è e risposte diventeranu orfane.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Auturizà",
"follow_request.reject": "Righjittà",
+ "follow_requests.unlocked_explanation": "U vostru contu ùn hè micca privatu, ma a squadra d'amministrazione di {domain} pensa chì e dumande d'abbunamentu di questi conti anu bisognu d'esse verificate manualmente.",
"getting_started.developers": "Sviluppatori",
"getting_started.directory": "Annuariu di i prufili",
"getting_started.documentation": "Ducumentazione",
@@ -210,7 +213,7 @@
"introduction.interactions.reply.text": "Pudete risponde à d'altre persone o a i vostri propii statuti, cio chì i ligarà indè una cunversazione.",
"introduction.welcome.action": "Andemu!",
"introduction.welcome.headline": "Primi passi",
- "introduction.welcome.text": "Benvenutu·a indè u fediverse! In qualchi minuta, puderete diffonde missaghji è parlà à i vostri amichi nant'à una varietà maiò di servori. Mà quess'istanza, {domain}, hè speciale—ghjè induve hè uspitatu u vostru prufile, allora ricurdatevi di u so nome.",
+ "introduction.welcome.text": "Benvenutu·a indè u fediverse! In qualchi minuta, puderete diffonde missaghji è parlà à i vostri amichi nant'à una varietà maiò di servori. Ma quess'istanza, {domain}, hè speciale—ghjè induve hè uspitatu u vostru prufile, allora ricurdatevi di u so nome.",
"keyboard_shortcuts.back": "rivultà",
"keyboard_shortcuts.blocked": "per apre una lista d'utilizatori bluccati",
"keyboard_shortcuts.boost": "sparte",
@@ -250,7 +253,7 @@
"lightbox.view_context": "Vede u cuntestu",
"lists.account.add": "Aghjunghje à a lista",
"lists.account.remove": "Toglie di a lista",
- "lists.delete": "Supprime a lista",
+ "lists.delete": "Toglie a lista",
"lists.edit": "Mudificà a lista",
"lists.edit.submit": "Cambià u titulu",
"lists.new.create": "Aghjunghje",
@@ -419,7 +422,7 @@
"trends.trending_now": "Tindenze d'avà",
"ui.beforeunload": "A bruttacopia sarà persa s'ellu hè chjosu Mastodon.",
"upload_area.title": "Drag & drop per caricà un fugliale",
- "upload_button.label": "Aghjunghje un media (JPEG, PNG, GIF, WebM, MP4, MOV)",
+ "upload_button.label": "Aghjunghje un media ({formats})",
"upload_error.limit": "Limita di caricamentu di fugliali trapassata.",
"upload_error.poll": "Ùn si pò micca caricà fugliali cù i scandagli.",
"upload_form.audio_description": "Discrizzione per i ciochi",
diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json
index d1ecd0419..96532cc0a 100644
--- a/app/javascript/mastodon/locales/cs.json
+++ b/app/javascript/mastodon/locales/cs.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "Zobrazit nastavení",
"column_header.unpin": "Odepnout",
"column_subheading.settings": "Nastavení",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Pouze média",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Tento toot bude odeslán pouze zmíněným uživatelům.",
"compose_form.direct_message_warning_learn_more": "Zjistit více",
"compose_form.hashtag_warning": "Tento toot nebude zobrazen pod žádným hashtagem, neboť je neuvedený. Pouze veřejné tooty mohou být vyhledány podle hashtagu.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Autorizovat",
"follow_request.reject": "Odmítnout",
+ "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.",
"getting_started.developers": "Vývojáři",
"getting_started.directory": "Adresář profilů",
"getting_started.documentation": "Dokumentace",
@@ -189,8 +192,8 @@
"home.column_settings.basic": "Základní",
"home.column_settings.show_reblogs": "Zobrazit boosty",
"home.column_settings.show_replies": "Zobrazit odpovědi",
- "home.hide_announcements": "Hide announcements",
- "home.show_announcements": "Show announcements",
+ "home.hide_announcements": "Skrýt oznámení",
+ "home.show_announcements": "Zobrazit oznámení",
"intervals.full.days": "{number, plural, one {# den} few {# dny} many {# dní} other {# dní}}",
"intervals.full.hours": "{number, plural, one {# hodina} few {# hodiny} many {# hodin} other {# hodin}}",
"intervals.full.minutes": "{number, plural, one {# minuta} few {# minuty} many {# minut} other {# minut}}",
@@ -340,7 +343,7 @@
"relative_time.just_now": "teď",
"relative_time.minutes": "{number} m",
"relative_time.seconds": "{number} s",
- "relative_time.today": "today",
+ "relative_time.today": "dnes",
"reply_indicator.cancel": "Zrušit",
"report.forward": "Přeposlat na {target}",
"report.forward_hint": "Tento účet je z jiného serveru. Chcete na něj také poslat anonymizovanou kopii?",
diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json
index 3a7a3acaa..0821855b7 100644
--- a/app/javascript/mastodon/locales/cy.json
+++ b/app/javascript/mastodon/locales/cy.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "Dangos gosodiadau",
"column_header.unpin": "Dadbinio",
"column_subheading.settings": "Gosodiadau",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Cyfryngau yn unig",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Mi fydd y tŵt hwn ond yn cael ei anfon at y defnyddwyr sy'n cael eu crybwyll.",
"compose_form.direct_message_warning_learn_more": "Dysgu mwy",
"compose_form.hashtag_warning": "Ni fydd y tŵt hwn wedi ei restru o dan unrhyw hashnod gan ei fod heb ei restru. Dim ond tŵtiau cyhoeddus gellid chwilota amdanynt drwy hashnod.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Caniatau",
"follow_request.reject": "Gwrthod",
+ "follow_requests.unlocked_explanation": "Er nid yw eich cyfrif wedi'i gloi, oedd y staff {domain} yn meddwl efallai hoffech adolygu ceisiadau dilyn o'r cyfrifau rhain wrth law.",
"getting_started.developers": "Datblygwyr",
"getting_started.directory": "Cyfeiriadur proffil",
"getting_started.documentation": "Dogfennaeth",
diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json
index 4204ae3dc..b562a225a 100644
--- a/app/javascript/mastodon/locales/da.json
+++ b/app/javascript/mastodon/locales/da.json
@@ -1,7 +1,7 @@
{
"account.add_or_remove_from_list": "Tilføj eller fjern fra lister",
"account.badges.bot": "Robot",
- "account.badges.group": "Group",
+ "account.badges.group": "Gruppe",
"account.block": "Bloker @{name}",
"account.block_domain": "Skjul alt fra {domain}",
"account.blocked": "Blokeret",
@@ -74,7 +74,9 @@
"column_header.show_settings": "Vis indstillinger",
"column_header.unpin": "Fastgør ikke længere",
"column_subheading.settings": "Indstillinger",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Kun medie",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Dette trut vil kun blive sendt til de nævnte brugere.",
"compose_form.direct_message_warning_learn_more": "Lær mere",
"compose_form.hashtag_warning": "Dette trut vil ikke blive vist under noget hashtag da det ikke er listet. Kun offentlige trut kan blive vist under søgninger med hashtags.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Godkend",
"follow_request.reject": "Afvis",
+ "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.",
"getting_started.developers": "Udviklere",
"getting_started.directory": "Profilliste",
"getting_started.documentation": "Dokumentation",
@@ -340,7 +343,7 @@
"relative_time.just_now": "nu",
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
- "relative_time.today": "today",
+ "relative_time.today": "i dag",
"reply_indicator.cancel": "Annuller",
"report.forward": "Videresend til {target}",
"report.forward_hint": "Kontoen er fra en anden server. Vil du også sende en anonym kopi af anmeldelsen dertil?",
diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json
index a70216288..eccd74cba 100644
--- a/app/javascript/mastodon/locales/de.json
+++ b/app/javascript/mastodon/locales/de.json
@@ -3,7 +3,7 @@
"account.badges.bot": "Bot",
"account.badges.group": "Gruppe",
"account.block": "@{name} blockieren",
- "account.block_domain": "Alles von {domain} verstecken",
+ "account.block_domain": "Alles von {domain} blockieren",
"account.blocked": "Blockiert",
"account.cancel_follow_request": "Folgeanfrage abbrechen",
"account.direct": "Direktnachricht an @{name}",
@@ -34,7 +34,7 @@
"account.share": "Profil von @{name} teilen",
"account.show_reblogs": "Von @{name} geteilte Beiträge anzeigen",
"account.unblock": "@{name} entblocken",
- "account.unblock_domain": "{domain} wieder anzeigen",
+ "account.unblock_domain": "Blockieren von {domain} beenden",
"account.unendorse": "Nicht auf Profil hervorheben",
"account.unfollow": "Entfolgen",
"account.unmute": "@{name} nicht mehr stummschalten",
@@ -74,7 +74,9 @@
"column_header.show_settings": "Einstellungen anzeigen",
"column_header.unpin": "Lösen",
"column_subheading.settings": "Einstellungen",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Nur Medien",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Dieser Beitrag wird nur für die erwähnten Nutzer sichtbar sein.",
"compose_form.direct_message_warning_learn_more": "Mehr erfahren",
"compose_form.hashtag_warning": "Dieser Beitrag wird nicht durch Hashtags entdeckbar sein, weil er ungelistet ist. Nur öffentliche Beiträge tauchen in Hashtag-Zeitleisten auf.",
@@ -86,7 +88,7 @@
"compose_form.poll.option_placeholder": "Wahl {number}",
"compose_form.poll.remove_option": "Wahl entfernen",
"compose_form.poll.switch_to_multiple": "Umfrage ändern, um mehrere Optionen zu erlauben",
- "compose_form.poll.switch_to_single": "Umfrage ändern, um eine einzige Wahl zu ermöglichen",
+ "compose_form.poll.switch_to_single": "Umfrage ändern, um eine einzige Wahl zu erlauben",
"compose_form.publish": "Tröt",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.hide": "Medien als heikel markieren",
@@ -143,7 +145,7 @@
"empty_column.account_timeline": "Keine Beiträge!",
"empty_column.account_unavailable": "Konto nicht verfügbar",
"empty_column.blocks": "Du hast keine Profile blockiert.",
- "empty_column.bookmarked_statuses": "Du hast bis jetzt keine Beiträge als Toots gespeichert. Wenn du einen Beitrag als Toot speicherst, wird er hier erscheinen.",
+ "empty_column.bookmarked_statuses": "Du hast bis jetzt keine Beiträge als Lesezeichen gespeichert. Wenn du einen Beitrag als Lesezeichen speicherst wird er hier erscheinen.",
"empty_column.community": "Die lokale Zeitleiste ist leer. Schreibe einen öffentlichen Beitrag, um den Ball ins Rollen zu bringen!",
"empty_column.direct": "Du hast noch keine Direktnachrichten erhalten. Wenn du eine sendest oder empfängst, wird sie hier zu sehen sein.",
"empty_column.domain_blocks": "Es ist noch keine versteckten Domains.",
@@ -158,7 +160,7 @@
"empty_column.mutes": "Du hast keine Profile stummgeschaltet.",
"empty_column.notifications": "Du hast noch keine Mitteilungen. Interagiere mit anderen, um ins Gespräch zu kommen.",
"empty_column.public": "Hier ist nichts zu sehen! Schreibe etwas öffentlich oder folge Profilen von anderen Servern, um die Zeitleiste aufzufüllen",
- "error.unexpected_crash.explanation": "Aufgrund eines Fehlers in unserem Code oder einer Browsereinkompatibilität konnte diese Seite nicht korrekt angezeigt werden.",
+ "error.unexpected_crash.explanation": "Aufgrund eines Fehlers in unserem Code oder einer Browser-Inkompatibilität konnte diese Seite nicht korrekt angezeigt werden.",
"error.unexpected_crash.next_steps": "Versuche die Seite zu aktualisieren. Wenn das nicht hilft, kannst du Mastodon über einen anderen Browser oder eine native App verwenden.",
"errors.unexpected_crash.copy_stacktrace": "Fehlerlog in die Zwischenablage kopieren",
"errors.unexpected_crash.report_issue": "Problem melden",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Erlauben",
"follow_request.reject": "Ablehnen",
+ "follow_requests.unlocked_explanation": "Auch wenn dein Konto nicht gesperrt ist, haben die Mitarbeiter von {domain} gedacht, dass es besser wäre den Follow manuell zu bestätigen.",
"getting_started.developers": "Entwickler",
"getting_started.directory": "Profilverzeichnis",
"getting_started.documentation": "Dokumentation",
@@ -301,7 +304,7 @@
"notifications.column_settings.filter_bar.category": "Schnellfilterleiste",
"notifications.column_settings.filter_bar.show": "Anzeigen",
"notifications.column_settings.follow": "Neue Folgende:",
- "notifications.column_settings.follow_request": "Neue Folge-Anfragen:",
+ "notifications.column_settings.follow_request": "Neue Folgeanfragen:",
"notifications.column_settings.mention": "Erwähnungen:",
"notifications.column_settings.poll": "Ergebnisse von Umfragen:",
"notifications.column_settings.push": "Push-Benachrichtigungen",
@@ -326,7 +329,7 @@
"privacy.change": "Sichtbarkeit des Beitrags anpassen",
"privacy.direct.long": "Wird an erwähnte Profile gesendet",
"privacy.direct.short": "Direktnachricht",
- "privacy.private.long": "Wird nur für deine Folgende sichtbar sein",
+ "privacy.private.long": "Beitrag nur an Folgende",
"privacy.private.short": "Nur für Folgende",
"privacy.public.long": "Wird in öffentlichen Zeitleisten erscheinen",
"privacy.public.short": "Öffentlich",
diff --git a/app/javascript/mastodon/locales/defaultMessages.json b/app/javascript/mastodon/locales/defaultMessages.json
index c58790013..4429322db 100644
--- a/app/javascript/mastodon/locales/defaultMessages.json
+++ b/app/javascript/mastodon/locales/defaultMessages.json
@@ -142,7 +142,7 @@
{
"descriptors": [
{
- "defaultMessage": "Unhide {domain}",
+ "defaultMessage": "Unblock domain {domain}",
"id": "account.unblock_domain"
}
],
@@ -217,7 +217,7 @@
{
"descriptors": [
{
- "defaultMessage": "Toggle visibility",
+ "defaultMessage": "Hide media",
"id": "media_gallery.toggle_visible"
},
{
@@ -455,11 +455,11 @@
"id": "status.copy"
},
{
- "defaultMessage": "Hide everything from {domain}",
+ "defaultMessage": "Block domain {domain}",
"id": "account.block_domain"
},
{
- "defaultMessage": "Unhide {domain}",
+ "defaultMessage": "Unblock domain {domain}",
"id": "account.unblock_domain"
},
{
@@ -475,6 +475,10 @@
},
{
"descriptors": [
+ {
+ "defaultMessage": "Show thread",
+ "id": "status.show_thread"
+ },
{
"defaultMessage": "Read more",
"id": "status.read_more"
@@ -503,10 +507,6 @@
{
"defaultMessage": "{name} boosted",
"id": "status.reblogged_by"
- },
- {
- "defaultMessage": "Show thread",
- "id": "status.show_thread"
}
],
"path": "app/javascript/mastodon/components/status.json"
@@ -527,7 +527,7 @@
{
"descriptors": [
{
- "defaultMessage": "Hide entire domain",
+ "defaultMessage": "Block entire domain",
"id": "confirmations.domain_block.confirm"
},
{
@@ -701,11 +701,11 @@
"id": "account.media"
},
{
- "defaultMessage": "Hide everything from {domain}",
+ "defaultMessage": "Block domain {domain}",
"id": "account.block_domain"
},
{
- "defaultMessage": "Unhide {domain}",
+ "defaultMessage": "Unblock domain {domain}",
"id": "account.unblock_domain"
},
{
@@ -741,7 +741,7 @@
"id": "navigation_bar.blocks"
},
{
- "defaultMessage": "Hidden domains",
+ "defaultMessage": "Blocked domains",
"id": "navigation_bar.domain_blocks"
},
{
@@ -777,7 +777,7 @@
"id": "account.muted"
},
{
- "defaultMessage": "Domain hidden",
+ "defaultMessage": "Domain blocked",
"id": "account.domain_blocked"
},
{
@@ -921,6 +921,10 @@
{
"defaultMessage": "Logout",
"id": "navigation_bar.logout"
+ },
+ {
+ "defaultMessage": "Bookmarks",
+ "id": "navigation_bar.bookmarks"
}
],
"path": "app/javascript/mastodon/features/compose/components/action_bar.json"
@@ -1102,7 +1106,7 @@
"id": "privacy.public.short"
},
{
- "defaultMessage": "Post to public timelines",
+ "defaultMessage": "Visible for all, shown in public timelines",
"id": "privacy.public.long"
},
{
@@ -1110,7 +1114,7 @@
"id": "privacy.unlisted.short"
},
{
- "defaultMessage": "Do not show in public timelines",
+ "defaultMessage": "Visible for all, but not in public timelines",
"id": "privacy.unlisted.long"
},
{
@@ -1118,7 +1122,7 @@
"id": "privacy.private.short"
},
{
- "defaultMessage": "Post to followers only",
+ "defaultMessage": "Visible for followers only",
"id": "privacy.private.long"
},
{
@@ -1126,7 +1130,7 @@
"id": "privacy.direct.short"
},
{
- "defaultMessage": "Post to mentioned users only",
+ "defaultMessage": "Visible for mentioned users only",
"id": "privacy.direct.long"
},
{
@@ -1495,15 +1499,15 @@
{
"descriptors": [
{
- "defaultMessage": "Hidden domains",
+ "defaultMessage": "Blocked domains",
"id": "column.domain_blocks"
},
{
- "defaultMessage": "Unhide {domain}",
+ "defaultMessage": "Unblock domain {domain}",
"id": "account.unblock_domain"
},
{
- "defaultMessage": "There are no hidden domains yet.",
+ "defaultMessage": "There are no blocked domains yet.",
"id": "empty_column.domain_blocks"
}
],
@@ -1557,6 +1561,10 @@
{
"defaultMessage": "You don't have any follow requests yet. When you receive one, it will show up here.",
"id": "empty_column.follow_requests"
+ },
+ {
+ "defaultMessage": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
+ "id": "follow_requests.unlocked_explanation"
}
],
"path": "app/javascript/mastodon/features/follow_requests/index.json"
@@ -1727,6 +1735,10 @@
{
"defaultMessage": "Include additional tags in this column",
"id": "hashtag.column_settings.tag_toggle"
+ },
+ {
+ "defaultMessage": "Local only",
+ "id": "community.column_settings.local_only"
}
],
"path": "app/javascript/mastodon/features/hashtag_timeline/components/column_settings.json"
@@ -2288,6 +2300,19 @@
],
"path": "app/javascript/mastodon/features/pinned_statuses/index.json"
},
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Media only",
+ "id": "community.column_settings.media_only"
+ },
+ {
+ "defaultMessage": "Remote only",
+ "id": "community.column_settings.remote_only"
+ }
+ ],
+ "path": "app/javascript/mastodon/features/public_timeline/components/column_settings.json"
+ },
{
"descriptors": [
{
@@ -2413,11 +2438,11 @@
"id": "status.copy"
},
{
- "defaultMessage": "Hide everything from {domain}",
+ "defaultMessage": "Block domain {domain}",
"id": "account.block_domain"
},
{
- "defaultMessage": "Unhide {domain}",
+ "defaultMessage": "Unblock domain {domain}",
"id": "account.unblock_domain"
},
{
diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json
index 477ef36db..e58957356 100644
--- a/app/javascript/mastodon/locales/el.json
+++ b/app/javascript/mastodon/locales/el.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "Εμφάνιση ρυθμίσεων",
"column_header.unpin": "Ξεκαρφίτσωμα",
"column_subheading.settings": "Ρυθμίσεις",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Μόνο πολυμέσα",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Αυτό το τουτ θα σταλεί μόνο στους αναφερόμενους χρήστες.",
"compose_form.direct_message_warning_learn_more": "Μάθετε περισσότερα",
"compose_form.hashtag_warning": "Αυτό το τουτ δεν θα εμφανίζεται κάτω από κανένα hashtag καθώς είναι αφανές. Μόνο τα δημόσια τουτ μπορούν να αναζητηθούν ανά hashtag.",
@@ -150,7 +152,7 @@
"empty_column.favourited_statuses": "Δεν έχεις κανένα αγαπημένο τουτ ακόμα. Μόλις αγαπήσεις κάποιο, θα εμφανιστεί εδώ.",
"empty_column.favourites": "Κανείς δεν έχει αγαπήσει αυτό το τουτ ακόμα. Μόλις το κάνει κάποια, θα εμφανιστούν εδώ.",
"empty_column.follow_requests": "Δεν έχεις κανένα αίτημα παρακολούθησης ακόμα. Μόλις λάβεις κάποιο, θα εμφανιστεί εδώ.",
- "empty_column.hashtag": "Δεν υπάρχει ακόμα κάτι για αυτή την ταμπέλα.",
+ "empty_column.hashtag": "Δεν υπάρχει ακόμα κάτι για αυτή την ετικέτα.",
"empty_column.home": "Η τοπική σου ροή είναι κενή! Πήγαινε στο {public} ή κάνε αναζήτηση για να ξεκινήσεις και να γνωρίσεις άλλους χρήστες.",
"empty_column.home.public_timeline": "η δημόσια ροή",
"empty_column.list": "Δεν υπάρχει τίποτα σε αυτή τη λίστα ακόμα. Όταν τα μέλη της δημοσιεύσουν νέες καταστάσεις, θα εμφανιστούν εδώ.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Ενέκρινε",
"follow_request.reject": "Απέρριψε",
+ "follow_requests.unlocked_explanation": "Παρόλο που ο λογαριασμός σου δεν είναι κλειδωμένος, οι διαχειριστές του {domain} θεώρησαν πως ίσως να θέλεις να ελέγξεις χειροκίνητα αυτά τα αιτήματα ακολούθησης.",
"getting_started.developers": "Ανάπτυξη",
"getting_started.directory": "Κατάλογος λογαριασμών",
"getting_started.documentation": "Τεκμηρίωση",
@@ -181,7 +184,7 @@
"hashtag.column_header.tag_mode.any": "ή {additional}",
"hashtag.column_header.tag_mode.none": "χωρίς {additional}",
"hashtag.column_settings.select.no_options_message": "Δεν βρέθηκαν προτάσεις",
- "hashtag.column_settings.select.placeholder": "Γράψε μερικές ταμπέλες…",
+ "hashtag.column_settings.select.placeholder": "Γράψε μερικές ετικέτες…",
"hashtag.column_settings.tag_mode.all": "Όλα αυτά",
"hashtag.column_settings.tag_mode.any": "Οποιοδήποτε από αυτά",
"hashtag.column_settings.tag_mode.none": "Κανένα από αυτά",
@@ -350,13 +353,13 @@
"report.target": "Καταγγελία {target}",
"search.placeholder": "Αναζήτηση",
"search_popout.search_format": "Προχωρημένη αναζήτηση",
- "search_popout.tips.full_text": "Απλό κείμενο που επιστρέφει καταστάσεις που έχεις γράψει, σημειώσει ως αγαπημένες, προωθήσει ή έχεις αναφερθεί σε αυτές, καθώς και όσα ονόματα χρηστών και ταμπέλες ταιριάζουν.",
- "search_popout.tips.hashtag": "ταμπέλα",
+ "search_popout.tips.full_text": "Απλό κείμενο που επιστρέφει καταστάσεις που έχεις γράψει, έχεις σημειώσει ως αγαπημένες, έχεις προωθήσει ή έχεις αναφερθεί σε αυτές, καθώς και όσα ονόματα χρηστών και ετικέτες ταιριάζουν.",
+ "search_popout.tips.hashtag": "ετικέτα",
"search_popout.tips.status": "κατάσταση",
- "search_popout.tips.text": "Απλό κείμενο που επιστρέφει ονόματα και ταμπέλες που ταιριάζουν",
+ "search_popout.tips.text": "Απλό κείμενο που επιστρέφει ονόματα και ετικέτες που ταιριάζουν",
"search_popout.tips.user": "χρήστης",
"search_results.accounts": "Άνθρωποι",
- "search_results.hashtags": "Ταμπέλες",
+ "search_results.hashtags": "Ετικέτες",
"search_results.statuses": "Τουτ",
"search_results.statuses_fts_disabled": "Η αναζήτηση τουτ βάσει του περιεχόμενού τους δεν είναι ενεργοποιημένη σε αυτό τον κόμβο.",
"search_results.total": "{count, number} {count, plural, zero {αποτελέσματα} one {αποτέλεσμα} other {αποτελέσματα}}",
diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json
index 6f7c9d800..79566e282 100644
--- a/app/javascript/mastodon/locales/en.json
+++ b/app/javascript/mastodon/locales/en.json
@@ -3,11 +3,11 @@
"account.badges.bot": "Bot",
"account.badges.group": "Group",
"account.block": "Block @{name}",
- "account.block_domain": "Hide everything from {domain}",
+ "account.block_domain": "Block domain {domain}",
"account.blocked": "Blocked",
"account.cancel_follow_request": "Cancel follow request",
"account.direct": "Direct message @{name}",
- "account.domain_blocked": "Domain hidden",
+ "account.domain_blocked": "Domain blocked",
"account.edit_profile": "Edit profile",
"account.endorse": "Feature on profile",
"account.follow": "Follow",
@@ -34,7 +34,7 @@
"account.share": "Share @{name}'s profile",
"account.show_reblogs": "Show boosts from @{name}",
"account.unblock": "Unblock @{name}",
- "account.unblock_domain": "Unhide {domain}",
+ "account.unblock_domain": "Unblock domain {domain}",
"account.unendorse": "Don't feature on profile",
"account.unfollow": "Unfollow",
"account.unmute": "Unmute @{name}",
@@ -57,7 +57,7 @@
"column.community": "Local timeline",
"column.direct": "Direct messages",
"column.directory": "Browse profiles",
- "column.domain_blocks": "Hidden domains",
+ "column.domain_blocks": "Blocked domains",
"column.favourites": "Favourites",
"column.follow_requests": "Follow requests",
"column.home": "Home",
@@ -74,7 +74,9 @@
"column_header.show_settings": "Show settings",
"column_header.unpin": "Unpin",
"column_subheading.settings": "Settings",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Media Only",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "This post will only be sent to the mentioned users.",
"compose_form.direct_message_warning_learn_more": "Learn more",
"compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
@@ -103,7 +105,7 @@
"confirmations.delete.message": "Are you sure you want to delete this status?",
"confirmations.delete_list.confirm": "Delete",
"confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
- "confirmations.domain_block.confirm": "Hide entire domain",
+ "confirmations.domain_block.confirm": "Block entire domain",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
"confirmations.logout.confirm": "Log out",
"confirmations.logout.message": "Are you sure you want to log out?",
@@ -146,7 +148,7 @@
"empty_column.bookmarked_statuses": "You don't have any bookmarked posts yet. When you bookmark one, it will show up here.",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
- "empty_column.domain_blocks": "There are no hidden domains yet.",
+ "empty_column.domain_blocks": "There are no blocked domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite posts yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this post yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"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.",
"getting_started.developers": "Developers",
"getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
@@ -260,7 +263,7 @@
"lists.subheading": "Your lists",
"load_pending": "{count, plural, one {# new item} other {# new items}}",
"loading_indicator.label": "Loading...",
- "media_gallery.toggle_visible": "Toggle visibility",
+ "media_gallery.toggle_visible": "Hide media",
"missing_indicator.label": "Not found",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.hide_notifications": "Hide notifications from this user?",
@@ -271,7 +274,7 @@
"navigation_bar.compose": "Compose new post",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
- "navigation_bar.domain_blocks": "Hidden domains",
+ "navigation_bar.domain_blocks": "Blocked domains",
"navigation_bar.edit_profile": "Edit profile",
"navigation_bar.favourites": "Favourites",
"navigation_bar.filters": "Muted words",
@@ -325,13 +328,13 @@
"poll_button.add_poll": "Add a poll",
"poll_button.remove_poll": "Remove poll",
"privacy.change": "Adjust status privacy",
- "privacy.direct.long": "Post to mentioned users only",
+ "privacy.direct.long": "Visible for mentioned users only",
"privacy.direct.short": "Direct",
- "privacy.private.long": "Post to followers only",
+ "privacy.private.long": "Visible for followers only",
"privacy.private.short": "Followers-only",
- "privacy.public.long": "Post to public timelines",
+ "privacy.public.long": "Visible for all, shown in public timelines",
"privacy.public.short": "Public",
- "privacy.unlisted.long": "Do not post to public timelines",
+ "privacy.unlisted.long": "Visible for all, but not in public timelines",
"privacy.unlisted.short": "Unlisted",
"refresh": "Refresh",
"regeneration_indicator.label": "Loading…",
diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json
index 5c19375b6..98954987e 100644
--- a/app/javascript/mastodon/locales/eo.json
+++ b/app/javascript/mastodon/locales/eo.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "Montri agordojn",
"column_header.unpin": "Depingli",
"column_subheading.settings": "Agordado",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Nur aŭdovidaĵoj",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Tiu mesaĝo estos sendita nur al menciitaj uzantoj.",
"compose_form.direct_message_warning_learn_more": "Lerni pli",
"compose_form.hashtag_warning": "Ĉi tiu mesaĝo ne estos listigita per ajna kradvorto. Nur publikaj mesaĝoj estas serĉeblaj per kradvortoj.",
@@ -158,8 +160,8 @@
"empty_column.mutes": "Vi ne ankoraŭ silentigis iun uzanton.",
"empty_column.notifications": "Vi ankoraŭ ne havas sciigojn. Interagu kun aliaj por komenci konversacion.",
"empty_column.public": "Estas nenio ĉi tie! Publike skribu ion, aŭ mane sekvu uzantojn de aliaj serviloj por plenigi la publikan tempolinion",
- "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
- "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
+ "error.unexpected_crash.explanation": "Pro eraro en nia kodo, aŭ problemo de kongruo en via retumilo, ĉi tiu paĝo ne povis esti montrata ĝuste.",
+ "error.unexpected_crash.next_steps": "Provu refreŝigi la paĝon. Se tio ne helpas, vi ankoraŭ povus uzi Mastodon per malsama retumilo aŭ operaciuma aplikajo.",
"errors.unexpected_crash.copy_stacktrace": "Kopii stakspuron en tondujo",
"errors.unexpected_crash.report_issue": "Raporti problemon",
"federation.change": "Adjust status federation",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Rajtigi",
"follow_request.reject": "Rifuzi",
+ "follow_requests.unlocked_explanation": "137/5000\nKvankam via konto ne estas ŝlosita, la dungitaro de {domain} opiniis, ke vi eble volus revizii petojn de sekvadon el ĉi tiuj kontoj permane.",
"getting_started.developers": "Programistoj",
"getting_started.directory": "Profilujo",
"getting_started.documentation": "Dokumentado",
@@ -211,39 +214,39 @@
"introduction.welcome.action": "Ek!",
"introduction.welcome.headline": "Unuaj paŝoj",
"introduction.welcome.text": "Bonvenon en Fediverse! Tre baldaŭ, vi povos disdoni mesaĝojn kaj paroli al viaj amikoj tra granda servila diverseco. Sed ĉi tiu servilo, {domain}, estas speciala: ĝi enhavas vian profilon, do memoru ĝian nomon.",
- "keyboard_shortcuts.back": "por reveni",
- "keyboard_shortcuts.blocked": "por malfermi la liston de blokitaj uzantoj",
- "keyboard_shortcuts.boost": "por diskonigi",
- "keyboard_shortcuts.column": "por fokusigi mesaĝon en unu el la kolumnoj",
- "keyboard_shortcuts.compose": "por fokusigi la tekstujon",
+ "keyboard_shortcuts.back": "reveni",
+ "keyboard_shortcuts.blocked": "malfermi la liston de blokitaj uzantoj",
+ "keyboard_shortcuts.boost": "diskonigi",
+ "keyboard_shortcuts.column": "fokusi mesaĝon en unu el la kolumnoj",
+ "keyboard_shortcuts.compose": "enfokusigi la tekstujon",
"keyboard_shortcuts.description": "Priskribo",
- "keyboard_shortcuts.direct": "por malfermi la kolumnon de rektaj mesaĝoj",
- "keyboard_shortcuts.down": "por iri suben en la listo",
- "keyboard_shortcuts.enter": "por malfermi mesaĝon",
- "keyboard_shortcuts.favourite": "por stelumi",
- "keyboard_shortcuts.favourites": "por malfermi la liston de stelumoj",
- "keyboard_shortcuts.federated": "por malfermi la frataran tempolinion",
+ "keyboard_shortcuts.direct": "malfermi la kolumnon de rektaj mesaĝoj",
+ "keyboard_shortcuts.down": "iri suben en la listo",
+ "keyboard_shortcuts.enter": "malfermi mesaĝon",
+ "keyboard_shortcuts.favourite": "stelumi",
+ "keyboard_shortcuts.favourites": "malfermi la liston de stelumoj",
+ "keyboard_shortcuts.federated": "malfermi la frataran tempolinion",
"keyboard_shortcuts.heading": "Klavaraj mallongigoj",
- "keyboard_shortcuts.home": "por malfermi la hejman tempolinion",
+ "keyboard_shortcuts.home": "malfermi la hejman tempolinion",
"keyboard_shortcuts.hotkey": "Rapidklavo",
- "keyboard_shortcuts.legend": "por montri ĉi tiun noton",
- "keyboard_shortcuts.local": "por malfermi la lokan tempolinion",
+ "keyboard_shortcuts.legend": "montri ĉi tiun noton",
+ "keyboard_shortcuts.local": "malfermi la lokan tempolinion",
"keyboard_shortcuts.mention": "por mencii la aŭtoron",
- "keyboard_shortcuts.muted": "por malfermi la liston de silentigitaj uzantoj",
- "keyboard_shortcuts.my_profile": "por malfermi vian profilon",
- "keyboard_shortcuts.notifications": "por malfermi la kolumnon de sciigoj",
- "keyboard_shortcuts.open_media": "por malfermi aŭdovidaĵon",
- "keyboard_shortcuts.pinned": "por malfermi la liston de alpinglitaj mesaĝoj",
- "keyboard_shortcuts.profile": "por malfermi la profilon de la aŭtoro",
- "keyboard_shortcuts.reply": "por respondi",
- "keyboard_shortcuts.requests": "por malfermi la liston de petoj de sekvado",
- "keyboard_shortcuts.search": "por fokusigi la serĉilon",
- "keyboard_shortcuts.start": "por malfermi la kolumnon «por komenci»",
- "keyboard_shortcuts.toggle_hidden": "por montri/kaŝi tekston malantaŭ enhava averto",
- "keyboard_shortcuts.toggle_sensitivity": "por montri/kaŝi aŭdovidaĵojn",
- "keyboard_shortcuts.toot": "por komenci tute novan mesaĝon",
- "keyboard_shortcuts.unfocus": "por malfokusigi la tekstujon aŭ la serĉilon",
- "keyboard_shortcuts.up": "por iri supren en la listo",
+ "keyboard_shortcuts.muted": "malfermi la liston de silentigitaj uzantoj",
+ "keyboard_shortcuts.my_profile": "malfermi vian profilon",
+ "keyboard_shortcuts.notifications": "malfermi la kolumnon de sciigoj",
+ "keyboard_shortcuts.open_media": "malfermi aŭdovidaĵon",
+ "keyboard_shortcuts.pinned": "malfermi la liston de alpinglitaj mesaĝoj",
+ "keyboard_shortcuts.profile": "malfermi la profilon de la aŭtoro",
+ "keyboard_shortcuts.reply": "respondi",
+ "keyboard_shortcuts.requests": "malfermi la liston de petoj de sekvado",
+ "keyboard_shortcuts.search": "enfokusigi la serĉilon",
+ "keyboard_shortcuts.start": "malfermi la kolumnon «por komenci»",
+ "keyboard_shortcuts.toggle_hidden": "montri/kaŝi tekston malantaŭ enhava averto",
+ "keyboard_shortcuts.toggle_sensitivity": "montri/kaŝi aŭdovidaĵojn",
+ "keyboard_shortcuts.toot": "komenci tute novan mesaĝon",
+ "keyboard_shortcuts.unfocus": "malenfokusigi la tekstujon aŭ la serĉilon",
+ "keyboard_shortcuts.up": "iri supren en la listo",
"lightbox.close": "Fermi",
"lightbox.next": "Sekva",
"lightbox.previous": "Antaŭa",
@@ -380,7 +383,7 @@
"status.more": "Pli",
"status.mute": "Silentigi @{name}",
"status.mute_conversation": "Silentigi konversacion",
- "status.open": "Grandigi",
+ "status.open": "Grandigi ĉi tiun mesaĝon",
"status.pin": "Alpingli profile",
"status.pinned": "Alpinglita mesaĝo",
"status.read_more": "Legi pli",
@@ -398,7 +401,7 @@
"status.show_less": "Malgrandigi",
"status.show_less_all": "Malgrandigi ĉiujn",
"status.show_more": "Grandigi",
- "status.show_more_all": "Grandigi ĉiujn",
+ "status.show_more_all": "Malfoldi ĉiun",
"status.show_thread": "Montri la fadenon",
"status.uncached_media_warning": "Nedisponebla",
"status.unmute_conversation": "Malsilentigi la konversacion",
diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json
index 8e1f84ab8..15ef9afa9 100644
--- a/app/javascript/mastodon/locales/es-AR.json
+++ b/app/javascript/mastodon/locales/es-AR.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "Mostrar configuración",
"column_header.unpin": "Dejar de fijar",
"column_subheading.settings": "Configuración",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Sólo medios",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Este toot sólo será enviado a los usuarios mencionados.",
"compose_form.direct_message_warning_learn_more": "Aprendé más",
"compose_form.hashtag_warning": "Este toot no se mostrará bajo hashtags porque no es público. Sólo los toots públicos se pueden buscar por hashtag.",
@@ -164,6 +166,7 @@
"errors.unexpected_crash.report_issue": "Informar problema",
"follow_request.authorize": "Autorizar",
"follow_request.reject": "Rechazar",
+ "follow_requests.unlocked_explanation": "A pesar de que tu cuenta no está bloqueada, el equipo de {domain} pensó que podrías querer revisar manualmente las solicitudes de seguimiento de estas cuentas.",
"getting_started.developers": "Desarrolladores",
"getting_started.directory": "Directorio de perfiles",
"getting_started.documentation": "Documentación",
@@ -375,7 +378,7 @@
"status.mute": "Silenciar a @{name}",
"status.mute_conversation": "Silenciar conversación",
"status.open": "Expandir este estado",
- "status.pin": "Pin en el perfil",
+ "status.pin": "Fijar en el perfil",
"status.pinned": "Toot fijado",
"status.read_more": "Leer más",
"status.reblog": "Retootear",
@@ -396,7 +399,7 @@
"status.show_thread": "Mostrar hilo",
"status.uncached_media_warning": "No disponible",
"status.unmute_conversation": "Dejar de silenciar conversación",
- "status.unpin": "Desmarcar del perfil",
+ "status.unpin": "Dejar de fijar",
"suggestions.dismiss": "Descartar sugerencia",
"suggestions.header": "Es posible que te interese…",
"tabs_bar.federated_timeline": "Federado",
diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json
index e334746da..0b6f0a9be 100644
--- a/app/javascript/mastodon/locales/es.json
+++ b/app/javascript/mastodon/locales/es.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "Mostrar ajustes",
"column_header.unpin": "Dejar de fijar",
"column_subheading.settings": "Ajustes",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Solo media",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Este toot solo será enviado a los usuarios mencionados.",
"compose_form.direct_message_warning_learn_more": "Aprender mas",
"compose_form.hashtag_warning": "Este toot no se mostrará bajo hashtags porque no es público. Sólo los toots públicos se pueden buscar por hashtag.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Autorizar",
"follow_request.reject": "Rechazar",
+ "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.",
"getting_started.developers": "Desarrolladores",
"getting_started.directory": "Directorio de perfil",
"getting_started.documentation": "Documentación",
diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json
index 7498962f2..be3ee148b 100644
--- a/app/javascript/mastodon/locales/et.json
+++ b/app/javascript/mastodon/locales/et.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "Näita sätteid",
"column_header.unpin": "Eemalda kinnitus",
"column_subheading.settings": "Sätted",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Ainult meedia",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "See tuut saadetakse ainult mainitud kasutajatele.",
"compose_form.direct_message_warning_learn_more": "Vaata veel",
"compose_form.hashtag_warning": "Seda tuuti ei kuvata ühegi sildi all, sest see on kirjendamata. Ainult avalikud tuutid on sildi järgi otsitavad.",
@@ -164,6 +166,7 @@
"errors.unexpected_crash.report_issue": "Teavita veast",
"follow_request.authorize": "Autoriseeri",
"follow_request.reject": "Hülga",
+ "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.",
"getting_started.developers": "Arendajad",
"getting_started.directory": "Profiili kataloog",
"getting_started.documentation": "Dokumentatsioon",
diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json
index 0cf81319e..0c5fcc007 100644
--- a/app/javascript/mastodon/locales/eu.json
+++ b/app/javascript/mastodon/locales/eu.json
@@ -27,8 +27,8 @@
"account.mute_notifications": "Mututu @{name}(r)en jakinarazpenak",
"account.muted": "Mutututa",
"account.never_active": "Inoiz ez",
- "account.posts": "Tootak",
- "account.posts_with_replies": "Toot-ak eta erantzunak",
+ "account.posts": "Toot",
+ "account.posts_with_replies": "Tootak eta erantzunak",
"account.report": "Salatu @{name}",
"account.requested": "Onarpenaren zain. Klikatu jarraitzeko eskaera ezeztatzeko",
"account.share": "@{name}(e)ren profila elkarbanatu",
@@ -64,7 +64,7 @@
"column.lists": "Zerrendak",
"column.mutes": "Mutututako erabiltzaileak",
"column.notifications": "Jakinarazpenak",
- "column.pins": "Finkatutako toot-ak",
+ "column.pins": "Finkatutako tootak",
"column.public": "Federatutako denbora-lerroa",
"column_back_button.label": "Atzera",
"column_header.hide_settings": "Ezkutatu ezarpenak",
@@ -74,7 +74,9 @@
"column_header.show_settings": "Erakutsi ezarpenak",
"column_header.unpin": "Desfinkatu",
"column_subheading.settings": "Ezarpenak",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Multimedia besterik ez",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Toot hau aipatutako erabiltzaileei besterik ez zaie bidaliko.",
"compose_form.direct_message_warning_learn_more": "Ikasi gehiago",
"compose_form.hashtag_warning": "Toot hau ez da traoletan agertuko zerrendatu gabekoa baita. Traoletan toot publikoak besterik ez dira agertzen.",
@@ -140,7 +142,7 @@
"emoji_button.search_results": "Bilaketaren emaitzak",
"emoji_button.symbols": "Sinboloak",
"emoji_button.travel": "Bidaiak eta tokiak",
- "empty_column.account_timeline": "Ez dago toot-ik hemen!",
+ "empty_column.account_timeline": "Ez dago tootik hemen!",
"empty_column.account_unavailable": "Profila ez dago eskuragarri",
"empty_column.blocks": "Ez duzu erabiltzailerik blokeatu oraindik.",
"empty_column.bookmarked_statuses": "Oraindik ez dituzu toot laster-markatutarik. Bat laster-markatzerakoan, hemen agertuko da.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Baimendu",
"follow_request.reject": "Ukatu",
+ "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.",
"getting_started.developers": "Garatzaileak",
"getting_started.directory": "Profil-direktorioa",
"getting_started.documentation": "Dokumentazioa",
@@ -233,7 +236,7 @@
"keyboard_shortcuts.my_profile": "zure profila irekitzeko",
"keyboard_shortcuts.notifications": "jakinarazpenen zutabea irekitzeko",
"keyboard_shortcuts.open_media": "media zabaltzeko",
- "keyboard_shortcuts.pinned": "finkatutako toot-en zerrenda irekitzeko",
+ "keyboard_shortcuts.pinned": "finkatutako tooten zerrenda irekitzeko",
"keyboard_shortcuts.profile": "egilearen profila irekitzeko",
"keyboard_shortcuts.reply": "erantzutea",
"keyboard_shortcuts.requests": "jarraitzeko eskarien zerrenda irekitzeko",
@@ -282,7 +285,7 @@
"navigation_bar.logout": "Amaitu saioa",
"navigation_bar.mutes": "Mutututako erabiltzaileak",
"navigation_bar.personal": "Pertsonala",
- "navigation_bar.pins": "Finkatutako toot-ak",
+ "navigation_bar.pins": "Finkatutako tootak",
"navigation_bar.preferences": "Hobespenak",
"navigation_bar.public_timeline": "Federatutako denbora-lerroa",
"navigation_bar.security": "Segurtasuna",
@@ -357,8 +360,8 @@
"search_popout.tips.user": "erabiltzailea",
"search_results.accounts": "Jendea",
"search_results.hashtags": "Traolak",
- "search_results.statuses": "Toot-ak",
- "search_results.statuses_fts_disabled": "Mastodon zerbitzari honek ez du Toot-en edukiaren bilaketa gaitu.",
+ "search_results.statuses": "Tootak",
+ "search_results.statuses_fts_disabled": "Mastodon zerbitzari honek ez du tooten edukiaren bilaketa gaitu.",
"search_results.total": "{count, number} {count, plural, one {emaitza} other {emaitza}}",
"status.admin_account": "Ireki @{name} erabiltzailearen moderazio interfazea",
"status.admin_status": "Ireki mezu hau moderazio interfazean",
@@ -382,7 +385,7 @@
"status.mute_conversation": "Mututu elkarrizketa",
"status.open": "Hedatu mezu hau",
"status.pin": "Finkatu profilean",
- "status.pinned": "Finkatutako toot-a",
+ "status.pinned": "Finkatutako toota",
"status.read_more": "Irakurri gehiago",
"status.reblog": "Bultzada",
"status.reblog_private": "Bultzada jatorrizko hartzaileei",
diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json
index ef652a685..8ae00820f 100644
--- a/app/javascript/mastodon/locales/fa.json
+++ b/app/javascript/mastodon/locales/fa.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "نمایش تنظیمات",
"column_header.unpin": "رهاکردن",
"column_subheading.settings": "تنظیمات",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "فقط رسانه",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "این بوق تنها به کاربرانی که از آنها نام برده شده فرستاده خواهد شد.",
"compose_form.direct_message_warning_learn_more": "بیشتر بدانید",
"compose_form.hashtag_warning": "از آنجا که این بوق فهرستنشده است، در نتایج جستوجوی هشتگها پیدا نخواهد شد. تنها بوقهای عمومی را میتوان با جستوجوی هشتگ یافت.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "اجازه دهید",
"follow_request.reject": "رد کنید",
+ "follow_requests.unlocked_explanation": "با یان که حسابتان قفل نیست، کارکنان {domain} فکر کردند که ممکن است بخواهید درخواستها از این حسابها را به صورت دستی بازبینی کنید.",
"getting_started.developers": "توسعهدهندگان",
"getting_started.directory": "فهرست گزیدهٔ کاربران",
"getting_started.documentation": "مستندات",
@@ -259,7 +262,7 @@
"lists.subheading": "فهرستهای شما",
"load_pending": "{count, plural, one {# مورد تازه} other {# مورد تازه}}",
"loading_indicator.label": "بارگیری...",
- "media_gallery.toggle_visible": "تغییر پیدایی",
+ "media_gallery.toggle_visible": "تغییر وضعیت نمایانی",
"missing_indicator.label": "پیدا نشد",
"missing_indicator.sublabel": "این منبع پیدا نشد",
"mute_modal.hide_notifications": "اعلانهای این کاربر پنهان شود؟",
@@ -324,13 +327,13 @@
"poll_button.add_poll": "افزودن نظرسنجی",
"poll_button.remove_poll": "حذف نظرسنجی",
"privacy.change": "تنظیم محرمانگی نوشته",
- "privacy.direct.long": "تنها به کاربران نامبردهشده نشان بده",
+ "privacy.direct.long": "ارسال فقط به کاربران اشارهشده",
"privacy.direct.short": "خصوصی",
- "privacy.private.long": "تنها به پیگیران نشان بده",
+ "privacy.private.long": "ارسال فقط به پیگیران",
"privacy.private.short": "خصوصی",
- "privacy.public.long": "نمایش در فهرست عمومی",
+ "privacy.public.long": "ارسال به خطزمانی عمومی",
"privacy.public.short": "عمومی",
- "privacy.unlisted.long": "عمومی، ولی فهرست نکن",
+ "privacy.unlisted.long": "ارسال نکردن به خطزمانی عمومی",
"privacy.unlisted.short": "فهرستنشده",
"refresh": "بهروزرسانی",
"regeneration_indicator.label": "در حال باز شدن…",
diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json
index dbdbc5f4d..8fbca4fd7 100644
--- a/app/javascript/mastodon/locales/fi.json
+++ b/app/javascript/mastodon/locales/fi.json
@@ -1,7 +1,7 @@
{
"account.add_or_remove_from_list": "Lisää tai poista listoilta",
"account.badges.bot": "Botti",
- "account.badges.group": "Group",
+ "account.badges.group": "Ryhmä",
"account.block": "Estä @{name}",
"account.block_domain": "Piilota kaikki sisältö verkkotunnuksesta {domain}",
"account.blocked": "Estetty",
@@ -34,7 +34,7 @@
"account.share": "Jaa käyttäjän @{name} profiili",
"account.show_reblogs": "Näytä buustaukset käyttäjältä @{name}",
"account.unblock": "Salli @{name}",
- "account.unblock_domain": "Näytä {domain}",
+ "account.unblock_domain": "Salli {domain}",
"account.unendorse": "Poista suosittelu profiilistasi",
"account.unfollow": "Lakkaa seuraamasta",
"account.unmute": "Poista käyttäjän @{name} mykistys",
@@ -43,7 +43,7 @@
"alert.rate_limited.title": "Määrää rajoitettu",
"alert.unexpected.message": "Tapahtui odottamaton virhe.",
"alert.unexpected.title": "Hups!",
- "announcement.announcement": "Announcement",
+ "announcement.announcement": "Ilmoitus",
"autosuggest_hashtag.per_week": "{count} viikossa",
"boost_modal.combo": "Ensi kerralla voit ohittaa tämän painamalla {combo}",
"bundle_column_error.body": "Jokin meni vikaan komponenttia ladattaessa.",
@@ -74,7 +74,9 @@
"column_header.show_settings": "Näytä asetukset",
"column_header.unpin": "Poista kiinnitys",
"column_subheading.settings": "Asetukset",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Vain media",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Tämä tuuttaus näkyy vain mainituille käyttäjille.",
"compose_form.direct_message_warning_learn_more": "Lisätietoja",
"compose_form.hashtag_warning": "Tämä tuuttaus ei näy hashtag-hauissa, koska se on listaamaton. Hashtagien avulla voi hakea vain julkisia tuuttauksia.",
@@ -85,8 +87,8 @@
"compose_form.poll.duration": "Äänestyksen kesto",
"compose_form.poll.option_placeholder": "Valinta numero",
"compose_form.poll.remove_option": "Poista tämä valinta",
- "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
- "compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
+ "compose_form.poll.switch_to_multiple": "Muuta kysely monivalinnaksi",
+ "compose_form.poll.switch_to_single": "Muuta kysely sallimaan vain yksi valinta",
"compose_form.publish": "Tuuttaa",
"compose_form.publish_loud": "Julkista!",
"compose_form.sensitive.hide": "Valitse tämä arkaluontoisena",
@@ -143,7 +145,7 @@
"empty_column.account_timeline": "Ei ole 'toots' täällä!",
"empty_column.account_unavailable": "Profiilia ei löydy",
"empty_column.blocks": "Et ole vielä estänyt yhtään käyttäjää.",
- "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
+ "empty_column.bookmarked_statuses": "Et ole vielä lisännyt tuuttauksia kirjanmerkkeihisi. Kun teet niin, tuuttaus näkyy tässä.",
"empty_column.community": "Paikallinen aikajana on tyhjä. Homma lähtee käyntiin, kun kirjoitat jotain julkista!",
"empty_column.direct": "Sinulla ei ole vielä yhtään viestiä yksittäiselle käyttäjälle. Kun lähetät tai vastaanotat sellaisen, se näkyy täällä.",
"empty_column.domain_blocks": "Yhtään verkko-osoitetta ei ole vielä piilotettu.",
@@ -160,7 +162,7 @@
"empty_column.public": "Täällä ei ole mitään! Saat sisältöä, kun kirjoitat jotain julkisesti tai käyt seuraamassa muiden instanssien käyttäjiä",
"error.unexpected_crash.explanation": "Sivua ei voi näyttää oikein, johtuen bugista tai ongelmasta selaimen yhteensopivuudessa.",
"error.unexpected_crash.next_steps": "Kokeile päivittää sivu. Jos tämä ei auta, saatat yhä pystyä käyttämään Mastodonia toisen selaimen tai sovelluksen kautta.",
- "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
+ "errors.unexpected_crash.copy_stacktrace": "Kopioi stacktrace leikepöydälle",
"errors.unexpected_crash.report_issue": "Ilmoita ongelmasta",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Valtuuta",
"follow_request.reject": "Hylkää",
+ "follow_requests.unlocked_explanation": "Vaikka tilisi ei ole lukittu, {domain} ylläpitäjien mielestä haluat tarkistaa näiden tilien seurauspyynnöt manuaalisesti.",
"getting_started.developers": "Kehittäjille",
"getting_started.directory": "Profiilihakemisto",
"getting_started.documentation": "Documentaatio",
@@ -189,8 +192,8 @@
"home.column_settings.basic": "Perusasetukset",
"home.column_settings.show_reblogs": "Näytä buustaukset",
"home.column_settings.show_replies": "Näytä vastaukset",
- "home.hide_announcements": "Hide announcements",
- "home.show_announcements": "Show announcements",
+ "home.hide_announcements": "Piilota ilmoitukset",
+ "home.show_announcements": "Näytä ilmoitukset",
"intervals.full.days": "Päivä päiviä",
"intervals.full.hours": "Tunti tunteja",
"intervals.full.minutes": "Minuuti minuuteja",
@@ -220,7 +223,7 @@
"keyboard_shortcuts.direct": "avaa pikaviestisarake",
"keyboard_shortcuts.down": "siirry listassa alaspäin",
"keyboard_shortcuts.enter": "avaa tilapäivitys",
- "keyboard_shortcuts.favourite": "tykkää",
+ "keyboard_shortcuts.favourite": "lisää suosikkeihin",
"keyboard_shortcuts.favourites": "avaa lista suosikeista",
"keyboard_shortcuts.federated": "avaa yleinen aikajana",
"keyboard_shortcuts.heading": "Näppäinkomennot",
@@ -232,7 +235,7 @@
"keyboard_shortcuts.muted": "avaa lista mykistetyistä käyttäjistä",
"keyboard_shortcuts.my_profile": "avaa profiilisi",
"keyboard_shortcuts.notifications": "avaa ilmoitukset-sarake",
- "keyboard_shortcuts.open_media": "to open media",
+ "keyboard_shortcuts.open_media": "median avaus",
"keyboard_shortcuts.pinned": "avaa lista kiinnitetyistä tuuttauksista",
"keyboard_shortcuts.profile": "avaa kirjoittajan profiili",
"keyboard_shortcuts.reply": "vastaa",
@@ -265,7 +268,7 @@
"mute_modal.hide_notifications": "Piilota tältä käyttäjältä tulevat ilmoitukset?",
"navigation_bar.apps": "Mobiilisovellukset",
"navigation_bar.blocks": "Estetyt käyttäjät",
- "navigation_bar.bookmarks": "Bookmarks",
+ "navigation_bar.bookmarks": "Kirjanmerkit",
"navigation_bar.community_timeline": "Paikallinen aikajana",
"navigation_bar.compose": "Kirjoita uusi tuuttaus",
"navigation_bar.direct": "Viestit",
@@ -288,9 +291,9 @@
"navigation_bar.security": "Tunnukset",
"notification.favourite": "{name} tykkäsi tilastasi",
"notification.follow": "{name} seurasi sinua",
- "notification.follow_request": "{name} has requested to follow you",
+ "notification.follow_request": "{name} haluaa seurata sinua",
"notification.mention": "{name} mainitsi sinut",
- "notification.own_poll": "Your poll has ended",
+ "notification.own_poll": "Kyselysi on päättynyt",
"notification.poll": "Kysely, johon osallistuit, on päättynyt",
"notification.reblog": "{name} buustasi tilaasi",
"notifications.clear": "Tyhjennä ilmoitukset",
@@ -301,7 +304,7 @@
"notifications.column_settings.filter_bar.category": "Pikasuodatuspalkki",
"notifications.column_settings.filter_bar.show": "Näytä",
"notifications.column_settings.follow": "Uudet seuraajat:",
- "notifications.column_settings.follow_request": "New follow requests:",
+ "notifications.column_settings.follow_request": "Uudet seuraamispyynnöt:",
"notifications.column_settings.mention": "Maininnat:",
"notifications.column_settings.poll": "Kyselyn tulokset:",
"notifications.column_settings.push": "Push-ilmoitukset",
@@ -340,7 +343,7 @@
"relative_time.just_now": "nyt",
"relative_time.minutes": "{number} m",
"relative_time.seconds": "{number} s",
- "relative_time.today": "today",
+ "relative_time.today": "tänään",
"reply_indicator.cancel": "Peruuta",
"report.forward": "Välitä kohteeseen {target}",
"report.forward_hint": "Tämä tili on toisella palvelimella. Haluatko lähettää nimettömän raportin myös sinne?",
@@ -363,7 +366,7 @@
"status.admin_account": "Avaa moderaattorinäkymä tilistä @{name}",
"status.admin_status": "Avaa tilapäivitys moderaattorinäkymässä",
"status.block": "Estä @{name}",
- "status.bookmark": "Bookmark",
+ "status.bookmark": "Tallenna kirjanmerkki",
"status.cancel_reblog_private": "Peru buustaus",
"status.cannot_reblog": "Tätä julkaisua ei voi buustata",
"status.copy": "Kopioi linkki tilapäivitykseen",
@@ -389,7 +392,7 @@
"status.reblogged_by": "{name} buustasi",
"status.reblogs.empty": "Kukaan ei ole vielä buustannut tätä tuuttausta. Kun joku tekee niin, näkyy kyseinen henkilö tässä.",
"status.redraft": "Poista & palauta muokattavaksi",
- "status.remove_bookmark": "Remove bookmark",
+ "status.remove_bookmark": "Poista kirjanmerkki",
"status.reply": "Vastaa",
"status.replyAll": "Vastaa ketjuun",
"status.report": "Raportoi @{name}",
@@ -422,11 +425,11 @@
"upload_button.label": "Lisää mediaa",
"upload_error.limit": "Tiedostolatauksien raja ylitetty.",
"upload_error.poll": "Tiedon lataaminen ei ole sallittua kyselyissä.",
- "upload_form.audio_description": "Describe for people with hearing loss",
+ "upload_form.audio_description": "Kuvaile kuulovammaisille",
"upload_form.description": "Anna kuvaus näkörajoitteisia varten",
"upload_form.edit": "Muokkaa",
"upload_form.undo": "Peru",
- "upload_form.video_description": "Describe for people with hearing loss or visual impairment",
+ "upload_form.video_description": "Kuvaile kuulo- tai näkövammaisille",
"upload_modal.analyzing_picture": "Analysoidaan kuvaa…",
"upload_modal.apply": "Käytä",
"upload_modal.description_placeholder": "Eräänä jäätävänä ja pimeänä yönä gorilla ratkaisi sudokun kahdessa minuutissa",
diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json
index 21d29fd1f..c80cda569 100644
--- a/app/javascript/mastodon/locales/fr.json
+++ b/app/javascript/mastodon/locales/fr.json
@@ -3,29 +3,29 @@
"account.badges.bot": "Robot",
"account.badges.group": "Groupe",
"account.block": "Bloquer @{name}",
- "account.block_domain": "Tout masquer venant de {domain}",
+ "account.block_domain": "Bloquer le domaine {domain}",
"account.blocked": "Bloqué·e",
"account.cancel_follow_request": "Annuler la demande de suivi",
"account.direct": "Envoyer un message direct à @{name}",
- "account.domain_blocked": "Domaine caché",
+ "account.domain_blocked": "Domaine bloqué",
"account.edit_profile": "Modifier le profil",
"account.endorse": "Recommander sur le profil",
"account.follow": "Suivre",
- "account.followers": "Abonné⋅e⋅s",
- "account.followers.empty": "Personne ne suit cet utilisateur·rice pour l’instant.",
+ "account.followers": "Abonné·e·s",
+ "account.followers.empty": "Personne ne suit cet·te utilisateur·rice pour l’instant.",
"account.follows": "Abonnements",
"account.follows.empty": "Cet·te utilisateur·rice ne suit personne pour l’instant.",
"account.follows_you": "Vous suit",
"account.hide_reblogs": "Masquer les partages de @{name}",
"account.last_status": "Dernière activité",
"account.link_verified_on": "La propriété de ce lien a été vérifiée le {date}",
- "account.locked_info": "Ce compte est verrouillé. Son propriétaire approuve manuellement qui peut le ou la suivre.",
- "account.media": "Média",
+ "account.locked_info": "Ce compte est verrouillé. Son ou sa propriétaire approuve manuellement qui peut le suivre.",
+ "account.media": "Médias",
"account.mention": "Mentionner @{name}",
"account.moved_to": "{name} a déménagé vers :",
"account.mute": "Masquer @{name}",
"account.mute_notifications": "Ignorer les notifications de @{name}",
- "account.muted": "Silencé·e",
+ "account.muted": "Masqué·e",
"account.never_active": "Jamais",
"account.posts": "Pouets",
"account.posts_with_replies": "Pouets et réponses",
@@ -34,18 +34,18 @@
"account.share": "Partager le profil de @{name}",
"account.show_reblogs": "Afficher les partages de @{name}",
"account.unblock": "Débloquer @{name}",
- "account.unblock_domain": "Ne plus masquer {domain}",
+ "account.unblock_domain": "Débloquer le domaine {domain}",
"account.unendorse": "Ne plus recommander sur le profil",
"account.unfollow": "Ne plus suivre",
"account.unmute": "Ne plus masquer @{name}",
- "account.unmute_notifications": "Réactiver les notifications de @{name}",
+ "account.unmute_notifications": "Ne plus masquer les notifications de @{name}",
"alert.rate_limited.message": "Veuillez réessayer après {retry_time, time, medium}.",
- "alert.rate_limited.title": "Débit limité",
+ "alert.rate_limited.title": "Taux limité",
"alert.unexpected.message": "Une erreur inattendue s’est produite.",
"alert.unexpected.title": "Oups !",
"announcement.announcement": "Annonce",
"autosuggest_hashtag.per_week": "{count} par semaine",
- "boost_modal.combo": "Vous pouvez appuyer sur {combo} pour passer ceci, la prochaine fois",
+ "boost_modal.combo": "Vous pouvez appuyer sur {combo} pour passer ceci la prochaine fois",
"bundle_column_error.body": "Une erreur s’est produite lors du chargement de ce composant.",
"bundle_column_error.retry": "Réessayer",
"bundle_column_error.title": "Erreur réseau",
@@ -55,9 +55,9 @@
"column.blocks": "Comptes bloqués",
"column.bookmarks": "Marque-pages",
"column.community": "Fil public local",
- "column.direct": "Messages privés",
+ "column.direct": "Messages directs",
"column.directory": "Parcourir les profils",
- "column.domain_blocks": "Domaines cachés",
+ "column.domain_blocks": "Domaines bloqués",
"column.favourites": "Favoris",
"column.follow_requests": "Demandes d'abonnement",
"column.home": "Accueil",
@@ -67,14 +67,16 @@
"column.pins": "Pouets épinglés",
"column.public": "Fil public global",
"column_back_button.label": "Retour",
- "column_header.hide_settings": "Masquer les paramètres",
+ "column_header.hide_settings": "Cacher les paramètres",
"column_header.moveLeft_settings": "Déplacer la colonne vers la gauche",
"column_header.moveRight_settings": "Déplacer la colonne vers la droite",
"column_header.pin": "Épingler",
"column_header.show_settings": "Afficher les paramètres",
"column_header.unpin": "Désépingler",
"column_subheading.settings": "Paramètres",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Média uniquement",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Ce pouet sera uniquement envoyé aux personnes mentionnées. Cependant, l’administration de votre instance et des instances réceptrices pourront inspecter ce message.",
"compose_form.direct_message_warning_learn_more": "En savoir plus",
"compose_form.hashtag_warning": "Ce pouet ne sera pas listé dans les recherches par hashtag car sa visibilité est réglée sur « non listé ». Seuls les pouets avec une visibilité « publique » peuvent être recherchés par hashtag.",
@@ -94,39 +96,39 @@
"compose_form.sensitive.unmarked": "Le média n’est pas marqué comme sensible",
"compose_form.spoiler.marked": "Le texte est caché derrière un avertissement",
"compose_form.spoiler.unmarked": "Le texte n’est pas caché",
- "compose_form.spoiler_placeholder": "Écrivez ici votre avertissement",
+ "compose_form.spoiler_placeholder": "Écrivez votre avertissement ici",
"confirmation_modal.cancel": "Annuler",
"confirmations.block.block_and_report": "Bloquer et signaler",
"confirmations.block.confirm": "Bloquer",
- "confirmations.block.message": "Confirmez-vous le blocage de {name} ?",
+ "confirmations.block.message": "Voulez-vous vraiment bloquer {name} ?",
"confirmations.delete.confirm": "Supprimer",
- "confirmations.delete.message": "Confirmez-vous la suppression de ce pouet ?",
+ "confirmations.delete.message": "Voulez-vous vraiment supprimer ce pouet ?",
"confirmations.delete_list.confirm": "Supprimer",
- "confirmations.delete_list.message": "Êtes-vous sûr·e de vouloir supprimer définitivement cette liste ?",
- "confirmations.domain_block.confirm": "Masquer le domaine entier",
- "confirmations.domain_block.message": "Êtes-vous vraiment, vraiment sûr⋅e de vouloir bloquer {domain} en entier ? Dans la plupart des cas, quelques blocages ou masquages ciblés sont suffisants et préférables. Vous ne verrez plus de contenu provenant de ce domaine, ni dans fils publics, ni dans vos notifications. Vos abonné·e·s utilisant ce domaine seront retiré·e·s.",
- "confirmations.logout.confirm": "Déconnexion",
- "confirmations.logout.message": "Êtes-vous sûr·e de vouloir vous déconnecter ?",
+ "confirmations.delete_list.message": "Voulez-vous vraiment supprimer définitivement cette liste ?",
+ "confirmations.domain_block.confirm": "Bloquer tout le domaine",
+ "confirmations.domain_block.message": "Voulez-vous vraiment, vraiment bloquer {domain} en entier ? Dans la plupart des cas, quelques blocages ou masquages ciblés sont suffisants et préférables. Vous ne verrez plus de contenu provenant de ce domaine, ni dans fils publics, ni dans vos notifications. Vos abonné·e·s utilisant ce domaine seront retiré·e·s.",
+ "confirmations.logout.confirm": "Se déconnecter",
+ "confirmations.logout.message": "Voulez-vous vraiment vous déconnecter ?",
"confirmations.mute.confirm": "Masquer",
"confirmations.mute.explanation": "Cela masquera ses messages et les messages le ou la mentionnant, mais cela lui permettra quand même de voir vos messages et de vous suivre.",
- "confirmations.mute.message": "Êtes-vous sûr·e de vouloir masquer {name} ?",
- "confirmations.redraft.confirm": "Effacer et ré-écrire",
- "confirmations.redraft.message": "Êtes-vous sûr·e de vouloir effacer ce statut pour le ré-écrire ? Ses partages ainsi que ses mises en favori seront perdu·e·s et ses réponses seront orphelines.",
+ "confirmations.mute.message": "Voulez-vous vraiment masquer {name} ?",
+ "confirmations.redraft.confirm": "Supprimer et ré-écrire",
+ "confirmations.redraft.message": "Voulez-vous vraiment supprimer ce pouet pour le ré-écrire ? Ses partages ainsi que ses mises en favori seront perdu·e·s et ses réponses seront orphelines.",
"confirmations.reply.confirm": "Répondre",
- "confirmations.reply.message": "Répondre maintenant écrasera le message que vous composez actuellement. Êtes-vous sûr·e de vouloir continuer ?",
+ "confirmations.reply.message": "Répondre maintenant écrasera le message que vous rédigez actuellement. Voulez-vous vraiment continuer ?",
"confirmations.unfollow.confirm": "Ne plus suivre",
- "confirmations.unfollow.message": "Êtes-vous sûr·e de vouloir arrêter de suivre {name} ?",
+ "confirmations.unfollow.message": "Voulez-vous vraiment arrêter de suivre {name} ?",
"conversation.delete": "Supprimer la conversation",
"conversation.mark_as_read": "Marquer comme lu",
"conversation.open": "Afficher la conversation",
"conversation.with": "Avec {names}",
"directory.federated": "Du fédiverse connu",
"directory.local": "De {domain} seulement",
- "directory.new_arrivals": "Nouveaux·elles arrivant·e·s",
- "directory.recently_active": "Récemment actif·ve·s",
+ "directory.new_arrivals": "Inscrit·e·s récemment",
+ "directory.recently_active": "Actif·ve·s récemment",
"embed.instructions": "Intégrez ce statut à votre site en copiant le code ci-dessous.",
"embed.preview": "Il apparaîtra comme cela :",
- "emoji_button.activity": "Activités",
+ "emoji_button.activity": "Activité",
"emoji_button.custom": "Personnalisés",
"emoji_button.flags": "Drapeaux",
"emoji_button.food": "Nourriture & Boisson",
@@ -136,7 +138,7 @@
"emoji_button.objects": "Objets",
"emoji_button.people": "Personnes",
"emoji_button.recent": "Fréquemment utilisés",
- "emoji_button.search": "Recherche…",
+ "emoji_button.search": "Recherche...",
"emoji_button.search_results": "Résultats de la recherche",
"emoji_button.symbols": "Symboles",
"emoji_button.travel": "Lieux & Voyages",
@@ -155,7 +157,7 @@
"empty_column.home.public_timeline": "le fil public",
"empty_column.list": "Il n’y a rien dans cette liste pour l’instant. Dès que des personnes de cette liste publieront de nouveaux statuts, ils apparaîtront ici.",
"empty_column.lists": "Vous n’avez pas encore de liste. Lorsque vous en créerez une, elle apparaîtra ici.",
- "empty_column.mutes": "Vous n’avez pas encore silencié d’utilisateur·rice·s.",
+ "empty_column.mutes": "Vous n’avez masqué aucun·e utilisateur·rice pour le moment.",
"empty_column.notifications": "Vous n’avez pas encore de notification. Interagissez avec d’autres personnes pour débuter la conversation.",
"empty_column.public": "Il n’y a rien ici ! Écrivez quelque chose publiquement, ou bien suivez manuellement des personnes d’autres serveurs pour remplir le fil public",
"error.unexpected_crash.explanation": "En raison d’un bug dans notre code ou d’un problème de compatibilité avec votre navigateur, cette page n’a pas pu être affichée correctement.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Accepter",
"follow_request.reject": "Rejeter",
+ "follow_requests.unlocked_explanation": "Même si votre compte n’est pas verrouillé, l’équipe de {domain} a pensé que vous pourriez vouloir consulter manuellement les demandes de suivi de ces comptes.",
"getting_started.developers": "Développeur·euse·s",
"getting_started.directory": "Annuaire des profils",
"getting_started.documentation": "Documentation",
@@ -181,12 +184,12 @@
"hashtag.column_header.tag_mode.any": "ou {additional}",
"hashtag.column_header.tag_mode.none": "sans {additional}",
"hashtag.column_settings.select.no_options_message": "Aucune suggestion trouvée",
- "hashtag.column_settings.select.placeholder": "Ajouter des hashtags…",
+ "hashtag.column_settings.select.placeholder": "Entrer des hashtags…",
"hashtag.column_settings.tag_mode.all": "Tous ces éléments",
"hashtag.column_settings.tag_mode.any": "Au moins un de ces éléments",
"hashtag.column_settings.tag_mode.none": "Aucun de ces éléments",
- "hashtag.column_settings.tag_toggle": "Inclure des mots-clés additionnels dans cette colonne",
- "home.column_settings.basic": "Base",
+ "hashtag.column_settings.tag_toggle": "Inclure des hashtags additionnels pour cette colonne",
+ "home.column_settings.basic": "Basique",
"home.column_settings.show_reblogs": "Afficher les partages",
"home.column_settings.show_replies": "Afficher les réponses",
"home.hide_announcements": "Masquer les annonces",
@@ -204,46 +207,46 @@
"introduction.interactions.action": "Finir le tutoriel !",
"introduction.interactions.favourite.headline": "Favoris",
"introduction.interactions.favourite.text": "Vous pouvez garder un pouet pour plus tard et faire savoir à son auteur·ice que vous l’avez aimé, en l'ajoutant aux favoris.",
- "introduction.interactions.reblog.headline": "Repartager",
+ "introduction.interactions.reblog.headline": "Partager",
"introduction.interactions.reblog.text": "Vous pouvez partager les pouets d'autres personnes avec vos abonné·e·s en les repartageant.",
"introduction.interactions.reply.headline": "Répondre",
"introduction.interactions.reply.text": "Vous pouvez répondre aux pouets d'autres personnes et à vos propres pouets, ce qui les enchaînera dans une conversation.",
"introduction.welcome.action": "Allons-y !",
"introduction.welcome.headline": "Premiers pas",
"introduction.welcome.text": "Bienvenue dans le fédiverse ! Dans quelques instants, vous pourrez diffuser des messages et parler à vos ami·e·s sur une grande variété de serveurs. Mais ce serveur, {domain}, est spécial - il héberge votre profil, alors souvenez-vous de son nom.",
- "keyboard_shortcuts.back": "pour revenir en arrière",
- "keyboard_shortcuts.blocked": "pour ouvrir la liste des comptes bloqués",
- "keyboard_shortcuts.boost": "pour partager",
- "keyboard_shortcuts.column": "pour focaliser un statut dans l’une des colonnes",
- "keyboard_shortcuts.compose": "pour focaliser la zone de rédaction",
+ "keyboard_shortcuts.back": "revenir en arrière",
+ "keyboard_shortcuts.blocked": "ouvrir la liste des comptes bloqués",
+ "keyboard_shortcuts.boost": "partager",
+ "keyboard_shortcuts.column": "cibler un pouet d’une des colonnes",
+ "keyboard_shortcuts.compose": "cibler la zone de rédaction",
"keyboard_shortcuts.description": "Description",
- "keyboard_shortcuts.direct": "pour ouvrir la colonne des messages directs",
- "keyboard_shortcuts.down": "pour descendre dans la liste",
- "keyboard_shortcuts.enter": "pour ouvrir le statut",
- "keyboard_shortcuts.favourite": "pour ajouter aux favoris",
- "keyboard_shortcuts.favourites": "pour ouvrir la liste des pouets favoris",
- "keyboard_shortcuts.federated": "pour ouvrir le fil public global",
+ "keyboard_shortcuts.direct": "ouvrir la colonne des messages directs",
+ "keyboard_shortcuts.down": "descendre dans la liste",
+ "keyboard_shortcuts.enter": "ouvrir le pouet",
+ "keyboard_shortcuts.favourite": "ajouter aux favoris",
+ "keyboard_shortcuts.favourites": "ouvrir la liste des favoris",
+ "keyboard_shortcuts.federated": "ouvrir le fil public global",
"keyboard_shortcuts.heading": "Raccourcis clavier",
- "keyboard_shortcuts.home": "pour ouvrir l’accueil",
- "keyboard_shortcuts.hotkey": "Raccourci",
- "keyboard_shortcuts.legend": "pour afficher cette légende",
- "keyboard_shortcuts.local": "pour ouvrir le fil public local",
- "keyboard_shortcuts.mention": "pour mentionner l’auteur·rice",
- "keyboard_shortcuts.muted": "pour ouvrir la liste des utilisateur·rice·s muté·e·s",
- "keyboard_shortcuts.my_profile": "pour ouvrir votre profil",
- "keyboard_shortcuts.notifications": "pour ouvrir votre colonne de notifications",
- "keyboard_shortcuts.open_media": "pour ouvrir le média",
- "keyboard_shortcuts.pinned": "pour ouvrir une liste des pouets épinglés",
- "keyboard_shortcuts.profile": "pour ouvrir le profil de l’auteur·rice",
- "keyboard_shortcuts.reply": "pour répondre",
- "keyboard_shortcuts.requests": "pour ouvrir la liste de demandes de suivi",
- "keyboard_shortcuts.search": "pour cibler la recherche",
- "keyboard_shortcuts.start": "pour ouvrir la colonne « pour commencer »",
- "keyboard_shortcuts.toggle_hidden": "pour afficher/cacher un texte derrière CW",
- "keyboard_shortcuts.toggle_sensitivity": "pour afficher/cacher les médias",
- "keyboard_shortcuts.toot": "pour démarrer un tout nouveau pouet",
- "keyboard_shortcuts.unfocus": "pour quitter la zone de composition/recherche",
- "keyboard_shortcuts.up": "pour remonter dans la liste",
+ "keyboard_shortcuts.home": "ouvrir le fil d’accueil",
+ "keyboard_shortcuts.hotkey": "Raccourci clavier",
+ "keyboard_shortcuts.legend": "afficher cet aide-mémoire",
+ "keyboard_shortcuts.local": "ouvrir le fil public local",
+ "keyboard_shortcuts.mention": "mentionner l’auteur·rice",
+ "keyboard_shortcuts.muted": "ouvrir la liste des comptes masqués",
+ "keyboard_shortcuts.my_profile": "ouvrir votre profil",
+ "keyboard_shortcuts.notifications": "ouvrir la colonne de notifications",
+ "keyboard_shortcuts.open_media": "ouvrir le média",
+ "keyboard_shortcuts.pinned": "ouvrir la liste des pouets épinglés",
+ "keyboard_shortcuts.profile": "ouvrir le profil de l’auteur·rice",
+ "keyboard_shortcuts.reply": "répondre",
+ "keyboard_shortcuts.requests": "ouvrir la liste de demandes d’abonnement",
+ "keyboard_shortcuts.search": "cibler la zone de recherche",
+ "keyboard_shortcuts.start": "ouvrir la colonne « Pour commencer »",
+ "keyboard_shortcuts.toggle_hidden": "déplier/replier le texte derrière un CW",
+ "keyboard_shortcuts.toggle_sensitivity": "afficher/cacher les médias",
+ "keyboard_shortcuts.toot": "démarrer un tout nouveau pouet",
+ "keyboard_shortcuts.unfocus": "quitter la zone de rédaction/recherche",
+ "keyboard_shortcuts.up": "remonter dans la liste",
"lightbox.close": "Fermer",
"lightbox.next": "Suivant",
"lightbox.previous": "Précédent",
@@ -259,7 +262,7 @@
"lists.subheading": "Vos listes",
"load_pending": "{count, plural, one {# nouvel élément} other {# nouveaux éléments}}",
"loading_indicator.label": "Chargement…",
- "media_gallery.toggle_visible": "Modifier la visibilité",
+ "media_gallery.toggle_visible": "Intervertir la visibilité",
"missing_indicator.label": "Non trouvé",
"missing_indicator.sublabel": "Ressource introuvable",
"mute_modal.hide_notifications": "Masquer les notifications de cette personne ?",
@@ -270,10 +273,10 @@
"navigation_bar.compose": "Rédiger un nouveau pouet",
"navigation_bar.direct": "Messages directs",
"navigation_bar.discover": "Découvrir",
- "navigation_bar.domain_blocks": "Domaines cachés",
+ "navigation_bar.domain_blocks": "Domaines bloqués",
"navigation_bar.edit_profile": "Modifier le profil",
"navigation_bar.favourites": "Favoris",
- "navigation_bar.filters": "Mots silenciés",
+ "navigation_bar.filters": "Mots masqués",
"navigation_bar.follow_requests": "Demandes de suivi",
"navigation_bar.follows_and_followers": "Abonnements et abonné⋅e·s",
"navigation_bar.info": "À propos de ce serveur",
@@ -292,15 +295,15 @@
"notification.mention": "{name} vous a mentionné·e :",
"notification.own_poll": "Votre sondage est terminé",
"notification.poll": "Un sondage auquel vous avez participé vient de se terminer",
- "notification.reblog": "{name} a partagé votre statut :",
- "notifications.clear": "Nettoyer les notifications",
- "notifications.clear_confirmation": "Voulez-vous vraiment supprimer toutes vos notifications ?",
- "notifications.column_settings.alert": "Notifications locales",
+ "notification.reblog": "{name} a partagé votre statut",
+ "notifications.clear": "Effacer les notifications",
+ "notifications.clear_confirmation": "Voulez-vous vraiment effacer toutes vos notifications ?",
+ "notifications.column_settings.alert": "Notifications du navigateur",
"notifications.column_settings.favourite": "Favoris :",
"notifications.column_settings.filter_bar.advanced": "Afficher toutes les catégories",
"notifications.column_settings.filter_bar.category": "Barre de filtrage rapide",
"notifications.column_settings.filter_bar.show": "Afficher",
- "notifications.column_settings.follow": "Nouveaux⋅elles abonné⋅e·s :",
+ "notifications.column_settings.follow": "Nouveaux·elles abonné·e·s :",
"notifications.column_settings.follow_request": "Nouvelles demandes d’abonnement :",
"notifications.column_settings.mention": "Mentions :",
"notifications.column_settings.poll": "Résultats des sondage :",
@@ -311,7 +314,7 @@
"notifications.filter.all": "Tout",
"notifications.filter.boosts": "Partages",
"notifications.filter.favourites": "Favoris",
- "notifications.filter.follows": "Abonné·e·s",
+ "notifications.filter.follows": "Abonnés",
"notifications.filter.mentions": "Mentions",
"notifications.filter.polls": "Résultats des sondages",
"notifications.group": "{count} notifications",
@@ -326,8 +329,8 @@
"privacy.change": "Ajuster la confidentialité du message",
"privacy.direct.long": "N’envoyer qu’aux personnes mentionnées",
"privacy.direct.short": "Direct",
- "privacy.private.long": "Seul⋅e⋅s vos abonné⋅e⋅s verront vos statuts",
- "privacy.private.short": "Abonné⋅e⋅s uniquement",
+ "privacy.private.long": "Seul·e·s vos abonné·e·s verront vos statuts",
+ "privacy.private.short": "Abonné·e·s uniquement",
"privacy.public.long": "Afficher dans les fils publics",
"privacy.public.short": "Public",
"privacy.unlisted.long": "Ne pas afficher dans les fils publics",
@@ -352,22 +355,22 @@
"search_popout.search_format": "Recherche avancée",
"search_popout.tips.full_text": "Un texte normal retourne les pouets que vous avez écris, mis en favori, partagés, ou vous mentionnant, ainsi que les identifiants, les noms affichés, et les hashtags des personnes et messages correspondant.",
"search_popout.tips.hashtag": "hashtag",
- "search_popout.tips.status": "statuts",
+ "search_popout.tips.status": "pouet",
"search_popout.tips.text": "Un texte simple renvoie les noms affichés, les identifiants et les hashtags correspondants",
- "search_popout.tips.user": "utilisateur⋅ice",
+ "search_popout.tips.user": "utilisateur·ice",
"search_results.accounts": "Comptes",
"search_results.hashtags": "Hashtags",
"search_results.statuses": "Pouets",
"search_results.statuses_fts_disabled": "La recherche de pouets par leur contenu n'est pas activée sur ce serveur Mastodon.",
"search_results.total": "{count, number} {count, plural, one {résultat} other {résultats}}",
"status.admin_account": "Ouvrir l’interface de modération pour @{name}",
- "status.admin_status": "Ouvrir ce statut dans l’interface de modération",
+ "status.admin_status": "Ouvrir ce pouet dans l’interface de modération",
"status.block": "Bloquer @{name}",
"status.bookmark": "Ajouter aux marque-pages",
"status.cancel_reblog_private": "Annuler le partage",
"status.cannot_reblog": "Ce pouet ne peut pas être partagé",
"status.copy": "Copier le lien vers le pouet",
- "status.delete": "Effacer",
+ "status.delete": "Supprimer",
"status.detailed_status": "Vue détaillée de la conversation",
"status.direct": "Envoyer un message direct à @{name}",
"status.embed": "Intégrer",
@@ -380,15 +383,15 @@
"status.more": "Plus",
"status.mute": "Masquer @{name}",
"status.mute_conversation": "Masquer la conversation",
- "status.open": "Déplier ce statut",
+ "status.open": "Voir les détails du pouet",
"status.pin": "Épingler sur le profil",
"status.pinned": "Pouet épinglé",
"status.read_more": "En savoir plus",
"status.reblog": "Partager",
"status.reblog_private": "Partager à l’audience originale",
- "status.reblogged_by": "{name} a partagé :",
+ "status.reblogged_by": "{name} a partagé",
"status.reblogs.empty": "Personne n’a encore partagé ce pouet. Lorsque quelqu’un le fera, il apparaîtra ici.",
- "status.redraft": "Effacer et ré-écrire",
+ "status.redraft": "Supprimer et ré-écrire",
"status.remove_bookmark": "Retirer des marque-pages",
"status.reply": "Répondre",
"status.replyAll": "Répondre au fil",
@@ -399,7 +402,7 @@
"status.show_less_all": "Tout replier",
"status.show_more": "Déplier",
"status.show_more_all": "Tout déplier",
- "status.show_thread": "Lire le fil",
+ "status.show_thread": "Montrer le fil",
"status.uncached_media_warning": "Indisponible",
"status.unmute_conversation": "Ne plus masquer la conversation",
"status.unpin": "Retirer du profil",
@@ -415,7 +418,7 @@
"time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} restantes",
"time_remaining.moments": "Encore quelques instants",
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} restantes",
- "trends.count_by_accounts": "{count} {rawCount, plural, one {personne} other {personnes}} discutent",
+ "trends.count_by_accounts": "{count} {rawCount, plural, one {personne discute} other {personnes discutent}}",
"trends.trending_now": "Tendance en ce moment",
"ui.beforeunload": "Votre brouillon sera perdu si vous quittez Mastodon.",
"upload_area.title": "Glissez et déposez pour envoyer",
diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json
index 0e9c9d6d1..15ce45d9c 100644
--- a/app/javascript/mastodon/locales/ga.json
+++ b/app/javascript/mastodon/locales/ga.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "Show settings",
"column_header.unpin": "Unpin",
"column_subheading.settings": "Settings",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Media only",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
"compose_form.direct_message_warning_learn_more": "Learn more",
"compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
@@ -164,6 +166,7 @@
"errors.unexpected_crash.report_issue": "Report issue",
"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.",
"getting_started.developers": "Developers",
"getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
@@ -254,7 +257,7 @@
"lists.subheading": "Your lists",
"load_pending": "{count, plural, one {# new item} other {# new items}}",
"loading_indicator.label": "Loading...",
- "media_gallery.toggle_visible": "Toggle visibility",
+ "media_gallery.toggle_visible": "Hide media",
"missing_indicator.label": "Not found",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.hide_notifications": "Hide notifications from this user?",
diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json
index f32ddc143..1f97c7a37 100644
--- a/app/javascript/mastodon/locales/gl.json
+++ b/app/javascript/mastodon/locales/gl.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "Amosar axustes",
"column_header.unpin": "Desapegar",
"column_subheading.settings": "Axustes",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Só multimedia",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Este toot só será enviado ás usuarias mencionadas.",
"compose_form.direct_message_warning_learn_more": "Coñecer máis",
"compose_form.hashtag_warning": "Este toot non aparecerá baixo ningún cancelo (hashtag) porque non está listado. Só se poden procurar toots públicos por cancelos.",
@@ -128,7 +130,7 @@
"embed.preview": "Así será mostrado:",
"emoji_button.activity": "Actividade",
"emoji_button.custom": "Personalizado",
- "emoji_button.flags": "Bandeiras",
+ "emoji_button.flags": "Marcas",
"emoji_button.food": "Comida e Bebida",
"emoji_button.label": "Inserir emoticona",
"emoji_button.nature": "Natureza",
@@ -156,12 +158,12 @@
"empty_column.list": "Aínda non hai nada en esta lista. Cando as usuarias incluídas na lista publiquen mensaxes, aparecerán aquí.",
"empty_column.lists": "Aínda non tes listaxes. Cando crees unha, amosarase aquí.",
"empty_column.mutes": "Aínda non silenciaches a ningúnha usuaria.",
- "empty_column.notifications": "Aínda non tes notificacións. Interactúa con outros para comezar unha conversa.",
+ "empty_column.notifications": "Aínda non tes notificacións. Interactúa con outras para comezar unha conversa.",
"empty_column.public": "Nada por aquí! Escribe algo de xeito público, ou segue de xeito manual usuarias doutros servidores para ir enchéndoo",
"error.unexpected_crash.explanation": "Debido a un erro no noso código ou a unha compatilidade co teu navegador, esta páxina non pode ser amosada correctamente.",
- "error.unexpected_crash.next_steps": "Tenta actualizar a páxina. Se esto non axuda podes tamén empregar o Mastodon noutro navegador ou aplicación nativa.",
+ "error.unexpected_crash.next_steps": "Tenta actualizar a páxina. Se esto non axuda podes tamén empregar Mastodon noutro navegador ou aplicación nativa.",
"errors.unexpected_crash.copy_stacktrace": "Copiar trazas (stacktrace) ó portapapeis",
- "errors.unexpected_crash.report_issue": "Denunciar un problema",
+ "errors.unexpected_crash.report_issue": "Informar sobre un problema",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
"federation.federated.short": "Federated",
@@ -169,12 +171,13 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Autorizar",
"follow_request.reject": "Rexeitar",
- "getting_started.developers": "Desenvolvedores",
+ "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.",
+ "getting_started.developers": "Desenvolvedoras",
"getting_started.directory": "Directorio local",
"getting_started.documentation": "Documentación",
"getting_started.heading": "Primeiros pasos",
"getting_started.invite": "Convidar persoas",
- "getting_started.open_source_notice": "O Mastodon é software de código aberto. Podes contribuír ou informar de fallos no GitHub en {github}.",
+ "getting_started.open_source_notice": "Mastodon é software de código aberto. Podes contribuír ou informar de fallos en GitHub en {github}.",
"getting_started.security": "Seguranza",
"getting_started.terms": "Termos do servizo",
"hashtag.column_header.tag_mode.all": "e {additional}",
@@ -185,7 +188,7 @@
"hashtag.column_settings.tag_mode.all": "Todos estes",
"hashtag.column_settings.tag_mode.any": "Calquera destes",
"hashtag.column_settings.tag_mode.none": "Ningún destes",
- "hashtag.column_settings.tag_toggle": "Incluír etiquetas adicionais para esta columna",
+ "hashtag.column_settings.tag_toggle": "Incluír cancelos adicionais para esta columna",
"home.column_settings.basic": "Básico",
"home.column_settings.show_reblogs": "Amosar compartidos",
"home.column_settings.show_replies": "Amosar respostas",
@@ -197,7 +200,7 @@
"introduction.federation.action": "Seguinte",
"introduction.federation.federated.headline": "Federado",
"introduction.federation.federated.text": "Publicacións públicas doutros servidores do fediverso aparecerán na cronoloxía federada.",
- "introduction.federation.home.headline": "Páxina inicial",
+ "introduction.federation.home.headline": "Inicio",
"introduction.federation.home.text": "Publicacións de persoas que ti segues aparecerán na cronoloxía do inicio. Podes seguir calquera persoa en calquera servidor!",
"introduction.federation.local.headline": "Local",
"introduction.federation.local.text": "Publicacións públicas de persoas no teu mesmo servidor aparecerán na cronoloxía local.",
@@ -210,7 +213,7 @@
"introduction.interactions.reply.text": "Podes responder ós toots doutras persoas e ós teus propios, así ficarán encadeados nunha conversa.",
"introduction.welcome.action": "Imos!",
"introduction.welcome.headline": "Primeiros pasos",
- "introduction.welcome.text": "Benvido ó fediverso! Nun intre poderás difundir mensaxes e falar coas túas amizades nun grande número de servidores. Mais este servidor, {domain}, é especial—hospeda o teu perfil, por iso lémbrate do seu nome.",
+ "introduction.welcome.text": "Benvida ó fediverso! Nun intre poderás difundir mensaxes e falar coas túas amizades nun grande número de servidores. Mais este servidor, {domain}, é especial—hospeda o teu perfil, por iso lémbra o seu nome.",
"keyboard_shortcuts.back": "para voltar atrás",
"keyboard_shortcuts.blocked": "abrir lista de usuarias bloqueadas",
"keyboard_shortcuts.boost": "promover",
@@ -275,7 +278,7 @@
"navigation_bar.favourites": "Favoritos",
"navigation_bar.filters": "Palabras silenciadas",
"navigation_bar.follow_requests": "Peticións de seguimento",
- "navigation_bar.follows_and_followers": "Seguindo e seguidores",
+ "navigation_bar.follows_and_followers": "Seguindo e seguidoras",
"navigation_bar.info": "Sobre este servidor",
"navigation_bar.keyboard_shortcuts": "Atallos do teclado",
"navigation_bar.lists": "Listaxes",
@@ -300,7 +303,7 @@
"notifications.column_settings.filter_bar.advanced": "Amosar todas as categorías",
"notifications.column_settings.filter_bar.category": "Barra de filtrado rápido",
"notifications.column_settings.filter_bar.show": "Amosar",
- "notifications.column_settings.follow": "Novos seguidores:",
+ "notifications.column_settings.follow": "Novas seguidoras:",
"notifications.column_settings.follow_request": "Novas peticións de seguimento:",
"notifications.column_settings.mention": "Mencións:",
"notifications.column_settings.poll": "Resultados da enquisa:",
@@ -317,7 +320,7 @@
"notifications.group": "{count} notificacións",
"poll.closed": "Pechado",
"poll.refresh": "Actualizar",
- "poll.total_people": "{count, plural,one {# persoa}other {# persoas}}",
+ "poll.total_people": "{count, plural,one {# persoa} other {# persoas}}",
"poll.total_votes": "{count, plural, one {# voto} other {# votos}}",
"poll.vote": "Votar",
"poll.voted": "Votaches por esta opción",
@@ -326,14 +329,14 @@
"privacy.change": "Axustar privacidade",
"privacy.direct.long": "Só para as usuarias mencionadas",
"privacy.direct.short": "Directo",
- "privacy.private.long": "Só para os seguidores",
- "privacy.private.short": "Só seguidores",
+ "privacy.private.long": "Só para os seguidoras",
+ "privacy.private.short": "Só para seguidoras",
"privacy.public.long": "Publicar nas cronoloxías públicas",
"privacy.public.short": "Público",
"privacy.unlisted.long": "Non publicar nas cronoloxías públicas",
"privacy.unlisted.short": "Non listado",
"refresh": "Actualizar",
- "regeneration_indicator.label": "Estase a cargar…",
+ "regeneration_indicator.label": "Cargando…",
"regeneration_indicator.sublabel": "Estase a preparar a túa cronoloxía de inicio!",
"relative_time.days": "{number}d",
"relative_time.hours": "{number}h",
@@ -350,10 +353,10 @@
"report.target": "Denunciar a {target}",
"search.placeholder": "Procurar",
"search_popout.search_format": "Formato de procura avanzada",
- "search_popout.tips.full_text": "Texto simple devolve estados que ti escribiches, promoviches, marcaches favoritos, ou foches mencionada, así como nomes de usuaria coincidentes, nomes públicos e etiquetas.",
+ "search_popout.tips.full_text": "Texto simple devolve estados que ti escribiches, promoviches, marcaches favoritos, ou foches mencionada, así como nomes de usuaria coincidentes, nomes públicos e cancelos.",
"search_popout.tips.hashtag": "cancelo",
"search_popout.tips.status": "estado",
- "search_popout.tips.text": "Texto simple devolve coincidencias con nomes públicos, nomes de usuaria e etiquetas",
+ "search_popout.tips.text": "Texto simple devolve coincidencias con nomes públicos, nomes de usuaria e cancelos",
"search_popout.tips.user": "usuaria",
"search_results.accounts": "Persoas",
"search_results.hashtags": "Cancelos",
@@ -370,7 +373,7 @@
"status.delete": "Eliminar",
"status.detailed_status": "Vista detallada da conversa",
"status.direct": "Mensaxe directa a @{name}",
- "status.embed": "Embeber nunha web",
+ "status.embed": "Incrustar",
"status.favourite": "Favorito",
"status.filtered": "Filtrado",
"status.load_more": "Cargar máis",
@@ -416,7 +419,7 @@
"time_remaining.seconds": "{number, plural, one {# segundo} other {# segundos}} restantes",
"trends.count_by_accounts": "{count} {rawCount, plural, one {persoa} other {persoas}} falando",
"trends.trending_now": "Tendencias actuais",
- "ui.beforeunload": "O borrador perderase se saes do Mastodon.",
+ "ui.beforeunload": "O borrador perderase se saes de Mastodon.",
"upload_area.title": "Arrastra e solta para subir",
"upload_button.label": "Engadir multimedia ({formats})",
"upload_error.limit": "Límite máximo do ficheiro a subir excedido.",
diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json
index 7d6a85866..1e61f4cea 100644
--- a/app/javascript/mastodon/locales/he.json
+++ b/app/javascript/mastodon/locales/he.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "הצגת העדפות",
"column_header.unpin": "שחרור קיבוע",
"column_subheading.settings": "אפשרויות",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Media only",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
"compose_form.direct_message_warning_learn_more": "Learn more",
"compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "קבלה",
"follow_request.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.",
"getting_started.developers": "Developers",
"getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json
index d75306064..007c3e804 100644
--- a/app/javascript/mastodon/locales/hi.json
+++ b/app/javascript/mastodon/locales/hi.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "सेटिंग्स दिखाएँ",
"column_header.unpin": "अनपिन",
"column_subheading.settings": "सेटिंग्स",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "सिर्फ़ मीडिया",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
"compose_form.direct_message_warning_learn_more": "और जानें",
"compose_form.hashtag_warning": "यह टूट् किसी भी हैशटैग के तहत सूचीबद्ध नहीं होगा क्योंकि यह अनलिस्टेड है। हैशटैग द्वारा केवल सार्वजनिक टूट्स खोजे जा सकते हैं।",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "अधिकार दें",
"follow_request.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.",
"getting_started.developers": "डेवॅलपर्स",
"getting_started.directory": "प्रोफ़ाइल निर्देशिका",
"getting_started.documentation": "प्रलेखन",
@@ -259,7 +262,7 @@
"lists.subheading": "Your lists",
"load_pending": "{count, plural, one {# new item} other {# new items}}",
"loading_indicator.label": "लोड हो रहा है...",
- "media_gallery.toggle_visible": "Toggle visibility",
+ "media_gallery.toggle_visible": "Hide media",
"missing_indicator.label": "नहीं मिला",
"missing_indicator.sublabel": "यह संसाधन नहीं मिल सका।",
"mute_modal.hide_notifications": "Hide notifications from this user?",
diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json
index 344776673..038b48bc2 100644
--- a/app/javascript/mastodon/locales/hr.json
+++ b/app/javascript/mastodon/locales/hr.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "Show settings",
"column_header.unpin": "Unpin",
"column_subheading.settings": "Postavke",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Media only",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
"compose_form.direct_message_warning_learn_more": "Learn more",
"compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Autoriziraj",
"follow_request.reject": "Odbij",
+ "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.",
"getting_started.developers": "Developers",
"getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json
index 08c71fab0..45257682f 100644
--- a/app/javascript/mastodon/locales/hu.json
+++ b/app/javascript/mastodon/locales/hu.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "Beállítások mutatása",
"column_header.unpin": "Kitűzés eltávolítása",
"column_subheading.settings": "Beállítások",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Csak média",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Ezt a tülköt csak a benne megemlített felhasználók láthatják majd.",
"compose_form.direct_message_warning_learn_more": "Tudj meg többet",
"compose_form.hashtag_warning": "Ez a tülköd nem fog megjelenni semmilyen hashtag alatt mivel listázatlan. Csak nyilvános tülkök kereshetőek hashtaggel.",
@@ -126,11 +128,11 @@
"directory.recently_active": "Nemrég aktív",
"embed.instructions": "Ágyazd be ezt a tülköt a weboldaladba az alábbi kód kimásolásával.",
"embed.preview": "Így fog kinézni:",
- "emoji_button.activity": "Aktivitás",
+ "emoji_button.activity": "Tevékenység",
"emoji_button.custom": "Egyéni",
"emoji_button.flags": "Zászlók",
"emoji_button.food": "Étel és Ital",
- "emoji_button.label": "Emoji beszúrása",
+ "emoji_button.label": "Emodzsi beszúrása",
"emoji_button.nature": "Természet",
"emoji_button.not_found": "Nincsenek emodzsik!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Tárgyak",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Engedélyezés",
"follow_request.reject": "Elutasítás",
+ "follow_requests.unlocked_explanation": "Bár a fiókod nincs zárolva, a(z) {domain} csapata úgy gondolta, hogy talán kézzel szeretnéd ellenőrizni a fiók követési kéréseit.",
"getting_started.developers": "Fejlesztőknek",
"getting_started.directory": "Profilok",
"getting_started.documentation": "Dokumentáció",
@@ -425,7 +428,7 @@
"upload_form.audio_description": "Írja le a hallássérültek számára",
"upload_form.description": "Leírás látáskorlátozottak számára",
"upload_form.edit": "Szerkesztés",
- "upload_form.undo": "Mégsem",
+ "upload_form.undo": "Törlés",
"upload_form.video_description": "Írja le a hallás- vagy látássérültek számára",
"upload_modal.analyzing_picture": "Kép elemzése…",
"upload_modal.apply": "Alkalmaz",
diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json
index 111312386..e113e7ba7 100644
--- a/app/javascript/mastodon/locales/hy.json
+++ b/app/javascript/mastodon/locales/hy.json
@@ -3,18 +3,18 @@
"account.badges.bot": "Բոտ",
"account.badges.group": "Խումբ",
"account.block": "Արգելափակել @{name}֊ին",
- "account.block_domain": "Թաքցնել ամենը հետեւյալ տիրույթից՝ {domain}",
+ "account.block_domain": "Թաքցնել ամէնը հետեւեալ տիրոյթից՝ {domain}",
"account.blocked": "Արգելափակուած է",
"account.cancel_follow_request": "չեղարկել հետեւելու հայցը",
- "account.direct": "Direct Message @{name}",
- "account.domain_blocked": "Թաքցրած տիրոյթ",
+ "account.direct": "Նամակ գրել @{name} -ին",
+ "account.domain_blocked": "Տիրոյթը արգելափակուած է",
"account.edit_profile": "Խմբագրել անձնական էջը",
"account.endorse": "Ցուցադրել անձնական էջում",
"account.follow": "Հետեւել",
"account.followers": "Հետեւողներ",
"account.followers.empty": "Այս օգտատիրոջը դեռ ոչ մէկ չի հետեւում։",
"account.follows": "Հետեւում է",
- "account.follows.empty": "Այս օգտատէրն դեռ ոչ մէկի չի հետեւում։",
+ "account.follows.empty": "Այս օգտատէրը դեռ ոչ մէկի չի հետեւում։",
"account.follows_you": "Հետեւում է քեզ",
"account.hide_reblogs": "Թաքցնել @{name}֊ի տարածածները",
"account.last_status": "Վերջին անգամ ակտիւ էր",
@@ -22,31 +22,31 @@
"account.locked_info": "Սոյն հաշուի գաղտնիութեան մակարդակը նշուած է որպէս՝ փակ։ Հաշուի տէրն ընտրում է, թէ ով կարող է հետեւել իրեն։",
"account.media": "Մեդիա",
"account.mention": "Նշել @{name}֊ին",
- "account.moved_to": "{name}֊ը տեղափոխվել է՝",
+ "account.moved_to": "{name}֊ը տեղափոխուել է՝",
"account.mute": "Լռեցնել @{name}֊ին",
"account.mute_notifications": "Անջատել ծանուցումները @{name}֊ից",
"account.muted": "Լռեցուած",
"account.never_active": "Երբեք",
"account.posts": "Թութ",
- "account.posts_with_replies": "Toots with replies",
- "account.report": "Բողոքել @{name}֊ից",
+ "account.posts_with_replies": "Թթեր եւ պատասխաններ",
+ "account.report": "Բողոքել @{name}֊ի մասին",
"account.requested": "Հաստատման կարիք ունի։ Սեղմիր՝ հետեւելու հայցը չեղարկելու համար։",
- "account.share": "Կիսվել @{name}֊ի էջով",
+ "account.share": "Կիսուել @{name}֊ի էջով",
"account.show_reblogs": "Ցուցադրել @{name}֊ի տարածածները",
"account.unblock": "Ապաարգելափակել @{name}֊ին",
- "account.unblock_domain": "Ցուցադրել {domain} թաքցված տիրույթի գրառումները",
+ "account.unblock_domain": "Ցուցադրել {domain} թաքցուած տիրոյթի գրառումները",
"account.unendorse": "Չցուցադրել անձնական էջում",
- "account.unfollow": "Չհետեւել",
+ "account.unfollow": "Ապահետեւել",
"account.unmute": "Ապալռեցնել @{name}֊ին",
"account.unmute_notifications": "Միացնել ծանուցումները @{name}֊ից",
"alert.rate_limited.message": "Փորձէք որոշ ժամանակ անց՝ {retry_time, time, medium}։",
- "alert.rate_limited.title": "Rate limited",
+ "alert.rate_limited.title": "Գործողութիւնների յաճախութիւնը գերազանցում է թոյլատրելին",
"alert.unexpected.message": "Անսպասելի սխալ տեղի ունեցաւ։",
"alert.unexpected.title": "Վա՜յ",
- "announcement.announcement": "Announcement",
+ "announcement.announcement": "Յայտարարութիւններ",
"autosuggest_hashtag.per_week": "շաբաթը՝ {count}",
- "boost_modal.combo": "Կարող ես սեղմել {combo}՝ սա հաջորդ անգամ բաց թողնելու համար",
- "bundle_column_error.body": "Այս բաղադրիչը բեռնելու ընթացքում ինչ֊որ բան խափանվեց։",
+ "boost_modal.combo": "Կարող ես սեղմել {combo}՝ սա յաջորդ անգամ բաց թողնելու համար",
+ "bundle_column_error.body": "Այս բաղադրիչը բեռնելու ընթացքում ինչ֊որ բան խափանուեց։",
"bundle_column_error.retry": "Կրկին փորձել",
"bundle_column_error.title": "Ցանցային սխալ",
"bundle_modal_error.close": "Փակել",
@@ -74,7 +74,9 @@
"column_header.show_settings": "Ցուցադրել կարգավորումները",
"column_header.unpin": "Հանել",
"column_subheading.settings": "Կարգավորումներ",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Media only",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
"compose_form.direct_message_warning_learn_more": "Իմանալ ավելին",
"compose_form.hashtag_warning": "Այս թութը չի հաշվառվի որեւէ պիտակի տակ, քանզի այն ծածուկ է։ Միայն հրապարակային թթերը հնարավոր է որոնել պիտակներով։",
@@ -85,8 +87,8 @@
"compose_form.poll.duration": "Հարցման տեւողութիւնը",
"compose_form.poll.option_placeholder": "Տարբերակ {number}",
"compose_form.poll.remove_option": "Հեռացնել այս տարբերակը",
- "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
- "compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
+ "compose_form.poll.switch_to_multiple": "Հարցումը դարձնել բազմակի ընտրությամբ",
+ "compose_form.poll.switch_to_single": "Հարցումը դարձնել եզակի ընտրությամբ",
"compose_form.publish": "Թթել",
"compose_form.publish_loud": "Թթե՜լ",
"compose_form.sensitive.hide": "Նշել մեդիան որպէս դիւրազգաց",
@@ -143,24 +145,24 @@
"empty_column.account_timeline": "Այստեղ թթեր չկա՛ն։",
"empty_column.account_unavailable": "Անձնական էջը հասանելի չի",
"empty_column.blocks": "Դու դեռ ոչ մէկի չես արգելափակել։",
- "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
+ "empty_column.bookmarked_statuses": "Դու դեռ չունես որեւէ էջանշւած թութ։ Երբ էջանշես, դրանք կերեւան այստեղ։",
"empty_column.community": "Տեղական հոսքը դատա՛րկ է։ Հրապարակային մի բան գրիր շարժիչը խոդ տալու համար։",
"empty_column.direct": "Դու դեռ չունես ոչ մի հասցէագրուած հաղորդագրութիւն։ Երբ ուղարկես կամ ստանաս որեւէ անձնական նամակ, այն այստեղ կերեւայ։",
"empty_column.domain_blocks": "Թաքցուած տիրոյթներ դեռ չկան։",
"empty_column.favourited_statuses": "Դու դեռ չունես որեւէ հաւանած թութ։ Երբ հաւանես, դրանք կերեւան այստեղ։",
"empty_column.favourites": "Այս թութը ոչ մէկ դեռ չի հաւանել։ Հաւանողները կերեւան այստեղ, երբ նշեն թութը հաւանած։",
- "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
+ "empty_column.follow_requests": "Դու դեռ չունես որեւէ հետևելու հայտ։ Բոլոր նման հայտերը կհայտնվեն այստեղ։",
"empty_column.hashtag": "Այս պիտակով դեռ ոչինչ չկա։",
"empty_column.home": "Քո հիմնական հոսքը դատա՛րկ է։ Այցելի՛ր {public}ը կամ օգտվիր որոնումից՝ այլ մարդկանց հանդիպելու համար։",
"empty_column.home.public_timeline": "հրապարակային հոսք",
"empty_column.list": "Այս ցանկում դեռ ոչինչ չկա։ Երբ ցանկի անդամներից որեւէ մեկը նոր թութ գրի, այն կհայտնվի այստեղ։",
- "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
- "empty_column.mutes": "Առայժմ ոչ ոքի չեք արգելափակել։",
+ "empty_column.lists": "Դուք դեռ չունեք ստեղծած ցանկ։ Ցանկ ստեղծելուն պես այն կհայտնվի այստեղ։",
+ "empty_column.mutes": "Առայժմ ոչ ոքի չեք լռեցրել։",
"empty_column.notifications": "Ոչ մի ծանուցում դեռ չունես։ Բզիր մյուսներին՝ խոսակցությունը սկսելու համար։",
"empty_column.public": "Այստեղ բան չկա՛։ Հրապարակային մի բան գրիր կամ հետեւիր այլ հանգույցներից էակների՝ այն լցնելու համար։",
- "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
- "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
- "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
+ "error.unexpected_crash.explanation": "Մեր ծրագրակազմում վրիպակի կամ դիտարկչի անհամատեղելիության պատճառով այս էջը չի կարող լիարժեք պատկերվել։",
+ "error.unexpected_crash.next_steps": "Փորձիր թարմացնել էջը։ Եթե դա չօգնի ապա կարող ես օգտվել Մաստադոնից ուրիշ դիտարկիչով կամ հավելվածով։",
+ "errors.unexpected_crash.copy_stacktrace": "Պատճենել սթաքթրեյսը սեղմատախտակին",
"errors.unexpected_crash.report_issue": "Զեկուցել խնդրի մասին",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
@@ -169,8 +171,9 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Վավերացնել",
"follow_request.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.",
"getting_started.developers": "Մշակողներ",
- "getting_started.directory": "Պրոֆիլի տեղադրավայրը",
+ "getting_started.directory": "Օգտատերերի շտեմարան",
"getting_started.documentation": "Փաստաթղթեր",
"getting_started.heading": "Ինչպես սկսել",
"getting_started.invite": "Հրավիրել մարդկանց",
@@ -180,8 +183,8 @@
"hashtag.column_header.tag_mode.all": "և {additional}",
"hashtag.column_header.tag_mode.any": "կամ {additional}",
"hashtag.column_header.tag_mode.none": "առանց {additional}",
- "hashtag.column_settings.select.no_options_message": "No suggestions found",
- "hashtag.column_settings.select.placeholder": "Enter hashtags…",
+ "hashtag.column_settings.select.no_options_message": "Առաջարկներ չկան",
+ "hashtag.column_settings.select.placeholder": "Ավելացրու հեշթեգեր…",
"hashtag.column_settings.tag_mode.all": "Բոլորը",
"hashtag.column_settings.tag_mode.any": "Ցանկացածը",
"hashtag.column_settings.tag_mode.none": "Ոչ մեկը",
@@ -189,50 +192,50 @@
"home.column_settings.basic": "Հիմնական",
"home.column_settings.show_reblogs": "Ցուցադրել տարածածները",
"home.column_settings.show_replies": "Ցուցադրել պատասխանները",
- "home.hide_announcements": "Hide announcements",
- "home.show_announcements": "Show announcements",
- "intervals.full.days": "{number, plural, one {# day} other {# days}}",
- "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
- "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
+ "home.hide_announcements": "Թաքցնել հայտարարությունները",
+ "home.show_announcements": "Ցուցադրել հայտարարությունները",
+ "intervals.full.days": "{number, plural, one {# օր} other {# օր}}",
+ "intervals.full.hours": "{number, plural, one {# ժամ} other {# ժամ}}",
+ "intervals.full.minutes": "{number, plural, one {# րոպե} other {# րոպե}}",
"introduction.federation.action": "Հաջորդ",
- "introduction.federation.federated.headline": "Federated",
- "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
+ "introduction.federation.federated.headline": "Դաշնային",
+ "introduction.federation.federated.text": "Դաշտնեզերքի հարևան հանգույցների հանրային գրառումները կհայտնվեն դաշնային հոսքում։",
"introduction.federation.home.headline": "Հիմնական",
- "introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
+ "introduction.federation.home.text": "Այն անձանց թթերը ում հետևում ես, կհայտնվի հիմնական հոսքում։ Դու կարող ես հետևել ցանկացած անձի ցանկացած հանգույցից։",
"introduction.federation.local.headline": "Տեղային",
- "introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
+ "introduction.federation.local.text": "Տեղական հոսքում կարող ես տեսնել քո հանգույցի բոլոր հանրային գրառումները։",
"introduction.interactions.action": "Finish toot-orial!",
"introduction.interactions.favourite.headline": "Նախընտրելի",
- "introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
+ "introduction.interactions.favourite.text": "Փոխանցիր հեղինակին որ քեզ դուր է եկել իր թութը հավանելով այն։",
"introduction.interactions.reblog.headline": "Տարածել",
- "introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
+ "introduction.interactions.reblog.text": "Կիսիր այլ օգտատերերի թութերը քո հետևորդների հետ տարածելով դրանք քո անձնական էջում։",
"introduction.interactions.reply.headline": "Պատասխանել",
- "introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
+ "introduction.interactions.reply.text": "Արձագանքիր ուրիշների և քո թթերին, դրանք կդարսվեն մեկ ընհանուր քննարկման շղթայով։",
"introduction.welcome.action": "Գնացի՜նք։",
"introduction.welcome.headline": "Առաջին քայլեր",
- "introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.",
+ "introduction.welcome.text": "Դաշնեզերքը ողջունում է ձեզ։ Շուտով կկարողանաս ուղարկել նամակներ ու շփվել տարբեր հանգույցների ընկերներիդ հետ։ Բայց մտապահիր {domain} հանգույցը, այն յուրահատուկ է, այստեղ է պահվում քո հաշիվը։",
"keyboard_shortcuts.back": "ետ նավարկելու համար",
"keyboard_shortcuts.blocked": "արգելափակված օգտատերերի ցանկը բացելու համար",
"keyboard_shortcuts.boost": "տարածելու համար",
"keyboard_shortcuts.column": "սյուներից մեկի վրա սեւեռվելու համար",
"keyboard_shortcuts.compose": "շարադրման տիրույթին սեւեռվելու համար",
"keyboard_shortcuts.description": "Նկարագրություն",
- "keyboard_shortcuts.direct": "to open direct messages column",
+ "keyboard_shortcuts.direct": "հասցեագրված գրվածքների հոսքը բացելու համար",
"keyboard_shortcuts.down": "ցանկով ներքեւ շարժվելու համար",
"keyboard_shortcuts.enter": "թութը բացելու համար",
"keyboard_shortcuts.favourite": "հավանելու համար",
- "keyboard_shortcuts.favourites": "to open favourites list",
- "keyboard_shortcuts.federated": "to open federated timeline",
+ "keyboard_shortcuts.favourites": "էջանիշերի ցուցակը բացելու համար",
+ "keyboard_shortcuts.federated": "դաշնային հոսքին անցնելու համար",
"keyboard_shortcuts.heading": "Ստեղնաշարի կարճատներ",
- "keyboard_shortcuts.home": "to open home timeline",
+ "keyboard_shortcuts.home": "անձնական հոսքին անցնելու համար",
"keyboard_shortcuts.hotkey": "Հատուկ ստեղն",
"keyboard_shortcuts.legend": "այս ձեռնարկը ցուցադրելու համար",
- "keyboard_shortcuts.local": "to open local timeline",
+ "keyboard_shortcuts.local": "տեղական հոսքին անցնելու համար",
"keyboard_shortcuts.mention": "հեղինակին նշելու համար",
- "keyboard_shortcuts.muted": "to open muted users list",
- "keyboard_shortcuts.my_profile": "to open your profile",
- "keyboard_shortcuts.notifications": "to open notifications column",
- "keyboard_shortcuts.open_media": "to open media",
+ "keyboard_shortcuts.muted": "լռեցված օգտատերերի ցանկը բացելու համար",
+ "keyboard_shortcuts.my_profile": "սեփական էջին անցնելու համար",
+ "keyboard_shortcuts.notifications": "ծանուցումեների սյունակը բացելու համար",
+ "keyboard_shortcuts.open_media": "ցուցադրել մեդիան",
"keyboard_shortcuts.pinned": "ամրացուած թթերի ցանկը բացելու համար",
"keyboard_shortcuts.profile": "հեղինակի անձնական էջը բացելու համար",
"keyboard_shortcuts.reply": "պատասխանելու համար",
@@ -257,7 +260,7 @@
"lists.new.title_placeholder": "Նոր ցանկի վերնագիր",
"lists.search": "Փնտրել քո հետեւած մարդկանց մեջ",
"lists.subheading": "Քո ցանկերը",
- "load_pending": "{count, plural, one {# new item} other {# new items}}",
+ "load_pending": "{count, plural, one {# նոր նյութ} other {# նոր նյութ}}",
"loading_indicator.label": "Բեռնվում է…",
"media_gallery.toggle_visible": "Ցուցադրել/թաքցնել",
"missing_indicator.label": "Չգտնվեց",
@@ -288,7 +291,7 @@
"navigation_bar.security": "Անվտանգություն",
"notification.favourite": "{name} հավանեց թութդ",
"notification.follow": "{name} սկսեց հետեւել քեզ",
- "notification.follow_request": "{name} has requested to follow you",
+ "notification.follow_request": "{name} քեզ հետևելու հայց է ուղարկել",
"notification.mention": "{name} նշեց քեզ",
"notification.own_poll": "Հարցումդ աւարտուեց",
"notification.poll": "Հարցումը, ուր դու քուէարկել ես, աւարտուեց։",
@@ -301,7 +304,7 @@
"notifications.column_settings.filter_bar.category": "Արագ զտման վահանակ",
"notifications.column_settings.filter_bar.show": "Ցուցադրել",
"notifications.column_settings.follow": "Նոր հետեւողներ՝",
- "notifications.column_settings.follow_request": "New follow requests:",
+ "notifications.column_settings.follow_request": "Նոր հետեւելու հայցեր:",
"notifications.column_settings.mention": "Նշումներ՝",
"notifications.column_settings.poll": "Հարցման արդիւնքները՝",
"notifications.column_settings.push": "Հրելու ծանուցումներ",
@@ -317,8 +320,8 @@
"notifications.group": "{count} ծանուցում",
"poll.closed": "Փակ",
"poll.refresh": "Թարմացնել",
- "poll.total_people": "{count, plural, one {# person} other {# people}}",
- "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
+ "poll.total_people": "{count, plural, one {# հոգի} other {# հոգի}}",
+ "poll.total_votes": "{count, plural, one {# ձայն} other {# ձայն}}",
"poll.vote": "Քուէարկել",
"poll.voted": "Դու քուէարկել ես այս տարբերակի համար",
"poll_button.add_poll": "Աւելացնել հարցում",
@@ -340,7 +343,7 @@
"relative_time.just_now": "նոր",
"relative_time.minutes": "{number}ր",
"relative_time.seconds": "{number}վ",
- "relative_time.today": "today",
+ "relative_time.today": "Այսօր",
"reply_indicator.cancel": "Չեղարկել",
"report.forward": "Փոխանցել {target}֊ին",
"report.forward_hint": "Այս հաշիւ այլ հանգոյցից է։ Ուղարկե՞մ այնտեղ էլ այս բողոքի անոնիմ պատճէնը։",
@@ -366,10 +369,10 @@
"status.bookmark": "Էջանիշ",
"status.cancel_reblog_private": "Ապատարածել",
"status.cannot_reblog": "Այս թութը չի կարող տարածվել",
- "status.copy": "Copy link to status",
+ "status.copy": "Պատճենել գրառման հղումը",
"status.delete": "Ջնջել",
- "status.detailed_status": "Detailed conversation view",
- "status.direct": "Direct message @{name}",
+ "status.detailed_status": "Շղթայի ընդլայնված դիտում",
+ "status.direct": "Նամակ գրել {name} -ին",
"status.embed": "Ներդնել",
"status.favourite": "Հավանել",
"status.filtered": "Զտված",
@@ -382,57 +385,57 @@
"status.mute_conversation": "Լռեցնել խոսակցությունը",
"status.open": "Ընդարձակել այս թութը",
"status.pin": "Ամրացնել անձնական էջում",
- "status.pinned": "Pinned toot",
+ "status.pinned": "Ամրացված թութ",
"status.read_more": "Կարդալ ավելին",
"status.reblog": "Տարածել",
- "status.reblog_private": "Boost to original audience",
+ "status.reblog_private": "Տարածել սեփական լսարանին",
"status.reblogged_by": "{name} տարածել է",
- "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
- "status.redraft": "Delete & re-draft",
- "status.remove_bookmark": "Remove bookmark",
+ "status.reblogs.empty": "Այս թութը ոչ մէկ դեռ չի տարածել։ Տարածողները կերեւան այստեղ, երբ որևէ մեկը տարածի։",
+ "status.redraft": "Ջնջել եւ վերակազմել",
+ "status.remove_bookmark": "Հեռացնել էջանիշերից",
"status.reply": "Պատասխանել",
"status.replyAll": "Պատասխանել թելին",
"status.report": "Բողոքել @{name}֊ից",
"status.sensitive_warning": "Կասկածելի բովանդակություն",
"status.share": "Կիսվել",
"status.show_less": "Պակաս",
- "status.show_less_all": "Show less for all",
+ "status.show_less_all": "Թաքցնել բոլոր նախազգուշացնումները",
"status.show_more": "Ավելին",
- "status.show_more_all": "Show more for all",
- "status.show_thread": "Show thread",
+ "status.show_more_all": "Ցուցադրել բոլոր նախազգուշացնումները",
+ "status.show_thread": "Բացել շղթան",
"status.uncached_media_warning": "Անհասանելի",
"status.unmute_conversation": "Ապալռեցնել խոսակցությունը",
"status.unpin": "Հանել անձնական էջից",
- "suggestions.dismiss": "Dismiss suggestion",
- "suggestions.header": "You might be interested in…",
+ "suggestions.dismiss": "Անտեսել առաջարկը",
+ "suggestions.header": "Միգուցե քեզ հետաքրքրի…",
"tabs_bar.federated_timeline": "Դաշնային",
"tabs_bar.home": "Հիմնական",
"tabs_bar.local_timeline": "Տեղական",
"tabs_bar.notifications": "Ծանուցումներ",
"tabs_bar.search": "Փնտրել",
- "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
+ "time_remaining.days": "{number, plural, one {մնաց # օր} other {մնաց # օր}}",
"time_remaining.hours": "{number, plural, one {# ժամ} other {# ժամ}} անց",
"time_remaining.minutes": "{number, plural, one {# րոպե} other {# րոպե}} անց",
- "time_remaining.moments": "Moments remaining",
+ "time_remaining.moments": "Մնացել է մի քանի վարկյան",
"time_remaining.seconds": "{number, plural, one {# վայրկյան} other {# վայրկյան}} անց",
- "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
+ "trends.count_by_accounts": "{count} {rawCount, plural, one {հոգի} other {հոգի}} խոսում է սրա մասին",
"trends.trending_now": "Այժմ արդիական",
"ui.beforeunload": "Քո սեւագիրը կկորի, եթե լքես Մաստոդոնը։",
"upload_area.title": "Քաշիր ու նետիր՝ վերբեռնելու համար",
"upload_button.label": "Ավելացնել մեդիա",
"upload_error.limit": "Ֆայլի վերբեռնման սահմանաչափը գերազանցված է։",
- "upload_error.poll": "File upload not allowed with polls.",
- "upload_form.audio_description": "Describe for people with hearing loss",
+ "upload_error.poll": "Հարցումների հետ ֆայլ կցել հնարավոր չէ։",
+ "upload_form.audio_description": "Նկարագրիր ձայնագրության բովանդակությունը լսողական խնդիրներով անձանց համար",
"upload_form.description": "Նկարագրություն ավելացրու տեսողական խնդիրներ ունեցողների համար",
"upload_form.edit": "Խմբագրել",
"upload_form.undo": "Հետարկել",
- "upload_form.video_description": "Describe for people with hearing loss or visual impairment",
+ "upload_form.video_description": "Նկարագրիր տեսանյութը լսողական կամ տեսողական խնդիրներով անձանց համար",
"upload_modal.analyzing_picture": "Լուսանկարի վերլուծում…",
"upload_modal.apply": "Կիրառել",
"upload_modal.description_placeholder": "Ճկուն շագանակագույն աղվեսը ցատկում է ծույլ շան վրայով",
"upload_modal.detect_text": "Հայտնբերել տեքստը նկարից",
"upload_modal.edit_media": "Խմբագրել մեդիան",
- "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
+ "upload_modal.hint": "Սեղմեք և տեղաշարժեք նախատեսքի վրայի շրջանակը ընտրելու այն կետը որը միշտ տեսանելի կլինի մանրապատկերներում։",
"upload_modal.preview_label": "Նախադիտում ({ratio})",
"upload_progress.label": "Վերբեռնվում է…",
"video.close": "Փակել տեսագրությունը",
diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json
index a92190756..b862d01e5 100644
--- a/app/javascript/mastodon/locales/id.json
+++ b/app/javascript/mastodon/locales/id.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "Tampilkan pengaturan",
"column_header.unpin": "Lepaskan",
"column_subheading.settings": "Pengaturan",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Hanya media",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
"compose_form.direct_message_warning_learn_more": "Pelajari selengkapnya",
"compose_form.hashtag_warning": "Toot ini tidak akan ada dalam daftar tagar manapun karena telah di set sebagai tidak terdaftar. Hanya postingan publik yang bisa dicari dengan tagar.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Izinkan",
"follow_request.reject": "Tolak",
+ "follow_requests.unlocked_explanation": "Meskipun akun Anda tidak dikunci, staf {domain} menyarankan Anda untuk meninjau permintaan mengikuti dari akun-akun ini secara manual.",
"getting_started.developers": "Pengembang",
"getting_started.directory": "Direktori profil",
"getting_started.documentation": "Dokumentasi",
diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json
index a4d46dcc8..dce6b1e34 100644
--- a/app/javascript/mastodon/locales/io.json
+++ b/app/javascript/mastodon/locales/io.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "Show settings",
"column_header.unpin": "Unpin",
"column_subheading.settings": "Settings",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Media only",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
"compose_form.direct_message_warning_learn_more": "Learn more",
"compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Yurizar",
"follow_request.reject": "Refuzar",
+ "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.",
"getting_started.developers": "Developers",
"getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json
index 4c6599b39..5c5c9edad 100644
--- a/app/javascript/mastodon/locales/is.json
+++ b/app/javascript/mastodon/locales/is.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "Birta stillingar",
"column_header.unpin": "Losa",
"column_subheading.settings": "Stillingar",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Einungis myndskrár",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Þetta tíst verður aðeins sent á notendur sem minnst er á.",
"compose_form.direct_message_warning_learn_more": "Kanna nánar",
"compose_form.hashtag_warning": "Þetta tíst verður ekki talið með undir nokkru myllumerki þar sem það er óskráð. Einungis er hægt að leita að opinberum tístum eftir myllumerkjum.",
@@ -164,6 +166,7 @@
"errors.unexpected_crash.report_issue": "Tilkynna vandamál",
"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.",
"getting_started.developers": "Forritarar",
"getting_started.directory": "Notandasniðamappa",
"getting_started.documentation": "Hjálparskjöl",
diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json
index 4a68a67ac..696c62f5a 100644
--- a/app/javascript/mastodon/locales/it.json
+++ b/app/javascript/mastodon/locales/it.json
@@ -5,7 +5,7 @@
"account.block": "Blocca @{name}",
"account.block_domain": "Nascondi tutto da {domain}",
"account.blocked": "Bloccato",
- "account.cancel_follow_request": "Annulla richiesta di seguito",
+ "account.cancel_follow_request": "Annulla richiesta di seguire",
"account.direct": "Invia messaggio privato a @{name}",
"account.domain_blocked": "Dominio nascosto",
"account.edit_profile": "Modifica profilo",
@@ -36,7 +36,7 @@
"account.unblock": "Sblocca @{name}",
"account.unblock_domain": "Non nascondere {domain}",
"account.unendorse": "Non mettere in evidenza sul profilo",
- "account.unfollow": "Non seguire",
+ "account.unfollow": "Smetti di seguire",
"account.unmute": "Non silenziare @{name}",
"account.unmute_notifications": "Non silenziare più le notifiche da @{name}",
"alert.rate_limited.message": "Riprova dopo {retry_time, time, medium}.",
@@ -74,7 +74,9 @@
"column_header.show_settings": "Mostra impostazioni",
"column_header.unpin": "Non fissare in cima",
"column_subheading.settings": "Impostazioni",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Solo media",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Questo toot sarà mandato solo a tutti gli utenti menzionati.",
"compose_form.direct_message_warning_learn_more": "Per saperne di più",
"compose_form.hashtag_warning": "Questo toot non è listato, quindi non sarà trovato nelle ricerche per hashtag. Solo i toot pubblici possono essere cercati per hashtag.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Autorizza",
"follow_request.reject": "Rifiuta",
+ "follow_requests.unlocked_explanation": "Anche se il tuo account non è bloccato, lo staff di {domain} ha pensato che potresti voler esaminare manualmente le richieste di seguirti di questi account.",
"getting_started.developers": "Sviluppatori",
"getting_started.directory": "Directory dei profili",
"getting_started.documentation": "Documentazione",
diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json
index 77b281fb2..db598382e 100644
--- a/app/javascript/mastodon/locales/ja.json
+++ b/app/javascript/mastodon/locales/ja.json
@@ -3,11 +3,11 @@
"account.badges.bot": "Bot",
"account.badges.group": "Group",
"account.block": "@{name}さんをブロック",
- "account.block_domain": "{domain}全体を非表示",
+ "account.block_domain": "{domain}全体をブロック",
"account.blocked": "ブロック済み",
"account.cancel_follow_request": "フォローリクエストを取り消す",
"account.direct": "@{name}さんにダイレクトメッセージ",
- "account.domain_blocked": "ドメイン非表示中",
+ "account.domain_blocked": "ドメインブロック中",
"account.edit_profile": "プロフィール編集",
"account.endorse": "プロフィールで紹介する",
"account.follow": "フォロー",
@@ -34,7 +34,7 @@
"account.share": "@{name}さんのプロフィールを共有する",
"account.show_reblogs": "@{name}さんからのブーストを表示",
"account.unblock": "@{name}さんのブロックを解除",
- "account.unblock_domain": "{domain}の非表示を解除",
+ "account.unblock_domain": "{domain}のブロックを解除",
"account.unendorse": "プロフィールから外す",
"account.unfollow": "フォロー解除",
"account.unmute": "@{name}さんのミュートを解除",
@@ -57,7 +57,7 @@
"column.community": "ローカルタイムライン",
"column.direct": "ダイレクトメッセージ",
"column.directory": "ディレクトリ",
- "column.domain_blocks": "非表示にしたドメイン",
+ "column.domain_blocks": "ブロックしたドメイン",
"column.favourites": "お気に入り",
"column.follow_requests": "フォローリクエスト",
"column.home": "ホーム",
@@ -74,7 +74,9 @@
"column_header.show_settings": "設定を表示",
"column_header.unpin": "ピン留めを外す",
"column_subheading.settings": "設定",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "メディアのみ表示",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "このトゥートはメンションされた人にのみ送信されます。",
"compose_form.direct_message_warning_learn_more": "もっと詳しく",
"compose_form.hashtag_warning": "このトゥートは公開設定ではないのでハッシュタグの一覧に表示されません。公開トゥートだけがハッシュタグで検索できます。",
@@ -103,7 +105,7 @@
"confirmations.delete.message": "本当に削除しますか?",
"confirmations.delete_list.confirm": "削除",
"confirmations.delete_list.message": "本当にこのリストを完全に削除しますか?",
- "confirmations.domain_block.confirm": "ドメイン全体を非表示",
+ "confirmations.domain_block.confirm": "ドメイン全体をブロック",
"confirmations.domain_block.message": "本当に{domain}全体を非表示にしますか? 多くの場合は個別にブロックやミュートするだけで充分であり、また好ましいです。公開タイムラインにそのドメインのコンテンツが表示されなくなり、通知も届かなくなります。そのドメインのフォロワーはアンフォローされます。",
"confirmations.logout.confirm": "ログアウト",
"confirmations.logout.message": "本当にログアウトしますか?",
@@ -146,7 +148,7 @@
"empty_column.bookmarked_statuses": "まだ何もブックマーク登録していません。ブックマーク登録するとここに表示されます。",
"empty_column.community": "ローカルタイムラインはまだ使われていません。何か書いてみましょう!",
"empty_column.direct": "ダイレクトメッセージはまだありません。ダイレクトメッセージをやりとりすると、ここに表示されます。",
- "empty_column.domain_blocks": "非表示にしているドメインはありません。",
+ "empty_column.domain_blocks": "ブロックしているドメインはありません。",
"empty_column.favourited_statuses": "まだ何もお気に入り登録していません。お気に入り登録するとここに表示されます。",
"empty_column.favourites": "まだ誰もお気に入り登録していません。お気に入り登録されるとここに表示されます。",
"empty_column.follow_requests": "まだフォローリクエストを受けていません。フォローリクエストを受けるとここに表示されます。",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "許可",
"follow_request.reject": "拒否",
+ "follow_requests.unlocked_explanation": "あなたのアカウントは承認制ではありませんが、{domain} のスタッフはこれらのアカウントからのフォローリクエストの確認が必要であると判断しました。",
"getting_started.developers": "開発",
"getting_started.directory": "ディレクトリ",
"getting_started.documentation": "ドキュメント",
@@ -259,7 +262,7 @@
"lists.subheading": "あなたのリスト",
"load_pending": "{count} 件の新着",
"loading_indicator.label": "読み込み中...",
- "media_gallery.toggle_visible": "表示切り替え",
+ "media_gallery.toggle_visible": "メディアを隠す",
"missing_indicator.label": "見つかりません",
"missing_indicator.sublabel": "見つかりませんでした",
"mute_modal.hide_notifications": "このユーザーからの通知を隠しますか?",
@@ -270,7 +273,7 @@
"navigation_bar.compose": "トゥートの新規作成",
"navigation_bar.direct": "ダイレクトメッセージ",
"navigation_bar.discover": "見つける",
- "navigation_bar.domain_blocks": "非表示にしたドメイン",
+ "navigation_bar.domain_blocks": "ブロックしたドメイン",
"navigation_bar.edit_profile": "プロフィールを編集",
"navigation_bar.favourites": "お気に入り",
"navigation_bar.filters": "フィルター設定",
@@ -324,13 +327,13 @@
"poll_button.add_poll": "アンケートを追加",
"poll_button.remove_poll": "アンケートを削除",
"privacy.change": "公開範囲を変更",
- "privacy.direct.long": "メンションしたユーザーだけに公開",
+ "privacy.direct.long": "送信した相手のみ閲覧可",
"privacy.direct.short": "ダイレクト",
- "privacy.private.long": "フォロワーだけに公開",
+ "privacy.private.long": "フォロワーのみ閲覧可",
"privacy.private.short": "フォロワー限定",
- "privacy.public.long": "公開TLに投稿する",
+ "privacy.public.long": "誰でも閲覧可、公開TLに表示",
"privacy.public.short": "公開",
- "privacy.unlisted.long": "公開TLで表示しない",
+ "privacy.unlisted.long": "誰でも閲覧可、公開TLに非表示",
"privacy.unlisted.short": "未収載",
"refresh": "更新",
"regeneration_indicator.label": "読み込み中…",
diff --git a/app/javascript/mastodon/locales/ka.json b/app/javascript/mastodon/locales/ka.json
index 59a83e8a0..ec97f32fe 100644
--- a/app/javascript/mastodon/locales/ka.json
+++ b/app/javascript/mastodon/locales/ka.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "პარამეტრების ჩვენება",
"column_header.unpin": "პინის მოხსნა",
"column_subheading.settings": "პარამეტრები",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "მხოლოდ მედია",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "ეს ტუტი გაეგზავნება მხოლოდ ნახსენებ მომხმარებლებს.",
"compose_form.direct_message_warning_learn_more": "გაიგე მეტი",
"compose_form.hashtag_warning": "ეს ტუტი არ მოექცევა ჰეშტეგების ქვეს, რამეთუ ის არაა მითითებული. მხოლოდ ღია ტუტები მოიძებნება ჰეშტეგით.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "ავტორიზაცია",
"follow_request.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.",
"getting_started.developers": "დეველოპერები",
"getting_started.directory": "Profile directory",
"getting_started.documentation": "დოკუმენტაცია",
diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json
index e78b4cc4f..abf6cbbca 100644
--- a/app/javascript/mastodon/locales/kab.json
+++ b/app/javascript/mastodon/locales/kab.json
@@ -1,51 +1,51 @@
{
- "account.add_or_remove_from_list": "Rnu neγ kkes seg tebdarin",
+ "account.add_or_remove_from_list": "Rnu neɣ kkes seg tebdarin",
"account.badges.bot": "Aṛubut",
"account.badges.group": "Agraw",
"account.block": "Seḥbes @{name}",
"account.block_domain": "Ffer kra i d-yekkan seg {domain}",
"account.blocked": "Yettuseḥbes",
- "account.cancel_follow_request": "Sefsex asuter n weḍfaṛ",
+ "account.cancel_follow_request": "Sefsex asuter n uḍfaṛ",
"account.direct": "Izen usrid i @{name}",
- "account.domain_blocked": "Taγult yeffren",
- "account.edit_profile": "Ẓreg amaγnu",
- "account.endorse": "Welleh fell-as deg umaγnu-inek",
+ "account.domain_blocked": "Taɣult yeffren",
+ "account.edit_profile": "Ẓreg amaɣnu",
+ "account.endorse": "Welleh fell-as deg umaɣnu-inek",
"account.follow": "Ḍfeṛ",
"account.followers": "Imeḍfaṛen",
"account.followers.empty": "Ar tura, ulac yiwen i yeṭṭafaṛen amseqdac-agi.",
- "account.follows": "Ig ṭafaṛ",
+ "account.follows": "I yeṭṭafaṛ",
"account.follows.empty": "Ar tura, amseqdac-agi ur yeṭṭafaṛ yiwen.",
"account.follows_you": "Yeṭṭafaṛ-ik",
"account.hide_reblogs": "Ffer ayen i ibeṭṭu @{name}",
"account.last_status": "Armud aneggaru",
"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": "Allal n teywalt",
+ "account.media": "Amidya",
"account.mention": "Bder-d @{name}",
- "account.moved_to": "{name} ibeddel γer:",
+ "account.moved_to": "{name} ibeddel ɣer:",
"account.mute": "Sgugem @{name}",
- "account.mute_notifications": "Susem ilγa sγur @{name}",
+ "account.mute_notifications": "Sgugem tilɣa sγur @{name}",
"account.muted": "Yettwasgugem",
"account.never_active": "Werǧin",
"account.posts": "Tijewwaqin",
"account.posts_with_replies": "Tijewwaqin akked tririyin",
- "account.report": "Sewɛed @{name}",
- "account.requested": "Di laɛḍil ad yettwaqbel. Ssit iwakken ad yefsex usuter n weḍfar",
- "account.share": "Bḍu amaγnu n @{name}",
+ "account.report": "Cetki ɣef @{name}",
+ "account.requested": "Di laɛḍil ad yettwaqbel. Ssit i wakken ad yefsex usuter n uḍfar",
+ "account.share": "Bḍu amaɣnu n @{name}",
"account.show_reblogs": "Sken-d inebḍa n @{name}",
"account.unblock": "Serreḥ i @{name}",
- "account.unblock_domain": "Kkes tuffra i {domain}",
- "account.unendorse": "Ur ttwellih ara fell-as deg umaγnu-inek",
+ "account.unblock_domain": "Sken-d {domain}",
+ "account.unendorse": "Ur ttwellih ara fell-as deg umaɣnu-inek",
"account.unfollow": "Ur ṭṭafaṛ ara",
- "account.unmute": "Kkes asgugem γef @{name}",
- "account.unmute_notifications": "Serreḥ ilγa sγur @{name}",
- "alert.rate_limited.message": "Ma ulac aγilif ɛreḍ tikelt-nniḍen mbeɛd {retry_time, time, medium}.",
+ "account.unmute": "Kkes asgugem ɣef @{name}",
+ "account.unmute_notifications": "Serreḥ ilɣa sɣur @{name}",
+ "alert.rate_limited.message": "Ma ulac aɣilif ɛreḍ tikelt-nniḍen akka {retry_time, time, medium}.",
"alert.rate_limited.title": "Aktum s talast",
- "alert.unexpected.message": "Tella-d tuccḍa i γef ur nedmi ara.",
+ "alert.unexpected.message": "Yeḍra-d unezri ur netturaǧu ara.",
"alert.unexpected.title": "Ayhuh!",
- "announcement.announcement": "Ulγu",
+ "announcement.announcement": "Ulɣu",
"autosuggest_hashtag.per_week": "{count} i yimalas",
- "boost_modal.combo": "Tzemreḍ ad tetekkiḍ γef {combo} akken ad tessurfeḍ aya tikelt-nniḍen",
+ "boost_modal.combo": "Tzemreḍ ad tetekkiḍ ɣef {combo} akken ad tessurfeḍ aya tikelt-nniḍen",
"bundle_column_error.body": "Tella-d kra n tuccḍa mi d-yettali ugbur-agi.",
"bundle_column_error.retry": "Ɛreḍ tikelt-nniḍen",
"bundle_column_error.title": "Tuccḍa deg uẓeṭṭa",
@@ -56,25 +56,27 @@
"column.bookmarks": "Ticraḍ",
"column.community": "Tasuddemt tadigant",
"column.direct": "Iznan usriden",
- "column.directory": "Qelleb deg imaγnuten",
- "column.domain_blocks": "Tiγula yettwaffren",
+ "column.directory": "Inig deg imaɣnuten",
+ "column.domain_blocks": "Taɣulin yeffren",
"column.favourites": "Ismenyifen",
"column.follow_requests": "Isuturen n teḍfeṛt",
"column.home": "Agejdan",
"column.lists": "Tibdarin",
"column.mutes": "Imiḍanen yettwasgugmen",
- "column.notifications": "Tilγa",
+ "column.notifications": "Tilɣa",
"column.pins": "Tijewwaqin yettwasenṭḍen",
"column.public": "Tasuddemt tamatut",
- "column_back_button.label": "Tuγalin",
- "column_header.hide_settings": "Ffer iγewwaṛen",
- "column_header.moveLeft_settings": "Err ajgu γer tama tazelmaḍt",
- "column_header.moveRight_settings": "Err ajgu γer tama tayfust",
+ "column_back_button.label": "Tuɣalin",
+ "column_header.hide_settings": "Ffer iɣewwaṛen",
+ "column_header.moveLeft_settings": "Err ajgu ɣer tama tazelmaḍt",
+ "column_header.moveRight_settings": "Err ajgu ɣer tama tayfust",
"column_header.pin": "Senteḍ",
- "column_header.show_settings": "Sken iγewwaṛen",
+ "column_header.show_settings": "Sken iɣewwaṛen",
"column_header.unpin": "Kkes asenteḍ",
"column_subheading.settings": "Iγewwaṛen",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Allal n teywalt kan",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Tajewwaqt-a ad d-tettwasken kan i yimseqdacen i d-yettwabedren.",
"compose_form.direct_message_warning_learn_more": "Issin ugar",
"compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
@@ -102,7 +104,7 @@
"confirmations.delete.confirm": "Kkes",
"confirmations.delete.message": "Tebγiḍ s tidet ad tekkseḍ tasuffeγt-agi?",
"confirmations.delete_list.confirm": "Kkes",
- "confirmations.delete_list.message": "Tebγiḍ s tidet ad tekkseḍ tabdert-agi i lebda?",
+ "confirmations.delete_list.message": "Tebγiḍ s tidet ad tekkseḍ umuγ-agi i lebda?",
"confirmations.domain_block.confirm": "Ffer taγult meṛṛa",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
"confirmations.logout.confirm": "Ffeγ",
@@ -137,7 +139,7 @@
"emoji_button.people": "Medden",
"emoji_button.recent": "Wid yettuseqdacen s waṭas",
"emoji_button.search": "Nadi…",
- "emoji_button.search_results": "Igmaḍ u unadi",
+ "emoji_button.search_results": "Igemmaḍ n unadi",
"emoji_button.symbols": "Izamulen",
"emoji_button.travel": "Imeḍqan d Yinigen",
"empty_column.account_timeline": "Ulac tijewwaqin dagi!",
@@ -153,8 +155,8 @@
"empty_column.hashtag": "Ar tura ulac kra n ugbur yesɛan assaγ γer uhacṭag-agi.",
"empty_column.home": "Tasuddemt tagejdant n yisallen d tilemt! Ẓer {public} neγ nadi ad tafeḍ imseqdacen-nniḍen ad ten-ḍefṛeḍ.",
"empty_column.home.public_timeline": "tasuddemt tazayezt n yisallen",
- "empty_column.list": "Ar tura ur yelli kra deg tebdert-a. Ad d-yettwasken da ticki iɛeggalen n tebdert-a suffγen-d kra.",
- "empty_column.lists": "Ulac γur-k kra n tebdert yakan. Ad d-tettwasken da ticki tesluleḍ-d yiwet.",
+ "empty_column.list": "Ar tura ur yelli kra deg umuγ-a. Ad d-yettwasken da ticki iɛeggalen n wumuγ-a suffγen-d kra.",
+ "empty_column.lists": "Ulac γur-k kra n wumuγ yakan. Ad d-tettwasken da ticki tesluleḍ-d yiwet.",
"empty_column.mutes": "Ulac γur-k imseqdacen i yettwasgugmen.",
"empty_column.notifications": "Ulac γur-k tilγa. Sedmer akked yemdanen-nniḍen akken ad tebduḍ adiwenni.",
"empty_column.public": "Ulac kra da! Aru kra, neγ ḍfeṛ imdanen i yellan deg yiqeddacen-nniḍen akken ad d-teččar tsuddemt tazayezt",
@@ -164,6 +166,7 @@
"errors.unexpected_crash.report_issue": "Mmel ugur",
"follow_request.authorize": "Ssireg",
"follow_request.reject": "Agi",
+ "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.",
"getting_started.developers": "Ineflayen",
"getting_started.directory": "Akaram n imaγnuten",
"getting_started.documentation": "Amnir",
@@ -202,58 +205,58 @@
"introduction.interactions.reblog.headline": "Bḍu tikelt-nniḍen",
"introduction.interactions.reblog.text": "Tzemreḍ ad tebḍuḍ tijewwaqin n medden akk d yimeḍfaṛen-ik s beṭṭu-nsent tikelt-nniḍen.",
"introduction.interactions.reply.headline": "Err",
- "introduction.interactions.reply.text": "Tzemreḍ ad terreḍ γef tjewwakin-ik d tid n medden-nniḍen, d acu ara tent-id-iɛeqden ta deffir ta deg yiwen udiwenni.",
+ "introduction.interactions.reply.text": "Tzemreḍ ad terreḍ γef tjewwaqin-ik·im akked tid n medden-nniḍen, aya atent-id-icudd ta deffir ta deg yiwen udiwenni.",
"introduction.welcome.action": "Bdu!",
"introduction.welcome.headline": "Isurifen imenza",
"introduction.welcome.text": "Anṣuf γer fediverse! Deg kra n yimiren, ad tizmireḍ ad tzzuzreḍ iznan neγ ad tmeslayeḍ i yemddukkal deg waṭas n yiqeddacen. Maca aqeddac-agi, {domain}, mačči am wiyaḍ - deg-s i yella umaγnu-ik, ihi cfu γef yisem-is.",
"keyboard_shortcuts.back": "uγal ar deffir",
- "keyboard_shortcuts.blocked": "akken ad teldiḍ tabdert n yimseqdacen yettwasḥebsen",
+ "keyboard_shortcuts.blocked": "akken ad teldiḍ umuγ n yimseqdacen yettwasḥebsen",
"keyboard_shortcuts.boost": "i beṭṭu tikelt-nniḍen",
"keyboard_shortcuts.column": "to focus a status in one of the columns",
"keyboard_shortcuts.compose": "to focus the compose textarea",
"keyboard_shortcuts.description": "Aglam",
"keyboard_shortcuts.direct": "akken ad teldiḍ ajgu n yiznan usriden",
- "keyboard_shortcuts.down": "i kennu γer wadda n tebdert",
+ "keyboard_shortcuts.down": "i kennu γer wadda n wumuγ",
"keyboard_shortcuts.enter": "i tildin n tsuffeγt",
"keyboard_shortcuts.favourite": "akken ad ternuḍ γer yismenyifen",
- "keyboard_shortcuts.favourites": "i tildin n tebdert n yismenyifen",
+ "keyboard_shortcuts.favourites": "i tildin umuγ n yismenyifen",
"keyboard_shortcuts.federated": "i tildin n tsuddemt tamatut n yisallen",
"keyboard_shortcuts.heading": "Inegzumen n unasiw",
"keyboard_shortcuts.home": "i tildin n tsuddemt tagejdant n yisallen",
"keyboard_shortcuts.hotkey": "Inegzumen",
- "keyboard_shortcuts.legend": "to display this legend",
+ "keyboard_shortcuts.legend": "akken ad tsekneḍ taneffust-agi",
"keyboard_shortcuts.local": "i tildin n tsuddemt tadigant n yisallen",
"keyboard_shortcuts.mention": "akken ad d-bedreḍ ameskar",
- "keyboard_shortcuts.muted": "akken ad teldiḍ tabdert n yimseqdacen yettwasgugmen",
+ "keyboard_shortcuts.muted": "akken ad teldiḍ umuγ n yimseqdacen yettwasgugmen",
"keyboard_shortcuts.my_profile": "akken ad d-teldiḍ amaγnu-ik",
"keyboard_shortcuts.notifications": "akken ad d-teldiḍ ajgu n tilγa",
- "keyboard_shortcuts.open_media": "to open media",
- "keyboard_shortcuts.pinned": "i tildin n tebdert n tjewwaqin yettwasentḍen",
+ "keyboard_shortcuts.open_media": "i taɣwalin yeldin ",
+ "keyboard_shortcuts.pinned": "akken ad teldiḍ umuγ n tjewwiqin yettwasentḍen",
"keyboard_shortcuts.profile": "akken ad d-teldiḍ amaγnu n umeskar",
"keyboard_shortcuts.reply": "i tririt",
- "keyboard_shortcuts.requests": "akken ad d-teldiḍ tabdert n yisuturen n teḍfeṛt",
+ "keyboard_shortcuts.requests": "akken ad d-teldiḍ umuγ n yisuturen n teḍfeṛt",
"keyboard_shortcuts.search": "to focus search",
"keyboard_shortcuts.start": "akken ad d-teldiḍ ajgu n \"bdu\"",
"keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
"keyboard_shortcuts.toggle_sensitivity": "i teskent/tuffra n yimidyaten",
"keyboard_shortcuts.toot": "i wakken attebdud tajewwaqt tamaynut",
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
- "keyboard_shortcuts.up": "i tulin γer ufella n tebdert",
+ "keyboard_shortcuts.up": "i tulin γer d asawen n wumuγ",
"lightbox.close": "Mdel",
"lightbox.next": "Γer zdat",
"lightbox.previous": "Γer deffir",
"lightbox.view_context": "Ẓer amnaḍ",
- "lists.account.add": "Rnu γer tabdart",
- "lists.account.remove": "Kkes seg tebdart",
- "lists.delete": "Kkes tabdert",
- "lists.edit": "Ẓreg tabdert",
+ "lists.account.add": "Rnu γer wumuγ",
+ "lists.account.remove": "Kkes seg umuγ",
+ "lists.delete": "Kkes umuγ",
+ "lists.edit": "Ẓreg umuγ",
"lists.edit.submit": "Beddel azwel",
- "lists.new.create": "Rnu tabdart",
- "lists.new.title_placeholder": "Azwel n tebdert tamaynut",
+ "lists.new.create": "Rnu umuγ",
+ "lists.new.title_placeholder": "Azwel amaynut n wumuγ",
"lists.search": "Nadi gar yemdanen i teṭṭafaṛeḍ",
- "lists.subheading": "Tibdarin-ik·im",
+ "lists.subheading": "Umuγen-ik·im",
"load_pending": "{count, plural, one {# n uferdis amaynut} other {# n yiferdisen imaynuten}}",
- "loading_indicator.label": "Yessalay-ed…",
+ "loading_indicator.label": "Yessalay-d…",
"media_gallery.toggle_visible": "Sken / Ffer",
"missing_indicator.label": "Ulac-it",
"missing_indicator.sublabel": "Ur nufi ara aγbalu-a",
@@ -271,9 +274,9 @@
"navigation_bar.filters": "Awalen i yettwasgugmen",
"navigation_bar.follow_requests": "Isuturen n teḍfeṛt",
"navigation_bar.follows_and_followers": "Imeḍfaṛen akked wid i teṭṭafaṛeḍ",
- "navigation_bar.info": "Γef uqeddac-a",
+ "navigation_bar.info": "Ɣef uqeddac-agi",
"navigation_bar.keyboard_shortcuts": "Inegzumen n unasiw",
- "navigation_bar.lists": "Tibdarin",
+ "navigation_bar.lists": "Umuγen",
"navigation_bar.logout": "Ffeγ",
"navigation_bar.mutes": "Iseqdacen yettwasusmen",
"navigation_bar.personal": "Udmawan",
@@ -326,15 +329,15 @@
"privacy.public.long": "Bḍu deg tsuddemt tazayezt",
"privacy.public.short": "Azayez",
"privacy.unlisted.long": "Ur beṭṭu ara deg tsuddemt tazayezt",
- "privacy.unlisted.short": "War tabdert",
+ "privacy.unlisted.short": "War umuγ",
"refresh": "Smiren",
- "regeneration_indicator.label": "Yessalay-ed…",
+ "regeneration_indicator.label": "Yessalay-d…",
"regeneration_indicator.sublabel": "Tasuddemt tagejdant ara d-tettwaheggay!",
"relative_time.days": "{number}u",
- "relative_time.hours": "{number}a",
+ "relative_time.hours": "{number}isr",
"relative_time.just_now": "tura",
- "relative_time.minutes": "{number}t",
- "relative_time.seconds": "{number}t",
+ "relative_time.minutes": "{number}tis",
+ "relative_time.seconds": "{number}tas",
"relative_time.today": "assa",
"reply_indicator.cancel": "Sefsex",
"report.forward": "Bren-it γeṛ {target}",
@@ -391,13 +394,13 @@
"status.share": "Bḍu",
"status.show_less": "Sken-d drus",
"status.show_less_all": "Semẓi akk tisuffγin",
- "status.show_more": "Sken-ed ugar",
+ "status.show_more": "Sken-d ugar",
"status.show_more_all": "Ẓerr ugar lebda",
- "status.show_thread": "Sken-ed lxiḍ",
+ "status.show_thread": "Sken-d lxiḍ",
"status.uncached_media_warning": "Ulac-it",
"status.unmute_conversation": "Kkes asgugem n udiwenni",
"status.unpin": "Kkes asenteḍ seg umaγnu",
- "suggestions.dismiss": "Dismiss suggestion",
+ "suggestions.dismiss": "Sefsex asumer",
"suggestions.header": "Ahat ad tcelgeḍ deg…",
"tabs_bar.federated_timeline": "Amatu",
"tabs_bar.home": "Agejdan",
@@ -408,10 +411,10 @@
"time_remaining.hours": "Mazal {number, plural, one {# n usrag} other {# n yesragen}}",
"time_remaining.minutes": "Mazal {number, plural, one {# n tesdat} other {# n tesdatin}}",
"time_remaining.moments": "Moments remaining",
- "time_remaining.seconds": "Mazal {number, plural, one {# n tasint} other {# n tsinin}}",
+ "time_remaining.seconds": "Mazal {number, plural, one {# n tasint} other {# n tsinin}} id yugran",
"trends.count_by_accounts": "{count} {rawCount, plural, one {n umdan} other {n yemdanen}} i yettmeslayen",
"trends.trending_now": "Trending now",
- "ui.beforeunload": "Arewway-ik·im ad iruḥ ma yella tefeγ-ed deg Maṣṭudun.",
+ "ui.beforeunload": "Arewway-ik·im ad iruḥ ma yella tefeɣ-d deg Maṣṭudun.",
"upload_area.title": "Zuḥeb rnu sers i tasalyt",
"upload_button.label": "Rnu Taγwalt ({formats})",
"upload_error.limit": "File upload limit exceeded.",
diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json
index 3430de2b4..a7fd113eb 100644
--- a/app/javascript/mastodon/locales/kk.json
+++ b/app/javascript/mastodon/locales/kk.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "Баптауларды көрсет",
"column_header.unpin": "Алып тастау",
"column_subheading.settings": "Баптаулар",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Тек медиа",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Тек аталған қолданушыларға.",
"compose_form.direct_message_warning_learn_more": "Көбірек білу",
"compose_form.hashtag_warning": "Бұл пост іздеуде хэштегпен шықпайды, өйткені ол бәріне ашық емес. Тек ашық жазбаларды ғана хэштег арқылы іздеп табуға болады.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Авторизация",
"follow_request.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.",
"getting_started.developers": "Жасаушылар тобы",
"getting_started.directory": "Профильдер каталогы",
"getting_started.documentation": "Құжаттама",
diff --git a/app/javascript/mastodon/locales/kn.json b/app/javascript/mastodon/locales/kn.json
index 5385de456..dd538b7ea 100644
--- a/app/javascript/mastodon/locales/kn.json
+++ b/app/javascript/mastodon/locales/kn.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "Show settings",
"column_header.unpin": "Unpin",
"column_subheading.settings": "Settings",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Media only",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
"compose_form.direct_message_warning_learn_more": "Learn more",
"compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
@@ -164,6 +166,7 @@
"errors.unexpected_crash.report_issue": "Report issue",
"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.",
"getting_started.developers": "Developers",
"getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
@@ -254,7 +257,7 @@
"lists.subheading": "Your lists",
"load_pending": "{count, plural, one {# new item} other {# new items}}",
"loading_indicator.label": "Loading...",
- "media_gallery.toggle_visible": "Toggle visibility",
+ "media_gallery.toggle_visible": "Hide media",
"missing_indicator.label": "Not found",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.hide_notifications": "Hide notifications from this user?",
diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json
index 2f040818d..f237a509d 100644
--- a/app/javascript/mastodon/locales/ko.json
+++ b/app/javascript/mastodon/locales/ko.json
@@ -53,7 +53,7 @@
"bundle_modal_error.message": "컴포넌트를 불러오는 과정에서 문제가 발생했습니다.",
"bundle_modal_error.retry": "다시 시도",
"column.blocks": "차단 중인 사용자",
- "column.bookmarks": "갈무리",
+ "column.bookmarks": "보관함",
"column.community": "로컬 타임라인",
"column.direct": "다이렉트 메시지",
"column.directory": "프로필 둘러보기",
@@ -74,7 +74,9 @@
"column_header.show_settings": "설정 보이기",
"column_header.unpin": "고정 해제",
"column_subheading.settings": "설정",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "미디어만",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "이 툿은 멘션 된 유저들에게만 보여집니다.",
"compose_form.direct_message_warning_learn_more": "더 알아보기",
"compose_form.hashtag_warning": "이 툿은 어떤 해시태그로도 검색 되지 않습니다. 전체공개로 게시 된 툿만이 해시태그로 검색 될 수 있습니다.",
@@ -143,7 +145,7 @@
"empty_column.account_timeline": "여긴 툿이 없어요!",
"empty_column.account_unavailable": "프로필 사용 불가",
"empty_column.blocks": "아직 아무도 차단하지 않았습니다.",
- "empty_column.bookmarked_statuses": "아직 갈무리한 툿이 없습니다. 툿을 갈무리하면 여기에 나타납니다.",
+ "empty_column.bookmarked_statuses": "아직 보관한 툿이 없습니다. 툿을 보관하면 여기에 나타납니다.",
"empty_column.community": "로컬 타임라인에 아무 것도 없습니다. 아무거나 적어 보세요!",
"empty_column.direct": "아직 다이렉트 메시지가 없습니다. 다이렉트 메시지를 보내거나 받은 경우, 여기에 표시 됩니다.",
"empty_column.domain_blocks": "아직 숨겨진 도메인이 없습니다.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "허가",
"follow_request.reject": "거부",
+ "follow_requests.unlocked_explanation": "당신의 계정이 잠기지 않았다고 할 지라도, {domain}의 스탭은 당신이 이 계정들로부터의 팔로우 요청을 수동으로 확인하길 원한다고 생각했습니다.",
"getting_started.developers": "개발자",
"getting_started.directory": "프로필 책자",
"getting_started.documentation": "문서",
@@ -265,7 +268,7 @@
"mute_modal.hide_notifications": "이 사용자로부터의 알림을 숨기시겠습니까?",
"navigation_bar.apps": "모바일 앱",
"navigation_bar.blocks": "차단한 사용자",
- "navigation_bar.bookmarks": "갈무리",
+ "navigation_bar.bookmarks": "보관함",
"navigation_bar.community_timeline": "로컬 타임라인",
"navigation_bar.compose": "새 툿 작성",
"navigation_bar.direct": "다이렉트 메시지",
@@ -363,7 +366,7 @@
"status.admin_account": "@{name}에 대한 중재 화면 열기",
"status.admin_status": "중재 화면에서 이 게시물 열기",
"status.block": "@{name} 차단",
- "status.bookmark": "갈무리",
+ "status.bookmark": "보관",
"status.cancel_reblog_private": "부스트 취소",
"status.cannot_reblog": "이 포스트는 부스트 할 수 없습니다",
"status.copy": "게시물 링크 복사",
@@ -389,7 +392,7 @@
"status.reblogged_by": "{name}님이 부스트 했습니다",
"status.reblogs.empty": "아직 아무도 이 툿을 부스트하지 않았습니다. 부스트 한 사람들이 여기에 표시 됩니다.",
"status.redraft": "지우고 다시 쓰기",
- "status.remove_bookmark": "갈무리 삭제",
+ "status.remove_bookmark": "보관한 툿 삭제",
"status.reply": "답장",
"status.replyAll": "전원에게 답장",
"status.report": "신고",
@@ -404,7 +407,7 @@
"status.unmute_conversation": "이 대화의 뮤트 해제하기",
"status.unpin": "고정 해제",
"suggestions.dismiss": "추천 지우기",
- "suggestions.header": "이것에 관심이 있을 것 같습니다…",
+ "suggestions.header": "여기에 관심이 있을 것 같습니다…",
"tabs_bar.federated_timeline": "연합",
"tabs_bar.home": "홈",
"tabs_bar.local_timeline": "로컬",
diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json
index 48dc1eb2b..1dcebc819 100644
--- a/app/javascript/mastodon/locales/lt.json
+++ b/app/javascript/mastodon/locales/lt.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "Show settings",
"column_header.unpin": "Unpin",
"column_subheading.settings": "Settings",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Media only",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
"compose_form.direct_message_warning_learn_more": "Learn more",
"compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"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.",
"getting_started.developers": "Developers",
"getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
@@ -259,7 +262,7 @@
"lists.subheading": "Your lists",
"load_pending": "{count, plural, one {# new item} other {# new items}}",
"loading_indicator.label": "Loading...",
- "media_gallery.toggle_visible": "Toggle visibility",
+ "media_gallery.toggle_visible": "Hide media",
"missing_indicator.label": "Not found",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.hide_notifications": "Hide notifications from this user?",
diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json
index 7c0f0d4c1..43acc4e08 100644
--- a/app/javascript/mastodon/locales/lv.json
+++ b/app/javascript/mastodon/locales/lv.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "Rādīt iestatījumus",
"column_header.unpin": "Atspraust",
"column_subheading.settings": "Iestatījumi",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Tikai mēdiji",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Šis ziņojums tiks nosūtīts tikai pieminētajiem lietotājiem.",
"compose_form.direct_message_warning_learn_more": "Papildus informācija",
"compose_form.hashtag_warning": "Ziņojumu nebūs iespējams atrast zem haštagiem jo tas nav publisks. Tikai publiskos ziņojumus ir iespējams meklēt pēc tiem.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Autorizēt",
"follow_request.reject": "Noraidīt",
+ "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.",
"getting_started.developers": "Developers",
"getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
@@ -259,7 +262,7 @@
"lists.subheading": "Your lists",
"load_pending": "{count, plural, one {# new item} other {# new items}}",
"loading_indicator.label": "Loading...",
- "media_gallery.toggle_visible": "Toggle visibility",
+ "media_gallery.toggle_visible": "Hide media",
"missing_indicator.label": "Not found",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.hide_notifications": "Hide notifications from this user?",
diff --git a/app/javascript/mastodon/locales/mk.json b/app/javascript/mastodon/locales/mk.json
index 4a1f736cf..ef6895d97 100644
--- a/app/javascript/mastodon/locales/mk.json
+++ b/app/javascript/mastodon/locales/mk.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "Прикажи подесувања",
"column_header.unpin": "Unpin",
"column_subheading.settings": "Подесувања",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Само медиа",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
"compose_form.direct_message_warning_learn_more": "Научи повеќе",
"compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
@@ -164,6 +166,7 @@
"errors.unexpected_crash.report_issue": "Пријавете проблем",
"follow_request.authorize": "Одобри",
"follow_request.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.",
"getting_started.developers": "Програмери",
"getting_started.directory": "Профил директориум",
"getting_started.documentation": "Документација",
@@ -254,7 +257,7 @@
"lists.subheading": "Your lists",
"load_pending": "{count, plural, one {# new item} other {# new items}}",
"loading_indicator.label": "Loading...",
- "media_gallery.toggle_visible": "Toggle visibility",
+ "media_gallery.toggle_visible": "Hide media",
"missing_indicator.label": "Not found",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.hide_notifications": "Hide notifications from this user?",
diff --git a/app/javascript/mastodon/locales/ml.json b/app/javascript/mastodon/locales/ml.json
index 58bb9b723..ca92c18a7 100644
--- a/app/javascript/mastodon/locales/ml.json
+++ b/app/javascript/mastodon/locales/ml.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "ക്രമീകരണങ്ങൾ കാണിക്കുക",
"column_header.unpin": "ഇളക്കി മാറ്റുക",
"column_subheading.settings": "ക്രമീകരണങ്ങള്",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "മാധ്യമങ്ങൾ മാത്രം",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "പരാമർശിക്കപ്പെട്ടിരിക്കുന്ന ഉപയോഗ്താക്കൾക്കെ ഈ ടൂട്ട് അയക്കപ്പെടുകയുള്ളു.",
"compose_form.direct_message_warning_learn_more": "കൂടുതൽ പഠിക്കുക",
"compose_form.hashtag_warning": "ഈ ടൂട്ട് പട്ടികയിൽ ഇല്ലാത്തതിനാൽ ഒരു ചർച്ചാവിഷയത്തിന്റെ പട്ടികയിലും പെടുകയില്ല. പരസ്യമായ ടൂട്ടുകൾ മാത്രമേ ചർച്ചാവിഷയം അടിസ്ഥാനമാക്കി തിരയുവാൻ സാധിക്കുകയുള്ളു.",
@@ -164,6 +166,7 @@
"errors.unexpected_crash.report_issue": "പ്രശ്നം അറിയിക്കുക",
"follow_request.authorize": "ചുമതലപ്പെടുത്തുക",
"follow_request.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.",
"getting_started.developers": "വികസിപ്പിക്കുന്നവർ",
"getting_started.directory": "രൂപരേഖ നാമഗൃഹസൂചി",
"getting_started.documentation": "രേഖാ സമാഹരണം",
@@ -254,7 +257,7 @@
"lists.subheading": "Your lists",
"load_pending": "{count, plural, one {# new item} other {# new items}}",
"loading_indicator.label": "Loading...",
- "media_gallery.toggle_visible": "Toggle visibility",
+ "media_gallery.toggle_visible": "Hide media",
"missing_indicator.label": "Not found",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.hide_notifications": "Hide notifications from this user?",
diff --git a/app/javascript/mastodon/locales/mr.json b/app/javascript/mastodon/locales/mr.json
index 8c0fed9b0..1807e064d 100644
--- a/app/javascript/mastodon/locales/mr.json
+++ b/app/javascript/mastodon/locales/mr.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "सेटिंग्स दाखवा",
"column_header.unpin": "अनपिन करा",
"column_subheading.settings": "सेटिंग्ज",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "केवळ मीडिया",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
"compose_form.direct_message_warning_learn_more": "अधिक जाणून घ्या",
"compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
@@ -164,6 +166,7 @@
"errors.unexpected_crash.report_issue": "Report issue",
"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.",
"getting_started.developers": "Developers",
"getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
@@ -254,7 +257,7 @@
"lists.subheading": "Your lists",
"load_pending": "{count, plural, one {# new item} other {# new items}}",
"loading_indicator.label": "Loading...",
- "media_gallery.toggle_visible": "Toggle visibility",
+ "media_gallery.toggle_visible": "Hide media",
"missing_indicator.label": "Not found",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.hide_notifications": "Hide notifications from this user?",
diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json
index a302274fd..e482e7536 100644
--- a/app/javascript/mastodon/locales/ms.json
+++ b/app/javascript/mastodon/locales/ms.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "Show settings",
"column_header.unpin": "Unpin",
"column_subheading.settings": "Settings",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Media only",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
"compose_form.direct_message_warning_learn_more": "Learn more",
"compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"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.",
"getting_started.developers": "Developers",
"getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
@@ -259,7 +262,7 @@
"lists.subheading": "Your lists",
"load_pending": "{count, plural, one {# new item} other {# new items}}",
"loading_indicator.label": "Loading...",
- "media_gallery.toggle_visible": "Toggle visibility",
+ "media_gallery.toggle_visible": "Hide media",
"missing_indicator.label": "Not found",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.hide_notifications": "Hide notifications from this user?",
diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json
index fce817445..032277967 100644
--- a/app/javascript/mastodon/locales/nl.json
+++ b/app/javascript/mastodon/locales/nl.json
@@ -2,11 +2,11 @@
"account.add_or_remove_from_list": "Toevoegen of verwijderen vanuit lijsten",
"account.badges.bot": "Bot",
"account.badges.group": "Groep",
- "account.block": "Blokkeer @{name}",
- "account.block_domain": "Verberg alles van {domain}",
+ "account.block": "@{name} blokkeren",
+ "account.block_domain": "Alles van {domain} verbergen",
"account.blocked": "Geblokkeerd",
"account.cancel_follow_request": "Volgverzoek annuleren",
- "account.direct": "Direct bericht @{name}",
+ "account.direct": "@{name} een direct bericht sturen",
"account.domain_blocked": "Domein verborgen",
"account.edit_profile": "Profiel bewerken",
"account.endorse": "Op profiel weergeven",
@@ -21,19 +21,19 @@
"account.link_verified_on": "Eigendom van deze link is gecontroleerd op {date}",
"account.locked_info": "De privacystatus van dit account is op besloten gezet. De eigenaar bepaalt handmatig wie hen kan volgen.",
"account.media": "Media",
- "account.mention": "Vermeld @{name}",
+ "account.mention": "@{name} vermelden",
"account.moved_to": "{name} is verhuisd naar:",
- "account.mute": "Negeer @{name}",
- "account.mute_notifications": "Negeer meldingen van @{name}",
+ "account.mute": "@{name} negeren",
+ "account.mute_notifications": "Meldingen van @{name} negeren",
"account.muted": "Genegeerd",
"account.never_active": "Nooit",
"account.posts": "Toots",
"account.posts_with_replies": "Toots en reacties",
- "account.report": "Rapporteer @{name}",
+ "account.report": "@{name} rapporteren",
"account.requested": "Wacht op goedkeuring. Klik om het volgverzoek te annuleren",
"account.share": "Profiel van @{name} delen",
"account.show_reblogs": "Toon boosts van @{name}",
- "account.unblock": "Deblokkeer @{name}",
+ "account.unblock": "@{name} deblokkeren",
"account.unblock_domain": "{domain} niet langer verbergen",
"account.unendorse": "Niet op profiel weergeven",
"account.unfollow": "Ontvolgen",
@@ -74,7 +74,9 @@
"column_header.show_settings": "Instellingen tonen",
"column_header.unpin": "Losmaken",
"column_subheading.settings": "Instellingen",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Alleen media",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Deze toot wordt alleen naar vermelde gebruikers verstuurd. Echter, de beheerders en moderatoren van jouw en de ontvangende server(s) kunnen dit bericht mogelijk wel bekijken.",
"compose_form.direct_message_warning_learn_more": "Meer leren",
"compose_form.hashtag_warning": "Deze toot valt niet onder een hashtag te bekijken, omdat deze niet op openbare tijdlijnen wordt getoond. Alleen openbare toots kunnen via hashtags gevonden worden.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Goedkeuren",
"follow_request.reject": "Afkeuren",
+ "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.",
"getting_started.developers": "Ontwikkelaars",
"getting_started.directory": "Gebruikersgids",
"getting_started.documentation": "Documentatie",
@@ -259,7 +262,7 @@
"lists.subheading": "Jouw lijsten",
"load_pending": "{count, plural, one {# nieuw item} other {# nieuwe items}}",
"loading_indicator.label": "Laden…",
- "media_gallery.toggle_visible": "Media wel/niet tonen",
+ "media_gallery.toggle_visible": "Media verbergen",
"missing_indicator.label": "Niet gevonden",
"missing_indicator.sublabel": "Deze hulpbron kan niet gevonden worden",
"mute_modal.hide_notifications": "Verberg meldingen van deze persoon?",
@@ -328,9 +331,9 @@
"privacy.direct.short": "Direct",
"privacy.private.long": "Alleen aan volgers tonen",
"privacy.private.short": "Alleen volgers",
- "privacy.public.long": "Op openbare tijdlijnen tonen",
+ "privacy.public.long": "Voor iedereen zichtbaar en op openbare tijdlijnen tonen",
"privacy.public.short": "Openbaar",
- "privacy.unlisted.long": "Niet op openbare tijdlijnen tonen",
+ "privacy.unlisted.long": "Voor iedereen zichtbaar, maar niet op openbare tijdlijnen tonen",
"privacy.unlisted.short": "Minder openbaar",
"refresh": "Vernieuwen",
"regeneration_indicator.label": "Aan het laden…",
@@ -362,23 +365,23 @@
"search_results.total": "{count, number} {count, plural, one {resultaat} other {resultaten}}",
"status.admin_account": "Moderatie-omgeving van @{name} openen",
"status.admin_status": "Deze toot in de moderatie-omgeving openen",
- "status.block": "Blokkeer @{name}",
+ "status.block": "@{name} blokkeren",
"status.bookmark": "Bladwijzer toevoegen",
"status.cancel_reblog_private": "Niet langer boosten",
"status.cannot_reblog": "Deze toot kan niet geboost worden",
"status.copy": "Link naar toot kopiëren",
"status.delete": "Verwijderen",
"status.detailed_status": "Uitgebreide gespreksweergave",
- "status.direct": "Direct bericht @{name}",
+ "status.direct": "@{name} een direct bericht sturen",
"status.embed": "Insluiten",
"status.favourite": "Favoriet",
"status.filtered": "Gefilterd",
"status.load_more": "Meer laden",
"status.local_only": "This post is only visible by other users of your instance",
"status.media_hidden": "Media verborgen",
- "status.mention": "Vermeld @{name}",
+ "status.mention": "@{name} vermelden",
"status.more": "Meer",
- "status.mute": "Negeer @{name}",
+ "status.mute": "@{name} negeren",
"status.mute_conversation": "Negeer gesprek",
"status.open": "Uitgebreide toot tonen",
"status.pin": "Aan profielpagina vastmaken",
@@ -392,7 +395,7 @@
"status.remove_bookmark": "Bladwijzer verwijderen",
"status.reply": "Reageren",
"status.replyAll": "Reageer op iedereen",
- "status.report": "Rapporteer @{name}",
+ "status.report": "@{name} rapporteren",
"status.sensitive_warning": "Gevoelige inhoud",
"status.share": "Delen",
"status.show_less": "Minder tonen",
diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json
index 9dd48767d..0c1fd8bbf 100644
--- a/app/javascript/mastodon/locales/nn.json
+++ b/app/javascript/mastodon/locales/nn.json
@@ -43,7 +43,7 @@
"alert.rate_limited.title": "Begrensa rate",
"alert.unexpected.message": "Eit uventa problem oppstod.",
"alert.unexpected.title": "Oi sann!",
- "announcement.announcement": "Kunngjøring",
+ "announcement.announcement": "Kunngjering",
"autosuggest_hashtag.per_week": "{count} per veke",
"boost_modal.combo": "Du kan trykkja {combo} for å hoppa over dette neste gong",
"bundle_column_error.body": "Noko gjekk gale mens denne komponenten vart lasta ned.",
@@ -74,7 +74,9 @@
"column_header.show_settings": "Vis innstillingar",
"column_header.unpin": "Løys",
"column_subheading.settings": "Innstillingar",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Berre media",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Dette tutet vert berre synleg for nemnde brukarar.",
"compose_form.direct_message_warning_learn_more": "Lær meir",
"compose_form.hashtag_warning": "Dette tutet vert ikkje oppført under nokon emneknagg sidan det ikkje er oppført. Berre offentlege tut kan verta søkt etter med emneknagg.",
@@ -85,8 +87,8 @@
"compose_form.poll.duration": "Varigskap for røysting",
"compose_form.poll.option_placeholder": "Val {number}",
"compose_form.poll.remove_option": "Ta vekk dette valet",
- "compose_form.poll.switch_to_multiple": "Endre avstemning til å tillate flere valg",
- "compose_form.poll.switch_to_single": "Endre avstemning til å tillate ett valg",
+ "compose_form.poll.switch_to_multiple": "Endre avstemninga til å tillate fleirval",
+ "compose_form.poll.switch_to_single": "Endra avstemninga til tillate berre eitt val",
"compose_form.publish": "Tut",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.hide": "Merk medium som sensitivt",
@@ -164,6 +166,7 @@
"errors.unexpected_crash.report_issue": "Rapporter problem",
"follow_request.authorize": "Autoriser",
"follow_request.reject": "Avvis",
+ "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.",
"getting_started.developers": "Utviklarar",
"getting_started.directory": "Profilkatalog",
"getting_started.documentation": "Dokumentasjon",
@@ -184,8 +187,8 @@
"home.column_settings.basic": "Enkelt",
"home.column_settings.show_reblogs": "Vis framhevingar",
"home.column_settings.show_replies": "Vis svar",
- "home.hide_announcements": "Skjul kunngjøring",
- "home.show_announcements": "Vis kunngjøring",
+ "home.hide_announcements": "Skjul kunngjeringar",
+ "home.show_announcements": "Vis kunngjeringar",
"intervals.full.days": "{number, plural, one {# dag} other {# dagar}}",
"intervals.full.hours": "{number, plural, one {# time} other {# timar}}",
"intervals.full.minutes": "{number, plural, one {# minutt} other {# minutt}}",
@@ -237,7 +240,7 @@
"keyboard_shortcuts.toggle_hidden": "for å visa/gøyma tekst bak innhaldsvarsel",
"keyboard_shortcuts.toggle_sensitivity": "for å visa/gøyma media",
"keyboard_shortcuts.toot": "for å laga ein heilt ny tut",
- "keyboard_shortcuts.unfocus": "å ufokusere komponerings-/søkefeltet",
+ "keyboard_shortcuts.unfocus": "for å fokusere vekk skrive-/søkefeltet",
"keyboard_shortcuts.up": "for å flytta seg opp på lista",
"lightbox.close": "Lukk att",
"lightbox.next": "Neste",
@@ -416,11 +419,11 @@
"upload_button.label": "Legg til medium ({formats})",
"upload_error.limit": "Du har gått over opplastingsgrensa.",
"upload_error.poll": "Filopplasting ikkje tillate med meiningsmålingar.",
- "upload_form.audio_description": "Beskriv det for folk med hørselstap",
+ "upload_form.audio_description": "Grei ut for folk med nedsett høyrsel",
"upload_form.description": "Skildr for synshemja",
"upload_form.edit": "Rediger",
"upload_form.undo": "Slett",
- "upload_form.video_description": "Beskriv det for folk med hørselstap eller synshemminger",
+ "upload_form.video_description": "Greit ut for folk med nedsett høyrsel eller syn",
"upload_modal.analyzing_picture": "Analyserer bilete…",
"upload_modal.apply": "Bruk",
"upload_modal.description_placeholder": "Ein rask brun rev hoppar over den late hunden",
diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json
index 638faec90..00ca30d94 100644
--- a/app/javascript/mastodon/locales/no.json
+++ b/app/javascript/mastodon/locales/no.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "Vis innstillinger",
"column_header.unpin": "Løsne",
"column_subheading.settings": "Innstillinger",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Media only",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
"compose_form.direct_message_warning_learn_more": "Lær mer",
"compose_form.hashtag_warning": "Denne tuten blir ikke listet under noen emneknagger da den er ulistet. Kun offentlige tuter kan søktes etter med emneknagg.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Autorisér",
"follow_request.reject": "Avvis",
+ "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.",
"getting_started.developers": "Utviklere",
"getting_started.directory": "Profilmappe",
"getting_started.documentation": "Dokumentasjon",
diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json
index 84567981d..bc0c3f43e 100644
--- a/app/javascript/mastodon/locales/oc.json
+++ b/app/javascript/mastodon/locales/oc.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "Mostrar los paramètres",
"column_header.unpin": "Despenjar",
"column_subheading.settings": "Paramètres",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Solament los mèdias",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Sols los mencionats poiràn veire aqueste tut.",
"compose_form.direct_message_warning_learn_more": "Ne saber mai",
"compose_form.hashtag_warning": "Aqueste tut serà pas ligat a cap d’etiqueta estant qu’es pas listat. Òm pòt pas cercar que los tuts publics per etiqueta.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Acceptar",
"follow_request.reject": "Regetar",
+ "follow_requests.unlocked_explanation": "Encara que vòstre compte siasque pas verrolhat, la còla de {domain} pensèt que volriatz benlèu repassar las demandas d’abonament d’aquestes comptes.",
"getting_started.developers": "Desvelopaires",
"getting_started.directory": "Annuari de perfils",
"getting_started.documentation": "Documentacion",
@@ -432,7 +435,7 @@
"upload_modal.description_placeholder": "Lo dròlle bilingüe manja un yaourt de ròcs exagonals e kiwis verds farà un an mai",
"upload_modal.detect_text": "Detectar lo tèxt de l’imatge",
"upload_modal.edit_media": "Modificar lo mèdia",
- "upload_modal.hint": "Clicatz o lissatz lo cercle de l’apercebut per causir lo ponch que serà totjorn visible dins las vinhetas.",
+ "upload_modal.hint": "Clicatz o lisatz lo cercle de l’apercebut per causir lo ponch que serà totjorn visible dins las vinhetas.",
"upload_modal.preview_label": "Apercebut ({ratio})",
"upload_progress.label": "Mandadís…",
"video.close": "Tampar la vidèo",
diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json
index f5ce38ba5..9fc13b713 100644
--- a/app/javascript/mastodon/locales/pl.json
+++ b/app/javascript/mastodon/locales/pl.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "Pokaż ustawienia",
"column_header.unpin": "Cofnij przypięcie",
"column_subheading.settings": "Ustawienia",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Tylko zawartość multimedialna",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Ten wpis będzie widoczny tylko dla wszystkich wspomnianych użytkowników.",
"compose_form.direct_message_warning_learn_more": "Dowiedz się więcej",
"compose_form.hashtag_warning": "Ten wpis nie będzie widoczny pod podanymi hashtagami, ponieważ jest oznaczony jako niewidoczny. Tylko publiczne wpisy mogą zostać znalezione z użyciem hashtagów.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"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ść śledzenia.",
"getting_started.developers": "Dla programistów",
"getting_started.directory": "Katalog profilów",
"getting_started.documentation": "Dokumentacja",
diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json
index 3f7f8f1ae..145115347 100644
--- a/app/javascript/mastodon/locales/pt-BR.json
+++ b/app/javascript/mastodon/locales/pt-BR.json
@@ -1,9 +1,9 @@
{
- "account.add_or_remove_from_list": "Adicionar ou remover das listas",
+ "account.add_or_remove_from_list": "Adicionar ou Remover de listas",
"account.badges.bot": "Robô",
"account.badges.group": "Grupo",
"account.block": "Bloquear @{name}",
- "account.block_domain": "Bloquear {domain}",
+ "account.block_domain": "Bloquear domínio {domain}",
"account.blocked": "Bloqueado",
"account.cancel_follow_request": "Cancelar solicitação para seguir",
"account.direct": "Enviar toot direto para @{name}",
@@ -17,8 +17,8 @@
"account.follows.empty": "Nada aqui.",
"account.follows_you": "Segue você",
"account.hide_reblogs": "Ocultar boosts de @{name}",
- "account.last_status": "Última atividade",
- "account.link_verified_on": "O link foi verificado em {date}",
+ "account.last_status": "Ativo pela última vez",
+ "account.link_verified_on": "Posse deste link foi verificada em {date}",
"account.locked_info": "Esta conta está trancada. Sua solicitação para seguir requer aprovação manual do usuário.",
"account.media": "Mídia",
"account.mention": "Mencionar @{name}",
@@ -34,18 +34,18 @@
"account.share": "Compartilhar perfil de @{name}",
"account.show_reblogs": "Mostrar boosts de @{name}",
"account.unblock": "Desbloquear @{name}",
- "account.unblock_domain": "Desbloquear {domain}",
+ "account.unblock_domain": "Desbloquear domínio {domain}",
"account.unendorse": "Não destacar no perfil",
"account.unfollow": "Deixar de seguir",
- "account.unmute": "Desfazer silêncio de @{name}",
+ "account.unmute": "Tirar @{name} do mudo",
"account.unmute_notifications": "Mostrar notificações de @{name}",
"alert.rate_limited.message": "Por favor tente novamente após {retry_time, time, medium}.",
- "alert.rate_limited.title": "Tentativas limitadas",
+ "alert.rate_limited.title": "Frequência limitada",
"alert.unexpected.message": "Ocorreu um erro inesperado.",
"alert.unexpected.title": "Eita!",
"announcement.announcement": "Anúncio",
"autosuggest_hashtag.per_week": "{count} por semana",
- "boost_modal.combo": "Pressione {combo} para ignorar este diálogo na próxima vez",
+ "boost_modal.combo": "Pode pressionar {combo} para pular isto na próxima vez",
"bundle_column_error.body": "Ocorreu um problema ao carregar este componente.",
"bundle_column_error.retry": "Tente novamente",
"bundle_column_error.title": "Erro de rede",
@@ -65,7 +65,7 @@
"column.mutes": "Usuários silenciados",
"column.notifications": "Notificações",
"column.pins": "Toots fixados",
- "column.public": "Linha global",
+ "column.public": "Global",
"column_back_button.label": "Voltar",
"column_header.hide_settings": "Ocultar configurações",
"column_header.moveLeft_settings": "Mover coluna para a esquerda",
@@ -74,25 +74,27 @@
"column_header.show_settings": "Mostrar configurações",
"column_header.unpin": "Desafixar",
"column_subheading.settings": "Configurações",
- "community.column_settings.media_only": "Apenas mídia",
+ "community.column_settings.local_only": "Local only",
+ "community.column_settings.media_only": "Somente Mídia",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Este toot só será enviado aos usuários mencionados.",
"compose_form.direct_message_warning_learn_more": "Saiba mais",
- "compose_form.hashtag_warning": "O toot não será listado nas hashtags porque não é público. Somente toots públicos podem ser pesquisados por hashtag. Dica: Poste como Não-listado.",
+ "compose_form.hashtag_warning": "Este toot não vai estar listado em nenhuma hashtag porque está como não-listado. Somente toots públicos podem ser pesquisados por hashtag.",
"compose_form.lock_disclaimer": "Sua conta não está {locked}. Qualquer pessoa pode te seguir e ver seus toots privados.",
"compose_form.lock_disclaimer.lock": "trancada",
"compose_form.placeholder": "No que você está pensando?",
- "compose_form.poll.add_option": "Adicionar opção",
+ "compose_form.poll.add_option": "Adicionar uma escolha",
"compose_form.poll.duration": "Duração da enquete",
- "compose_form.poll.option_placeholder": "Opção {number}",
- "compose_form.poll.remove_option": "Remover opção",
- "compose_form.poll.switch_to_multiple": "Alterar para múltiplos votos",
- "compose_form.poll.switch_to_single": "Alterar para voto único",
+ "compose_form.poll.option_placeholder": "Escolha {number}",
+ "compose_form.poll.remove_option": "Remover esta escolha",
+ "compose_form.poll.switch_to_multiple": "Alterar enquete para permitir múltiplas escolhas",
+ "compose_form.poll.switch_to_single": "Alterar enquete para permitir uma única escolha",
"compose_form.publish": "TOOT",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.hide": "Marcar mídia como sensível",
"compose_form.sensitive.marked": "Mídia está marcada como sensível",
"compose_form.sensitive.unmarked": "Mídia não está marcada como sensível",
- "compose_form.spoiler.marked": "O texto está oculto por um aviso de conteúdo",
+ "compose_form.spoiler.marked": "Com Aviso de Conteúdo",
"compose_form.spoiler.unmarked": "Sem Aviso de Conteúdo",
"compose_form.spoiler_placeholder": "Aviso de Conteúdo aqui",
"confirmation_modal.cancel": "Cancelar",
@@ -100,10 +102,10 @@
"confirmations.block.confirm": "Bloquear",
"confirmations.block.message": "Você tem certeza de que deseja bloquear {name}?",
"confirmations.delete.confirm": "Excluir",
- "confirmations.delete.message": "Excluir este toot?",
+ "confirmations.delete.message": "Você tem certeza de que deseja excluir este toot?",
"confirmations.delete_list.confirm": "Excluir",
"confirmations.delete_list.message": "Você tem certeza de que deseja excluir esta lista?",
- "confirmations.domain_block.confirm": "Bloquear domínio",
+ "confirmations.domain_block.confirm": "Bloquear domínio inteiro",
"confirmations.domain_block.message": "Você tem certeza de que deseja bloquear tudo de {domain}? Você não verá mais o conteúdo desta instância em nenhuma linha do tempo pública ou nas suas notificações. Seus seguidores desta instância serão removidos.",
"confirmations.logout.confirm": "Sair",
"confirmations.logout.message": "Você tem certeza de que deseja sair?",
@@ -113,23 +115,23 @@
"confirmations.redraft.confirm": "Excluir e rascunhar",
"confirmations.redraft.message": "Você tem certeza de que deseja apagar o toot e usá-lo como rascunho? Boosts e favoritos serão perdidos e as respostas ao toot original ficarão desconectadas.",
"confirmations.reply.confirm": "Responder",
- "confirmations.reply.message": "Responder agora vai sobrescrever o toot que você está compondo. Deseja continuar?",
+ "confirmations.reply.message": "Responder agora sobrescreverá o toot que você está compondo. Deseja continuar?",
"confirmations.unfollow.confirm": "Deixar de seguir",
- "confirmations.unfollow.message": "Deixar de seguir {name}?",
+ "confirmations.unfollow.message": "Você tem certeza de que deseja deixar de seguir {name}?",
"conversation.delete": "Excluir conversa",
"conversation.mark_as_read": "Marcar como lida",
"conversation.open": "Ver conversa",
"conversation.with": "Com {names}",
- "directory.federated": "Do fediverso",
+ "directory.federated": "Do fediverso conhecido",
"directory.local": "Apenas do {domain}",
"directory.new_arrivals": "Acabaram de chegar",
"directory.recently_active": "Ativos recentemente",
- "embed.instructions": "Incorpore este toot no seu site copiando o código abaixo.",
- "embed.preview": "Veja como vai ficar:",
- "emoji_button.activity": "Atividades",
+ "embed.instructions": "Incorpore este status em seu website ao copiar o código abaixo.",
+ "embed.preview": "Aqui está como vai ficar:",
+ "emoji_button.activity": "Atividade",
"emoji_button.custom": "Personalizados",
"emoji_button.flags": "Bandeiras",
- "emoji_button.food": "Comidas e Bebidas",
+ "emoji_button.food": "Comida & Bebida",
"emoji_button.label": "Inserir emoji",
"emoji_button.nature": "Natureza",
"emoji_button.not_found": "Sem emojis! (╯°□°)╯︵ ┻━┻",
@@ -139,29 +141,29 @@
"emoji_button.search": "Pesquisar...",
"emoji_button.search_results": "Resultados da pesquisa",
"emoji_button.symbols": "Símbolos",
- "emoji_button.travel": "Viagens e Lugares",
+ "emoji_button.travel": "Viagem & Lugares",
"empty_column.account_timeline": "Nada aqui!",
"empty_column.account_unavailable": "Perfil indisponível",
"empty_column.blocks": "Nada aqui.",
- "empty_column.bookmarked_statuses": "Sem toots salvos. Quando você salvar alguns, eles aparecerão aqui.",
- "empty_column.community": "A linha do tempo local está vazia. Poste algo publicamente para começar!",
+ "empty_column.bookmarked_statuses": "Nada aqui. Quando você salvar um toot, ele aparecerá aqui.",
+ "empty_column.community": "A linha do tempo local está vazia. Escreva algo publicamente para fazer a bola rolar!",
"empty_column.direct": "Nada aqui. Quando você enviar ou receber toots diretos, eles aparecerão aqui.",
- "empty_column.domain_blocks": "Nada aqui.",
+ "empty_column.domain_blocks": "Não há domínios bloqueados ainda.",
"empty_column.favourited_statuses": "Nada aqui. Quando você favoritar um toot, ele aparecerá aqui.",
"empty_column.favourites": "Nada aqui. Quando alguém favoritar, o autor aparecerá aqui.",
"empty_column.follow_requests": "Nada aqui. Quando você receber solicitações de seguidores, elas aparecerão aqui.",
"empty_column.hashtag": "Nada aqui.",
- "empty_column.home": "Sua linha do tempo está vazia. Visite a linha {public} ou use a pesquisa para conhecer outros usuários!",
+ "empty_column.home": "Sua linha do tempo está vazia! Visite {public} ou use a pesquisa para começar e conhecer outros usuários.",
"empty_column.home.public_timeline": "a linha do tempo pública",
"empty_column.list": "Nada aqui. Quando os usuários nesta lista postarem toots, eles aparecerão aqui.",
"empty_column.lists": "Nada aqui. Quando você criar listas, elas aparecerão aqui.",
"empty_column.mutes": "Nada aqui.",
"empty_column.notifications": "Nada aqui. Interaja com outros usuários para começar a conversar.",
- "empty_column.public": "Nada aqui! Poste algo publicamente ou siga usuários de outras instâncias",
- "error.unexpected_crash.explanation": "Devido a um problema em nosso código ou de compatibilidade com o navegador, esta página não pôde ser exibida corretamente.",
- "error.unexpected_crash.next_steps": "Tente atualizar a página. Se não resolver, você ainda pode usar o Mastodon em outro navegador ou aplicativo.",
- "errors.unexpected_crash.copy_stacktrace": "Copiar estado da pilha para a área de transferência",
- "errors.unexpected_crash.report_issue": "Reportar problema",
+ "empty_column.public": "Não há nada aqui! Escreva algo publicamente, ou siga manualmente usuários de outros servidores para enchê-la",
+ "error.unexpected_crash.explanation": "Devido a um bug em nosso código ou um problema de compatibilidade de navegador, esta página não pôde ser exibida corretamente.",
+ "error.unexpected_crash.next_steps": "Tente atualizar a página. Se não resolver, você ainda pode conseguir usar o Mastodon por meio de um navegador ou app nativo diferente.",
+ "errors.unexpected_crash.copy_stacktrace": "Copiar stacktrace para área de transferência",
+ "errors.unexpected_crash.report_issue": "Denunciar problema",
"federation.change": "Ajustar federação do toot",
"federation.federated.long": "Permitir que o toot chegue a outras instâncias",
"federation.federated.short": "Federado",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Somente local",
"follow_request.authorize": "Aprovar",
"follow_request.reject": "Vetar",
+ "follow_requests.unlocked_explanation": "Embora sua conta não esteja trancada, o staff de {domain} achou que você podia querer revisar pedidos para te seguir destas contas manualmente.",
"getting_started.developers": "Desenvolvedores",
"getting_started.directory": "Diretório de perfis",
"getting_started.documentation": "Documentação",
@@ -181,36 +184,36 @@
"hashtag.column_header.tag_mode.any": "ou {additional}",
"hashtag.column_header.tag_mode.none": "sem {additional}",
"hashtag.column_settings.select.no_options_message": "Nenhuma sugestão encontrada",
- "hashtag.column_settings.select.placeholder": "Adicione hashtags…",
- "hashtag.column_settings.tag_mode.all": "Todas essas",
- "hashtag.column_settings.tag_mode.any": "Qualquer uma dessas",
- "hashtag.column_settings.tag_mode.none": "Nenhuma dessas",
- "hashtag.column_settings.tag_toggle": "Adicionar mais hashtags",
+ "hashtag.column_settings.select.placeholder": "Insira hashtags…",
+ "hashtag.column_settings.tag_mode.all": "Todas estas",
+ "hashtag.column_settings.tag_mode.any": "Qualquer uma destas",
+ "hashtag.column_settings.tag_mode.none": "Nenhuma destas",
+ "hashtag.column_settings.tag_toggle": "Incluir tags adicionais para esta coluna",
"home.column_settings.basic": "Básico",
"home.column_settings.show_reblogs": "Mostrar boosts",
"home.column_settings.show_replies": "Mostrar respostas",
- "home.hide_announcements": "Ocultar anúncios",
- "home.show_announcements": "Exibir anúncios",
+ "home.hide_announcements": "Esconder anúncios",
+ "home.show_announcements": "Mostrar anúncios",
"intervals.full.days": "{number, plural, one {# dia} other {# dias}}",
"intervals.full.hours": "{number, plural, one {# hora} other {# horas}}",
"intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}",
"introduction.federation.action": "Próximo",
- "introduction.federation.federated.headline": "Global",
- "introduction.federation.federated.text": "Toots públicos de outras instâncias do fediverso aparecerão na linha global.",
- "introduction.federation.home.headline": "Página inicial",
- "introduction.federation.home.text": "Os toots das pessoas que você segue aparecerão na página inicial. Você pode seguir pessoas de qualquer instância!",
+ "introduction.federation.federated.headline": "Federada",
+ "introduction.federation.federated.text": "Posts públicos de outros servidores do fediverso vão aparecer na linha do tempo federada.",
+ "introduction.federation.home.headline": "Início",
+ "introduction.federation.home.text": "Posts de pessoas que você segue vão aparecer no seu feed de início. Você pode seguir qualquer pessoa em qualquer servidor!",
"introduction.federation.local.headline": "Local",
- "introduction.federation.local.text": "Toots públicos de pessoas na mesma instância que você aparecerão na linha local.",
- "introduction.interactions.action": "Terminar o tutorial!",
+ "introduction.federation.local.text": "Posts públicos de pessoas no mesmo servidor que você vão aparecer na linha do tempo local.",
+ "introduction.interactions.action": "Terminar tutorial!",
"introduction.interactions.favourite.headline": "Favoritos",
- "introduction.interactions.favourite.text": "Ao favoritar, você salva o toot para mais tarde ou sinaliza ao autor que você gostou do toot.",
+ "introduction.interactions.favourite.text": "Ao favoritar, você sinaliza ao autor que você gostou do toot.",
"introduction.interactions.reblog.headline": "Boost",
"introduction.interactions.reblog.text": "Ao dar boost, você compartilha toots de outras pessoas para seus seguidores.",
"introduction.interactions.reply.headline": "Responder",
"introduction.interactions.reply.text": "Você pode responder aos toots de outras pessoas e formar uma conversa ou responder aos seus e formar uma sequência.",
- "introduction.welcome.action": "É HORA DO SHOW!",
+ "introduction.welcome.action": "Vamos lá!",
"introduction.welcome.headline": "Primeiros passos",
- "introduction.welcome.text": "Boas vindas ao fediverso! Logo você vai poder publicar mensagens e falar com pessoas amigas através de uma variedade de instâncias. Mas esta instância, {domain}, é especial — é onde o seu perfil está guardado, então lembre do nome dela com carinho.",
+ "introduction.welcome.text": "Boas vindas ao fediverso! Em alguns momentos, você vai poder transmitir mensagens e falar com pessoas amigas através de uma variedade de servidores. Mas este servidor, {domain}, é especial—é onde seu perfil está hospedado, então lembre do nome dele.",
"keyboard_shortcuts.back": "voltar",
"keyboard_shortcuts.blocked": "abrir lista de usuários bloqueados",
"keyboard_shortcuts.boost": "dar boost",
@@ -218,32 +221,32 @@
"keyboard_shortcuts.compose": "focar na composição",
"keyboard_shortcuts.description": "Descrição",
"keyboard_shortcuts.direct": "abrir Mensagens Diretas",
- "keyboard_shortcuts.down": "mover para baixo na linha",
- "keyboard_shortcuts.enter": "expandir um toot",
+ "keyboard_shortcuts.down": "para mover para baixo na lista",
+ "keyboard_shortcuts.enter": "para abrir status",
"keyboard_shortcuts.favourite": "favoritar",
"keyboard_shortcuts.favourites": "abrir os favoritos",
- "keyboard_shortcuts.federated": "abrir linha global",
+ "keyboard_shortcuts.federated": "para abrir linha do tempo federada",
"keyboard_shortcuts.heading": "Atalhos de teclado",
- "keyboard_shortcuts.home": "abrir página inicial",
+ "keyboard_shortcuts.home": "para abrir linha do tempo de início",
"keyboard_shortcuts.hotkey": "Atalho",
"keyboard_shortcuts.legend": "mostrar estes atalhos",
- "keyboard_shortcuts.local": "abrir linha local",
- "keyboard_shortcuts.mention": "mencionar autor",
+ "keyboard_shortcuts.local": "para abrir linha do tempo local",
+ "keyboard_shortcuts.mention": "para mencionar autor",
"keyboard_shortcuts.muted": "abrir lista de usuários silenciados",
- "keyboard_shortcuts.my_profile": "abrir seu perfil",
- "keyboard_shortcuts.notifications": "abrir notificações",
- "keyboard_shortcuts.open_media": "abrir mídia",
+ "keyboard_shortcuts.my_profile": "para abrir seu perfil",
+ "keyboard_shortcuts.notifications": "para abrir coluna de notificações",
+ "keyboard_shortcuts.open_media": "para abrir mídia",
"keyboard_shortcuts.pinned": "abrir toots fixados",
- "keyboard_shortcuts.profile": "abrir o perfil do autor",
- "keyboard_shortcuts.reply": "responder",
- "keyboard_shortcuts.requests": "abrir lista de seguidores pendentes",
- "keyboard_shortcuts.search": "focar na pesquisa",
- "keyboard_shortcuts.start": "abrir o \"Primeiros passos\"",
+ "keyboard_shortcuts.profile": "para abrir perfil do autor",
+ "keyboard_shortcuts.reply": "para responder",
+ "keyboard_shortcuts.requests": "para abrir lista de pedidos para seguir",
+ "keyboard_shortcuts.search": "para focar pesquisa",
+ "keyboard_shortcuts.start": "para abrir coluna \"primeiros passos\"",
"keyboard_shortcuts.toggle_hidden": "mostrar/ocultar o toot com Aviso de Conteúdo",
"keyboard_shortcuts.toggle_sensitivity": "mostrar/ocultar mídia",
- "keyboard_shortcuts.toot": "compor novo toot",
- "keyboard_shortcuts.unfocus": "sair da composição ou da pesquisa",
- "keyboard_shortcuts.up": "mover para cima na linha",
+ "keyboard_shortcuts.toot": "para começar um toot novo em folha",
+ "keyboard_shortcuts.unfocus": "para desfocar de área de texto de composição/pesquisa",
+ "keyboard_shortcuts.up": "para mover para cima na lista",
"lightbox.close": "Fechar",
"lightbox.next": "Próximo",
"lightbox.previous": "Anterior",
@@ -259,16 +262,16 @@
"lists.subheading": "Suas listas",
"load_pending": "{count, plural, one {# novo item} other {# novos items}}",
"loading_indicator.label": "Carregando...",
- "media_gallery.toggle_visible": "Mostrar/Ocultar",
+ "media_gallery.toggle_visible": "Esconder mídia",
"missing_indicator.label": "Não encontrado",
"missing_indicator.sublabel": "Esse recurso não pôde ser encontrado",
"mute_modal.hide_notifications": "Ocultar notificações deste usuário?",
"navigation_bar.apps": "Aplicativos",
"navigation_bar.blocks": "Usuários bloqueados",
"navigation_bar.bookmarks": "Salvos",
- "navigation_bar.community_timeline": "Local",
+ "navigation_bar.community_timeline": "Linha do tempo local",
"navigation_bar.compose": "Compor novo toot",
- "navigation_bar.direct": "Mensagens Diretas",
+ "navigation_bar.direct": "Mensagens diretas",
"navigation_bar.discover": "Descobrir",
"navigation_bar.domain_blocks": "Domínios bloqueados",
"navigation_bar.edit_profile": "Editar perfil",
@@ -276,7 +279,7 @@
"navigation_bar.filters": "Palavras filtradas",
"navigation_bar.follow_requests": "Seguidores pendentes",
"navigation_bar.follows_and_followers": "Seguindo e seguidores",
- "navigation_bar.info": "Mais informações",
+ "navigation_bar.info": "Sobre este servidor",
"navigation_bar.keyboard_shortcuts": "Atalhos de teclado",
"navigation_bar.lists": "Listas",
"navigation_bar.logout": "Sair",
@@ -284,7 +287,7 @@
"navigation_bar.personal": "Pessoal",
"navigation_bar.pins": "Toots fixados",
"navigation_bar.preferences": "Preferências",
- "navigation_bar.public_timeline": "Global",
+ "navigation_bar.public_timeline": "Linha do tempo federada",
"navigation_bar.security": "Segurança",
"notification.favourite": "{name} favoritou seu toot",
"notification.follow": "{name} te seguiu",
@@ -294,47 +297,47 @@
"notification.poll": "Uma enquete que você votou terminou",
"notification.reblog": "{name} deu boost no seu toot",
"notifications.clear": "Limpar notificações",
- "notifications.clear_confirmation": "Você tem certeza de que quer limpar todas as suas notificações?",
+ "notifications.clear_confirmation": "Você tem certeza de que deseja limpar todas as suas notificações?",
"notifications.column_settings.alert": "Notificações no computador",
"notifications.column_settings.favourite": "Favoritos:",
"notifications.column_settings.filter_bar.advanced": "Mostrar todas as categorias",
"notifications.column_settings.filter_bar.category": "Barra de filtro rápido",
"notifications.column_settings.filter_bar.show": "Mostrar",
"notifications.column_settings.follow": "Seguidores:",
- "notifications.column_settings.follow_request": "Novos seguidores pendentes:",
+ "notifications.column_settings.follow_request": "Seguidores pendentes:",
"notifications.column_settings.mention": "Menções:",
"notifications.column_settings.poll": "Enquetes:",
"notifications.column_settings.push": "Enviar notificações",
"notifications.column_settings.reblog": "Boosts:",
"notifications.column_settings.show": "Mostrar nas colunas",
- "notifications.column_settings.sound": "Reproduzir som",
+ "notifications.column_settings.sound": "Tocar som",
"notifications.filter.all": "Tudo",
"notifications.filter.boosts": "Boosts",
"notifications.filter.favourites": "Favoritos",
- "notifications.filter.follows": "Seguidores",
+ "notifications.filter.follows": "Seguindo",
"notifications.filter.mentions": "Menções",
- "notifications.filter.polls": "Enquetes",
+ "notifications.filter.polls": "Resultados de enquete",
"notifications.group": "{count} notificações",
- "poll.closed": "Terminou",
+ "poll.closed": "Fechou",
"poll.refresh": "Atualizar",
"poll.total_people": "{count, plural, one {# pessoa} other {# pessoas}}",
"poll.total_votes": "{count, plural, one {# voto} other {# votos}}",
"poll.vote": "Votar",
- "poll.voted": "Você votou nesta opção",
- "poll_button.add_poll": "Adicionar enquete",
+ "poll.voted": "Você votou nesta resposta",
+ "poll_button.add_poll": "Adicionar uma enquete",
"poll_button.remove_poll": "Remover enquete",
- "privacy.change": "Ajustar privacidade do toot",
- "privacy.direct.long": "Postar apenas para usuários mencionados",
- "privacy.direct.short": "Direto",
- "privacy.private.long": "Postar apenas para seguidores",
- "privacy.private.short": "Privado",
- "privacy.public.long": "Postar em linhas públicas",
- "privacy.public.short": "Público",
- "privacy.unlisted.long": "Não postar em linhas públicas",
- "privacy.unlisted.short": "Não-listado",
+ "privacy.change": "Ajustar privacidade de status",
+ "privacy.direct.long": "Visível somente para usuários mencionados",
+ "privacy.direct.short": "Direta",
+ "privacy.private.long": "Visível somente para seguidores",
+ "privacy.private.short": "Seguidores-somente",
+ "privacy.public.long": "Visível para todos, mostrado em linhas do tempo públicas",
+ "privacy.public.short": "Pública",
+ "privacy.unlisted.long": "Visível para todos, mas não em linhas do tempo públicas",
+ "privacy.unlisted.short": "Não-listada",
"refresh": "Atualizar",
"regeneration_indicator.label": "Carregando…",
- "regeneration_indicator.sublabel": "Sua página inicial está sendo preparada!",
+ "regeneration_indicator.sublabel": "Seu feed de início está sendo preparado!",
"relative_time.days": "{number}d",
"relative_time.hours": "{number}h",
"relative_time.just_now": "agora",
@@ -342,18 +345,18 @@
"relative_time.seconds": "{number}s",
"relative_time.today": "hoje",
"reply_indicator.cancel": "Cancelar",
- "report.forward": "Enviar cópia para {target}",
- "report.forward_hint": "A conta está em outra instância. Enviar uma cópia anônima da denúncia para lá?",
- "report.hint": "A denúncia será enviada aos moderadores da instância. Você pode explicar por que você denunciou a conta:",
+ "report.forward": "Encaminhar para {target}",
+ "report.forward_hint": "A conta é de outro servidor. Enviar uma cópia anonimizada da denúncia para lá também?",
+ "report.hint": "Sua denúncia vai ser enviada aos moderadores de seu servidor. Você pode prover uma explicação de por que está denunciando essa conta abaixo:",
"report.placeholder": "Comentários adicionais",
"report.submit": "Enviar",
"report.target": "Denunciando {target}",
"search.placeholder": "Pesquisar",
- "search_popout.search_format": "Pesquisa avançada",
- "search_popout.tips.full_text": "Texto simples retorna seus toots, favoritos, boosts ou toots em que foi mencionado, como também nomes de exibição, usuários e hashtags correspondentes.",
+ "search_popout.search_format": "Formato de pesquisa avançada",
+ "search_popout.tips.full_text": "Texto simples retorna statuses que você escreveu, favoritou, deu boost, ou em que foi mencionado, assim como nomes de usuário e de exibição, e hashtags correspondentes.",
"search_popout.tips.hashtag": "hashtag",
- "search_popout.tips.status": "toot",
- "search_popout.tips.text": "Texto simples retorna nomes de exibição, usuários e hashtags correspondentes",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Texto simples retorna nomes de exibição e de usuário, e hashtags correspondentes",
"search_popout.tips.user": "usuário",
"search_results.accounts": "Pessoas",
"search_results.hashtags": "Hashtags",
@@ -361,36 +364,36 @@
"search_results.statuses_fts_disabled": "Pesquisar toots por seu conteúdo não está ativado nesta instância Mastodon.",
"search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}",
"status.admin_account": "Abrir interface de moderação para @{name}",
- "status.admin_status": "Abrir o toot na interface de moderação",
+ "status.admin_status": "Abrir este status na interface de moderação",
"status.block": "Bloquear @{name}",
"status.bookmark": "Salvar",
- "status.cancel_reblog_private": "Desfazer boost",
- "status.cannot_reblog": "Não foi possível dar boost",
- "status.copy": "Copiar o link do toot",
+ "status.cancel_reblog_private": "Desboostar",
+ "status.cannot_reblog": "Este post não pode ser dado boost",
+ "status.copy": "Copiar link para status",
"status.delete": "Excluir",
"status.detailed_status": "Visão detalhada da conversa",
- "status.direct": "Toot direto para @{name}",
+ "status.direct": "Enviar mensagem direta para @{name}",
"status.embed": "Incorporar",
"status.favourite": "Favoritar",
"status.filtered": "Filtrado",
- "status.load_more": "Ver mais",
- "status.media_hidden": "Mídia oculta",
+ "status.load_more": "Carregar mais",
+ "status.media_hidden": "Mídia escondida",
"status.mention": "Mencionar @{name}",
"status.more": "Mais",
"status.mute": "Silenciar @{name}",
"status.mute_conversation": "Silenciar conversa",
- "status.open": "Expandir",
+ "status.open": "Expandir este status",
"status.pin": "Fixar no perfil",
"status.pinned": "Toot fixado",
"status.read_more": "Ler mais",
- "status.reblog": "Dar boost",
- "status.reblog_private": "Dar boost para audiência original",
- "status.reblogged_by": "{name} deu boost",
+ "status.reblog": "Boostar",
+ "status.reblog_private": "Boostar para audiência original",
+ "status.reblogged_by": "{name} boostou",
"status.reblogs.empty": "Nada aqui. Quando alguém der boost, o autor aparecerá aqui.",
- "status.redraft": "Excluir e rascunhar",
- "status.remove_bookmark": "Remover dos Salvos",
+ "status.redraft": "Excluir & re-rascunhar",
+ "status.remove_bookmark": "Remover marcador",
"status.reply": "Responder",
- "status.replyAll": "Responder à conversa",
+ "status.replyAll": "Responder a thread",
"status.report": "Denunciar @{name}",
"status.sensitive_warning": "Conteúdo sensível",
"status.share": "Compartilhar",
@@ -400,48 +403,48 @@
"status.show_more_all": "Mostrar mais para todos os toots",
"status.show_thread": "Mostrar conversa",
"status.uncached_media_warning": "Não disponível",
- "status.unmute_conversation": "Desativar silêncio desta conversa",
+ "status.unmute_conversation": "Tirar conversa do mudo",
"status.unpin": "Desafixar do perfil",
"suggestions.dismiss": "Ignorar sugestão",
- "suggestions.header": "Você pode se interessar por…",
- "tabs_bar.federated_timeline": "Global",
- "tabs_bar.home": "Página inicial",
+ "suggestions.header": "Você pode estar interessado em…",
+ "tabs_bar.federated_timeline": "Federada",
+ "tabs_bar.home": "Início",
"tabs_bar.local_timeline": "Local",
"tabs_bar.notifications": "Notificações",
"tabs_bar.search": "Pesquisar",
"time_remaining.days": "{number, plural, one {# dia restante} other {# dias restantes}}",
"time_remaining.hours": "{number, plural, one {# hora restante} other {# horas restantes}}",
"time_remaining.minutes": "{number, plural, one {# minuto restante} other {# minutos restantes}}",
- "time_remaining.moments": "Tempo restante",
+ "time_remaining.moments": "Momentos faltantes",
"time_remaining.seconds": "{number, plural, one {# segundo restante} other {# segundos restantes}}",
- "trends.count_by_accounts": "{count} {rawCount, plural, one {pessoa} other {pessoas}} falando sobre",
+ "trends.count_by_accounts": "{count} {rawCount, plural, one {pessoa} other {pessoas}} falando",
"trends.trending_now": "Em alta no momento",
- "ui.beforeunload": "Seu rascunho será perdido se você sair do Mastodon.",
- "upload_area.title": "Arraste e solte para enviar",
+ "ui.beforeunload": "Seu rascunho vai ser perdido se você sair do Mastodon.",
+ "upload_area.title": "Arraste & solte para fazer upload",
"upload_button.label": "Adicionar mídia ({formats})",
- "upload_error.limit": "Limite de envio de arquivos excedido.",
- "upload_error.poll": "Não é possível enviar arquivos com enquetes.",
- "upload_form.audio_description": "Descrever para deficientes auditivos",
- "upload_form.description": "Descrever para deficientes visuais",
+ "upload_error.limit": "Limite de upload de arquivos excedido.",
+ "upload_error.poll": "Não é possível fazer upload de arquivos com enquetes.",
+ "upload_form.audio_description": "Descrever para pessoas com deficiência auditiva",
+ "upload_form.description": "Descreva para deficientes visuais",
"upload_form.edit": "Editar",
- "upload_form.undo": "Remover",
- "upload_form.video_description": "Descrever para deficientes auditivos e visuais",
+ "upload_form.undo": "Excluir",
+ "upload_form.video_description": "Descreva para pessoas com deficiência auditiva ou visual",
"upload_modal.analyzing_picture": "Analisando imagem…",
"upload_modal.apply": "Aplicar",
"upload_modal.description_placeholder": "Um pequeno jabuti xereta viu dez cegonhas felizes",
"upload_modal.detect_text": "Detectar texto da imagem",
"upload_modal.edit_media": "Editar mídia",
- "upload_modal.hint": "Clique ou arraste o círculo na prévia para escolher o ponto focal que ficará visível em todas as miniaturas.",
+ "upload_modal.hint": "Clique ou arraste o círculo na prévia para escolher o ponto focal que vai estar sempre visível em todas as thumbnails.",
"upload_modal.preview_label": "Prévia ({ratio})",
- "upload_progress.label": "Enviando...",
+ "upload_progress.label": "Fazendo upload...",
"video.close": "Fechar vídeo",
- "video.download": "Baixar arquivo",
+ "video.download": "Fazer download de arquivo",
"video.exit_fullscreen": "Sair da tela cheia",
"video.expand": "Expandir vídeo",
"video.fullscreen": "Tela cheia",
"video.hide": "Ocultar vídeo",
- "video.mute": "Silenciar",
+ "video.mute": "Colocar no mudo",
"video.pause": "Pausar",
- "video.play": "Reproduzir",
- "video.unmute": "Desativar silêncio"
+ "video.play": "Tocar",
+ "video.unmute": "Tirar do mudo"
}
diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json
index 17b7534db..4dcc967ac 100644
--- a/app/javascript/mastodon/locales/pt-PT.json
+++ b/app/javascript/mastodon/locales/pt-PT.json
@@ -17,10 +17,10 @@
"account.follows.empty": "Este utilizador ainda não segue alguém.",
"account.follows_you": "É teu seguidor",
"account.hide_reblogs": "Esconder partilhas de @{name}",
- "account.last_status": "Última actividade",
+ "account.last_status": "Última atividade",
"account.link_verified_on": "A posse deste link foi verificada em {date}",
- "account.locked_info": "O estatuto de privacidade desta conta é fechado. O dono revê manualmente que a pode seguir.",
- "account.media": "Média",
+ "account.locked_info": "O estatuto de privacidade desta conta é fechado. O dono revê manualmente quem a pode seguir.",
+ "account.media": "Media",
"account.mention": "Mencionar @{name}",
"account.moved_to": "{name} mudou a sua conta para:",
"account.mute": "Silenciar @{name}",
@@ -30,7 +30,7 @@
"account.posts": "Publicações",
"account.posts_with_replies": "Publicações e respostas",
"account.report": "Denunciar @{name}",
- "account.requested": "A aguardar aprovação. Clique para cancelar o pedido de seguimento",
+ "account.requested": "A aguardar aprovação. Clique para cancelar o pedido de seguidor",
"account.share": "Partilhar o perfil @{name}",
"account.show_reblogs": "Mostrar partilhas de @{name}",
"account.unblock": "Desbloquear @{name}",
@@ -53,7 +53,7 @@
"bundle_modal_error.message": "Algo de errado aconteceu enquanto este componente era carregado.",
"bundle_modal_error.retry": "Tente de novo",
"column.blocks": "Utilizadores Bloqueados",
- "column.bookmarks": "Favoritos",
+ "column.bookmarks": "Itens salvos",
"column.community": "Cronologia local",
"column.direct": "Mensagens directas",
"column.directory": "Procurar perfis",
@@ -74,13 +74,15 @@
"column_header.show_settings": "Mostrar configurações",
"column_header.unpin": "Desafixar",
"column_subheading.settings": "Configurações",
- "community.column_settings.media_only": "Somente multimédia",
+ "community.column_settings.local_only": "Local only",
+ "community.column_settings.media_only": "Somente media",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Esta publicação será enviada apenas para os utilizadores mencionados.",
"compose_form.direct_message_warning_learn_more": "Conhecer mais",
"compose_form.hashtag_warning": "Este toot não será listado em nenhuma hashtag por ser não listado. Apenas toots públics podem ser pesquisados por hashtag.",
"compose_form.lock_disclaimer": "A tua conta não está {locked}. Qualquer pessoa pode seguir-te e ver as publicações direcionadas apenas a seguidores.",
"compose_form.lock_disclaimer.lock": "bloqueado",
- "compose_form.placeholder": "Em que estás a pensar?",
+ "compose_form.placeholder": "Em que está a pensar?",
"compose_form.poll.add_option": "Adicionar uma opção",
"compose_form.poll.duration": "Duração da votação",
"compose_form.poll.option_placeholder": "Opção {number}",
@@ -89,12 +91,12 @@
"compose_form.poll.switch_to_single": "Alterar a votação para permitir uma única escolha",
"compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!",
- "compose_form.sensitive.hide": "Marcar multimédia como sensível",
- "compose_form.sensitive.marked": "Média marcada como sensível",
- "compose_form.sensitive.unmarked": "Média não está marcada como sensível",
+ "compose_form.sensitive.hide": "Marcar media como sensível",
+ "compose_form.sensitive.marked": "Media marcada como sensível",
+ "compose_form.sensitive.unmarked": "Media não está marcada como sensível",
"compose_form.spoiler.marked": "Texto escondido atrás de aviso",
"compose_form.spoiler.unmarked": "O texto não está escondido",
- "compose_form.spoiler_placeholder": "Escreve o teu aviso aqui",
+ "compose_form.spoiler_placeholder": "Escreva o seu aviso aqui",
"confirmation_modal.cancel": "Cancelar",
"confirmations.block.block_and_report": "Bloquear e denunciar",
"confirmations.block.confirm": "Bloquear",
@@ -113,7 +115,7 @@
"confirmations.redraft.confirm": "Apagar & redigir",
"confirmations.redraft.message": "Tens a certeza que queres apagar e redigir esta publicação? Os favoritos e as partilhas perder-se-ão e as respostas à publicação original ficarão órfãs.",
"confirmations.reply.confirm": "Responder",
- "confirmations.reply.message": "Responder agora irá reescrever a mensagem que estás a compor actualmente. Tens a certeza que queres continuar?",
+ "confirmations.reply.message": "Responder agora irá reescrever a mensagem que está a compor actualmente. Tem a certeza que quer continuar?",
"confirmations.unfollow.confirm": "Deixar de seguir",
"confirmations.unfollow.message": "De certeza que queres deixar de seguir {name}?",
"conversation.delete": "Eliminar conversa",
@@ -124,7 +126,7 @@
"directory.local": "Apenas de {domain}",
"directory.new_arrivals": "Recém chegados",
"directory.recently_active": "Com actividade recente",
- "embed.instructions": "Publica esta publicação no teu site copiando o código abaixo.",
+ "embed.instructions": "Incorpora esta publicação no teu site copiando o código abaixo.",
"embed.preview": "Podes ver aqui como irá ficar:",
"emoji_button.activity": "Actividade",
"emoji_button.custom": "Personalizar",
@@ -143,13 +145,13 @@
"empty_column.account_timeline": "Sem toots por aqui!",
"empty_column.account_unavailable": "Perfil indisponível",
"empty_column.blocks": "Ainda não bloqueaste qualquer utilizador.",
- "empty_column.bookmarked_statuses": "Ainda não assinalou toots como favoritos. Quando o fizer, eles aparecerão aqui.",
+ "empty_column.bookmarked_statuses": "Ainda não adicionou nenhum toot aos Itens salvos. Quando adicionar, eles serão exibidos aqui.",
"empty_column.community": "A timeline local está vazia. Escreve algo publicamente para começar!",
"empty_column.direct": "Ainda não tens qualquer mensagem directa. Quando enviares ou receberes alguma, ela irá aparecer aqui.",
"empty_column.domain_blocks": "Ainda não há qualquer domínio escondido.",
"empty_column.favourited_statuses": "Ainda não tens quaisquer toots favoritos. Quando tiveres algum, ele irá aparecer aqui.",
"empty_column.favourites": "Ainda ninguém marcou este toot como favorito. Quando alguém o fizer, ele irá aparecer aqui.",
- "empty_column.follow_requests": "Ainda não tens nenhum pedido de seguimento. Quando receberes algum, ele irá aparecer aqui.",
+ "empty_column.follow_requests": "Ainda não tens nenhum pedido de seguidor. Quando receberes algum, ele irá aparecer aqui.",
"empty_column.hashtag": "Não foram encontradas publicações com essa hashtag.",
"empty_column.home": "Ainda não segues qualquer utilizador. Visita {public} ou utiliza a pesquisa para procurar outros utilizadores.",
"empty_column.home.public_timeline": "Cronologia pública",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Somente local",
"follow_request.authorize": "Autorizar",
"follow_request.reject": "Rejeitar",
+ "follow_requests.unlocked_explanation": "Apesar de a sua não estar bloqueada, a administração de {domain} pensa que poderá querer rever os pedidos dessas contas manualmente.",
"getting_started.developers": "Responsáveis pelo desenvolvimento",
"getting_started.directory": "Directório de perfil",
"getting_started.documentation": "Documentação",
@@ -196,11 +199,11 @@
"intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}",
"introduction.federation.action": "Seguinte",
"introduction.federation.federated.headline": "Federada",
- "introduction.federation.federated.text": "Publicações públicas de outros servidores do fediverse aparecerão na cronologia federativa.",
+ "introduction.federation.federated.text": "Publicações públicas de outras instâncias do fediverso aparecerão na cronologia federada.",
"introduction.federation.home.headline": "Início",
- "introduction.federation.home.text": "As publicações das pessoas que tu segues aparecerão na tua coluna inicial. Tu podes seguir qualquer pessoa em qualquer servidor!",
+ "introduction.federation.home.text": "As publicações das pessoas que você segue aparecerão na sua coluna de início. Você pode seguir qualquer pessoa em qualquer instância!",
"introduction.federation.local.headline": "Local",
- "introduction.federation.local.text": "Publicações públicas de pessoas que tu segues no teu servidor aparecerão na coluna local.",
+ "introduction.federation.local.text": "Publicações públicas de pessoas na mesma instância que você aparecerão na coluna local.",
"introduction.interactions.action": "Terminar o tutorial!",
"introduction.interactions.favourite.headline": "Favorito",
"introduction.interactions.favourite.text": "Podes guardar um toot para depois e deixar o autor saber que gostaste dele, marcando-o como favorito.",
@@ -210,7 +213,7 @@
"introduction.interactions.reply.text": "Tu podes responder a toots de outras pessoas e aos teus, o que os irá juntar numa conversa.",
"introduction.welcome.action": "Vamos!",
"introduction.welcome.headline": "Primeiros passos",
- "introduction.welcome.text": "Bem-vindo ao fediverso! Em pouco tempo poderás enviar mensagens e falar com os teus amigos numa grande variedade de servidores. Mas este servidor, {domain}, é especial—ele alberga o teu perfil. Por isso, lembra-te do seu nome.",
+ "introduction.welcome.text": "Bem-vindo ao fediverso! Em pouco tempo poderás enviar mensagens e falar com os seus amigos numa grande variedade de instâncias. Mas esta instância, {domain}, é especial—ela alberga o seu perfil. Por isso, lembre-se do seu nome.",
"keyboard_shortcuts.back": "para voltar",
"keyboard_shortcuts.blocked": "para abrir a lista de utilizadores bloqueados",
"keyboard_shortcuts.boost": "para partilhar",
@@ -219,7 +222,7 @@
"keyboard_shortcuts.description": "Descrição",
"keyboard_shortcuts.direct": "para abrir a coluna das mensagens directas",
"keyboard_shortcuts.down": "para mover para baixo na lista",
- "keyboard_shortcuts.enter": "para expandir um estado",
+ "keyboard_shortcuts.enter": "para expandir uma publicação",
"keyboard_shortcuts.favourite": "para adicionar aos favoritos",
"keyboard_shortcuts.favourites": "para abrir a lista dos favoritos",
"keyboard_shortcuts.federated": "para abrir a cronologia federada",
@@ -232,15 +235,15 @@
"keyboard_shortcuts.muted": "para abrir a lista dos utilizadores silenciados",
"keyboard_shortcuts.my_profile": "para abrir o teu perfil",
"keyboard_shortcuts.notifications": "para abrir a coluna das notificações",
- "keyboard_shortcuts.open_media": "para abrir média",
+ "keyboard_shortcuts.open_media": "para abrir media",
"keyboard_shortcuts.pinned": "para abrir a lista dos toots fixados",
"keyboard_shortcuts.profile": "para abrir o perfil do autor",
"keyboard_shortcuts.reply": "para responder",
- "keyboard_shortcuts.requests": "para abrir a lista dos pedidos de seguimento",
+ "keyboard_shortcuts.requests": "para abrir a lista dos pedidos de seguidor",
"keyboard_shortcuts.search": "para focar na pesquisa",
"keyboard_shortcuts.start": "para abrir a coluna dos \"primeiros passos\"",
"keyboard_shortcuts.toggle_hidden": "para mostrar/esconder texto atrás de CW",
- "keyboard_shortcuts.toggle_sensitivity": "mostrar/ocultar média",
+ "keyboard_shortcuts.toggle_sensitivity": "mostrar/ocultar media",
"keyboard_shortcuts.toot": "para compor um novo toot",
"keyboard_shortcuts.unfocus": "para remover o foco da área de texto/pesquisa",
"keyboard_shortcuts.up": "para mover para cima na lista",
@@ -259,13 +262,13 @@
"lists.subheading": "As tuas listas",
"load_pending": "{count, plural, one {# novo item} other {# novos itens}}",
"loading_indicator.label": "A carregar...",
- "media_gallery.toggle_visible": "Mostrar/ocultar",
+ "media_gallery.toggle_visible": "Alternar visibilidade",
"missing_indicator.label": "Não encontrado",
"missing_indicator.sublabel": "Este recurso não foi encontrado",
"mute_modal.hide_notifications": "Esconder notificações deste utilizador?",
"navigation_bar.apps": "Aplicações móveis",
"navigation_bar.blocks": "Utilizadores bloqueados",
- "navigation_bar.bookmarks": "Favoritos",
+ "navigation_bar.bookmarks": "Itens salvos",
"navigation_bar.community_timeline": "Cronologia local",
"navigation_bar.compose": "Escrever novo toot",
"navigation_bar.direct": "Mensagens directas",
@@ -276,7 +279,7 @@
"navigation_bar.filters": "Palavras silenciadas",
"navigation_bar.follow_requests": "Seguidores pendentes",
"navigation_bar.follows_and_followers": "Seguindo e seguidores",
- "navigation_bar.info": "Sobre este servidor",
+ "navigation_bar.info": "Sobre esta instância",
"navigation_bar.keyboard_shortcuts": "Atalhos de teclado",
"navigation_bar.lists": "Listas",
"navigation_bar.logout": "Sair",
@@ -286,13 +289,13 @@
"navigation_bar.preferences": "Preferências",
"navigation_bar.public_timeline": "Cronologia federada",
"navigation_bar.security": "Segurança",
- "notification.favourite": "{name} adicionou o teu estado aos favoritos",
+ "notification.favourite": "{name} adicionou a tua publicação aos favoritos",
"notification.follow": "{name} começou a seguir-te",
"notification.follow_request": "{name} pediu para segui-lo",
"notification.mention": "{name} mencionou-te",
"notification.own_poll": "A sua votação terminou",
- "notification.poll": "Uma votação em participaste chegou ao fim",
- "notification.reblog": "{name} fez boost ao teu o teu estado",
+ "notification.poll": "Uma votação em que participaste chegou ao fim",
+ "notification.reblog": "{name} partilhou a tua publicação",
"notifications.clear": "Limpar notificações",
"notifications.clear_confirmation": "Queres mesmo limpar todas as notificações?",
"notifications.column_settings.alert": "Notificações no computador",
@@ -311,9 +314,9 @@
"notifications.filter.all": "Todas",
"notifications.filter.boosts": "Boosts",
"notifications.filter.favourites": "Favoritos",
- "notifications.filter.follows": "Seguimento",
- "notifications.filter.mentions": "Referências",
- "notifications.filter.polls": "Resultados da votação",
+ "notifications.filter.follows": "Seguidores",
+ "notifications.filter.mentions": "Menções",
+ "notifications.filter.polls": "Votações",
"notifications.group": "{count} notificações",
"poll.closed": "Fechado",
"poll.refresh": "Recarregar",
@@ -323,7 +326,7 @@
"poll.voted": "Você votou nesta resposta",
"poll_button.add_poll": "Adicionar votação",
"poll_button.remove_poll": "Remover votação",
- "privacy.change": "Ajustar a privacidade da mensagem",
+ "privacy.change": "Ajustar a privacidade da publicação",
"privacy.direct.long": "Apenas para utilizadores mencionados",
"privacy.direct.short": "Directo",
"privacy.private.long": "Apenas para os seguidores",
@@ -343,8 +346,8 @@
"relative_time.today": "hoje",
"reply_indicator.cancel": "Cancelar",
"report.forward": "Reenviar para {target}",
- "report.forward_hint": "A conta é de outro servidor. Enviar uma cópia anónima do relatório para lá também?",
- "report.hint": "O relatório será enviado para os moderadores do teu servidor. Podes fornecer, em baixo, uma explicação do motivo pelo qual estás a denunciar esta conta:",
+ "report.forward_hint": "A conta é de outra instância. Enviar uma cópia anónima do relatório para lá também?",
+ "report.hint": "O relatório será enviado para os moderadores da sua instância. Pode fornecer, em baixo, uma explicação do motivo pelo qual está a denunciar esta conta:",
"report.placeholder": "Comentários adicionais",
"report.submit": "Enviar",
"report.target": "Denunciar",
@@ -352,18 +355,18 @@
"search_popout.search_format": "Formato avançado de pesquisa",
"search_popout.tips.full_text": "Texto simples devolve publicações que tu escreveste, marcaste como favorita, partilhaste ou em que foste mencionado, tal como nomes de utilizador correspondentes, alcunhas e hashtags.",
"search_popout.tips.hashtag": "hashtag",
- "search_popout.tips.status": "estado",
+ "search_popout.tips.status": "publicação",
"search_popout.tips.text": "O texto simples retorna a correspondência de nomes, utilizadores e hashtags",
"search_popout.tips.user": "utilizador",
"search_results.accounts": "Pessoas",
"search_results.hashtags": "Hashtags",
"search_results.statuses": "Toots",
- "search_results.statuses_fts_disabled": "A pesquisa de toots pelo seu conteúdo não está disponível neste servidor Mastodon.",
+ "search_results.statuses_fts_disabled": "A pesquisa de toots pelo seu conteúdo não está disponível nesta instância Mastodon.",
"search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}",
"status.admin_account": "Abrir a interface de moderação para @{name}",
"status.admin_status": "Abrir esta publicação na interface de moderação",
"status.block": "Bloquear @{name}",
- "status.bookmark": "Favorito",
+ "status.bookmark": "Salvar",
"status.cancel_reblog_private": "Remover boost",
"status.cannot_reblog": "Não é possível fazer boost a esta publicação",
"status.copy": "Copiar o link para a publicação",
@@ -375,7 +378,7 @@
"status.filtered": "Filtrada",
"status.load_more": "Carregar mais",
"status.local_only": "Esse post só é visível para outros usuários da sua instância",
- "status.media_hidden": "Média escondida",
+ "status.media_hidden": "Media escondida",
"status.mention": "Mencionar @{name}",
"status.more": "Mais",
"status.mute": "Silenciar @{name}",
@@ -389,7 +392,7 @@
"status.reblogged_by": "{name} fez boost",
"status.reblogs.empty": "Ainda ninguém fez boost a este toot. Quando alguém o fizer, ele irá aparecer aqui.",
"status.redraft": "Apagar & reescrever",
- "status.remove_bookmark": "Remover favorito",
+ "status.remove_bookmark": "Remover dos itens salvos",
"status.reply": "Responder",
"status.replyAll": "Responder à conversa",
"status.report": "Denunciar @{name}",
@@ -400,7 +403,7 @@
"status.show_more": "Mostrar mais",
"status.show_more_all": "Mostrar mais para todas",
"status.show_thread": "Mostrar conversa",
- "status.uncached_media_warning": "Não diponível",
+ "status.uncached_media_warning": "Não disponível",
"status.unmute_conversation": "Deixar de silenciar esta conversa",
"status.unpin": "Não fixar no perfil",
"suggestions.dismiss": "Dispensar a sugestão",
@@ -419,7 +422,7 @@
"trends.trending_now": "Tendências atuais",
"ui.beforeunload": "O teu rascunho será perdido se abandonares o Mastodon.",
"upload_area.title": "Arraste e solte para enviar",
- "upload_button.label": "Adicionar media",
+ "upload_button.label": "Adicionar media ({formats})",
"upload_error.limit": "Limite máximo do ficheiro a carregar excedido.",
"upload_error.poll": "Carregamento de ficheiros não é permitido em votações.",
"upload_form.audio_description": "Descreva para pessoas com diminuição da acuidade auditiva",
@@ -431,7 +434,7 @@
"upload_modal.apply": "Aplicar",
"upload_modal.description_placeholder": "Grave e cabisbaixo, o filho justo zelava pela querida mãe doente",
"upload_modal.detect_text": "Detectar texto na imagem",
- "upload_modal.edit_media": "Editar média",
+ "upload_modal.edit_media": "Editar media",
"upload_modal.hint": "Clique ou arraste o círculo na pré-visualização para escolher o ponto focal que será sempre visível em todas as miniaturas.",
"upload_modal.preview_label": "Pré-visualizar ({ratio})",
"upload_progress.label": "A enviar...",
diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json
index 71ec93380..c1894c10e 100644
--- a/app/javascript/mastodon/locales/ro.json
+++ b/app/javascript/mastodon/locales/ro.json
@@ -1,68 +1,68 @@
{
"account.add_or_remove_from_list": "Adaugă sau Elimină din liste",
- "account.badges.bot": "Bot",
- "account.badges.group": "Group",
- "account.block": "Blochează @{name}",
- "account.block_domain": "Ascunde tot de la {domain}",
+ "account.badges.bot": "Robot",
+ "account.badges.group": "Grup",
+ "account.block": "Blocați @{name}",
+ "account.block_domain": "Blocați domeniul {domain}",
"account.blocked": "Blocat",
- "account.cancel_follow_request": "Cancel follow request",
+ "account.cancel_follow_request": "Anulați cererea de urmărire",
"account.direct": "Mesaj direct @{name}",
- "account.domain_blocked": "Domeniu ascuns",
- "account.edit_profile": "Editează profilul",
- "account.endorse": "Redistribuie pe profil",
+ "account.domain_blocked": "Domeniu blocat",
+ "account.edit_profile": "Editați profilul",
+ "account.endorse": "Promovați pe profil",
"account.follow": "Urmărește",
"account.followers": "Urmăritori",
"account.followers.empty": "Acest utilizator nu are încă urmăritori.",
"account.follows": "Urmărește",
- "account.follows.empty": "Acest utilizator nu urmărește pe nimeni incă.",
+ "account.follows.empty": "Acest utilizator nu urmărește pe nimeni încă.",
"account.follows_you": "Te urmărește",
- "account.hide_reblogs": "Ascunde redistribuirile de la @{name}",
- "account.last_status": "Last active",
+ "account.hide_reblogs": "Ascunde impulsurile de la @{name}",
+ "account.last_status": "Ultima activitate",
"account.link_verified_on": "Deținerea acestui link a fost verificată la {date}",
- "account.locked_info": "Acest profil este privat. Această persoană gestioneaz manual cine o urmărește.",
+ "account.locked_info": "Acest profil este privat. Această persoană gestionează manual cine o urmărește.",
"account.media": "Media",
- "account.mention": "Menționează @{name}",
+ "account.mention": "Menționează pe @{name}",
"account.moved_to": "{name} a fost mutat la:",
- "account.mute": "Oprește @{name}",
- "account.mute_notifications": "Oprește notificările de la @{name}",
+ "account.mute": "Ignoră pe @{name}",
+ "account.mute_notifications": "Ignoră notificările de la @{name}",
"account.muted": "Oprit",
- "account.never_active": "Never",
+ "account.never_active": "Niciodată",
"account.posts": "Postări",
- "account.posts_with_replies": "Postări și replici",
- "account.report": "Raportează @{name}",
+ "account.posts_with_replies": "Postări și răspunsuri",
+ "account.report": "Raportează pe @{name}",
"account.requested": "Se așteaptă aprobarea. Apasă pentru a anula cererea de urmărire",
"account.share": "Distribuie profilul lui @{name}",
- "account.show_reblogs": "Arată redistribuirile de la @{name}",
- "account.unblock": "Deblochează @{name}",
- "account.unblock_domain": "Arată {domain}",
+ "account.show_reblogs": "Arată impulsurile de la @{name}",
+ "account.unblock": "Deblochează pe @{name}",
+ "account.unblock_domain": "Deblochează domeniul {domain}",
"account.unendorse": "Nu promova pe profil",
- "account.unfollow": "Nu mai urmări",
- "account.unmute": "Activează notificările de la @{name}",
+ "account.unfollow": "Nu mai urmării",
+ "account.unmute": "Nu mai ignora pe @{name}",
"account.unmute_notifications": "Activează notificările de la @{name}",
- "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.",
- "alert.rate_limited.title": "Rate limited",
+ "alert.rate_limited.message": "Vă rugăm să reîncercați după {retry_time, time, medium}.",
+ "alert.rate_limited.title": "Rată limitată",
"alert.unexpected.message": "A apărut o eroare neașteptată.",
"alert.unexpected.title": "Hopa!",
- "announcement.announcement": "Announcement",
- "autosuggest_hashtag.per_week": "{count} per week",
+ "announcement.announcement": "Anunț",
+ "autosuggest_hashtag.per_week": "{count} pe săptămână",
"boost_modal.combo": "Poți apăsa {combo} pentru a omite asta data viitoare",
"bundle_column_error.body": "Ceva nu a funcționat la încărcarea acestui component.",
"bundle_column_error.retry": "Încearcă din nou",
"bundle_column_error.title": "Eroare de rețea",
"bundle_modal_error.close": "Închide",
- "bundle_modal_error.message": "Ceva nu a funcționat în timupul încărcării acestui component.",
+ "bundle_modal_error.message": "Ceva nu a funcționat în timpul încărcării acestei componente.",
"bundle_modal_error.retry": "Încearcă din nou",
"column.blocks": "Utilizatori blocați",
- "column.bookmarks": "Bookmarks",
+ "column.bookmarks": "Marcaje",
"column.community": "Fluxul Local",
"column.direct": "Mesaje directe",
- "column.directory": "Browse profiles",
- "column.domain_blocks": "Domenii ascunse",
+ "column.directory": "Răsfoiți profiluri",
+ "column.domain_blocks": "Domenii blocate",
"column.favourites": "Favorite",
"column.follow_requests": "Cereri de urmărire",
"column.home": "Acasă",
"column.lists": "Liste",
- "column.mutes": "Utilizatori opriți",
+ "column.mutes": "Utilizatori ignorați",
"column.notifications": "Notificări",
"column.pins": "Postări fixate",
"column.public": "Flux global",
@@ -74,94 +74,96 @@
"column_header.show_settings": "Arată setările",
"column_header.unpin": "Eliberează",
"column_subheading.settings": "Setări",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Doar media",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Această postare va fi trimisă doar utilizatorilor menționați.",
"compose_form.direct_message_warning_learn_more": "Află mai multe",
- "compose_form.hashtag_warning": "Această postare nu va fi listată sub nici un hastag. Doar postările publice pot fi găsite dupa un hastag.",
+ "compose_form.hashtag_warning": "Această postare nu va fi listată sub nici un hashtag pentru că este nelistată. Doar postările publice pot fi găsite după un hashtag.",
"compose_form.lock_disclaimer": "Contul tău nu este {locked}. Oricine te poate urmări fără aprobarea ta și vedea toate postările tale.",
"compose_form.lock_disclaimer.lock": "privat",
"compose_form.placeholder": "La ce te gândești?",
- "compose_form.poll.add_option": "Add a choice",
- "compose_form.poll.duration": "Poll duration",
- "compose_form.poll.option_placeholder": "Choice {number}",
- "compose_form.poll.remove_option": "Remove this choice",
- "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
- "compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
+ "compose_form.poll.add_option": "Adăugați o opțiune",
+ "compose_form.poll.duration": "Durata sondajului",
+ "compose_form.poll.option_placeholder": "Opțiunea {number}",
+ "compose_form.poll.remove_option": "Îndepărtați acestă opțiune",
+ "compose_form.poll.switch_to_multiple": "Modificați sondajul pentru a permite multiple opțiuni",
+ "compose_form.poll.switch_to_single": "Modificați sondajul pentru a permite o singură opțiune",
"compose_form.publish": "Postează",
"compose_form.publish_loud": "{publish}!",
- "compose_form.sensitive.hide": "Mark media as sensitive",
+ "compose_form.sensitive.hide": "Marcați conținutul media ca sensibil",
"compose_form.sensitive.marked": "Conținutul media este marcat ca sensibil",
"compose_form.sensitive.unmarked": "Conținutul media nu este marcat ca sensibil",
"compose_form.spoiler.marked": "Textul este ascuns sub o avertizare",
"compose_form.spoiler.unmarked": "Textul nu este ascuns",
- "compose_form.spoiler_placeholder": "Scrie averitzarea aici",
+ "compose_form.spoiler_placeholder": "Scrie avertizarea aici",
"confirmation_modal.cancel": "Anulează",
- "confirmations.block.block_and_report": "Block & Report",
+ "confirmations.block.block_and_report": "Blocați și Raportați",
"confirmations.block.confirm": "Blochează",
- "confirmations.block.message": "Ești sigur că vrei să blochezi {name}?",
+ "confirmations.block.message": "Ești sigur că vrei să blochezi pe {name}?",
"confirmations.delete.confirm": "Șterge",
- "confirmations.delete.message": "Ești șigur că vrei să ștergi asta?",
+ "confirmations.delete.message": "Ești sigur că vrei să ștergi asta?",
"confirmations.delete_list.confirm": "Șterge",
"confirmations.delete_list.message": "Ești sigur că vrei să ștergi permanent această listă?",
"confirmations.domain_block.confirm": "Ascunde tot domeniul",
- "confirmations.domain_block.message": "Ești absolut sigur că vrei să blochezi complet {domain}? În cele mai multe cazuri raportarea sau oprirea anumitor lucruri este suficientă și de preferat. Nu vei mai vedea nici un conținut de la acest domeniu in nici un flux public sau în notificările tale. Urmăritorii tăi de la acele domenii vor fi eliminați.",
- "confirmations.logout.confirm": "Log out",
- "confirmations.logout.message": "Are you sure you want to log out?",
- "confirmations.mute.confirm": "Oprește",
- "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.",
- "confirmations.mute.message": "Ești sigur că vrei să oprești {name}?",
+ "confirmations.domain_block.message": "Ești absolut sigur că vrei să blochezi complet domeniul {domain}? În cele mai multe cazuri raportarea sau ignorarea anumitor lucruri este suficientă și de preferat. Nu vei mai vedea nici un conținut de la acest domeniu în nici un flux public sau în notificările tale. Urmăritorii tăi de la acele domenii vor fi eliminați.",
+ "confirmations.logout.confirm": "Deconectare",
+ "confirmations.logout.message": "Ești sigur că vrei să te deconectezi?",
+ "confirmations.mute.confirm": "Ignoră",
+ "confirmations.mute.explanation": "Acest lucru va ascunde postări față de ei și postări în care sunt menționați, dar le vor permite încă să vă vadă postările și să vă urmărească.",
+ "confirmations.mute.message": "Ești sigur că vrei să ignori pe {name}?",
"confirmations.redraft.confirm": "Șterge și salvează ca ciornă",
- "confirmations.redraft.message": "Ești sigur că vrei să faci asta? Tot ce ține de această postare, inclusiv răspunsurile vor fi deconectate.",
+ "confirmations.redraft.message": "Ești sigur că vrei să ștergi această stare și să o faci ciornă? Favoritele și impulsurile se vor pierde, iar răspunsurile către postarea originală vor rămâne orfane.",
"confirmations.reply.confirm": "Răspunde",
"confirmations.reply.message": "Răspunzând la asta acum, mesajul pe care îl compui în prezent se va șterge. Ești sigur că vrei să continui?",
"confirmations.unfollow.confirm": "Nu mai urmări",
- "confirmations.unfollow.message": "Ești sigur că nu mai vrei să îl urmărești pe {name}?",
- "conversation.delete": "Delete conversation",
- "conversation.mark_as_read": "Mark as read",
- "conversation.open": "View conversation",
- "conversation.with": "With {names}",
- "directory.federated": "From known fediverse",
- "directory.local": "From {domain} only",
- "directory.new_arrivals": "New arrivals",
- "directory.recently_active": "Recently active",
- "embed.instructions": "Inserează această postare pe site-ul tău adăugând codul de mai jos.",
+ "confirmations.unfollow.message": "Ești sigur că nu mai vrei să urmărești pe {name}?",
+ "conversation.delete": "Ștergeți conversația",
+ "conversation.mark_as_read": "Marcați ca citit",
+ "conversation.open": "Vizualizați conversația",
+ "conversation.with": "Cu {names}",
+ "directory.federated": "De la un cunoscut fedivers",
+ "directory.local": "Doar de la {domain}",
+ "directory.new_arrivals": "Noi sosiți",
+ "directory.recently_active": "Recent activi",
+ "embed.instructions": "Înglobează această postare pe site-ul tău adăugând codul de mai jos.",
"embed.preview": "Cam așa va arăta:",
"emoji_button.activity": "Activitate",
"emoji_button.custom": "Personalizat",
"emoji_button.flags": "Marcaje",
"emoji_button.food": "Mâncare și Băuturi",
- "emoji_button.label": "Inserează un emoji",
+ "emoji_button.label": "Inserează un zâmbet",
"emoji_button.nature": "Natură",
- "emoji_button.not_found": "Fară emojiuri (╯°□°)╯︵ ┻━┻",
+ "emoji_button.not_found": "Fără zâmbete (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Obiecte",
"emoji_button.people": "Persoane",
"emoji_button.recent": "Utilizate frecvent",
"emoji_button.search": "Caută...",
"emoji_button.search_results": "Rezultatele căutării",
"emoji_button.symbols": "Simboluri",
- "emoji_button.travel": "Călătorii si Locuri",
+ "emoji_button.travel": "Călătorii și Locuri",
"empty_column.account_timeline": "Nici o postare aici!",
- "empty_column.account_unavailable": "Profile unavailable",
- "empty_column.blocks": "Nu ai blocat nici un utilizator incă.",
- "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
- "empty_column.community": "Fluxul local este gol. Scrie ceva public pentru a împinge bila la vale!",
- "empty_column.direct": "Nu ai nici un mesaj direct incă. Când trimiți sau primești unul, va fi afișat aici.",
- "empty_column.domain_blocks": "Nu sunt domenii ascunse incă.",
- "empty_column.favourited_statuses": "Nu ai nici o postare favorită încă. Când vei avea, vor fi afișate aici.",
+ "empty_column.account_unavailable": "Profil indisponibil",
+ "empty_column.blocks": "Nu ai blocat nici un utilizator încă.",
+ "empty_column.bookmarked_statuses": "Nu aveți nici o postare marcată încă. Atunci când veți marca una, va fi afișată aici.",
+ "empty_column.community": "Fluxul local este gol. Scrie ceva public pentru a sparge gheața!",
+ "empty_column.direct": "Nu ai nici un mesaj direct încă. Când trimiți sau primești unul, va fi afișat aici.",
+ "empty_column.domain_blocks": "Nu sunt domenii blocate încă.",
+ "empty_column.favourited_statuses": "Nu ai nici o postare favorită încă. Când vei favoriza una, va fi afișată aici.",
"empty_column.favourites": "Nimeni nu are această postare adăugată la favorite. Când cineva o va face va fi afișat aici.",
"empty_column.follow_requests": "Nu ai încă nici o cerere de urmărire. Când vei primi una, va fi afișată aici.",
- "empty_column.hashtag": "Acest hastag nu a fost folosit încă.",
+ "empty_column.hashtag": "Acest hashtag nu a fost folosit încă.",
"empty_column.home": "Fluxul tău este gol. Vizitează {public} sau fă o căutare pentru a începe să cunoști oameni noi.",
"empty_column.home.public_timeline": "fluxul public",
"empty_column.list": "Nu este nimic încă în această listă. Când membrii acestei liste vor începe să posteze, va apărea aici.",
"empty_column.lists": "Nu ai încă nici o listă. Când vei crea una, va apărea aici.",
- "empty_column.mutes": "Nu ai oprit nici un utilizator incă.",
+ "empty_column.mutes": "Nu ai ignorat nici un utilizator încă.",
"empty_column.notifications": "Nu ai nici o notificare încă. Interacționează cu alții pentru a începe o conversație.",
- "empty_column.public": "Nu este nimci aici încă! Scrie ceva public, sau urmărește alți utilizatori din alte instanțe pentru a porni fluxul",
- "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
- "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
- "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
- "errors.unexpected_crash.report_issue": "Report issue",
+ "empty_column.public": "Nu este nimic aici! Scrie ceva public, sau urmărește alți utilizatori din alte instanțe pentru a porni fluxul",
+ "error.unexpected_crash.explanation": "Din cauza unei erori în codul nostru sau a unei probleme de compatibilitate cu navigatorul, această pagină nu a putut fi afișată corect.",
+ "error.unexpected_crash.next_steps": "Încercați să reîmprospătați pagina. Dacă acest lucru nu ajută, este posibil să mai puteți folosi site-ul printr-un navigator diferit sau o aplicație nativă.",
+ "errors.unexpected_crash.copy_stacktrace": "Copiați stiva în clipboard",
+ "errors.unexpected_crash.report_issue": "Raportați o problemă",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
"federation.federated.short": "Federated",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Autorizează",
"follow_request.reject": "Respinge",
+ "follow_requests.unlocked_explanation": "Chiar dacă contul dvs nu este blocat, personalul {domain} a crezut că ați putea dori să revizuiți cererile de la aceste conturi în mod manual.",
"getting_started.developers": "Dezvoltatori",
"getting_started.directory": "Explorează",
"getting_started.documentation": "Documentație",
@@ -180,47 +183,47 @@
"hashtag.column_header.tag_mode.all": "și {additional}",
"hashtag.column_header.tag_mode.any": "sau {additional}",
"hashtag.column_header.tag_mode.none": "fără {additional}",
- "hashtag.column_settings.select.no_options_message": "No suggestions found",
- "hashtag.column_settings.select.placeholder": "Enter hashtags…",
+ "hashtag.column_settings.select.no_options_message": "Nu s-au găsit sugestii",
+ "hashtag.column_settings.select.placeholder": "Itroduceți hashtag-uri…",
"hashtag.column_settings.tag_mode.all": "Toate acestea",
"hashtag.column_settings.tag_mode.any": "Oricare din acestea",
- "hashtag.column_settings.tag_mode.none": "Niciuna din aceastea",
+ "hashtag.column_settings.tag_mode.none": "Niciuna din acestea",
"hashtag.column_settings.tag_toggle": "Adaugă etichete adiționale pentru această coloană",
"home.column_settings.basic": "De bază",
- "home.column_settings.show_reblogs": "Arată redistribuirile",
+ "home.column_settings.show_reblogs": "Arată impulsurile",
"home.column_settings.show_replies": "Arată răspunsurile",
- "home.hide_announcements": "Hide announcements",
- "home.show_announcements": "Show announcements",
- "intervals.full.days": "{number, plural, one {# day} other {# days}}",
- "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
- "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
+ "home.hide_announcements": "Ascundeți anunțurile",
+ "home.show_announcements": "Afișați anunțurile",
+ "intervals.full.days": "{number, plural,one {# zi} other {# zile}}",
+ "intervals.full.hours": "{number, plural, one {# oră} other {# ore}}",
+ "intervals.full.minutes": "{number, plural, one {# minut} other {# minute}}",
"introduction.federation.action": "Următorul",
"introduction.federation.federated.headline": "Federalizat",
"introduction.federation.federated.text": "Postările publice de pe alte servere din rețea vor apărea in fluxul global.",
"introduction.federation.home.headline": "Acasă",
- "introduction.federation.home.text": "Postările de la persoanele pe care le urmărești vor apărea in fluxul tău \"Acasă\". Poți urmări pe orice de pe orice server!",
+ "introduction.federation.home.text": "Postările de la persoanele pe care le urmărești vor apărea în fluxul tău \"Acasă\". Poți urmări pe orice de pe orice server!",
"introduction.federation.local.headline": "Local",
"introduction.federation.local.text": "Postările publice de la persoanele de pe acest server vor apărea în fluxul local.",
"introduction.interactions.action": "Încheie ghidul!",
"introduction.interactions.favourite.headline": "Favorite",
- "introduction.interactions.favourite.text": "Poți salva o postare pentru a fi citită mai târziu și poți lăsa autorul să știe că iți place adăugândo la favorite.",
- "introduction.interactions.reblog.headline": "Redistribuie",
- "introduction.interactions.reblog.text": "Poți împărtăși postările altora cu urmăritorii tăi redistribuindule.",
+ "introduction.interactions.favourite.text": "Poți salva o postare pentru a fi citită mai târziu și poți anunța autorul să știe că iți place adăugând-o la favorite.",
+ "introduction.interactions.reblog.headline": "Impuls",
+ "introduction.interactions.reblog.text": "Poți împărtăși postările altora cu urmăritorii tăi impulsionându-le.",
"introduction.interactions.reply.headline": "Răspunde",
"introduction.interactions.reply.text": "Poți răspunde la postările tale și alte altora, care se vor lărgii în discuții.",
"introduction.welcome.action": "Să începem!",
"introduction.welcome.headline": "Primii pași",
- "introduction.welcome.text": "Bun Venit in federație! In câteva momente, vei putea să transmiți mesaje și să participi la discuții cu oameni noi intr-o varietate foarte largă de servere din întreaga lume. Dar în special acest server, {domain},găzduiește profilul tău, deci reține numele acestuia.",
- "keyboard_shortcuts.back": "navighează inapoi",
+ "introduction.welcome.text": "Bun Venit în federație! În câteva momente, vei putea să transmiți mesaje și să participi la discuții cu oameni noi într-o varietate foarte largă de servere din întreaga lume. Dar în special acest server, {domain}, găzduiește profilul tău, deci reține numele acestuia.",
+ "keyboard_shortcuts.back": "navighează înapoi",
"keyboard_shortcuts.blocked": "să deschidă lista utilizatorilor blocați",
- "keyboard_shortcuts.boost": "să redistribuie",
- "keyboard_shortcuts.column": "să focuzeze o postare in una dintre coloane",
- "keyboard_shortcuts.compose": "sa focuzeze zona de compunere",
+ "keyboard_shortcuts.boost": "să impulsioneze",
+ "keyboard_shortcuts.column": "să focalizeze o postare în una dintre coloane",
+ "keyboard_shortcuts.compose": "sa focalizeze zona de compunere",
"keyboard_shortcuts.description": "Descriere",
"keyboard_shortcuts.direct": "să deschidă coloana de mesaje directe",
- "keyboard_shortcuts.down": "să fie mutată jos in lista",
- "keyboard_shortcuts.enter": "să deschidă un status",
- "keyboard_shortcuts.favourite": "să adauge la favorite",
+ "keyboard_shortcuts.down": "să fie mutată jos în lista",
+ "keyboard_shortcuts.enter": "să deschidă o stare",
+ "keyboard_shortcuts.favourite": "să favorizeze",
"keyboard_shortcuts.favourites": "să deschidă lista cu favorite",
"keyboard_shortcuts.federated": "să deschidă fluxul global",
"keyboard_shortcuts.heading": "Comenzi rapide",
@@ -229,100 +232,100 @@
"keyboard_shortcuts.legend": "să afișeze această legendă",
"keyboard_shortcuts.local": "să deschidă fluxul local",
"keyboard_shortcuts.mention": "să menționeze autorul",
- "keyboard_shortcuts.muted": "să deschidă lista utilizatorilor opriți",
+ "keyboard_shortcuts.muted": "să deschidă lista utilizatorilor ignorați",
"keyboard_shortcuts.my_profile": "să deschidă profilul tău",
"keyboard_shortcuts.notifications": "să deschidă coloana cu notificări",
- "keyboard_shortcuts.open_media": "to open media",
+ "keyboard_shortcuts.open_media": "pentru a deschide media",
"keyboard_shortcuts.pinned": "să deschidă lista postărilor fixate",
- "keyboard_shortcuts.profile": "să deschidă porfilul autorului",
+ "keyboard_shortcuts.profile": "să deschidă profilul autorului",
"keyboard_shortcuts.reply": "să răspundă",
"keyboard_shortcuts.requests": "să deschidă lista cu cereri de urmărire",
- "keyboard_shortcuts.search": "să focuseze căutarea",
+ "keyboard_shortcuts.search": "să focalizeze căutarea",
"keyboard_shortcuts.start": "să deschidă coloana \"Începere\"",
- "keyboard_shortcuts.toggle_hidden": "să arate/ascundă textul in spatele CW",
- "keyboard_shortcuts.toggle_sensitivity": "to show/hide media",
+ "keyboard_shortcuts.toggle_hidden": "să arate/ascundă textul în spatele CW",
+ "keyboard_shortcuts.toggle_sensitivity": "pentru a afișa/ascunde media",
"keyboard_shortcuts.toot": "să înceapă o postare nouă",
"keyboard_shortcuts.unfocus": "să dezactiveze zona de compunere/căutare",
"keyboard_shortcuts.up": "să mute mai sus în listă",
"lightbox.close": "Închide",
"lightbox.next": "Următorul",
"lightbox.previous": "Precedentul",
- "lightbox.view_context": "View context",
+ "lightbox.view_context": "Vizualizați contextul",
"lists.account.add": "Adaugă în listă",
"lists.account.remove": "Elimină din listă",
"lists.delete": "Șterge lista",
"lists.edit": "Editează lista",
- "lists.edit.submit": "Change title",
+ "lists.edit.submit": "Schimbă titlul",
"lists.new.create": "Adaugă listă",
"lists.new.title_placeholder": "Titlu pentru noua listă",
- "lists.search": "Caută printre persoanale pe care le urmărești",
+ "lists.search": "Caută printre persoanele pe care le urmărești",
"lists.subheading": "Listele tale",
- "load_pending": "{count, plural, one {# new item} other {# new items}}",
- "loading_indicator.label": "Încărcare...",
- "media_gallery.toggle_visible": "Comutați vizibilitatea",
+ "load_pending": "{count, plural, one {# element nou} other {# elemente noi}}",
+ "loading_indicator.label": "Se încarcă...",
+ "media_gallery.toggle_visible": "Ascunde media",
"missing_indicator.label": "Nu a fost găsit",
"missing_indicator.sublabel": "Această resursă nu a putut fi găsită",
"mute_modal.hide_notifications": "Ascunzi notificările de la acest utilizator?",
"navigation_bar.apps": "Aplicații mobile",
"navigation_bar.blocks": "Utilizatori blocați",
- "navigation_bar.bookmarks": "Bookmarks",
+ "navigation_bar.bookmarks": "Marcaje",
"navigation_bar.community_timeline": "Flux local",
"navigation_bar.compose": "Compune o nouă postare",
"navigation_bar.direct": "Mesaje directe",
"navigation_bar.discover": "Descoperă",
- "navigation_bar.domain_blocks": "Domenii ascunse",
+ "navigation_bar.domain_blocks": "Domenii blocate",
"navigation_bar.edit_profile": "Editează profilul",
"navigation_bar.favourites": "Favorite",
- "navigation_bar.filters": "Cuvinte oprite",
+ "navigation_bar.filters": "Cuvinte ignorate",
"navigation_bar.follow_requests": "Cereri de urmărire",
- "navigation_bar.follows_and_followers": "Follows and followers",
+ "navigation_bar.follows_and_followers": "Urmăriri și urmăritori",
"navigation_bar.info": "Despre această instanță",
"navigation_bar.keyboard_shortcuts": "Prescurtări",
"navigation_bar.lists": "Liste",
"navigation_bar.logout": "Deconectare",
- "navigation_bar.mutes": "Utilizatori opriți",
- "navigation_bar.personal": "Personal",
+ "navigation_bar.mutes": "Utilizatori ignorați",
+ "navigation_bar.personal": "Personale",
"navigation_bar.pins": "Postări fixate",
"navigation_bar.preferences": "Preferințe",
"navigation_bar.public_timeline": "Flux global",
"navigation_bar.security": "Securitate",
- "notification.favourite": "{name} a adăugat statusul tău la favorite",
+ "notification.favourite": "{name} a adăugat postarea ta la favorite",
"notification.follow": "{name} te urmărește",
- "notification.follow_request": "{name} has requested to follow you",
+ "notification.follow_request": "{name} a cerut să te urmărească",
"notification.mention": "{name} te-a menționat",
- "notification.own_poll": "Your poll has ended",
- "notification.poll": "A poll you have voted in has ended",
- "notification.reblog": "{name} a redistribuit postarea ta",
+ "notification.own_poll": "Sondajul tău s-a sfârșit",
+ "notification.poll": "Un sondaj la care ai votat s-a sfârșit",
+ "notification.reblog": "{name} a impulsionat postarea ta",
"notifications.clear": "Șterge notificările",
- "notifications.clear_confirmation": "Ești sigur că vrei să ștergi toate notificările?",
+ "notifications.clear_confirmation": "Ești sigur că vrei să ștergi permanent toate notificările?",
"notifications.column_settings.alert": "Notificări pe desktop",
"notifications.column_settings.favourite": "Favorite:",
"notifications.column_settings.filter_bar.advanced": "Afișează toate categoriile",
"notifications.column_settings.filter_bar.category": "Bară de filtrare rapidă",
"notifications.column_settings.filter_bar.show": "Arată",
"notifications.column_settings.follow": "Noi urmăritori:",
- "notifications.column_settings.follow_request": "New follow requests:",
+ "notifications.column_settings.follow_request": "Noi cereri de urmărire:",
"notifications.column_settings.mention": "Mențiuni:",
- "notifications.column_settings.poll": "Poll results:",
+ "notifications.column_settings.poll": "Rezultate sondaj:",
"notifications.column_settings.push": "Notificări push",
- "notifications.column_settings.reblog": "Redistribuite:",
+ "notifications.column_settings.reblog": "Impulsuri:",
"notifications.column_settings.show": "Arată în coloană",
"notifications.column_settings.sound": "Redă sunet",
"notifications.filter.all": "Toate",
- "notifications.filter.boosts": "Redistribuiri",
+ "notifications.filter.boosts": "Impulsuri",
"notifications.filter.favourites": "Favorite",
"notifications.filter.follows": "Urmărește",
"notifications.filter.mentions": "Menționări",
- "notifications.filter.polls": "Poll results",
+ "notifications.filter.polls": "Rezultate sondaj",
"notifications.group": "{count} notificări",
- "poll.closed": "Closed",
- "poll.refresh": "Refresh",
- "poll.total_people": "{count, plural, one {# person} other {# people}}",
- "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
- "poll.vote": "Vote",
- "poll.voted": "You voted for this answer",
- "poll_button.add_poll": "Add a poll",
- "poll_button.remove_poll": "Remove poll",
+ "poll.closed": "Închis",
+ "poll.refresh": "Reîmprospătează",
+ "poll.total_people": "{count, plural, one {# persoană} other {# persoane}}",
+ "poll.total_votes": "{count, plural, one {# vot} other {# voturi}}",
+ "poll.vote": "Votează",
+ "poll.voted": "Ai votat pentru acest răspuns",
+ "poll_button.add_poll": "Adaugă un sondaj",
+ "poll_button.remove_poll": "Îndepărtează sondajul",
"privacy.change": "Cine vede asta",
"privacy.direct.long": "Postează doar pentru utilizatorii menționați",
"privacy.direct.short": "Direct",
@@ -330,77 +333,77 @@
"privacy.private.short": "Doar urmăritorii",
"privacy.public.long": "Postează în fluxul public",
"privacy.public.short": "Public",
- "privacy.unlisted.long": "Nu afisa in fluxul public",
+ "privacy.unlisted.long": "Nu afișa în fluxul public",
"privacy.unlisted.short": "Nelistat",
- "refresh": "Refresh",
- "regeneration_indicator.label": "Încărcare…",
+ "refresh": "Reîmprospătează",
+ "regeneration_indicator.label": "Se încarcă…",
"regeneration_indicator.sublabel": "Fluxul tău este în preparare!",
"relative_time.days": "{number}z",
- "relative_time.hours": "{number}h",
+ "relative_time.hours": "{number}o",
"relative_time.just_now": "acum",
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
- "relative_time.today": "today",
+ "relative_time.today": "azi",
"reply_indicator.cancel": "Anulează",
- "report.forward": "Redirecționează catre {target}",
+ "report.forward": "Redirecționează către {target}",
"report.forward_hint": "Acest cont este de pe un alt server. Trimitem o copie anonimă a raportului și acolo?",
- "report.hint": "Sesizarea va fi trimsă către moderatorii acestei instanțe. Poți oferi o explicație pentru această sesizare mai jos:",
- "report.placeholder": "Comentarii opționale",
+ "report.hint": "Sesizarea va fi trimisă către moderatorii acestei instanțe. Poți oferi o explicație pentru această sesizare mai jos:",
+ "report.placeholder": "Comentarii adiționale",
"report.submit": "Trimite",
"report.target": "Raportează {target}",
"search.placeholder": "Caută",
"search_popout.search_format": "Formate pentru căutare avansată",
- "search_popout.tips.full_text": "Textele simple returnează statusuri pe care le-ai scris, favorizat, redistribuit, sau în care sunt menționate , deasmenea și utilizatorii sau hastagurile care se potrivesc.",
+ "search_popout.tips.full_text": "Textele simple returnează postări pe care le-ai scris, favorizat, impulsionat, sau în care sunt menționate, deasemenea și utilizatorii sau hashtag-urile care se potrivesc.",
"search_popout.tips.hashtag": "hashtag",
- "search_popout.tips.status": "status",
- "search_popout.tips.text": "Textele simple returnează nume, nume de utilizarori și hastagurile care se potrivesc",
+ "search_popout.tips.status": "stare",
+ "search_popout.tips.text": "Textele simple returnează nume, nume de utilizatori și hashtag-urile care se potrivesc",
"search_popout.tips.user": "utilizator",
- "search_results.accounts": "Oameni",
- "search_results.hashtags": "Hashtaguri",
+ "search_results.accounts": "Persoane",
+ "search_results.hashtags": "Hashtag-uri",
"search_results.statuses": "Postări",
- "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
- "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
- "status.admin_account": "Open moderation interface for @{name}",
- "status.admin_status": "Open this status in the moderation interface",
- "status.block": "Blochează @{name}",
- "status.bookmark": "Bookmark",
- "status.cancel_reblog_private": "Nedistribuit",
- "status.cannot_reblog": "Această postare nu poate fi redistribuită",
- "status.copy": "Copy link to status",
+ "search_results.statuses_fts_disabled": "Căutarea de postări după conținutul lor nu este activată pe acest server.",
+ "search_results.total": "{count, number}{count, plural, one { rezultat} other { rezultate}}",
+ "status.admin_account": "Deschide interfața de moderare pentru @{name}",
+ "status.admin_status": "Deschide această stare în interfața de moderare",
+ "status.block": "Blochează pe @{name}",
+ "status.bookmark": "Marchează",
+ "status.cancel_reblog_private": "Repuls",
+ "status.cannot_reblog": "Această postare nu poate fi impulsionată",
+ "status.copy": "Copiează link-ul postării",
"status.delete": "Șterge",
- "status.detailed_status": "Conversația detailată",
- "status.direct": "Mesaj direct @{name}",
- "status.embed": "Încorporare",
+ "status.detailed_status": "Conversația detaliată",
+ "status.direct": "Mesaj direct către @{name}",
+ "status.embed": "Înglobează",
"status.favourite": "Favorite",
"status.filtered": "Sortate",
"status.load_more": "Încarcă mai multe",
"status.local_only": "This post is only visible by other users of your instance",
"status.media_hidden": "Media ascunsă",
- "status.mention": "Mentionează @{name}",
+ "status.mention": "Menționează pe @{name}",
"status.more": "Mai mult",
- "status.mute": "Oprește @{name}",
- "status.mute_conversation": "Oprește conversația",
- "status.open": "Extinde acest status",
+ "status.mute": "Ignoră pe @{name}",
+ "status.mute_conversation": "Ignoră conversația",
+ "status.open": "Extinde această stare",
"status.pin": "Fixează pe profil",
"status.pinned": "Postare fixată",
"status.read_more": "Citește mai mult",
- "status.reblog": "Redistribuie",
- "status.reblog_private": "Redistribuie către audiența originală",
- "status.reblogged_by": "{name} a redistribuit",
- "status.reblogs.empty": "Nimeni nu a redistribuit această postare până acum. Când cineva o va face, va apărea aici.",
+ "status.reblog": "Impuls",
+ "status.reblog_private": "Impulsionează către audiența originală",
+ "status.reblogged_by": "{name} a impulsionat",
+ "status.reblogs.empty": "Nimeni nu a impulsionat această postare până acum. Când cineva o va face, va apărea aici.",
"status.redraft": "Șterge și adaugă la ciorne",
- "status.remove_bookmark": "Remove bookmark",
+ "status.remove_bookmark": "Îndepărtează marcajul",
"status.reply": "Răspunde",
- "status.replyAll": "Răspunde la topic",
- "status.report": "Raportează @{name}",
+ "status.replyAll": "Răspunde la discuție",
+ "status.report": "Raportează pe @{name}",
"status.sensitive_warning": "Conținut sensibil",
"status.share": "Distribuie",
"status.show_less": "Arată mai puțin",
"status.show_less_all": "Arată mai puțin pentru toți",
"status.show_more": "Arată mai mult",
"status.show_more_all": "Arată mai mult pentru toți",
- "status.show_thread": "Arată topicul",
- "status.uncached_media_warning": "Not available",
+ "status.show_thread": "Arată discuția",
+ "status.uncached_media_warning": "Indisponibil",
"status.unmute_conversation": "Repornește conversația",
"status.unpin": "Eliberează din profil",
"suggestions.dismiss": "Omite sugestia",
@@ -410,33 +413,33 @@
"tabs_bar.local_timeline": "Local",
"tabs_bar.notifications": "Notificări",
"tabs_bar.search": "Căutare",
- "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
- "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
- "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
- "time_remaining.moments": "Moments remaining",
- "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
- "trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} vorbesc",
- "trends.trending_now": "Trending now",
+ "time_remaining.days": "{number, plural, one {# zi} other {# zile}} rămase",
+ "time_remaining.hours": "{number, plural, one {# oră} other {# ore}} rămase",
+ "time_remaining.minutes": "{number, plural, one {# minut} other {# minute}} rămase",
+ "time_remaining.moments": "Momente rămase",
+ "time_remaining.seconds": "{number, plural, one {# secundă} other {# secunde}} rămase",
+ "trends.count_by_accounts": "{count} {rawCount, plural, one {persoană} other {persoane}} vorbește/ecs",
+ "trends.trending_now": "În tendință acum",
"ui.beforeunload": "Postarea se va pierde dacă părăsești pagina.",
"upload_area.title": "Trage și eliberează pentru a încărca",
"upload_button.label": "Adaugă media (JPEG, PNG, GIF, WebM, MP4, MOV)",
- "upload_error.limit": "File upload limit exceeded.",
- "upload_error.poll": "File upload not allowed with polls.",
- "upload_form.audio_description": "Describe for people with hearing loss",
+ "upload_error.limit": "Limita de încărcare a fișierului a fost depășită.",
+ "upload_error.poll": "Încărcarea fișierului nu este permisă cu sondaje.",
+ "upload_form.audio_description": "Descrie pentru persoanele cu deficiență a auzului",
"upload_form.description": "Adaugă o descriere pentru persoanele cu deficiențe de vedere",
- "upload_form.edit": "Edit",
+ "upload_form.edit": "Editează",
"upload_form.undo": "Șterge",
- "upload_form.video_description": "Describe for people with hearing loss or visual impairment",
- "upload_modal.analyzing_picture": "Analyzing picture…",
- "upload_modal.apply": "Apply",
+ "upload_form.video_description": "Descrie pentru persoanele cu pierdere a auzului sau tulburări de vedere",
+ "upload_modal.analyzing_picture": "Se analizează imaginea…",
+ "upload_modal.apply": "Aplică",
"upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
- "upload_modal.detect_text": "Detect text from picture",
- "upload_modal.edit_media": "Edit media",
- "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
- "upload_modal.preview_label": "Preview ({ratio})",
+ "upload_modal.detect_text": "Detectare text din imagine",
+ "upload_modal.edit_media": "Editați media",
+ "upload_modal.hint": "Faceţi clic sau trageţi cercul pe previzualizare pentru a alege punctul focal care va fi întotdeauna vizualizat pe toate miniaturile.",
+ "upload_modal.preview_label": "Previzualizare ({ratio})",
"upload_progress.label": "Se Încarcă...",
"video.close": "Închide video",
- "video.download": "Download file",
+ "video.download": "Descărcați fișierul",
"video.exit_fullscreen": "Închide",
"video.expand": "Extinde video",
"video.fullscreen": "Ecran întreg",
diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json
index 54bfc713e..d95594be5 100644
--- a/app/javascript/mastodon/locales/ru.json
+++ b/app/javascript/mastodon/locales/ru.json
@@ -41,7 +41,7 @@
"account.unmute_notifications": "Показывать уведомления от @{name}",
"alert.rate_limited.message": "Пожалуйста, повторите после {retry_time, time, medium}.",
"alert.rate_limited.title": "Вы выполняете действие слишком часто",
- "alert.unexpected.message": "Что-то пошло не так.",
+ "alert.unexpected.message": "Произошла непредвиденная ошибка.",
"alert.unexpected.title": "Ой!",
"announcement.announcement": "Объявление",
"autosuggest_hashtag.per_week": "{count} / неделю",
@@ -74,7 +74,9 @@
"column_header.show_settings": "Показать настройки",
"column_header.unpin": "Открепить",
"column_subheading.settings": "Настройки",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Только с медиафайлами",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Адресованные посты отправляются и видны только упомянутым в них пользователям.",
"compose_form.direct_message_warning_learn_more": "Узнать подробнее",
"compose_form.hashtag_warning": "Так как этот пост не публичный, он не отобразится в поиске по хэштегам.",
@@ -155,12 +157,12 @@
"empty_column.home.public_timeline": "публичные ленты",
"empty_column.list": "В этом списке пока ничего нет.",
"empty_column.lists": "У вас ещё нет списков. Созданные вами списки будут показаны здесь.",
- "empty_column.mutes": "Вы никого не игнорируете и всех внимательно выслушиваете.",
+ "empty_column.mutes": "Вы ещё никого не добавляли в список игнорируемых.",
"empty_column.notifications": "У вас пока нет уведомлений. Взаимодействуйте с другими, чтобы завести разговор.",
"empty_column.public": "Здесь ничего нет! Опубликуйте что-нибудь или подпишитесь на пользователей с других узлов, чтобы заполнить ленту",
"error.unexpected_crash.explanation": "Из-за несовместимого браузера или ошибки в нашем коде, эта страница не может быть корректно отображена.",
"error.unexpected_crash.next_steps": "Попробуйте обновить страницу. Если проблема не исчезает, используйте Mastodon из-под другого браузера или приложения.",
- "errors.unexpected_crash.copy_stacktrace": "Копировать стектрейс в буфер обмена",
+ "errors.unexpected_crash.copy_stacktrace": "Скопировать диагностическую информацию",
"errors.unexpected_crash.report_issue": "Сообщить о проблеме",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Авторизовать",
"follow_request.reject": "Отказать",
+ "follow_requests.unlocked_explanation": "Этот запрос отправлен с учётной записи, для которой администрация {domain} включила ручную проверку подписок.",
"getting_started.developers": "Разработчикам",
"getting_started.directory": "Каталог профилей",
"getting_started.documentation": "Документация",
@@ -202,12 +205,12 @@
"introduction.federation.local.headline": "Локальная лента",
"introduction.federation.local.text": "Публичные посты от людей с того же сервера, что и вы, будут отображены в локальной ленте.",
"introduction.interactions.action": "Завершить обучение",
- "introduction.interactions.favourite.headline": "Отметки «нравится»",
+ "introduction.interactions.favourite.headline": "Помечайте избранное",
"introduction.interactions.favourite.text": "Дайте автору знать, что пост вам понравился и вернитесь к нему позже, добавив его в избранное.",
- "introduction.interactions.reblog.headline": "Продвижения",
- "introduction.interactions.reblog.text": "Вы можете делиться постами других людей, продвигая их в своей учётной записи.",
- "introduction.interactions.reply.headline": "Ответы",
- "introduction.interactions.reply.text": "Вы можете отвечать свои и чужие посты, образуя цепочки сообщений (обсуждения).",
+ "introduction.interactions.reblog.headline": "Продвигайте",
+ "introduction.interactions.reblog.text": "Делитесь постами других людей со своими подписчиками, продвигая их в своём профиле.",
+ "introduction.interactions.reply.headline": "Отвечайте",
+ "introduction.interactions.reply.text": "Отвечайте на свои или чужие посты, образуя цепочки сообщений — обсуждения.",
"introduction.welcome.action": "Поехали!",
"introduction.welcome.headline": "Первые шаги",
"introduction.welcome.text": "Добро пожаловать в Федиверс! Уже через мгновение вы сможете отправлять сообщения и общаться со своими друзьями с любых узлов. Но этот узел — {domain} — особенный: на нём располагается ваш профиль, так что не забудьте его название.",
@@ -371,12 +374,12 @@
"status.detailed_status": "Подробный просмотр обсуждения",
"status.direct": "Написать @{name}",
"status.embed": "Встроить на свой сайт",
- "status.favourite": "Нравится",
+ "status.favourite": "В избранное",
"status.filtered": "Отфильтровано",
"status.load_more": "Загрузить остальное",
"status.media_hidden": "Файл скрыт",
"status.mention": "Упомянуть @{name}",
- "status.more": "Больше",
+ "status.more": "Ещё",
"status.mute": "Игнорировать @{name}",
"status.mute_conversation": "Игнорировать обсуждение",
"status.open": "Открыть пост",
diff --git a/app/javascript/mastodon/locales/sc.json b/app/javascript/mastodon/locales/sc.json
new file mode 100644
index 000000000..db2bb0dac
--- /dev/null
+++ b/app/javascript/mastodon/locales/sc.json
@@ -0,0 +1,445 @@
+{
+ "account.add_or_remove_from_list": "Agiunghe o boga dae is listas",
+ "account.badges.bot": "Bot",
+ "account.badges.group": "Grupu",
+ "account.block": "Bloca @{name}",
+ "account.block_domain": "Bloca domìniu{domain}",
+ "account.blocked": "Blocadu",
+ "account.cancel_follow_request": "Annulla rechesta de sighidura",
+ "account.direct": "Messàgiu deretu a @{name}",
+ "account.domain_blocked": "Domìniu blocadu",
+ "account.edit_profile": "Modìfica profilu",
+ "account.endorse": "Cussìgia in su profilu tuo",
+ "account.follow": "Sighi",
+ "account.followers": "Sighiduras",
+ "account.followers.empty": "Nemos sighit ancora custa persone.",
+ "account.follows": "Sighende",
+ "account.follows.empty": "Custa persone non sighit ancora a nemos.",
+ "account.follows_you": "Ti sighit",
+ "account.hide_reblogs": "Cua is cumpartziduras de @{name}",
+ "account.last_status": "Ùrtima atividade",
+ "account.link_verified_on": "Sa propiedade de custu ligàmene est istada controllada su {date}",
+ "account.locked_info": "Sa persone chi tenet sa propiedade revisionat a manu chie dda podet sighire.",
+ "account.media": "Cuntenutu multimediale",
+ "account.mention": "Mentova @{name}",
+ "account.moved_to": "{name} est istadu trasferidu a:",
+ "account.mute": "Pone @name a sa muda",
+ "account.mute_notifications": "Notìficas disativadas dae @{name}",
+ "account.muted": "A sa muda",
+ "account.never_active": "Mai",
+ "account.posts": "Tuts",
+ "account.posts_with_replies": "Tuts e rispostas",
+ "account.report": "Signala @{name}",
+ "account.requested": "Incarca pro annullare sa rechesta de sighidura",
+ "account.share": "Cumpartzi su profilu de @{name}",
+ "account.show_reblogs": "Ammustra is cumpartziduras de @{name}",
+ "account.unblock": "Isbloca @{name}",
+ "account.unblock_domain": "Isbloca su domìniu {domain}",
+ "account.unendorse": "Non cussiges in su profilu",
+ "account.unfollow": "Non sigas prus",
+ "account.unmute": "Torra a ativare @{name}",
+ "account.unmute_notifications": "Ativa notìficas pro @{name}",
+ "alert.rate_limited.message": "Torra·bi a proare a pustis de {retry_time, time, medium}.",
+ "alert.rate_limited.title": "Màssimu de rechestas barigadu",
+ "alert.unexpected.message": "B'at àpidu una faddina.",
+ "alert.unexpected.title": "Oops!",
+ "announcement.announcement": "Annùntziu",
+ "autosuggest_hashtag.per_week": "{count} a sa chida",
+ "boost_modal.combo": "Podes incarcare {combo} pro brincare custu sa borta chi benit",
+ "bundle_column_error.body": "Faddina in su carrigamentu de custu cumponente.",
+ "bundle_column_error.retry": "Torra·bi a proare",
+ "bundle_column_error.title": "Faddina de connessione",
+ "bundle_modal_error.close": "Serra",
+ "bundle_modal_error.message": "Faddina in su carrigamentu de custu cumponente.",
+ "bundle_modal_error.retry": "Torra·bi a proare",
+ "column.blocks": "Persones blocadas",
+ "column.bookmarks": "Marcadores",
+ "column.community": "Lìnia de tempus locale",
+ "column.direct": "Messàgios diretos",
+ "column.directory": "Nàviga in is profilos",
+ "column.domain_blocks": "Domìnios blocados",
+ "column.favourites": "Preferidos",
+ "column.follow_requests": "Rechestas de sighidura",
+ "column.home": "Printzipale",
+ "column.lists": "Listas",
+ "column.mutes": "Persones a sa muda",
+ "column.notifications": "Notìficas",
+ "column.pins": "Tuts apicados",
+ "column.public": "Lìnia de tempus federada",
+ "column_back_button.label": "In segus",
+ "column_header.hide_settings": "Cua is cunfiguratziones",
+ "column_header.moveLeft_settings": "Moe sa colunna a manca",
+ "column_header.moveRight_settings": "Moe sa colunna a dereta",
+ "column_header.pin": "Apica",
+ "column_header.show_settings": "Ammustra is cunfiguratziones",
+ "column_header.unpin": "Boga dae pitzu",
+ "column_subheading.settings": "Cunfiguratziones",
+ "community.column_settings.local_only": "Local only",
+ "community.column_settings.media_only": "Multimediale isceti",
+ "community.column_settings.remote_only": "Remote only",
+ "compose_form.direct_message_warning": "Custu tut at a èssere imbiadu isceti a is persones mentovadas.",
+ "compose_form.direct_message_warning_learn_more": "Àteras informatziones",
+ "compose_form.hashtag_warning": "Custu tut no at a èssere ammustradu in peruna eticheta, dae chi no est listadu.",
+ "compose_form.lock_disclaimer": "Cale si siat persone ti podet sighire pro bìdere is messàgios tuos chi imbies a is chi ti sighint.",
+ "compose_form.lock_disclaimer.lock": "blocadu",
+ "compose_form.placeholder": "A ite ses pensende?",
+ "compose_form.poll.add_option": "Agiunghe unu sèberu",
+ "compose_form.poll.duration": "Longària de su sondàgiu",
+ "compose_form.poll.option_placeholder": "Optzione {number}",
+ "compose_form.poll.remove_option": "Boga custa optzione",
+ "compose_form.poll.switch_to_multiple": "Muda su sondàgiu pro permìtere multi-optziones",
+ "compose_form.poll.switch_to_single": "Muda su sondàgiu pro permìtere un'optzione isceti",
+ "compose_form.publish": "Tut",
+ "compose_form.publish_loud": "{publish}!",
+ "compose_form.sensitive.hide": "Marca mèdia comente a sensìbile",
+ "compose_form.sensitive.marked": "Mèdia marcadu comente a sensìbile",
+ "compose_form.sensitive.unmarked": "Mèdia non marcadu comente a sensìbile",
+ "compose_form.spoiler.marked": "Su testu est cuadu dae s'avisu",
+ "compose_form.spoiler.unmarked": "Su testu no est cuadu",
+ "compose_form.spoiler_placeholder": "Iscrie s'avisu tuo inoghe",
+ "confirmation_modal.cancel": "Annulla",
+ "confirmations.block.block_and_report": "Bloca e signala",
+ "confirmations.block.confirm": "Bloca",
+ "confirmations.block.message": "Seguru chi boles blocare {name}?",
+ "confirmations.delete.confirm": "Cantzella",
+ "confirmations.delete.message": "Seguru chi boles cantzellare custu tut?",
+ "confirmations.delete_list.confirm": "Cantzella",
+ "confirmations.delete_list.message": "Seguru chi boles cantzellare custa lista in manera permanente?",
+ "confirmations.domain_block.confirm": "Cua totu su domìniu",
+ "confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
+ "confirmations.logout.confirm": "Essi·nche",
+ "confirmations.logout.message": "Seguru chi boles essire?",
+ "confirmations.mute.confirm": "A sa muda",
+ "confirmations.mute.explanation": "Custu at a cuare is publicatziones issoro e is messàgios chi ddos mentovant, ma ant a pòdere bìdere is messàgios tuos e t'ant a pòdere sighire.",
+ "confirmations.mute.message": "Seguru chi boles pònnere {name} a sa muda?",
+ "confirmations.redraft.confirm": "Cantzella e torra a fàghere",
+ "confirmations.redraft.message": "As a pèrdere is preferidos e is cumpartziduras, e is rispostas a su messàgiu originale ant a abarrare òrfanas.",
+ "confirmations.reply.confirm": "Risponde",
+ "confirmations.reply.message": "Rispondende immoe as a subraiscrìere su messàgiu chi ses iscriende. Seguru chi boles sighire?",
+ "confirmations.unfollow.confirm": "Non sigas prus",
+ "confirmations.unfollow.message": "Seguru chi non boles sighire prus {name}?",
+ "conversation.delete": "Cantzella arresonada",
+ "conversation.mark_as_read": "Signala comente lèghidu",
+ "conversation.open": "Bide arresonada",
+ "conversation.with": "Cun {names}",
+ "directory.federated": "Dae unu fediversu connòschidu",
+ "directory.local": "Isceti dae {domain}",
+ "directory.new_arrivals": "Arribos noos",
+ "directory.recently_active": "Ativos dae pagu",
+ "embed.instructions": "Inserta custu tut in su situ web tuo copiende su còdighe de suta.",
+ "embed.preview": "At a aparèssere aici:",
+ "emoji_button.activity": "Atividade",
+ "emoji_button.custom": "Personalizadu",
+ "emoji_button.flags": "Banderas",
+ "emoji_button.food": "Mandigòngiu e bufòngiu",
+ "emoji_button.label": "Inserta un'emoji",
+ "emoji_button.nature": "Natura",
+ "emoji_button.not_found": "Emojis no!! (╯°□°)╯︵ ┻━┻",
+ "emoji_button.objects": "Ogetos",
+ "emoji_button.people": "Gente",
+ "emoji_button.recent": "Impreadu a fitianu",
+ "emoji_button.search": "Chirca...",
+ "emoji_button.search_results": "Resurtados de sa chirca",
+ "emoji_button.symbols": "Sìmbulos",
+ "emoji_button.travel": "Biàgios e logos",
+ "empty_column.account_timeline": "Perunu tut inoghe!",
+ "empty_column.account_unavailable": "Su profilu no est a disponimentu",
+ "empty_column.blocks": "No as isblocadu ancora nemos.",
+ "empty_column.bookmarked_statuses": "Non tenes ancora perunu tut in is marcadores. Cando nd'as a agiùnghere unu, at a èssere ammustradu inoghe.",
+ "empty_column.community": "Sa lìnia de tempus locale est bòida. Iscrie inoghe pro cumintzare sa festa!",
+ "empty_column.direct": "Non tenes ancora perunu messàgiu deretu. Cando nd'as a imbiare o nd'as a retzire unu, at a èssere ammustradu inoghe.",
+ "empty_column.domain_blocks": "Non tenes ancora perunu domìniu blocadu.",
+ "empty_column.favourited_statuses": "Non tenes ancora perunu tut in is marcadores. Cando nd'as a agiùnghere unu, at a èssere ammustradu inoghe.",
+ "empty_column.favourites": "Nemos at marcadu ancora custu tut comente preferidu. Cando calicunu dd'at a fàghere, at a èssere ammustradu inoghe.",
+ "empty_column.follow_requests": "Non tenes ancora peruna rechesta de sighidura. Cando nd'as a retzire una, at a èssere ammustrada inoghe.",
+ "empty_column.hashtag": "Ancora nudda in custa eticheta.",
+ "empty_column.home": "Sa lìnia de tempus printzipale tua est bòida. Visita {public} o imprea sa chirca pro cumintzare e agatare àteras persones.",
+ "empty_column.home.public_timeline": "sa lìnia de tempus pùblica",
+ "empty_column.list": "Nudda ancora in custa lista. Cando is persones de custa lista ant a publicare àteros istados, ant a aparèssere inoghe.",
+ "empty_column.lists": "Non tenes ancora peruna lista. Cando nd'as a creare una, at a èssere ammustrada inoghe.",
+ "empty_column.mutes": "No as postu ancora nemos a sa muda.",
+ "empty_column.notifications": "Non tenes ancora peruna notìfica. Chistiona cun una persone pro cumintzare un'arresonada.",
+ "empty_column.public": "Nudda inoghe. Iscrie calicuna cosa pùblica, o sighi àteras persones de àteros serbidores pro prenare custu ispàtziu",
+ "error.unexpected_crash.explanation": "A càusa de una faddina in su còdighe nostru o unu problema de cumpatibilidade de su navigadore, custa pàgina diat pòdere no èssere ammustrada in manera curreta.",
+ "error.unexpected_crash.next_steps": "Proa de atualizare sa pàgina. Si custu non acontza su problema, podes chircare de impreare Mastodon in unu navigadore diferente o in un'aplicatzione nativa.",
+ "errors.unexpected_crash.copy_stacktrace": "Còpia stacktrace in punta de billete",
+ "errors.unexpected_crash.report_issue": "Signala unu problema",
+ "follow_request.authorize": "Autoriza",
+ "follow_request.reject": "Refuda",
+ "follow_requests.unlocked_explanation": "Fintzas si su contu tuo no est blocadu, su personale de {domain} at pensadu chi forsis bolias revisionare a manu is rechestas de custos contos.",
+ "getting_started.developers": "Iscuadra de isvilupu",
+ "getting_started.directory": "Diretòriu de profilos",
+ "getting_started.documentation": "Documentatzione",
+ "getting_started.heading": "Comente cumintzare",
+ "getting_started.invite": "Invita gente",
+ "getting_started.open_source_notice": "Mastodon est de còdighe abertu. Bi podes contribuire o signalare faddinas in {github}.",
+ "getting_started.security": "Cunfiguratziones de su contu",
+ "getting_started.terms": "Cunditziones de su servìtziu",
+ "hashtag.column_header.tag_mode.all": "e {additional}",
+ "hashtag.column_header.tag_mode.any": "o {additional}",
+ "hashtag.column_header.tag_mode.none": "sena {additional}",
+ "hashtag.column_settings.select.no_options_message": "Perunu cussìgiu agatadu",
+ "hashtag.column_settings.select.placeholder": "Introdue etichetas…",
+ "hashtag.column_settings.tag_mode.all": "Totu custos",
+ "hashtag.column_settings.tag_mode.any": "Cale si siat de custos",
+ "hashtag.column_settings.tag_mode.none": "Perunu de custos",
+ "hashtag.column_settings.tag_toggle": "Include etichetas additzionales pro custa colunna",
+ "home.column_settings.basic": "Bàsicu",
+ "home.column_settings.show_reblogs": "Ammustra is cumpartziduras",
+ "home.column_settings.show_replies": "Ammustra rispostas",
+ "home.hide_announcements": "Cua annùntzios",
+ "home.show_announcements": "Ammustra annùntzios",
+ "intervals.full.days": "{number, plural, one {# die} other {# die}}",
+ "intervals.full.hours": "{number, plural, one {# ora} other {# oras}}",
+ "intervals.full.minutes": "{number, plural, one {# minutu} other {# minutos}}",
+ "introduction.federation.action": "Sighi",
+ "introduction.federation.federated.headline": "Federada",
+ "introduction.federation.federated.text": "Is publicatziones pùblicas de àteros serbidores de su fediversu ant a aparèssere in sa lìnia de tempus federada.",
+ "introduction.federation.home.headline": "Printzipale",
+ "introduction.federation.home.text": "Is messàgios de gente chi sighis ant a aparèssere in lìnia de tempus printzipale tua. Podes sighire gente de cale si siat serbidore.",
+ "introduction.federation.local.headline": "Locale",
+ "introduction.federation.local.text": "Is publicatziones pùblicas de sa gente de su pròpiu serbidore tuo ant a aparèssere in sa lìnia de tempus locale.",
+ "introduction.interactions.action": "Acabba su tutoriale!",
+ "introduction.interactions.favourite.headline": "Preferidos",
+ "introduction.interactions.favourite.text": "Podes sarvare unu tut pro ddu lèghere prus tardu, e fàghere ischire a chie dd'apat iscritu chi t'est pràghidu marchende·ddu comente a preferidu.",
+ "introduction.interactions.reblog.headline": "Cumpartzi",
+ "introduction.interactions.reblog.text": "Cun is cumpartziduras podes fàghere connòschere tuts de àtera gente a chie ti sighit.",
+ "introduction.interactions.reply.headline": "Risponde",
+ "introduction.interactions.reply.text": "Podes rispòndere a is tuts de àtera gente e a is tuos pròpios, e ant a èssere unidos in un'arresonada.",
+ "introduction.welcome.action": "Ajò, andamus!",
+ "introduction.welcome.headline": "Primos passos",
+ "introduction.welcome.text": "Ti donamus sa benebènnida a su fediversu. Dae immoe a pagu, as a pòdere publicare messàgios e chistionare cun is amistades tuas in meda serbidores. Però custu serbidore, {domain}, est ispetziale: allògiat su profilu tuo, duncas regorda·nde si nòmine.",
+ "keyboard_shortcuts.back": "pro navigare in segus",
+ "keyboard_shortcuts.blocked": "pro abèrrere sa lista de persones blocadas",
+ "keyboard_shortcuts.boost": "pro cumpartzire",
+ "keyboard_shortcuts.column": "pro atzentrare un'istadu in una de is colunnas",
+ "keyboard_shortcuts.compose": "pro atzentrare in s'àrea de cumpositzione de testu",
+ "keyboard_shortcuts.description": "Descritzione",
+ "keyboard_shortcuts.direct": "pro abèrrere sa colunna de messàgios diretos",
+ "keyboard_shortcuts.down": "pro mòere in bàsciu in sa lista",
+ "keyboard_shortcuts.enter": "pro abèrrere s'istadu",
+ "keyboard_shortcuts.favourite": "pro marcare comente a preferidu",
+ "keyboard_shortcuts.favourites": "pro abèrrere sa lista de preferidos",
+ "keyboard_shortcuts.federated": "pro abèrrere sa lìnia de tempus federada",
+ "keyboard_shortcuts.heading": "Incurtzaduras de tecladu",
+ "keyboard_shortcuts.home": "pro abèrrere sa lìnia de tempus printzipale",
+ "keyboard_shortcuts.hotkey": "Tecla de atzessu diretu",
+ "keyboard_shortcuts.legend": "pro ammustrare custa didascalia",
+ "keyboard_shortcuts.local": "pro abèrrere sa lìnia de tempus locale",
+ "keyboard_shortcuts.mention": "pro mentovare s'atributzione",
+ "keyboard_shortcuts.muted": "pro abèrrere sa lista de persones a sa muda",
+ "keyboard_shortcuts.my_profile": "pro abèrrere su profilu tuo",
+ "keyboard_shortcuts.notifications": "pro abèrrere sa colunna de notificatziones",
+ "keyboard_shortcuts.open_media": "pro abèrrere mèdia",
+ "keyboard_shortcuts.pinned": "pro abèrrere lista de tuts apicados",
+ "keyboard_shortcuts.profile": "pro abèrrere su profilu de s'autore",
+ "keyboard_shortcuts.reply": "pro rispòndere",
+ "keyboard_shortcuts.requests": "pro abèrrere sa lista de rechestas de sighidura",
+ "keyboard_shortcuts.search": "pro atzentrare sa chirca",
+ "keyboard_shortcuts.start": "pro abèrrere sa colunna \"Cumintza\"",
+ "keyboard_shortcuts.toggle_hidden": "pro ammustrare o cuare testu de is CW",
+ "keyboard_shortcuts.toggle_sensitivity": "pro ammustrare o cuare mèdias",
+ "keyboard_shortcuts.toot": "pro cumintzare a iscrìere unu tut nou",
+ "keyboard_shortcuts.unfocus": "pro essire de s'àrea de cumpositzione de testu o de chirca",
+ "keyboard_shortcuts.up": "pro mòere in susu in sa lista",
+ "lightbox.close": "Serra",
+ "lightbox.next": "Sighi",
+ "lightbox.previous": "Pretzedente",
+ "lightbox.view_context": "Bide su cuntestu",
+ "lists.account.add": "Agiùnghe a sa lista",
+ "lists.account.remove": "Boga dae sa lista",
+ "lists.delete": "Cantzella sa lista",
+ "lists.edit": "Modìfica sa lista",
+ "lists.edit.submit": "Muda su tìtulu",
+ "lists.new.create": "Agiunghe lista",
+ "lists.new.title_placeholder": "Lista noa",
+ "lists.search": "Chircare intre sa gente chi ses sighende",
+ "lists.subheading": "Is listas tuas",
+ "load_pending": "{count, plural, one {# elementu nou} other {# elementos noos}}",
+ "loading_indicator.label": "Carrighende...",
+ "media_gallery.toggle_visible": "Cua mèdia",
+ "missing_indicator.label": "Perunu resurtadu",
+ "missing_indicator.sublabel": "Resursa no agatada",
+ "mute_modal.hide_notifications": "Boles cuare is notìficas de custa persone?",
+ "navigation_bar.apps": "Aplicatziones mòbiles",
+ "navigation_bar.blocks": "Persones blocadas",
+ "navigation_bar.bookmarks": "Marcadores",
+ "navigation_bar.community_timeline": "Lìnia de tempus locale",
+ "navigation_bar.compose": "Cumpone unu tut nou",
+ "navigation_bar.direct": "Messàgios diretos",
+ "navigation_bar.discover": "Iscoberi",
+ "navigation_bar.domain_blocks": "Domìnios blocados",
+ "navigation_bar.edit_profile": "Modìfica profilu",
+ "navigation_bar.favourites": "Preferidos",
+ "navigation_bar.filters": "Paràulas a sa muda",
+ "navigation_bar.follow_requests": "Rechestas de sighidura",
+ "navigation_bar.follows_and_followers": "Persones chi sighis e chi ti sighint",
+ "navigation_bar.info": "Informatziones de su serbidore",
+ "navigation_bar.keyboard_shortcuts": "Teclas de atzessu diretu",
+ "navigation_bar.lists": "Listas",
+ "navigation_bar.logout": "Essi",
+ "navigation_bar.mutes": "Persones a sa muda",
+ "navigation_bar.personal": "Informatziones personales",
+ "navigation_bar.pins": "Tuts apicados",
+ "navigation_bar.preferences": "Preferèntzias",
+ "navigation_bar.public_timeline": "Lìnia de tempus federada",
+ "navigation_bar.security": "Seguresa",
+ "notification.favourite": "{name} at marcadu s'istadu tuo comente a preferidu",
+ "notification.follow": "{name} ti sighit",
+ "notification.follow_request": "{name} at dimandadu de ti sighire",
+ "notification.mention": "{name} t'at mentovadu",
+ "notification.own_poll": "Sondàgiu acabbadu",
+ "notification.poll": "Unu sondàgiu in su chi as votadu est acabbadu",
+ "notification.reblog": "{name} at cumpartzidu s'istadu tuo",
+ "notifications.clear": "Lìmpia notìficas",
+ "notifications.clear_confirmation": "Seguru chi boles isboidare in manera permanente totu is notìficas tuas?",
+ "notifications.column_settings.alert": "Notìficas de iscrivania",
+ "notifications.column_settings.favourite": "Preferidos:",
+ "notifications.column_settings.filter_bar.advanced": "Ammustra totu is categorias",
+ "notifications.column_settings.filter_bar.category": "Barra lestra de filtros",
+ "notifications.column_settings.filter_bar.show": "Ammustra",
+ "notifications.column_settings.follow": "Gente noa chi ti sighit:",
+ "notifications.column_settings.follow_request": "Rechesta de sighidura noa:",
+ "notifications.column_settings.mention": "Mentovos:",
+ "notifications.column_settings.poll": "Resurtados de su sondàgiu:",
+ "notifications.column_settings.push": "Notìficas push",
+ "notifications.column_settings.reblog": "Cumpartziduras:",
+ "notifications.column_settings.show": "Ammustra in sa colunna",
+ "notifications.column_settings.sound": "Reprodue unu sonu",
+ "notifications.filter.all": "Totus",
+ "notifications.filter.boosts": "Cumpartziduras",
+ "notifications.filter.favourites": "Preferidos",
+ "notifications.filter.follows": "Sighende",
+ "notifications.filter.mentions": "Mentovos",
+ "notifications.filter.polls": "Resurtados dae su sondàgiu",
+ "notifications.group": "{count} notìficas",
+ "poll.closed": "Serradu",
+ "poll.refresh": "Atualiza",
+ "poll.total_people": "{count, plurale, one {# persone} other {# persones}}",
+ "poll.total_votes": "{count, plurale, one {# votu} other {# votos}}",
+ "poll.vote": "Vota",
+ "poll.voted": "As votadu custa risposta",
+ "poll_button.add_poll": "Agiunghe unu sondàgiu",
+ "poll_button.remove_poll": "Cantzella su sondàgiu",
+ "privacy.change": "Acontza s'istadu de riservadesa",
+ "privacy.direct.long": "Visìbile isceti pro is persones mentovadas",
+ "privacy.direct.short": "Deretu",
+ "privacy.private.long": "Visìbile isceti pro chie ti sighit",
+ "privacy.private.short": "Isceti pro chie ti sighit",
+ "privacy.public.long": "Visìbile pro chie si siat, ammustra in lìnias de tempus pùblicas",
+ "privacy.public.short": "Pùblicu",
+ "privacy.unlisted.long": "Visìbile pro chie si siat, però no ammustres in lìnias de tempus pùblicas",
+ "privacy.unlisted.short": "Esclùidu de sa lista",
+ "refresh": "Atualiza",
+ "regeneration_indicator.label": "Carrighende…",
+ "regeneration_indicator.sublabel": "Preparende sa lìnia de tempus printzipale tua.",
+ "relative_time.days": "{number}d",
+ "relative_time.hours": "{number}h",
+ "relative_time.just_now": "immoe",
+ "relative_time.minutes": "{number}m",
+ "relative_time.seconds": "{number}s",
+ "relative_time.today": "oe",
+ "reply_indicator.cancel": "Annulla",
+ "report.forward": "Torra a imbiare a {target}",
+ "report.forward_hint": "Custu contu est de un'àteru serbidore. Bi boles imbiare puru una còpia anònima de custu informe?",
+ "report.hint": "S'informe at a èssere imbiadu a sa moderatzione de su serbidore. Podes frunire un'ispiegatzione de sa signalatzione tua de custu contu:",
+ "report.placeholder": "Cummentos additzionales",
+ "report.submit": "Imbia",
+ "report.target": "Informende de {target}",
+ "search.placeholder": "Chirca",
+ "search_popout.search_format": "Formadu de chirca avantzada",
+ "search_popout.tips.full_text": "Testu sèmplitze pro agatare istados chi as iscritu, marcadu comente a preferidos, cumpartzidu o chi t'ant mentovadu, e fintzas nòmines de utente, nòmines visualizados e etichetas chi ddu includent.",
+ "search_popout.tips.hashtag": "eticheta",
+ "search_popout.tips.status": "istadu",
+ "search_popout.tips.text": "Testu sèmplitze pro agatare nòmines visualizados, nòmines de utente e etichetas",
+ "search_popout.tips.user": "utente",
+ "search_results.accounts": "Gente",
+ "search_results.hashtags": "Etichetas",
+ "search_results.statuses": "Tuts",
+ "search_results.statuses_fts_disabled": "Sa chirca de tuts pro su cuntenutu issoro no est abilitada in custu serbidore de Mastodon.",
+ "search_results.total": "{count, number} {count, plurale, one {resurtadu} other {resurtados}}",
+ "status.admin_account": "Aberi s'interfache de moderatzione pro @{name}",
+ "status.admin_status": "Aberi custu istadu in s'interfache de moderatzione",
+ "status.block": "Bloca @{name}",
+ "status.bookmark": "Marcadore",
+ "status.cancel_reblog_private": "Iscontza sa cumpartzidura",
+ "status.cannot_reblog": "Custa publicatzione non podet èssere cumpartzida",
+ "status.copy": "Còpia su ligàmene a s'istadu tuo",
+ "status.delete": "Cantzella",
+ "status.detailed_status": "Visualizatzione de detàlliu de arresonada",
+ "status.direct": "Messàgiu deretu a @{name}",
+ "status.embed": "Afissa",
+ "status.favourite": "Preferidos",
+ "status.filtered": "Filtradu",
+ "status.load_more": "Càrriga·nde àteros",
+ "status.media_hidden": "Mèdias cuados",
+ "status.mention": "Mentova @{name}",
+ "status.more": "Àteru",
+ "status.mute": "Pone @name a sa muda",
+ "status.mute_conversation": "Pone s'arresonada a sa muda",
+ "status.open": "Ismànnia custu istadu",
+ "status.pin": "Apica in su profilu",
+ "status.pinned": "Tut apicadu",
+ "status.read_more": "Lèghe·nde àteru",
+ "status.reblog": "Cumpartzi",
+ "status.reblog_private": "Cumpartzi cun is utentes originales",
+ "status.reblogged_by": "{name} at cumpartzidu",
+ "status.reblogs.empty": "No one has boosted this toot yet. Cando calicunu dd'at a fàghere, at a èssere ammustradu inoghe.",
+ "status.redraft": "Cantzella e torra a iscrìere",
+ "status.remove_bookmark": "Boga su marcadore",
+ "status.reply": "Risponde",
+ "status.replyAll": "Risponde a su tema",
+ "status.report": "Signala @{name}",
+ "status.sensitive_warning": "Cuntenutu sensìbile",
+ "status.share": "Cumpartzi",
+ "status.show_less": "Ammustra·nde prus pagu",
+ "status.show_less_all": "Ammustra·nde prus pagu pro totus",
+ "status.show_more": "Ammustra·nde prus",
+ "status.show_more_all": "Ammustra·nde prus pro totus",
+ "status.show_thread": "Ammustra su tema",
+ "status.uncached_media_warning": "No est a disponimentu",
+ "status.unmute_conversation": "Torra a ativare s'arresonada",
+ "status.unpin": "Isbloca dae pitzu de su profilu",
+ "suggestions.dismiss": "Iscarta cussìgiu",
+ "suggestions.header": "Est possìbile chi tèngias interessu in…",
+ "tabs_bar.federated_timeline": "Federada",
+ "tabs_bar.home": "Printzipale",
+ "tabs_bar.local_timeline": "Locale",
+ "tabs_bar.notifications": "Notìficas",
+ "tabs_bar.search": "Chirca",
+ "time_remaining.days": "{number, plural, one {abarrat # die} other {abarrant # dies}}",
+ "time_remaining.hours": "{number, plural, one {abarrat # ora} other {abarrant # oras}}",
+ "time_remaining.minutes": "{number, plural, one {abarrat # minutu} other {abarrant # minutos}}",
+ "time_remaining.moments": "Abarrant pagu momentos",
+ "time_remaining.seconds": "{number, plural, one {abarrat # segundu} other {abarrant # segundos}}",
+ "trends.count_by_accounts": "{count} {rawCount, plural, one {persone} other {persones}} nde sunt chistionende",
+ "trends.trending_now": "Est tendèntzia immoe",
+ "ui.beforeunload": "S'abbotzu tuo at a èssere pèrdidu si essis dae Mastodon.",
+ "upload_area.title": "Traga pro carrigare",
+ "upload_button.label": "Agiunghe mèdias ({formats})",
+ "upload_error.limit": "Lìmite de càrriga de archìvios barigadu.",
+ "upload_error.poll": "Non si permitit s'imbiu de archìvios in is sondàgios.",
+ "upload_form.audio_description": "Descritzione pro persones cun pèrdida auditiva",
+ "upload_form.description": "Descritzione pro persones cun problemas visuales",
+ "upload_form.edit": "Modìfica",
+ "upload_form.undo": "Cantzella",
+ "upload_form.video_description": "Descritzione pro persones cun pèrdida auditiva o problemas visuales",
+ "upload_modal.analyzing_picture": "Analizende immàgine…",
+ "upload_modal.apply": "Àplica",
+ "upload_modal.description_placeholder": "Su margiane castàngiu brincat lestru a subra de su cane mandrone",
+ "upload_modal.detect_text": "Rileva testu de s'immàgine",
+ "upload_modal.edit_media": "Modìfica su mèdia",
+ "upload_modal.hint": "Incarca o traga su tzìrculu in sa previsualizatzione pro seberare su puntu focale chi at a èssere semper visìbile in totu is miniaturas.",
+ "upload_modal.preview_label": "Previsualiza ({ratio})",
+ "upload_progress.label": "Carrighende...",
+ "video.close": "Serra su vìdeu",
+ "video.download": "Iscàrriga archìviu",
+ "video.exit_fullscreen": "Essi de ischermu in mannària prena",
+ "video.expand": "Ismànnia su vìdeu",
+ "video.fullscreen": "Ischermu in mannària prena",
+ "video.hide": "Cua vìdeu",
+ "video.mute": "A sa muda",
+ "video.pause": "Pàusa",
+ "video.play": "Reprodue",
+ "video.unmute": "Ativa sonu"
+}
diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json
index 211d80bb8..66dcb2b55 100644
--- a/app/javascript/mastodon/locales/sk.json
+++ b/app/javascript/mastodon/locales/sk.json
@@ -10,12 +10,12 @@
"account.domain_blocked": "Doména ukrytá",
"account.edit_profile": "Uprav profil",
"account.endorse": "Zobrazuj na profile",
- "account.follow": "Následuj",
+ "account.follow": "Nasleduj",
"account.followers": "Sledujúci",
- "account.followers.empty": "Tohto užívateľa ešte nikto nenásleduje.",
- "account.follows": "Následuje",
- "account.follows.empty": "Tento užívateľ ešte nikoho nenásleduje.",
- "account.follows_you": "Následuje ťa",
+ "account.followers.empty": "Tohto používateľa ešte nikto nenásleduje.",
+ "account.follows": "Nasleduje",
+ "account.follows.empty": "Tento používateľ ešte nikoho nenasleduje.",
+ "account.follows_you": "Nasleduje ťa",
"account.hide_reblogs": "Skry vyzdvihnutia od @{name}",
"account.last_status": "Naposledy aktívny",
"account.link_verified_on": "Vlastníctvo tohto odkazu bolo skontrolované {date}",
@@ -28,7 +28,7 @@
"account.muted": "Utíšený/á",
"account.never_active": "Nikdy",
"account.posts": "Príspevkov",
- "account.posts_with_replies": "Príspevky aj s odpoveďami",
+ "account.posts_with_replies": "Príspevky, aj s odpoveďami",
"account.report": "Nahlás @{name}",
"account.requested": "Čaká na schválenie. Klikni pre zrušenie žiadosti",
"account.share": "Zdieľaj @{name} profil",
@@ -74,7 +74,9 @@
"column_header.show_settings": "Ukáž nastavenia",
"column_header.unpin": "Odopni",
"column_subheading.settings": "Nastavenia",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Iba médiá",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Tento príspevok bude boslaný iba spomenutým užívateľom.",
"compose_form.direct_message_warning_learn_more": "Zisti viac",
"compose_form.hashtag_warning": "Tento toot nebude zobrazený pod žiadným haštagom lebo nieje listovaný. Iba verejné tooty môžu byť nájdené podľa haštagu.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Povoľ prístup",
"follow_request.reject": "Odmietni",
+ "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.",
"getting_started.developers": "Vývojári",
"getting_started.directory": "Zoznam profilov",
"getting_started.documentation": "Dokumentácia",
@@ -198,7 +201,7 @@
"introduction.federation.federated.headline": "Federovaná",
"introduction.federation.federated.text": "Verejné príspevky z ostatných serverov vo fediverse budú zobrazené vo federovanej časovej osi.",
"introduction.federation.home.headline": "Domovská",
- "introduction.federation.home.text": "Príspevky od ľudí ktorých následuješ sa zobrazia na tvojej domovskej nástenke. Môžeš následovať hocikoho na ktoromkoľvek serveri!",
+ "introduction.federation.home.text": "Príspevky od ľudí ktorých nasleduješ sa zobrazia na tvojej domovskej nástenke. Môžeš nasledovať hocikoho na ktoromkoľvek serveri!",
"introduction.federation.local.headline": "Miestna",
"introduction.federation.local.text": "Verejné príspevky od ľudí v rámci toho istého serveru na akom si aj ty, budú zobrazované na miestnej časovej osi.",
"introduction.interactions.action": "Ukonči návod!",
diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json
index 77dd7639b..e2886410b 100644
--- a/app/javascript/mastodon/locales/sl.json
+++ b/app/javascript/mastodon/locales/sl.json
@@ -17,7 +17,7 @@
"account.follows.empty": "Ta uporabnik še ne sledi nikomur.",
"account.follows_you": "Sledi tebi",
"account.hide_reblogs": "Skrij spodbude od @{name}",
- "account.last_status": "Last active",
+ "account.last_status": "Zadnja dejavnost",
"account.link_verified_on": "Lastništvo te povezave je bilo preverjeno {date}",
"account.locked_info": "Stanje zasebnosti računa je nastavljeno na zaklenjeno. Lastnik ročno pregleda, kdo ga lahko spremlja.",
"account.media": "Mediji",
@@ -26,7 +26,7 @@
"account.mute": "Utišaj @{name}",
"account.mute_notifications": "Utišaj obvestila od @{name}",
"account.muted": "Utišan",
- "account.never_active": "Never",
+ "account.never_active": "Nikoli",
"account.posts": "Tuti",
"account.posts_with_replies": "Tuti in odgovori",
"account.report": "Prijavi @{name}",
@@ -74,7 +74,9 @@
"column_header.show_settings": "Prikaži nastavitve",
"column_header.unpin": "Odpni",
"column_subheading.settings": "Nastavitve",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Samo mediji",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Ta tut bo viden le vsem omenjenim uporabnikom.",
"compose_form.direct_message_warning_learn_more": "Nauči se več",
"compose_form.hashtag_warning": "Ta tut ne bo naveden pod nobenim ključnikom, ker ni javen. Samo javne tute lahko iščete s ključniki.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Overi",
"follow_request.reject": "Zavrni",
+ "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.",
"getting_started.developers": "Razvijalci",
"getting_started.directory": "Imenik profilov",
"getting_started.documentation": "Dokumentacija",
@@ -340,7 +343,7 @@
"relative_time.just_now": "zdaj",
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
- "relative_time.today": "today",
+ "relative_time.today": "danes",
"reply_indicator.cancel": "Prekliči",
"report.forward": "Posreduj do {target}",
"report.forward_hint": "Račun je iz drugega strežnika. Pošljem anonimno kopijo poročila tudi na drugi strežnik?",
@@ -429,7 +432,7 @@
"upload_form.video_description": "Describe for people with hearing loss or visual impairment",
"upload_modal.analyzing_picture": "Analyzing picture…",
"upload_modal.apply": "Apply",
- "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
+ "upload_modal.description_placeholder": "Pri Jakcu bom vzel šest čudežnih fig",
"upload_modal.detect_text": "Detect text from picture",
"upload_modal.edit_media": "Edit media",
"upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json
index 1188685e8..91161f8be 100644
--- a/app/javascript/mastodon/locales/sq.json
+++ b/app/javascript/mastodon/locales/sq.json
@@ -1,11 +1,11 @@
{
"account.add_or_remove_from_list": "Shtoni ose Hiqni prej listash",
"account.badges.bot": "Robot",
- "account.badges.group": "Group",
+ "account.badges.group": "Grup",
"account.block": "Blloko @{name}",
"account.block_domain": "Fshih gjithçka prej {domain}",
"account.blocked": "E bllokuar",
- "account.cancel_follow_request": "Cancel follow request",
+ "account.cancel_follow_request": "Anulo kërkesën e ndjekjes",
"account.direct": "Mesazh i drejtpërdrejt për @{name}",
"account.domain_blocked": "Përkatësi e fshehur",
"account.edit_profile": "Përpunoni profilin",
@@ -17,7 +17,7 @@
"account.follows.empty": "Ky përdorues ende s’ndjek njeri.",
"account.follows_you": "Ju ndjek",
"account.hide_reblogs": "Fshih përforcime nga @{name}",
- "account.last_status": "Last active",
+ "account.last_status": "Së fundi aktiv",
"account.link_verified_on": "Pronësia e kësaj lidhjeje qe kontrolluar më {date}",
"account.locked_info": "Gjendja e privatësisë së kësaj llogarie është caktuar si e kyçur. I zoti merr dorazi në shqyrtim cilët mund ta ndjekin.",
"account.media": "Media",
@@ -26,25 +26,25 @@
"account.mute": "Heshtoni @{name}",
"account.mute_notifications": "Heshtoji njoftimet prej @{name}",
"account.muted": "Heshtuar",
- "account.never_active": "Never",
+ "account.never_active": "Asnjëherë",
"account.posts": "Mesazhe",
"account.posts_with_replies": "Mesazhe dhe përgjigje",
- "account.report": "Raportojeni @{name}",
- "account.requested": "Në pritje të miratimit. Klikoni që të anulohet kërkesa për ndjekje",
+ "account.report": "Raporto @{name}",
+ "account.requested": "Në pritje të pranimit. Klikoni që të anulosh kërkesën për ndjekje",
"account.share": "Ndajeni profilin e @{name} me të tjerët",
"account.show_reblogs": "Shfaq përforcime nga @{name}",
- "account.unblock": "Zhbllokoje @{name}",
- "account.unblock_domain": "Shfshihe {domain}",
+ "account.unblock": "Ç'bllokoje @{name}",
+ "account.unblock_domain": "Ç'blloko {domain}",
"account.unendorse": "Mos e përfshi në profil",
- "account.unfollow": "Resht së ndjekuri",
+ "account.unfollow": "Mos e ndjek",
"account.unmute": "Ktheji zërin @{name}",
"account.unmute_notifications": "Hiqua ndalimin e shfaqjes njoftimeve nga @{name}",
- "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.",
- "alert.rate_limited.title": "Rate limited",
+ "alert.rate_limited.message": "Ju lutemi provoni pas {retry_time, time, medium}.",
+ "alert.rate_limited.title": "Sasi e kufizuar",
"alert.unexpected.message": "Ndodhi një gabim të papritur.",
"alert.unexpected.title": "Hëm!",
- "announcement.announcement": "Announcement",
- "autosuggest_hashtag.per_week": "{count} per week",
+ "announcement.announcement": "Njoftime",
+ "autosuggest_hashtag.per_week": "{count} për javë",
"boost_modal.combo": "Mund të shtypni {combo}, që të anashkalohet kjo herës tjetër",
"bundle_column_error.body": "Diç shkoi ters teksa ngarkohej ky përbërës.",
"bundle_column_error.retry": "Riprovoni",
@@ -53,10 +53,10 @@
"bundle_modal_error.message": "Diç shkoi ters teksa ngarkohej ky përbërës.",
"bundle_modal_error.retry": "Riprovoni",
"column.blocks": "Përdorues të bllokuar",
- "column.bookmarks": "Bookmarks",
+ "column.bookmarks": "Shënjimet",
"column.community": "Rrjedhë kohore vendore",
"column.direct": "Mesazhe të drejtpërdrejta",
- "column.directory": "Browse profiles",
+ "column.directory": "Shfleto profile",
"column.domain_blocks": "Përkatësi të fshehura",
"column.favourites": "Të parapëlqyer",
"column.follow_requests": "Kërkesa për ndjekje",
@@ -74,29 +74,31 @@
"column_header.show_settings": "Shfaq rregullime",
"column_header.unpin": "Shfiksoje",
"column_subheading.settings": "Rregullime",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Vetëm Media",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Ky mesazh do t’u dërgohet përdoruesve të përmendur.",
"compose_form.direct_message_warning_learn_more": "Mësoni më tepër",
"compose_form.hashtag_warning": "Ky mesazh s’do të paraqitet nën ndonjë hashtag, ngaqë s’i është caktuar ndonjë. Vetëm mesazhet publike mund të kërkohen sipas hashtagësh.",
"compose_form.lock_disclaimer": "Llogaria juaj s’është {locked}. Mund ta ndjekë cilido, për të parë postimet tuaja vetëm për ndjekësit.",
"compose_form.lock_disclaimer.lock": "e bllokuar",
"compose_form.placeholder": "Ç’bluani në mendje?",
- "compose_form.poll.add_option": "Add a choice",
- "compose_form.poll.duration": "Poll duration",
- "compose_form.poll.option_placeholder": "Choice {number}",
- "compose_form.poll.remove_option": "Remove this choice",
- "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
- "compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
+ "compose_form.poll.add_option": "Shto zgjedhje",
+ "compose_form.poll.duration": "Kohëzgjatja e votimit",
+ "compose_form.poll.option_placeholder": "Zgjedhja {number}",
+ "compose_form.poll.remove_option": "Largo këtë zgjedhje",
+ "compose_form.poll.switch_to_multiple": "Ndrysho votimin për të lejuar shumë zgjedhje",
+ "compose_form.poll.switch_to_single": "Ndrysho votimin për të lejuar vetëm një zgjedhje",
"compose_form.publish": "Mesazh",
"compose_form.publish_loud": "{publish}!",
- "compose_form.sensitive.hide": "Mark media as sensitive",
+ "compose_form.sensitive.hide": "Lajmëro media si sensitive",
"compose_form.sensitive.marked": "Media është shënuar si rezervat",
"compose_form.sensitive.unmarked": "Media s’është shënuar si rezervat",
"compose_form.spoiler.marked": "Teksti është fshehur pas sinjalizimit",
"compose_form.spoiler.unmarked": "Teksti s’është i fshehur",
"compose_form.spoiler_placeholder": "Shkruani këtu sinjalizimin tuaj",
"confirmation_modal.cancel": "Anuloje",
- "confirmations.block.block_and_report": "Block & Report",
+ "confirmations.block.block_and_report": "Ndalo dhe Raporto",
"confirmations.block.confirm": "Bllokoje",
"confirmations.block.message": "Jeni i sigurt se doni të bllokohet {name}?",
"confirmations.delete.confirm": "Fshije",
@@ -105,10 +107,10 @@
"confirmations.delete_list.message": "Jeni i sigurt që doni të fshihet përgjithmonë kjo listë?",
"confirmations.domain_block.confirm": "Fshih krejt përkatësinë",
"confirmations.domain_block.message": "Jeni i sigurt, shumë i sigurt se doni të bllokohet krejt {domain}? Në shumicën e rasteve, ndoca bllokime ose heshtime me synim të caktuar janë të mjaftueshme dhe të parapëlqyera. S’keni për të parë lëndë nga kjo përkatësi në ndonjë rrjedhë kohore publike, apo te njoftimet tuaja. Ndjekësit tuaj prej asaj përkatësie do të hiqen.",
- "confirmations.logout.confirm": "Log out",
- "confirmations.logout.message": "Are you sure you want to log out?",
+ "confirmations.logout.confirm": "Ç'kyçu",
+ "confirmations.logout.message": "A jeni të sigurt se dëshironi të ç'kyçeni?",
"confirmations.mute.confirm": "Heshtoje",
- "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.",
+ "confirmations.mute.explanation": "Kjo do të fsheh postimet nga ata dhe postimet që përmendin ata, megjithatë ende do ti lejojë ata që të shohin postimet e juaja dhe të ju ndjekin.",
"confirmations.mute.message": "Jeni i sigurt se doni të heshtohet {name}?",
"confirmations.redraft.confirm": "Fshijeni & rihartojeni",
"confirmations.redraft.message": "Jeni i sigurt se doni të fshihet kjo gjendje dhe të rihartohet? Parapëlqimet dhe boosts do të humbin, ndërsa përgjigjet te postimi origjinal do të bëhen jetime.",
@@ -116,14 +118,14 @@
"confirmations.reply.message": "Përgjigja tani do të shkaktojë mbishkrimin e mesazhit që po hartoni. Jeni i sigurt se doni të vazhdohet më tej?",
"confirmations.unfollow.confirm": "Resht së ndjekuri",
"confirmations.unfollow.message": "Jeni i sigurt se doni të mos ndiqet më {name}?",
- "conversation.delete": "Delete conversation",
- "conversation.mark_as_read": "Mark as read",
- "conversation.open": "View conversation",
- "conversation.with": "With {names}",
- "directory.federated": "From known fediverse",
- "directory.local": "From {domain} only",
- "directory.new_arrivals": "New arrivals",
- "directory.recently_active": "Recently active",
+ "conversation.delete": "Fshijë bisedën",
+ "conversation.mark_as_read": "Shëno si të lexuar",
+ "conversation.open": "Shfaq bisedën",
+ "conversation.with": "Me {names}",
+ "directory.federated": "Nga fediversa e njohur",
+ "directory.local": "Vetëm nga {domain}",
+ "directory.new_arrivals": "Arritje të reja",
+ "directory.recently_active": "Aktive së fundi",
"embed.instructions": "Trupëzojeni këtë gjendje në sajtin tuaj duke kopjuar kodin më poshtë.",
"embed.preview": "Ja si do të duket:",
"emoji_button.activity": "Veprimtari",
@@ -141,9 +143,9 @@
"emoji_button.symbols": "Simbole",
"emoji_button.travel": "Udhëtime & Vende",
"empty_column.account_timeline": "S’ka mesazhe këtu!",
- "empty_column.account_unavailable": "Profile unavailable",
+ "empty_column.account_unavailable": "Profil i pa arritshëm",
"empty_column.blocks": "S’keni bllokuar ende ndonjë përdorues.",
- "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
+ "empty_column.bookmarked_statuses": "Nuk keni ndonjë Cicërimë të shënjuar. Kur të shënjoni ndonjë, do të shfaqet këtu.",
"empty_column.community": "Rrjedha kohore vendore është e zbrazët. Shkruani diçka publikisht që t’i hyhet valles!",
"empty_column.direct": "S’keni ende ndonjë mesazh të drejtpërdrejt. Kur dërgoni ose merrni një të tillë, ai do të shfaqet këtu.",
"empty_column.domain_blocks": "Ende s’ka përkatësi të fshehura.",
@@ -158,10 +160,10 @@
"empty_column.mutes": "S’keni heshtuar ende ndonjë përdorues.",
"empty_column.notifications": "Ende s’keni ndonjë njoftim. Ndërveproni me të tjerët që të nisë biseda.",
"empty_column.public": "S’ka gjë këtu! Shkruani diçka publikisht, ose ndiqni dorazi përdorues prej instancash të tjera, që ta mbushni këtë zonë",
- "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
- "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
- "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
- "errors.unexpected_crash.report_issue": "Report issue",
+ "error.unexpected_crash.explanation": "Për shkak të një gabimi në kodin burimor ose dështimi të shfletuesit, kjo faqe nuk mund të prezentohet saktësisht.",
+ "error.unexpected_crash.next_steps": "Provoni të freskoni faqen. Nëse kjo nuk ju ndihmon, mund të përdorni Mastodon nga një shfletues tjetër ose nga ndonjë aplikacion.",
+ "errors.unexpected_crash.copy_stacktrace": "Kopjo vëzhgimin stack në clipboard",
+ "errors.unexpected_crash.report_issue": "Raporto çështje",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
"federation.federated.short": "Federated",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Autorizoje",
"follow_request.reject": "Hidhe tej",
+ "follow_requests.unlocked_explanation": "Edhe pse llogaria juaj nuk është e ndaluar, ekipi {domain} mendon se ju duhett të rishikoni manualisht kërkesat për ndiqje nga këto llogari.",
"getting_started.developers": "Zhvillues",
"getting_started.directory": "Drejtori profilesh",
"getting_started.documentation": "Dokumentim",
@@ -180,8 +183,8 @@
"hashtag.column_header.tag_mode.all": "dhe {additional}",
"hashtag.column_header.tag_mode.any": "ose {additional}",
"hashtag.column_header.tag_mode.none": "pa {additional}",
- "hashtag.column_settings.select.no_options_message": "No suggestions found",
- "hashtag.column_settings.select.placeholder": "Enter hashtags…",
+ "hashtag.column_settings.select.no_options_message": "Nuk gjetëm sygjerime",
+ "hashtag.column_settings.select.placeholder": "Shëno hashtags…",
"hashtag.column_settings.tag_mode.all": "Krejt këto",
"hashtag.column_settings.tag_mode.any": "Cilëndo prej këtyre",
"hashtag.column_settings.tag_mode.none": "Asnjë prej këtyre",
@@ -189,11 +192,11 @@
"home.column_settings.basic": "Bazë",
"home.column_settings.show_reblogs": "Shfaq përforcime",
"home.column_settings.show_replies": "Shfaq përgjigje",
- "home.hide_announcements": "Hide announcements",
- "home.show_announcements": "Show announcements",
- "intervals.full.days": "{number, plural, one {# day} other {# days}}",
- "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
- "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
+ "home.hide_announcements": "Fsheh lajmërimet",
+ "home.show_announcements": "Shfaq lajmërimet",
+ "intervals.full.days": "{number, plural,one { ditë }other { ditë }}",
+ "intervals.full.hours": "{number, plural,one { orë }other {# orë }}",
+ "intervals.full.minutes": "{number, plural,one { minuta }other {# minuta }}",
"introduction.federation.action": "Pasuesi",
"introduction.federation.federated.headline": "Të federuara",
"introduction.federation.federated.text": "Postimet publike nga shërbyes të tjerë të fediversit do të shfaqen te rrjedha kohore e të federuarve.",
@@ -232,7 +235,7 @@
"keyboard_shortcuts.muted": "për hapje liste përdoruesish të heshtuar",
"keyboard_shortcuts.my_profile": "për hapjen e profilit tuaj",
"keyboard_shortcuts.notifications": "për hapje shtylle njoftimesh",
- "keyboard_shortcuts.open_media": "to open media",
+ "keyboard_shortcuts.open_media": "për të hapur media",
"keyboard_shortcuts.pinned": "për hapje liste mesazhesh të fiksuar",
"keyboard_shortcuts.profile": "për hapje të profilit të autorit",
"keyboard_shortcuts.reply": "për t’u përgjigjur",
@@ -240,24 +243,24 @@
"keyboard_shortcuts.search": "për kalim fokusi te kërkimi",
"keyboard_shortcuts.start": "për hapjen e shtyllës \"fillojani\"",
"keyboard_shortcuts.toggle_hidden": "për shfaqje/fshehje teksti pas CW",
- "keyboard_shortcuts.toggle_sensitivity": "to show/hide media",
+ "keyboard_shortcuts.toggle_sensitivity": "për të shfaqur/të fshehur media",
"keyboard_shortcuts.toot": "për të filluar një mesazh fringo të ri",
"keyboard_shortcuts.unfocus": "për heqjen e fokusit nga fusha e hartimit të mesazheve apo kërkimeve",
"keyboard_shortcuts.up": "për ngjitje sipër nëpër listë",
"lightbox.close": "Mbylle",
"lightbox.next": "Pasuesja",
"lightbox.previous": "E mëparshmja",
- "lightbox.view_context": "View context",
+ "lightbox.view_context": "Shfaq kontekst",
"lists.account.add": "Shto në listë",
"lists.account.remove": "Hiqe nga lista",
"lists.delete": "Fshije listën",
"lists.edit": "Përpunoni listën",
- "lists.edit.submit": "Change title",
+ "lists.edit.submit": "Ndrysho titullin",
"lists.new.create": "Shtoni listë",
"lists.new.title_placeholder": "Titull liste të re",
"lists.search": "Kërkoni mes personash që ndiqni",
"lists.subheading": "Listat tuaja",
- "load_pending": "{count, plural, one {# new item} other {# new items}}",
+ "load_pending": "{count, plural,one {# artikull i ri }other {# artikuj të ri }}",
"loading_indicator.label": "Po ngarkohet…",
"media_gallery.toggle_visible": "Ndërroni dukshmërinë",
"missing_indicator.label": "S’u gjet",
@@ -265,7 +268,7 @@
"mute_modal.hide_notifications": "Të fshihen njoftimet prej këtij përdoruesi?",
"navigation_bar.apps": "Aplikacione për celular",
"navigation_bar.blocks": "Përdorues të bllokuar",
- "navigation_bar.bookmarks": "Bookmarks",
+ "navigation_bar.bookmarks": "Shënjimet",
"navigation_bar.community_timeline": "Rrjedhë kohore vendore",
"navigation_bar.compose": "Hartoni mesazh të ri",
"navigation_bar.direct": "Mesazhe të drejtpërdrejta",
@@ -275,7 +278,7 @@
"navigation_bar.favourites": "Të parapëlqyer",
"navigation_bar.filters": "Fjalë të heshtuara",
"navigation_bar.follow_requests": "Kërkesa për ndjekje",
- "navigation_bar.follows_and_followers": "Follows and followers",
+ "navigation_bar.follows_and_followers": "Ndjek dhe ndjekësit",
"navigation_bar.info": "Mbi këtë shërbyes",
"navigation_bar.keyboard_shortcuts": "Taste përkatës",
"navigation_bar.lists": "Lista",
@@ -288,10 +291,10 @@
"navigation_bar.security": "Siguri",
"notification.favourite": "{name} parapëlqeu gjendjen tuaj",
"notification.follow": "{name} zuri t’ju ndjekë",
- "notification.follow_request": "{name} has requested to follow you",
+ "notification.follow_request": "{name} kërkoji që të ju ndiq",
"notification.mention": "{name} ju ka përmendur",
- "notification.own_poll": "Your poll has ended",
- "notification.poll": "A poll you have voted in has ended",
+ "notification.own_poll": "Votimi juaj mbaroi",
+ "notification.poll": "Votimi që nisët tanimë ka mbaruar",
"notification.reblog": "{name} përforcoi gjendjen tuaj",
"notifications.clear": "Pastroji njoftimet",
"notifications.clear_confirmation": "Jeni i sigurt se doni të pastrohen përgjithmonë krejt njoftimet tuaja?",
@@ -301,9 +304,9 @@
"notifications.column_settings.filter_bar.category": "Shtyllë filtrimesh të shpejta",
"notifications.column_settings.filter_bar.show": "Shfaq",
"notifications.column_settings.follow": "Ndjekës të rinj:",
- "notifications.column_settings.follow_request": "New follow requests:",
+ "notifications.column_settings.follow_request": "Kërkesat e reja për ndjekje:",
"notifications.column_settings.mention": "Përmendje:",
- "notifications.column_settings.poll": "Poll results:",
+ "notifications.column_settings.poll": "Rezultatet e votimit:",
"notifications.column_settings.push": "Njoftime Push",
"notifications.column_settings.reblog": "Përforcime:",
"notifications.column_settings.show": "Shfaq në shtylla",
@@ -313,16 +316,16 @@
"notifications.filter.favourites": "Të parapëlqyer",
"notifications.filter.follows": "Ndjekje",
"notifications.filter.mentions": "Përmendje",
- "notifications.filter.polls": "Poll results",
+ "notifications.filter.polls": "Rezultatet e votimit",
"notifications.group": "{count}s njoftime",
- "poll.closed": "Closed",
- "poll.refresh": "Refresh",
- "poll.total_people": "{count, plural, one {# person} other {# people}}",
- "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
- "poll.vote": "Vote",
- "poll.voted": "You voted for this answer",
- "poll_button.add_poll": "Add a poll",
- "poll_button.remove_poll": "Remove poll",
+ "poll.closed": "Mbyllur",
+ "poll.refresh": "Rifresko",
+ "poll.total_people": "{count, plural,one {# person }other {# njerëz }}",
+ "poll.total_votes": "{count, plural,one {# votë }other {# votat }}",
+ "poll.vote": "Voto",
+ "poll.voted": "Ju votuat për këtë pyetje",
+ "poll_button.add_poll": "Shto votim",
+ "poll_button.remove_poll": "Fshij votim",
"privacy.change": "Rregulloni privatësi gjendje",
"privacy.direct.long": "Postoja vetëm përdoruesve të përmendur",
"privacy.direct.short": "I drejtpërdrejtë",
@@ -332,15 +335,15 @@
"privacy.public.short": "Publike",
"privacy.unlisted.long": "Mos e postoni në rrjedha publike kohore",
"privacy.unlisted.short": "Jo në lista",
- "refresh": "Refresh",
+ "refresh": "Rifresko",
"regeneration_indicator.label": "Po ngarkohet…",
"regeneration_indicator.sublabel": "Prurja juaj vetjake po përgatiteet!",
"relative_time.days": "{number}d",
- "relative_time.hours": "{number}h",
+ "relative_time.hours": "{number}o",
"relative_time.just_now": "tani",
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
- "relative_time.today": "today",
+ "relative_time.today": "sot",
"reply_indicator.cancel": "Anuloje",
"report.forward": "Përcillja {target}",
"report.forward_hint": "Llogaria është nga një shërbyes tjetër. Të dërgohet edhe një kopje e anonimizuar e raportimit?",
@@ -358,12 +361,12 @@
"search_results.accounts": "Persona",
"search_results.hashtags": "Hashtagë",
"search_results.statuses": "Mesazhe",
- "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
+ "search_results.statuses_fts_disabled": "Kërkimi cicërimave në bazë të përmbajtjes nuk është e aktivizuar në këtë server Mastodon.",
"search_results.total": "{count, number} {count, plural, një {result} {results} të tjera}",
"status.admin_account": "Hap ndërfaqe moderimi për @{name}",
"status.admin_status": "Hape këtë gjendje te ndërfaqja e moderimit",
"status.block": "Blloko @{name}",
- "status.bookmark": "Bookmark",
+ "status.bookmark": "Shënjim",
"status.cancel_reblog_private": "Shpërforcojeni",
"status.cannot_reblog": "Ky postim s’mund të përforcohet",
"status.copy": "Kopjoje lidhjen te gjendje",
@@ -389,7 +392,7 @@
"status.reblogged_by": "{name} përforcoi",
"status.reblogs.empty": "Këtë mesazh s’e ka përforcuar njeri deri tani. Kur ta bëjë dikush, kjo do të duket këtu.",
"status.redraft": "Fshijeni & rihartojeni",
- "status.remove_bookmark": "Remove bookmark",
+ "status.remove_bookmark": "Largo shënjimin",
"status.reply": "Përgjigjuni",
"status.replyAll": "Përgjigjuni rrjedhës",
"status.report": "Raportojeni @{name}",
@@ -400,7 +403,7 @@
"status.show_more": "Shfaq më tepër",
"status.show_more_all": "Shfaq më tepër për të tërë",
"status.show_thread": "Shfaq rrjedhën",
- "status.uncached_media_warning": "Not available",
+ "status.uncached_media_warning": "I padisponueshëm",
"status.unmute_conversation": "Ktheji zërin bisedës",
"status.unpin": "Shfiksoje nga profili",
"suggestions.dismiss": "Mos e merr parasysh sugjerimin",
@@ -410,33 +413,33 @@
"tabs_bar.local_timeline": "Vendore",
"tabs_bar.notifications": "Njoftime",
"tabs_bar.search": "Kërkim",
- "time_remaining.days": "{number, plural, one {# day} other {# days}} left",
- "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
- "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
- "time_remaining.moments": "Moments remaining",
- "time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
+ "time_remaining.days": "{number, plural,one {# ditë}other {# ditëve}} të mbetur",
+ "time_remaining.hours": "{number, plural,one {# orë}other {# orëve}} mbetur",
+ "time_remaining.minutes": "{number, plural,one {# minutë}other {# minuta}} mbetur",
+ "time_remaining.moments": "Momente të mbetura",
+ "time_remaining.seconds": "{number, plural,one {# sekond}other {# sekonda}} mbetur",
"trends.count_by_accounts": "{count} {rawCount, plural, një {person} {people} të tjerë} po flasin",
- "trends.trending_now": "Trending now",
+ "trends.trending_now": "Në trend",
"ui.beforeunload": "Skica juaj do të humbë nëse dilni nga Mastodon-i.",
"upload_area.title": "Merreni & vëreni që të ngarkohet",
"upload_button.label": "Shtoni media (JPEG, PNG, GIF, WebM, MP4, MOV)",
"upload_error.limit": "U tejkalua kufi ngarkimi kartelash.",
- "upload_error.poll": "File upload not allowed with polls.",
- "upload_form.audio_description": "Describe for people with hearing loss",
+ "upload_error.poll": "Ngarkimi dokumenteve nuk lejohet në votime.",
+ "upload_form.audio_description": "Shpjego për njerëzit me ndëgjim të kufizuar",
"upload_form.description": "Përshkruajeni për persona me probleme shikimi",
- "upload_form.edit": "Edit",
+ "upload_form.edit": "Modifiko",
"upload_form.undo": "Fshije",
- "upload_form.video_description": "Describe for people with hearing loss or visual impairment",
- "upload_modal.analyzing_picture": "Analyzing picture…",
- "upload_modal.apply": "Apply",
+ "upload_form.video_description": "Shpjego për njerëzit me ndëgjim të kufizuar ose probleme me të pamurit",
+ "upload_modal.analyzing_picture": "Duke analizuar fotografinë…",
+ "upload_modal.apply": "Zbato",
"upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
- "upload_modal.detect_text": "Detect text from picture",
- "upload_modal.edit_media": "Edit media",
- "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
- "upload_modal.preview_label": "Preview ({ratio})",
+ "upload_modal.detect_text": "Detekto tekstin nga fotografia",
+ "upload_modal.edit_media": "Modifiko media",
+ "upload_modal.hint": "Kliko ose zhvendos rrethin në shfaqjen e cila do të jetë pika fokusit dhe shfaqet në gjithë tablot.",
+ "upload_modal.preview_label": "Shiko paraprakisht ({ratio})",
"upload_progress.label": "Po ngarkohet…",
"video.close": "Mbylle videon",
- "video.download": "Download file",
+ "video.download": "Shkarko të dhënë",
"video.exit_fullscreen": "Dil nga mënyra Sa Krejt Ekrani",
"video.expand": "Zgjeroje videon",
"video.fullscreen": "Sa krejt ekrani",
diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json
index b2ce11ba8..d0eb44256 100644
--- a/app/javascript/mastodon/locales/sr-Latn.json
+++ b/app/javascript/mastodon/locales/sr-Latn.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "Prikaži postavke",
"column_header.unpin": "Otkači",
"column_subheading.settings": "Postavke",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Media only",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "This toot will only be visible to all the mentioned users.",
"compose_form.direct_message_warning_learn_more": "Learn more",
"compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Odobri",
"follow_request.reject": "Odbij",
+ "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.",
"getting_started.developers": "Developers",
"getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json
index 6b4dd0d62..3576d4d18 100644
--- a/app/javascript/mastodon/locales/sr.json
+++ b/app/javascript/mastodon/locales/sr.json
@@ -1,11 +1,11 @@
{
- "account.add_or_remove_from_list": "Add or Remove from lists",
+ "account.add_or_remove_from_list": "Додај или Одстрани са листа",
"account.badges.bot": "Бот",
- "account.badges.group": "Group",
+ "account.badges.group": "Група",
"account.block": "Блокирај @{name}",
"account.block_domain": "Сакриј све са домена {domain}",
"account.blocked": "Блокиран",
- "account.cancel_follow_request": "Cancel follow request",
+ "account.cancel_follow_request": "Поништи захтеве за праћење",
"account.direct": "Директна порука @{name}",
"account.domain_blocked": "Домен сакривен",
"account.edit_profile": "Измени профил",
@@ -17,16 +17,16 @@
"account.follows.empty": "Корисник тренутно не прати никога.",
"account.follows_you": "Прати Вас",
"account.hide_reblogs": "Сакриј подршке које даје корисника @{name}",
- "account.last_status": "Last active",
- "account.link_verified_on": "Ownership of this link was checked on {date}",
- "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
+ "account.last_status": "Последњи пут активан/на",
+ "account.link_verified_on": "Власништво над овом везом је проверено {date}",
+ "account.locked_info": "Статус приватности овог налога је подешен на закључано. Власник ручно прегледа ко га може пратити.",
"account.media": "Медији",
"account.mention": "Помени корисника @{name}",
"account.moved_to": "{name} се померио на:",
"account.mute": "Ућуткај корисника @{name}",
"account.mute_notifications": "Искључи обавештења од корисника @{name}",
"account.muted": "Ућуткан",
- "account.never_active": "Never",
+ "account.never_active": "Никада",
"account.posts": "Трубе",
"account.posts_with_replies": "Трубе и одговори",
"account.report": "Пријави @{name}",
@@ -39,12 +39,12 @@
"account.unfollow": "Отпрати",
"account.unmute": "Уклони ућуткавање кориснику @{name}",
"account.unmute_notifications": "Укључи назад обавештења од корисника @{name}",
- "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.",
- "alert.rate_limited.title": "Rate limited",
+ "alert.rate_limited.message": "Молимо покушајте поново после {retry_time, time, medium}.",
+ "alert.rate_limited.title": "Ограничена брзина",
"alert.unexpected.message": "Појавила се неочекивана грешка.",
"alert.unexpected.title": "Упс!",
- "announcement.announcement": "Announcement",
- "autosuggest_hashtag.per_week": "{count} per week",
+ "announcement.announcement": "Најава",
+ "autosuggest_hashtag.per_week": "{count} недељно",
"boost_modal.combo": "Можете притиснути {combo} да прескочите ово следећи пут",
"bundle_column_error.body": "Нешто је пошло по злу приликом учитавања ове компоненте.",
"bundle_column_error.retry": "Покушајте поново",
@@ -53,10 +53,10 @@
"bundle_modal_error.message": "Нешто није било у реду при учитавању ове компоненте.",
"bundle_modal_error.retry": "Покушајте поново",
"column.blocks": "Блокирани корисници",
- "column.bookmarks": "Bookmarks",
+ "column.bookmarks": "Обележивачи",
"column.community": "Локална временска линија",
"column.direct": "Директне поруке",
- "column.directory": "Browse profiles",
+ "column.directory": "Претражиј профиле",
"column.domain_blocks": "Скривени домени",
"column.favourites": "Омиљене",
"column.follow_requests": "Захтеви за праћење",
@@ -74,29 +74,31 @@
"column_header.show_settings": "Прикажи поставке",
"column_header.unpin": "Откачи",
"column_subheading.settings": "Поставке",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Само Медији",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Ова труба ће бити послата споменутим корисницима.",
"compose_form.direct_message_warning_learn_more": "Сазнајте више",
"compose_form.hashtag_warning": "Ова труба неће бити излистана под било којом тарабом јер је сакривена. Само јавне трубе могу бити претражене тарабом.",
"compose_form.lock_disclaimer": "Ваш налог није {locked}. Свако може да Вас запрати и да види објаве намењене само Вашим пратиоцима.",
"compose_form.lock_disclaimer.lock": "закључан",
"compose_form.placeholder": "Шта Вам је на уму?",
- "compose_form.poll.add_option": "Add a choice",
- "compose_form.poll.duration": "Poll duration",
- "compose_form.poll.option_placeholder": "Choice {number}",
- "compose_form.poll.remove_option": "Remove this choice",
- "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
- "compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
+ "compose_form.poll.add_option": "Додајте избор",
+ "compose_form.poll.duration": "Трајање анкете",
+ "compose_form.poll.option_placeholder": "Избор {number}",
+ "compose_form.poll.remove_option": "Одстрани овај избор",
+ "compose_form.poll.switch_to_multiple": "Промените анкету да бисте омогућили више избора",
+ "compose_form.poll.switch_to_single": "Промените анкету да бисте омогућили један избор",
"compose_form.publish": "Труби",
"compose_form.publish_loud": "{publish}!",
- "compose_form.sensitive.hide": "Mark media as sensitive",
+ "compose_form.sensitive.hide": "Означи мултимедију као осетљиву",
"compose_form.sensitive.marked": "Медији су означени као осетљиви",
"compose_form.sensitive.unmarked": "Медији су означени као не-осетљиви",
"compose_form.spoiler.marked": "Текст је сакривен иза упозорења",
"compose_form.spoiler.unmarked": "Текст није сакривен",
"compose_form.spoiler_placeholder": "Овде упишите упозорење",
"confirmation_modal.cancel": "Поништи",
- "confirmations.block.block_and_report": "Block & Report",
+ "confirmations.block.block_and_report": "Блокирај и Пријави",
"confirmations.block.confirm": "Блокирај",
"confirmations.block.message": "Да ли сте сигурни да желите да блокирате корисника {name}?",
"confirmations.delete.confirm": "Обриши",
@@ -105,25 +107,25 @@
"confirmations.delete_list.message": "Да ли сте сигурни да желите да бесповратно обришете ову листу?",
"confirmations.domain_block.confirm": "Сакриј цео домен",
"confirmations.domain_block.message": "Да ли сте заиста сигурни да желите да блокирате цео домен {domain}? У већини случајева, неколико добро промишљених блокирања или ућуткавања су довољна и препоручљива.",
- "confirmations.logout.confirm": "Log out",
- "confirmations.logout.message": "Are you sure you want to log out?",
+ "confirmations.logout.confirm": "Одјави се",
+ "confirmations.logout.message": "Да ли се сигурни да желите да се одјавите?",
"confirmations.mute.confirm": "Ућуткај",
- "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.",
+ "confirmations.mute.explanation": "Ово ће сакрити објаве од њих и објаве које их помињу, али ће им и даље дозволити да виде ваше постове и да вас запрате.",
"confirmations.mute.message": "Да ли стварно желите да ућуткате корисника {name}?",
"confirmations.redraft.confirm": "Избриши и преправи",
"confirmations.redraft.message": "Да ли сте сигурни да желите да избришете овај статус и да га преправите? Сва стављања у омиљене трубе, као и подршке ће бити изгубљене, а одговори на оригинални пост ће бити поништени.",
- "confirmations.reply.confirm": "Reply",
- "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
+ "confirmations.reply.confirm": "Одговори",
+ "confirmations.reply.message": "Одговарањем ћете обрисати поруку коју састављате. Јесте ли сигурни да желите да наставите?",
"confirmations.unfollow.confirm": "Отпрати",
"confirmations.unfollow.message": "Да ли сте сигурни да желите да отпратите корисника {name}?",
- "conversation.delete": "Delete conversation",
- "conversation.mark_as_read": "Mark as read",
- "conversation.open": "View conversation",
- "conversation.with": "With {names}",
- "directory.federated": "From known fediverse",
- "directory.local": "From {domain} only",
- "directory.new_arrivals": "New arrivals",
- "directory.recently_active": "Recently active",
+ "conversation.delete": "Обриши преписку",
+ "conversation.mark_as_read": "Означи као прочитано",
+ "conversation.open": "Прикажи преписку",
+ "conversation.with": "Са {names}",
+ "directory.federated": "Са знаних здружених инстанци",
+ "directory.local": "Само са {domain}",
+ "directory.new_arrivals": "Новопридошли",
+ "directory.recently_active": "Недавно активни",
"embed.instructions": "Угради овај статус на Ваш веб сајт копирањем кода испод.",
"embed.preview": "Овако ће да изгледа:",
"emoji_button.activity": "Активност",
@@ -140,10 +142,10 @@
"emoji_button.search_results": "Резултати претраге",
"emoji_button.symbols": "Симболи",
"emoji_button.travel": "Путовања и места",
- "empty_column.account_timeline": "No toots here!",
- "empty_column.account_unavailable": "Profile unavailable",
+ "empty_column.account_timeline": "Овде нема труба!",
+ "empty_column.account_unavailable": "Профил недоступан",
"empty_column.blocks": "Још увек немате блокираних корисника.",
- "empty_column.bookmarked_statuses": "You don't have any bookmarked toots yet. When you bookmark one, it will show up here.",
+ "empty_column.bookmarked_statuses": "Још увек немате обележене трубе. Када их обележите, појавиће се овде.",
"empty_column.community": "Локална временска линија је празна. Напишите нешто јавно да започнете!",
"empty_column.direct": "Још увек немате директних порука. Када пошаљете или примите једну, појавиће се овде.",
"empty_column.domain_blocks": "Још увек нема сакривених домена.",
@@ -158,10 +160,10 @@
"empty_column.mutes": "Још увек немате ућутканих корисника.",
"empty_column.notifications": "Тренутно немате обавештења. Дружите се мало да започнете разговор.",
"empty_column.public": "Овде нема ничега! Напишите нешто јавно, или нађите кориснике са других инстанци које ћете запратити да попуните ову празнину",
- "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
- "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
- "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
- "errors.unexpected_crash.report_issue": "Report issue",
+ "error.unexpected_crash.explanation": "Због грешке у нашем коду или проблема са компатибилношћу прегледача, ова страница се није могла правилно приказати.",
+ "error.unexpected_crash.next_steps": "Покушајте да освежите страницу. Ако то не помогне, можда ћете и даље моћи да користите Мастодон путем другог прегледача или матичне апликације.",
+ "errors.unexpected_crash.copy_stacktrace": "Копирај \"stacktrace\" у клипборд",
+ "errors.unexpected_crash.report_issue": "Пријави проблем",
"federation.change": "Adjust status federation",
"federation.federated.long": "Allow toot to reach other instances",
"federation.federated.short": "Federated",
@@ -169,35 +171,36 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Одобри",
"follow_request.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.",
"getting_started.developers": "Програмери",
- "getting_started.directory": "Profile directory",
+ "getting_started.directory": "Профил фасцикле",
"getting_started.documentation": "Документација",
"getting_started.heading": "Да почнете",
"getting_started.invite": "Позовите људе",
"getting_started.open_source_notice": "Мастoдон је софтвер отвореног кода. Можете му допринети или пријавити проблеме преко ГитХаба на {github}.",
"getting_started.security": "Безбедност",
"getting_started.terms": "Услови коришћења",
- "hashtag.column_header.tag_mode.all": "and {additional}",
- "hashtag.column_header.tag_mode.any": "or {additional}",
- "hashtag.column_header.tag_mode.none": "without {additional}",
- "hashtag.column_settings.select.no_options_message": "No suggestions found",
- "hashtag.column_settings.select.placeholder": "Enter hashtags…",
- "hashtag.column_settings.tag_mode.all": "All of these",
- "hashtag.column_settings.tag_mode.any": "Any of these",
- "hashtag.column_settings.tag_mode.none": "None of these",
+ "hashtag.column_header.tag_mode.all": "и {additional}",
+ "hashtag.column_header.tag_mode.any": "или {additional}",
+ "hashtag.column_header.tag_mode.none": "без {additional}",
+ "hashtag.column_settings.select.no_options_message": "Нису пронађени предлози",
+ "hashtag.column_settings.select.placeholder": "Унеси хештег…",
+ "hashtag.column_settings.tag_mode.all": "Све оve",
+ "hashtag.column_settings.tag_mode.any": "Било које од ових",
+ "hashtag.column_settings.tag_mode.none": "Ништа од ових",
"hashtag.column_settings.tag_toggle": "Include additional tags in this column",
"home.column_settings.basic": "Основно",
"home.column_settings.show_reblogs": "Прикажи и подржавања",
"home.column_settings.show_replies": "Прикажи одговоре",
- "home.hide_announcements": "Hide announcements",
- "home.show_announcements": "Show announcements",
- "intervals.full.days": "{number, plural, one {# day} other {# days}}",
- "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
- "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
- "introduction.federation.action": "Next",
- "introduction.federation.federated.headline": "Federated",
- "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
- "introduction.federation.home.headline": "Home",
+ "home.hide_announcements": "Сакриј најаве",
+ "home.show_announcements": "Пријажи најаве",
+ "intervals.full.days": "{number, plural, one {# дан} other {# дана}}",
+ "intervals.full.hours": "{number, plural, one {# сат} other {# сати}}",
+ "intervals.full.minutes": "{number, plural, one {# минут} other {# минута}}",
+ "introduction.federation.action": "Даље",
+ "introduction.federation.federated.headline": "Федерисано",
+ "introduction.federation.federated.text": "Јавне објаве са осталих сервера из здружених инстанци ће се појавити у федерисаној временској линији.",
+ "introduction.federation.home.headline": "Почетна",
"introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
"introduction.federation.local.headline": "Local",
"introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
@@ -360,13 +363,13 @@
"search_results.statuses": "Трубе",
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
"search_results.total": "{count, number} {count, plural, one {резултат} few {резултата} other {резултата}}",
- "status.admin_account": "Open moderation interface for @{name}",
- "status.admin_status": "Open this status in the moderation interface",
+ "status.admin_account": "Отвори модераторски интерфејс за @{name}",
+ "status.admin_status": "Отвори овај статус у модераторском интерфејсу",
"status.block": "Блокирај @{name}",
- "status.bookmark": "Bookmark",
+ "status.bookmark": "Обележи",
"status.cancel_reblog_private": "Уклони подршку",
"status.cannot_reblog": "Овај статус не може да се подржи",
- "status.copy": "Copy link to status",
+ "status.copy": "Копирај везу на статус",
"status.delete": "Обриши",
"status.detailed_status": "Детаљни преглед разговора",
"status.direct": "Директна порука @{name}",
@@ -383,13 +386,13 @@
"status.open": "Прошири овај статус",
"status.pin": "Закачи на профил",
"status.pinned": "Закачена труба",
- "status.read_more": "Read more",
+ "status.read_more": "Прочитајте више",
"status.reblog": "Подржи",
"status.reblog_private": "Подржи да види првобитна публика",
"status.reblogged_by": "{name} подржао/ла",
"status.reblogs.empty": "Још увек нико није подржао ову трубу. Када буде подржана, појавиће се овде.",
"status.redraft": "Избриши и преправи",
- "status.remove_bookmark": "Remove bookmark",
+ "status.remove_bookmark": "Уклони обележивач",
"status.reply": "Одговори",
"status.replyAll": "Одговори на дискусију",
"status.report": "Пријави корисника @{name}",
diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json
index 820fe5133..ef9fcd8aa 100644
--- a/app/javascript/mastodon/locales/sv.json
+++ b/app/javascript/mastodon/locales/sv.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "Visa inställningar",
"column_header.unpin": "Ångra fäst",
"column_subheading.settings": "Inställningar",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Endast media",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Denna tutning kommer endast skickas till de nämnda användarna.",
"compose_form.direct_message_warning_learn_more": "Lär dig mer",
"compose_form.hashtag_warning": "Denna toot kommer inte att visas under någon hashtag eftersom den är onoterad. Endast offentliga toots kan sökas med hashtag.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Godkänn",
"follow_request.reject": "Avvisa",
+ "follow_requests.unlocked_explanation": "Även om ditt konto inte är låst tror {domain} personalen att du kanske vill granska dessa följares förfrågningar manuellt.",
"getting_started.developers": "Utvecklare",
"getting_started.directory": "Profilkatalog",
"getting_started.documentation": "Dokumentation",
@@ -189,8 +192,8 @@
"home.column_settings.basic": "Grundläggande",
"home.column_settings.show_reblogs": "Visa knuffar",
"home.column_settings.show_replies": "Visa svar",
- "home.hide_announcements": "Hide announcements",
- "home.show_announcements": "Show announcements",
+ "home.hide_announcements": "Dölj notiser",
+ "home.show_announcements": "Visa notiser",
"intervals.full.days": "{number, plural, one {# dag} other {# dagar}}",
"intervals.full.hours": "{number, plural, one {# timme} other {# timmar}}",
"intervals.full.minutes": "{number, plural, one {# minut} other {# minuter}}",
@@ -340,7 +343,7 @@
"relative_time.just_now": "nu",
"relative_time.minutes": "{number}min",
"relative_time.seconds": "{number}sek",
- "relative_time.today": "today",
+ "relative_time.today": "idag",
"reply_indicator.cancel": "Ångra",
"report.forward": "Vidarebefordra till {target}",
"report.forward_hint": "Kontot är från en annan server. Skicka även en anonymiserad kopia av anmälan dit?",
diff --git a/app/javascript/mastodon/locales/ta.json b/app/javascript/mastodon/locales/ta.json
index c14e9a6b4..75e9c1d74 100644
--- a/app/javascript/mastodon/locales/ta.json
+++ b/app/javascript/mastodon/locales/ta.json
@@ -66,7 +66,7 @@
"column.notifications": "அறிவிப்புகள்",
"column.pins": "பொருத்தப்பட்ட டூட்டுகள்",
"column.public": "ஆலமரத்தில் நிகழ்பவை",
- "column_back_button.label": "திரும்பு",
+ "column_back_button.label": "பின்செல்",
"column_header.hide_settings": "அமைப்புகளை மறை",
"column_header.moveLeft_settings": "நெடுவரிசையை இடதுபுறமாக நகர்த்து",
"column_header.moveRight_settings": "நெடுவரிசையை வலதுபுறமாக நகர்த்து",
@@ -74,7 +74,9 @@
"column_header.show_settings": "அமைப்புகளைக் காட்டு",
"column_header.unpin": "கழட்டு",
"column_subheading.settings": "அமைப்புகள்",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "படங்கள் மட்டுமே",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "இந்த டூட் இதில் குறிப்பிடப்பட்டுள்ள பயனர்களுக்கு மட்டுமே அனுப்பப்படும்.",
"compose_form.direct_message_warning_learn_more": "மேலும் அறிய",
"compose_form.hashtag_warning": "இது ஒரு பட்டியலிடப்படாத டூட் என்பதால் எந்த ஹேஷ்டேகின் கீழும் வராது. ஹேஷ்டேகின் மூலம் பொதுவில் உள்ள டூட்டுகளை மட்டுமே தேட முடியும்.",
@@ -130,13 +132,13 @@
"emoji_button.custom": "தனிப்பயன்",
"emoji_button.flags": "கொடிகள்",
"emoji_button.food": "உணவு மற்றும் பானம்",
- "emoji_button.label": "குறுப்படங்களை உள்ளிடு",
+ "emoji_button.label": "எமோஜியை உள்ளிடு",
"emoji_button.nature": "இயற்கை",
- "emoji_button.not_found": "எமோஜோஸ் இல்லை! (╯°□°)╯︵ ┻━┻",
- "emoji_button.objects": "மறுப்ப கூறு",
+ "emoji_button.not_found": "வேண்டாம் எமோஜோஸ்! (╯°□°)╯︵ ┻━┻",
+ "emoji_button.objects": "பொருட்கள்",
"emoji_button.people": "மக்கள்",
- "emoji_button.recent": "அடிக்கடி பயன்படுத்தப்படும்",
- "emoji_button.search": "தேடல்...",
+ "emoji_button.recent": "அடிக்கடி பயன்படுத்தப்படுபவை",
+ "emoji_button.search": "தேடு...",
"emoji_button.search_results": "தேடல் முடிவுகள்",
"emoji_button.symbols": "குறியீடுகள்",
"emoji_button.travel": "சுற்றுலா மற்றும் இடங்கள்",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "அதிகாரமளி",
"follow_request.reject": "விலக்கு",
+ "follow_requests.unlocked_explanation": "உங்கள் கணக்கு பூட்டப்படவில்லை என்றாலும், இந்தக் கணக்குகளிலிருந்து உங்களைப் பின்தொடர விரும்பும் கோரிக்கைகளை நீங்கள் பரீசீலிப்பது நலம் என்று {domain} ஊழியர் எண்ணுகிறார்.",
"getting_started.developers": "உருவாக்குநர்கள்",
"getting_started.directory": "சுயவிவர அடைவு",
"getting_started.documentation": "ஆவணங்கள்",
diff --git a/app/javascript/mastodon/locales/te.json b/app/javascript/mastodon/locales/te.json
index 4a0b3cf38..6a459a5b9 100644
--- a/app/javascript/mastodon/locales/te.json
+++ b/app/javascript/mastodon/locales/te.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "అమర్పులను చూపించు",
"column_header.unpin": "పీకివేయు",
"column_subheading.settings": "అమర్పులు",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "మీడియా మాత్రమే",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "ఈ టూట్ పేర్కొన్న వినియోగదారులకు మాత్రమే పంపబడుతుంది.",
"compose_form.direct_message_warning_learn_more": "మరింత తెలుసుకోండి",
"compose_form.hashtag_warning": "ఈ టూట్ అన్లిస్టెడ్ కాబట్టి ఏ హాష్ ట్యాగ్ క్రిందకూ రాదు. పబ్లిక్ టూట్ లను మాత్రమే హాష్ ట్యాగ్ ద్వారా శోధించవచ్చు.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "అనుమతించు",
"follow_request.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.",
"getting_started.developers": "డెవలపర్లు",
"getting_started.directory": "ప్రొఫైల్ డైరెక్టరీ",
"getting_started.documentation": "డాక్యుమెంటేషన్",
diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json
index 299f66aea..21de0fadb 100644
--- a/app/javascript/mastodon/locales/th.json
+++ b/app/javascript/mastodon/locales/th.json
@@ -3,11 +3,11 @@
"account.badges.bot": "บอต",
"account.badges.group": "กลุ่ม",
"account.block": "ปิดกั้น @{name}",
- "account.block_domain": "ซ่อนทุกอย่างจาก {domain}",
+ "account.block_domain": "ปิดกั้นโดเมน {domain}",
"account.blocked": "ปิดกั้นอยู่",
"account.cancel_follow_request": "ยกเลิกคำขอติดตาม",
"account.direct": "ส่งข้อความโดยตรงถึง @{name}",
- "account.domain_blocked": "ซ่อนโดเมนอยู่",
+ "account.domain_blocked": "ปิดกั้นโดเมนอยู่",
"account.edit_profile": "แก้ไขโปรไฟล์",
"account.endorse": "แสดงให้เห็นในโปรไฟล์",
"account.follow": "ติดตาม",
@@ -34,7 +34,7 @@
"account.share": "แบ่งปันโปรไฟล์ของ @{name}",
"account.show_reblogs": "แสดงการดันจาก @{name}",
"account.unblock": "เลิกปิดกั้น @{name}",
- "account.unblock_domain": "เลิกซ่อน {domain}",
+ "account.unblock_domain": "เลิกปิดกั้นโดเมน {domain}",
"account.unendorse": "ไม่แสดงให้เห็นในโปรไฟล์",
"account.unfollow": "เลิกติดตาม",
"account.unmute": "เลิกปิดเสียง @{name}",
@@ -54,10 +54,10 @@
"bundle_modal_error.retry": "ลองอีกครั้ง",
"column.blocks": "ผู้ใช้ที่ปิดกั้นอยู่",
"column.bookmarks": "ที่คั่นหน้า",
- "column.community": "เส้นเวลาในเว็บ",
+ "column.community": "เส้นเวลาในเซิร์ฟเวอร์",
"column.direct": "ข้อความโดยตรง",
"column.directory": "เรียกดูโปรไฟล์",
- "column.domain_blocks": "โดเมนที่ซ่อนอยู่",
+ "column.domain_blocks": "โดเมนที่ปิดกั้นอยู่",
"column.favourites": "รายการโปรด",
"column.follow_requests": "คำขอติดตาม",
"column.home": "หน้าแรก",
@@ -74,7 +74,9 @@
"column_header.show_settings": "แสดงการตั้งค่า",
"column_header.unpin": "ถอนหมุด",
"column_subheading.settings": "การตั้งค่า",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "สื่อเท่านั้น",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "จะส่งโพสต์นี้ไปยังผู้ใช้ที่กล่าวถึงเท่านั้น",
"compose_form.direct_message_warning_learn_more": "เรียนรู้เพิ่มเติม",
"compose_form.hashtag_warning": "จะไม่แสดงรายการโพสต์นี้ภายใต้แฮชแท็กใด ๆ เนื่องจากไม่อยู่ในรายการ เฉพาะโพสต์สาธารณะเท่านั้นที่สามารถค้นหาโดยแฮชแท็ก",
@@ -103,7 +105,7 @@
"confirmations.delete.message": "คุณแน่ใจหรือไม่ว่าต้องการลบสถานะนี้?",
"confirmations.delete_list.confirm": "ลบ",
"confirmations.delete_list.message": "คุณแน่ใจหรือไม่ว่าต้องการลบรายการนี้อย่างถาวร?",
- "confirmations.domain_block.confirm": "ซ่อนทั้งโดเมน",
+ "confirmations.domain_block.confirm": "ปิดกั้นทั้งโดเมน",
"confirmations.domain_block.message": "คุณแน่ใจจริง ๆ หรือไม่ว่าต้องการปิดกั้นทั้ง {domain}? ในกรณีส่วนใหญ่ การปิดกั้นหรือการปิดเสียงแบบกำหนดเป้าหมายไม่กี่รายการนั้นเพียงพอและเป็นที่นิยม คุณจะไม่เห็นเนื้อหาจากโดเมนนั้นในเส้นเวลาสาธารณะใด ๆ หรือการแจ้งเตือนของคุณ จะเอาผู้ติดตามของคุณจากโดเมนนั้นออก",
"confirmations.logout.confirm": "ออกจากระบบ",
"confirmations.logout.message": "คุณแน่ใจหรือไม่ว่าต้องการออกจากระบบ?",
@@ -144,9 +146,9 @@
"empty_column.account_unavailable": "ไม่มีโปรไฟล์",
"empty_column.blocks": "คุณยังไม่ได้ปิดกั้นผู้ใช้ใด ๆ",
"empty_column.bookmarked_statuses": "คุณยังไม่มีโพสต์ที่เพิ่มที่คั่นหน้าไว้ใด ๆ เมื่อคุณเพิ่มที่คั่นหน้าโพสต์ โพสต์จะปรากฏที่นี่",
- "empty_column.community": "เส้นเวลาในเว็บว่างเปล่า เขียนบางอย่างเป็นสาธารณะเพื่อเริ่มต้น!",
+ "empty_column.community": "เส้นเวลาในเซิร์ฟเวอร์ว่างเปล่า เขียนบางอย่างเป็นสาธารณะเพื่อเริ่มต้น!",
"empty_column.direct": "คุณยังไม่มีข้อความโดยตรงใด ๆ เมื่อคุณส่งหรือรับข้อความ ข้อความจะปรากฏที่นี่",
- "empty_column.domain_blocks": "ยังไม่มีโดเมนที่ซ่อนอยู่",
+ "empty_column.domain_blocks": "ยังไม่มีโดเมนที่ปิดกั้นอยู่",
"empty_column.favourited_statuses": "คุณยังไม่มีโพสต์ที่ชื่นชอบใด ๆ เมื่อคุณชื่นชอบโพสต์ โพสต์จะปรากฏที่นี่",
"empty_column.favourites": "ยังไม่มีใครชื่นชอบโพสต์นี้ เมื่อใครสักคนชื่นชอบ เขาจะปรากฏที่นี่",
"empty_column.follow_requests": "คุณยังไม่มีคำขอติดตามใด ๆ เมื่อคุณได้รับคำขอ คำขอจะปรากฏที่นี่",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "อนุญาต",
"follow_request.reject": "ปฏิเสธ",
+ "follow_requests.unlocked_explanation": "แม้ว่าไม่มีการล็อคบัญชีของคุณ พนักงานของ {domain} คิดว่าคุณอาจต้องการตรวจทานคำขอติดตามจากบัญชีเหล่านี้ด้วยตนเอง",
"getting_started.developers": "นักพัฒนา",
"getting_started.directory": "ไดเรกทอรีโปรไฟล์",
"getting_started.documentation": "เอกสารประกอบ",
@@ -199,8 +202,8 @@
"introduction.federation.federated.text": "โพสต์สาธารณะจากเซิร์ฟเวอร์อื่น ๆ ของเฟดิเวิร์สจะปรากฏในเส้นเวลาที่ติดต่อกับภายนอก",
"introduction.federation.home.headline": "หน้าแรก",
"introduction.federation.home.text": "โพสต์จากผู้คนที่คุณติดตามจะปรากฏในฟีดหน้าแรกของคุณ คุณสามารถติดตามใครก็ตามในเซิร์ฟเวอร์ใดก็ตาม!",
- "introduction.federation.local.headline": "ในเว็บ",
- "introduction.federation.local.text": "โพสต์สาธารณะจากผู้คนในเซิร์ฟเวอร์เดียวกันกับคุณจะปรากฏในเส้นเวลาในเว็บ",
+ "introduction.federation.local.headline": "ในเซิร์ฟเวอร์",
+ "introduction.federation.local.text": "โพสต์สาธารณะจากผู้คนในเซิร์ฟเวอร์เดียวกันกับคุณจะปรากฏในเส้นเวลาในเซิร์ฟเวอร์",
"introduction.interactions.action": "เสร็จสิ้นบทช่วยสอน!",
"introduction.interactions.favourite.headline": "ชื่นชอบ",
"introduction.interactions.favourite.text": "คุณสามารถบันทึกโพสต์ไว้ในภายหลังและแจ้งให้ผู้สร้างทราบว่าคุณชอบโพสต์โดยการชื่นชอบโพสต์",
@@ -227,7 +230,7 @@
"keyboard_shortcuts.home": "เพื่อเปิดเส้นเวลาหน้าแรก",
"keyboard_shortcuts.hotkey": "ปุ่มลัด",
"keyboard_shortcuts.legend": "เพื่อแสดงคำอธิบายนี้",
- "keyboard_shortcuts.local": "เพื่อเปิดเส้นเวลาในเว็บ",
+ "keyboard_shortcuts.local": "เพื่อเปิดเส้นเวลาในเซิร์ฟเวอร์",
"keyboard_shortcuts.mention": "เพื่อกล่าวถึงผู้สร้าง",
"keyboard_shortcuts.muted": "เพื่อเปิดรายการผู้ใช้ที่ปิดเสียงอยู่",
"keyboard_shortcuts.my_profile": "เพื่อเปิดโปรไฟล์ของคุณ",
@@ -259,18 +262,18 @@
"lists.subheading": "รายการของคุณ",
"load_pending": "{count, plural, other {# รายการใหม่}}",
"loading_indicator.label": "กำลังโหลด...",
- "media_gallery.toggle_visible": "เปิด/ปิดการมองเห็น",
+ "media_gallery.toggle_visible": "ซ่อนสื่อ",
"missing_indicator.label": "ไม่พบ",
"missing_indicator.sublabel": "ไม่พบทรัพยากรนี้",
"mute_modal.hide_notifications": "ซ่อนการแจ้งเตือนจากผู้ใช้นี้?",
"navigation_bar.apps": "แอปมือถือ",
"navigation_bar.blocks": "ผู้ใช้ที่ปิดกั้นอยู่",
"navigation_bar.bookmarks": "ที่คั่นหน้า",
- "navigation_bar.community_timeline": "เส้นเวลาในเว็บ",
+ "navigation_bar.community_timeline": "เส้นเวลาในเซิร์ฟเวอร์",
"navigation_bar.compose": "เขียนโพสต์ใหม่",
"navigation_bar.direct": "ข้อความโดยตรง",
"navigation_bar.discover": "ค้นพบ",
- "navigation_bar.domain_blocks": "โดเมนที่ซ่อนอยู่",
+ "navigation_bar.domain_blocks": "โดเมนที่ปิดกั้นอยู่",
"navigation_bar.edit_profile": "แก้ไขโปรไฟล์",
"navigation_bar.favourites": "รายการโปรด",
"navigation_bar.filters": "คำที่ปิดเสียงอยู่",
@@ -324,13 +327,13 @@
"poll_button.add_poll": "เพิ่มการสำรวจความคิดเห็น",
"poll_button.remove_poll": "เอาการสำรวจความคิดเห็นออก",
"privacy.change": "ปรับเปลี่ยนความเป็นส่วนตัวของสถานะ",
- "privacy.direct.long": "โพสต์ไปยังผู้ใช้ที่กล่าวถึงเท่านั้น",
+ "privacy.direct.long": "ปรากฏแก่ผู้ใช้ที่กล่าวถึงเท่านั้น",
"privacy.direct.short": "โดยตรง",
- "privacy.private.long": "โพสต์ไปยังผู้ติดตามเท่านั้น",
+ "privacy.private.long": "ปรากฏแก่ผู้ติดตามเท่านั้น",
"privacy.private.short": "ผู้ติดตามเท่านั้น",
- "privacy.public.long": "โพสต์ไปยังเส้นเวลาสาธารณะ",
+ "privacy.public.long": "ปรากฏแก่ทุกคน แสดงในเส้นเวลาสาธารณะ",
"privacy.public.short": "สาธารณะ",
- "privacy.unlisted.long": "ไม่โพสต์ไปยังเส้นเวลาสาธารณะ",
+ "privacy.unlisted.long": "ปรากฏแก่ทุกคน แต่ไม่อยู่ในเส้นเวลาสาธารณะ",
"privacy.unlisted.short": "ไม่อยู่ในรายการ",
"refresh": "รีเฟรช",
"regeneration_indicator.label": "กำลังโหลด…",
@@ -407,7 +410,7 @@
"suggestions.header": "คุณอาจสนใจ…",
"tabs_bar.federated_timeline": "ที่ติดต่อกับภายนอก",
"tabs_bar.home": "หน้าแรก",
- "tabs_bar.local_timeline": "ในเว็บ",
+ "tabs_bar.local_timeline": "ในเซิร์ฟเวอร์",
"tabs_bar.notifications": "การแจ้งเตือน",
"tabs_bar.search": "ค้นหา",
"time_remaining.days": "เหลืออีก {number, plural, other {# วัน}}",
@@ -415,7 +418,7 @@
"time_remaining.minutes": "เหลืออีก {number, plural, other {# นาที}}",
"time_remaining.moments": "ช่วงเวลาที่เหลือ",
"time_remaining.seconds": "เหลืออีก {number, plural, other {# วินาที}}",
- "trends.count_by_accounts": "{count} {rawCount, plural, other {คน}}กำลังคุย",
+ "trends.count_by_accounts": "{count} {rawCount, plural, other {คน}}กำลังพูดคุย",
"trends.trending_now": "กำลังนิยม",
"ui.beforeunload": "แบบร่างของคุณจะหายไปหากคุณออกจาก Mastodon",
"upload_area.title": "ลากแล้วปล่อยเพื่ออัปโหลด",
diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json
index 9c034d3cf..3a3396593 100644
--- a/app/javascript/mastodon/locales/tr.json
+++ b/app/javascript/mastodon/locales/tr.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "Ayarları göster",
"column_header.unpin": "Sabitlemeyi kaldır",
"column_subheading.settings": "Ayarlar",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Sadece medya",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Bu toot sadece belirtilen kullanıcılara gönderilecektir.",
"compose_form.direct_message_warning_learn_more": "Daha fazla bilgi edinin",
"compose_form.hashtag_warning": "Bu toot liste dışı olduğu için hiç bir etikette yer almayacak. Sadece herkese açık tootlar etiketlerde bulunabilir.",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Yetkilendir",
"follow_request.reject": "Reddet",
+ "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.",
"getting_started.developers": "Geliştiriciler",
"getting_started.directory": "Profil dizini",
"getting_started.documentation": "Belgeler",
diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json
index 5820323ea..4553bd0da 100644
--- a/app/javascript/mastodon/locales/uk.json
+++ b/app/javascript/mastodon/locales/uk.json
@@ -15,7 +15,7 @@
"account.followers.empty": "Ніхто ще не підписався на цього користувача.",
"account.follows": "Підписки",
"account.follows.empty": "Цей користувач ще ні на кого не підписався.",
- "account.follows_you": "Підписаний(-а) на Вас",
+ "account.follows_you": "Підписаний(-а) на вас",
"account.hide_reblogs": "Сховати передмухи від @{name}",
"account.last_status": "Крайня активність",
"account.link_verified_on": "Права власності на це посилання були перевірені {date}",
@@ -31,7 +31,7 @@
"account.posts_with_replies": "Дмухи й відповіді",
"account.report": "Поскаржитися на @{name}",
"account.requested": "Очікує підтвердження. Натисніть щоб відмінити запит",
- "account.share": "Поширити профіль @{name}",
+ "account.share": "Поділитися профілем @{name}",
"account.show_reblogs": "Показати передмухи від @{name}",
"account.unblock": "Розблокувати @{name}",
"account.unblock_domain": "Розблокувати {domain}",
@@ -53,7 +53,7 @@
"bundle_modal_error.message": "Щось пішло не так під час завантаження компоненту.",
"bundle_modal_error.retry": "Спробувати ще раз",
"column.blocks": "Заблоковані користувачі",
- "column.bookmarks": "Bookmarks",
+ "column.bookmarks": "Закладки",
"column.community": "Локальна стрічка",
"column.direct": "Прямі повідомлення",
"column.directory": "Переглянути профілі",
@@ -74,13 +74,15 @@
"column_header.show_settings": "Показати налаштування",
"column_header.unpin": "Відкріпити",
"column_subheading.settings": "Налаштування",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Тільки медіа",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Цей дмух буде видимий тільки згаданим користувачам.",
"compose_form.direct_message_warning_learn_more": "Дізнатися більше",
"compose_form.hashtag_warning": "Цей дмух не буде відображений у жодній стрічці хештеґу, оскільки він прихований. Тільки публічні дмухи можуть бути знайдені за хештеґом.",
- "compose_form.lock_disclaimer": "Ваш акаунт не {locked}. Кожен може підписатися на Вас та бачити Ваші приватні пости.",
+ "compose_form.lock_disclaimer": "Ваш акаунт не {locked}. Будь-який користувач може підписатися на вас та переглядати ваші приватні пости.",
"compose_form.lock_disclaimer.lock": "приватний",
- "compose_form.placeholder": "Що у Вас на думці?",
+ "compose_form.placeholder": "Що у вас на думці?",
"compose_form.poll.add_option": "Додати варіант",
"compose_form.poll.duration": "Тривалість опитування",
"compose_form.poll.option_placeholder": "Варіант {number}",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "Авторизувати",
"follow_request.reject": "Відмовити",
+ "follow_requests.unlocked_explanation": "Хоча ваш обліковий запис не заблоковано, працівники {domain} припускають, що, можливо, ви хотіли б переглянути ці запити на підписку.",
"getting_started.developers": "Розробникам",
"getting_started.directory": "Каталог профілів",
"getting_started.documentation": "Документація",
@@ -287,9 +290,9 @@
"navigation_bar.public_timeline": "Глобальна стрічка",
"navigation_bar.security": "Безпека",
"notification.favourite": "{name} вподобав(-ла) ваш допис",
- "notification.follow": "{name} підписався(-лась) на Вас",
- "notification.follow_request": "{name} хоче підписатися на Вас",
- "notification.mention": "{name} згадав(-ла) Вас",
+ "notification.follow": "{name} підписався(-лась) на вас",
+ "notification.follow_request": "{name} відправив(-ла) запит на підписку",
+ "notification.mention": "{name} згадав(-ла) вас",
"notification.own_poll": "Ваше опитування завершено",
"notification.poll": "Опитування, у якому ви голосували, закінчилося",
"notification.reblog": "{name} передмухнув(-ла) Ваш допис",
@@ -343,8 +346,8 @@
"relative_time.today": "сьогодні",
"reply_indicator.cancel": "Відмінити",
"report.forward": "Надіслати до {target}",
- "report.forward_hint": "Це аккаунт з іншого серверу. Відправити анонімізовану копію скарги і туди?",
- "report.hint": "Скаргу буде відправлено модераторам Вашого сайту. Ви можете надати їм пояснення, чому ви скаржитесь на аккаунт нижче:",
+ "report.forward_hint": "Це акаунт з іншого серверу. Відправити анонімізовану копію скарги і туди?",
+ "report.hint": "Скаргу буде відправлено модераторам Вашого сайту. Ви можете надати їм пояснення, чому ви скаржитесь на акаунт нижче:",
"report.placeholder": "Додаткові коментарі",
"report.submit": "Відправити",
"report.target": "Скаржимося на {target}",
@@ -363,7 +366,7 @@
"status.admin_account": "Відкрити інтерфейс модерації для @{name}",
"status.admin_status": "Відкрити цей статус в інтерфейсі модерації",
"status.block": "Заблокувати @{name}",
- "status.bookmark": "У закладки",
+ "status.bookmark": "Додати в закладки",
"status.cancel_reblog_private": "Відмінити передмухання",
"status.cannot_reblog": "Цей допис не може бути передмухнутий",
"status.copy": "Копіювати посилання до статусу",
@@ -375,7 +378,7 @@
"status.filtered": "Відфільтровано",
"status.load_more": "Завантажити більше",
"status.local_only": "This post is only visible by other users of your instance",
- "status.media_hidden": "Медіаконтент приховано",
+ "status.media_hidden": "Медіа приховано",
"status.mention": "Згадати @{name}",
"status.more": "Більше",
"status.mute": "Заглушити @{name}",
@@ -419,7 +422,7 @@
"trends.trending_now": "Актуальні",
"ui.beforeunload": "Вашу чернетку буде втрачено, якщо ви покинете Mastodon.",
"upload_area.title": "Перетягніть сюди, щоб завантажити",
- "upload_button.label": "Додати медіаконтент ({formats})",
+ "upload_button.label": "Додати медіа ({formats})",
"upload_error.limit": "Ліміт завантаження файлів перевищено.",
"upload_error.poll": "Не можна завантажувати файли до опитувань.",
"upload_form.audio_description": "Опишіть для людей із вадами слуху",
diff --git a/app/javascript/mastodon/locales/ur.json b/app/javascript/mastodon/locales/ur.json
index 664eebfbf..a62a1e917 100644
--- a/app/javascript/mastodon/locales/ur.json
+++ b/app/javascript/mastodon/locales/ur.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "ترتیبات دکھائیں",
"column_header.unpin": "رہا کریں",
"column_subheading.settings": "ترتیبات",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "وسائل فقط",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "یہ ٹوٹ صرف مذکورہ صارفین کو بھیجا جائے گا.",
"compose_form.direct_message_warning_learn_more": "مزید جانیں",
"compose_form.hashtag_warning": "چونکہ یہ ٹوٹ غیر مندرجہ ہے لہذا یہ کسی بھی ہیش ٹیگ کے تحت درج نہیں کیا جائے گا. ہیش ٹیگ کے تحت صرف \nعمومی ٹوٹ تلاش کئے جا سکتے ہیں.",
@@ -164,6 +166,7 @@
"errors.unexpected_crash.report_issue": "مسئلہ کی اطلاع کریں",
"follow_request.authorize": "اجازت دیں",
"follow_request.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.",
"getting_started.developers": "Developers",
"getting_started.directory": "فہرست مشخصات",
"getting_started.documentation": "اسناد",
@@ -254,7 +257,7 @@
"lists.subheading": "Your lists",
"load_pending": "{count, plural, one {# new item} other {# new items}}",
"loading_indicator.label": "Loading...",
- "media_gallery.toggle_visible": "Toggle visibility",
+ "media_gallery.toggle_visible": "Hide media",
"missing_indicator.label": "Not found",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.hide_notifications": "Hide notifications from this user?",
diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json
index 067a422e6..126fbc561 100644
--- a/app/javascript/mastodon/locales/vi.json
+++ b/app/javascript/mastodon/locales/vi.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "Hiển thị cài đặt",
"column_header.unpin": "Bỏ ghim",
"column_subheading.settings": "Cài đặt",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Chỉ tút có media",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Tút này sẽ chỉ gửi cho người được nhắc đến.",
"compose_form.direct_message_warning_learn_more": "Tìm hiểu thêm",
"compose_form.hashtag_warning": "Tút này sẽ không được xuất hiện khi tìm kiếm theo hashtag vì nó không công khai. Chỉ Tút công khai có thể được tìm kiếm theo hashtag.",
@@ -164,6 +166,7 @@
"errors.unexpected_crash.report_issue": "Báo cáo phát hành",
"follow_request.authorize": "Cho phép",
"follow_request.reject": "Từ chối",
+ "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.",
"getting_started.developers": "Nhà phát triển",
"getting_started.directory": "Danh mục thành viên",
"getting_started.documentation": "Tài liệu",
diff --git a/app/javascript/mastodon/locales/whitelist_sc.json b/app/javascript/mastodon/locales/whitelist_sc.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/mastodon/locales/whitelist_sc.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json
index 6b71457e5..306f9522b 100644
--- a/app/javascript/mastodon/locales/zh-CN.json
+++ b/app/javascript/mastodon/locales/zh-CN.json
@@ -74,7 +74,9 @@
"column_header.show_settings": "显示设置",
"column_header.unpin": "取消固定",
"column_subheading.settings": "设置",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "仅媒体",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "这条嘟文仅对所有被提及的用户可见。",
"compose_form.direct_message_warning_learn_more": "了解详情",
"compose_form.hashtag_warning": "这条嘟文被设置为“不公开”,因此它不会出现在任何话题标签的列表下。只有公开的嘟文才能通过话题标签进行搜索。",
@@ -158,7 +160,7 @@
"empty_column.mutes": "你没有隐藏任何用户。",
"empty_column.notifications": "你还没有收到过任何通知,快和其他用户互动吧。",
"empty_column.public": "这里什么都没有!写一些公开的嘟文,或者关注其他服务器的用户后,这里就会有嘟文出现了",
- "error.unexpected_crash.explanation": "此页面无法正确现实,这可能是因为我们的代码中有错误,也可能是因为浏览器兼容问题。",
+ "error.unexpected_crash.explanation": "此页面无法正确显示,这可能是因为我们的代码中有错误,也可能是因为浏览器兼容问题。",
"error.unexpected_crash.next_steps": "刷新一下页面试试。如果没用,您可以换个浏览器或者用本地应用。",
"errors.unexpected_crash.copy_stacktrace": "把堆栈跟踪信息复制到剪贴板",
"errors.unexpected_crash.report_issue": "报告问题",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "同意",
"follow_request.reject": "拒绝",
+ "follow_requests.unlocked_explanation": "虽说你没有锁嘟,但是 {domain} 的工作人员觉得你可能想手工审核关注请求。",
"getting_started.developers": "开发",
"getting_started.directory": "用户目录",
"getting_started.documentation": "文档",
diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json
index 02d0c5100..70271c9b8 100644
--- a/app/javascript/mastodon/locales/zh-HK.json
+++ b/app/javascript/mastodon/locales/zh-HK.json
@@ -1,7 +1,7 @@
{
"account.add_or_remove_from_list": "從名單中新增或移除",
"account.badges.bot": "機械人",
- "account.badges.group": "Group",
+ "account.badges.group": "群組",
"account.block": "封鎖 @{name}",
"account.block_domain": "隱藏來自 {domain} 的一切文章",
"account.blocked": "封鎖",
@@ -43,7 +43,7 @@
"alert.rate_limited.title": "已限速",
"alert.unexpected.message": "發生不可預期的錯誤。",
"alert.unexpected.title": "噢!",
- "announcement.announcement": "Announcement",
+ "announcement.announcement": "公告",
"autosuggest_hashtag.per_week": "{count} / 週",
"boost_modal.combo": "如你想在下次路過這顯示,請按{combo},",
"bundle_column_error.body": "加載本組件出錯。",
@@ -74,7 +74,9 @@
"column_header.show_settings": "顯示設定",
"column_header.unpin": "取下",
"column_subheading.settings": "設定",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "僅媒體",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "這文章只有被提及的用戶才可以看到。",
"compose_form.direct_message_warning_learn_more": "了解更多",
"compose_form.hashtag_warning": "這文章因為不是公開,所以不會被標籤搜索。只有公開的文章才會被標籤搜索。",
@@ -85,8 +87,8 @@
"compose_form.poll.duration": "投票期限",
"compose_form.poll.option_placeholder": "第 {number} 個選擇",
"compose_form.poll.remove_option": "移除此選擇",
- "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
- "compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
+ "compose_form.poll.switch_to_multiple": "變更投票為允許多個選項",
+ "compose_form.poll.switch_to_single": "變更投票為允許單一選項",
"compose_form.publish": "發文",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.hide": "標記媒體為敏感內容",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "批准",
"follow_request.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.",
"getting_started.developers": "開發者",
"getting_started.directory": "個人資料目錄",
"getting_started.documentation": "文件",
@@ -189,8 +192,8 @@
"home.column_settings.basic": "基本",
"home.column_settings.show_reblogs": "顯示被轉推的文章",
"home.column_settings.show_replies": "顯示回應文章",
- "home.hide_announcements": "Hide announcements",
- "home.show_announcements": "Show announcements",
+ "home.hide_announcements": "隱藏公告",
+ "home.show_announcements": "顯示公告",
"intervals.full.days": "{number, plural, one {# 天} other {# 天}}",
"intervals.full.hours": "{number, plural, one {# 小時} other {# 小時}}",
"intervals.full.minutes": "{number, plural, one {# 分鐘} other {# 分鐘}}",
@@ -340,7 +343,7 @@
"relative_time.just_now": "剛剛",
"relative_time.minutes": "{number}分鐘",
"relative_time.seconds": "{number}秒",
- "relative_time.today": "today",
+ "relative_time.today": "今天",
"reply_indicator.cancel": "取消",
"report.forward": "轉寄到 {target}",
"report.forward_hint": "這個帳戶屬於其他服務站。要向該服務站發送匿名的舉報訊息嗎?",
diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json
index 9d5fdd3fa..8c896803a 100644
--- a/app/javascript/mastodon/locales/zh-TW.json
+++ b/app/javascript/mastodon/locales/zh-TW.json
@@ -1,7 +1,7 @@
{
"account.add_or_remove_from_list": "從名單中新增或移除",
"account.badges.bot": "機器人",
- "account.badges.group": "Group",
+ "account.badges.group": "群組",
"account.block": "封鎖 @{name}",
"account.block_domain": "隱藏來自 {domain} 的所有內容",
"account.blocked": "已封鎖",
@@ -43,7 +43,7 @@
"alert.rate_limited.title": "已限速",
"alert.unexpected.message": "發生了非預期的錯誤。",
"alert.unexpected.title": "哎呀!",
- "announcement.announcement": "Announcement",
+ "announcement.announcement": "公告",
"autosuggest_hashtag.per_week": "{count} / 週",
"boost_modal.combo": "下次您可以按 {combo} 跳過",
"bundle_column_error.body": "載入此元件時發生錯誤。",
@@ -74,7 +74,9 @@
"column_header.show_settings": "顯示設定",
"column_header.unpin": "取消釘選",
"column_subheading.settings": "設定",
+ "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "只有媒體",
+ "community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "這條嘟文只有被提及的使用者才看得到。",
"compose_form.direct_message_warning_learn_more": "了解更多",
"compose_form.hashtag_warning": "由於這則嘟文被設定成「不公開」,所以它將不會被列在任何主題標籤下。只有公開的嘟文才能藉主題標籤找到。",
@@ -85,8 +87,8 @@
"compose_form.poll.duration": "投票期限",
"compose_form.poll.option_placeholder": "第 {number} 個選擇",
"compose_form.poll.remove_option": "移除此選擇",
- "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices",
- "compose_form.poll.switch_to_single": "Change poll to allow for a single choice",
+ "compose_form.poll.switch_to_multiple": "變更投票為允許多個選項",
+ "compose_form.poll.switch_to_single": "變更投票為允許單一選項",
"compose_form.publish": "嘟出去",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.hide": "標記媒體為敏感內容",
@@ -169,6 +171,7 @@
"federation.local_only.short": "Local-only",
"follow_request.authorize": "授權",
"follow_request.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.",
"getting_started.developers": "開發者",
"getting_started.directory": "個人資料目錄",
"getting_started.documentation": "文件",
@@ -189,8 +192,8 @@
"home.column_settings.basic": "基本",
"home.column_settings.show_reblogs": "顯示轉嘟",
"home.column_settings.show_replies": "顯示回覆",
- "home.hide_announcements": "Hide announcements",
- "home.show_announcements": "Show announcements",
+ "home.hide_announcements": "隱藏公告",
+ "home.show_announcements": "顯示公告",
"intervals.full.days": "{number, plural, one {# 天} other {# 天}}",
"intervals.full.hours": "{number, plural, one {# 小時} other {# 小時}}",
"intervals.full.minutes": "{number, plural, one {# 分鐘} other {# 分鐘}}",
@@ -340,7 +343,7 @@
"relative_time.just_now": "剛剛",
"relative_time.minutes": "{number} 分",
"relative_time.seconds": "{number} 秒",
- "relative_time.today": "today",
+ "relative_time.today": "今天",
"reply_indicator.cancel": "取消",
"report.forward": "轉寄到 {target}",
"report.forward_hint": "這個帳戶屬於其他站點。要像該站點發送匿名的檢舉訊息嗎?",
diff --git a/app/javascript/mastodon/middleware/errors.js b/app/javascript/mastodon/middleware/errors.js
index 3cebb42e0..0a65fd321 100644
--- a/app/javascript/mastodon/middleware/errors.js
+++ b/app/javascript/mastodon/middleware/errors.js
@@ -8,7 +8,7 @@ export default function errorsMiddleware() {
const isFail = new RegExp(`${defaultFailSuffix}$`, 'g');
if (action.type.match(isFail)) {
- dispatch(showAlertForError(action.error));
+ dispatch(showAlertForError(action.error, action.skipNotFound));
}
}
diff --git a/app/javascript/mastodon/reducers/compose.js b/app/javascript/mastodon/reducers/compose.js
index e7bb8dfdd..62d615a0f 100644
--- a/app/javascript/mastodon/reducers/compose.js
+++ b/app/javascript/mastodon/reducers/compose.js
@@ -265,7 +265,6 @@ export default function compose(state = initialState, action) {
});
case COMPOSE_SPOILERNESS_CHANGE:
return state.withMutations(map => {
- map.set('spoiler_text', '');
map.set('spoiler', !state.get('spoiler'));
map.set('idempotencyKey', uuid());
diff --git a/app/javascript/mastodon/reducers/notifications.js b/app/javascript/mastodon/reducers/notifications.js
index 60e901e39..ed1ba0272 100644
--- a/app/javascript/mastodon/reducers/notifications.js
+++ b/app/javascript/mastodon/reducers/notifications.js
@@ -72,11 +72,11 @@ const expandNormalizedNotifications = (state, notifications, next, isLoadingRece
mutable.update(usePendingItems ? 'pendingItems' : 'items', list => {
const lastIndex = 1 + list.findLastIndex(
- item => item !== null && (compareId(item.get('id'), items.last().get('id')) > 0 || item.get('id') === items.last().get('id'))
+ item => item !== null && (compareId(item.get('id'), items.last().get('id')) > 0 || item.get('id') === items.last().get('id')),
);
const firstIndex = 1 + list.take(lastIndex).findLastIndex(
- item => item !== null && compareId(item.get('id'), items.first().get('id')) > 0
+ item => item !== null && compareId(item.get('id'), items.first().get('id')) > 0,
);
return list.take(firstIndex).concat(items, list.skip(lastIndex));
diff --git a/app/javascript/mastodon/reducers/statuses.js b/app/javascript/mastodon/reducers/statuses.js
index 2554c008d..53dec9585 100644
--- a/app/javascript/mastodon/reducers/statuses.js
+++ b/app/javascript/mastodon/reducers/statuses.js
@@ -25,7 +25,7 @@ const importStatuses = (state, statuses) =>
const deleteStatus = (state, id, references) => {
references.forEach(ref => {
- state = deleteStatus(state, ref[0], []);
+ state = deleteStatus(state, ref, []);
});
return state.delete(id);
diff --git a/app/javascript/mastodon/reducers/timelines.js b/app/javascript/mastodon/reducers/timelines.js
index 0d7222e10..9156db021 100644
--- a/app/javascript/mastodon/reducers/timelines.js
+++ b/app/javascript/mastodon/reducers/timelines.js
@@ -54,7 +54,7 @@ const expandNormalizedTimeline = (state, timeline, statuses, next, isPartial, is
return oldIds.take(firstIndex + 1).concat(
isPartial && oldIds.get(firstIndex) !== null ? newIds.unshift(null) : newIds,
- oldIds.skip(lastIndex)
+ oldIds.skip(lastIndex),
);
});
}
@@ -89,7 +89,7 @@ const updateTimeline = (state, timeline, status, usePendingItems) => {
}));
};
-const deleteStatus = (state, id, accountId, references, exclude_account = null) => {
+const deleteStatus = (state, id, references, exclude_account = null) => {
state.keySeq().forEach(timeline => {
if (exclude_account === null || (timeline !== `account:${exclude_account}` && !timeline.startsWith(`account:${exclude_account}:`))) {
const helper = list => list.filterNot(item => item === id);
@@ -99,7 +99,7 @@ const deleteStatus = (state, id, accountId, references, exclude_account = null)
// Remove reblogs of deleted status
references.forEach(ref => {
- state = deleteStatus(state, ref[0], ref[1], [], exclude_account);
+ state = deleteStatus(state, ref, [], exclude_account);
});
return state;
@@ -117,8 +117,8 @@ const filterTimelines = (state, relationship, statuses) => {
return;
}
- references = statuses.filter(item => item.get('reblog') === status.get('id')).map(item => [item.get('id'), item.get('account')]);
- state = deleteStatus(state, status.get('id'), status.get('account'), references, relationship.id);
+ references = statuses.filter(item => item.get('reblog') === status.get('id')).map(item => item.get('id'));
+ state = deleteStatus(state, status.get('id'), references, relationship.id);
});
return state;
@@ -150,7 +150,7 @@ export default function timelines(state = initialState, action) {
case TIMELINE_UPDATE:
return updateTimeline(state, action.timeline, fromJS(action.status), action.usePendingItems);
case TIMELINE_DELETE:
- return deleteStatus(state, action.id, action.accountId, action.references, action.reblogOf);
+ return deleteStatus(state, action.id, action.references, action.reblogOf);
case TIMELINE_CLEAR:
return clearTimeline(state, action.timeline);
case ACCOUNT_BLOCK_SUCCESS:
@@ -166,7 +166,7 @@ export default function timelines(state = initialState, action) {
return state.update(
action.timeline,
initialTimeline,
- map => map.set('online', false).update(action.usePendingItems ? 'pendingItems' : 'items', items => items.first() ? items.unshift(null) : items)
+ map => map.set('online', false).update(action.usePendingItems ? 'pendingItems' : 'items', items => items.first() ? items.unshift(null) : items),
);
default:
return state;
diff --git a/app/javascript/mastodon/reducers/user_lists.js b/app/javascript/mastodon/reducers/user_lists.js
index a7853452f..e7eef2364 100644
--- a/app/javascript/mastodon/reducers/user_lists.js
+++ b/app/javascript/mastodon/reducers/user_lists.js
@@ -2,12 +2,24 @@ import {
NOTIFICATIONS_UPDATE,
} from '../actions/notifications';
import {
+ FOLLOWERS_FETCH_REQUEST,
FOLLOWERS_FETCH_SUCCESS,
+ FOLLOWERS_FETCH_FAIL,
+ FOLLOWERS_EXPAND_REQUEST,
FOLLOWERS_EXPAND_SUCCESS,
+ FOLLOWERS_EXPAND_FAIL,
+ FOLLOWING_FETCH_REQUEST,
FOLLOWING_FETCH_SUCCESS,
+ FOLLOWING_FETCH_FAIL,
+ FOLLOWING_EXPAND_REQUEST,
FOLLOWING_EXPAND_SUCCESS,
+ FOLLOWING_EXPAND_FAIL,
+ FOLLOW_REQUESTS_FETCH_REQUEST,
FOLLOW_REQUESTS_FETCH_SUCCESS,
+ FOLLOW_REQUESTS_FETCH_FAIL,
+ FOLLOW_REQUESTS_EXPAND_REQUEST,
FOLLOW_REQUESTS_EXPAND_SUCCESS,
+ FOLLOW_REQUESTS_EXPAND_FAIL,
FOLLOW_REQUEST_AUTHORIZE_SUCCESS,
FOLLOW_REQUEST_REJECT_SUCCESS,
} from '../actions/accounts';
@@ -16,12 +28,20 @@ import {
FAVOURITES_FETCH_SUCCESS,
} from '../actions/interactions';
import {
+ BLOCKS_FETCH_REQUEST,
BLOCKS_FETCH_SUCCESS,
+ BLOCKS_FETCH_FAIL,
+ BLOCKS_EXPAND_REQUEST,
BLOCKS_EXPAND_SUCCESS,
+ BLOCKS_EXPAND_FAIL,
} from '../actions/blocks';
import {
+ MUTES_FETCH_REQUEST,
MUTES_FETCH_SUCCESS,
+ MUTES_FETCH_FAIL,
+ MUTES_EXPAND_REQUEST,
MUTES_EXPAND_SUCCESS,
+ MUTES_EXPAND_FAIL,
} from '../actions/mutes';
import {
DIRECTORY_FETCH_REQUEST,
@@ -47,12 +67,13 @@ const normalizeList = (state, type, id, accounts, next) => {
return state.setIn([type, id], ImmutableMap({
next,
items: ImmutableList(accounts.map(item => item.id)),
+ isLoading: false,
}));
};
const appendToList = (state, type, id, accounts, next) => {
return state.updateIn([type, id], map => {
- return map.set('next', next).update('items', list => list.concat(accounts.map(item => item.id)));
+ return map.set('next', next).set('isLoading', false).update('items', list => list.concat(accounts.map(item => item.id)));
});
};
@@ -68,10 +89,22 @@ export default function userLists(state = initialState, action) {
return normalizeList(state, 'followers', action.id, action.accounts, action.next);
case FOLLOWERS_EXPAND_SUCCESS:
return appendToList(state, 'followers', action.id, action.accounts, action.next);
+ case FOLLOWERS_FETCH_REQUEST:
+ case FOLLOWERS_EXPAND_REQUEST:
+ return state.setIn(['followers', action.id, 'isLoading'], true);
+ case FOLLOWERS_FETCH_FAIL:
+ case FOLLOWERS_EXPAND_FAIL:
+ return state.setIn(['followers', action.id, 'isLoading'], false);
case FOLLOWING_FETCH_SUCCESS:
return normalizeList(state, 'following', action.id, action.accounts, action.next);
case FOLLOWING_EXPAND_SUCCESS:
return appendToList(state, 'following', action.id, action.accounts, action.next);
+ case FOLLOWING_FETCH_REQUEST:
+ case FOLLOWING_EXPAND_REQUEST:
+ return state.setIn(['following', action.id, 'isLoading'], true);
+ case FOLLOWING_FETCH_FAIL:
+ case FOLLOWING_EXPAND_FAIL:
+ return state.setIn(['following', action.id, 'isLoading'], false);
case REBLOGS_FETCH_SUCCESS:
return state.setIn(['reblogged_by', action.id], ImmutableList(action.accounts.map(item => item.id)));
case FAVOURITES_FETCH_SUCCESS:
@@ -79,9 +112,15 @@ export default function userLists(state = initialState, action) {
case NOTIFICATIONS_UPDATE:
return action.notification.type === 'follow_request' ? normalizeFollowRequest(state, action.notification) : state;
case FOLLOW_REQUESTS_FETCH_SUCCESS:
- return state.setIn(['follow_requests', 'items'], ImmutableList(action.accounts.map(item => item.id))).setIn(['follow_requests', 'next'], action.next);
+ return state.setIn(['follow_requests', 'items'], ImmutableList(action.accounts.map(item => item.id))).setIn(['follow_requests', 'next'], action.next).setIn(['follow_requests', 'isLoading'], false);
case FOLLOW_REQUESTS_EXPAND_SUCCESS:
- return state.updateIn(['follow_requests', 'items'], list => list.concat(action.accounts.map(item => item.id))).setIn(['follow_requests', 'next'], action.next);
+ return state.updateIn(['follow_requests', 'items'], list => list.concat(action.accounts.map(item => item.id))).setIn(['follow_requests', 'next'], action.next).setIn(['follow_requests', 'isLoading'], false);
+ case FOLLOW_REQUESTS_FETCH_REQUEST:
+ case FOLLOW_REQUESTS_EXPAND_REQUEST:
+ return state.setIn(['follow_requests', 'isLoading'], true);
+ case FOLLOW_REQUESTS_FETCH_FAIL:
+ case FOLLOW_REQUESTS_EXPAND_FAIL:
+ return state.setIn(['follow_requests', 'isLoading'], false);
case FOLLOW_REQUEST_AUTHORIZE_SUCCESS:
case FOLLOW_REQUEST_REJECT_SUCCESS:
return state.updateIn(['follow_requests', 'items'], list => list.filterNot(item => item === action.id));
@@ -89,10 +128,22 @@ export default function userLists(state = initialState, action) {
return state.setIn(['blocks', 'items'], ImmutableList(action.accounts.map(item => item.id))).setIn(['blocks', 'next'], action.next);
case BLOCKS_EXPAND_SUCCESS:
return state.updateIn(['blocks', 'items'], list => list.concat(action.accounts.map(item => item.id))).setIn(['blocks', 'next'], action.next);
+ case BLOCKS_FETCH_REQUEST:
+ case BLOCKS_EXPAND_REQUEST:
+ return state.setIn(['blocks', 'isLoading'], true);
+ case BLOCKS_FETCH_FAIL:
+ case BLOCKS_EXPAND_FAIL:
+ return state.setIn(['blocks', 'isLoading'], false);
case MUTES_FETCH_SUCCESS:
return state.setIn(['mutes', 'items'], ImmutableList(action.accounts.map(item => item.id))).setIn(['mutes', 'next'], action.next);
case MUTES_EXPAND_SUCCESS:
return state.updateIn(['mutes', 'items'], list => list.concat(action.accounts.map(item => item.id))).setIn(['mutes', 'next'], action.next);
+ case MUTES_FETCH_REQUEST:
+ case MUTES_EXPAND_REQUEST:
+ return state.setIn(['mutes', 'isLoading'], true);
+ case MUTES_FETCH_FAIL:
+ case MUTES_EXPAND_FAIL:
+ return state.setIn(['mutes', 'isLoading'], false);
case DIRECTORY_FETCH_SUCCESS:
return state.setIn(['directory', 'items'], ImmutableList(action.accounts.map(item => item.id))).setIn(['directory', 'isLoading'], false);
case DIRECTORY_EXPAND_SUCCESS:
diff --git a/app/javascript/mastodon/selectors/index.js b/app/javascript/mastodon/selectors/index.js
index 6a48f3b3f..673268c5a 100644
--- a/app/javascript/mastodon/selectors/index.js
+++ b/app/javascript/mastodon/selectors/index.js
@@ -117,7 +117,7 @@ export const makeGetStatus = () => {
map.set('account', accountBase);
map.set('filtered', filtered);
});
- }
+ },
);
};
diff --git a/app/javascript/mastodon/service_worker/web_push_notifications.js b/app/javascript/mastodon/service_worker/web_push_notifications.js
index 1ab0dc0fa..958e5fc12 100644
--- a/app/javascript/mastodon/service_worker/web_push_notifications.js
+++ b/app/javascript/mastodon/service_worker/web_push_notifications.js
@@ -117,7 +117,7 @@ const handlePush = (event) => {
badge: '/badge.png',
data: { access_token, preferred_locale, url: '/web/notifications' },
});
- })
+ }),
);
};
diff --git a/app/javascript/mastodon/store/configureStore.js b/app/javascript/mastodon/store/configureStore.js
index 7e7472841..e18af842f 100644
--- a/app/javascript/mastodon/store/configureStore.js
+++ b/app/javascript/mastodon/store/configureStore.js
@@ -10,6 +10,6 @@ export default function configureStore() {
thunk,
loadingBarMiddleware({ promiseTypeSuffixes: ['REQUEST', 'SUCCESS', 'FAIL'] }),
errorsMiddleware(),
- soundsMiddleware()
+ soundsMiddleware(),
), window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__() : f => f));
};
diff --git a/app/javascript/mastodon/utils/log_out.js b/app/javascript/mastodon/utils/log_out.js
index b43417f4b..3a4cc8ecb 100644
--- a/app/javascript/mastodon/utils/log_out.js
+++ b/app/javascript/mastodon/utils/log_out.js
@@ -1,4 +1,4 @@
-import Rails from 'rails-ujs';
+import Rails from '@rails/ujs';
export const logOut = () => {
const form = document.createElement('form');
diff --git a/app/javascript/mastodon/utils/resize_image.js b/app/javascript/mastodon/utils/resize_image.js
index 7196dc96b..6c1cb61a2 100644
--- a/app/javascript/mastodon/utils/resize_image.js
+++ b/app/javascript/mastodon/utils/resize_image.js
@@ -2,6 +2,45 @@ import EXIF from 'exif-js';
const MAX_IMAGE_PIXELS = 1638400; // 1280x1280px
+const _browser_quirks = {};
+
+// Some browsers will automatically draw images respecting their EXIF orientation
+// while others won't, and the safest way to detect that is to examine how it
+// is done on a known image.
+// See https://github.com/w3c/csswg-drafts/issues/4666
+// and https://github.com/blueimp/JavaScript-Load-Image/commit/1e4df707821a0afcc11ea0720ee403b8759f3881
+const dropOrientationIfNeeded = (orientation) => new Promise(resolve => {
+ switch (_browser_quirks['image-orientation-automatic']) {
+ case true:
+ resolve(1);
+ break;
+ case false:
+ resolve(orientation);
+ break;
+ default:
+ // black 2x1 JPEG, with the following meta information set:
+ // - EXIF Orientation: 6 (Rotated 90° CCW)
+ const testImageURL =
+ 'data:image/jpeg;base64,/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAA' +
+ 'AAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA' +
+ 'QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE' +
+ 'BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAAEAAgMBEQACEQEDEQH/x' +
+ 'ABKAAEAAAAAAAAAAAAAAAAAAAALEAEAAAAAAAAAAAAAAAAAAAAAAQEAAAAAAAAAAAAAAAA' +
+ 'AAAAAEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwA/8H//2Q==';
+ const img = new Image();
+ img.onload = () => {
+ const automatic = (img.width === 1 && img.height === 2);
+ _browser_quirks['image-orientation-automatic'] = automatic;
+ resolve(automatic ? 1 : orientation);
+ };
+ img.onerror = () => {
+ _browser_quirks['image-orientation-automatic'] = false;
+ resolve(orientation);
+ };
+ img.src = testImageURL;
+ }
+});
+
const getImageUrl = inputFile => new Promise((resolve, reject) => {
if (window.URL && URL.createObjectURL) {
try {
@@ -38,7 +77,11 @@ const getOrientation = (img, type = 'image/png') => new Promise(resolve => {
EXIF.getData(img, () => {
const orientation = EXIF.getTag(img, 'Orientation');
- resolve(orientation);
+ if (orientation !== 1) {
+ dropOrientationIfNeeded(orientation).then(resolve).catch(() => resolve(orientation));
+ } else {
+ resolve(orientation);
+ }
});
});
@@ -95,7 +138,7 @@ const resizeImage = (img, type = 'image/png') => new Promise((resolve, reject) =
.catch(reject);
});
-export default inputFile => new Promise((resolve, reject) => {
+export default inputFile => new Promise((resolve) => {
if (!inputFile.type.match(/image.*/) || inputFile.type === 'image/gif') {
resolve(inputFile);
return;
@@ -110,5 +153,5 @@ export default inputFile => new Promise((resolve, reject) => {
resizeImage(img, inputFile.type)
.then(resolve)
.catch(() => resolve(inputFile));
- }).catch(reject);
+ }).catch(() => resolve(inputFile));
});
diff --git a/app/javascript/packs/admin.js b/app/javascript/packs/admin.js
index b318cadc6..51f92de8a 100644
--- a/app/javascript/packs/admin.js
+++ b/app/javascript/packs/admin.js
@@ -1,4 +1,4 @@
-import { delegate } from 'rails-ujs';
+import { delegate } from '@rails/ujs';
import ready from '../mastodon/ready';
const batchCheckboxClassName = '.batch-checkbox input[type="checkbox"]';
@@ -30,6 +30,10 @@ delegate(document, '.media-spoiler-hide-button', 'click', () => {
});
});
+delegate(document, '.filter-subset--with-select select', 'change', ({ target }) => {
+ target.form.submit();
+});
+
const onDomainBlockSeverityChange = (target) => {
const rejectMediaDiv = document.querySelector('.input.with_label.domain_block_reject_media');
const rejectReportsDiv = document.querySelector('.input.with_label.domain_block_reject_reports');
diff --git a/app/javascript/packs/public.js b/app/javascript/packs/public.js
index 2fb9cb29d..557823c96 100644
--- a/app/javascript/packs/public.js
+++ b/app/javascript/packs/public.js
@@ -25,7 +25,7 @@ window.addEventListener('message', e => {
function main() {
const IntlMessageFormat = require('intl-messageformat').default;
const { timeAgoString } = require('../mastodon/components/relative_timestamp');
- const { delegate } = require('rails-ujs');
+ const { delegate } = require('@rails/ujs');
const emojify = require('../mastodon/features/emoji/emoji').default;
const { getLocale } = require('../mastodon/locales');
const { messages } = getLocale();
@@ -118,6 +118,26 @@ function main() {
delegate(document, '.custom-emoji', 'mouseover', getEmojiAnimationHandler('data-original'));
delegate(document, '.custom-emoji', 'mouseout', getEmojiAnimationHandler('data-static'));
+
+ delegate(document, '.status__content__spoiler-link', 'click', function() {
+ const statusEl = this.parentNode.parentNode;
+
+ if (statusEl.dataset.spoiler === 'expanded') {
+ statusEl.dataset.spoiler = 'folded';
+ this.textContent = (new IntlMessageFormat(messages['status.show_more'] || 'Show more', locale)).format();
+ } else {
+ statusEl.dataset.spoiler = 'expanded';
+ this.textContent = (new IntlMessageFormat(messages['status.show_less'] || 'Show less', locale)).format();
+ }
+
+ return false;
+ });
+
+ [].forEach.call(document.querySelectorAll('.status__content__spoiler-link'), (spoilerLink) => {
+ const statusEl = spoilerLink.parentNode.parentNode;
+ const message = (statusEl.dataset.spoiler === 'expanded') ? (messages['status.show_less'] || 'Show less') : (messages['status.show_more'] || 'Show more');
+ spoilerLink.textContent = (new IntlMessageFormat(message, locale)).format();
+ });
});
delegate(document, '.webapp-btn', 'click', ({ target, button }) => {
@@ -128,20 +148,6 @@ function main() {
return false;
});
- delegate(document, '.status__content__spoiler-link', 'click', function() {
- const contentEl = this.parentNode.parentNode.querySelector('.e-content');
-
- if (contentEl.style.display === 'block') {
- contentEl.style.display = 'none';
- this.parentNode.style.marginBottom = 0;
- } else {
- contentEl.style.display = 'block';
- this.parentNode.style.marginBottom = null;
- }
-
- return false;
- });
-
delegate(document, '.modal-button', 'click', e => {
e.preventDefault();
@@ -162,7 +168,7 @@ function main() {
if (target.value) {
name.innerHTML = emojify(escapeTextContentForBrowser(target.value));
} else {
- name.textContent = document.querySelector('#default_account_display_name').textContent;
+ name.textContent = target.dataset.default;
}
}
});
diff --git a/app/javascript/styles/mastodon-light/diff.scss b/app/javascript/styles/mastodon-light/diff.scss
index e166df668..03c07acec 100644
--- a/app/javascript/styles/mastodon-light/diff.scss
+++ b/app/javascript/styles/mastodon-light/diff.scss
@@ -142,7 +142,7 @@ html {
}
.compose-form__autosuggest-wrapper,
-.poll__text input[type="text"],
+.poll__option input[type="text"],
.compose-form .spoiler-input__input,
.compose-form__poll-wrapper select,
.search__input,
diff --git a/app/javascript/styles/mastodon/about.scss b/app/javascript/styles/mastodon/about.scss
index a0f5e9de1..47183fe05 100644
--- a/app/javascript/styles/mastodon/about.scss
+++ b/app/javascript/styles/mastodon/about.scss
@@ -543,12 +543,6 @@ $small-breakpoint: 960px;
flex: 0 0 auto;
}
- &__avatar {
- width: 44px;
- height: 44px;
- background-size: 44px 44px;
- }
-
.display-name {
font-size: 15px;
@@ -751,16 +745,15 @@ $small-breakpoint: 960px;
display: flex;
align-items: center;
}
+ }
- .account__avatar {
- width: 44px;
- height: 44px;
- background-size: 44px 44px;
- }
+ &__counters__wrapper {
+ display: flex;
}
&__counter {
padding: 10px;
+ width: 50%;
strong {
font-family: $font-display, sans-serif;
diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss
index 1d46c47c9..c82066be2 100644
--- a/app/javascript/styles/mastodon/admin.scss
+++ b/app/javascript/styles/mastodon/admin.scss
@@ -441,6 +441,11 @@ body,
}
}
+ &--with-select strong {
+ display: block;
+ margin-bottom: 10px;
+ }
+
a {
display: inline-block;
color: $darker-text-color;
@@ -569,24 +574,39 @@ body,
}
}
+.special-action-button,
+.back-link {
+ text-align: right;
+ flex: 1 1 auto;
+}
+
+.action-buttons {
+ display: flex;
+ overflow: hidden;
+ justify-content: space-between;
+}
+
.spacer {
flex: 1 1 auto;
}
.log-entry {
- margin-bottom: 20px;
line-height: 20px;
+ padding: 15px 0;
+ background: $ui-base-color;
+ border-bottom: 1px solid lighten($ui-base-color, 4%);
+
+ &:last-child {
+ border-bottom: 0;
+ }
&__header {
display: flex;
justify-content: flex-start;
align-items: center;
- padding: 10px;
- background: $ui-base-color;
color: $darker-text-color;
- border-radius: 4px 4px 0 0;
font-size: 14px;
- position: relative;
+ padding: 0 10px;
}
&__avatar {
@@ -613,44 +633,6 @@ body,
color: $dark-text-color;
}
- &__extras {
- background: lighten($ui-base-color, 6%);
- border-radius: 0 0 4px 4px;
- padding: 10px;
- color: $darker-text-color;
- font-family: $font-monospace, monospace;
- font-size: 12px;
- word-wrap: break-word;
- min-height: 20px;
- }
-
- &__icon {
- font-size: 28px;
- margin-right: 10px;
- color: $dark-text-color;
- }
-
- &__icon__overlay {
- position: absolute;
- top: 10px;
- right: 10px;
- width: 10px;
- height: 10px;
- border-radius: 50%;
-
- &.positive {
- background: $success-green;
- }
-
- &.negative {
- background: lighten($error-red, 12%);
- }
-
- &.neutral {
- background: $ui-highlight-color;
- }
- }
-
a,
.username,
.target {
@@ -658,18 +640,6 @@ body,
text-decoration: none;
font-weight: 500;
}
-
- .diff-old {
- color: lighten($error-red, 12%);
- }
-
- .diff-neutral {
- color: $secondary-text-color;
- }
-
- .diff-new {
- color: $success-green;
- }
}
a.name-tag,
@@ -953,3 +923,11 @@ a.name-tag,
}
}
}
+
+.account-badges {
+ margin: -2px 0;
+}
+
+.dashboard__counters.admin-account-counters {
+ margin-top: 10px;
+}
diff --git a/app/javascript/styles/mastodon/basics.scss b/app/javascript/styles/mastodon/basics.scss
index 37243a8d4..ec77f1bae 100644
--- a/app/javascript/styles/mastodon/basics.scss
+++ b/app/javascript/styles/mastodon/basics.scss
@@ -235,3 +235,19 @@ button {
}
}
}
+
+.logo-resources {
+ display: none;
+}
+
+// NoScript adds a __ns__pop2top class to the full ancestry of blocked elements,
+// to set the z-index to a high value, which messes with modals and dropdowns.
+// Blocked elements can in theory only be media and frames/embeds, so they
+// should only appear in statuses, under divs and articles.
+body,
+div,
+article {
+ .__ns__pop2top {
+ z-index: unset !important;
+ }
+}
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index 0bd0ff8af..d29dc1e5a 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -382,8 +382,8 @@
.emoji-picker-dropdown {
position: absolute;
- top: 5px;
- right: 5px;
+ top: 0;
+ right: 0;
}
.compose-form__autosuggest-wrapper {
@@ -931,6 +931,7 @@
.announcements__item__content {
word-wrap: break-word;
+ overflow-y: auto;
.emojione {
width: 20px;
@@ -1088,13 +1089,11 @@
}
.display-name {
+ color: $light-text-color;
+
strong {
color: $inverted-text-color;
}
-
- span {
- color: $light-text-color;
- }
}
.status__content {
@@ -1381,8 +1380,13 @@
.account__avatar {
@include avatar-radius;
+ display: block;
position: relative;
+ width: 36px;
+ height: 36px;
+ background-size: 36px 36px;
+
&-inline {
display: inline-block;
vertical-align: middle;
@@ -1394,7 +1398,6 @@
border-radius: 50%;
overflow: hidden;
position: relative;
- cursor: default;
& > div {
float: left;
@@ -1426,6 +1429,12 @@ a .account__avatar {
&-base {
@include avatar-radius;
@include avatar-size(36px);
+
+ img {
+ @include avatar-radius;
+ width: 100%;
+ height: 100%;
+ }
}
&-overlay {
@@ -1436,6 +1445,12 @@ a .account__avatar {
bottom: 0;
right: 0;
z-index: 1;
+
+ img {
+ @include avatar-radius;
+ width: 100%;
+ height: 100%;
+ }
}
}
@@ -3891,7 +3906,8 @@ a.status-card.compact:hover {
}
.empty-column-indicator,
-.error-column {
+.error-column,
+.follow_requests-unlocked_explanation {
color: $dark-text-color;
background: $ui-base-color;
text-align: center;
@@ -3922,6 +3938,11 @@ a.status-card.compact:hover {
}
}
+.follow_requests-unlocked_explanation {
+ background: darken($ui-base-color, 4%);
+ contain: initial;
+}
+
.error-column {
flex-direction: column;
}
@@ -4149,10 +4170,7 @@ a.status-card.compact:hover {
.emoji-button {
display: block;
- font-size: 24px;
- line-height: 24px;
- margin-left: 2px;
- width: 24px;
+ padding: 5px 5px 2px 2px;
outline: 0;
cursor: pointer;
@@ -4168,7 +4186,6 @@ a.status-card.compact:hover {
margin: 0;
width: 22px;
height: 22px;
- margin-top: 2px;
}
&:hover,
@@ -5147,12 +5164,6 @@ a.status-card.compact:hover {
}
.media-gallery__gifv {
- &.autoplay {
- .media-gallery__gifv__label {
- display: none;
- }
- }
-
&:hover {
.media-gallery__gifv__label {
opacity: 1;
@@ -5670,6 +5681,13 @@ a.status-card.compact:hover {
}
}
+.gifv {
+ video {
+ max-width: 100vw;
+ max-height: 80vh;
+ }
+}
+
.directory {
&__list {
width: 100%;
@@ -6647,6 +6665,7 @@ noscript {
path:last-child {
stroke: lighten($highlight-text-color, 6%) !important;
+ fill: none !important;
}
}
}
@@ -6668,6 +6687,7 @@ noscript {
padding: 10px;
padding-top: 12px;
position: relative;
+ cursor: pointer;
}
&__unread {
@@ -6771,17 +6791,21 @@ noscript {
box-sizing: border-box;
width: 100%;
padding: 15px;
- padding-right: 15px + 18px;
position: relative;
font-size: 15px;
line-height: 20px;
word-wrap: break-word;
font-weight: 400;
+ max-height: 50vh;
+ overflow: hidden;
+ display: flex;
+ flex-direction: column;
&__range {
display: block;
font-weight: 500;
margin-bottom: 10px;
+ padding-right: 18px;
}
&__unread {
diff --git a/app/javascript/styles/mastodon/forms.scss b/app/javascript/styles/mastodon/forms.scss
index c9ad68f94..0e5b00e8f 100644
--- a/app/javascript/styles/mastodon/forms.scss
+++ b/app/javascript/styles/mastodon/forms.scss
@@ -142,6 +142,10 @@ code {
}
}
+ .otp-hint {
+ margin-bottom: 25px;
+ }
+
.card {
margin-bottom: 15px;
}
@@ -285,6 +289,14 @@ code {
margin-bottom: 25px;
}
}
+
+ .fields-group.invited-by {
+ margin-bottom: 30px;
+
+ .hint {
+ text-align: center;
+ }
+ }
}
.input.radio_buttons .radio label {
@@ -635,6 +647,15 @@ code {
@media screen and (max-width: 740px) and (min-width: 441px) {
margin-top: 40px;
}
+
+ &.translation-prompt {
+ text-align: unset;
+ color: unset;
+
+ a {
+ text-decoration: underline;
+ }
+ }
}
.form-footer {
diff --git a/app/javascript/styles/mastodon/polls.scss b/app/javascript/styles/mastodon/polls.scss
index d7d850a1e..ad7088982 100644
--- a/app/javascript/styles/mastodon/polls.scss
+++ b/app/javascript/styles/mastodon/polls.scss
@@ -8,20 +8,48 @@
}
&__chart {
- position: absolute;
- top: 0;
- left: 0;
- height: 100%;
- display: inline-block;
border-radius: 4px;
- background: darken($ui-primary-color, 14%);
+ display: block;
+ background: darken($ui-primary-color, 5%);
+ height: 5px;
+ min-width: 1%;
&.leading {
background: $ui-highlight-color;
}
}
- &__text {
+ progress {
+ border: 0;
+ display: block;
+ width: 100%;
+ height: 5px;
+ appearance: none;
+ background: transparent;
+
+ &::-webkit-progress-bar {
+ background: transparent;
+ }
+
+ // Those rules need to be entirely separate or they won't work, hence the
+ // duplication
+ &::-moz-progress-bar {
+ border-radius: 4px;
+ background: darken($ui-primary-color, 5%);
+ }
+
+ &::-ms-fill {
+ border-radius: 4px;
+ background: darken($ui-primary-color, 5%);
+ }
+
+ &::-webkit-progress-value {
+ border-radius: 4px;
+ background: darken($ui-primary-color, 5%);
+ }
+ }
+
+ &__option {
position: relative;
display: flex;
padding: 6px 0;
@@ -29,6 +57,13 @@
cursor: default;
overflow: hidden;
+ &__text {
+ display: inline-block;
+ word-wrap: break-word;
+ overflow-wrap: break-word;
+ max-width: calc(100% - 45px - 25px);
+ }
+
input[type=radio],
input[type=checkbox] {
display: none;
@@ -95,8 +130,8 @@
&:active,
&:focus,
&:hover {
+ border-color: lighten($valid-value-color, 15%);
border-width: 4px;
- background: none;
}
&::-moz-focus-inner {
@@ -112,19 +147,18 @@
&__number {
display: inline-block;
- width: 52px;
+ width: 45px;
font-weight: 700;
- padding: 0 10px;
- padding-left: 8px;
- text-align: right;
- margin-top: auto;
- margin-bottom: auto;
- flex: 0 0 52px;
+ flex: 0 0 45px;
}
- &__vote__mark {
- float: left;
- line-height: 18px;
+ &__voted {
+ padding: 0 5px;
+ display: inline-block;
+
+ &__mark {
+ font-size: 18px;
+ }
}
&__footer {
@@ -199,7 +233,7 @@
display: flex;
align-items: center;
- .poll__text {
+ .poll__option {
flex: 0 0 auto;
width: calc(100% - (23px + 6px));
margin-right: 6px;
diff --git a/app/javascript/styles/mastodon/statuses.scss b/app/javascript/styles/mastodon/statuses.scss
index 19ce0ab8f..a8fd2936c 100644
--- a/app/javascript/styles/mastodon/statuses.scss
+++ b/app/javascript/styles/mastodon/statuses.scss
@@ -128,6 +128,16 @@
.embed,
.public-layout {
+ .status__content[data-spoiler=folded] {
+ .e-content {
+ display: none;
+ }
+
+ p:first-child {
+ margin-bottom: 0;
+ }
+ }
+
.detailed-status {
padding: 15px;
}
@@ -139,6 +149,11 @@
&__avatar {
left: 15px;
top: 17px;
+
+ .account__avatar {
+ width: 48px;
+ height: 48px;
+ }
}
&__content {
@@ -159,5 +174,12 @@
.video-player {
margin-top: 10px;
}
+
+ &__action-bar-button {
+ font-size: 18px;
+ width: 23.1429px;
+ height: 23.1429px;
+ line-height: 23.15px;
+ }
}
}
diff --git a/app/javascript/styles/mastodon/widgets.scss b/app/javascript/styles/mastodon/widgets.scss
index ca050a8d9..5b97d1ec4 100644
--- a/app/javascript/styles/mastodon/widgets.scss
+++ b/app/javascript/styles/mastodon/widgets.scss
@@ -93,12 +93,6 @@
display: flex;
align-items: center;
}
-
- .account__avatar {
- width: 44px;
- height: 44px;
- background-size: 44px 44px;
- }
}
.trends__item {
diff --git a/app/lib/activitypub/tag_manager.rb b/app/lib/activitypub/tag_manager.rb
index ed680d762..1523f86d4 100644
--- a/app/lib/activitypub/tag_manager.rb
+++ b/app/lib/activitypub/tag_manager.rb
@@ -15,6 +15,8 @@ class ActivityPub::TagManager
def url_for(target)
return target.url if target.respond_to?(:local?) && !target.local?
+ return unless target.respond_to?(:object_type)
+
case target.object_type
when :person
target.instance_actor? ? about_more_url(instance_actor: true) : short_account_url(target)
diff --git a/app/lib/delivery_failure_tracker.rb b/app/lib/delivery_failure_tracker.rb
index 8d3be35de..25fa694d2 100644
--- a/app/lib/delivery_failure_tracker.rb
+++ b/app/lib/delivery_failure_tracker.rb
@@ -3,47 +3,53 @@
class DeliveryFailureTracker
FAILURE_DAYS_THRESHOLD = 7
- def initialize(inbox_url)
- @inbox_url = inbox_url
+ def initialize(url_or_host)
+ @host = url_or_host.start_with?('https://') || url_or_host.start_with?('http://') ? Addressable::URI.parse(url_or_host).normalized_host : url_or_host
end
def track_failure!
Redis.current.sadd(exhausted_deliveries_key, today)
- Redis.current.sadd('unavailable_inboxes', @inbox_url) if reached_failure_threshold?
+ UnavailableDomain.create(domain: @host) if reached_failure_threshold?
end
def track_success!
Redis.current.del(exhausted_deliveries_key)
- Redis.current.srem('unavailable_inboxes', @inbox_url)
+ UnavailableDomain.find_by(domain: @host)&.destroy
end
def days
Redis.current.scard(exhausted_deliveries_key) || 0
end
- class << self
- def filter(arr)
- arr.reject(&method(:unavailable?))
- end
+ def available?
+ !UnavailableDomain.where(domain: @host).exists?
+ end
- def unavailable?(url)
- Redis.current.sismember('unavailable_inboxes', url)
+ alias reset! track_success!
+
+ class << self
+ def without_unavailable(urls)
+ unavailable_domains_map = Rails.cache.fetch('unavailable_domains') { UnavailableDomain.pluck(:domain).each_with_object({}) { |domain, hash| hash[domain] = true } }
+
+ urls.reject do |url|
+ host = Addressable::URI.parse(url).normalized_host
+ unavailable_domains_map[host]
+ end
end
def available?(url)
- !unavailable?(url)
+ new(url).available?
end
- def track_inverse_success!(from_account)
- new(from_account.inbox_url).track_success! if from_account.inbox_url.present?
- new(from_account.shared_inbox_url).track_success! if from_account.shared_inbox_url.present?
+ def reset!(url)
+ new(url).reset!
end
end
private
def exhausted_deliveries_key
- "exhausted_deliveries:#{@inbox_url}"
+ "exhausted_deliveries:#{@host}"
end
def today
diff --git a/app/lib/entity_cache.rb b/app/lib/entity_cache.rb
index 35a3773d2..afdbd70f2 100644
--- a/app/lib/entity_cache.rb
+++ b/app/lib/entity_cache.rb
@@ -7,6 +7,10 @@ class EntityCache
MAX_EXPIRATION = 7.days.freeze
+ def status(url)
+ Rails.cache.fetch(to_key(:status, url), expires_in: MAX_EXPIRATION) { FetchRemoteStatusService.new.call(url) }
+ end
+
def mention(username, domain)
Rails.cache.fetch(to_key(:mention, username, domain), expires_in: MAX_EXPIRATION) { Account.select(:id, :username, :domain, :url).find_remote(username, domain) }
end
diff --git a/app/lib/exceptions.rb b/app/lib/exceptions.rb
index 01346bfe5..3362576b0 100644
--- a/app/lib/exceptions.rb
+++ b/app/lib/exceptions.rb
@@ -8,6 +8,7 @@ module Mastodon
class LengthValidationError < ValidationError; end
class DimensionsValidationError < ValidationError; end
class RaceConditionError < Error; end
+ class RateLimitExceededError < Error; end
class UnexpectedResponseError < Error
def initialize(response = nil)
diff --git a/app/lib/language_detector.rb b/app/lib/language_detector.rb
index 302072bcc..05a06726d 100644
--- a/app/lib/language_detector.rb
+++ b/app/lib/language_detector.rb
@@ -52,8 +52,10 @@ class LanguageDetector
def detect_language_code(text)
return if unreliable_input?(text)
+
result = @identifier.find_language(text)
- iso6391(result.language.to_s).to_sym if result.reliable?
+
+ iso6391(result.language.to_s).to_sym if result&.reliable?
end
def iso6391(bcp47)
diff --git a/app/lib/proof_provider/keybase/config_serializer.rb b/app/lib/proof_provider/keybase/config_serializer.rb
index 2840f1823..fbce7aeee 100644
--- a/app/lib/proof_provider/keybase/config_serializer.rb
+++ b/app/lib/proof_provider/keybase/config_serializer.rb
@@ -22,7 +22,12 @@ class ProofProvider::Keybase::ConfigSerializer < ActiveModel::Serializer
end
def logo
- { svg_black: full_asset_url(asset_pack_path('media/images/logo_transparent_black.svg')), svg_full: full_asset_url(asset_pack_path('media/images/logo.svg')) }
+ {
+ svg_black: full_asset_url(asset_pack_path('media/images/logo_transparent_black.svg')),
+ svg_white: full_asset_url(asset_pack_path('media/images/logo_transparent_white.svg')),
+ svg_full: full_asset_url(asset_pack_path('media/images/logo.svg')),
+ svg_full_darkmode: full_asset_url(asset_pack_path('media/images/logo.svg')),
+ }
end
def brand_color
diff --git a/app/lib/rate_limiter.rb b/app/lib/rate_limiter.rb
new file mode 100644
index 000000000..0e2c9a894
--- /dev/null
+++ b/app/lib/rate_limiter.rb
@@ -0,0 +1,64 @@
+# frozen_string_literal: true
+
+class RateLimiter
+ include Redisable
+
+ FAMILIES = {
+ follows: {
+ limit: 400,
+ period: 24.hours.freeze,
+ }.freeze,
+
+ statuses: {
+ limit: 300,
+ period: 3.hours.freeze,
+ }.freeze,
+
+ reports: {
+ limit: 400,
+ period: 24.hours.freeze,
+ }.freeze,
+ }.freeze
+
+ def initialize(by, options = {})
+ @by = by
+ @family = options[:family]
+ @limit = FAMILIES[@family][:limit]
+ @period = FAMILIES[@family][:period].to_i
+ end
+
+ def record!
+ count = redis.get(key)
+
+ if count.nil?
+ redis.set(key, 0)
+ redis.expire(key, (@period - (last_epoch_time % @period) + 1).to_i)
+ end
+
+ raise Mastodon::RateLimitExceededError if count.present? && count.to_i >= @limit
+
+ redis.incr(key)
+ end
+
+ def rollback!
+ redis.decr(key)
+ end
+
+ def to_headers(now = Time.now.utc)
+ {
+ 'X-RateLimit-Limit' => @limit.to_s,
+ 'X-RateLimit-Remaining' => (@limit - (redis.get(key) || 0).to_i).to_s,
+ 'X-RateLimit-Reset' => (now + (@period - now.to_i % @period)).iso8601(6),
+ }
+ end
+
+ private
+
+ def key
+ @key ||= "rate_limit:#{@by.id}:#{@family}:#{(last_epoch_time / @period).to_i}"
+ end
+
+ def last_epoch_time
+ @last_epoch_time ||= Time.now.to_i
+ end
+end
diff --git a/app/lib/request.rb b/app/lib/request.rb
index c476e7785..247c32958 100644
--- a/app/lib/request.rb
+++ b/app/lib/request.rb
@@ -73,8 +73,6 @@ class Request
response.body_with_limit if http_client.persistent?
yield response if block_given?
- rescue => e
- raise e.class, e.message, e.backtrace[0]
ensure
http_client.close unless http_client.persistent?
end
diff --git a/app/lib/rss/serializer.rb b/app/lib/rss/serializer.rb
new file mode 100644
index 000000000..fd56c568c
--- /dev/null
+++ b/app/lib/rss/serializer.rb
@@ -0,0 +1,38 @@
+# frozen_string_literal: true
+
+class RSS::Serializer
+ private
+
+ def render_statuses(builder, statuses)
+ statuses.each do |status|
+ builder.item do |item|
+ item.title(status_title(status))
+ .link(ActivityPub::TagManager.instance.url_for(status))
+ .pub_date(status.created_at)
+ .description(status.spoiler_text.presence || Formatter.instance.format(status, inline_poll_options: true).to_str)
+
+ status.media_attachments.each do |media|
+ item.enclosure(full_asset_url(media.file.url(:original, false)), media.file.content_type, media.file.size)
+ end
+ end
+ end
+ end
+
+ def status_title(status)
+ return "#{status.account.acct} deleted status" if status.destroyed?
+
+ preview = status.proper.spoiler_text.presence || status.proper.text
+ if preview.length > 30 || preview[0, 30].include?("\n")
+ preview = preview[0, 30]
+ preview = preview[0, preview.index("\n").presence || 30] + '…'
+ end
+
+ preview = "#{status.proper.spoiler_text.present? ? 'CW ' : ''}“#{preview}”#{status.proper.sensitive? ? ' (sensitive)' : ''}"
+
+ if status.reblog?
+ "#{status.account.acct} boosted #{status.reblog.account.acct}: #{preview}"
+ else
+ "#{status.account.acct}: #{preview}"
+ end
+ end
+end
diff --git a/app/lib/sidekiq_error_handler.rb b/app/lib/sidekiq_error_handler.rb
index 8eb6b942d..b07817d45 100644
--- a/app/lib/sidekiq_error_handler.rb
+++ b/app/lib/sidekiq_error_handler.rb
@@ -1,13 +1,24 @@
# frozen_string_literal: true
class SidekiqErrorHandler
+ BACKTRACE_LIMIT = 3
+
def call(*)
yield
rescue Mastodon::HostValidationError
# Do not retry
+ rescue => e
+ limit_backtrace_and_raise(e)
ensure
socket = Thread.current[:statsd_socket]
socket&.close
Thread.current[:statsd_socket] = nil
end
+
+ private
+
+ def limit_backtrace_and_raise(e)
+ e.set_backtrace(e.backtrace.first(BACKTRACE_LIMIT))
+ raise e
+ end
end
diff --git a/app/models/account.rb b/app/models/account.rb
index 0eb719d65..ff7386aaf 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -3,49 +3,52 @@
#
# Table name: accounts
#
-# id :bigint(8) not null, primary key
-# username :string default(""), not null
-# domain :string
-# secret :string default(""), not null
-# private_key :text
-# public_key :text default(""), not null
-# remote_url :string default(""), not null
-# salmon_url :string default(""), not null
-# hub_url :string default(""), not null
-# created_at :datetime not null
-# updated_at :datetime not null
-# note :text default(""), not null
-# display_name :string default(""), not null
-# uri :string default(""), not null
-# url :string
-# avatar_file_name :string
-# avatar_content_type :string
-# avatar_file_size :integer
-# avatar_updated_at :datetime
-# header_file_name :string
-# header_content_type :string
-# header_file_size :integer
-# header_updated_at :datetime
-# avatar_remote_url :string
-# subscription_expires_at :datetime
-# locked :boolean default(FALSE), not null
-# header_remote_url :string default(""), not null
-# last_webfingered_at :datetime
-# inbox_url :string default(""), not null
-# outbox_url :string default(""), not null
-# shared_inbox_url :string default(""), not null
-# followers_url :string default(""), not null
-# protocol :integer default("ostatus"), not null
-# memorial :boolean default(FALSE), not null
-# moved_to_account_id :bigint(8)
-# featured_collection_url :string
-# fields :jsonb
-# actor_type :string
-# discoverable :boolean
-# also_known_as :string is an Array
-# silenced_at :datetime
-# suspended_at :datetime
-# trust_level :integer
+# id :bigint(8) not null, primary key
+# username :string default(""), not null
+# domain :string
+# secret :string default(""), not null
+# private_key :text
+# public_key :text default(""), not null
+# remote_url :string default(""), not null
+# salmon_url :string default(""), not null
+# hub_url :string default(""), not null
+# created_at :datetime not null
+# updated_at :datetime not null
+# note :text default(""), not null
+# display_name :string default(""), not null
+# uri :string default(""), not null
+# url :string
+# avatar_file_name :string
+# avatar_content_type :string
+# avatar_file_size :integer
+# avatar_updated_at :datetime
+# header_file_name :string
+# header_content_type :string
+# header_file_size :integer
+# header_updated_at :datetime
+# avatar_remote_url :string
+# subscription_expires_at :datetime
+# locked :boolean default(FALSE), not null
+# header_remote_url :string default(""), not null
+# last_webfingered_at :datetime
+# inbox_url :string default(""), not null
+# outbox_url :string default(""), not null
+# shared_inbox_url :string default(""), not null
+# followers_url :string default(""), not null
+# protocol :integer default("ostatus"), not null
+# memorial :boolean default(FALSE), not null
+# moved_to_account_id :bigint(8)
+# featured_collection_url :string
+# fields :jsonb
+# actor_type :string
+# discoverable :boolean
+# also_known_as :string is an Array
+# silenced_at :datetime
+# suspended_at :datetime
+# trust_level :integer
+# hide_collections :boolean
+# avatar_storage_schema_version :integer
+# header_storage_schema_version :integer
#
class Account < ApplicationRecord
@@ -102,6 +105,7 @@ class Account < ApplicationRecord
scope :discoverable, -> { searchable.without_silenced.where(discoverable: true).left_outer_joins(:account_stat) }
scope :tagged_with, ->(tag) { joins(:accounts_tags).where(accounts_tags: { tag_id: tag }) }
scope :by_recent_status, -> { order(Arel.sql('(case when account_stats.last_status_at is null then 1 else 0 end) asc, account_stats.last_status_at desc, accounts.id desc')) }
+ scope :by_recent_sign_in, -> { order(Arel.sql('(case when users.current_sign_in_at is null then 1 else 0 end) asc, users.current_sign_in_at desc, accounts.id desc')) }
scope :popular, -> { order('account_stats.followers_count desc') }
scope :by_domain_and_subdomains, ->(domain) { where(domain: domain).or(where(arel_table[:domain].matches('%.' + domain))) }
scope :not_excluded_by_account, ->(account) { where.not(id: account.excluded_from_timeline_account_ids) }
@@ -322,6 +326,14 @@ class Account < ApplicationRecord
save!
end
+ def hides_followers?
+ hide_collections? || user_hides_network?
+ end
+
+ def hides_following?
+ hide_collections? || user_hides_network?
+ end
+
def object_type
:person
end
@@ -403,7 +415,7 @@ class Account < ApplicationRecord
def inboxes
urls = reorder(nil).where(protocol: :activitypub).pluck(Arel.sql("distinct coalesce(nullif(accounts.shared_inbox_url, ''), accounts.inbox_url)"))
- DeliveryFailureTracker.filter(urls)
+ DeliveryFailureTracker.without_unavailable(urls)
end
def search_for(terms, limit = 10, offset = 0)
@@ -478,7 +490,16 @@ class Account < ApplicationRecord
def from_text(text)
return [] if text.blank?
- text.scan(MENTION_RE).map { |match| match.first.split('@', 2) }.uniq.map { |(username, domain)| EntityCache.instance.mention(username, domain) }
+ text.scan(MENTION_RE).map { |match| match.first.split('@', 2) }.uniq.map do |(username, domain)|
+ domain = begin
+ if TagManager.instance.local_domain?(domain)
+ nil
+ else
+ TagManager.instance.normalize_domain(domain)
+ end
+ end
+ EntityCache.instance.mention(username, domain)
+ end.compact
end
private
diff --git a/app/models/account_alias.rb b/app/models/account_alias.rb
index 66f8ce409..792e9e8d4 100644
--- a/app/models/account_alias.rb
+++ b/app/models/account_alias.rb
@@ -16,8 +16,8 @@ class AccountAlias < ApplicationRecord
belongs_to :account
validates :acct, presence: true, domain: { acct: true }
- validates :uri, presence: true
validates :uri, uniqueness: { scope: :account_id }
+ validate :validate_target_account
before_validation :set_uri
after_create :add_to_account
@@ -44,4 +44,12 @@ class AccountAlias < ApplicationRecord
def remove_from_account
account.update(also_known_as: account.also_known_as.reject { |x| x == uri })
end
+
+ def validate_target_account
+ if uri.blank?
+ errors.add(:acct, I18n.t('migrations.errors.not_found'))
+ elsif ActivityPub::TagManager.instance.uri_for(account) == uri
+ errors.add(:acct, I18n.t('migrations.errors.move_to_self'))
+ end
+ end
end
diff --git a/app/models/account_filter.rb b/app/models/account_filter.rb
index c7bf07787..7b6012e0f 100644
--- a/app/models/account_filter.rb
+++ b/app/models/account_filter.rb
@@ -14,6 +14,7 @@ class AccountFilter
email
ip
staff
+ order
).freeze
attr_reader :params
@@ -24,7 +25,7 @@ class AccountFilter
end
def results
- scope = Account.recent.includes(:user)
+ scope = Account.includes(:user).reorder(nil)
params.each do |key, value|
scope.merge!(scope_for(key, value.to_s.strip)) if value.present?
@@ -38,6 +39,7 @@ class AccountFilter
def set_defaults!
params['local'] = '1' if params['remote'].blank?
params['active'] = '1' if params['suspended'].blank? && params['silenced'].blank? && params['pending'].blank?
+ params['order'] = 'recent' if params['order'].blank?
end
def scope_for(key, value)
@@ -51,9 +53,9 @@ class AccountFilter
when 'active'
Account.without_suspended
when 'pending'
- accounts_with_users.merge User.pending
+ accounts_with_users.merge(User.pending)
when 'disabled'
- accounts_with_users.merge User.disabled
+ accounts_with_users.merge(User.disabled)
when 'silenced'
Account.silenced
when 'suspended'
@@ -63,16 +65,31 @@ class AccountFilter
when 'display_name'
Account.matches_display_name(value)
when 'email'
- accounts_with_users.merge User.matches_email(value)
+ accounts_with_users.merge(User.matches_email(value))
when 'ip'
valid_ip?(value) ? accounts_with_users.merge(User.matches_ip(value)) : Account.none
when 'staff'
- accounts_with_users.merge User.staff
+ accounts_with_users.merge(User.staff)
+ when 'order'
+ order_scope(value)
else
raise "Unknown filter: #{key}"
end
end
+ def order_scope(value)
+ case value
+ when 'active'
+ params['remote'] ? Account.joins(:account_stat).by_recent_status : Account.joins(:user).by_recent_sign_in
+ when 'recent'
+ Account.recent
+ when 'alphabetic'
+ Account.alphabetic
+ else
+ raise "Unknown order: #{value}"
+ end
+ end
+
def accounts_with_users
Account.joins(:user)
end
diff --git a/app/models/account_warning_preset.rb b/app/models/account_warning_preset.rb
index ba8ceabb3..c20f683cf 100644
--- a/app/models/account_warning_preset.rb
+++ b/app/models/account_warning_preset.rb
@@ -8,8 +8,11 @@
# text :text default(""), not null
# created_at :datetime not null
# updated_at :datetime not null
+# title :string default(""), not null
#
class AccountWarningPreset < ApplicationRecord
validates :text, presence: true
+
+ scope :alphabetic, -> { order(title: :asc, text: :asc) }
end
diff --git a/app/models/admin/account_action.rb b/app/models/admin/account_action.rb
index e9da003a3..b30a82369 100644
--- a/app/models/admin/account_action.rb
+++ b/app/models/admin/account_action.rb
@@ -62,8 +62,6 @@ class Admin::AccountAction
def process_action!
case type
- when 'none'
- handle_resolve!
when 'disable'
handle_disable!
when 'silence'
@@ -105,16 +103,6 @@ class Admin::AccountAction
end
end
- def handle_resolve!
- if with_report? && report.account_id == -99 && target_account.trust_level == Account::TRUST_LEVELS[:untrusted]
- # This is an automated report and it is being dismissed, so it's
- # a false positive, in which case update the account's trust level
- # to prevent further spam checks
-
- target_account.update(trust_level: Account::TRUST_LEVELS[:trusted])
- end
- end
-
def handle_disable!
authorize(target_account.user, :disable?)
log_action(:disable, target_account.user)
diff --git a/app/models/admin/action_log_filter.rb b/app/models/admin/action_log_filter.rb
new file mode 100644
index 000000000..0ba7e1609
--- /dev/null
+++ b/app/models/admin/action_log_filter.rb
@@ -0,0 +1,81 @@
+# frozen_string_literal: true
+
+class Admin::ActionLogFilter
+ KEYS = %i(
+ action_type
+ account_id
+ target_account_id
+ ).freeze
+
+ ACTION_TYPE_MAP = {
+ assigned_to_self_report: { target_type: 'Report', action: 'assigned_to_self' }.freeze,
+ change_email_user: { target_type: 'User', action: 'change_email' }.freeze,
+ confirm_user: { target_type: 'User', action: 'confirm' }.freeze,
+ create_account_warning: { target_type: 'AccountWarning', action: 'create' }.freeze,
+ create_announcement: { target_type: 'Announcement', action: 'create' }.freeze,
+ create_custom_emoji: { target_type: 'CustomEmoji', action: 'create' }.freeze,
+ create_domain_allow: { target_type: 'DomainAllow', action: 'create' }.freeze,
+ create_domain_block: { target_type: 'DomainBlock', action: 'create' }.freeze,
+ create_email_domain_block: { target_type: 'EmailDomainBlock', action: 'create' }.freeze,
+ demote_user: { target_type: 'User', action: 'demote' }.freeze,
+ destroy_announcement: { target_type: 'Announcement', action: 'destroy' }.freeze,
+ destroy_custom_emoji: { target_type: 'CustomEmoji', action: 'destroy' }.freeze,
+ destroy_domain_allow: { target_type: 'DomainAllow', action: 'destroy' }.freeze,
+ destroy_domain_block: { target_type: 'DomainBlock', action: 'destroy' }.freeze,
+ destroy_email_domain_block: { target_type: 'EmailDomainBlock', action: 'destroy' }.freeze,
+ destroy_status: { target_type: 'Status', action: 'destroy' }.freeze,
+ disable_2fa_user: { target_type: 'User', action: 'disable' }.freeze,
+ disable_custom_emoji: { target_type: 'CustomEmoji', action: 'disable' }.freeze,
+ disable_user: { target_type: 'User', action: 'disable' }.freeze,
+ enable_custom_emoji: { target_type: 'CustomEmoji', action: 'enable' }.freeze,
+ enable_user: { target_type: 'User', action: 'enable' }.freeze,
+ memorialize_account: { target_type: 'Account', action: 'memorialize' }.freeze,
+ promote_user: { target_type: 'User', action: 'promote' }.freeze,
+ remove_avatar_user: { target_type: 'User', action: 'remove_avatar' }.freeze,
+ reopen_report: { target_type: 'Report', action: 'reopen' }.freeze,
+ reset_password_user: { target_type: 'User', action: 'reset_password' }.freeze,
+ resolve_report: { target_type: 'Report', action: 'resolve' }.freeze,
+ silence_account: { target_type: 'Account', action: 'silence' }.freeze,
+ suspend_account: { target_type: 'Account', action: 'suspend' }.freeze,
+ unassigned_report: { target_type: 'Report', action: 'unassigned' }.freeze,
+ unsilence_account: { target_type: 'Account', action: 'unsilence' }.freeze,
+ unsuspend_account: { target_type: 'Account', action: 'unsuspend' }.freeze,
+ update_announcement: { target_type: 'Announcement', action: 'update' }.freeze,
+ update_custom_emoji: { target_type: 'CustomEmoji', action: 'update' }.freeze,
+ update_status: { target_type: 'Status', action: 'update' }.freeze,
+ }.freeze
+
+ attr_reader :params
+
+ def initialize(params)
+ @params = params
+ end
+
+ def results
+ scope = Admin::ActionLog.includes(:target)
+
+ params.each do |key, value|
+ next if key.to_s == 'page'
+
+ scope.merge!(scope_for(key.to_s, value.to_s.strip)) if value.present?
+ end
+
+ scope
+ end
+
+ private
+
+ def scope_for(key, value)
+ case key
+ when 'action_type'
+ Admin::ActionLog.where(ACTION_TYPE_MAP[value.to_sym])
+ when 'account_id'
+ Admin::ActionLog.where(account_id: value)
+ when 'target_account_id'
+ account = Account.find(value)
+ Admin::ActionLog.where(target: [account, account.user].compact)
+ else
+ raise "Unknown filter: #{key}"
+ end
+ end
+end
diff --git a/app/models/announcement.rb b/app/models/announcement.rb
index d99502f44..c493604c2 100644
--- a/app/models/announcement.rb
+++ b/app/models/announcement.rb
@@ -14,6 +14,7 @@
# created_at :datetime not null
# updated_at :datetime not null
# published_at :datetime
+# status_ids :bigint(8) is an Array
#
class Announcement < ApplicationRecord
@@ -48,6 +49,16 @@ class Announcement < ApplicationRecord
@mentions ||= Account.from_text(text)
end
+ def statuses
+ @statuses ||= begin
+ if status_ids.nil?
+ []
+ else
+ Status.where(id: status_ids, visibility: [:public, :unlisted])
+ end
+ end
+ end
+
def tags
@tags ||= Tag.find_or_create_by_names(Extractor.extract_hashtags(text))
end
diff --git a/app/models/concerns/account_interactions.rb b/app/models/concerns/account_interactions.rb
index 14bcf7bb1..32fcb5397 100644
--- a/app/models/concerns/account_interactions.rb
+++ b/app/models/concerns/account_interactions.rb
@@ -87,10 +87,10 @@ module AccountInteractions
has_many :announcement_mutes, dependent: :destroy
end
- def follow!(other_account, reblogs: nil, uri: nil)
+ def follow!(other_account, reblogs: nil, uri: nil, rate_limit: false)
reblogs = true if reblogs.nil?
- rel = active_relationships.create_with(show_reblogs: reblogs, uri: uri)
+ rel = active_relationships.create_with(show_reblogs: reblogs, uri: uri, rate_limit: rate_limit)
.find_or_create_by!(target_account: other_account)
rel.update!(show_reblogs: reblogs)
@@ -99,6 +99,18 @@ module AccountInteractions
rel
end
+ def request_follow!(other_account, reblogs: nil, uri: nil, rate_limit: false)
+ reblogs = true if reblogs.nil?
+
+ rel = follow_requests.create_with(show_reblogs: reblogs, uri: uri, rate_limit: rate_limit)
+ .find_or_create_by!(target_account: other_account)
+
+ rel.update!(show_reblogs: reblogs)
+ remove_potential_friendship(other_account)
+
+ rel
+ end
+
def block!(other_account, uri: nil)
remove_potential_friendship(other_account)
block_relationships.create_with(uri: uri)
diff --git a/app/models/concerns/attachmentable.rb b/app/models/concerns/attachmentable.rb
index 43ff8ac12..18b872c1e 100644
--- a/app/models/concerns/attachmentable.rb
+++ b/app/models/concerns/attachmentable.rb
@@ -74,7 +74,7 @@ module Attachmentable
self.class.attachment_definitions.each_key do |attachment_name|
attachment = send(attachment_name)
- next if attachment.blank? || attachment.queued_for_write[:original].blank?
+ next if attachment.blank? || attachment.queued_for_write[:original].blank? || attachment.options[:preserve_files]
attachment.instance_write :file_name, SecureRandom.hex(8) + File.extname(attachment.instance_read(:file_name))
end
diff --git a/app/models/concerns/omniauthable.rb b/app/models/concerns/omniauthable.rb
index 960784222..736da6c1d 100644
--- a/app/models/concerns/omniauthable.rb
+++ b/app/models/concerns/omniauthable.rb
@@ -82,7 +82,7 @@ module Omniauthable
username = starting_username
i = 0
- while Account.exists?(username: username)
+ while Account.exists?(username: username, domain: nil)
i += 1
username = "#{starting_username}_#{i}"
end
diff --git a/app/models/concerns/rate_limitable.rb b/app/models/concerns/rate_limitable.rb
new file mode 100644
index 000000000..ad1b5e44e
--- /dev/null
+++ b/app/models/concerns/rate_limitable.rb
@@ -0,0 +1,36 @@
+# frozen_string_literal: true
+
+module RateLimitable
+ extend ActiveSupport::Concern
+
+ def rate_limit=(value)
+ @rate_limit = value
+ end
+
+ def rate_limit?
+ @rate_limit
+ end
+
+ def rate_limiter(by, options = {})
+ return @rate_limiter if defined?(@rate_limiter)
+
+ @rate_limiter = RateLimiter.new(by, options)
+ end
+
+ class_methods do
+ def rate_limit(options = {})
+ after_create do
+ by = public_send(options[:by])
+
+ if rate_limit? && by&.local?
+ rate_limiter(by, options).record!
+ @rate_limit_recorded = true
+ end
+ end
+
+ after_rollback do
+ rate_limiter(public_send(options[:by]), options).rollback! if @rate_limit_recorded
+ end
+ end
+ end
+end
diff --git a/app/models/custom_emoji.rb b/app/models/custom_emoji.rb
index d177cf281..7cb03b819 100644
--- a/app/models/custom_emoji.rb
+++ b/app/models/custom_emoji.rb
@@ -3,20 +3,21 @@
#
# Table name: custom_emojis
#
-# id :bigint(8) not null, primary key
-# shortcode :string default(""), not null
-# domain :string
-# image_file_name :string
-# image_content_type :string
-# image_file_size :integer
-# image_updated_at :datetime
-# created_at :datetime not null
-# updated_at :datetime not null
-# disabled :boolean default(FALSE), not null
-# uri :string
-# image_remote_url :string
-# visible_in_picker :boolean default(TRUE), not null
-# category_id :bigint(8)
+# id :bigint(8) not null, primary key
+# shortcode :string default(""), not null
+# domain :string
+# image_file_name :string
+# image_content_type :string
+# image_file_size :integer
+# image_updated_at :datetime
+# created_at :datetime not null
+# updated_at :datetime not null
+# disabled :boolean default(FALSE), not null
+# uri :string
+# image_remote_url :string
+# visible_in_picker :boolean default(TRUE), not null
+# category_id :bigint(8)
+# image_storage_schema_version :integer
#
class CustomEmoji < ApplicationRecord
diff --git a/app/models/email_domain_block.rb b/app/models/email_domain_block.rb
index bc70dea25..f50fa46ba 100644
--- a/app/models/email_domain_block.rb
+++ b/app/models/email_domain_block.rb
@@ -7,13 +7,27 @@
# domain :string default(""), not null
# created_at :datetime not null
# updated_at :datetime not null
+# parent_id :bigint(8)
#
class EmailDomainBlock < ApplicationRecord
include DomainNormalizable
+ belongs_to :parent, class_name: 'EmailDomainBlock', optional: true
+ has_many :children, class_name: 'EmailDomainBlock', foreign_key: :parent_id, inverse_of: :parent, dependent: :destroy
+
validates :domain, presence: true, uniqueness: true, domain: true
+ def with_dns_records=(val)
+ @with_dns_records = ActiveModel::Type::Boolean.new.cast(val)
+ end
+
+ def with_dns_records?
+ @with_dns_records
+ end
+
+ alias with_dns_records with_dns_records?
+
def self.block?(email)
_, domain = email.split('@', 2)
diff --git a/app/models/follow.rb b/app/models/follow.rb
index 87fa11425..f3e48a2ed 100644
--- a/app/models/follow.rb
+++ b/app/models/follow.rb
@@ -15,6 +15,9 @@
class Follow < ApplicationRecord
include Paginable
include RelationshipCacheable
+ include RateLimitable
+
+ rate_limit by: :account, family: :follows
belongs_to :account
belongs_to :target_account, class_name: 'Account'
diff --git a/app/models/follow_request.rb b/app/models/follow_request.rb
index 96ac7eaa5..3325e264c 100644
--- a/app/models/follow_request.rb
+++ b/app/models/follow_request.rb
@@ -15,6 +15,9 @@
class FollowRequest < ApplicationRecord
include Paginable
include RelationshipCacheable
+ include RateLimitable
+
+ rate_limit by: :account, family: :follows
belongs_to :account
belongs_to :target_account, class_name: 'Account'
diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb
index 42364641f..75ce9fc4f 100644
--- a/app/models/media_attachment.rb
+++ b/app/models/media_attachment.rb
@@ -3,28 +3,31 @@
#
# Table name: media_attachments
#
-# id :bigint(8) not null, primary key
-# status_id :bigint(8)
-# file_file_name :string
-# file_content_type :string
-# file_file_size :integer
-# file_updated_at :datetime
-# remote_url :string default(""), not null
-# created_at :datetime not null
-# updated_at :datetime not null
-# shortcode :string
-# type :integer default("image"), not null
-# file_meta :json
-# account_id :bigint(8)
-# description :text
-# scheduled_status_id :bigint(8)
-# blurhash :string
+# id :bigint(8) not null, primary key
+# status_id :bigint(8)
+# file_file_name :string
+# file_content_type :string
+# file_file_size :integer
+# file_updated_at :datetime
+# remote_url :string default(""), not null
+# created_at :datetime not null
+# updated_at :datetime not null
+# shortcode :string
+# type :integer default("image"), not null
+# file_meta :json
+# account_id :bigint(8)
+# description :text
+# scheduled_status_id :bigint(8)
+# blurhash :string
+# processing :integer
+# file_storage_schema_version :integer
#
class MediaAttachment < ApplicationRecord
self.inheritance_column = nil
enum type: [:image, :gifv, :video, :unknown, :audio]
+ enum processing: [:queued, :in_progress, :complete, :failed], _prefix: true
MAX_DESCRIPTION_LENGTH = 1_500
@@ -55,47 +58,6 @@ class MediaAttachment < ApplicationRecord
},
}.freeze
- VIDEO_STYLES = {
- small: {
- convert_options: {
- output: {
- 'loglevel' => 'fatal',
- vf: 'scale=\'min(400\, iw):min(400\, ih)\':force_original_aspect_ratio=decrease',
- },
- },
- format: 'png',
- time: 0,
- file_geometry_parser: FastGeometryParser,
- blurhash: BLURHASH_OPTIONS,
- },
-
- original: {
- keep_same_format: true,
- convert_options: {
- output: {
- 'loglevel' => 'fatal',
- 'map_metadata' => '-1',
- 'c:v' => 'copy',
- 'c:a' => 'copy',
- },
- },
- },
- }.freeze
-
- AUDIO_STYLES = {
- original: {
- format: 'mp3',
- content_type: 'audio/mpeg',
- convert_options: {
- output: {
- 'loglevel' => 'fatal',
- 'map_metadata' => '-1',
- 'q:a' => 2,
- },
- },
- },
- }.freeze
-
VIDEO_FORMAT = {
format: 'mp4',
content_type: 'video/mp4',
@@ -116,6 +78,54 @@ class MediaAttachment < ApplicationRecord
},
}.freeze
+ VIDEO_PASSTHROUGH_OPTIONS = {
+ video_codecs: ['h264'],
+ audio_codecs: ['aac', nil],
+ colorspaces: ['yuv420p'],
+ options: {
+ format: 'mp4',
+ convert_options: {
+ output: {
+ 'loglevel' => 'fatal',
+ 'map_metadata' => '-1',
+ 'c:v' => 'copy',
+ 'c:a' => 'copy',
+ },
+ },
+ },
+ }.freeze
+
+ VIDEO_STYLES = {
+ small: {
+ convert_options: {
+ output: {
+ 'loglevel' => 'fatal',
+ vf: 'scale=\'min(400\, iw):min(400\, ih)\':force_original_aspect_ratio=decrease',
+ },
+ },
+ format: 'png',
+ time: 0,
+ file_geometry_parser: FastGeometryParser,
+ blurhash: BLURHASH_OPTIONS,
+ },
+
+ original: VIDEO_FORMAT.merge(passthrough_options: VIDEO_PASSTHROUGH_OPTIONS),
+ }.freeze
+
+ AUDIO_STYLES = {
+ original: {
+ format: 'mp3',
+ content_type: 'audio/mpeg',
+ convert_options: {
+ output: {
+ 'loglevel' => 'fatal',
+ 'map_metadata' => '-1',
+ 'q:a' => 2,
+ },
+ },
+ },
+ }.freeze
+
VIDEO_CONVERTED_STYLES = {
small: VIDEO_STYLES[:small],
original: VIDEO_FORMAT,
@@ -124,6 +134,9 @@ class MediaAttachment < ApplicationRecord
IMAGE_LIMIT = 10.megabytes
VIDEO_LIMIT = 40.megabytes
+ MAX_VIDEO_MATRIX_LIMIT = 2_304_000 # 1920x1200px
+ MAX_VIDEO_FRAME_RATE = 60
+
belongs_to :account, inverse_of: :media_attachments, optional: true
belongs_to :status, inverse_of: :media_attachments, optional: true
belongs_to :scheduled_status, inverse_of: :media_attachments, optional: true
@@ -156,6 +169,10 @@ class MediaAttachment < ApplicationRecord
remote_url.blank?
end
+ def not_processed?
+ processing.present? && !processing_complete?
+ end
+
def needs_redownload?
file.blank? && remote_url.present?
end
@@ -168,18 +185,6 @@ class MediaAttachment < ApplicationRecord
audio? || video?
end
- def variant?(other_file_name)
- return true if file_file_name == other_file_name
-
- formats = file.styles.values.map(&:format).compact
-
- return false if formats.empty?
-
- extension = File.extname(other_file_name)
-
- formats.include?(extension.delete('.')) && File.basename(other_file_name, extension) == File.basename(file_file_name, File.extname(file_file_name))
- end
-
def to_param
shortcode
end
@@ -202,12 +207,21 @@ class MediaAttachment < ApplicationRecord
"#{x},#{y}"
end
+ attr_writer :delay_processing
+
+ def delay_processing?
+ @delay_processing
+ end
+
+ after_commit :enqueue_processing, on: :create
after_commit :reset_parent_cache, on: :update
before_create :prepare_description, unless: :local?
before_create :set_shortcode
+ before_create :set_processing
before_post_process :set_type_and_extension
+ before_post_process :check_video_dimensions
before_save :set_meta
@@ -276,6 +290,21 @@ class MediaAttachment < ApplicationRecord
end
end
+ def set_processing
+ self.processing = delay_processing? ? :queued : :complete
+ end
+
+ def check_video_dimensions
+ return unless (video? || gifv?) && file.queued_for_write[:original].present?
+
+ movie = FFMPEG::Movie.new(file.queued_for_write[:original].path)
+
+ return unless movie.valid?
+
+ raise Mastodon::DimensionsValidationError, "#{movie.width}x#{movie.height} videos are not supported" if movie.width * movie.height > MAX_VIDEO_MATRIX_LIMIT
+ raise Mastodon::DimensionsValidationError, "#{movie.frame_rate.to_i}fps videos are not supported" if movie.frame_rate > MAX_VIDEO_FRAME_RATE
+ end
+
def set_meta
meta = populate_meta
@@ -321,9 +350,11 @@ class MediaAttachment < ApplicationRecord
}.compact
end
- def reset_parent_cache
- return if status_id.nil?
+ def enqueue_processing
+ PostProcessMediaWorker.perform_async(id) if delay_processing?
+ end
- Rails.cache.delete("statuses/#{status_id}")
+ def reset_parent_cache
+ Rails.cache.delete("statuses/#{status_id}") if status_id.present?
end
end
diff --git a/app/models/preview_card.rb b/app/models/preview_card.rb
index 4e89fbf85..2802f4667 100644
--- a/app/models/preview_card.rb
+++ b/app/models/preview_card.rb
@@ -3,25 +3,26 @@
#
# Table name: preview_cards
#
-# id :bigint(8) not null, primary key
-# url :string default(""), not null
-# title :string default(""), not null
-# description :string default(""), not null
-# image_file_name :string
-# image_content_type :string
-# image_file_size :integer
-# image_updated_at :datetime
-# type :integer default("link"), not null
-# html :text default(""), not null
-# author_name :string default(""), not null
-# author_url :string default(""), not null
-# provider_name :string default(""), not null
-# provider_url :string default(""), not null
-# width :integer default(0), not null
-# height :integer default(0), not null
-# created_at :datetime not null
-# updated_at :datetime not null
-# embed_url :string default(""), not null
+# id :bigint(8) not null, primary key
+# url :string default(""), not null
+# title :string default(""), not null
+# description :string default(""), not null
+# image_file_name :string
+# image_content_type :string
+# image_file_size :integer
+# image_updated_at :datetime
+# type :integer default("link"), not null
+# html :text default(""), not null
+# author_name :string default(""), not null
+# author_url :string default(""), not null
+# provider_name :string default(""), not null
+# provider_url :string default(""), not null
+# width :integer default(0), not null
+# height :integer default(0), not null
+# created_at :datetime not null
+# updated_at :datetime not null
+# embed_url :string default(""), not null
+# image_storage_schema_version :integer
#
class PreviewCard < ApplicationRecord
@@ -47,6 +48,10 @@ class PreviewCard < ApplicationRecord
before_save :extract_dimensions, if: :link?
+ def local?
+ false
+ end
+
def missing_image?
width.present? && height.present? && image_file_name.blank?
end
diff --git a/app/models/relationship_filter.rb b/app/models/relationship_filter.rb
index e6859bf3d..9135ff144 100644
--- a/app/models/relationship_filter.rb
+++ b/app/models/relationship_filter.rb
@@ -23,7 +23,7 @@ class RelationshipFilter
scope = scope_for('relationship', params['relationship'].to_s.strip)
params.each do |key, value|
- next if key.to_s == 'page'
+ next if %w(relationship page).include?(key)
scope.merge!(scope_for(key.to_s, value.to_s.strip)) if value.present?
end
diff --git a/app/models/relay.rb b/app/models/relay.rb
index 8c8a97db3..d6ddd30ed 100644
--- a/app/models/relay.rb
+++ b/app/models/relay.rb
@@ -27,7 +27,7 @@ class Relay < ApplicationRecord
payload = Oj.dump(follow_activity(activity_id))
update!(state: :pending, follow_activity_id: activity_id)
- DeliveryFailureTracker.new(inbox_url).track_success!
+ DeliveryFailureTracker.reset!(inbox_url)
ActivityPub::DeliveryWorker.perform_async(payload, some_local_account.id, inbox_url)
end
@@ -36,7 +36,7 @@ class Relay < ApplicationRecord
payload = Oj.dump(unfollow_activity(activity_id))
update!(state: :idle, follow_activity_id: nil)
- DeliveryFailureTracker.new(inbox_url).track_success!
+ DeliveryFailureTracker.reset!(inbox_url)
ActivityPub::DeliveryWorker.perform_async(payload, some_local_account.id, inbox_url)
end
diff --git a/app/models/remote_follow.rb b/app/models/remote_follow.rb
index 5ea535287..30b84f7d5 100644
--- a/app/models/remote_follow.rb
+++ b/app/models/remote_follow.rb
@@ -3,6 +3,7 @@
class RemoteFollow
include ActiveModel::Validations
include RoutingHelper
+ include WebfingerHelper
attr_accessor :acct, :addressable_template
@@ -71,7 +72,7 @@ class RemoteFollow
end
def acct_resource
- @acct_resource ||= Goldfinger.finger("acct:#{acct}")
+ @acct_resource ||= webfinger!("acct:#{acct}")
rescue Goldfinger::Error, HTTP::ConnectionError
nil
end
diff --git a/app/models/report.rb b/app/models/report.rb
index fb2e040ee..f31bcfd2e 100644
--- a/app/models/report.rb
+++ b/app/models/report.rb
@@ -18,6 +18,9 @@
class Report < ApplicationRecord
include Paginable
+ include RateLimitable
+
+ rate_limit by: :account, family: :reports
belongs_to :account
belongs_to :target_account, class_name: 'Account'
@@ -59,6 +62,14 @@ class Report < ApplicationRecord
end
def resolve!(acting_account)
+ if account_id == -99 && target_account.trust_level == Account::TRUST_LEVELS[:untrusted]
+ # This is an automated report and it is being dismissed, so it's
+ # a false positive, in which case update the account's trust level
+ # to prevent further spam checks
+
+ target_account.update(trust_level: Account::TRUST_LEVELS[:trusted])
+ end
+
RemovalWorker.push_bulk(Status.with_discarded.discarded.where(id: status_ids).pluck(:id)) { |status_id| [status_id, { immediate: true }] }
update!(action_taken: true, action_taken_by_account_id: acting_account.id)
end
diff --git a/app/models/status.rb b/app/models/status.rb
index 219396706..819e253a9 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -34,6 +34,9 @@ class Status < ApplicationRecord
include Paginable
include Cacheable
include StatusThreadingConcern
+ include RateLimitable
+
+ rate_limit by: :account, family: :statuses
self.discard_column = :deleted_at
@@ -142,10 +145,12 @@ class Status < ApplicationRecord
ids += mentions.where(account: Account.local).pluck(:account_id)
ids += favourites.where(account: Account.local).pluck(:account_id)
ids += reblogs.where(account: Account.local).pluck(:account_id)
+ ids += bookmarks.where(account: Account.local).pluck(:account_id)
else
ids += preloaded.mentions[id] || []
ids += preloaded.favourites[id] || []
ids += preloaded.reblogs[id] || []
+ ids += preloaded.bookmarks[id] || []
end
ids.uniq
@@ -199,18 +204,6 @@ class Status < ApplicationRecord
preview_cards.first
end
- def title
- if destroyed?
- "#{account.acct} deleted status"
- elsif reblog?
- preview = sensitive ? '
' : text.slice(0, 10).split("\n")[0]
- "#{account.acct} shared #{reblog.account.acct}'s: #{preview}"
- else
- preview = sensitive ? '' : text.slice(0, 20).split("\n")[0]
- "#{account.acct}: #{preview}"
- end
- end
-
def hidden?
!distributable?
end
@@ -300,7 +293,7 @@ class Status < ApplicationRecord
def as_public_timeline(account = nil, local_only = false)
query = timeline_scope(local_only).without_replies
- apply_timeline_filters(query, account, local_only)
+ apply_timeline_filters(query, account, [:local, true].include?(local_only))
end
def as_tag_timeline(tag, account = nil, local_only = false)
@@ -358,7 +351,7 @@ class Status < ApplicationRecord
if account.nil?
where(visibility: visibility).without_local_only
- elsif target_account.blocking?(account) # get rid of blocked peeps
+ elsif target_account.blocking?(account) || (account.domain.present? && target_account.domain_blocking?(account.domain)) # get rid of blocked peeps
none
elsif account.id == target_account.id # author can see own stuff
all
@@ -375,10 +368,33 @@ class Status < ApplicationRecord
end
end
+ def from_text(text)
+ return [] if text.blank?
+
+ text.scan(FetchLinkCardService::URL_PATTERN).map(&:first).uniq.map do |url|
+ status = begin
+ if TagManager.instance.local_url?(url)
+ ActivityPub::TagManager.instance.uri_to_resource(url, Status)
+ else
+ EntityCache.instance.status(url)
+ end
+ end
+ status&.distributable? ? status : nil
+ end.compact
+ end
+
private
- def timeline_scope(local_only = false)
- starting_scope = local_only ? Status.local : Status
+ def timeline_scope(scope = false)
+ starting_scope = case scope
+ when :local, true
+ Status.local
+ when :remote
+ Status.remote
+ else
+ Status
+ end
+
starting_scope
.with_public_visibility
.without_reblogs
diff --git a/app/models/unavailable_domain.rb b/app/models/unavailable_domain.rb
new file mode 100644
index 000000000..e2918b586
--- /dev/null
+++ b/app/models/unavailable_domain.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+# == Schema Information
+#
+# Table name: unavailable_domains
+#
+# id :bigint(8) not null, primary key
+# domain :string default(""), not null
+# created_at :datetime not null
+# updated_at :datetime not null
+#
+
+class UnavailableDomain < ApplicationRecord
+ include DomainNormalizable
+
+ after_commit :reset_cache!
+
+ private
+
+ def reset_cache!
+ Rails.cache.delete('unavailable_domains')
+ end
+end
diff --git a/app/models/user.rb b/app/models/user.rb
index fa83333ff..4509c97a1 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -98,6 +98,7 @@ class User < ApplicationRecord
before_validation :sanitize_languages
before_create :set_approved
+ after_commit :send_pending_devise_notifications
# This avoids a deprecation warning from Rails 5.1
# It seems possible that a future release of devise-two-factor will
@@ -306,11 +307,38 @@ class User < ApplicationRecord
protected
def send_devise_notification(notification, *args)
- devise_mailer.send(notification, self, *args).deliver_later
+ # This method can be called in `after_update` and `after_commit` hooks,
+ # but we must make sure the mailer is actually called *after* commit,
+ # otherwise it may work on stale data. To do this, figure out if we are
+ # within a transaction.
+ if ActiveRecord::Base.connection.current_transaction.try(:records)&.include?(self)
+ pending_devise_notifications << [notification, args]
+ else
+ render_and_send_devise_message(notification, *args)
+ end
end
private
+ def send_pending_devise_notifications
+ pending_devise_notifications.each do |notification, args|
+ render_and_send_devise_message(notification, *args)
+ end
+
+ # Empty the pending notifications array because the
+ # after_commit hook can be called multiple times which
+ # could cause multiple emails to be sent.
+ pending_devise_notifications.clear
+ end
+
+ def pending_devise_notifications
+ @pending_devise_notifications ||= []
+ end
+
+ def render_and_send_devise_message(notification, *args)
+ devise_mailer.send(notification, self, *args).deliver_later
+ end
+
def set_approved
self.approved = open_registrations? || valid_invitation? || external?
end
diff --git a/app/models/web/push_subscription.rb b/app/models/web/push_subscription.rb
index c5dbb58ba..c407a7789 100644
--- a/app/models/web/push_subscription.rb
+++ b/app/models/web/push_subscription.rb
@@ -94,11 +94,11 @@ class Web::PushSubscription < ApplicationRecord
def find_or_create_access_token
Doorkeeper::AccessToken.find_or_create_for(
- Doorkeeper::Application.find_by(superapp: true),
- session_activation.user_id,
- Doorkeeper::OAuth::Scopes.from_string('read write follow push'),
- Doorkeeper.configuration.access_token_expires_in,
- Doorkeeper.configuration.refresh_token_enabled?
+ application: Doorkeeper::Application.find_by(superapp: true),
+ resource_owner: session_activation.user_id,
+ scopes: Doorkeeper::OAuth::Scopes.from_string('read write follow push'),
+ expires_in: Doorkeeper.configuration.access_token_expires_in,
+ use_refresh_token: Doorkeeper.configuration.refresh_token_enabled?
)
end
end
diff --git a/app/policies/settings_policy.rb b/app/policies/settings_policy.rb
index 2dcb79f51..874f97bab 100644
--- a/app/policies/settings_policy.rb
+++ b/app/policies/settings_policy.rb
@@ -8,4 +8,8 @@ class SettingsPolicy < ApplicationPolicy
def show?
admin?
end
+
+ def destroy?
+ admin?
+ end
end
diff --git a/app/serializers/oembed_serializer.rb b/app/serializers/oembed_serializer.rb
index 01689633b..d6261d724 100644
--- a/app/serializers/oembed_serializer.rb
+++ b/app/serializers/oembed_serializer.rb
@@ -4,7 +4,7 @@ class OEmbedSerializer < ActiveModel::Serializer
include RoutingHelper
include ActionView::Helpers::TagHelper
- attributes :type, :version, :title, :author_name,
+ attributes :type, :version, :author_name,
:author_url, :provider_name, :provider_url,
:cache_age, :html, :width, :height
diff --git a/app/serializers/rest/announcement_serializer.rb b/app/serializers/rest/announcement_serializer.rb
index f27feb669..9343b97d2 100644
--- a/app/serializers/rest/announcement_serializer.rb
+++ b/app/serializers/rest/announcement_serializer.rb
@@ -7,6 +7,7 @@ class REST::AnnouncementSerializer < ActiveModel::Serializer
attribute :read, if: :current_user?
has_many :mentions
+ has_many :statuses
has_many :tags, serializer: REST::StatusSerializer::TagSerializer
has_many :emojis, serializer: REST::CustomEmojiSerializer
has_many :reactions, serializer: REST::ReactionSerializer
@@ -46,4 +47,16 @@ class REST::AnnouncementSerializer < ActiveModel::Serializer
object.pretty_acct
end
end
+
+ class StatusSerializer < ActiveModel::Serializer
+ attributes :id, :url
+
+ def id
+ object.id.to_s
+ end
+
+ def url
+ ActivityPub::TagManager.instance.url_for(object)
+ end
+ end
end
diff --git a/app/serializers/rest/instance_serializer.rb b/app/serializers/rest/instance_serializer.rb
index 1bd71683c..b388e448e 100644
--- a/app/serializers/rest/instance_serializer.rb
+++ b/app/serializers/rest/instance_serializer.rb
@@ -5,7 +5,7 @@ class REST::InstanceSerializer < ActiveModel::Serializer
attributes :uri, :title, :short_description, :description, :email,
:version, :urls, :stats, :thumbnail,
- :languages, :registrations, :approval_required
+ :languages, :registrations, :approval_required, :invites_enabled
has_one :contact_account, serializer: REST::AccountSerializer
@@ -63,6 +63,10 @@ class REST::InstanceSerializer < ActiveModel::Serializer
Setting.registrations_mode == 'approved'
end
+ def invites_enabled
+ Setting.min_invite_role == 'user'
+ end
+
private
def instance_presenter
diff --git a/app/serializers/rest/media_attachment_serializer.rb b/app/serializers/rest/media_attachment_serializer.rb
index 1b3498ea4..cc10e3001 100644
--- a/app/serializers/rest/media_attachment_serializer.rb
+++ b/app/serializers/rest/media_attachment_serializer.rb
@@ -12,7 +12,9 @@ class REST::MediaAttachmentSerializer < ActiveModel::Serializer
end
def url
- if object.needs_redownload?
+ if object.not_processed?
+ nil
+ elsif object.needs_redownload?
media_proxy_url(object.id, :original)
else
full_asset_url(object.file.url(:original))
diff --git a/app/serializers/rss/account_serializer.rb b/app/serializers/rss/account_serializer.rb
index ee972ff96..81e24af0d 100644
--- a/app/serializers/rss/account_serializer.rb
+++ b/app/serializers/rss/account_serializer.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-class RSS::AccountSerializer
+class RSS::AccountSerializer < RSS::Serializer
include ActionView::Helpers::NumberHelper
include AccountsHelper
include RoutingHelper
@@ -17,18 +17,7 @@ class RSS::AccountSerializer
builder.image(full_asset_url(account.avatar.url(:original))) if account.avatar?
builder.cover(full_asset_url(account.header.url(:original))) if account.header?
- statuses.each do |status|
- builder.item do |item|
- item.title(status.title)
- .link(ActivityPub::TagManager.instance.url_for(status))
- .pub_date(status.created_at)
- .description(status.spoiler_text.presence || Formatter.instance.format(status, inline_poll_options: true).to_str)
-
- status.media_attachments.each do |media|
- item.enclosure(full_asset_url(media.file.url(:original, false)), media.file.content_type, media.file.size)
- end
- end
- end
+ render_statuses(builder, statuses)
builder.to_xml
end
diff --git a/app/serializers/rss/tag_serializer.rb b/app/serializers/rss/tag_serializer.rb
index ea26189a2..e549ac367 100644
--- a/app/serializers/rss/tag_serializer.rb
+++ b/app/serializers/rss/tag_serializer.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-class RSS::TagSerializer
+class RSS::TagSerializer < RSS::Serializer
include ActionView::Helpers::NumberHelper
include ActionView::Helpers::SanitizeHelper
include RoutingHelper
@@ -14,18 +14,7 @@ class RSS::TagSerializer
.logo(full_pack_url('media/images/logo.svg'))
.accent_color('2b90d9')
- statuses.each do |status|
- builder.item do |item|
- item.title(status.title)
- .link(ActivityPub::TagManager.instance.url_for(status))
- .pub_date(status.created_at)
- .description(status.spoiler_text.presence || Formatter.instance.format(status).to_str)
-
- status.media_attachments.each do |media|
- item.enclosure(full_asset_url(media.file.url(:original, false)), media.file.content_type, media.file.size)
- end
- end
- end
+ render_statuses(builder, statuses)
builder.to_xml
end
diff --git a/app/services/account_search_service.rb b/app/services/account_search_service.rb
index d217dabb3..493813aab 100644
--- a/app/services/account_search_service.rb
+++ b/app/services/account_search_service.rb
@@ -171,7 +171,7 @@ class AccountSearchService < BaseService
end
def username_complete?
- query.include?('@') && "@#{query}" =~ Account::MENTION_RE
+ query.include?('@') && "@#{query}" =~ /\A#{Account::MENTION_RE}\Z/
end
def likely_acct?
diff --git a/app/services/activitypub/fetch_remote_account_service.rb b/app/services/activitypub/fetch_remote_account_service.rb
index d65c8f951..83fbf6d07 100644
--- a/app/services/activitypub/fetch_remote_account_service.rb
+++ b/app/services/activitypub/fetch_remote_account_service.rb
@@ -3,6 +3,7 @@
class ActivityPub::FetchRemoteAccountService < BaseService
include JsonLdHelper
include DomainControlHelper
+ include WebfingerHelper
SUPPORTED_TYPES = %w(Application Group Organization Person Service).freeze
@@ -35,12 +36,12 @@ class ActivityPub::FetchRemoteAccountService < BaseService
private
def verified_webfinger?
- webfinger = Goldfinger.finger("acct:#{@username}@#{@domain}")
+ webfinger = webfinger!("acct:#{@username}@#{@domain}")
confirmed_username, confirmed_domain = split_acct(webfinger.subject)
return webfinger.link('self')&.href == @uri if @username.casecmp(confirmed_username).zero? && @domain.casecmp(confirmed_domain).zero?
- webfinger = Goldfinger.finger("acct:#{confirmed_username}@#{confirmed_domain}")
+ webfinger = webfinger!("acct:#{confirmed_username}@#{confirmed_domain}")
@username, @domain = split_acct(webfinger.subject)
self_reference = webfinger.link('self')
diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb
index 1c6ce6255..7e003815d 100644
--- a/app/services/activitypub/process_account_service.rb
+++ b/app/services/activitypub/process_account_service.rb
@@ -96,6 +96,7 @@ class ActivityPub::ProcessAccountService < BaseService
@account.statuses_count = outbox_total_items if outbox_total_items.present?
@account.following_count = following_total_items if following_total_items.present?
@account.followers_count = followers_total_items if followers_total_items.present?
+ @account.hide_collections = following_private? || followers_private?
@account.moved_to_account = @json['movedTo'].present? ? moved_account : nil
end
@@ -168,26 +169,36 @@ class ActivityPub::ProcessAccountService < BaseService
end
def outbox_total_items
- collection_total_items('outbox')
+ collection_info('outbox').first
end
def following_total_items
- collection_total_items('following')
+ collection_info('following').first
end
def followers_total_items
- collection_total_items('followers')
+ collection_info('followers').first
end
- def collection_total_items(type)
- return if @json[type].blank?
+ def following_private?
+ !collection_info('following').last
+ end
+
+ def followers_private?
+ !collection_info('followers').last
+ end
+
+ def collection_info(type)
+ return [nil, nil] if @json[type].blank?
return @collections[type] if @collections.key?(type)
collection = fetch_resource_without_id_validation(@json[type])
- @collections[type] = collection.is_a?(Hash) && collection['totalItems'].present? && collection['totalItems'].is_a?(Numeric) ? collection['totalItems'] : nil
+ total_items = collection.is_a?(Hash) && collection['totalItems'].present? && collection['totalItems'].is_a?(Numeric) ? collection['totalItems'] : nil
+ has_first_page = collection.is_a?(Hash) && collection['first'].present?
+ @collections[type] = [total_items, has_first_page]
rescue HTTP::Error, OpenSSL::SSL::SSLError
- @collections[type] = nil
+ @collections[type] = [nil, nil]
end
def moved_account
diff --git a/app/services/batched_remove_status_service.rb b/app/services/batched_remove_status_service.rb
index 3638134be..2295a01dc 100644
--- a/app/services/batched_remove_status_service.rb
+++ b/app/services/batched_remove_status_service.rb
@@ -72,11 +72,18 @@ class BatchedRemoveStatusService < BaseService
redis.pipelined do
redis.publish('timeline:public', payload)
- redis.publish('timeline:public:local', payload) if status.local?
-
+ if status.local?
+ redis.publish('timeline:public:local', payload)
+ else
+ redis.publish('timeline:public:remote', payload)
+ end
if status.media_attachments.any?
redis.publish('timeline:public:media', payload)
- redis.publish('timeline:public:local:media', payload) if status.local?
+ if status.local?
+ redis.publish('timeline:public:local:media', payload)
+ else
+ redis.publish('timeline:public:remote:media', payload)
+ end
end
@tags[status.id].each do |hashtag|
diff --git a/app/services/fan_out_on_write_service.rb b/app/services/fan_out_on_write_service.rb
index 95336ef45..276eac0c1 100644
--- a/app/services/fan_out_on_write_service.rb
+++ b/app/services/fan_out_on_write_service.rb
@@ -81,14 +81,22 @@ class FanOutOnWriteService < BaseService
Rails.logger.debug "Delivering status #{status.id} to public timeline"
Redis.current.publish('timeline:public', @payload)
- Redis.current.publish('timeline:public:local', @payload) if status.local?
+ if status.local?
+ Redis.current.publish('timeline:public:local', @payload)
+ else
+ Redis.current.publish('timeline:public:remote', @payload)
+ end
end
def deliver_to_media(status)
Rails.logger.debug "Delivering status #{status.id} to media timeline"
Redis.current.publish('timeline:public:media', @payload)
- Redis.current.publish('timeline:public:local:media', @payload) if status.local?
+ if status.local?
+ Redis.current.publish('timeline:public:local:media', @payload)
+ else
+ Redis.current.publish('timeline:public:remote:media', @payload)
+ end
end
def deliver_to_own_conversation(status)
diff --git a/app/services/fetch_resource_service.rb b/app/services/fetch_resource_service.rb
index abe7766d4..6c0093cd4 100644
--- a/app/services/fetch_resource_service.rb
+++ b/app/services/fetch_resource_service.rb
@@ -5,6 +5,8 @@ class FetchResourceService < BaseService
ACCEPT_HEADER = 'application/activity+json, application/ld+json; profile="https://www.w3.org/ns/activitystreams", text/html;q=0.1'
+ attr_reader :response_code
+
def call(url)
return if url.blank?
@@ -23,10 +25,22 @@ class FetchResourceService < BaseService
end
def perform_request(&block)
- Request.new(:get, @url).add_headers('Accept' => ACCEPT_HEADER).on_behalf_of(Account.representative).perform(&block)
+ Request.new(:get, @url).tap do |request|
+ request.add_headers('Accept' => ACCEPT_HEADER)
+
+ # In a real setting we want to sign all outgoing requests,
+ # in case the remote server has secure mode enabled and requires
+ # authentication on all resources. However, during development,
+ # sending request signatures with an inaccessible host is useless
+ # and prevents even public resources from being fetched, so
+ # don't do it
+
+ request.on_behalf_of(Account.representative) unless Rails.env.development?
+ end.perform(&block)
end
def process_response(response, terminal = false)
+ @response_code = response.code
return nil if response.code != 200
if ['application/activity+json', 'application/ld+json'].include?(response.mime_type)
diff --git a/app/services/follow_service.rb b/app/services/follow_service.rb
index 4d19002c4..311ae7fa6 100644
--- a/app/services/follow_service.rb
+++ b/app/services/follow_service.rb
@@ -7,54 +7,68 @@ class FollowService < BaseService
# Follow a remote user, notify remote user about the follow
# @param [Account] source_account From which to follow
# @param [String, Account] uri User URI to follow in the form of username@domain (or account record)
- # @param [true, false, nil] reblogs Whether or not to show reblogs, defaults to true
- def call(source_account, target_account, reblogs: nil, bypass_locked: false)
- reblogs = true if reblogs.nil?
- target_account = ResolveAccountService.new.call(target_account, skip_webfinger: true)
+ # @param [Hash] options
+ # @option [Boolean] :reblogs Whether or not to show reblogs, defaults to true
+ # @option [Boolean] :bypass_locked
+ # @option [Boolean] :with_rate_limit
+ def call(source_account, target_account, options = {})
+ @source_account = source_account
+ @target_account = ResolveAccountService.new.call(target_account, skip_webfinger: true)
+ @options = { reblogs: true, bypass_locked: false, with_rate_limit: false }.merge(options)
- raise ActiveRecord::RecordNotFound if target_account.nil? || target_account.id == source_account.id || target_account.suspended?
- raise Mastodon::NotPermittedError if target_account.blocking?(source_account) || source_account.blocking?(target_account) || target_account.moved? || (!target_account.local? && target_account.ostatus?) || source_account.domain_blocking?(target_account.domain)
+ raise ActiveRecord::RecordNotFound if following_not_possible?
+ raise Mastodon::NotPermittedError if following_not_allowed?
- if source_account.following?(target_account)
- # We're already following this account, but we'll call follow! again to
- # make sure the reblogs status is set correctly.
- return source_account.follow!(target_account, reblogs: reblogs)
- elsif source_account.requested?(target_account)
- # This isn't managed by a method in AccountInteractions, so we modify it
- # ourselves if necessary.
- req = source_account.follow_requests.find_by(target_account: target_account)
- req.update!(show_reblogs: reblogs)
- return req
+ if @source_account.following?(@target_account)
+ return change_follow_options!
+ elsif @source_account.requested?(@target_account)
+ return change_follow_request_options!
end
ActivityTracker.increment('activity:interactions')
- if (target_account.locked? && !bypass_locked) || source_account.silenced? || target_account.activitypub?
- request_follow(source_account, target_account, reblogs: reblogs)
- elsif target_account.local?
- direct_follow(source_account, target_account, reblogs: reblogs)
+ if (@target_account.locked? && !@options[:bypass_locked]) || @source_account.silenced? || @target_account.activitypub?
+ request_follow!
+ elsif @target_account.local?
+ direct_follow!
end
end
private
- def request_follow(source_account, target_account, reblogs: true)
- follow_request = FollowRequest.create!(account: source_account, target_account: target_account, show_reblogs: reblogs)
+ def following_not_possible?
+ @target_account.nil? || @target_account.id == @source_account.id || @target_account.suspended?
+ end
- if target_account.local?
- LocalNotificationWorker.perform_async(target_account.id, follow_request.id, follow_request.class.name)
- elsif target_account.activitypub?
- ActivityPub::DeliveryWorker.perform_async(build_json(follow_request), source_account.id, target_account.inbox_url)
+ def following_not_allowed?
+ @target_account.blocking?(@source_account) || @source_account.blocking?(@target_account) || @target_account.moved? || (!@target_account.local? && @target_account.ostatus?) || @source_account.domain_blocking?(@target_account.domain)
+ end
+
+ def change_follow_options!
+ @source_account.follow!(@target_account, reblogs: @options[:reblogs])
+ end
+
+ def change_follow_request_options!
+ @source_account.request_follow!(@target_account, reblogs: @options[:reblogs])
+ end
+
+ def request_follow!
+ follow_request = @source_account.request_follow!(@target_account, reblogs: @options[:reblogs], rate_limit: @options[:with_rate_limit])
+
+ if @target_account.local?
+ LocalNotificationWorker.perform_async(@target_account.id, follow_request.id, follow_request.class.name)
+ elsif @target_account.activitypub?
+ ActivityPub::DeliveryWorker.perform_async(build_json(follow_request), @source_account.id, @target_account.inbox_url)
end
follow_request
end
- def direct_follow(source_account, target_account, reblogs: true)
- follow = source_account.follow!(target_account, reblogs: reblogs)
+ def direct_follow!
+ follow = @source_account.follow!(@target_account, reblogs: @options[:reblogs], rate_limit: @options[:with_rate_limit])
- LocalNotificationWorker.perform_async(target_account.id, follow.id, follow.class.name)
- MergeWorker.perform_async(target_account.id, source_account.id)
+ LocalNotificationWorker.perform_async(@target_account.id, follow.id, follow.class.name)
+ MergeWorker.perform_async(@target_account.id, @source_account.id)
follow
end
diff --git a/app/services/import_service.rb b/app/services/import_service.rb
index 4ee431ea3..c0d741d57 100644
--- a/app/services/import_service.rb
+++ b/app/services/import_service.rb
@@ -64,7 +64,8 @@ class ImportService < BaseService
end
def import_relationships!(action, undo_action, overwrite_scope, limit, extra_fields = {})
- items = @data.take(limit).map { |row| [row['Account address']&.strip, Hash[extra_fields.map { |key, header| [key, row[header]&.strip] }]] }.reject { |(id, _)| id.blank? }
+ local_domain_suffix = "@#{Rails.configuration.x.local_domain}"
+ items = @data.take(limit).map { |row| [row['Account address']&.strip&.delete_suffix(local_domain_suffix), Hash[extra_fields.map { |key, header| [key, row[header]&.strip] }]] }.reject { |(id, _)| id.blank? }
if @import.overwrite?
presence_hash = items.each_with_object({}) { |(id, extra), mapping| mapping[id] = [true, extra] }
diff --git a/app/services/post_status_service.rb b/app/services/post_status_service.rb
index b59982d84..c810eb331 100644
--- a/app/services/post_status_service.rb
+++ b/app/services/post_status_service.rb
@@ -19,6 +19,7 @@ class PostStatusService < BaseService
# @option [Enumerable] :media_ids Optional array of media IDs to attach
# @option [Doorkeeper::Application] :application
# @option [String] :idempotency Optional idempotency key
+ # @option [Boolean] :with_rate_limit
# @return [Status]
def call(account, options = {})
@account = account
@@ -47,9 +48,10 @@ class PostStatusService < BaseService
private
def preprocess_attributes!
+ @sensitive = (@options[:sensitive].nil? ? @account.user&.setting_default_sensitive : @options[:sensitive]) || @options[:spoiler_text].present?
@text = @options.delete(:spoiler_text) if @text.blank? && @options[:spoiler_text].present?
@visibility = @options[:visibility] || @account.user&.setting_default_privacy
- @visibility = :unlisted if @visibility == :public && @account.silenced?
+ @visibility = :unlisted if @visibility&.to_sym == :public && @account.silenced?
@scheduled_at = @options[:scheduled_at]&.to_datetime
@scheduled_at = nil if scheduled_in_the_past?
rescue ArgumentError
@@ -108,6 +110,7 @@ class PostStatusService < BaseService
@media = @account.media_attachments.where(status_id: nil).where(id: @options[:media_ids].take(4).map(&:to_i))
raise Mastodon::ValidationError, I18n.t('media_attachments.validations.images_and_video') if @media.size > 1 && @media.find(&:audio_or_video?)
+ raise Mastodon::ValidationError, I18n.t('media_attachments.validations.not_ready') if @media.any?(&:not_processed?)
end
def language_from_option(str)
@@ -163,12 +166,13 @@ class PostStatusService < BaseService
media_attachments: @media || [],
thread: @in_reply_to,
poll_attributes: poll_attributes,
- sensitive: (@options[:sensitive].nil? ? @account.user&.setting_default_sensitive : @options[:sensitive]) || @options[:spoiler_text].present?,
+ sensitive: @sensitive,
spoiler_text: @options[:spoiler_text] || '',
visibility: @visibility,
language: language_from_option(@options[:language]) || @account.user&.setting_default_language&.presence || LanguageDetector.instance.detect(@text, @account),
application: @options[:application],
local_only: local_only_option(@options[:local_only], @in_reply_to, @account.user&.setting_default_federation),
+ rate_limit: @options[:with_rate_limit],
}.compact
end
@@ -188,10 +192,11 @@ class PostStatusService < BaseService
def scheduled_options
@options.tap do |options_hash|
- options_hash[:in_reply_to_id] = options_hash.delete(:thread)&.id
- options_hash[:application_id] = options_hash.delete(:application)&.id
- options_hash[:scheduled_at] = nil
- options_hash[:idempotency] = nil
+ options_hash[:in_reply_to_id] = options_hash.delete(:thread)&.id
+ options_hash[:application_id] = options_hash.delete(:application)&.id
+ options_hash[:scheduled_at] = nil
+ options_hash[:idempotency] = nil
+ options_hash[:with_rate_limit] = false
end
end
end
diff --git a/app/services/reblog_service.rb b/app/services/reblog_service.rb
index 9c409da80..b02808d39 100644
--- a/app/services/reblog_service.rb
+++ b/app/services/reblog_service.rb
@@ -8,6 +8,8 @@ class ReblogService < BaseService
# @param [Account] account Account to reblog from
# @param [Status] reblogged_status Status to be reblogged
# @param [Hash] options
+ # @option [String] :visibility
+ # @option [Boolean] :with_rate_limit
# @return [Status]
def call(account, reblogged_status, options = {})
reblogged_status = reblogged_status.reblog if reblogged_status.reblog?
@@ -18,9 +20,15 @@ class ReblogService < BaseService
return reblog unless reblog.nil?
- visibility = options[:visibility] || account.user&.setting_default_privacy
- visibility = reblogged_status.visibility if reblogged_status.hidden?
- reblog = account.statuses.create!(reblog: reblogged_status, text: '', visibility: visibility)
+ visibility = begin
+ if reblogged_status.hidden?
+ reblogged_status.visibility
+ else
+ options[:visibility] || account.user&.setting_default_privacy
+ end
+ end
+
+ reblog = account.statuses.create!(reblog: reblogged_status, text: '', visibility: visibility, rate_limit: options[:with_rate_limit])
DistributionWorker.perform_async(reblog.id)
unless reblogged_status.local_only?
@@ -47,7 +55,9 @@ class ReblogService < BaseService
def bump_potential_friendship(account, reblog)
ActivityTracker.increment('activity:interactions')
+
return if account.following?(reblog.reblog.account_id)
+
PotentialFriendshipTracker.record(account.id, reblog.reblog.account_id, :reblog)
end
diff --git a/app/services/remove_status_service.rb b/app/services/remove_status_service.rb
index f9352ed3d..4f0edc3cf 100644
--- a/app/services/remove_status_service.rb
+++ b/app/services/remove_status_service.rb
@@ -140,14 +140,22 @@ class RemoveStatusService < BaseService
return unless @status.public_visibility?
redis.publish('timeline:public', @payload)
- redis.publish('timeline:public:local', @payload) if @status.local?
+ if @status.local?
+ redis.publish('timeline:public:local', @payload)
+ else
+ redis.publish('timeline:public:remote', @payload)
+ end
end
def remove_from_media
return unless @status.public_visibility?
redis.publish('timeline:public:media', @payload)
- redis.publish('timeline:public:local:media', @payload) if @status.local?
+ if @status.local?
+ redis.publish('timeline:public:local:media', @payload)
+ else
+ redis.publish('timeline:public:remote:media', @payload)
+ end
end
def remove_media
diff --git a/app/services/resolve_account_service.rb b/app/services/resolve_account_service.rb
index 1ad9ed407..17ace100c 100644
--- a/app/services/resolve_account_service.rb
+++ b/app/services/resolve_account_service.rb
@@ -3,6 +3,7 @@
class ResolveAccountService < BaseService
include JsonLdHelper
include DomainControlHelper
+ include WebfingerHelper
class WebfingerRedirectError < StandardError; end
@@ -76,7 +77,7 @@ class ResolveAccountService < BaseService
end
def process_webfinger!(uri, redirected = false)
- @webfinger = Goldfinger.finger("acct:#{uri}")
+ @webfinger = webfinger!("acct:#{uri}")
confirmed_username, confirmed_domain = @webfinger.subject.gsub(/\Aacct:/, '').split('@')
if confirmed_username.casecmp(@username).zero? && confirmed_domain.casecmp(@domain).zero?
diff --git a/app/services/resolve_url_service.rb b/app/services/resolve_url_service.rb
index 1a2b0d60c..78080d878 100644
--- a/app/services/resolve_url_service.rb
+++ b/app/services/resolve_url_service.rb
@@ -12,7 +12,7 @@ class ResolveURLService < BaseService
process_local_url
elsif !fetched_resource.nil?
process_url
- elsif @on_behalf_of.present?
+ else
process_url_from_db
end
end
@@ -30,6 +30,8 @@ class ResolveURLService < BaseService
end
def process_url_from_db
+ return unless @on_behalf_of.present? && [401, 403, 404].include?(fetch_resource_service.response_code)
+
# It may happen that the resource is a private toot, and thus not fetchable,
# but we can return the toot if we already know about it.
status = Status.find_by(uri: @url) || Status.find_by(url: @url)
@@ -40,7 +42,11 @@ class ResolveURLService < BaseService
end
def fetched_resource
- @fetched_resource ||= FetchResourceService.new.call(@url)
+ @fetched_resource ||= fetch_resource_service.call(@url)
+ end
+
+ def fetch_resource_service
+ @_fetch_resource_service ||= FetchResourceService.new
end
def resource_url
diff --git a/app/services/search_service.rb b/app/services/search_service.rb
index 090fd409b..830de4de3 100644
--- a/app/services/search_service.rb
+++ b/app/services/search_service.rb
@@ -10,10 +10,10 @@ class SearchService < BaseService
@resolve = options[:resolve] || false
default_results.tap do |results|
- next if @query.blank?
+ next if @query.blank? || @limit.zero?
if url_query?
- results.merge!(url_resource_results) unless url_resource.nil? || (@options[:type].present? && url_resource_symbol != @options[:type].to_sym)
+ results.merge!(url_resource_results) unless url_resource.nil? || @offset.positive? || (@options[:type].present? && url_resource_symbol != @options[:type].to_sym)
elsif @query.present?
results[:accounts] = perform_accounts_search! if account_searchable?
results[:statuses] = perform_statuses_search! if full_text_searchable?
diff --git a/app/validators/poll_validator.rb b/app/validators/poll_validator.rb
index 9d7321cad..a32727796 100644
--- a/app/validators/poll_validator.rb
+++ b/app/validators/poll_validator.rb
@@ -2,7 +2,7 @@
class PollValidator < ActiveModel::Validator
MAX_OPTIONS = 4
- MAX_OPTION_CHARS = 25
+ MAX_OPTION_CHARS = 50
MAX_EXPIRATION = 1.month.freeze
MIN_EXPIRATION = 5.minutes.freeze
diff --git a/app/views/about/show.html.haml b/app/views/about/show.html.haml
index 3dd8621a5..1f9931c60 100644
--- a/app/views/about/show.html.haml
+++ b/app/views/about/show.html.haml
@@ -27,7 +27,7 @@
.avatar-stack
- @instance_presenter.sample_accounts.each do |account|
- = image_tag current_account&.user&.setting_auto_play_gif ? account.avatar_original_url : account.avatar_static_url, width: 48, height: 48, alt: '', class: 'account__avatar'
+ = image_tag current_account&.user&.setting_auto_play_gif ? account.avatar_original_url : account.avatar_static_url, alt: '', class: 'account__avatar'
- if Setting.timeline_preview
.directory__tag
@@ -75,11 +75,11 @@
.hero-widget__footer__column
%h4= t 'about.server_stats'
- %div{ style: 'display: flex' }
- .hero-widget__counter{ style: 'width: 50%' }
+ .hero-widget__counters__wrapper
+ .hero-widget__counter
%strong= number_to_human @instance_presenter.user_count, strip_insignificant_zeros: true
%span= t 'about.user_count_after', count: @instance_presenter.user_count
- .hero-widget__counter{ style: 'width: 50%' }
+ .hero-widget__counter
%strong= number_to_human @instance_presenter.active_user_count, strip_insignificant_zeros: true
%span
= t 'about.active_count_after'
diff --git a/app/views/accounts/_moved.html.haml b/app/views/accounts/_moved.html.haml
index a82f277b1..4f71b062d 100644
--- a/app/views/accounts/_moved.html.haml
+++ b/app/views/accounts/_moved.html.haml
@@ -9,8 +9,10 @@
= link_to ActivityPub::TagManager.instance.url_for(moved_to_account), class: 'detailed-status__display-name p-author h-card', target: '_blank', rel: 'me noopener noreferrer' do
.detailed-status__display-avatar
.account__avatar-overlay
- .account__avatar-overlay-base{ style: "background-image: url('#{moved_to_account.avatar.url(:original)}')" }
- .account__avatar-overlay-overlay{ style: "background-image: url('#{account.avatar.url(:original)}')" }
+ .account__avatar-overlay-base
+ = image_tag moved_to_account.avatar_static_url
+ .account__avatar-overlay-overlay
+ = image_tag account.avatar_static_url
%span.display-name
%bdi
diff --git a/app/views/admin/account_actions/new.html.haml b/app/views/admin/account_actions/new.html.haml
index 20fbeef33..aa88b1448 100644
--- a/app/views/admin/account_actions/new.html.haml
+++ b/app/views/admin/account_actions/new.html.haml
@@ -21,7 +21,7 @@
- unless @warning_presets.empty?
.fields-group
- = f.input :warning_preset_id, collection: @warning_presets, label_method: :text, wrapper: :with_block_label
+ = f.input :warning_preset_id, collection: @warning_presets, label_method: ->(warning_preset) { [warning_preset.title.presence, truncate(warning_preset.text)].compact.join(' - ') }, wrapper: :with_block_label
.fields-group
= f.input :text, as: :text, wrapper: :with_block_label, hint: t('simple_form.hints.admin_account_action.text_html', path: admin_warning_presets_path)
diff --git a/app/views/admin/accounts/_account.html.haml b/app/views/admin/accounts/_account.html.haml
index b057d3e42..c9bd8c686 100644
--- a/app/views/admin/accounts/_account.html.haml
+++ b/app/views/admin/accounts/_account.html.haml
@@ -2,7 +2,7 @@
%td
= admin_account_link_to(account)
%td
- %div{ style: 'margin: -2px 0' }= account_badge(account, all: true)
+ %div.account-badges= account_badge(account, all: true)
%td
- if account.user_current_sign_in_ip
%samp.ellipsized-ip{ title: account.user_current_sign_in_ip }= account.user_current_sign_in_ip
@@ -11,6 +11,8 @@
%td
- if account.user_current_sign_in_at
%time.time-ago{ datetime: account.user_current_sign_in_at.iso8601, title: l(account.user_current_sign_in_at) }= l account.user_current_sign_in_at
+ - elsif account.last_status_at.present?
+ %time.time-ago{ datetime: account.last_status_at.iso8601, title: l(account.last_status_at) }= l account.last_status_at
- else
\-
%td
diff --git a/app/views/admin/accounts/index.html.haml b/app/views/admin/accounts/index.html.haml
index 3a85324c9..7592161c9 100644
--- a/app/views/admin/accounts/index.html.haml
+++ b/app/views/admin/accounts/index.html.haml
@@ -19,6 +19,12 @@
%ul
%li= filter_link_to t('admin.accounts.moderation.all'), staff: nil
%li= filter_link_to t('admin.accounts.roles.staff'), staff: '1'
+ .filter-subset
+ %strong= t 'generic.order_by'
+ %ul
+ %li= filter_link_to t('relationships.most_recent'), order: nil
+ %li= filter_link_to t('admin.accounts.username'), order: 'alphabetic'
+ %li= filter_link_to t('relationships.last_active'), order: 'active'
= form_tag admin_accounts_url, method: 'GET', class: 'simple_form' do
.fields-group
diff --git a/app/views/admin/accounts/show.html.haml b/app/views/admin/accounts/show.html.haml
index a30b78db2..e6461aad0 100644
--- a/app/views/admin/accounts/show.html.haml
+++ b/app/views/admin/accounts/show.html.haml
@@ -31,7 +31,7 @@
%div
.account__header__content.emojify= Formatter.instance.simplified_format(account, custom_emojify: true)
-.dashboard__counters{ style: 'margin-top: 10px' }
+.dashboard__counters.admin-account-counters
%div
= link_to admin_account_statuses_path(@account.id) do
.dashboard__counters__num= number_with_delimiter @account.statuses_count
@@ -53,7 +53,7 @@
.dashboard__counters__num= number_with_delimiter @account.targeted_reports.count
.dashboard__counters__label= t '.targeted_reports'
%div
- %div
+ = link_to admin_action_logs_path(target_account_id: @account.id) do
.dashboard__counters__text
- if @account.local? && @account.user.nil?
%span.neutral= t('admin.accounts.deleted')
@@ -96,10 +96,17 @@
= table_link_to 'angle-double-down', t('admin.accounts.demote'), demote_admin_account_role_path(@account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:demote, @account.user)
%tr
- %th= t('admin.accounts.email')
- %td= @account.user_email
+ %th{ rowspan: can?(:create, :email_domain_block) ? 3 : 2 }= t('admin.accounts.email')
+ %td{ rowspan: can?(:create, :email_domain_block) ? 3 : 2 }= @account.user_email
%td= table_link_to 'edit', t('admin.accounts.change_email.label'), admin_account_change_email_path(@account.id) if can?(:change_email, @account.user)
+ %tr
+ %td= table_link_to 'search', t('admin.accounts.search_same_email_domain'), admin_accounts_path(email: "%@#{@account.user_email.split('@').last}")
+
+ - if can?(:create, :email_domain_block)
+ %tr
+ %td= table_link_to 'ban', t('admin.accounts.add_email_domain_block'), new_admin_email_domain_block_path(_domain: @account.user_email.split('@').last)
+
- if @account.user_unconfirmed_email.present?
%tr
%th= t('admin.accounts.unconfirmed_email')
@@ -164,25 +171,15 @@
%th= t('admin.accounts.inbox_url')
%td
= @account.inbox_url
- = fa_icon DeliveryFailureTracker.unavailable?(@account.inbox_url) ? 'times' : 'check'
+ = fa_icon DeliveryFailureTracker.available?(@account.inbox_url) ? 'check' : 'times'
%tr
%th= t('admin.accounts.shared_inbox_url')
%td
= @account.shared_inbox_url
- = fa_icon DeliveryFailureTracker.unavailable?(@account.shared_inbox_url) ? 'times' : 'check'
+ = fa_icon DeliveryFailureTracker.available?(@account.shared_inbox_url) ? 'check': 'times'
- %div{ style: 'overflow: hidden' }
- %div{ style: 'float: right' }
- - if @account.local?
- = link_to t('admin.accounts.reset_password'), admin_account_reset_path(@account.id), method: :create, class: 'button' if can?(:reset_password, @account.user)
- - if @account.user&.otp_required_for_login?
- = link_to t('admin.accounts.disable_two_factor_authentication'), admin_user_two_factor_authentication_path(@account.user.id), method: :delete, class: 'button' if can?(:disable_2fa, @account.user)
- - if !@account.memorial? && @account.user_approved?
- = link_to t('admin.accounts.memorialize'), memorialize_admin_account_path(@account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') }, class: 'button button--destructive' if can?(:memorialize, @account)
- - else
- = link_to t('admin.accounts.redownload'), redownload_admin_account_path(@account.id), method: :post, class: 'button' if can?(:redownload, @account)
-
- %div{ style: 'float: left' }
+ %div.action-buttons
+ %div
- if @account.local? && @account.user_approved?
= link_to t('admin.accounts.warn'), new_admin_account_action_path(@account.id, type: 'none'), class: 'button' if can?(:warn, @account)
- if @account.silenced?
@@ -204,11 +201,21 @@
= link_to t('admin.accounts.perform_full_suspension'), new_admin_account_action_path(@account.id, type: 'suspend'), class: 'button button--destructive' if can?(:suspend, @account)
- unless @account.local?
- - if DomainBlock.where(domain: @account.domain).exists?
+ - if DomainBlock.rule_for(@account.domain)
= link_to t('admin.domain_blocks.view'), admin_instance_path(@account.domain), class: 'button'
- else
= link_to t('admin.domain_blocks.add_new'), new_admin_domain_block_path(_domain: @account.domain), class: 'button button--destructive'
+ %div
+ - if @account.local?
+ = link_to t('admin.accounts.reset_password'), admin_account_reset_path(@account.id), method: :create, class: 'button' if can?(:reset_password, @account.user)
+ - if @account.user&.otp_required_for_login?
+ = link_to t('admin.accounts.disable_two_factor_authentication'), admin_user_two_factor_authentication_path(@account.user.id), method: :delete, class: 'button' if can?(:disable_2fa, @account.user)
+ - if !@account.memorial? && @account.user_approved?
+ = link_to t('admin.accounts.memorialize'), memorialize_admin_account_path(@account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') }, class: 'button button--destructive' if can?(:memorialize, @account)
+ - else
+ = link_to t('admin.accounts.redownload'), redownload_admin_account_path(@account.id), method: :post, class: 'button' if can?(:redownload, @account)
+
%hr.spacer/
- unless @warnings.empty?
diff --git a/app/views/admin/action_logs/_action_log.html.haml b/app/views/admin/action_logs/_action_log.html.haml
index a545e189e..59905f341 100644
--- a/app/views/admin/action_logs/_action_log.html.haml
+++ b/app/views/admin/action_logs/_action_log.html.haml
@@ -7,9 +7,3 @@
= t("admin.action_logs.actions.#{action_log.action}_#{action_log.target_type.underscore}", name: content_tag(:span, action_log.account.username, class: 'username'), target: content_tag(:span, log_target(action_log), class: 'target')).html_safe
.log-entry__timestamp
%time.formatted{ datetime: action_log.created_at.iso8601 }
- .spacer
- .log-entry__icon
- = fa_icon icon_for_log(action_log)
- .log-entry__icon__overlay{ class: class_for_log_icon(action_log) }
- .log-entry__extras
- = log_extra_attributes relevant_log_changes(action_log)
diff --git a/app/views/admin/action_logs/index.html.haml b/app/views/admin/action_logs/index.html.haml
index a4d3871a9..99f756762 100644
--- a/app/views/admin/action_logs/index.html.haml
+++ b/app/views/admin/action_logs/index.html.haml
@@ -1,6 +1,28 @@
- content_for :page_title do
= t('admin.action_logs.title')
-= render @action_logs
+- content_for :header_tags do
+ = javascript_pack_tag 'admin', integrity: true, async: true, crossorigin: 'anonymous'
+
+= form_tag admin_action_logs_url, method: 'GET', class: 'simple_form' do
+ = hidden_field_tag :target_account_id, params[:target_account_id] if params[:target_account_id].present?
+
+ .filters
+ .filter-subset.filter-subset--with-select
+ %strong= t('admin.action_logs.filter_by_user')
+ .input.select.optional
+ = select_tag :account_id, options_from_collection_for_select(Account.joins(:user).merge(User.staff), :id, :username, params[:account_id]), prompt: I18n.t('admin.accounts.moderation.all')
+
+ .filter-subset.filter-subset--with-select
+ %strong= t('admin.action_logs.filter_by_action')
+ .input.select.optional
+ = select_tag :action_type, options_for_select(Admin::ActionLogFilter::ACTION_TYPE_MAP.keys.map { |key| [I18n.t("admin.action_logs.action_types.#{key}"), key]}, params[:action_type]), prompt: I18n.t('admin.accounts.moderation.all')
+
+- if @action_logs.empty?
+ %div.muted-hint.center-text
+ = t 'admin.action_logs.empty'
+- else
+ .announcements-list
+ = render @action_logs
= paginate @action_logs
diff --git a/app/views/admin/email_domain_blocks/_email_domain_block.html.haml b/app/views/admin/email_domain_blocks/_email_domain_block.html.haml
index bf66c9001..41ab8c171 100644
--- a/app/views/admin/email_domain_blocks/_email_domain_block.html.haml
+++ b/app/views/admin/email_domain_blocks/_email_domain_block.html.haml
@@ -3,3 +3,13 @@
%samp= email_domain_block.domain
%td
= table_link_to 'trash', t('admin.email_domain_blocks.delete'), admin_email_domain_block_path(email_domain_block), method: :delete
+
+- email_domain_block.children.each do |child_email_domain_block|
+ %tr
+ %td
+ %samp= child_email_domain_block.domain
+ %span.muted-hint
+ = surround '(', ')' do
+ = t('admin.email_domain_blocks.from_html', domain: content_tag(:samp, email_domain_block.domain))
+ %td
+ = table_link_to 'trash', t('admin.email_domain_blocks.delete'), admin_email_domain_block_path(child_email_domain_block), method: :delete
diff --git a/app/views/admin/email_domain_blocks/new.html.haml b/app/views/admin/email_domain_blocks/new.html.haml
index f372fa512..4a346f240 100644
--- a/app/views/admin/email_domain_blocks/new.html.haml
+++ b/app/views/admin/email_domain_blocks/new.html.haml
@@ -5,7 +5,10 @@
= render 'shared/error_messages', object: @email_domain_block
.fields-group
- = f.input :domain, wrapper: :with_label, label: t('admin.email_domain_blocks.domain')
+ = f.input :domain, wrapper: :with_block_label, label: t('admin.email_domain_blocks.domain')
+
+ .fields-group
+ = f.input :with_dns_records, as: :boolean, wrapper: :with_label
.actions
= f.button :button, t('.create'), type: :submit
diff --git a/app/views/admin/instances/index.html.haml b/app/views/admin/instances/index.html.haml
index 0b299acc5..bd67eb4fc 100644
--- a/app/views/admin/instances/index.html.haml
+++ b/app/views/admin/instances/index.html.haml
@@ -10,7 +10,7 @@
- unless whitelist_mode?
%li= filter_link_to t('admin.instances.moderation.limited'), limited: '1'
- %div{ style: 'flex: 1 1 auto; text-align: right' }
+ %div.special-action-button
- if whitelist_mode?
= link_to t('admin.domain_allows.add_new'), new_admin_domain_allow_path, class: 'button'
- else
diff --git a/app/views/admin/instances/show.html.haml b/app/views/admin/instances/show.html.haml
index 49a666a5a..92e14c0df 100644
--- a/app/views/admin/instances/show.html.haml
+++ b/app/views/admin/instances/show.html.haml
@@ -45,11 +45,11 @@
%hr.spacer/
-%div{ style: 'overflow: hidden' }
- %div{ style: 'float: left' }
+%div.action-buttons
+ %div
= link_to t('admin.accounts.title'), admin_accounts_path(remote: '1', by_domain: @instance.domain), class: 'button'
- %div{ style: 'float: right' }
+ %div
- if @domain_allow
= link_to t('admin.domain_allows.undo'), admin_domain_allow_path(@domain_allow), class: 'button button--destructive', data: { confirm: t('admin.accounts.are_you_sure'), method: :delete }
- elsif @domain_block
diff --git a/app/views/admin/pending_accounts/index.html.haml b/app/views/admin/pending_accounts/index.html.haml
index 7ce5b8213..79ae4a320 100644
--- a/app/views/admin/pending_accounts/index.html.haml
+++ b/app/views/admin/pending_accounts/index.html.haml
@@ -25,9 +25,9 @@
%hr.spacer/
-%div{ style: 'overflow: hidden' }
- %div{ style: 'float: right' }
- = link_to t('admin.accounts.reject_all'), reject_all_admin_pending_accounts_path, method: :post, data: { confirm: t('admin.accounts.are_you_sure') }, class: 'button button--destructive'
-
+%div.action-buttons
%div
= link_to t('admin.accounts.approve_all'), approve_all_admin_pending_accounts_path, method: :post, data: { confirm: t('admin.accounts.are_you_sure') }, class: 'button'
+
+ %div
+ = link_to t('admin.accounts.reject_all'), reject_all_admin_pending_accounts_path, method: :post, data: { confirm: t('admin.accounts.are_you_sure') }, class: 'button button--destructive'
diff --git a/app/views/admin/relationships/index.html.haml b/app/views/admin/relationships/index.html.haml
index 3afaff615..907477f24 100644
--- a/app/views/admin/relationships/index.html.haml
+++ b/app/views/admin/relationships/index.html.haml
@@ -17,7 +17,7 @@
%li= filter_link_to t('admin.accounts.location.local'), location: 'local'
%li= filter_link_to t('admin.accounts.location.remote'), location: 'remote'
- .back-link{ style: 'flex: 1 1 auto; text-align: right' }
+ .back-link
= link_to admin_account_path(@account.id) do
= fa_icon 'chevron-left fw'
= t('admin.statuses.back_to_account')
diff --git a/app/views/admin/reports/index.html.haml b/app/views/admin/reports/index.html.haml
index 0263b80fb..2149fcc46 100644
--- a/app/views/admin/reports/index.html.haml
+++ b/app/views/admin/reports/index.html.haml
@@ -25,7 +25,7 @@
- target_account = reports.first.target_account
.report-card
.report-card__profile
- = account_link_to target_account, '', size: 36, path: admin_account_path(target_account.id)
+ = account_link_to target_account, '', path: admin_account_path(target_account.id)
.report-card__profile__stats
= link_to t('admin.reports.account.notes', count: target_account.targeted_moderation_notes.count), admin_account_path(target_account.id)
%br/
diff --git a/app/views/admin/reports/show.html.haml b/app/views/admin/reports/show.html.haml
index af8fce2a7..0d563eea7 100644
--- a/app/views/admin/reports/show.html.haml
+++ b/app/views/admin/reports/show.html.haml
@@ -68,9 +68,11 @@
%hr.spacer
-%div{ style: 'overflow: hidden; margin-bottom: 20px; clear: both' }
+%div.action-buttons
+ %div
+
- if @report.unresolved?
- %div{ style: 'float: right' }
+ %div
- if @report.target_account.local?
= link_to t('admin.accounts.warn'), new_admin_account_action_path(@report.target_account_id, type: 'none', report_id: @report.id), class: 'button'
= link_to t('admin.accounts.disable'), new_admin_account_action_path(@report.target_account_id, type: 'disable', report_id: @report.id), class: 'button button--destructive'
diff --git a/app/views/admin/settings/edit.html.haml b/app/views/admin/settings/edit.html.haml
index d7b493051..f37775aa9 100644
--- a/app/views/admin/settings/edit.html.haml
+++ b/app/views/admin/settings/edit.html.haml
@@ -4,7 +4,10 @@
- content_for :page_title do
= t('admin.settings.title')
-= simple_form_for @admin_settings, url: admin_settings_path, html: { method: :patch } do |f|
+ - content_for :heading_actions do
+ = button_tag t('generic.save_changes'), class: 'button', form: 'edit_admin'
+
+= simple_form_for @admin_settings, url: admin_settings_path, html: { method: :patch, id: 'edit_admin' } do |f|
= render 'shared/error_messages', object: @admin_settings
.fields-group
@@ -30,13 +33,13 @@
.fields-row
.fields-row__column.fields-row__column-6.fields-group
- = f.input :thumbnail, as: :file, wrapper: :with_block_label, label: t('admin.settings.thumbnail.title'), hint: t('admin.settings.thumbnail.desc_html')
+ = f.input :thumbnail, as: :file, wrapper: :with_block_label, label: t('admin.settings.thumbnail.title'), hint: site_upload_delete_hint(t('admin.settings.thumbnail.desc_html'), :thumbnail)
.fields-row__column.fields-row__column-6.fields-group
- = f.input :hero, as: :file, wrapper: :with_block_label, label: t('admin.settings.hero.title'), hint: t('admin.settings.hero.desc_html')
+ = f.input :hero, as: :file, wrapper: :with_block_label, label: t('admin.settings.hero.title'), hint: site_upload_delete_hint(t('admin.settings.hero.desc_html'), :hero)
.fields-row
.fields-row__column.fields-row__column-6.fields-group
- = f.input :mascot, as: :file, wrapper: :with_block_label, label: t('admin.settings.mascot.title'), hint: t('admin.settings.mascot.desc_html')
+ = f.input :mascot, as: :file, wrapper: :with_block_label, label: t('admin.settings.mascot.title'), hint: site_upload_delete_hint(t('admin.settings.mascot.desc_html'), :mascot)
%hr.spacer/
diff --git a/app/views/admin/statuses/index.html.haml b/app/views/admin/statuses/index.html.haml
index dd3c79815..f1169a2fd 100644
--- a/app/views/admin/statuses/index.html.haml
+++ b/app/views/admin/statuses/index.html.haml
@@ -12,7 +12,7 @@
%ul
%li= link_to t('admin.statuses.no_media'), admin_account_statuses_path(@account.id, current_params.merge(media: nil)), class: !params[:media] && 'selected'
%li= link_to t('admin.statuses.with_media'), admin_account_statuses_path(@account.id, current_params.merge(media: true)), class: params[:media] && 'selected'
- .back-link{ style: 'flex: 1 1 auto; text-align: right' }
+ .back-link
= link_to admin_account_path(@account.id) do
= fa_icon 'chevron-left fw'
= t('admin.statuses.back_to_account')
diff --git a/app/views/admin/statuses/show.html.haml b/app/views/admin/statuses/show.html.haml
index a7a392272..e2470198d 100644
--- a/app/views/admin/statuses/show.html.haml
+++ b/app/views/admin/statuses/show.html.haml
@@ -4,7 +4,7 @@
= "@#{@account.acct}"
.filters
- .back-link{ style: 'flex: 1 1 auto; text-align: right' }
+ .back-link
= link_to admin_account_path(@account.id) do
%i.fa.fa-chevron-left.fa-fw
= t('admin.statuses.back_to_account')
diff --git a/app/views/admin/tags/index.html.haml b/app/views/admin/tags/index.html.haml
index 1ff538ba3..2acdaa8fa 100644
--- a/app/views/admin/tags/index.html.haml
+++ b/app/views/admin/tags/index.html.haml
@@ -71,9 +71,9 @@
- if params[:pending_review] == '1' || params[:unreviewed] == '1'
%hr.spacer/
- %div{ style: 'overflow: hidden' }
- %div{ style: 'float: right' }
- = link_to t('admin.accounts.reject_all'), reject_all_admin_tags_path, method: :post, data: { confirm: t('admin.accounts.are_you_sure') }, class: 'button button--destructive'
-
+ %div.action-buttons
%div
= link_to t('admin.accounts.approve_all'), approve_all_admin_tags_path, method: :post, data: { confirm: t('admin.accounts.are_you_sure') }, class: 'button'
+
+ %div
+ = link_to t('admin.accounts.reject_all'), reject_all_admin_tags_path, method: :post, data: { confirm: t('admin.accounts.are_you_sure') }, class: 'button button--destructive'
diff --git a/app/views/admin/warning_presets/_warning_preset.html.haml b/app/views/admin/warning_presets/_warning_preset.html.haml
new file mode 100644
index 000000000..a58199c80
--- /dev/null
+++ b/app/views/admin/warning_presets/_warning_preset.html.haml
@@ -0,0 +1,10 @@
+.announcements-list__item
+ = link_to edit_admin_warning_preset_path(warning_preset), class: 'announcements-list__item__title' do
+ = warning_preset.title.presence || truncate(warning_preset.text)
+
+ .announcements-list__item__action-bar
+ .announcements-list__item__meta
+ = truncate(warning_preset.text)
+
+ %div
+ = table_link_to 'trash', t('admin.warning_presets.delete'), admin_warning_preset_path(warning_preset), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:destroy, warning_preset)
diff --git a/app/views/admin/warning_presets/edit.html.haml b/app/views/admin/warning_presets/edit.html.haml
index 9522746cd..b5c5107ef 100644
--- a/app/views/admin/warning_presets/edit.html.haml
+++ b/app/views/admin/warning_presets/edit.html.haml
@@ -4,6 +4,9 @@
= simple_form_for @warning_preset, url: admin_warning_preset_path(@warning_preset) do |f|
= render 'shared/error_messages', object: @warning_preset
+ .fields-group
+ = f.input :title, wrapper: :with_block_label
+
.fields-group
= f.input :text, wrapper: :with_block_label
diff --git a/app/views/admin/warning_presets/index.html.haml b/app/views/admin/warning_presets/index.html.haml
index 45913ef73..dbc23fa30 100644
--- a/app/views/admin/warning_presets/index.html.haml
+++ b/app/views/admin/warning_presets/index.html.haml
@@ -5,6 +5,9 @@
= simple_form_for @warning_preset, url: admin_warning_presets_path do |f|
= render 'shared/error_messages', object: @warning_preset
+ .fields-group
+ = f.input :title, wrapper: :with_block_label
+
.fields-group
= f.input :text, wrapper: :with_block_label
@@ -13,18 +16,9 @@
%hr.spacer/
-- unless @warning_presets.empty?
- .table-wrapper
- %table.table
- %thead
- %tr
- %th= t('simple_form.labels.account_warning_preset.text')
- %th
- %tbody
- - @warning_presets.each do |preset|
- %tr
- %td
- = Formatter.instance.linkify(preset.text)
- %td
- = table_link_to 'pencil', t('admin.warning_presets.edit'), edit_admin_warning_preset_path(preset)
- = table_link_to 'trash', t('admin.warning_presets.delete'), admin_warning_preset_path(preset), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') }
+- if @warning_presets.empty?
+ %div.muted-hint.center-text
+ = t 'admin.warning_presets.empty'
+- else
+ .announcements-list
+ = render partial: 'warning_preset', collection: @warning_presets
diff --git a/app/views/application/_card.html.haml b/app/views/application/_card.html.haml
index 808dce514..e7ecfecd9 100644
--- a/app/views/application/_card.html.haml
+++ b/app/views/application/_card.html.haml
@@ -9,7 +9,6 @@
= image_tag account.avatar.url, alt: '', width: 48, height: 48, class: 'u-photo'
.display-name
- %span{ id: "default_account_display_name", style: "display: none" }= account.username
%bdi
%strong.emojify.p-name= display_name(account, custom_emojify: true)
%span
diff --git a/app/views/auth/registrations/new.html.haml b/app/views/auth/registrations/new.html.haml
index bcd66fb8a..457bc1d23 100644
--- a/app/views/auth/registrations/new.html.haml
+++ b/app/views/auth/registrations/new.html.haml
@@ -8,8 +8,8 @@
= render 'shared/error_messages', object: resource
- if @invite.present? && @invite.autofollow?
- .fields-group{ style: 'margin-bottom: 30px' }
- %p.hint{ style: 'text-align: center' }= t('invites.invited_by')
+ .fields-group.invited-by
+ %p.hint= t('invites.invited_by')
= render 'application/card', account: @invite.user.account
= f.simple_fields_for :account do |ff|
diff --git a/app/views/auth/sessions/two_factor.html.haml b/app/views/auth/sessions/two_factor.html.haml
index 4e6bbd7a9..b2e36f6bc 100644
--- a/app/views/auth/sessions/two_factor.html.haml
+++ b/app/views/auth/sessions/two_factor.html.haml
@@ -2,7 +2,7 @@
= t('auth.login')
= simple_form_for(resource, as: resource_name, url: session_path(resource_name), method: :post) do |f|
- %p.hint{ style: 'margin-bottom: 25px' }= t('simple_form.hints.sessions.otp')
+ %p.hint.otp-hint= t('simple_form.hints.sessions.otp')
.fields-group
= f.input :otp_attempt, type: :number, wrapper: :with_label, label: t('simple_form.labels.defaults.otp_attempt'), input_html: { 'aria-label' => t('simple_form.labels.defaults.otp_attempt'), :autocomplete => 'off' }, autofocus: true
diff --git a/app/views/directories/index.html.haml b/app/views/directories/index.html.haml
index 333a257e1..7975ee999 100644
--- a/app/views/directories/index.html.haml
+++ b/app/views/directories/index.html.haml
@@ -25,10 +25,9 @@
.directory__card__bar
= link_to TagManager.instance.url_for(account), class: 'directory__card__bar__name' do
.avatar
- = image_tag account.avatar.url, alt: '', width: 48, height: 48, class: 'u-photo'
+ = image_tag account.avatar.url, alt: '', class: 'u-photo'
.display-name
- %span{ id: "default_account_display_name", style: "display: none" }= account.username
%bdi
%strong.emojify.p-name= display_name(account, custom_emojify: true)
%span= acct(account)
diff --git a/app/views/errors/429.html.haml b/app/views/errors/429.html.haml
new file mode 100644
index 000000000..2df4f4175
--- /dev/null
+++ b/app/views/errors/429.html.haml
@@ -0,0 +1,5 @@
+- content_for :page_title do
+ = t('errors.429')
+
+- content_for :content do
+ = t('errors.429')
diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml
index 9b25ce5f8..d0f4fb47f 100755
--- a/app/views/layouts/application.html.haml
+++ b/app/views/layouts/application.html.haml
@@ -26,6 +26,8 @@
= javascript_pack_tag "locale_#{I18n.locale}", integrity: true, crossorigin: 'anonymous'
= csrf_meta_tags
+ = stylesheet_link_tag '/inert.css', skip_pipeline: true, media: 'all', id: 'inert-style'
+
- if Setting.custom_css.present?
= stylesheet_link_tag custom_css_path, media: 'all'
@@ -34,6 +36,6 @@
%body{ class: body_classes }
= content_for?(:content) ? yield(:content) : yield
- %div{ style: 'display: none'}
+ .logo-resources
= render file: Rails.root.join('app', 'javascript', 'images', 'hometown.svg')
= render file: Rails.root.join('app', 'javascript', 'images', 'logo_full.svg')
diff --git a/app/views/layouts/embedded.html.haml b/app/views/layouts/embedded.html.haml
index d7e74ade5..4a40b8584 100644
--- a/app/views/layouts/embedded.html.haml
+++ b/app/views/layouts/embedded.html.haml
@@ -19,5 +19,5 @@
%body.embed
= yield
- %div{ style: 'display: none'}
+ .logo-resources
= render file: Rails.root.join('app', 'javascript', 'images', 'logo_transparent.svg')
diff --git a/app/views/layouts/public.html.haml b/app/views/layouts/public.html.haml
index afa3c8c57..bb537c472 100644
--- a/app/views/layouts/public.html.haml
+++ b/app/views/layouts/public.html.haml
@@ -39,7 +39,7 @@
%h4= t 'footer.developers'
%ul
%li= link_to t('about.documentation'), 'https://docs.joinmastodon.org/'
- %li= link_to t('about.api'), 'https://docs.joinmastodon.org/api/guidelines/'
+ %li= link_to t('about.api'), 'https://docs.joinmastodon.org/client/intro/'
.column-2
%h4= link_to t('about.what_is_mastodon'), 'https://joinmastodon.org/'
= link_to svg_logo, root_url, class: 'brand'
diff --git a/app/views/public_timelines/show.html.haml b/app/views/public_timelines/show.html.haml
index 271a1d112..ac95b3e68 100644
--- a/app/views/public_timelines/show.html.haml
+++ b/app/views/public_timelines/show.html.haml
@@ -12,5 +12,5 @@
- else
%p= t('about.browse_local_posts', title: site_title)
-#mastodon-timeline{ data: { props: Oj.dump(default_props) }}
+#mastodon-timeline{ data: { props: Oj.dump(default_props.merge(local: !Setting.show_known_fediverse_at_about_page)) }}
#modal-container
diff --git a/app/views/settings/aliases/index.html.haml b/app/views/settings/aliases/index.html.haml
index 5b6986368..5df0c9669 100644
--- a/app/views/settings/aliases/index.html.haml
+++ b/app/views/settings/aliases/index.html.haml
@@ -23,7 +23,11 @@
%th= t('simple_form.labels.account_alias.acct')
%th
%tbody
- - @aliases.each do |account_alias|
+ - if @aliases.empty?
%tr
- %td= account_alias.acct
- %td= table_link_to 'trash', t('aliases.remove'), settings_alias_path(account_alias), data: { method: :delete }
+ %td.muted-hint{ colspan: 2 }= t('aliases.empty')
+ - else
+ - @aliases.each do |account_alias|
+ %tr
+ %td= account_alias.acct
+ %td= table_link_to 'trash', t('aliases.remove'), settings_alias_path(account_alias), data: { method: :delete }
diff --git a/app/views/settings/identity_proofs/_proof.html.haml b/app/views/settings/identity_proofs/_proof.html.haml
index 524827ad7..14e8e91be 100644
--- a/app/views/settings/identity_proofs/_proof.html.haml
+++ b/app/views/settings/identity_proofs/_proof.html.haml
@@ -18,3 +18,4 @@
%td
= table_link_to 'external-link', t('identity_proofs.view_proof'), proof.badge.proof_url if proof.badge.proof_url
+ = table_link_to 'trash', t('identity_proofs.remove'), settings_identity_proof_path(proof), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') }
diff --git a/app/views/settings/preferences/appearance/show.html.haml b/app/views/settings/preferences/appearance/show.html.haml
index d2b05513e..10fff406e 100644
--- a/app/views/settings/preferences/appearance/show.html.haml
+++ b/app/views/settings/preferences/appearance/show.html.haml
@@ -1,7 +1,10 @@
- content_for :page_title do
= t('settings.appearance')
-= simple_form_for current_user, url: settings_preferences_appearance_path, html: { method: :put } do |f|
+- content_for :heading_actions do
+ = button_tag t('generic.save_changes'), class: 'button', form: 'edit_user'
+
+= simple_form_for current_user, url: settings_preferences_appearance_path, html: { method: :put, id: 'edit_user' } do |f|
.fields-row
.fields-group.fields-row__column.fields-row__column-6
= f.input :locale, collection: I18n.available_locales, wrapper: :with_label, include_blank: false, label_method: lambda { |locale| human_locale(locale) }, selected: I18n.locale, hint: false
@@ -9,8 +12,8 @@
= f.input :setting_theme, collection: Themes.instance.names, label_method: lambda { |theme| I18n.t("themes.#{theme}", default: theme) }, wrapper: :with_label, include_blank: false, hint: false
- unless I18n.locale == :en
- .flash-message{ style: "text-align: unset; color: unset" }
- #{t 'appearance.localization.body'} #{content_tag(:a, t('appearance.localization.guide_link_text'), href: t('appearance.localization.guide_link'), target: "_blank", rel: "noopener", style: "text-decoration: underline")}
+ .flash-message.translation-prompt
+ #{t 'appearance.localization.body'} #{content_tag(:a, t('appearance.localization.guide_link_text'), href: t('appearance.localization.guide_link'), target: "_blank", rel: "noopener")}
%h4= t 'appearance.advanced_web_interface'
diff --git a/app/views/settings/preferences/notifications/show.html.haml b/app/views/settings/preferences/notifications/show.html.haml
index a496be21b..d7cc1ed5d 100644
--- a/app/views/settings/preferences/notifications/show.html.haml
+++ b/app/views/settings/preferences/notifications/show.html.haml
@@ -1,7 +1,10 @@
- content_for :page_title do
= t('settings.notifications')
-= simple_form_for current_user, url: settings_preferences_notifications_path, html: { method: :put } do |f|
+- content_for :heading_actions do
+ = button_tag t('generic.save_changes'), class: 'button', form: 'edit_notification'
+
+= simple_form_for current_user, url: settings_preferences_notifications_path, html: { method: :put, id: 'edit_notification' } do |f|
= render 'shared/error_messages', object: current_user
%h4= t 'notifications.email_events'
@@ -32,6 +35,3 @@
= ff.input :must_be_follower, as: :boolean, wrapper: :with_label
= ff.input :must_be_following, as: :boolean, wrapper: :with_label
= ff.input :must_be_following_dm, as: :boolean, wrapper: :with_label
-
- .actions
- = f.button :button, t('generic.save_changes'), type: :submit
diff --git a/app/views/settings/preferences/other/show.html.haml b/app/views/settings/preferences/other/show.html.haml
index 4f15ed016..c5c045118 100644
--- a/app/views/settings/preferences/other/show.html.haml
+++ b/app/views/settings/preferences/other/show.html.haml
@@ -1,7 +1,10 @@
- content_for :page_title do
= t('settings.preferences')
-= simple_form_for current_user, url: settings_preferences_other_path, html: { method: :put } do |f|
+- content_for :heading_actions do
+ = button_tag t('generic.save_changes'), class: 'button', form: 'edit_preferences'
+
+= simple_form_for current_user, url: settings_preferences_other_path, html: { method: :put, id: 'edit_preferences' } do |f|
= render 'shared/error_messages', object: current_user
.fields-group
diff --git a/app/views/settings/profiles/show.html.haml b/app/views/settings/profiles/show.html.haml
index c0c927911..2066630f3 100644
--- a/app/views/settings/profiles/show.html.haml
+++ b/app/views/settings/profiles/show.html.haml
@@ -1,12 +1,15 @@
- content_for :page_title do
= t('settings.edit_profile')
-= simple_form_for @account, url: settings_profile_path, html: { method: :put } do |f|
+- content_for :heading_actions do
+ = button_tag t('generic.save_changes'), class: 'button', form: 'edit_profile'
+
+= simple_form_for @account, url: settings_profile_path, html: { method: :put, id: 'edit_profile' } do |f|
= render 'shared/error_messages', object: @account
.fields-row
.fields-row__column.fields-group.fields-row__column-6
- = f.input :display_name, wrapper: :with_label, input_html: { maxlength: 30 }, hint: false
+ = f.input :display_name, wrapper: :with_label, input_html: { maxlength: 30, data: { default: @account.username } }, hint: false
= f.input :note, wrapper: :with_label, input_html: { maxlength: 500 }, hint: false
.fields-row
@@ -14,9 +17,9 @@
= render 'application/card', account: @account
.fields-row__column.fields-group.fields-row__column-6
- = f.input :header, wrapper: :with_label, input_html: { accept: AccountHeader::IMAGE_MIME_TYPES.join(',') }, hint: t('simple_form.hints.defaults.header', dimensions: '1500x500', size: number_to_human_size(AccountHeader::LIMIT))
+ = f.input :header, wrapper: :with_label, input_html: { accept: AccountHeader::IMAGE_MIME_TYPES.join(',') }, hint: picture_hint(t('simple_form.hints.defaults.header', dimensions: '1500x500', size: number_to_human_size(AccountHeader::LIMIT)), @account.header)
- = f.input :avatar, wrapper: :with_label, input_html: { accept: AccountAvatar::IMAGE_MIME_TYPES.join(',') }, hint: t('simple_form.hints.defaults.avatar', dimensions: '400x400', size: number_to_human_size(AccountAvatar::LIMIT))
+ = f.input :avatar, wrapper: :with_label, input_html: { accept: AccountAvatar::IMAGE_MIME_TYPES.join(',') }, hint: picture_hint(t('simple_form.hints.defaults.avatar', dimensions: '400x400', size: number_to_human_size(AccountAvatar::LIMIT)), @account.avatar)
%hr.spacer/
diff --git a/app/views/statuses/_detailed_status.html.haml b/app/views/statuses/_detailed_status.html.haml
index 4888249b3..e031db19a 100644
--- a/app/views/statuses/_detailed_status.html.haml
+++ b/app/views/statuses/_detailed_status.html.haml
@@ -3,9 +3,9 @@
= link_to ActivityPub::TagManager.instance.url_for(status.account), class: 'detailed-status__display-name u-url', target: stream_link_target, rel: 'noopener' do
.detailed-status__display-avatar
- if current_account&.user&.setting_auto_play_gif || autoplay
- = image_tag status.account.avatar_original_url, width: 48, height: 48, alt: '', class: 'account__avatar u-photo'
+ = image_tag status.account.avatar_original_url, alt: '', class: 'account__avatar u-photo'
- else
- = image_tag status.account.avatar_static_url, width: 48, height: 48, alt: '', class: 'account__avatar u-photo'
+ = image_tag status.account.avatar_static_url, alt: '', class: 'account__avatar u-photo'
%span.display-name
%bdi
%strong.display-name__html.p-name.emojify= display_name(status.account, custom_emojify: true, autoplay: autoplay)
@@ -15,12 +15,12 @@
= account_action_button(status.account)
- .status__content.emojify<
+ .status__content.emojify{ :data => ({ spoiler: current_account&.user&.setting_expand_spoilers ? 'expanded' : 'folded' } if status.spoiler_text?) }<
- if status.spoiler_text?
- %p{ :style => ('margin-bottom: 0' unless current_account&.user&.setting_expand_spoilers) }<
+ %p<
%span.p-summary> #{Formatter.instance.format_spoiler(status, autoplay: autoplay)}
%button.status__content__spoiler-link= t('statuses.show_more')
- .e-content{ style: "display: #{!current_account&.user&.setting_expand_spoilers && status.spoiler_text? ? 'none' : 'block'}; direction: #{rtl_status?(status) ? 'rtl' : 'ltr'}" }
+ .e-content{ dir: rtl_status?(status) ? 'rtl' : 'ltr' }
= Formatter.instance.format(status, custom_emojify: true, autoplay: autoplay)
- if status.preloadable_poll
= react_component :poll, disabled: true, poll: ActiveModelSerializers::SerializableResource.new(status.preloadable_poll, serializer: REST::PollSerializer, scope: current_user, scope_name: :current_user).as_json do
diff --git a/app/views/statuses/_poll.html.haml b/app/views/statuses/_poll.html.haml
index d1aba6ef9..64e62e97c 100644
--- a/app/views/statuses/_poll.html.haml
+++ b/app/views/statuses/_poll.html.haml
@@ -8,18 +8,22 @@
%li
- if show_results
- percent = total_votes_count > 0 ? 100 * option.votes_count / total_votes_count : 0
- %span.poll__chart{ style: "width: #{percent}%" }
-
- %label.poll__text><
+ %label.poll__option><
%span.poll__number><
- - if own_votes.include?(index)
- %i.poll__vote__mark.fa.fa-check
- = percent.round
- = Formatter.instance.format_poll_option(status, option, autoplay: autoplay)
+ = "#{percent.round}%"
+ %span.poll__option__text
+ = Formatter.instance.format_poll_option(status, option, autoplay: autoplay)
+ - if own_votes.include?(index)
+ %span.poll__voted
+ %i.poll__voted__mark.fa.fa-check
+
+ %progress{ max: 100, value: percent < 1 ? 1 : percent, 'aria-hidden': 'true' }
+ %span.poll__chart
- else
- %label.poll__text><
+ %label.poll__option><
%span.poll__input{ class: poll.multiple? ? 'checkbox' : nil}><
- = Formatter.instance.format_poll_option(status, option, autoplay: autoplay)
+ %span.poll__option__text
+ = Formatter.instance.format_poll_option(status, option, autoplay: autoplay)
.poll__footer
- unless show_results
%button.button.button-secondary{ disabled: true }
diff --git a/app/views/statuses/_simple_status.html.haml b/app/views/statuses/_simple_status.html.haml
index 63594e766..8194e344c 100644
--- a/app/views/statuses/_simple_status.html.haml
+++ b/app/views/statuses/_simple_status.html.haml
@@ -9,9 +9,9 @@
.status__avatar
%div
- if current_account&.user&.setting_auto_play_gif || autoplay
- = image_tag status.account.avatar_original_url, width: 48, height: 48, alt: '', class: 'u-photo account__avatar'
+ = image_tag status.account.avatar_original_url, alt: '', class: 'u-photo account__avatar'
- else
- = image_tag status.account.avatar_static_url, width: 48, height: 48, alt: '', class: 'u-photo account__avatar'
+ = image_tag status.account.avatar_static_url, alt: '', class: 'u-photo account__avatar'
%span.display-name
%bdi
%strong.display-name__html.p-name.emojify= display_name(status.account, custom_emojify: true, autoplay: autoplay)
@@ -19,12 +19,12 @@
%span.display-name__account
= acct(status.account)
= fa_icon('lock') if status.account.locked?
- .status__content.emojify<
+ .status__content.emojify{ :data => ({ spoiler: current_account&.user&.setting_expand_spoilers ? 'expanded' : 'folded' } if status.spoiler_text?) }<
- if status.spoiler_text?
- %p{ :style => ('margin-bottom: 0' unless current_account&.user&.setting_expand_spoilers) }<
+ %p<
%span.p-summary> #{Formatter.instance.format_spoiler(status, autoplay: autoplay)}
%button.status__content__spoiler-link= t('statuses.show_more')
- .e-content{ style: "display: #{!current_account&.user&.setting_expand_spoilers && status.spoiler_text? ? 'none' : 'block'}; direction: #{rtl_status?(status) ? 'rtl' : 'ltr'}" }
+ .e-content{ dir: rtl_status?(status) ? 'rtl' : 'ltr' }
= Formatter.instance.format(status, custom_emojify: true, autoplay: autoplay)
- if status.preloadable_poll
= react_component :poll, disabled: true, poll: ActiveModelSerializers::SerializableResource.new(status.preloadable_poll, serializer: REST::PollSerializer, scope: current_user, scope_name: :current_user).as_json do
@@ -51,20 +51,20 @@
.status__action-bar
.status__action-bar__counter
- = link_to remote_interaction_path(status, type: :reply), class: 'status__action-bar-button icon-button modal-button', style: 'font-size: 18px; width: 23.1429px; height: 23.1429px; line-height: 23.15px;' do
+ = link_to remote_interaction_path(status, type: :reply), class: 'status__action-bar-button icon-button modal-button' do
- if status.in_reply_to_id.nil?
= fa_icon 'reply fw'
- else
= fa_icon 'reply-all fw'
.status__action-bar__counter__label= obscured_counter status.replies_count
- = link_to remote_interaction_path(status, type: :reblog), class: 'status__action-bar-button icon-button modal-button', style: 'font-size: 18px; width: 23.1429px; height: 23.1429px; line-height: 23.15px;' do
+ = link_to remote_interaction_path(status, type: :reblog), class: 'status__action-bar-button icon-button modal-button' do
- if status.distributable?
= fa_icon 'retweet fw'
- elsif status.private_visibility? || status.limited_visibility?
= fa_icon 'lock fw'
- else
= fa_icon 'envelope fw'
- = link_to remote_interaction_path(status, type: :favourite), class: 'status__action-bar-button icon-button modal-button', style: 'font-size: 18px; width: 23.1429px; height: 23.1429px; line-height: 23.15px;' do
+ = link_to remote_interaction_path(status, type: :favourite), class: 'status__action-bar-button icon-button modal-button' do
= fa_icon 'star fw'
- if status.local_only
%span.status__action-bar-button.icon-button.disabled{style: 'font-size: 18px; width: 23.1429px; height: 23.1429px; line-height: 23.15px;'}<
diff --git a/app/views/tags/show.html.haml b/app/views/tags/show.html.haml
index 630702277..19dadd36a 100644
--- a/app/views/tags/show.html.haml
+++ b/app/views/tags/show.html.haml
@@ -12,5 +12,5 @@
%h1= "##{@tag.name}"
%p= t('about.about_hashtag_html', hashtag: @tag.name)
-#mastodon-timeline{ data: { props: Oj.dump(default_props.merge(hashtag: @tag.name)) }}
+#mastodon-timeline{ data: { props: Oj.dump(default_props.merge(hashtag: @tag.name, local: @local)) }}
#modal-container
diff --git a/app/views/user_mailer/email_changed.html.haml b/app/views/user_mailer/email_changed.html.haml
index 7e91e87ad..96be8624d 100644
--- a/app/views/user_mailer/email_changed.html.haml
+++ b/app/views/user_mailer/email_changed.html.haml
@@ -38,7 +38,7 @@
%table.input{ align: 'center', cellspacing: 0, cellpadding: 0 }
%tbody
%tr
- %td= @resource.try(:unconfirmed_email) ? @resource.unconfirmed_email : @resource.email
+ %td= @resource.unconfirmed_email
%table.email-table{ cellspacing: 0, cellpadding: 0 }
%tbody
diff --git a/app/views/user_mailer/email_changed.text.erb b/app/views/user_mailer/email_changed.text.erb
index 345b16a2c..2b58415f5 100644
--- a/app/views/user_mailer/email_changed.text.erb
+++ b/app/views/user_mailer/email_changed.text.erb
@@ -4,6 +4,6 @@
<%= t 'devise.mailer.email_changed.explanation' %>
-<%= @resource.try(:unconfirmed_email) ? @resource.unconfirmed_email : @resource.email %>
+<%= @resource.unconfirmed_email %>
<%= t 'devise.mailer.email_changed.extra' %>
diff --git a/app/workers/activitypub/delivery_worker.rb b/app/workers/activitypub/delivery_worker.rb
index 196af4af1..60775787a 100644
--- a/app/workers/activitypub/delivery_worker.rb
+++ b/app/workers/activitypub/delivery_worker.rb
@@ -12,7 +12,7 @@ class ActivityPub::DeliveryWorker
HEADERS = { 'Content-Type' => 'application/activity+json' }.freeze
def perform(json, source_account_id, inbox_url, options = {})
- return if DeliveryFailureTracker.unavailable?(inbox_url)
+ return unless DeliveryFailureTracker.available?(inbox_url)
@options = options.with_indifferent_access
@json = json
@@ -23,10 +23,12 @@ class ActivityPub::DeliveryWorker
perform_request
ensure
- if @performed
- failure_tracker.track_success!
- else
- failure_tracker.track_failure!
+ if @inbox_url.present?
+ if @performed
+ failure_tracker.track_success!
+ else
+ failure_tracker.track_failure!
+ end
end
end
@@ -50,13 +52,9 @@ class ActivityPub::DeliveryWorker
end
end
- begin
- light.with_threshold(STOPLIGHT_FAILURE_THRESHOLD)
- .with_cool_off_time(STOPLIGHT_COOLDOWN)
- .run
- rescue Stoplight::Error::RedLight => e
- raise e.class, e.message, e.backtrace.first(3)
- end
+ light.with_threshold(STOPLIGHT_FAILURE_THRESHOLD)
+ .with_cool_off_time(STOPLIGHT_COOLDOWN)
+ .run
end
def failure_tracker
diff --git a/app/workers/activitypub/distribute_poll_update_worker.rb b/app/workers/activitypub/distribute_poll_update_worker.rb
index 1e87fa4bf..25dee4ee2 100644
--- a/app/workers/activitypub/distribute_poll_update_worker.rb
+++ b/app/workers/activitypub/distribute_poll_update_worker.rb
@@ -4,7 +4,7 @@ class ActivityPub::DistributePollUpdateWorker
include Sidekiq::Worker
include Payloadable
- sidekiq_options queue: 'push', unique: :until_executed, retry: 0
+ sidekiq_options queue: 'push', lock: :until_executed, retry: 0
def perform(status_id)
@status = Status.find(status_id)
diff --git a/app/workers/activitypub/synchronize_featured_collection_worker.rb b/app/workers/activitypub/synchronize_featured_collection_worker.rb
index 7b16d3426..7a0898e89 100644
--- a/app/workers/activitypub/synchronize_featured_collection_worker.rb
+++ b/app/workers/activitypub/synchronize_featured_collection_worker.rb
@@ -3,7 +3,7 @@
class ActivityPub::SynchronizeFeaturedCollectionWorker
include Sidekiq::Worker
- sidekiq_options queue: 'pull', unique: :until_executed
+ sidekiq_options queue: 'pull', lock: :until_executed
def perform(account_id)
ActivityPub::FetchFeaturedCollectionService.new.call(Account.find(account_id))
diff --git a/app/workers/after_remote_follow_request_worker.rb b/app/workers/after_remote_follow_request_worker.rb
deleted file mode 100644
index ce9c65834..000000000
--- a/app/workers/after_remote_follow_request_worker.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-# frozen_string_literal: true
-
-class AfterRemoteFollowRequestWorker
- include Sidekiq::Worker
-
- sidekiq_options queue: 'pull', retry: 5
-
- def perform(follow_request_id); end
-end
diff --git a/app/workers/after_remote_follow_worker.rb b/app/workers/after_remote_follow_worker.rb
deleted file mode 100644
index d9719f2bf..000000000
--- a/app/workers/after_remote_follow_worker.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-# frozen_string_literal: true
-
-class AfterRemoteFollowWorker
- include Sidekiq::Worker
-
- sidekiq_options queue: 'pull', retry: 5
-
- def perform(follow_id); end
-end
diff --git a/app/workers/backup_worker.rb b/app/workers/backup_worker.rb
index e4c609d70..7b0b52844 100644
--- a/app/workers/backup_worker.rb
+++ b/app/workers/backup_worker.rb
@@ -9,8 +9,12 @@ class BackupWorker
backup_id = msg['args'].first
ActiveRecord::Base.connection_pool.with_connection do
- backup = Backup.find(backup_id)
- backup&.destroy
+ begin
+ backup = Backup.find(backup_id)
+ backup.destroy
+ rescue ActiveRecord::RecordNotFound
+ true
+ end
end
end
diff --git a/app/workers/notification_worker.rb b/app/workers/notification_worker.rb
deleted file mode 100644
index 1c0f001cf..000000000
--- a/app/workers/notification_worker.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-# frozen_string_literal: true
-
-class NotificationWorker
- include Sidekiq::Worker
-
- sidekiq_options queue: 'push', retry: 5
-
- def perform(xml, source_account_id, target_account_id); end
-end
diff --git a/app/workers/poll_expiration_notify_worker.rb b/app/workers/poll_expiration_notify_worker.rb
index e08f0c249..64b4cbd7e 100644
--- a/app/workers/poll_expiration_notify_worker.rb
+++ b/app/workers/poll_expiration_notify_worker.rb
@@ -3,7 +3,7 @@
class PollExpirationNotifyWorker
include Sidekiq::Worker
- sidekiq_options unique: :until_executed
+ sidekiq_options lock: :until_executed
def perform(poll_id)
poll = Poll.find(poll_id)
diff --git a/app/workers/post_process_media_worker.rb b/app/workers/post_process_media_worker.rb
new file mode 100644
index 000000000..148ae5e2b
--- /dev/null
+++ b/app/workers/post_process_media_worker.rb
@@ -0,0 +1,34 @@
+# frozen_string_literal: true
+
+class PostProcessMediaWorker
+ include Sidekiq::Worker
+
+ sidekiq_options retry: 1, dead: false
+
+ sidekiq_retries_exhausted do |msg|
+ media_attachment_id = msg['args'].first
+
+ ActiveRecord::Base.connection_pool.with_connection do
+ begin
+ media_attachment = MediaAttachment.find(media_attachment_id)
+ media_attachment.processing = :failed
+ media_attachment.save
+ rescue ActiveRecord::RecordNotFound
+ true
+ end
+ end
+
+ Sidekiq.logger.error("Processing media attachment #{media_attachment_id} failed with #{msg['error_message']}")
+ end
+
+ def perform(media_attachment_id)
+ media_attachment = MediaAttachment.find(media_attachment_id)
+ media_attachment.processing = :in_progress
+ media_attachment.save
+ media_attachment.file.reprocess!(:original)
+ media_attachment.processing = :complete
+ media_attachment.save
+ rescue ActiveRecord::RecordNotFound
+ true
+ end
+end
diff --git a/app/workers/processing_worker.rb b/app/workers/processing_worker.rb
deleted file mode 100644
index cf3bd8397..000000000
--- a/app/workers/processing_worker.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-# frozen_string_literal: true
-
-class ProcessingWorker
- include Sidekiq::Worker
-
- sidekiq_options backtrace: true
-
- def perform(account_id, body); end
-end
diff --git a/app/workers/publish_scheduled_announcement_worker.rb b/app/workers/publish_scheduled_announcement_worker.rb
index efca39d3d..1392efed0 100644
--- a/app/workers/publish_scheduled_announcement_worker.rb
+++ b/app/workers/publish_scheduled_announcement_worker.rb
@@ -5,15 +5,24 @@ class PublishScheduledAnnouncementWorker
include Redisable
def perform(announcement_id)
- announcement = Announcement.find(announcement_id)
+ @announcement = Announcement.find(announcement_id)
- announcement.publish! unless announcement.published?
+ refresh_status_ids!
- payload = InlineRenderer.render(announcement, nil, :announcement)
+ @announcement.publish! unless @announcement.published?
+
+ payload = InlineRenderer.render(@announcement, nil, :announcement)
payload = Oj.dump(event: :announcement, payload: payload)
FeedManager.instance.with_active_accounts do |account|
redis.publish("timeline:#{account.id}", payload) if redis.exists("subscribed:timeline:#{account.id}")
end
end
+
+ private
+
+ def refresh_status_ids!
+ @announcement.status_ids = Status.from_text(@announcement.text).map(&:id)
+ @announcement.save
+ end
end
diff --git a/app/workers/publish_scheduled_status_worker.rb b/app/workers/publish_scheduled_status_worker.rb
index 850610c4e..ce42f7be7 100644
--- a/app/workers/publish_scheduled_status_worker.rb
+++ b/app/workers/publish_scheduled_status_worker.rb
@@ -3,7 +3,7 @@
class PublishScheduledStatusWorker
include Sidekiq::Worker
- sidekiq_options unique: :until_executed
+ sidekiq_options lock: :until_executed
def perform(scheduled_status_id)
scheduled_status = ScheduledStatus.find(scheduled_status_id)
diff --git a/app/workers/pubsubhubbub/confirmation_worker.rb b/app/workers/pubsubhubbub/confirmation_worker.rb
deleted file mode 100644
index 783a8c95f..000000000
--- a/app/workers/pubsubhubbub/confirmation_worker.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-# frozen_string_literal: true
-
-class Pubsubhubbub::ConfirmationWorker
- include Sidekiq::Worker
-
- sidekiq_options queue: 'push', retry: false
-
- def perform(subscription_id, mode, secret = nil, lease_seconds = nil); end
-end
diff --git a/app/workers/pubsubhubbub/delivery_worker.rb b/app/workers/pubsubhubbub/delivery_worker.rb
deleted file mode 100644
index 1260060bd..000000000
--- a/app/workers/pubsubhubbub/delivery_worker.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-# frozen_string_literal: true
-
-class Pubsubhubbub::DeliveryWorker
- include Sidekiq::Worker
-
- sidekiq_options queue: 'push', retry: 3, dead: false
-
- def perform(subscription_id, payload); end
-end
diff --git a/app/workers/pubsubhubbub/distribution_worker.rb b/app/workers/pubsubhubbub/distribution_worker.rb
deleted file mode 100644
index 75bac5d6f..000000000
--- a/app/workers/pubsubhubbub/distribution_worker.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-# frozen_string_literal: true
-
-class Pubsubhubbub::DistributionWorker
- include Sidekiq::Worker
-
- sidekiq_options queue: 'push'
-
- def perform(stream_entry_ids); end
-end
diff --git a/app/workers/pubsubhubbub/raw_distribution_worker.rb b/app/workers/pubsubhubbub/raw_distribution_worker.rb
deleted file mode 100644
index ece9c80ac..000000000
--- a/app/workers/pubsubhubbub/raw_distribution_worker.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-# frozen_string_literal: true
-
-class Pubsubhubbub::RawDistributionWorker
- include Sidekiq::Worker
-
- sidekiq_options queue: 'push'
-
- def perform(xml, source_account_id); end
-end
diff --git a/app/workers/pubsubhubbub/subscribe_worker.rb b/app/workers/pubsubhubbub/subscribe_worker.rb
deleted file mode 100644
index b861b5e67..000000000
--- a/app/workers/pubsubhubbub/subscribe_worker.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-# frozen_string_literal: true
-
-class Pubsubhubbub::SubscribeWorker
- include Sidekiq::Worker
-
- sidekiq_options queue: 'push', retry: 10, unique: :until_executed, dead: false
-
- def perform(account_id); end
-end
diff --git a/app/workers/pubsubhubbub/unsubscribe_worker.rb b/app/workers/pubsubhubbub/unsubscribe_worker.rb
deleted file mode 100644
index 0c1c263f6..000000000
--- a/app/workers/pubsubhubbub/unsubscribe_worker.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-# frozen_string_literal: true
-
-class Pubsubhubbub::UnsubscribeWorker
- include Sidekiq::Worker
-
- sidekiq_options queue: 'push', retry: false, unique: :until_executed, dead: false
-
- def perform(account_id); end
-end
diff --git a/app/workers/redownload_media_worker.rb b/app/workers/redownload_media_worker.rb
index 98e995918..071501a49 100644
--- a/app/workers/redownload_media_worker.rb
+++ b/app/workers/redownload_media_worker.rb
@@ -11,7 +11,7 @@ class RedownloadMediaWorker
return if media_attachment.remote_url.blank?
- media_attachment.reset_file!
+ media_attachment.file_remote_url = media_attachment.remote_url
media_attachment.save
rescue ActiveRecord::RecordNotFound
true
diff --git a/app/workers/regeneration_worker.rb b/app/workers/regeneration_worker.rb
index 5c6a040bd..5c13c894f 100644
--- a/app/workers/regeneration_worker.rb
+++ b/app/workers/regeneration_worker.rb
@@ -3,7 +3,7 @@
class RegenerationWorker
include Sidekiq::Worker
- sidekiq_options unique: :until_executed
+ sidekiq_options lock: :until_executed
def perform(account_id, _ = :home)
account = Account.find(account_id)
diff --git a/app/workers/remote_profile_update_worker.rb b/app/workers/remote_profile_update_worker.rb
deleted file mode 100644
index 01e8daf8f..000000000
--- a/app/workers/remote_profile_update_worker.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-# frozen_string_literal: true
-
-class RemoteProfileUpdateWorker
- include Sidekiq::Worker
-
- sidekiq_options queue: 'pull'
-
- def perform(account_id, body, resubscribe); end
-end
diff --git a/app/workers/resolve_account_worker.rb b/app/workers/resolve_account_worker.rb
index cd7c4d7dd..2b5be6d1b 100644
--- a/app/workers/resolve_account_worker.rb
+++ b/app/workers/resolve_account_worker.rb
@@ -3,7 +3,7 @@
class ResolveAccountWorker
include Sidekiq::Worker
- sidekiq_options queue: 'pull', unique: :until_executed
+ sidekiq_options queue: 'pull', lock: :until_executed
def perform(uri)
ResolveAccountService.new.call(uri)
diff --git a/app/workers/salmon_worker.rb b/app/workers/salmon_worker.rb
deleted file mode 100644
index 10200b06c..000000000
--- a/app/workers/salmon_worker.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-# frozen_string_literal: true
-
-class SalmonWorker
- include Sidekiq::Worker
-
- sidekiq_options backtrace: true
-
- def perform(account_id, body); end
-end
diff --git a/app/workers/scheduler/backup_cleanup_scheduler.rb b/app/workers/scheduler/backup_cleanup_scheduler.rb
index d43660699..d69ca2556 100644
--- a/app/workers/scheduler/backup_cleanup_scheduler.rb
+++ b/app/workers/scheduler/backup_cleanup_scheduler.rb
@@ -3,7 +3,7 @@
class Scheduler::BackupCleanupScheduler
include Sidekiq::Worker
- sidekiq_options unique: :until_executed, retry: 0
+ sidekiq_options lock: :until_executed, retry: 0
def perform
old_backups.reorder(nil).find_each(&:destroy!)
diff --git a/app/workers/scheduler/doorkeeper_cleanup_scheduler.rb b/app/workers/scheduler/doorkeeper_cleanup_scheduler.rb
index e5e5f6bc4..94788a85b 100644
--- a/app/workers/scheduler/doorkeeper_cleanup_scheduler.rb
+++ b/app/workers/scheduler/doorkeeper_cleanup_scheduler.rb
@@ -3,7 +3,7 @@
class Scheduler::DoorkeeperCleanupScheduler
include Sidekiq::Worker
- sidekiq_options unique: :until_executed, retry: 0
+ sidekiq_options lock: :until_executed, retry: 0
def perform
Doorkeeper::AccessToken.where('revoked_at IS NOT NULL').where('revoked_at < NOW()').delete_all
diff --git a/app/workers/scheduler/email_scheduler.rb b/app/workers/scheduler/email_scheduler.rb
index 1eeeee412..9a7355524 100644
--- a/app/workers/scheduler/email_scheduler.rb
+++ b/app/workers/scheduler/email_scheduler.rb
@@ -3,7 +3,7 @@
class Scheduler::EmailScheduler
include Sidekiq::Worker
- sidekiq_options unique: :until_executed, retry: 0
+ sidekiq_options lock: :until_executed, retry: 0
FREQUENCY = 7.days.freeze
SIGN_IN_OFFSET = 1.day.freeze
diff --git a/app/workers/scheduler/feed_cleanup_scheduler.rb b/app/workers/scheduler/feed_cleanup_scheduler.rb
index bf5e20757..458fe6193 100644
--- a/app/workers/scheduler/feed_cleanup_scheduler.rb
+++ b/app/workers/scheduler/feed_cleanup_scheduler.rb
@@ -4,7 +4,7 @@ class Scheduler::FeedCleanupScheduler
include Sidekiq::Worker
include Redisable
- sidekiq_options unique: :until_executed, retry: 0
+ sidekiq_options lock: :until_executed, retry: 0
def perform
clean_home_feeds!
diff --git a/app/workers/scheduler/ip_cleanup_scheduler.rb b/app/workers/scheduler/ip_cleanup_scheduler.rb
index 4f44078d8..6d38b52a2 100644
--- a/app/workers/scheduler/ip_cleanup_scheduler.rb
+++ b/app/workers/scheduler/ip_cleanup_scheduler.rb
@@ -5,7 +5,7 @@ class Scheduler::IpCleanupScheduler
RETENTION_PERIOD = 1.year
- sidekiq_options unique: :until_executed, retry: 0
+ sidekiq_options lock: :until_executed, retry: 0
def perform
time_ago = RETENTION_PERIOD.ago
diff --git a/app/workers/scheduler/media_cleanup_scheduler.rb b/app/workers/scheduler/media_cleanup_scheduler.rb
index fb01aa70c..671ebf6e0 100644
--- a/app/workers/scheduler/media_cleanup_scheduler.rb
+++ b/app/workers/scheduler/media_cleanup_scheduler.rb
@@ -3,7 +3,7 @@
class Scheduler::MediaCleanupScheduler
include Sidekiq::Worker
- sidekiq_options unique: :until_executed, retry: 0
+ sidekiq_options lock: :until_executed, retry: 0
def perform
unattached_media.find_each(&:destroy)
diff --git a/app/workers/scheduler/pghero_scheduler.rb b/app/workers/scheduler/pghero_scheduler.rb
index 4453bf2cd..cf5570048 100644
--- a/app/workers/scheduler/pghero_scheduler.rb
+++ b/app/workers/scheduler/pghero_scheduler.rb
@@ -3,7 +3,7 @@
class Scheduler::PgheroScheduler
include Sidekiq::Worker
- sidekiq_options unique: :until_executed, retry: 0
+ sidekiq_options lock: :until_executed, retry: 0
def perform
PgHero.capture_space_stats
diff --git a/app/workers/scheduler/scheduled_statuses_scheduler.rb b/app/workers/scheduler/scheduled_statuses_scheduler.rb
index 9cfe949de..25df3c07d 100644
--- a/app/workers/scheduler/scheduled_statuses_scheduler.rb
+++ b/app/workers/scheduler/scheduled_statuses_scheduler.rb
@@ -3,7 +3,7 @@
class Scheduler::ScheduledStatusesScheduler
include Sidekiq::Worker
- sidekiq_options unique: :until_executed, retry: 0
+ sidekiq_options lock: :until_executed, retry: 0
def perform
publish_scheduled_statuses!
diff --git a/app/workers/scheduler/subscriptions_cleanup_scheduler.rb b/app/workers/scheduler/subscriptions_cleanup_scheduler.rb
deleted file mode 100644
index 75fe681a9..000000000
--- a/app/workers/scheduler/subscriptions_cleanup_scheduler.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-# frozen_string_literal: true
-
-class Scheduler::SubscriptionsCleanupScheduler
- include Sidekiq::Worker
-
- sidekiq_options unique: :until_executed, retry: 0
-
- def perform; end
-end
diff --git a/app/workers/scheduler/subscriptions_scheduler.rb b/app/workers/scheduler/subscriptions_scheduler.rb
deleted file mode 100644
index 6903cadc7..000000000
--- a/app/workers/scheduler/subscriptions_scheduler.rb
+++ /dev/null
@@ -1,9 +0,0 @@
-# frozen_string_literal: true
-
-class Scheduler::SubscriptionsScheduler
- include Sidekiq::Worker
-
- sidekiq_options unique: :until_executed, retry: 0
-
- def perform; end
-end
diff --git a/app/workers/scheduler/trending_tags_scheduler.rb b/app/workers/scheduler/trending_tags_scheduler.rb
index 77f0d5747..e9891424e 100644
--- a/app/workers/scheduler/trending_tags_scheduler.rb
+++ b/app/workers/scheduler/trending_tags_scheduler.rb
@@ -3,7 +3,7 @@
class Scheduler::TrendingTagsScheduler
include Sidekiq::Worker
- sidekiq_options unique: :until_executed, retry: 0
+ sidekiq_options lock: :until_executed, retry: 0
def perform
TrendingTags.update! if Setting.trends
diff --git a/app/workers/scheduler/user_cleanup_scheduler.rb b/app/workers/scheduler/user_cleanup_scheduler.rb
index 881b911be..6113edde1 100644
--- a/app/workers/scheduler/user_cleanup_scheduler.rb
+++ b/app/workers/scheduler/user_cleanup_scheduler.rb
@@ -3,7 +3,7 @@
class Scheduler::UserCleanupScheduler
include Sidekiq::Worker
- sidekiq_options unique: :until_executed, retry: 0
+ sidekiq_options lock: :until_executed, retry: 0
def perform
User.where('confirmed_at is NULL AND confirmation_sent_at <= ?', 2.days.ago).reorder(nil).find_in_batches do |batch|
diff --git a/app/workers/verify_account_links_worker.rb b/app/workers/verify_account_links_worker.rb
index 901498583..8114d59be 100644
--- a/app/workers/verify_account_links_worker.rb
+++ b/app/workers/verify_account_links_worker.rb
@@ -3,7 +3,7 @@
class VerifyAccountLinksWorker
include Sidekiq::Worker
- sidekiq_options queue: 'pull', retry: false, unique: :until_executed
+ sidekiq_options queue: 'pull', retry: false, lock: :until_executed
def perform(account_id)
account = Account.find(account_id)
diff --git a/config/application.rb b/config/application.rb
index 1baa166ce..8348649df 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -7,6 +7,8 @@ require 'rails/all'
Bundler.require(*Rails.groups)
require_relative '../app/lib/exceptions'
+require_relative '../lib/paperclip/url_generator_extensions'
+require_relative '../lib/paperclip/attachment_extensions'
require_relative '../lib/paperclip/lazy_thumbnail'
require_relative '../lib/paperclip/gif_transcoder'
require_relative '../lib/paperclip/video_transcoder'
@@ -53,8 +55,8 @@ module Mastodon
:el,
:en,
:eo,
- :'es-AR',
:es,
+ :'es-AR',
:et,
:eu,
:fa,
@@ -95,8 +97,8 @@ module Mastodon
:sk,
:sl,
:sq,
- :'sr-Latn',
:sr,
+ :'sr-Latn',
:sv,
:ta,
:te,
@@ -104,6 +106,7 @@ module Mastodon
:tr,
:uk,
:ur,
+ :vi,
:'zh-CN',
:'zh-HK',
:'zh-TW',
diff --git a/config/deploy.rb b/config/deploy.rb
index 4dc36c65c..76e6b2815 100644
--- a/config/deploy.rb
+++ b/config/deploy.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-lock '3.11.2'
+lock '3.14.0'
set :repo_url, ENV.fetch('REPO', 'https://github.com/tootsuite/mastodon.git')
set :branch, ENV.fetch('BRANCH', 'master')
@@ -12,3 +12,21 @@ set :migration_role, :app
append :linked_files, '.env.production', 'public/robots.txt'
append :linked_dirs, 'vendor/bundle', 'node_modules', 'public/system'
+
+namespace :systemd do
+ %i[sidekiq streaming web].each do |service|
+ %i[reload restart status].each do |action|
+ desc "Perform a #{action} on #{service} service"
+ task "#{service}:#{action}".to_sym do
+ on roles(:app) do
+ # runs e.g. "sudo restart mastodon-sidekiq.service"
+ sudo :systemctl, action, "#{fetch(:application)}-#{service}.service"
+ end
+ end
+ end
+ end
+end
+
+after 'deploy:publishing', 'systemd:web:reload'
+after 'deploy:publishing', 'systemd:sidekiq:restart'
+after 'deploy:publishing', 'systemd:streaming:restart'
diff --git a/config/initializers/chewy.rb b/config/initializers/chewy.rb
index 9ff0dccc1..18d2f18c1 100644
--- a/config/initializers/chewy.rb
+++ b/config/initializers/chewy.rb
@@ -23,3 +23,9 @@ module Chewy
end
end
end
+
+# ElasticSearch uses Faraday internally. Faraday interprets the
+# http_proxy env variable by default which leads to issues when
+# Mastodon is run with hidden services enabled, because
+# ElasticSearch is *not* supposed to be accessed through a proxy
+Faraday.ignore_env_proxy = true
diff --git a/config/initializers/content_security_policy.rb b/config/initializers/content_security_policy.rb
index af7d16aaf..7dcc028ab 100644
--- a/config/initializers/content_security_policy.rb
+++ b/config/initializers/content_security_policy.rb
@@ -22,7 +22,7 @@ Rails.application.config.content_security_policy do |p|
p.frame_ancestors :none
p.font_src :self, assets_host
p.img_src :self, :https, :data, :blob, assets_host
- p.style_src :self, :unsafe_inline, assets_host
+ p.style_src :self, assets_host
p.media_src :self, :https, :data, assets_host
p.frame_src :self, :https
p.manifest_src :self, assets_host
@@ -32,10 +32,12 @@ Rails.application.config.content_security_policy do |p|
p.connect_src :self, :data, :blob, assets_host, media_host, Rails.configuration.x.streaming_api_base_url, *webpacker_urls
p.script_src :self, :unsafe_inline, :unsafe_eval, assets_host
+ p.child_src :self, :blob, assets_host
p.worker_src :self, :blob, assets_host
else
p.connect_src :self, :data, :blob, assets_host, media_host, Rails.configuration.x.streaming_api_base_url
p.script_src :self, assets_host
+ p.child_src :self, :blob, assets_host
p.worker_src :self, :blob, assets_host
end
end
@@ -44,3 +46,8 @@ end
# For further information see the following documentation:
# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only
# Rails.application.config.content_security_policy_report_only = true
+
+PgHero::HomeController.content_security_policy do |p|
+ p.script_src :self, :unsafe_inline, assets_host
+ p.style_src :self, :unsafe_inline, assets_host
+end
diff --git a/config/initializers/http_client_proxy.rb b/config/initializers/http_client_proxy.rb
index 9d7b16e69..7a9b7b86d 100644
--- a/config/initializers/http_client_proxy.rb
+++ b/config/initializers/http_client_proxy.rb
@@ -1,24 +1,22 @@
Rails.application.configure do
config.x.http_client_proxy = {}
+
if ENV['http_proxy'].present?
proxy = URI.parse(ENV['http_proxy'])
+
raise "Unsupported proxy type: #{proxy.scheme}" unless %w(http https).include? proxy.scheme
raise "No proxy host" unless proxy.host
host = proxy.host
host = host[1...-1] if host[0] == '[' # for IPv6 address
- config.x.http_client_proxy[:proxy] = { proxy_address: host, proxy_port: proxy.port, proxy_username: proxy.user, proxy_password: proxy.password }.compact
+
+ config.x.http_client_proxy[:proxy] = {
+ proxy_address: host,
+ proxy_port: proxy.port,
+ proxy_username: proxy.user,
+ proxy_password: proxy.password,
+ }.compact
end
config.x.access_to_hidden_service = ENV['ALLOW_ACCESS_TO_HIDDEN_SERVICE'] == 'true'
end
-
-module Goldfinger
- def self.finger(uri, opts = {})
- to_hidden = /\.(onion|i2p)(:\d+)?$/.match(uri)
- raise Mastodon::HostValidationError, 'Instance does not support hidden service connections' if !Rails.configuration.x.access_to_hidden_service && to_hidden
- opts = { ssl: !to_hidden, headers: {} }.merge(Rails.configuration.x.http_client_proxy).merge(opts)
- opts[:headers]['User-Agent'] ||= Mastodon::Version.user_agent
- Goldfinger::Client.new(uri, opts).finger
- end
-end
diff --git a/config/initializers/inflections.rb b/config/initializers/inflections.rb
index c65153b0a..0667a542c 100644
--- a/config/initializers/inflections.rb
+++ b/config/initializers/inflections.rb
@@ -19,4 +19,6 @@ ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.acronym 'ActivityStreams'
inflect.acronym 'JsonLd'
inflect.acronym 'NodeInfo'
+
+ inflect.singular 'data', 'data'
end
diff --git a/config/initializers/kaminari_config.rb b/config/initializers/kaminari_config.rb
index aa1517256..4fec4320c 100644
--- a/config/initializers/kaminari_config.rb
+++ b/config/initializers/kaminari_config.rb
@@ -2,6 +2,6 @@
Kaminari.configure do |config|
config.default_per_page = 40
- config.window = 1
+ config.window = 2
config.outer_window = 1
end
diff --git a/config/initializers/paperclip.rb b/config/initializers/paperclip.rb
index 8909678d6..0dd7f8cf8 100644
--- a/config/initializers/paperclip.rb
+++ b/config/initializers/paperclip.rb
@@ -10,9 +10,25 @@ Paperclip.interpolates :filename do |attachment, style|
end
end
+Paperclip.interpolates :prefix_path do |attachment, style|
+ if attachment.storage_schema_version >= 1 && attachment.instance.respond_to?(:local?) && !attachment.instance.local?
+ 'cache' + File::SEPARATOR
+ else
+ ''
+ end
+end
+
+Paperclip.interpolates :prefix_url do |attachment, style|
+ if attachment.storage_schema_version >= 1 && attachment.instance.respond_to?(:local?) && !attachment.instance.local?
+ 'cache/'
+ else
+ ''
+ end
+end
+
Paperclip::Attachment.default_options.merge!(
use_timestamp: false,
- path: ':class/:attachment/:id_partition/:style/:filename',
+ path: ':prefix_url:class/:attachment/:id_partition/:style/:filename',
storage: :fog
)
@@ -91,7 +107,7 @@ else
Paperclip::Attachment.default_options.merge!(
storage: :filesystem,
use_timestamp: true,
- path: File.join(ENV.fetch('PAPERCLIP_ROOT_PATH', File.join(':rails_root', 'public', 'system')), ':class', ':attachment', ':id_partition', ':style', ':filename'),
- url: ENV.fetch('PAPERCLIP_ROOT_URL', '/system') + '/:class/:attachment/:id_partition/:style/:filename',
+ path: File.join(ENV.fetch('PAPERCLIP_ROOT_PATH', File.join(':rails_root', 'public', 'system')), ':prefix_path:class', ':attachment', ':id_partition', ':style', ':filename'),
+ url: ENV.fetch('PAPERCLIP_ROOT_URL', '/system') + '/:prefix_url:class/:attachment/:id_partition/:style/:filename',
)
end
diff --git a/config/initializers/rack_attack.rb b/config/initializers/rack_attack.rb
index 3cd7ea3a6..09458c540 100644
--- a/config/initializers/rack_attack.rb
+++ b/config/initializers/rack_attack.rb
@@ -42,6 +42,7 @@ class Rack::Attack
/auth/sign_in
/auth
/auth/password
+ /auth/confirmation
).freeze
PROTECTED_PATHS_REGEX = Regexp.union(PROTECTED_PATHS.map { |path| /\A#{Regexp.escape(path)}/ })
@@ -70,7 +71,6 @@ class Rack::Attack
req.remote_ip if req.post? && req.path == '/api/v1/accounts'
end
- # Throttle paging, as it is mainly used for public pages and AP collections
throttle('throttle_authenticated_paging', limit: 300, period: 15.minutes) do |req|
req.authenticated_user_id if req.paging_request?
end
diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb
index 7f8a40d7b..f2733562f 100644
--- a/config/initializers/sidekiq.rb
+++ b/config/initializers/sidekiq.rb
@@ -13,10 +13,15 @@ Sidekiq.configure_server do |config|
config.server_middleware do |chain|
chain.add SidekiqErrorHandler
end
+
+ config.death_handlers << lambda do |job, _ex|
+ digest = job['lock_digest']
+ SidekiqUniqueJobs::Digests.delete_by_digest(digest) if digest
+ end
end
Sidekiq.configure_client do |config|
config.redis = redis_params
end
-Sidekiq::Logging.logger.level = ::Logger.const_get(ENV.fetch('RAILS_LOG_LEVEL', 'info').upcase.to_s)
+Sidekiq.logger.level = ::Logger.const_get(ENV.fetch('RAILS_LOG_LEVEL', 'info').upcase.to_s)
diff --git a/config/locales/activerecord.bn.yml b/config/locales/activerecord.bn.yml
index e0e6ac90c..0ed3c7eea 100644
--- a/config/locales/activerecord.bn.yml
+++ b/config/locales/activerecord.bn.yml
@@ -3,7 +3,7 @@ bn:
activerecord:
attributes:
poll:
- expires_at: শেষ হবে
+ expires_at: নির্দিষ্ট সময়সীমা
options: বিকল্প
errors:
models:
@@ -14,4 +14,4 @@ bn:
status:
attributes:
reblog:
- taken: লেখাটি ইতিপূর্বে ছিল
+ taken: এর লেখাটি ইতিপূর্বে ছিল
diff --git a/config/locales/activerecord.br.yml b/config/locales/activerecord.br.yml
index 77fc4f2a1..a7eab580c 100644
--- a/config/locales/activerecord.br.yml
+++ b/config/locales/activerecord.br.yml
@@ -10,4 +10,8 @@ br:
account:
attributes:
username:
- invalid: nemet lizherennoù, niverennoù ha isbarrennigoù
+ invalid: nemet lizherennoù, niverennoù hag isbarrennigoù
+ status:
+ attributes:
+ reblog:
+ taken: eus ar statud a zo dija
diff --git a/config/locales/activerecord.gl.yml b/config/locales/activerecord.gl.yml
index 0bc27502c..78b5e0f8d 100644
--- a/config/locales/activerecord.gl.yml
+++ b/config/locales/activerecord.gl.yml
@@ -3,7 +3,7 @@ gl:
activerecord:
attributes:
poll:
- expires_at: Caducidade
+ expires_at: Remata en
options: Opcións
errors:
models:
diff --git a/config/locales/activerecord.hy.yml b/config/locales/activerecord.hy.yml
index c40654016..0da0b3d5e 100644
--- a/config/locales/activerecord.hy.yml
+++ b/config/locales/activerecord.hy.yml
@@ -1 +1,17 @@
+---
hy:
+ activerecord:
+ attributes:
+ poll:
+ expires_at: Վերջնաժամկետ
+ options: Տարբերակներ
+ errors:
+ models:
+ account:
+ attributes:
+ username:
+ invalid: միայն տառեր, թվեր և ընդգիծկներ
+ status:
+ attributes:
+ reblog:
+ taken: թութը գոյություն ունի
diff --git a/config/locales/activerecord.kab.yml b/config/locales/activerecord.kab.yml
index 21007347c..24e2760da 100644
--- a/config/locales/activerecord.kab.yml
+++ b/config/locales/activerecord.kab.yml
@@ -3,6 +3,7 @@ kab:
activerecord:
attributes:
poll:
+ expires_at: Azemz n tagara
options: Tifranin
errors:
models:
@@ -10,3 +11,7 @@ kab:
attributes:
username:
invalid: isekkilen, uṭṭunen d yijerriden n wadda kan
+ status:
+ attributes:
+ reblog:
+ taken: n iddaden yellan yakan
diff --git a/config/locales/activerecord.pt-BR.yml b/config/locales/activerecord.pt-BR.yml
index 5a7d48bc3..f768f0d4f 100644
--- a/config/locales/activerecord.pt-BR.yml
+++ b/config/locales/activerecord.pt-BR.yml
@@ -4,7 +4,7 @@ pt-BR:
attributes:
poll:
expires_at: Expira em
- options: Opções
+ options: Escolhas
errors:
models:
account:
diff --git a/config/locales/activerecord.ro.yml b/config/locales/activerecord.ro.yml
index 79dbaa871..b6ef711d1 100644
--- a/config/locales/activerecord.ro.yml
+++ b/config/locales/activerecord.ro.yml
@@ -1 +1,17 @@
+---
ro:
+ activerecord:
+ attributes:
+ poll:
+ expires_at: Termen limită
+ options: Alegeri
+ errors:
+ models:
+ account:
+ attributes:
+ username:
+ invalid: doar litere, numere și sublinieri
+ status:
+ attributes:
+ reblog:
+ taken: de stare există deja
diff --git a/config/locales/activerecord.ru.yml b/config/locales/activerecord.ru.yml
index d4529428a..bff0d9584 100644
--- a/config/locales/activerecord.ru.yml
+++ b/config/locales/activerecord.ru.yml
@@ -14,4 +14,4 @@ ru:
status:
attributes:
reblog:
- taken: статуса уже существует
+ taken: поста уже существует
diff --git a/config/locales/activerecord.sc.yml b/config/locales/activerecord.sc.yml
new file mode 100644
index 000000000..646737269
--- /dev/null
+++ b/config/locales/activerecord.sc.yml
@@ -0,0 +1,6 @@
+---
+sc:
+ activerecord:
+ attributes:
+ poll:
+ expires_at: Iscadèntzia
diff --git a/config/locales/activerecord.sq.yml b/config/locales/activerecord.sq.yml
index e52345978..9fcb7b897 100644
--- a/config/locales/activerecord.sq.yml
+++ b/config/locales/activerecord.sq.yml
@@ -1,12 +1,16 @@
---
sq:
activerecord:
+ attributes:
+ poll:
+ expires_at: Skadon më
+ options: Mundësitë
errors:
models:
account:
attributes:
username:
- invalid: vetëm shkronja, numra dhe nënvija
+ invalid: vetëm shkronja, numra dhe nënvizim
status:
attributes:
reblog:
diff --git a/config/locales/activerecord.zh-HK.yml b/config/locales/activerecord.zh-HK.yml
index 2ebf9586c..c968e55aa 100644
--- a/config/locales/activerecord.zh-HK.yml
+++ b/config/locales/activerecord.zh-HK.yml
@@ -1,6 +1,10 @@
---
zh-HK:
activerecord:
+ attributes:
+ poll:
+ expires_at: 截止時間
+ options: 選擇
errors:
models:
account:
diff --git a/config/locales/ar.yml b/config/locales/ar.yml
index f5a6f067d..5e23b4f84 100644
--- a/config/locales/ar.yml
+++ b/config/locales/ar.yml
@@ -2,7 +2,7 @@
ar:
about:
about_hashtag_html: هذه تبويقات متاحة للجمهور تحتوي على الكلمات الدلالية #%{hashtag}. يمكنك التفاعل معها إن كان لديك حساب في أي مكان على الفديفرس.
- about_mastodon_html: ماستدون شبكة اجتماعية مبنية على أسُس بروتوكولات برمجيات الويب الحرة و مفتوحة المصدر. و هو لامركزي تمامًا كالبريد الإلكتروني.
+ about_mastodon_html: 'شبكة التواصل الإجتماعية المستقبَليّة: مِن دون إعلانات ، غير خاضعة لرقابة الشركات ، تصميم أخلاقي ولامركزية! بياناتكم مِلك لكم مع ماستدون!'
about_this: عن مثيل الخادوم هذا
active_count_after: نشط
active_footnote: مستخدم نشيط شهريا (MAU)
@@ -39,8 +39,10 @@ ar:
unavailable_content: محتوى غير متوفر
unavailable_content_description:
domain: الخادم
- reason: 'السبب:'
+ reason: السبب
+ rejecting_media: 'لن يتم معالجة أو تخزين ملفات الوسائط القادمة من هذه الخوادم، ولن يتم عرض أي صور مصغرة، مما يتطلب النقر اليدوي على الملف الأصلي:'
silenced: 'سيتم إخفاء المنشورات القادمة من هذه الخوادم في الخيوط الزمنية والمحادثات العامة، ولن يتم إنشاء أي إخطارات من جراء تفاعلات مستخدميها، ما لم تُتَابعهم:'
+ unavailable_content_html: يسمح لك ماستدون عموماً بعرض محتوى المستخدمين القادم من أي خادم آخر في الفديفرس والتفاعل معهم. وهذه هي الاستثناءات التي وضعت على هذا الخادوم بالذات.
user_count_after:
few: مستخدمين
many: مستخدمين
@@ -53,6 +55,7 @@ ar:
accounts:
choices_html: 'توصيات %{name}:'
endorsements_hint: يمكنك التوصية بالأشخاص الذين تتابعهم من واجهة الويب، وسيظهرون هنا.
+ featured_tags_hint: يمكنك عرض وسوم محددة سيتم عرضها هنا.
follow: اتبع
followers:
few: متابِعون
@@ -181,6 +184,7 @@ ar:
staff: الفريق
user: مستخدِم
search: البحث
+ search_same_email_domain: مستخدمون آخرون لديهم نفس نطاق البريد الإلكتروني
search_same_ip: مستخدِمون آخرون بنفس الـ IP
shared_inbox_url: رابط الصندوق المُشترَك للبريد الوارد
show:
@@ -202,6 +206,35 @@ ar:
web: الويب
whitelisted: في القائمة البيضاء
action_logs:
+ action_types:
+ assigned_to_self_report: أسند التقرير
+ change_email_user: تغيير عنوان البريد الإلكتروني الخاص بالمستخدم
+ confirm_user: تأكيد المستخدم
+ create_account_warning: إنشاء تحذير
+ create_announcement: إنشاء إعلان
+ create_custom_emoji: إنشاء إيموجي مخصص
+ destroy_announcement: احذف الإعلان
+ destroy_custom_emoji: احذف الإيموجي المخصص
+ destroy_status: حذف المنشور
+ disable_2fa_user: تعطيل 2FA
+ disable_custom_emoji: تعطيل الإيموجي المخصص
+ disable_user: تعطيل المستخدم
+ enable_custom_emoji: تفعيل الإيموجي المخصص
+ enable_user: تفعيل المستخدم
+ memorialize_account: جعل الحساب تذكاريا
+ promote_user: ترقية المستخدم
+ remove_avatar_user: احذف الصورة الرمزية
+ reopen_report: إعادة فتح التقرير
+ reset_password_user: إعادة تعيين كلمة المرور
+ resolve_report: حل الشكوى
+ silence_account: كتم الحساب
+ suspend_account: تعليق الحساب
+ unassigned_report: إلغاء إسناد الشكوى
+ unsilence_account: إلغاء كتم الحساب
+ unsuspend_account: إلغاء تعليق الحساب
+ update_announcement: تحديث الإعلان
+ update_custom_emoji: تحديث الإيموجي المخصص
+ update_status: تحديث الحالة
actions:
assigned_to_self_report: قام %{name} بتعيين التقرير %{target} لأنفسهم
change_email_user: غيّر %{name} عنوان البريد الإلكتروني للمستخدم %{target}
@@ -239,6 +272,9 @@ ar:
update_custom_emoji: "%{name} قام بتحديث الإيموجي %{target}"
update_status: لقد قام %{name} بتحديث منشور %{target}
deleted_status: "(منشور محذوف)"
+ empty: لم يتم العثور على سجلات.
+ filter_by_action: تصفية بحسب الإجراء
+ filter_by_user: تصفية حسب المستخدم
title: سِجلّ التفتيش و المعاينة
announcements:
destroyed_msg: تم حذف الإعلان بنجاح!
@@ -364,6 +400,7 @@ ar:
destroyed_msg: تم حذف نطاق البريد الإلكتروني من اللائحة السوداء بنجاح
domain: النطاق
empty: ليس هناك أية نطاقات للبريد الإلكتروني مُدرَجة في القائمة السوداء.
+ from_html: مِن %{domain}
new:
create: إضافة نطاق
title: إضافة نطاق بريد جديد إلى اللائحة السوداء
@@ -421,10 +458,26 @@ ar:
created_msg: تم إنشاء ملاحظة الشكوى بنجاح!
destroyed_msg: تم حذف ملاحظة الشكوى بنجاح!
reports:
+ account:
+ notes:
+ few: "%{count} ملاحظات"
+ many: "%{count} ملاحظات"
+ one: "%{count} ملاحظة"
+ other: "%{count} ملاحظات"
+ two: "%{count} ملاحظتَيْن"
+ zero: "%{count} ملاحظات"
+ reports:
+ few: "%{count} تقارير"
+ many: "%{count} تقارير"
+ one: "%{count} تقرير واحد"
+ other: "%{count} تقارير"
+ two: "%{count} تقريرَيْن"
+ zero: "%{count} تقارير"
action_taken_by: تم اتخاذ الإجراء مِن طرف
are_you_sure: هل أنت متأكد ؟
assign_to_self: عين لي
assigned: تعين رئيس
+ by_target_domain: نطاق الحساب المبلّغ عنه
comment:
none: لا شيء
created_at: ذكرت
@@ -466,11 +519,16 @@ ar:
all: للجميع
disabled: لا أحد
title: اظهر خاصية حجب النطاقات
+ users: للمستخدمين المتصلين محليا
domain_blocks_rationale:
title: اظهر السبب
+ enable_bootstrap_timeline_accounts:
+ title: تمكين الاشتراكات الافتراضية للمستخدمين الجدد
hero:
desc_html: معروض على الصفحة الأولى. لا يقل عن 600 × 100 بكسل. عند عدم التعيين ، تعود الصورة إلى النسخة المصغرة على سبيل المثال
title: الصورة الرأسية
+ mascot:
+ title: صورة الماسكوت
peers_api_enabled:
desc_html: أسماء النطاقات التي التقى بها مثيل الخادوم على البيئة الموحَّدة فديفرس
title: نشر عدد مثيلات الخوادم التي تم مصادفتها
@@ -527,6 +585,9 @@ ar:
title: السماح للوسوم بالظهور على المتداوَلة بدون مراجعة مسبقة
trends:
title: الوسوم المتداولة
+ site_uploads:
+ delete: احذف الملف الذي تم تحميله
+ destroyed_msg: تم حذف التحميل مِن الموقع بنجاح!
statuses:
back_to_account: العودة إلى صفحة الحساب
batch:
@@ -562,7 +623,6 @@ ar:
warning_presets:
add_new: إضافة واحد جديد
delete: حذف
- edit: تعديل
edit_preset: تعديل نموذج التحذير
title: إدارة نماذج التحذير
admin_mailer:
@@ -575,9 +635,11 @@ ar:
aliases:
add_new: أنشئ كُنية
created_msg: تم إنشاء الكُنية الجديدة بنجاح. يمكنكم الآن الشروع في الإنتقال مِن حسابكم القديم.
+ hint_html: إذا كنت ترغب في الانتقال من حساب آخر إلى هذا الحساب الحالي، يمكنك إنشاء اسم مستعار هنا، والذي هو مطلوب قبل أن تتمكن من المضي قدما في نقل متابِعيك من الحساب القديم إلى هذا الحساب. هذا الإجراء بحد ذاته هو غير مؤذي و قابل للعكس. تتم بداية تهجير الحساب من الحساب القديم.
remove: إلغاء ربط الكنية
appearance:
advanced_web_interface: واجهة الويب المتقدمة
+ advanced_web_interface_hint: 'إذا كنت ترغب في استخدام عرض شاشتك بأكمله، فواجهة الويب المتقدمة تسمح لك بضبط العديد من الأعمدة المختلفة لرؤية أكبر قدر من المعلومات التي ترغب فيها في آن واحد: الخيط الرئيسي والإخطارات والخيط الزمني الفدرالي وأي عدد من القوائم والوسوم.'
animations_and_accessibility: الإتاحة والحركة
confirmation_dialogs: نوافذ التأكيد
discovery: استكشاف
@@ -642,6 +704,7 @@ ar:
trouble_logging_in: هل صادفتكم مشكلة في الولوج؟
authorize_follow:
already_following: أنت تتابع بالفعل هذا الحساب
+ already_requested: لقد قُمتَ بإرسال طلب متابَعة إلى هذا الحساب مِن قَبل
error: يا للأسف، وقع هناك خطأ إثر عملية البحث عن الحساب عن بعد
follow: اتبع
follow_request: 'لقد قمت بإرسال طلب متابعة إلى:'
@@ -684,6 +747,7 @@ ar:
data_removal: سوف تُحذَف منشوراتك والبيانات الأخرى نهائيا
email_change_html: بإمكانك تغيير عنوان بريدك الإلكتروني دون أن يُحذف حسابك
email_contact_html: إن لم تتلقّ أي شيء ، يمكنك مراسلة %{email} لطلب المساعدة
+ email_reconfirmation_html: إن لم تتلقّ الرسالة الإلكترونية للتأكيد ، بإمكانك إعادة طلبها ثانيةً
irreversible: لن يكون بإمكانك استرجاع أو إعادة تنشيط حسابك
more_details_html: للمزيد مِن التفاصيل ، يرجى الإطلاع على سياسة الخصوصية.
username_available: سيصبح اسم مستخدمك متوفرا ثانية
@@ -774,6 +838,8 @@ ar:
inactive: ليس نشطا
publicize_checkbox: 'وقم بتبويق هذا:'
publicize_toot: 'متحقق منه! أنا %{username} على %{service}: %{url}'
+ remove: احذف الدليل مِن الحساب
+ removed: تم حذف الدليل مِن الحساب بنجاح
status: حالة التحقق
view_proof: عرض الدليل
imports:
@@ -825,17 +891,20 @@ ar:
images_and_video: ليس بالإمكان إرفاق فيديو في منشور يحتوي مسبقا على صور
too_many: لا يمكن إرفاق أكثر من 4 ملفات
migrations:
- acct: username@domain للحساب الجديد
+ acct: انتقل إلى
cancel: ألغِ التوجيه
+ cancel_explanation: إلغاء إعادة التوجيه سيؤدي إلى إعادة تنشيط حسابك الجاري، ولكن لن يستعيد قائمة المتابِعين الذين تم نقلهم إلى ذلك الحساب.
cancelled_msg: تم إلغاء التوجيه بنجاح.
errors:
already_moved: هو نفسه نفس الحساب الذي قمت بالإنتقال إليه
+ missing_also_known_as: لا يُشير بالذِكر إلى هذا الحساب
move_to_self: لا يمكنه أن يكون الحساب الحالي
not_found: تعذر العثور عليه
on_cooldown: إنّك في مرحلة الجمود
followers_count: المتابِعين عند الإنتقال
incoming_migrations: الانتقال مِن حساب آخر
incoming_migrations_html: قصد الإنتقال من حساب آخَر إلى هذا يجب عليك أوّلًا إنشاء كُنية حساب.
+ moved_msg: إنّ حسابك الآن معاد توجيهه إلى %{acct} ويتم نقل متابِعيك نحوه.
not_redirecting: حاليا ، حسابك لا يقوم بالتحويل إلى أي حساب آخر.
past_migrations: التهجيرات السابقة
proceed_with_move: انقل مشارِكيك
@@ -917,6 +986,7 @@ ar:
duration_too_short: مبكّر جدا
expired: لقد انتهى استطلاع الرأي
invalid_choice: خيار التصويت الذي قُمتَ يتحديده غير موجود
+ too_few_options: يجب أن يحتوي على أكثر من عنصر واحد
too_many_options: لا يمكنه أن يحتوي أكثر مِن %{max} عناصر
preferences:
other: إعدادات أخرى
@@ -924,6 +994,7 @@ ar:
public_timelines: الخيوط الزمنية العامة
reactions:
errors:
+ limit_reached: تم بلوغ الحد الأقصى لردود الفعل المختلفة
unrecognized_emoji: لم يتم التعرف على أنه إيموجي
relationships:
activity: نشاط الحساب
@@ -947,6 +1018,7 @@ ar:
no_account_html: أليس عندك حساب بعدُ ؟ يُمْكنك التسجيل مِن هنا
proceed: أكمل المتابعة
prompt: 'إنك بصدد متابعة:'
+ reason_html: "لماذا هذه الخطوة ضرورية؟ %{instance}
قد لا يكون هذا الخادم هو الذي سجلت فيه حيابك، لذا نحن بحاجة إلى إعادة توجيهك إلى خادمك الرئيسي أولاً."
remote_interaction:
favourite:
proceed: المواصلة إلى المفضلة
@@ -958,6 +1030,7 @@ ar:
proceed: المواصلة إلى الرد
prompt: 'ترغب في الرد على هذا التبويق:'
scheduled_statuses:
+ over_daily_limit: لقد تجاوزتَ حد الـ %{limit} تبويقات مُبَرمَجة المسموح بها لذلك اليوم
over_total_limit: لقد بلغت حد الـ %{limit} مِن التبويقات المبرمَجة
too_soon: يجب أن يكون تاريخ البرمجة في المستقبَل
sessions:
@@ -1050,6 +1123,8 @@ ar:
other: 'يحتوي على وسوم غير مسموح بها: %{tags}'
two: 'يحتوي على وسوم غير مسموح بها: %{tags}'
zero: 'يحتوي على وسوم غير مسموح بها: %{tags}'
+ errors:
+ in_reply_not_found: إنّ المنشور الذي تحاول الرد عليه غير موجود على ما يبدو.
language_detection: اكتشاف اللغة تلقائيا
open_in_web: افتح في الويب
over_character_limit: تم تجاوز حد الـ %{max} حرف المسموح بها
@@ -1089,6 +1164,8 @@ ar:
pinned: تبويق مثبّت
reblogged: رقّاه
sensitive_content: محتوى حساس
+ tags:
+ does_not_match_previous_name: لا يطابق الإسم السابق
terms:
title: شروط الخدمة وسياسة الخصوصية على %{instance}
themes:
@@ -1112,6 +1189,7 @@ ar:
manual_instructions: 'في حالة تعذّر مسح رمز الكيو آر أو طُلب منك إدخال يدوي، يُمْكِنك إدخال هذا النص السري على التطبيق:'
recovery_codes: النسخ الاحتياطي لرموز الاسترجاع
recovery_codes_regenerated: تم إعادة توليد رموز الاسترجاع الاحتياطية بنجاح
+ recovery_instructions_html: إن فقدت الوصول إلى هاتفك، يمكنك استخدام أحد رموز الاسترداد أدناه لاستعادة الوصول إلى حسابك. حافظ على رموز الاسترداد بأمان. يمكنك ، على سبيل المثال ، طباعتها وتخزينها مع مستندات أخرى هامة.
setup: تنشيط
wrong_code: الرمز الذي أدخلته غير صالح! تحقق من صحة الوقت على الخادم و الجهاز؟
user_mailer:
@@ -1120,6 +1198,8 @@ ar:
subject: نسخة بيانات حسابك جاهزة للتنزيل
title: المغادرة بأرشيف الحساب
warning:
+ explanation:
+ disable: عندما يتم تجميد حسابك، تظل بيانات حسابك سليمة، ولكن لا يمكنك تنفيذ أي إجراءات حتى يتم فتحه.
get_in_touch: يمكنك الرد على هذا البريد الإلكتروني للاتصال بفريق %{instance}.
review_server_policies: مراجعة شروط السيرفر
statuses: 'خصيصا لـ:'
diff --git a/config/locales/ast.yml b/config/locales/ast.yml
index d7e0faf41..d2c1a1d72 100644
--- a/config/locales/ast.yml
+++ b/config/locales/ast.yml
@@ -173,6 +173,8 @@ ast:
body_remote: Daquién dende %{domain} informó de %{target}
new_trending_tag:
body: 'Güei la etiqueta #%{name} ye tendencia pero nun se revisó anteriormente. Nun va amosase públicamente a nun ser que lo permitas o guardes el formulariu como ta pa nun saber más d''ello.'
+ aliases:
+ empty: Nun tienes nomatos.
appearance:
advanced_web_interface: Interfaz web avanzada
advanced_web_interface_hint: 'Si quies asegúrate de que s''use tol anchor de la pantalla, la interfaz web avanzada permítete configurar munches columnes estremaes pa ver tanta información al empar como quieras: Aniciu, avisos, llinia temporal federada, cualesquier cantidá de llistes y etiquetes...'
@@ -209,6 +211,7 @@ ast:
trouble_logging_in: "¿Problemes col aniciu de sesión?"
authorize_follow:
already_following: Yá tas siguiendo a esta cuenta
+ already_requested: Yá unviesti una solicitú de siguimientu a esa cuenta
error: Desafortunadamente, hebo un fallu guetando la cuenta remota
follow_request: 'Unviesti una solicitú de siguimientu a:'
post_follow:
@@ -354,7 +357,7 @@ ast:
errors:
already_voted: Yá votesti nesta encuesta
expired: La encuesta yá finó
- invalid_choice: El la opción de votu escoyida nun esiste
+ invalid_choice: La opción de votu escoyida nun esiste
preferences:
public_timelines: Llinies temporales públiques
relationships:
diff --git a/config/locales/bg.yml b/config/locales/bg.yml
index 07149f51f..4142d439f 100644
--- a/config/locales/bg.yml
+++ b/config/locales/bg.yml
@@ -54,7 +54,7 @@ bg:
'406': This page is not available in the requested format.
'410': The page you were looking for doesn't exist here anymore.
'422':
- '429': Throttled
+ '429': Too many requests
'500':
'503': The page could not be served due to a temporary server failure.
exports:
diff --git a/config/locales/bn.yml b/config/locales/bn.yml
index 7dd49ff96..ad613f721 100644
--- a/config/locales/bn.yml
+++ b/config/locales/bn.yml
@@ -201,7 +201,7 @@ bn:
'406': This page is not available in the requested format.
'410': The page you were looking for doesn't exist here anymore.
'422':
- '429': Throttled
+ '429': Too many requests
'500':
'503': The page could not be served due to a temporary server failure.
invites:
diff --git a/config/locales/br.yml b/config/locales/br.yml
index 7d15639ee..5da24d25c 100644
--- a/config/locales/br.yml
+++ b/config/locales/br.yml
@@ -3,8 +3,140 @@ br:
about:
about_this: Diàr-benn
active_count_after: oberiant
+ api: API
apps: Arloadoù pellgomz
apps_platforms: Ober get Mastodoñ àr iOS, Android ha savennoù arall
+ contact: Darempred
+ discover_users: Dizoleiñ implijer·ien·ezed
+ learn_more: Gouzout hiroc'h
+ privacy_policy: Reolennoù prevezded
+ source_code: Boneg tarzh
+ terms: Divizoù gwerzhañ hollek
+ unavailable_content_description:
+ domain: Dafariad
+ accounts:
+ media: Media
+ posts_tab_heading: Toudoù
+ posts_with_replies: Toudoù ha respontoù
+ roles:
+ admin: Merour
+ bot: Robot
+ group: Strollad
+ moderator: Mod
+ unavailable: Profil dihegerz
+ unfollow: Diheuliañ
+ admin:
+ account_moderation_notes:
+ delete: Dilemel
+ accounts:
+ change_email:
+ current_email: Postel bremanel
+ label: Kemm ar postel
+ new_email: Postel nevez
+ submit: Kemm ar postel
+ enable: Gweredekaat
+ enabled: Gweredekaet
+ followers: Heulier·ezed·ien
+ header: Talbenn
+ ip: IP
+ location:
+ local: Lec'hel
+ remote: A-bell
+ moderation:
+ active: Oberiant
+ silenced: Mudet
+ suspended: Astalet
+ perform_full_suspension: Astalañ
+ protocol: Komenad
+ public: Publik
+ reject: Nac'hañ
+ reject_all: Nac'hañ pep hini
+ remove_header: Dilemel an talbenn
+ reset: Adderaouekaat
+ reset_password: Adderaouekaat ar ger-tremen
+ roles:
+ admin: Merour
+ moderator: Habaskaer·ez
+ user: Implijer·ez
+ action_logs:
+ deleted_status: "(statud dilemet)"
+ announcements:
+ new:
+ create: Sevel ur gemenn
+ title: Kemenn nevez
+ title: Kemennoù
+ custom_emojis:
+ delete: Dilemel
+ disable: Diweredekaat
+ disabled: Diweredekaet
+ emoji: Fromlun
+ enable: Gweredekaat
+ enabled: Gweredekaet
+ dashboard:
+ config: Kefluniadur
+ software: Meziant
+ trends: Luskadoù
+ domain_blocks:
+ domain: Domani
+ new:
+ create: Sevel ur stanker
+ severity:
+ noop: Hini ebet
+ silence: Mudañ
+ suspend: Astalañ
+ severity:
+ silence: mudet
+ suspend: astalet
+ show:
+ undo: Dizober
+ email_domain_blocks:
+ add_new: Ouzhpenniñ unan nevez
+ delete: Dilemel
+ domain: Domani
+ from_html: eus %{domain}
+ new:
+ create: Ouzhpenniñ un domani
+ instances:
+ by_domain: Domani
+ moderation:
+ all: Pep tra
+ settings:
+ domain_blocks:
+ all: D'an holl dud
+ site_title: Anv ar servijer
+ title: Arventennoù al lec'hienn
+ auth:
+ change_password: Ger-tremen
+ delete_account: Dilemel ar gont
+ login: Mont tre
+ logout: Digennaskañ
+ providers:
+ saml: SAML
+ reset_password: Adderaouekaat ar ger-tremen
+ security: Diogelroez
+ setup:
+ title: Kefluniañ
+ authorize_follow:
+ title: Heuliañ %{acct}
+ challenge:
+ confirm: Kenderc' hel
+ invalid_password: Ger-tremen diwiriek
+ datetime:
+ distance_in_words:
+ about_x_hours: "%{count}e"
+ about_x_months: "%{count}miz"
+ about_x_years: "%{count}b"
+ almost_x_years: "%{count}b"
+ less_than_x_minutes: "%{count}m"
+ over_x_years: "%{count}b"
+ x_days: "%{count}d"
+ x_minutes: "%{count}m"
+ x_months: "%{count}miz"
+ x_seconds: "%{count}eil"
+ deletes:
+ proceed: Dilemel ar gont
+ directories:
+ directory: Roll ar profiloù
errors:
'400': The request you submitted was invalid or malformed.
'403': You don't have permission to view this page.
@@ -12,14 +144,93 @@ br:
'406': This page is not available in the requested format.
'410': The page you were looking for doesn't exist here anymore.
'422':
- '429': Throttled
+ '429': Too many requests
'500':
'503': The page could not be served due to a temporary server failure.
+ featured_tags:
+ add_new: Ouzhpenniñ unan nevez
+ filters:
+ contexts:
+ account: Profiloù
+ notifications: Kemennoù
+ index:
+ delete: Dilemel
+ footer:
+ developers: Diorroerien
+ more: Muioc'h…
+ generic:
+ all: Pep tra
+ copy: Eilañ
+ delete: Dilemel
+ order_by: Urzhiañ dre
invites:
expires_in:
'1800': 30 minutes
'21600': 6 hours
'3600': 1 hour
- '43200': 12 hours
- '604800': 1 week
- '86400': 1 day
+ '43200': 12 eur
+ '604800': 1 sizhun
+ '86400': 1 deiz
+ expires_in_prompt: Birviken
+ title: Pediñ tud
+ notification_mailer:
+ follow:
+ title: Heulier nevez
+ mention:
+ action: Respont
+ relationships:
+ followers: Heulier·ezed·ien
+ sessions:
+ browser: Merdeer
+ browsers:
+ alipay: Alipay
+ blackberry: Blackberry
+ chrome: Chrome
+ edge: Microsoft Edge
+ electron: Electron
+ firefox: Firefox
+ ie: Internet Explorer
+ micro_messenger: MicroMessenger
+ nokia: Nokia S40 Ovi Browser
+ opera: Opera
+ otter: Otter
+ phantom_js: PhantomJS
+ qq: QQ Browser
+ safari: Safari
+ uc_browser: UCBrowser
+ weibo: Weibo
+ ip: IP
+ platforms:
+ adobe_air: Adobe Air
+ android: Android
+ blackberry: Blackberry
+ chrome_os: ChromeOS
+ firefox_os: Firefox OS
+ ios: iOS
+ linux: Linux
+ mac: macOS
+ windows: Windows
+ statuses:
+ show_more: Diskouez muioc'h
+ title: '%{name}: "%{quote}"'
+ visibilities:
+ public: Publik
+ stream_entries:
+ pinned: Toud spilhennet
+ themes:
+ default: Mastodoñ (Teñval)
+ mastodon-light: Mastodoñ (Sklaer)
+ time:
+ formats:
+ default: "%He%M, %d %b %Y"
+ month: "%b %Y"
+ two_factor_authentication:
+ disable: Diweredekaat
+ enable: Gweredekaat
+ setup: Kefluniañ
+ user_mailer:
+ warning:
+ title:
+ none: Diwall
+ welcome:
+ edit_profile_action: Kefluniañ ar profil
diff --git a/config/locales/ca.yml b/config/locales/ca.yml
index 1c30b6b7a..ccb259eb1 100644
--- a/config/locales/ca.yml
+++ b/config/locales/ca.yml
@@ -92,6 +92,7 @@ ca:
delete: Suprimeix
destroyed_msg: Nota de moderació destruïda amb èxit!
accounts:
+ add_email_domain_block: Afegir el domini de correu a la llista negra
approve: Aprova
approve_all: Aprova'ls tots
are_you_sure: N'estàs segur?
@@ -172,6 +173,7 @@ ca:
staff: Personal
user: Usuari
search: Cerca
+ search_same_email_domain: Altres usuaris amb el mateix domini de correu
search_same_ip: Altres usuaris amb la mateixa IP
shared_inbox_url: URL de la safata d'entrada compartida
show:
@@ -193,6 +195,42 @@ ca:
web: Web
whitelisted: Llista blanca
action_logs:
+ action_types:
+ assigned_to_self_report: Assigna l'informe
+ change_email_user: Canvia l'adreça electrònica per l'usuari
+ confirm_user: Confirma l'usuari
+ create_account_warning: Crea un avís
+ create_announcement: Crea un anunci
+ create_custom_emoji: Crea un emoji personalitzat
+ create_domain_allow: Crea un domini permès
+ create_domain_block: Crea un bloqueig de domini
+ create_email_domain_block: Crea un bloqueig de domini d'adreça de correu
+ demote_user: Degrada l'usuari
+ destroy_announcement: Esborra l'anunci
+ destroy_custom_emoji: Esborra l'emoji personalitzat
+ destroy_domain_allow: Esborra el domini permès
+ destroy_domain_block: Esborra el bloqueig de domini
+ destroy_email_domain_block: Esborra el bloqueig de domini de l'adreça de correu
+ destroy_status: Esborra el tut
+ disable_2fa_user: Desactiva 2FA
+ disable_custom_emoji: Desactiva l'emoji personalitzat
+ disable_user: Deshabilita l'usuari
+ enable_custom_emoji: Activa l'emoji personalitzat
+ enable_user: Activa l'usuari
+ memorialize_account: Memoritza el compte
+ promote_user: Promou l'usuari
+ remove_avatar_user: Eliminar avatar
+ reopen_report: Reobre l'informe
+ reset_password_user: Restableix la contrasenya
+ resolve_report: Resolt l'informe
+ silence_account: Silencia el compte
+ suspend_account: Suspèn el compte
+ unassigned_report: Des-assigna l'informe
+ unsilence_account: Desfés el silenci del compte
+ unsuspend_account: Desfés la suspensió del compte
+ update_announcement: Actualitza l'anunci
+ update_custom_emoji: Actualitza l'emoji personalitzat
+ update_status: Actualitza l'estat
actions:
assigned_to_self_report: "%{name} han assignat l'informe %{target} a ells mateixos"
change_email_user: "%{name} ha canviat l'adreça de correu electrònic del usuari %{target}"
@@ -230,6 +268,9 @@ ca:
update_custom_emoji: "%{name} ha actualitzat l'emoji %{target}"
update_status: "%{name} estat actualitzat per %{target}"
deleted_status: "(tut esborrat)"
+ empty: No s’han trobat registres.
+ filter_by_action: Filtra per acció
+ filter_by_user: Filtra per usuari
title: Registre d'auditoria
announcements:
destroyed_msg: L’anunci s’ha esborrat amb èxit!
@@ -358,6 +399,7 @@ ca:
destroyed_msg: S'ha eliminat correctament el bloc del domini de correu
domain: Domini
empty: Cap domini de correu a la llista negre.
+ from_html: des de %{domain}
new:
create: Afegeix un domini
title: Nova adreça de correu en la llista negra
@@ -537,6 +579,9 @@ ca:
trends:
desc_html: Mostra públicament les etiquetes revisades anteriorment que actualment estan en tendència
title: Etiquetes tendència
+ site_uploads:
+ delete: Esborra el fitxer pujat
+ destroyed_msg: La càrrega al lloc s'ha suprimit correctament!
statuses:
back_to_account: Torna a la pàgina del compte
batch:
@@ -573,7 +618,6 @@ ca:
warning_presets:
add_new: Afegeix-ne un de nou
delete: Esborra
- edit: Edita
edit_preset: Edita l'avís predeterminat
title: Gestiona les configuracions predefinides dels avisos
admin_mailer:
@@ -591,6 +635,7 @@ ca:
add_new: Crea un àlies
created_msg: Nou àlies creat amb èxit. Ara pots iniciar el moviment des de'l compte vell.
deleted_msg: Àlies eliminat amb èxit. Moure't des d'aquell compte a aquests ja no serà possible.
+ empty: No hi tens cap àlies.
hint_html: Si et vols moure des d'un altre compte a aquest, aquí pots crear un àlies, el qual és requerit abans que puguis procedir a moure els seguidors del compte vell a aquest. Aquesta acció és per si mateixa inofensiva i reversible. La migració del compte és iniciada des de'l compte vell.
remove: Desvincula l'àlies
appearance:
@@ -661,6 +706,7 @@ ca:
trouble_logging_in: Problemes per iniciar la sessió?
authorize_follow:
already_following: Ja estàs seguint aquest compte
+ already_requested: Ja has enviat una sol·licitud de seguiment a aquest usuari
error: Malauradament, ha ocorregut un error cercant el compte remot
follow: Segueix
follow_request: 'Has enviat una sol·licitud de seguiment a:'
@@ -711,7 +757,7 @@ ca:
username_unavailable: El teu nom d'usuari quedarà inutilitzable
directories:
directory: Directori de perfils
- explanation: Descobreix usuaris segons els seus interessos
+ explanation: Descobreix usuaris segons els teus interessos
explore_mastodon: Explora %{title}
domain_validator:
invalid_domain: no es un nom de domini vàlid
@@ -804,6 +850,8 @@ ca:
inactive: Inactiu
publicize_checkbox: 'I envia un tut d''això:'
publicize_toot: 'Està provat! Sóc %{username} a %{service}: %{url}'
+ remove: Elimina prova d’identitat del compte
+ removed: Prova d’identitat del compte eliminada amb èxit
status: Estat de verificació
view_proof: Veure la prova
imports:
@@ -849,6 +897,7 @@ ca:
media_attachments:
validations:
images_and_video: No es pot adjuntar un vídeo a una publicació que ja contingui imatges
+ not_ready: No es poden adjuntar fitxers que no s'hagin acabat de processar. Torna-ho a provar en un moment!
too_many: No es poden adjuntar més de 4 fitxers
migrations:
acct: Mogut a
@@ -1070,6 +1119,8 @@ ca:
disallowed_hashtags:
one: 'conté una etiqueta no permesa: %{tags}'
other: 'conté les etiquetes no permeses: %{tags}'
+ errors:
+ in_reply_not_found: El tut al qual intentes respondre sembla que no existeix.
language_detection: Detecta automàticament el llenguatge
open_in_web: Obre en la web
over_character_limit: Límit de caràcters de %{max} superat
diff --git a/config/locales/co.yml b/config/locales/co.yml
index 24f7f45fc..2585b550f 100644
--- a/config/locales/co.yml
+++ b/config/locales/co.yml
@@ -92,6 +92,7 @@ co:
delete: Toglie
destroyed_msg: Nota di muderazione sguassata!
accounts:
+ add_email_domain_block: Mette u duminiu e-mail in lista nera
approve: Appruvà
approve_all: Appruvà tuttu
are_you_sure: Site sicuru·a?
@@ -172,6 +173,7 @@ co:
staff: Squadra
user: Utilizatore
search: Cercà
+ search_same_email_domain: Altri utilizatori cù listessu duminiu d'e-mail
search_same_ip: Altri utilizatori cù listessa IP
shared_inbox_url: URL di l’inbox spartuta
show:
@@ -193,6 +195,42 @@ co:
web: Web
whitelisted: In a lista bianca
action_logs:
+ action_types:
+ assigned_to_self_report: Assignà signalamentu
+ change_email_user: Mudificà l'E-mail di l'Utilizatore
+ confirm_user: Cunfirmà Utilizatore
+ create_account_warning: Creà avertimentu
+ create_announcement: Creà Annunziu
+ create_custom_emoji: Creà Emoji Persunalizata
+ create_domain_allow: Creà Auturizazione di Duminiu
+ create_domain_block: Creà Blucchime di Duminiu
+ create_email_domain_block: Creà Blucchime di Duminiu E-mail
+ demote_user: Ritrugadà Utilizatore
+ destroy_announcement: Toglie Annunziu
+ destroy_custom_emoji: Toglie Emoji Persunalizata
+ destroy_domain_allow: Toglie Auturizazione di Duminiu
+ destroy_domain_block: Toglie Blucchime di Duminiu
+ destroy_email_domain_block: Toglie blucchime di duminiu e-mail
+ destroy_status: Toglie u statutu
+ disable_2fa_user: Disattivà l’identificazione à 2 fattori
+ disable_custom_emoji: Disattivà Emoji Persunalizata
+ disable_user: Disattivà Utilizatore
+ enable_custom_emoji: Attivà Emoji Persunalizata
+ enable_user: Attivà utilizatore
+ memorialize_account: Trasfurmà contu in mimuriale
+ promote_user: Prumove Utilizatore
+ remove_avatar_user: Toglie Avatar
+ reopen_report: Riapre Signalamentu
+ reset_password_user: Riinizializà Chjave d'Accessu
+ resolve_report: Chjode Signalamentu
+ silence_account: Silenzà Contu
+ suspend_account: Suspende Contu
+ unassigned_report: Disassignà signalamentu
+ unsilence_account: Ùn Silenzà Più u Contu
+ unsuspend_account: Ùn Suspende Più u Contu
+ update_announcement: Cambià Annunziu
+ update_custom_emoji: Cambià Emoji Persunalizata
+ update_status: Cambià Statutu
actions:
assigned_to_self_report: "%{name} s’hè assignatu u signalamentu %{target}"
change_email_user: "%{name} hà cambiatu l’indirizzu e-mail di %{target}"
@@ -230,6 +268,9 @@ co:
update_custom_emoji: "%{name} hà messu à ghjornu l’emoji %{target}"
update_status: "%{name} hà cambiatu u statutu di %{target}"
deleted_status: "(statutu sguassatu)"
+ empty: Nunda trovu.
+ filter_by_action: Filtrà da azzione
+ filter_by_user: Filtrà da utilizatore
title: Ghjurnale d’audit
announcements:
destroyed_msg: Annunziu sguassatu!
@@ -358,6 +399,7 @@ co:
destroyed_msg: U blucchime di u duminiu d’e-mail ùn hè più attivu
domain: Duminiu
empty: Ùn c'hè manc'un duminiu d'email in lista nera.
+ from_html: da %{domain}
new:
create: Creà un blucchime
title: Nova iscrizzione nant’a lista nera e-mail
@@ -537,6 +579,9 @@ co:
trends:
desc_html: Mustrà à u pubblicu i hashtag chì sò stati digià verificati è chì sò in e tendenze avà
title: Tendenze di hashtag
+ site_uploads:
+ delete: Sguassà u fugliale caricatu
+ destroyed_msg: Fugliale sguassatu da u situ!
statuses:
back_to_account: Ritornu à a pagina di u contu
batch:
@@ -573,7 +618,6 @@ co:
warning_presets:
add_new: Aghjunghje
delete: Sguassà
- edit: Cambià
edit_preset: Cambià a preselezzione d'avertimentu
title: Amministrà e preselezzione d'avertimentu
admin_mailer:
@@ -591,6 +635,7 @@ co:
add_new: Creà un pseudonimu
created_msg: Novu pseudonimu creatu. Pudete avà inizià u trasferimentu da u vechju contu.
deleted_msg: U pseudonimu hè statu sguassatu. Ùn si puderà più migrà da questu contu à quellu.
+ empty: Ùn avete un pseudonimu.
hint_html: Per traslucà da un altru contu à questu, quì pudete creà un pseudonimu o "alias", riquisitu per trasferì l'abbunati da u vechju contu à u novu. St'azzione sola ùn face nunda è pò esse annullata senza prublemi. A migrazione hè principiata dapoi u vechju contu.
remove: Sguassà u pseudonimu
appearance:
@@ -661,6 +706,7 @@ co:
trouble_logging_in: Difficultà per cunnettavi?
authorize_follow:
already_following: Site digià abbunatu·a à stu contu
+ already_requested: Avete digià mandatu una dumanda d'abbunamentu à stu contu
error: Peccatu, c’hè statu un prublemu ricercandu u contu
follow: Siguità
follow_request: 'Avete dumandatu di siguità:'
@@ -804,6 +850,8 @@ co:
inactive: Inattiva
publicize_checkbox: 'È mandà stu statutu:'
publicize_toot: 'Hè pruvata! Sò %{username} nant’à %{service}: %{url}'
+ remove: Sguassà a prova da u contu
+ removed: Prova sguassata da u contu
status: Statutu di a verificazione
view_proof: Vede a prova
imports:
@@ -849,6 +897,7 @@ co:
media_attachments:
validations:
images_and_video: Ùn si pò micca aghjunghje un filmettu à un statutu chì hà digià ritratti
+ not_ready: Ùn si pò micca aghjunghje un fugliale micca ancu trattatu. Ripruvate più tardi!
too_many: Ùn si pò micca aghjunghje più di 4 fugliali
migrations:
acct: cugnome@duminiu di u novu contu
@@ -1070,6 +1119,8 @@ co:
disallowed_hashtags:
one: 'cuntene l’hashtag disattivatu: %{tags}'
other: 'cuntene l’hashtag disattivati: %{tags}'
+ errors:
+ in_reply_not_found: U statutu à quellu avete pruvatu di risponde ùn sembra micca esiste.
language_detection: Truvà a lingua autumaticamente
open_in_web: Apre nant’à u web
over_character_limit: Site sopr’à a limita di %{max} caratteri
diff --git a/config/locales/cs.yml b/config/locales/cs.yml
index bab669e7e..cb9eb77fc 100644
--- a/config/locales/cs.yml
+++ b/config/locales/cs.yml
@@ -100,6 +100,7 @@ cs:
delete: Smazat
destroyed_msg: Moderátorská poznámka byla úspěšně zničena!
accounts:
+ add_email_domain_block: Blokovat e-maily na této doméně
approve: Schválit
approve_all: Schválit vše
are_you_sure: Opravdu?
@@ -180,6 +181,7 @@ cs:
staff: Člen personálu
user: Uživatel
search: Hledat
+ search_same_email_domain: Ostatní uživatelé s e-mailem na stejné doméně
search_same_ip: Další uživatelé se stejnou IP adresou
shared_inbox_url: URL sdílené příchozí schránky
show:
@@ -201,6 +203,36 @@ cs:
web: Web
whitelisted: Na bílé listině
action_logs:
+ action_types:
+ assigned_to_self_report: Přiřadit hlášení
+ change_email_user: Změnit uživateli e-mailovou adresu
+ confirm_user: Potvrdit uživatele
+ create_account_warning: Vytvořit varování
+ create_announcement: Nové oznámení
+ create_custom_emoji: Vytvořit vlastní emoji
+ create_domain_allow: Povolit doménu
+ create_domain_block: Zablokovat doménu
+ create_email_domain_block: Zablokovat e-maily na doméně
+ demote_user: Snížit roli uživatele
+ destroy_announcement: Odstranit oznámení
+ destroy_custom_emoji: Odstranit vlastní emoji
+ destroy_domain_allow: Odstranit povolenou doménu
+ destroy_domain_block: Odstranit blokování domény
+ destroy_email_domain_block: Odstranit blokování e-mailů na doméně
+ destroy_status: Odstranit stav
+ disable_2fa_user: Vypnout 2FA
+ disable_custom_emoji: Zakázat vlastní emoji
+ disable_user: Deaktivovat uživatele
+ enable_custom_emoji: Povolit vlastní emoji
+ enable_user: Povolit uživatele
+ promote_user: Povýšit uživatele
+ reopen_report: Znovu otevřít hlášení
+ reset_password_user: Obnovit heslo
+ resolve_report: Označit hlášení jako vyřešené
+ unassigned_report: Zrušit přiřazení hlášení
+ update_announcement: Aktualizovat oznámení
+ update_custom_emoji: Aktualizovat vlastní emoji
+ update_status: Aktualizovat stav
actions:
assigned_to_self_report: Uživatel %{name} si přidělil hlášení %{target}
change_email_user: Uživatel %{name} změnil e-mailovou adresu uživatele %{target}
@@ -238,12 +270,15 @@ cs:
update_custom_emoji: Uživatel %{name} aktualizoval emoji %{target}
update_status: Uživatel %{name} aktualizoval toot uživatele %{target}
deleted_status: "(smazaný toot)"
+ filter_by_action: Filtrovat podle akce
+ filter_by_user: Filtrovat podle uživatele
title: Auditovací protokol
announcements:
destroyed_msg: Oznámení bylo úspěšně odstraněno
edit:
title: Upravit oznámení
empty: Nebyla nalezena žádná oznámení.
+ live: Živě
new:
create: Vytvořit oznámení
title: Nové oznámení
@@ -367,6 +402,7 @@ cs:
destroyed_msg: E-mailová doména úspěšně odstraněna z černé listiny
domain: Doména
empty: Na černé listině aktuálně nejsou žádné e-mailové domény.
+ from_html: z domény %{domain}
new:
create: Přidat doménu
title: Nová položka pro černou listinu e-mailů
@@ -552,6 +588,8 @@ cs:
trends:
desc_html: Veřejně zobrazit populární hashtagy, které byly předtím schváleny
title: Populární hashtagy
+ site_uploads:
+ delete: Odstranit nahraný soubor
statuses:
back_to_account: Zpět na stránku účtu
batch:
@@ -588,7 +626,6 @@ cs:
warning_presets:
add_new: Přidat nové
delete: Smazat
- edit: Upravit
edit_preset: Upravit předlohu pro varování
title: Spravovat předlohy pro varování
admin_mailer:
@@ -676,6 +713,7 @@ cs:
trouble_logging_in: Problémy s přihlášením?
authorize_follow:
already_following: Tento účet již sledujete
+ already_requested: Tomuto účtu už jste žádost o sledování zaslali
error: Při hledání vzdáleného účtu bohužel nastala chyba
follow: Sledovat
follow_request: 'Poslali jste žádost o sledování uživateli:'
@@ -1098,6 +1136,8 @@ cs:
many: 'obsahoval nepovolené hashtagy: %{tags}'
one: 'obsahoval nepovolený hashtag: %{tags}'
other: 'obsahoval nepovolené hashtagy: %{tags}'
+ errors:
+ in_reply_not_found: Stav, na který se pokoušíte odpovědět, neexistuje.
language_detection: Zjistit jazyk automaticky
open_in_web: Otevřít na webu
over_character_limit: byl překročen limit %{max} znaků
@@ -1119,6 +1159,7 @@ cs:
other: "%{count} hlasů"
vote: Hlasovat
show_more: Zobrazit více
+ show_thread: Zobrazit vlákno
sign_in_to_participate: Chcete-li se zúčastnit této konverzace, přihlaste se
title: "%{name}: „%{quote}“"
visibilities:
diff --git a/config/locales/cy.yml b/config/locales/cy.yml
index afca0212a..e5a069efa 100644
--- a/config/locales/cy.yml
+++ b/config/locales/cy.yml
@@ -108,6 +108,7 @@ cy:
delete: Dileu
destroyed_msg: Dinistrwyd nodyn goruwchwylio yn llwyddiannus!
accounts:
+ add_email_domain_block: Cosbrestru parth e-bost
approve: Cymeradwyo
approve_all: Cymeradwyo pob un
are_you_sure: Ydych chi'n siŵr?
@@ -188,6 +189,7 @@ cy:
staff: Staff
user: Defnyddiwr
search: Chwilio
+ search_same_email_domain: Defnyddwyr eraill gyda'r un parth ebost
search_same_ip: Defnyddwyr eraill gyda'r un IP
shared_inbox_url: URL Mewnflwch wedi ei rannu
show:
@@ -209,6 +211,42 @@ cy:
web: Gwe
whitelisted: Rhestredig wen
action_logs:
+ action_types:
+ assigned_to_self_report: Neilltuo Adroddiad
+ change_email_user: Newid Ebost ar gyfer Defnyddiwr
+ confirm_user: Cadarnhau Defnyddiwr
+ create_account_warning: Creu Rhybydd
+ create_announcement: Creu Cyhoeddiad
+ create_custom_emoji: Creu Emoji Addasiedig
+ create_domain_allow: Creu Alluogiad Parth
+ create_domain_block: Creu Gwaharddiad Parth
+ create_email_domain_block: Creu Gwaharddiad Parth Ebost
+ demote_user: Diraddio Defnyddiwr
+ destroy_announcement: Dileu Cyhoeddiad
+ destroy_custom_emoji: Dileu Emoji Addasiedig
+ destroy_domain_allow: Dileu Alluogiad Parth
+ destroy_domain_block: Dileu Gwaharddiad Parth
+ destroy_email_domain_block: Dileu gwaharddiad parth ebost
+ destroy_status: Dileu Statws
+ disable_2fa_user: Diffodd 2FA
+ disable_custom_emoji: Analluogi Emoji Addasiedig
+ disable_user: Analluogi Defnyddiwr
+ enable_custom_emoji: Alluogi Emoji Addasiedig
+ enable_user: Alluogi Defnyddiwr
+ memorialize_account: Cofadeilio Cyfrif
+ promote_user: Dyrchafu Defnyddiwr
+ remove_avatar_user: Tynnu Afatar
+ reopen_report: Ailagor Adroddiad
+ reset_password_user: Ailosod Cyfrinair
+ resolve_report: Datrus Adroddiad
+ silence_account: Tawelu Cyfrif
+ suspend_account: Gwahardd Cyfrif Dros Dro
+ unassigned_report: Dadneilltuo Adroddiad
+ unsilence_account: Dadawelu Cyfrif
+ unsuspend_account: Tynnu Gwahardd Cyfrif Dros Dro
+ update_announcement: Diweddaru Cyhoeddiad
+ update_custom_emoji: Diweddaru Emoji Addasiedig
+ update_status: Diweddaru Statws
actions:
assigned_to_self_report: Aseiniodd %{name} adroddiad %{target} i'w hunan
change_email_user: Newidodd %{name} gyfeiriad e-bost y defnyddiwr %{target}
@@ -246,6 +284,9 @@ cy:
update_custom_emoji: Diweddarodd %{name} emoji %{target}
update_status: Diweddarodd %{name} statws gan %{target}
deleted_status: "(statws wedi ei ddileu)"
+ empty: Dim logiau ar gael.
+ filter_by_action: Hidlo wrth weithred
+ filter_by_user: Hidlo wrth ddefnyddiwr
title: Log archwilio
announcements:
destroyed_msg: Cyhoeddiad wedi'i ddileu yn llwyddianus!
@@ -378,6 +419,7 @@ cy:
destroyed_msg: Llwyddwyd i ddileu parth e-bost o'r gosbrestr
domain: Parth
empty: Dim parthiau ebost ar y rhestr rhwystro.
+ from_html: o %{domain}
new:
create: Ychwanegu parth
title: Cofnod newydd yng nghosbrestr e-byst
@@ -569,6 +611,9 @@ cy:
trends:
desc_html: Arddangos hashnodau a adolygwyd yn gynt yn gyhoeddus sydd yn tueddu yn bresennol
title: Hashnodau tueddig
+ site_uploads:
+ delete: Dileu ffeil sydd wedi'i uwchlwytho
+ destroyed_msg: Uwchlwythiad wefan wedi'i ddileu yn lwyddianus!
statuses:
back_to_account: Yn ôl i dudalen y cyfrif
batch:
@@ -605,7 +650,6 @@ cy:
warning_presets:
add_new: Ychwanegu newydd
delete: Dileu
- edit: Golygu
edit_preset: Golygu rhagosodiad rhybudd
title: Rheoli rhagosodiadau rhybudd
admin_mailer:
@@ -623,6 +667,7 @@ cy:
add_new: Creu enw arall
created_msg: Wedi creu enw arall yn llwyddianus. Gallwch nawr dechrau'r symudiad o'r hen gyfrif.
deleted_msg: Wedi tynnu enw arall yn llwyddianus. Ni fydd symud o'r cyfrif hynny i'r cyfrif hon yn bosib.
+ empty: Nid oes gennych chi enwau eraill.
hint_html: Os hoffech symyd o gyfrif arall i'r cyfrif hon, gallwch creu enw arall fama, sydd yn angenrheidiol cyn i chi dechrau symyd ddilynwyr o'r hen gyfrif i'r cyfrif hon. Mae'r gweithred hon yn ddiniwed ac yn gildroadwy. Caiff symudiad y cyfrif ei dechrau o'r hen gyfrif.
remove: Dadgysylltu'r enw arall
appearance:
@@ -693,6 +738,7 @@ cy:
trouble_logging_in: Trafferdd mewngofnodi?
authorize_follow:
already_following: Yr ydych yn dilyn y cyfrif hwn yn barod
+ already_requested: Rydych barod wedi anfon ceisiad dilyn i'r cyfrif hynny
error: Yn anffodus, roedd gwall tra'n edrych am y cyfrif anghysbell
follow: Dilyn
follow_request: 'Yr ydych wedi anfon cais dilyn at:'
@@ -889,6 +935,7 @@ cy:
media_attachments:
validations:
images_and_video: Ni ellir ychwanegu fideo at statws sy'n cynnwys delweddau'n barod
+ not_ready: Methu atodi ffeiliau sydd dal yn prosesu. Ceisiwch eto mewn foment!
too_many: Ni ellir ychwanegu mwy na 4 dogfen
migrations:
acct: enwdefnyddiwr@parth y cyfrif newydd
@@ -1132,6 +1179,8 @@ cy:
other: 'yn cynnwys yr hashnod gwaharddedig: %{tags}'
two: 'yn cynnwys yr hashnod gwaharddedig: %{tags}'
zero: 'yn cynnwys yr hashnod gwaharddedig: %{tags}'
+ errors:
+ in_reply_not_found: Nid yw'r statws rydych yn ceisio ymateb i yn edrych fel ei fod yn bodoli.
language_detection: Canfod iaith yn awtomataidd
open_in_web: Agor yn y wê
over_character_limit: wedi mynd heibio'r uchafswm nodyn o %{max}
diff --git a/config/locales/da.yml b/config/locales/da.yml
index 1cdf7722e..c7189ae34 100644
--- a/config/locales/da.yml
+++ b/config/locales/da.yml
@@ -192,6 +192,12 @@ da:
web: Web
whitelisted: Hvidlistet
action_logs:
+ action_types:
+ confirm_user: Bekræft bruger
+ destroy_status: Slet status
+ disable_2fa_user: Slet 2FA
+ disable_user: Deaktiver brugeren
+ enable_user: Aktiver brugeren
actions:
assigned_to_self_report: "%{name} tildelte anmeldelsen %{target} til sig selv"
change_email_user: "%{name} ændrede email adressen for brugeren %{target}"
@@ -226,6 +232,8 @@ da:
update_custom_emoji: "%{name} opdaterede humørikonet %{target}"
update_status: "%{name} opdaterede status for %{target}"
deleted_status: "(slettet status)"
+ filter_by_action: Filtrer efter handling
+ filter_by_user: Filtrer efter bruger
title: Revisionslog
custom_emojis:
assign_category: Vælg kategori
@@ -314,6 +322,8 @@ da:
reject_reports: Afvis anmeldelser
rejecting_media: afviser mediefiler
rejecting_reports: afviser anmeldelser
+ severity:
+ suspend: suspenderet
show:
affected_accounts:
one: En konto i databasen påvirket
@@ -331,6 +341,7 @@ da:
delete: Slet
destroyed_msg: Fjernede succesfuldt email domænet fra sortliste
domain: Domæne
+ from_html: fra %{domain}
new:
create: Tilføj domæne
title: Ny email blokade opslag
@@ -489,7 +500,6 @@ da:
most_recent: Seneste
warning_presets:
delete: Slet
- edit: Rediger
admin_mailer:
new_report:
body: "%{reporter} har anmeldt %{target}"
@@ -615,6 +625,7 @@ da:
storage: Medie lager
filters:
contexts:
+ account: Profiler
home: Hjemme tidslinje
notifications: Notifikationer
public: Offentlig tidslinje
@@ -638,6 +649,7 @@ da:
all: Alle
changes_saved_msg: Ændringerne blev gemt!
copy: Kopier
+ delete: Slet
order_by: Sorter efter
save_changes: Gem ændringer
validation_errors:
@@ -849,6 +861,7 @@ da:
poll:
vote: Stem
show_more: Vis mere
+ show_thread: Vis tråd
sign_in_to_participate: Log ind for at deltage i samtalen
visibilities:
private: Kun-følgere
diff --git a/config/locales/de.yml b/config/locales/de.yml
index 50f994473..d99b36d14 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -92,6 +92,7 @@ de:
delete: Löschen
destroyed_msg: Moderationsnotiz erfolgreich gelöscht!
accounts:
+ add_email_domain_block: E-Mail-Domain blacklisten
approve: Akzeptieren
approve_all: Alle akzeptieren
are_you_sure: Bist du sicher?
@@ -172,6 +173,7 @@ de:
staff: Mitarbeiter
user: Nutzer
search: Suche
+ search_same_email_domain: Andere Benutzer mit der gleichen E-Mail-Domain
search_same_ip: Andere Benutzer mit derselben IP
shared_inbox_url: Geteilte Posteingang-URL
show:
@@ -193,6 +195,42 @@ de:
web: Web
whitelisted: Auf der Whitelist
action_logs:
+ action_types:
+ assigned_to_self_report: Bericht zuweisen
+ change_email_user: E-Mail des Benutzers ändern
+ confirm_user: Benutzer bestätigen
+ create_account_warning: Warnung erstellen
+ create_announcement: Ankündigung erstellen
+ create_custom_emoji: Eigene Emoji erstellen
+ create_domain_allow: Domain erlauben
+ create_domain_block: Domain blockieren
+ create_email_domain_block: E-Mail-Domain-Block erstellen
+ demote_user: Benutzer degradieren
+ destroy_announcement: Ankündigung löschen
+ destroy_custom_emoji: Eigene Emoji löschen
+ destroy_domain_allow: Erlaube das Löschen von Domains
+ destroy_domain_block: Domain-Blockade löschen
+ destroy_email_domain_block: E-Mail-Domain-Blockade löschen
+ destroy_status: Beitrag löschen
+ disable_2fa_user: 2FA deaktivieren
+ disable_custom_emoji: Benutzerdefiniertes Emoji deaktivieren
+ disable_user: Benutzer deaktivieren
+ enable_custom_emoji: Benutzerdefiniertes Emoji aktivieren
+ enable_user: Benutzer aktivieren
+ memorialize_account: Konto in ein Konto von einer verstorbenen Person umwandeln
+ promote_user: Benutzer befördern
+ remove_avatar_user: Profilbild entfernen
+ reopen_report: Meldung wieder eröffnen
+ reset_password_user: Passwort zurücksetzen
+ resolve_report: Bericht lösen
+ silence_account: Konto stummschalten
+ suspend_account: Konto sperren
+ unassigned_report: Berichtszuweisung entfernen
+ unsilence_account: Konto nicht mehr stummschalten
+ unsuspend_account: Konto nicht mehr sperren
+ update_announcement: Ankündigung aktualisieren
+ update_custom_emoji: Benutzerdefiniertes Emoji aktualisieren
+ update_status: Beitrag aktualisieren
actions:
assigned_to_self_report: "%{name} hat sich die Meldung %{target} selbst zugewiesen"
change_email_user: "%{name} hat die E-Mail-Adresse des Nutzers %{target} geändert"
@@ -230,6 +268,9 @@ de:
update_custom_emoji: "%{name} hat das %{target} Emoji geändert"
update_status: "%{name} hat einen Beitrag von %{target} aktualisiert"
deleted_status: "(gelöschter Beitrag)"
+ empty: Keine Protokolle gefunden.
+ filter_by_action: Nach Aktion filtern
+ filter_by_user: Nach Benutzer filtern
title: Überprüfungsprotokoll
announcements:
destroyed_msg: Ankündigung erfolgreich gelöscht!
@@ -358,6 +399,7 @@ de:
destroyed_msg: E-Mail-Domain-Blockade erfolgreich gelöscht
domain: Domain
empty: Keine E-Mail-Domains sind momentan auf der Blacklist.
+ from_html: von %{domain}
new:
create: Blockade erstellen
title: Neue E-Mail-Domain-Blockade
@@ -537,6 +579,9 @@ de:
trends:
desc_html: Zuvor überprüfte Hashtags öffentlich anzeigen, die derzeit angesagt sind
title: Trendende Hashtags
+ site_uploads:
+ delete: Hochgeladene Datei löschen
+ destroyed_msg: Upload erfolgreich gelöscht!
statuses:
back_to_account: Zurück zum Konto
batch:
@@ -573,7 +618,6 @@ de:
warning_presets:
add_new: Neu hinzufügen
delete: Löschen
- edit: Bearbeiten
edit_preset: Warnungsvorlage bearbeiten
title: Warnungsvorlagen verwalten
admin_mailer:
@@ -661,6 +705,7 @@ de:
trouble_logging_in: Schwierigkeiten beim Anmelden?
authorize_follow:
already_following: Du folgst diesem Konto bereits
+ already_requested: Du hast bereits eine Anfrage zum Folgen diesen Accounts versendet
error: Das Remote-Konto konnte nicht geladen werden
follow: Folgen
follow_request: 'Du hast eine Folgeanfrage gesendet an:'
@@ -849,6 +894,7 @@ de:
media_attachments:
validations:
images_and_video: Es kann kein Video an einen Beitrag, der bereits Bilder enthält, angehängt werden
+ not_ready: Dateien die noch nicht bearbeitet wurden, können nicht angehängt werden. Versuche es gleich noch einmal!
too_many: Es können nicht mehr als 4 Dateien angehängt werden
migrations:
acct: benutzername@domain des neuen Kontos
@@ -1070,6 +1116,8 @@ de:
disallowed_hashtags:
one: 'enthält einen verbotenen Hashtag: %{tags}'
other: 'enthält verbotene Hashtags: %{tags}'
+ errors:
+ in_reply_not_found: Der Beitrag, auf den du antworten möchtest, scheint nicht zu existieren.
language_detection: Sprache automatisch erkennen
open_in_web: Im Web öffnen
over_character_limit: Zeichenlimit von %{max} überschritten
diff --git a/config/locales/devise.ar.yml b/config/locales/devise.ar.yml
index 2033e082d..d5763e6bd 100644
--- a/config/locales/devise.ar.yml
+++ b/config/locales/devise.ar.yml
@@ -49,9 +49,11 @@ ar:
subject: 'ماستدون: نظام المصادقة بخطوتين مُعطّل'
title: إنّ 2FA معطّل
two_factor_enabled:
+ explanation: تم تفعيل المصادقة بخطوتين على حسابك. سيُطلب منك رمز تم توليده بواسطة تطبيق TOTP المقترن للولوج.
subject: 'ماستدون: تم تفعيل نظام المصادقة بخطوتين'
title: إنّ 2FA نشِط
two_factor_recovery_codes_changed:
+ explanation: لقد تم إلغاء رموز الاسترداد السابقة وأنشئت رموز جديدة.
subject: 'ماستدون: تم إعادة توليد رموز استرجاع المصادقة بخطوتين'
title: تم استبدال رموز استرجاع 2FA
unlock_instructions:
diff --git a/config/locales/devise.br.yml b/config/locales/devise.br.yml
index 3fe043754..acfa884b4 100644
--- a/config/locales/devise.br.yml
+++ b/config/locales/devise.br.yml
@@ -27,7 +27,15 @@ br:
reset_password_instructions:
action: Cheñch ar ger-tremen
explanation: Goulennet ho peus ur ger-tremen nevez evit ho kont.
+ title: Adderaouekaat ar ger-tremen
+ two_factor_disabled:
+ title: 2FA diweredekaet
+ two_factor_enabled:
+ title: 2FA gweredekaet
passwords:
updated_not_active: Kemmet eo bet ho ker-tremen ent reizh.
registrations:
signed_up: Donemat ! Kevreet oc'h.
+ errors:
+ messages:
+ not_found: digavet
diff --git a/config/locales/devise.da.yml b/config/locales/devise.da.yml
index 2cfd24658..75a035935 100644
--- a/config/locales/devise.da.yml
+++ b/config/locales/devise.da.yml
@@ -11,7 +11,7 @@ da:
invalid: Ugyldig %{authentication_keys} eller adgangskode.
last_attempt: Du har ét forsøg mere, før din konto bliver låst.
locked: Din konto er låst.
- not_found_in_database: Ugyldig %{authentication_keys} eller ugyldigt kodeord.
+ not_found_in_database: Ugyldig %{authentication_keys} eller adgangskode.
pending: Din konto er stadig under bedømmelse.
timeout: Din session er udløbet. Log venligst ind igen for at fortsætte.
unauthenticated: Du er nødt til at logge ind eller oprette dig for at fortsætte.
diff --git a/config/locales/devise.el.yml b/config/locales/devise.el.yml
index 5dc7658c2..7eb064e5d 100644
--- a/config/locales/devise.el.yml
+++ b/config/locales/devise.el.yml
@@ -18,10 +18,10 @@ el:
unconfirmed: Πρέπει να επιβεβαιώσεις τη διεύθυνση email σου για να συνεχίσεις.
mailer:
confirmation_instructions:
- action: Επιβεβαίωσε διεύθυνση email
+ action: Επιβεβαίωση διεύθυνσης email
action_with_app: Επιβεβαίωση και επιστροφή στο %{app}
explanation: Δημιούργησες έναν λογαριασμό στο %{host} με αυτή τη διεύθυνση email. Με ένα κλικ θα τον ενεργοποιήσεις. Αν δεν το έκανες εσύ, παρακαλούμε αγνόησε αυτό το email.
- explanation_when_pending: Έχεις υποβάλλει αίτηση πρόσκλησης στο %{host} με αυτή την ηλεκτρονική διεύθυνση email. Μόλις επιβεβαιώσεις το email σου, θα ελέγξουμε την αίτηση σου. Μέχρι τότε δε θα μπορεις να συνδεθείς. Αν απορριφθεί η αίτησή σου, τα στοιχεία σου θα αφαιρεθούν, άρα δε θα χρειαστεί να κάνεις κάτι επιπλέον. Αν δεν υπέβαλες εσύ την αίτηση, αγνόησε αυτό το email.
+ explanation_when_pending: Έχεις υποβάλλει αίτηση πρόσκλησης στο %{host} με αυτή την ηλεκτρονική διεύθυνση email. Μόλις επιβεβαιώσεις το email σου, θα ελέγξουμε την αίτηση σου. Μέχρι τότε δε θα μπορείς να συνδεθείς. Αν απορριφθεί η αίτησή σου, τα στοιχεία σου θα αφαιρεθούν, άρα δε θα χρειαστεί να κάνεις κάτι επιπλέον. Αν δεν υπέβαλες εσύ την αίτηση, αγνόησε αυτό το email.
extra_html: Παρακαλούμε να διαβάσεις του κανόνες αυτού του κόμβου και τους όρους χρήσης της υπηρεσίας μας.
subject: 'Mastodon: Οδηγίες επιβεβαίωσης για %{instance}'
title: Επιβεβαίωσε διεύθυνση email
@@ -47,17 +47,17 @@ el:
subject: 'Mastodon: Οδηγίες επαναφοράς συνθηματικού'
title: Επαναφορά συνθηματικού
two_factor_disabled:
- explanation: Ο έλεγχος ταυτότητας δυο παραγόντων (2FA) έχει απενεργοποιηθεί για το λογαριασμό σου. Η σύνδεση γίνεται απλά με το email και το συνθηματικό.
- subject: 'Mastodon: Απενεργοποιήθηκε ο έλεγχος ταυτότητας δύο παραγόντων'
- title: Απενεργοποιημένο 2FA
+ explanation: Η επαλήθευση 2 βημάτων (2FA) έχει απενεργοποιηθεί για το λογαριασμό σου. Η σύνδεση γίνεται απλά με το email και το συνθηματικό.
+ subject: 'Mastodon: Απενεργοποιήθηκε η επαλήθευση 2 βημάτων (2FA)'
+ title: Επαλήθευση 2 βημάτων ανενεργή (2FA)
two_factor_enabled:
explanation: Έχει ενεργοποιηθεί η πιστοποίηση 2 παραγόντων για το λογαριασμό σου (2FA). Για να συνδεθείς θα απαιτηθεί πιστοποιημένο τεκμήριο από κάποια ζευγαρωμένη εφαρμογή.
- subject: 'Mastodon: Ενεργοποιήθηκε η πιστοποίηση 2 παραγόντων (2FA)'
- title: Επαλήθευση δύο βημάτων ενεργή
+ subject: 'Mastodon: Ενεργοποιήθηκε η επαλήθευση 2 βημάτων (2FA)'
+ title: Επαλήθευση 2 βημάτων ενεργή (2FA)
two_factor_recovery_codes_changed:
explanation: Οι προηγούμενοι κωδικοί ανάκτησης ακυρώθηκαν και δημιουργήθηκαν νέοι.
subject: 'Mastodon: Δημιουργήθηκαν νέοι κωδικοί ανάκτησης'
- title: Οι κωδικοί ανάκτησης 2FA άλλαξαν
+ title: Οι κωδικοί ανάκτησης επαλήθευσης 2 βημάτων (2FA) άλλαξαν
unlock_instructions:
subject: 'Mastodon: Οδηγίες ξεκλειδώματος'
omniauth_callbacks:
@@ -70,7 +70,7 @@ el:
updated: Το συνθηματικό σου άλλαξε. Πλέον έχεις συνδεθεί.
updated_not_active: Το συνθηματικό σου άλλαξε.
registrations:
- destroyed: Στο καλό! Ο λογαριασμός σου ακυρώθηκε με επιτυχία. Ελπίζουμε να σε ξαναδούμε σύντομα.
+ destroyed: Αντίο! Ο λογαριασμός σου ακυρώθηκε με επιτυχία. Ελπίζουμε να σε ξαναδούμε σύντομα.
signed_up: Καλώς ήρθες! Εγγράφηκες με επιτυχία.
signed_up_but_inactive: Εγγράφηκες με επιτυχία. Όμως δε μπορέσαμε να σε συνδέσουμε γιατί ο λογαριασμός σου δεν έχει ενεργοποιηθεί ακόμα.
signed_up_but_locked: Εγγράφηκες με επιτυχία. Όμως δε μπορέσαμε να σε συνδέσουμε γιατί ο λογαριασμός σου είναι κλειδωμένος.
diff --git a/config/locales/devise.eo.yml b/config/locales/devise.eo.yml
index 7c67ac8fa..0631d1c07 100644
--- a/config/locales/devise.eo.yml
+++ b/config/locales/devise.eo.yml
@@ -47,9 +47,17 @@ eo:
subject: 'Mastodon: Instrukcioj por ŝanĝi pasvorton'
title: Pasvorto restarigita
two_factor_disabled:
+ explanation: Dufaktora aŭtentigo por via konto malebligis. Ensalutado nun eblas per nur retpoŝtadreso kaj pasvorto.
+ subject: 'Mastodon: dufaktora aŭtentigo malebligita'
title: la du-etapa aŭtentigo estas malŝaltita
two_factor_enabled:
+ explanation: Dufaktora aŭtentigo sukcese ebligita por via akonto. Vi bezonos ĵetonon kreitan per parigitan aplikaĵon por ensaluti.
+ subject: 'Mastodon: dufaktora aŭtentigo ebligita'
title: la du-etapa aŭtentigo estas ŝaltita
+ two_factor_recovery_codes_changed:
+ explanation: La antaŭaj reakiraj kodoj estis nuligitaj kaj novaj estis generitaj.
+ subject: 'Mastodon: Reakiraj kodoj de dufaktora aŭtentigo rekreitaj'
+ title: Reakiraj kodoj de 2FA estas ŝanĝitaj
unlock_instructions:
subject: 'Mastodon: Instrukcioj por malŝlosi'
omniauth_callbacks:
diff --git a/config/locales/devise.fr.yml b/config/locales/devise.fr.yml
index 71c647f2b..3edd348e6 100644
--- a/config/locales/devise.fr.yml
+++ b/config/locales/devise.fr.yml
@@ -67,16 +67,16 @@ fr:
no_token: Vous ne pouvez accéder à cette page sans passer par un courriel de réinitialisation de mot de passe. Si vous êtes passé⋅e par un courriel de ce type, assurez-vous d’utiliser l’URL complète.
send_instructions: Vous allez recevoir les instructions de réinitialisation du mot de passe dans quelques instants. Veuillez, dans le cas où vous ne recevriez pas ce message, vérifier votre dossier d’indésirables.
send_paranoid_instructions: Si votre adresse électronique existe dans notre base de données, vous allez recevoir un lien de réinitialisation par courriel. Veuillez, dans le cas où vous ne recevriez pas ce message, vérifier votre dossier d’indésirables.
- updated: Votre mot de passe a été modifié avec succès, vous êtes maintenant connecté⋅e.
+ updated: Votre mot de passe a été modifié avec succès, vous êtes maintenant connecté·e.
updated_not_active: Votre mot de passe a été modifié avec succès.
registrations:
destroyed: Au revoir ! Votre compte a été supprimé avec succès. Nous espérons vous revoir bientôt.
- signed_up: Bienvenue ! Vous êtes connecté⋅e.
- signed_up_but_inactive: Vous êtes bien enregistré⋅e. Vous ne pouvez cependant pas vous connecter car votre compte n’est pas encore activé.
- signed_up_but_locked: Vous êtes bien enregistré⋅e. Vous ne pouvez cependant pas vous connecter car votre compte est verrouillé.
- signed_up_but_pending: Un message avec un lien de confirmation a été envoyé à votre adresse courriel. Après avoir cliqué sur le lien, nous étudierons votre demande. Vous serez informé·e si elle a été approuvée.
+ signed_up: Bienvenue ! Vous êtes connecté·e.
+ signed_up_but_inactive: Vous êtes bien enregistré·e. Vous ne pouvez cependant pas vous connecter car votre compte n’est pas encore activé.
+ signed_up_but_locked: Vous êtes bien enregistré·e. Vous ne pouvez cependant pas vous connecter car votre compte est verrouillé.
+ signed_up_but_pending: Un message avec un lien de confirmation a été envoyé à votre adresse courriel. Après avoir cliqué sur le lien, nous examinerons votre demande. Vous serez informé·e si elle a été approuvée.
signed_up_but_unconfirmed: Un message contenant un lien de confirmation a été envoyé à votre adresse courriel. Ouvrez ce lien pour activer votre compte. Veuillez vérifier votre dossier d'indésirables si vous ne recevez pas le courriel.
- update_needs_confirmation: Votre compte a bien été mis à jour, mais nous devons vérifier votre nouvelle adresse courriel. Merci de vérifier vos courriels et de cliquer sur le lien de confirmation pour finaliser la validation de votre nouvelle adresse. Si vous n'avez pas reçu le courriel, vérifiez votre dossier d'indésirables.
+ update_needs_confirmation: Votre compte a bien été mis à jour, mais nous devons vérifier votre nouvelle adresse courriel. Merci de vérifier vos courriels et de cliquer sur le lien de confirmation pour finaliser la validation de votre nouvelle adresse. Si vous n'avez pas reçu le courriel, vérifiez votre dossier de spams.
updated: Votre compte a été modifié avec succès.
sessions:
already_signed_out: Déconnecté·e.
@@ -85,14 +85,14 @@ fr:
unlocks:
send_instructions: Vous allez recevoir les instructions nécessaires au déverrouillage de votre compte dans quelques instants. Veuillez, dans le cas où vous ne recevriez pas ce message, vérifier votre dossier d’indésirables.
send_paranoid_instructions: Si votre compte existe, vous allez bientôt recevoir un courriel contenant les instructions pour le déverrouiller. Veuillez, dans le cas où vous ne recevriez pas ce message, vérifier votre dossier d’indésirables.
- unlocked: Votre compte a été déverrouillé avec succès, vous êtes maintenant connecté⋅e.
+ unlocked: Votre compte a été déverrouillé avec succès, vous êtes maintenant connecté·e.
errors:
messages:
already_confirmed: a déjà été validée, veuillez essayer de vous connecter
confirmation_period_expired: à confirmer dans les %{period}, merci de faire une nouvelle demande
expired: a expiré, merci d’en faire une nouvelle demande
- not_found: n’a pas été trouvé⋅e
- not_locked: n’était pas verrouillé⋅e
+ not_found: n’a pas été trouvé·e
+ not_locked: n’était pas verrouillé·e
not_saved:
- one: 'Une erreur a empêché ce(tte) %{resource} d’être sauvegardé⋅e :'
+ one: 'Une erreur a empêché ce·tte %{resource} d’être sauvegardé·e :'
other: "%{count} erreurs ont empêché %{resource} d’être sauvegardé⋅e :"
diff --git a/config/locales/devise.hy.yml b/config/locales/devise.hy.yml
index c40654016..666c4c996 100644
--- a/config/locales/devise.hy.yml
+++ b/config/locales/devise.hy.yml
@@ -1 +1,7 @@
+---
hy:
+ devise:
+ confirmations:
+ confirmed: Ձեր էլփոստի հասցեն հաջողությամբ հաստատվեց։
+ sessions:
+ signed_in: Մուտքը հաջողվեց։
diff --git a/config/locales/devise.is.yml b/config/locales/devise.is.yml
index 288617be8..4d6fb3902 100644
--- a/config/locales/devise.is.yml
+++ b/config/locales/devise.is.yml
@@ -8,10 +8,10 @@ is:
failure:
already_authenticated: Þú ert nú þegar skráð(ur) inn.
inactive: Aðgangur þinn hefur ekki enn verið virkjaður.
- invalid: Ógildur %{authentication_keys} eða lykilorð.
+ invalid: Ógilt %{authentication_keys} eða lykilorð.
last_attempt: Þú getur reynt einu sinni í viðbót áður en aðgangnum þínum verður læst.
locked: Notandaaðgangurinn þinn er læstur.
- not_found_in_database: Ógildur %{authentication_keys} eða lykilorð.
+ not_found_in_database: Ógilt %{authentication_keys} eða lykilorð.
pending: Notandaaðgangurinn þinn er enn til yfirferðar.
timeout: Setan þín er útrunnin. Skráðu þig aftur inn til að halda áfram.
unauthenticated: Þú þarft að skrá þig inn eða nýskrá þig áður en lengra er haldið.
diff --git a/config/locales/devise.it.yml b/config/locales/devise.it.yml
index 85c010495..aeb4c3f6d 100644
--- a/config/locales/devise.it.yml
+++ b/config/locales/devise.it.yml
@@ -8,10 +8,10 @@ it:
failure:
already_authenticated: Hai già effettuato l'accesso.
inactive: Non hai ancora attivato il tuo account.
- invalid: "%{authentication_keys} o password invalida."
+ invalid: "%{authentication_keys} o password non valida."
last_attempt: Hai un altro tentativo prima che il tuo account venga bloccato.
locked: Il tuo account è stato bloccato.
- not_found_in_database: "%{authentication_keys} o password invalida."
+ not_found_in_database: "%{authentication_keys} o password non valida."
pending: Il tuo account è ancora in fase di approvazione.
timeout: La tua sessione è terminata. Per favore, effettua l'accesso o registrati per continuare.
unauthenticated: Devi effettuare l'accesso o registrarti per continuare.
diff --git a/config/locales/devise.kab.yml b/config/locales/devise.kab.yml
index 650ade1e4..0149c4512 100644
--- a/config/locales/devise.kab.yml
+++ b/config/locales/devise.kab.yml
@@ -10,7 +10,7 @@ kab:
inactive: Amiḍan-inek mazal ur yermed ara.
invalid: Tella tuccḍa deg %{authentication_keys} neγ deg wawal uffir.
last_attempt: Γur-k yiwen n uɛraḍ-nniḍen kan send ad yettucekkel umiḍan-ik.
- locked: Amiḍan-ik yewḥel.
+ locked: Amiḍan-ik yettwargel.
not_found_in_database: Tella tuccḍa deg %{authentication_keys} neγ deg wawal uffir.
pending: Amiḍan-inek mazal-it deg ɛiwed n tmuγli.
timeout: Tiγimit n tuqqna tezri. Ma ulac aγilif ɛiwed tuqqna akken ad tkemmleḍ.
@@ -22,10 +22,11 @@ kab:
action_with_app: Wekked sakkin uγal γer %{app}
explanation: Aqla-k terniḍ amiḍan deg %{host} s tansa imayl-agi. Mazal-ak yiwen utekki akken ad t-tremdeḍ. Ma mačči d kečč i yessutren ay-agi, ttxil-k ssinef izen-a.
explanation_when_pending: Tsutreḍ-d ajerred deg %{host} s tansa-agi imayl. Ad nγeṛ asuter-ik ticki tsentmeḍ tansa-ik imayl. Send asentem, ur tezmireḍ ara ad teqqneḍ γer umiḍan-ik. Ma yella nugi asuter-ik, isefka-ik ad ttwakksen seg uqeddac, ihi ulac tigawt-nniḍen ara k-d-yettuqeblen. Ma mačči d kečč i yellan deffir n usuter-agi, ttxil-k ssinef izen-agi.
- extra_html: Ttxil-k ẓer daγen ilugan n uqeddac akked twetlin n useqdec.
+ extra_html: Ttxil-k ẓer daγen ilugan n uqeddac akked twetlin n useqdec-nneγ.
subject: 'Maṣṭudun: Asentem n ujerred deg uqeddac %{instance}'
title: Senqed tansa-inek imayl
email_changed:
+ explanation: 'Tansa n yimayl n umiḍan-ik ibeddel ɣer:'
extra: Ma mačči d kečč i ibeddlen tansa imayl, ihi yezmer d alebɛaḍ i ikecmen γer umiḍan-ik. Ttxil-k beddel awal-ik uffir tura neγ siwel i unedbal n uqeddac ma tḥesleḍ berra n umiḍan-ik.
subject: 'Maṣṭudun: Imayl-ik yettubeddel'
title: Tansa imayl tamaynut
@@ -42,6 +43,10 @@ kab:
action: Beddel awal uffir
explanation: Tessutreḍ awal uffir amaynut i umiḍan-ik.
title: Aɛiwed n wawal uffir
+ two_factor_disabled:
+ title: Asesteb s snat n tarrayin insa
+ two_factor_enabled:
+ title: Asesteb s snat n tarrayin irmed
passwords:
send_paranoid_instructions: Ma nufa tansa-inek imayl tella deg uzadur-nneγ n yisefka, ad n-teṭṭfeḍ izen deg kra n tesdatin, deg-s assaγ i uɛawed n wawal uffir. Ma ur k-in-yewwiḍ ara yizen, ttxil-k ẓer deg ukaram spam.
updated: Awal-ik uffir yettwabeddel mebla ugur. Aqla-k tura tjerrḍeḍ.
diff --git a/config/locales/devise.nn.yml b/config/locales/devise.nn.yml
index d578b8dc5..42eb0690a 100644
--- a/config/locales/devise.nn.yml
+++ b/config/locales/devise.nn.yml
@@ -2,7 +2,7 @@
nn:
devise:
confirmations:
- confirmed: E-posten din er stadefesta.
+ confirmed: E-posten din er stadfesta.
send_instructions: Om nokre få minutt får du ein e-post som fortel deg korleis du skal stadfesta e-postadressa di. Sjekk søppelpostmappa di om du ikkje fekk e-posten.
send_paranoid_instructions: Om vi har e-postadressa di i databasen vår, får du ein e-post som fortel deg korleis du skal stadfesta e-postadressa om nokre få minutt. Ver venleg og sjekk søppelpostmappa di om du ikkje fekk denne e-posten.
failure:
@@ -12,21 +12,22 @@ nn:
last_attempt: Du har eitt forsøk igjen før kontoen din vert låst.
locked: Kontoen din er låst.
not_found_in_database: Ugyldig %{authentication_keys} eller passord.
- pending: Kontoen din er fortsatt under gjennomgang.
- timeout: Økten din løp ut på tid. Logg inn på nytt for å fortsette.
- unauthenticated: Du må logge inn eller registrere deg før du kan fortsette.
+ pending: Kontoen din er vert gjennomgått enno.
+ timeout: Økta di er utgått. Logg inn omatt for å halde fram.
+ unauthenticated: Du må logge inn eller registere deg før du kan halde fram.
unconfirmed: Du må stadfesta e-postadressa di før du kan gå vidare.
mailer:
confirmation_instructions:
action: Stadfest e-postadresse
action_with_app: Stadfest og gå tilbake til %{app}
- explanation: Du har laget en konto på %{host} med denne e-postadressen. Du er ett klikk unna å aktivere den. Hvis dette ikke var deg, vennligst se bort fra denne e-posten.
- extra_html: Vennligst også sjekk ut instansens regler og våre bruksvilkår.
- subject: 'Mastodon: Instruksjoner for å bekrefte e-postadresse %{instance}'
+ explanation: Du har registrert deg på %{host} med denne e-postadressa. Du er eitt klikk unna aktivere kontoen. Om det ikkje var deg, berre oversjå denne e-posten.
+ explanation_when_pending: Du har søkt om en invitasjon til %{host} med denne e-postadressa. Når du har stadfesta e-postadressa di, vil vi gå gjennom søknaden. Du kan logge på for å endre detaljar eller slette kontoen, men du har ikke tilgang til dei fleste funksjonane før kontoen din er godkjent. Dersom søknaden din vert avslått, vil dataene dine verte sletta, så du treng ikkje gjera meir. Dersom dette ikke var deg, berre oversjå denne e-posten.
+ extra_html: Ta ein kikk på reglane på instansen og bruksvilkåra våre.
+ subject: 'Mastodon: Instruksjonar for stadfesting hos %{instance}'
title: Stadfest e-postadresse
email_changed:
explanation: 'E-postadressa til kontoen din vert endra til:'
- extra: Hvis du ikke endret din e-postadresse, er det sannsynlig at noen har fått tilgang til din konto. Vennligst endre ditt passord umiddelbart eller kontakt instansens administrator dersom du er utestengt fra kontoen din.
+ extra: Dersom du ikkje har endra e-postadressa di, er det truleg at nokon har fått tilgang til kontoen din. Bytt straks passordet ditt, eller kontakt tenaradministratoren dersom du har vorte låst ut av kontoen.
subject: 'Mastodon: E-postadressa er endra'
title: Ny e-postadresse
password_change:
@@ -36,8 +37,8 @@ nn:
title: Passord endra
reconfirmation_instructions:
explanation: Stadfest den nye adressa for å byta e-postadressa di.
- extra: Se bort fra denne e-posten dersom du ikke gjorde denne endringen. E-postadressen for Mastadon-kontoen blir ikke endret før du trykker på lenken over.
- subject: 'Mastodon: Bekreft e-postadresse for %{instance}'
+ extra: Oversjå denne eposten dersom du ikkje gjorde endra. E-postadressa for Mastodon-kontoen vert ikkje endra før lenka over vert trykt på.
+ subject: 'Mastodon: Stadfest e-post for %{instance}'
title: Stadfest e-postadresse
reset_password_instructions:
action: Endr passord
@@ -46,22 +47,25 @@ nn:
subject: 'Mastodon: Instuksjonar for å endra passord'
title: Attstilling av passord
two_factor_disabled:
- subject: 'Mastodon: To-faktor autentisering deaktivert'
+ explanation: To-faktor-autentisering har vorte slått av for kontoen din. Det går no an logge inn med berre e-postadresse og passord.
+ subject: 'Mastodon: To-faktor-autentisering deaktivert'
title: 2FA deaktivert
two_factor_enabled:
- explanation: To-faktor autentisering er aktivert for kontoen din. Et symbol som er generert av den sammenkoblede TOTP-appen vil være påkrevd for innlogging.
- subject: 'Mastodon: To-faktor autentisering aktivert'
+ explanation: To-faktor-autentisering har vorte slått på for kontoen din. Ein kode frå den samankopla TOTP-appen er kravd for å logge inn.
+ subject: 'Mastodon: To-faktor-autentisering aktivert'
title: 2FA aktivert
two_factor_recovery_codes_changed:
- explanation: De forrige gjenopprettingskodene er ugyldig og nye generert.
+ explanation: Dei førre gjenopprettingskodane er ugyldige og nye er genererte.
+ subject: 'Mastodon: To-faktor-gjenopprettingskodar har vorte genererte på nytt'
+ title: 2FA-gjenopprettingskodane er endra
unlock_instructions:
- subject: 'Mastodon: Instruksjoner for å gjenåpne konto'
+ subject: 'Mastodon: Instruksjonar for å opne kontoen igjen'
omniauth_callbacks:
- failure: Kunne ikke autentisere deg fra %{kind} fordi "%{reason}".
- success: Vellykket autentisering fra %{kind}.
+ failure: Du kunne ikkje verte autentisert frå %{kind} av di "%{reason}".
+ success: Autentisert frå %{kind}-konto.
passwords:
- no_token: Du har ingen tilgang til denne siden hvis ikke klikket på en e-post om nullstilling av passord. Hvis du kommer fra en sådan bør du dobbelsjekke at du limte inn hele URLen.
- send_instructions: Du vil motta en e-post med instruksjoner om nullstilling av passord om noen få minutter.
+ no_token: Du har ikkje tilgang til denne sida utan ha gått via ein e-post som gjeld å nullstille passordet. Dersom det er kva du har gjort, dobbelsjekk at du har kopiert heile URLen.
+ send_instructions: Om vi har e-postadressa di i databasen vår, får du ein e-post med lenke til gjenopprette passordet om nokre få minutt. Sjekk søppelpostmappa di om du ikkje fekk denne e-posten.
send_paranoid_instructions: Om vi har e-postadressa di i databasen vår, får du ei lenkje til å endra passordet om nokre få minutt. Ver venleg og sjekk søppelpostmappa om du ikkje fekk denne e-posten.
updated: Passordet ditt er endra. No er du logga inn.
updated_not_active: Passordet ditt er endra.
@@ -71,24 +75,24 @@ nn:
signed_up_but_inactive: Du har registrert deg inn, men vi kunne ikkje logga deg inn fordi kontoen din er ikkje aktivert enno.
signed_up_but_locked: Du har registrert deg inn, men vi kunne ikkje logga deg inn fordi kontoen din er låst.
signed_up_but_pending: Ei melding med ei stadfestingslenkje er vorten send til e-postadressa di. Når du klikkar på lenkja skal vi sjå gjennom søknaden din. Du får ei melding om han vert godkjend.
- signed_up_but_unconfirmed: En e-post med en bekreftelseslenke har blitt sendt til din innboks. Klikk på lenken i e-posten for å aktivere kontoen din.
- update_needs_confirmation: Du har oppdatert kontoen din, men vi må bekrefte din nye e-postadresse. Sjekk e-posten din og følg bekreftelseslenken for å bekrefte din nye e-postadresse.
- updated: Kontoen din ble oppdatert.
+ signed_up_but_unconfirmed: Ei melding med ei lenke for å stadfeste kontoen har vorte sendt e-postadressa di. Klikk på lenka for å aktivere kontoen. Sjekk søppelpostmappa dersom du ikkje har fått e-posten.
+ update_needs_confirmation: Du har oppdatert kontoen din, men vi må stadfeste den nye e-postadressa. Sjekk innboksen og følg lenka for å stadfeste adressa di. Sjekk søppelpostmappa dersom du ikkje har fått den e-posten.
+ updated: Kontoen har vorte oppdatert.
sessions:
already_signed_out: Logga ut.
signed_in: Logga inn.
signed_out: Logga ut.
unlocks:
- send_instructions: Du vil motta en e-post med instruksjoner for å åpne kontoen din om noen få minutter.
- send_paranoid_instructions: Hvis kontoen din eksisterer vil du motta en e-post med instruksjoner for å åpne kontoen din om noen få minutter.
- unlocked: Kontoen din ble åpnet uten problemer. Logg på for å fortsette.
+ send_instructions: Om nokre minutt får du ein e-post med instruksjonar for korleis du kan låse opp kontoen din. Sjekk søppelpostmappa om du ikkje finn den mailen.
+ send_paranoid_instructions: Dersom du har konto her, får du ein e-post med instruksjonar for korleis du kan låse opp kontoen din om nokre minutt. Sjekk søppelpostmappa om du ikkje finn den mailen.
+ unlocked: Kontoen din har vorte låst opp. Logg inn for å halde fram.
errors:
messages:
- already_confirmed: har allerede blitt bekreftet, prøv å logge på istedet
- confirmation_period_expired: må bekreftes innen %{period}. Spør om en ny e-post for bekreftelse istedet
+ already_confirmed: er allereie stadfesta, prøv logge inn
+ confirmation_period_expired: må verte stadfesta innan %{period}, spør etter ein ny
expired: er utgått, ver venleg å beda om ein ny ein
not_found: ikkje funne
not_locked: var ikkje låst
not_saved:
- one: '1 feil hindret denne %{resource} i å bli lagret:'
- other: "%{count} feil hindret denne %{resource} i å bli lagret:"
+ one: '1 feil hindra %{resource} frå verte lagra:'
+ other: "%{count} feil hindra %{resource} frå verte lagra:"
diff --git a/config/locales/devise.pt-BR.yml b/config/locales/devise.pt-BR.yml
index 92ac2948e..bb5d5d34b 100644
--- a/config/locales/devise.pt-BR.yml
+++ b/config/locales/devise.pt-BR.yml
@@ -3,96 +3,96 @@ pt-BR:
devise:
confirmations:
confirmed: O seu endereço de e-mail foi confirmado.
- send_instructions: Você receberá uma mensagem em sua caixa de entrada com instruções sobre como confirmar o seu endereço de e-mail dentro de alguns minutos. Por favor, cheque a sua pasta de spam caso não tenha recebido esta mensagem.
- send_paranoid_instructions: Se o seu endereço de e-mail já existir em nossa base de dados, você receberá uma mensagem em sua caixa de entrada com instruções sobre confirmá-lo dentro de alguns minutos. Por favor, cheque a sua pasta de spam caso não tenha recebido esta mensagem.
+ send_instructions: Você receberá um e-mail com instruções sobre como confirmar o endereço de e-mail dentro de alguns minutos. Por favor, verifique sua pasta de spam caso ainda não o tenha recebido.
+ send_paranoid_instructions: Se o seu endereço de e-mail já existir em nosso banco de dados, você receberá um e-mail com instruções para confirmá-lo dentro de alguns minutos. Por favor, verifique sua pasta de spam caso ainda não o tenha recebido.
failure:
- already_authenticated: A sua sessão já está aberta.
- inactive: A sua contra ainda não está ativada.
+ already_authenticated: Você entrou na sua conta.
+ inactive: Sua conta não foi confirmada ainda.
invalid: "%{authentication_keys} ou senha inválida."
- last_attempt: Você tem apenas mais uma tentativa sobrando antes que a sua conta seja bloqueada.
- locked: A sua conta está bloqueada.
+ last_attempt: Você tem mais uma tentativa antes de sua conta ser trancada.
+ locked: Sua conta está trancada.
not_found_in_database: "%{authentication_keys} ou senha inválida."
- pending: Sua conta ainda está sendo revisada.
- timeout: A sua sessão expirou. Por favor, entre novamente para continuar.
- unauthenticated: Você precisa entrar ou cadastrar-se antes de continuar.
+ pending: Sua conta está sendo revisada.
+ timeout: Você saiu de sua conta. Por favor, entre novamente para continuar.
+ unauthenticated: Você precisa entrar ou criar uma conta antes de continuar.
unconfirmed: Você precisa confirmar o seu endereço de e-mail antes de continuar.
mailer:
confirmation_instructions:
- action: Verificar endereço de e-mail
+ action: Confirmar endereço de e-mail
action_with_app: Confirmar e voltar para %{app}
- explanation: Você criou uma conta em %{host} com esse endereço de e-mail. Você está a um clique de ativá-la. Se não foi você, por favor ignore esse e-mail.
- explanation_when_pending: Você pediu um convite para %{host} com esse endereço de email. Assim que você confirmar o seu endereço de e-mail, iremos revisar o seu pedido. Você não poderá fazer login até então. Se sua aplicação for rejeitada, seus dados serão removidos e nenhuma ação será necessária da sua parte. Se você não pediu por isso, por favor ignore esse e-mail.
+ explanation: Você criou uma conta em %{host} com esse endereço de e-mail. Se não foi você, por favor, ignore este e-mail.
+ explanation_when_pending: Você solicitou um convite para %{host} com esse endereço de e-mail. Após você confirmar o seu endereço de e-mail, espere o resultado da revisão de sua solicitação. Se sua conta por vetada, seus dados serão excluídos e nenhuma ação será necessária de sua parte. Se você não solicitou nada, por favor, ignore este e-mail.
extra_html: Por favor confira também as regras da instância e nossos termos de serviço.
subject: 'Mastodon: Instruções de confirmação para %{instance}'
- title: Verifique o endereço de e-mail
+ title: Confirme o endereço de e-mail
email_changed:
- explanation: 'O e-mail associado à sua conta será mudado para:'
- extra: Se você não mudou seu e-mail é possível que alguém tenha conseguido acesso à sua conta. Por favor mude sua senha imediatamente ou entre em contato com um administrador da sua instância se você ficou sem acesso à sua conta.
- subject: 'Mastodon: Email alterado'
+ explanation: 'O e-mail vinculado à sua conta será alterado para:'
+ extra: Se você não alterou seu email, é provável que alguém tenha ganhado acesso a sua conta. Por favor altere sua senha imediatamente ou entre em contato com o administrador do servidor se você está trancado fora de sua conta.
+ subject: 'Mastodon: Endereço de e-mail alterado'
title: Novo endereço de e-mail
password_change:
- explanation: A senha da sua conta foi mudada.
- extra: Se você não mudou a sua senha, é possível que alguém tenha conseguido acesso à sua conta. Por favor mude sua senha imediatamente ou entre em contato com um administrador da sua instância se você ficou sem acesso à sua conta.
- subject: 'Mastodon: Senha modificada'
+ explanation: A senha da sua conta foi alterada.
+ extra: Se você não alterou sua senha, é provável que alguém tenha ganhado acesso a sua conta. Por favor altere sua senha imediatamente ou entre em contato com o administrador do servidor se você está trancado fora de sua conta.
+ subject: 'Mastodon: Senha alterada'
title: Senha alterada
reconfirmation_instructions:
- explanation: Confirme o seu novo endereço para mudar seu e-mail.
- extra: Se essa mudança não foi iniciada por você, por favor ignore esse e-mail. O endereço de e-mail para essa conta do Mastodon não irá mudar até que você acesse o link acima.
- subject: 'Mastodon: Confirmar emai para %{instance}'
- title: Verificar o endereço de e-mail
+ explanation: Confirme seu novo endereço para alterar seu e-mail.
+ extra: Se essa alteração não foi feita por você, por favor, ignore este e-mail. O endereço de e-mail para essa conta do Mastodon não será alterado até que você entre no link acima.
+ subject: 'Mastodon: Confirmar endereço de e-mail para %{instance}'
+ title: Confirmar endereço de e-mail
reset_password_instructions:
- action: Mudar a senha
- explanation: Você pediu uma nova senha para sua conta.
- extra: Se você não fez esse pedido, por favor ignore esse e-mail. Sua senha não irá mudar até que você acesse o link acima e crie uma nova.
- subject: 'Mastodon: Instruções para mudança de senha'
- title: Redefinir a senha
+ action: Alterar senha
+ explanation: Você solicitou uma nova senha para sua conta.
+ extra: Se você não solicitou nada, por favor, ignore este e-mail. Sua senha não será alterada até que você entre no link acima e crie uma nova.
+ subject: 'Mastodon: Instruções para alterar senha'
+ title: Redefinir senha
two_factor_disabled:
explanation: A autenticação de dois fatores para sua conta foi desativada. Agora é possível acessar apenas com seu endereço de e-mail e senha.
subject: 'Mastodon: Autenticação de dois fatores desativada'
title: 2FA desativada
two_factor_enabled:
- explanation: A autenticação de dois fatores foi habilitada para sua conta. Um token gerado pelo app TOTP pareado será necessário para o login.
+ explanation: A autenticação de dois fatores foi ativada para sua conta. Um código gerado no aplicativo TOTP pareado será necessário para entrar.
subject: 'Mastodon: Autenticação de dois fatores desativada'
title: 2FA ativada
two_factor_recovery_codes_changed:
explanation: Os códigos de recuperação anteriores foram invalidados e novos códigos foram gerados.
- subject: 'Mastodon: códigos de recuperação de dois fatores gerados novamente'
- title: Códigos de recuperação de 2FA alterados
+ subject: 'Mastodon: Novos códigos de recuperação de dois fatores'
+ title: Códigos de recuperação de dois fatores alterados
unlock_instructions:
subject: 'Mastodon: Instruções de desbloqueio'
omniauth_callbacks:
- failure: Não foi possível autenticá-lo como %{kind} porque "%{reason}".
- success: Autenticado com sucesso como %{kind}.
+ failure: Não foi possível entrar como %{kind} porque "%{reason}".
+ success: Entrou como %{kind}.
passwords:
- no_token: Você não pode acessar esta página se não tiver vindo de uma mensagem de mudança de senha. Se este for o caso, por favor verifique se a URL utilizada está completa.
- send_instructions: Se o seu endereço de e-mail já estiver cadastrado em nossa base de dados, você receberá uma mensagem com um link para realizar a mudança de senha em alguns minutos. Por favor, cheque a sua pasta de spam caso não tenha recebido esta mensagem.
- send_paranoid_instructions: Se o seu endereço de e-mail já estiver cadastrado em nossa base de dados, você receberá uma mensagem com um link para realizar a mudança de senha em alguns minutos. Por favor, cheque a sua pasta de spam caso não tenha recebido esta mensagem.
- updated: A sua senha foi alterada. A sua sessão está aberta.
- updated_not_active: A sua senha foi alterada.
+ no_token: Você não pode acessar esta página sem vir de um e-mail de alteração de senha. Se este for o caso, por favor, verifique se o link fornecido está completo.
+ send_instructions: Se o seu endereço de e-mail já existir em nosso banco de dados, você receberá um e-mail com instruções para alterar a senha dentro de alguns minutos. Por favor, verifique sua pasta de spam caso ainda não o tenha recebido.
+ send_paranoid_instructions: Se o seu endereço de e-mail já existir em nosso banco de dados, você receberá um e-mail com instruções para alterar a senha dentro de alguns minutos. Por favor, verifique sua pasta de spam caso ainda não o tenha recebido.
+ updated: Sua senha foi alterada e você entrou na sua conta.
+ updated_not_active: Sua senha foi alterada com sucesso.
registrations:
- destroyed: Adeus! A sua conta foi cancelada. Esperamos vê-lo em breve.
- signed_up: Bem vindo! A sua conta foi registrada com sucesso.
- signed_up_but_inactive: A sua conta foi registrada. No entanto, não abrimos a sua sessão porque a sua conta ainda não foi ativada.
- signed_up_but_locked: A sua conta foi registrada. No entanto, não abrimos a sua sessão porque a sua conta está bloqueada.
- signed_up_but_pending: Uma mensagem com um link de confirmação foi enviada ao seu endereço de e-mail. Depois que você clicar no link, revisaremos seu pedido. Você será notificado se seu pedido for aprovado.
- signed_up_but_unconfirmed: Uma mensagem com um link de confirmação foi enviada para o seu endereço de e-mail. Por favor, siga o link para ativar a sua conta e, caso não tenha recebido esta mensagem, cheque a sua pasta de spam.
- update_needs_confirmation: Você mudou o seu endereço de e-mail ou a sua senha, mas é necessário confirmar a mudança. Por favor siga o link que foi enviado para o seu novo endereço de e-mail e, caso não tenha recebido esta mensagem, cheque a sua pasta de spam.
- updated: A sua conta foi alterada com sucesso.
+ destroyed: Adeus! Sua conta foi cancelada. Talvez um dia possamos nos ver de novo.
+ signed_up: Boas vindas! Conta criada.
+ signed_up_but_inactive: Conta criada! Agora você deve confirmá-la.
+ signed_up_but_locked: Você se cadastrou com sucesso. Contudo, não pudemos fazer login porque sua conta está trancada.
+ signed_up_but_pending: Um e-mail com um link de confirmação foi enviado para o seu endereço de e-mail. Após você entrar no link, revisaremos sua solicitação e você será notificado caso seja aprovado.
+ signed_up_but_unconfirmed: Um e-mail com instruções para confirmar o seu endereço de e-mail foi enviado. Por favor, verifique sua pasta de spam caso ainda não o tenha recebido.
+ update_needs_confirmation: Você alterou seu endereço de e-mail ou sua senha, porém é preciso confirmar a alteração. Por favor, entre no link que foi enviado para o seu novo endereço de e-mail e verifique sua pasta de spam caso ainda não o tenha recebido.
+ updated: Sua conta foi alterada com sucesso.
sessions:
- already_signed_out: Sessão encerrada.
- signed_in: Sessão iniciada.
- signed_out: Sessão encerrada.
+ already_signed_out: Você saiu de sua conta.
+ signed_in: Você entrou na sua conta.
+ signed_out: Você saiu de sua conta.
unlocks:
- send_instructions: Você receberá uma mensagem com instruções para desbloquear a sua conta em alguns instantes. Por favor, cheque a sua pasta de spam caso não tenha recebido esta mensagem.
- send_paranoid_instructions: Se a sua conta já existe, você receberá uma mensagem com instruções para desbloquear a sua conta em alguns instantes. Por favor, cheque a sua pasta de spam caso não tenha recebido esta mensagem.
- unlocked: A sua conta foi desbloqueada com sucesso. Por favor inicie sessão para continuar.
+ send_instructions: Você receberá um email com instruções para destrancar a sua conta em alguns minutos. Por favor verifique sua pasta de spam se não recebeu este email.
+ send_paranoid_instructions: Se a sua conta existe, você vai reveber um email com instruções para destrancá-la em alguns minutos. Por favor verifique sua pasta de spam se você não recebeu este email.
+ unlocked: Sua conta foi destrancada com sucesso. Por favor entre na sua conta para continuar.
errors:
messages:
- already_confirmed: já foi confirmado, por favor tente iniciar sessão
+ already_confirmed: confirmado, agora tente entrar na sua conta
confirmation_period_expired: precisa ser confirmada em até %{period}, por favor, solicite novo link de confirmação
expired: expirou, por favor solicite uma nova
not_found: não encontrado
- not_locked: não está bloqueada
+ not_locked: não foi trancada
not_saved:
one: '1 erro impediu este %{resource} de ser salvo(a):'
other: "%{count} erros impediram este %{resource} de ser salvo(a):"
diff --git a/config/locales/devise.pt-PT.yml b/config/locales/devise.pt-PT.yml
index 9689b01f5..935189a16 100644
--- a/config/locales/devise.pt-PT.yml
+++ b/config/locales/devise.pt-PT.yml
@@ -20,19 +20,19 @@ pt-PT:
confirmation_instructions:
action: Verificar o endereço de e-mail
action_with_app: Confirmar e regressar a %{app}
- explanation: Criaste uma conta em %{host} com este endereço de e-mail. Estás a um clique de activá-la. Se não foste tu que fizeste este registo, por favor ignora esta mensagem.
+ explanation: Criou uma conta em %{host} com este endereço de e-mail. Está a um clique de activá-la. Se não foi você que fez este registo, por favor ignore esta mensagem.
explanation_when_pending: Você solicitou um convite para %{host} com este endereço de e-mail. Logo que confirme o seu endereço de e-mail, iremos rever a sua inscrição. Pode iniciar sessão para alterar os seus dados ou eliminar a sua conta, mas não poderá aceder à maioria das funções até que a sua conta seja aprovada. Se a sua inscrição for rejeitada, os seus dados serão removidos, pelo que não será necessária qualquer acção adicional da sua parte. Se não solicitou este convite, por favor, ignore este e-mail.
- extra_html: Por favor lê as regras da instância e os nossos termos de serviço.
+ extra_html: Por favor leia as regras da instância e os nossos termos de serviço.
subject: 'Mastodon: Instruções de confirmação %{instance}'
title: Verificar o endereço de e-mail
email_changed:
explanation: 'O e-mail associado à tua conta será alterado para:'
- extra: Se não alteraste o teu e-mail é possível que alguém tenha conseguido aceder à tua conta. Por favor muda a tua palavra-passe imediatamente ou entra em contato com um administrador do servidor se ficaste sem acesso à tua conta.
+ extra: Se não alterou o seu email, é possível que alguém tenha conseguido aceder à sua conta. Por favor altere a sua palavra-passe imediatamente ou entra em contacto com um administrador da instância se tiver ficado sem acesso à sua conta.
subject: 'Mastodon: Email alterado'
title: Novo endereço de e-mail
password_change:
explanation: A palavra-passe da tua conta foi alterada.
- extra: Se não alteraste a tua palavra-passe, é possível que alguém tenha conseguido aceder à tua conta. Por favor muda a tua palavra-passe imediatamente ou entra em contato com um administrador do servidor se ficaste sem acesso à tua conta.
+ extra: Se não alterou a sua palavra-passe, é possível que alguém tenha conseguido aceder à sua conta. Por favor altere a sua palavra-passe imediatamente ou entre em contacto com um administrador da instância se tiver ficado sem acesso à sua conta.
subject: 'Mastodon: Nova palavra-passe'
title: Palavra-passe alterada
reconfirmation_instructions:
diff --git a/config/locales/devise.ro.yml b/config/locales/devise.ro.yml
index 79dbaa871..8579d2c64 100644
--- a/config/locales/devise.ro.yml
+++ b/config/locales/devise.ro.yml
@@ -1 +1,99 @@
+---
ro:
+ devise:
+ confirmations:
+ confirmed: Adresa ta de e-mail a fost confirmată cu succes.
+ send_instructions: Vei primi un e-mail cu instrucțiuni despre cum să confirmi adresa ta de e-mail în câteva minute. Te rugăm să verifici dosarul spam dacă nu ai primit acest e-mail.
+ send_paranoid_instructions: Dacă adresa ta de e-mail există în baza noastră de date, în câteva minute vei primi un e-mail cu instrucțiuni pentru confirmarea adresei tale de e-mail. Te rugăm să verifici dosarul spam dacă nu ai primit acest e-mail.
+ failure:
+ already_authenticated: Ești deja conectat.
+ inactive: Contul tău nu este încă activat.
+ invalid: "%{authentication_keys} sau parolă greșită."
+ last_attempt: Mai ai încă o încercare înainte de a bloca contul.
+ locked: Contul tău este blocat.
+ not_found_in_database: "%{authentication_keys} sau parolă greșită."
+ pending: Contul tău este încă în curs de revizuire.
+ timeout: Sesiunea ta a expirat. Te rugăm să te conectezi din nou pentru a continua.
+ unauthenticated: Trebuie să te conectezi sau să te înregistrezi înainte de a continua.
+ unconfirmed: Trebuie să confirmi adresa ta de e-mail înainte de a continua.
+ mailer:
+ confirmation_instructions:
+ action: Verifică adresa de e-mail
+ action_with_app: Confirmați și reveniți la %{app}
+ explanation: Ai creat un cont pe %{host} cu această adresă de e-mail. Ești la un click distanță de a o activa. Dacă nu ai fost tu, ignoră acest e-mail.
+ explanation_when_pending: Ai solicitat o invitație către %{host} cu această adresă de e-mail. Odată ce îți confirmi adresa de e-mail, îți vom revizui cererea. Te poți autentifica pentru a-ți schimba detaliile sau pentru a-ți șterge contul, dar nu poți accesa majoritatea funcțiilor până când contul tău nu este aprobat. Dacă cererea ta este respinsă, datele tale vor fi șterse, astfel încât nu va fi necesară nicio altă acțiune din partea ta. Dacă nu ai fost tu, ignoră acest e-mail.
+ extra_html: Te rugăm să verifici și regulile serverului și termenii noștri de serviciu.
+ subject: 'Mastodon: Instrucțiuni de confirmare pentru %{instance}'
+ title: Verifică adresa de e-mail
+ email_changed:
+ explanation: 'Adresa de e-mail pentru contul tău este schimbată la:'
+ extra: Dacă nu v-ați schimbat adresa de e-mail, probabil că cineva a obținut acces la contul dvs. Te rugăm să îți schimbi parola imediat sau să contactezi administratorul serverului dacă nu ai acces la contul tău.
+ subject: E-mail schimbat
+ title: Noua adresa de e-mail
+ password_change:
+ explanation: Parola contului tău a fost schimbată.
+ extra: Dacă nu v-ați schimbat parola, este posibil ca cineva să fi obținut acces la contul dvs. Te rugăm să îți schimbi parola imediat sau să contactezi administratorul serverului dacă nu ai acces la contul tău.
+ subject: Parolă schimbată
+ title: Parolă schimbată
+ reconfirmation_instructions:
+ explanation: Confirmă noua adresă pentru a schimba adresa de e-mail.
+ extra: Dacă această modificare nu a fost inițiată de dvs., vă rugăm să ignorați acest e-mail. Adresa de e-mail pentru contul Mastodon nu se va schimba până când nu accesați link-ul de mai sus.
+ subject: 'Mastodon: Confirmați e-mailul pentru %{instance}'
+ title: Verifică adresa de e-mail
+ reset_password_instructions:
+ action: Schimbă parola
+ explanation: Ați solicitat o nouă parolă pentru contul dvs.
+ extra: Dacă nu ați solicitat acest lucru, ignorați acest e-mail. Parola dvs. nu se va schimba până când nu veți accesa link-ul de mai sus și nu veți crea unul nou.
+ subject: Instrucțiuni pentru resetarea parolei
+ title: Resetare parolă
+ two_factor_disabled:
+ explanation: Autentificarea în doi pași pentru contul tău a fost dezactivată. Autentificarea este posibilă acum folosind doar adresa de e-mail și parola.
+ subject: Autentificare cu doi factori dezactivată
+ title: 2FA dezactivat
+ two_factor_enabled:
+ explanation: Autentificarea în doi pași a fost activată pentru contul dvs. Un token generat de aplicația TOTP împerecheată va fi necesar pentru autentificare.
+ subject: Autentificare în doi pași activată
+ title: 2FA activat
+ two_factor_recovery_codes_changed:
+ explanation: Codurile anterioare de recuperare au fost invalidate și unele noi generate.
+ subject: Recuperare în doi factori
+ title: Coduri de recuperare 2FA modificate
+ unlock_instructions:
+ subject: Instrucțiuni de deblocare
+ omniauth_callbacks:
+ failure: Nu te-am putut autentifica de la %{kind} deoarece "%{reason}".
+ success: Autentificat cu succes din contul %{kind}.
+ passwords:
+ no_token: Nu puteți accesa această pagină fără să veniți dintr-un e-mail de resetare a parolei. Dacă vii dintr-un e-mail de resetare a parolei, te rugăm să te asiguri că ai folosit URL-ul complet furnizat.
+ send_instructions: Dacă adresa ta de e-mail există în baza noastră de date, vei primi în câteva minute un link de recuperare a parolei la adresa ta de e-mail. Te rugăm să verifici dosarul spam dacă nu ai primit acest e-mail.
+ send_paranoid_instructions: Dacă adresa ta de e-mail există în baza noastră de date, vei primi în câteva minute un link de recuperare a parolei la adresa ta de e-mail. Te rugăm să verifici dosarul spam dacă nu ai primit acest e-mail.
+ updated: Parola ta a fost schimbată cu succes. Acum ești conectat.
+ updated_not_active: Parola ta a fost schimbată cu succes.
+ registrations:
+ destroyed: La revedere! Contul tău a fost anulat cu succes. Sperăm să te vedem din nou în curând.
+ signed_up: Bine ați venit! V-ați înregistrat cu succes.
+ signed_up_but_inactive: V-ați înregistrat cu succes. Cu toate acestea, nu vă putem conecta deoarece contul dvs. nu este încă activat.
+ signed_up_but_locked: V-ați înregistrat cu succes. Cu toate acestea, nu vă putem conecta deoarece contul dvs. este blocat.
+ signed_up_but_pending: Un mesaj cu un link de confirmare a fost trimis la adresa ta de e-mail. După ce faceți clic pe link, vă vom revizui cererea. Veți fi notificat dacă este aprobat.
+ signed_up_but_unconfirmed: Un mesaj cu un link de confirmare a fost trimis la adresa ta de e-mail. Vă rugăm să urmaţi link-ul pentru a vă activa contul. Vă rugăm să verificaţi folderul spam dacă nu aţi primit acest e-mail.
+ update_needs_confirmation: Ți-ai actualizat contul cu succes, dar trebuie să verificăm noua ta adresă de e-mail. Vă rugăm să verificați adresa de e-mail și să urmați link-ul de confirmare pentru a confirma noua dvs. adresă de e-mail. Te rugăm să verifici dosarul spam dacă nu ai primit acest e-mail.
+ updated: Contul dvs. a fost actualizat cu succes.
+ sessions:
+ already_signed_out: Deconectat cu succes.
+ signed_in: Conectat cu succes.
+ signed_out: Deconectat cu succes.
+ unlocks:
+ send_instructions: Veţi primi un e-mail cu instrucţiuni despre cum să vă deblocaţi contul în câteva minute. Te rugăm să verifici dosarul spam dacă nu ai primit acest e-mail.
+ send_paranoid_instructions: Dacă contul tău există, vei primi un e-mail cu instrucțiuni pentru cum să-l deblochezi în câteva minute. Te rugăm să verifici dosarul spam dacă nu ai primit acest e-mail.
+ unlocked: Contul tău a fost deblocat cu succes. Te rugăm să te autentifici pentru a continua.
+ errors:
+ messages:
+ already_confirmed: a fost deja confirmat, încercați să vă conectați
+ confirmation_period_expired: trebuie să fie confirmat în %{period}, vă rugăm să solicitați unul nou
+ expired: a expirat, vă rugăm să solicitaţi unul nou
+ not_found: nu a fost găsit
+ not_locked: nu a fost blocat
+ not_saved:
+ few: "%{count} erori au împiedicat salvarea acestui %{resource}:"
+ one: 'O eroare a împiedicat salvarea acestui %{resource}:'
+ other: "%{count} de erori au împiedicat salvarea acestui %{resource}:"
diff --git a/config/locales/devise.ru.yml b/config/locales/devise.ru.yml
index 5d7e33422..52b229ca0 100644
--- a/config/locales/devise.ru.yml
+++ b/config/locales/devise.ru.yml
@@ -18,7 +18,7 @@ ru:
unconfirmed: Вам необходимо подтвердить ваш адрес e-mail для продолжения.
mailer:
confirmation_instructions:
- action: Подтвердите e-mail адрес
+ action: Подтвердить смену e-mail
action_with_app: Подтвердить и вернуться в %{app}
explanation: Вы создали учётную запись на сайте %{host}, используя этот e-mail адрес. Остался лишь один шаг для активации. Если это были не вы, просто игнорируйте письмо.
explanation_when_pending: Вы подали заявку на %{host}, используя этот адрес e-mail. Как только вы его подтвердите, мы начнём изучать вашу заявку. До тех пор вы не сможете войти на сайт. Если ваша заявка будет отклонена, все данные будут автоматически удалены, от вас не потребуется никаких дополнительных действий. Если это были не вы, пожалуйста, проигнорируйте данное письмо.
@@ -28,7 +28,7 @@ ru:
email_changed:
explanation: 'E-mail адрес вашей учётной записи будет изменён на:'
extra: Если вы не меняли e-mail адрес, возможно кто-то получил доступ к вашей учётной записи. Пожалуйста, немедленно смените пароль или свяжитесь с администратором узла, если вы уже потеряли доступ к ней.
- subject: 'Mastodon: изменён e-mail адрес'
+ subject: 'Mastodon: Изменён e-mail адрес'
title: Новый адрес e-mail
password_change:
explanation: Пароль Вашей учётной записи был изменён.
@@ -36,28 +36,28 @@ ru:
subject: 'Mastodon: Пароль изменен'
title: Пароль изменён
reconfirmation_instructions:
- explanation: Подтвердите новый адрес для смены e-mail.
- extra: Если смену e-mail инициировали не вы, пожалуйста, игнорируйте это письмо. Адрес e-mail для учётной записи Mastodon не будет изменён, пока вы не перейдёте по ссылке выше.
- subject: 'Mastodon: Подтверждение e-mail для узла %{instance}'
+ explanation: Для завершения смены e-mail, нажмите кнопку ниже.
+ extra: Если вы не изменяли e-mail, пожалуйста, игнорируйте это письмо. Новый адрес не будет привязан к учётной записи, пока вы не перейдёте по ссылке ниже.
+ subject: 'Mastodon: Подтвердите свой новый e-mail на %{instance}'
title: Подтвердите e-mail адрес
reset_password_instructions:
action: Смена пароля
explanation: Вы запросили новый пароль для вашей учётной записи.
extra: Если это сделали не вы, пожалуйста, игнорируйте письмо. Ваш пароль не будет изменён, пока вы не перейдёте по ссылке выше и не создадите новый пароль.
- subject: 'Mastodon: инструкция по смене пароля'
+ subject: 'Mastodon: Инструкция по сбросу пароля'
title: Сброс пароля
two_factor_disabled:
explanation: Для вашей учётной записи была отключена двухфакторная авторизация. Выполнить вход теперь можно используя лишь e-mail и пароль.
- subject: 'Mastodon: двухфакторная авторизация отключена'
- title: Двухфакторная авторизация отключена
+ subject: 'Mastodon: Двухфакторная авторизация отключена'
+ title: 2ФА отключена
two_factor_enabled:
explanation: Для вашей учётной записи была настроена двухфакторная авторизация. Отныне для входа потребуется также временный код из приложения-аутентификатора.
- subject: 'Mastodon: настроена двухфакторная авторизация'
- title: Двухфакторная авторизация включена
+ subject: 'Mastodon: Настроена двухфакторная авторизация'
+ title: 2ФА включена
two_factor_recovery_codes_changed:
explanation: Предыдущие резервные коды были аннулированы и созданы новые.
- subject: 'Mastodon: резервные коды двуфакторной авторизации обновлены'
- title: Резервные коды двухфакторной авторизации изменены
+ subject: 'Mastodon: Резервные коды двуфакторной авторизации обновлены'
+ title: Резервные коды 2ФА изменены
unlock_instructions:
subject: 'Mastodon: Инструкция по разблокировке'
omniauth_callbacks:
diff --git a/config/locales/devise.sc.yml b/config/locales/devise.sc.yml
new file mode 100644
index 000000000..91bd6d92f
--- /dev/null
+++ b/config/locales/devise.sc.yml
@@ -0,0 +1 @@
+sc:
diff --git a/config/locales/devise.sk.yml b/config/locales/devise.sk.yml
index ba2a64ed0..be85887ce 100644
--- a/config/locales/devise.sk.yml
+++ b/config/locales/devise.sk.yml
@@ -48,15 +48,15 @@ sk:
two_factor_disabled:
explanation: Dvojfázové overovanie tvojho účtu bolo vypnuté. Teraz sa môžeš prihlásiť len pomocou emailu a hesla.
subject: 'Mastodon: Dvojfázové overovanie vypnuté'
- title: 2FA vypnuté
+ title: Dvoj-faktorové overovanie vypnuté
two_factor_enabled:
explanation: Dvojfázové overovanie bolo zapnuté pre tvoj účet. Pre prihlásenie budeš potrebovať token vygenerovaný pre TOTP aplikáciu, ktorá je spárovaná.
subject: 'Mastodon: Dvojfázové overovanie zapnuté'
- title: 2FA zapnuté
+ title: Dvoj-faktorové overovanie zapnuté
two_factor_recovery_codes_changed:
explanation: Predošlé obnovovacie kódy boli urobené neplatnými a boli vygenerované nové.
subject: 'Mastodon: dvojfázové zálohové kódy boli znovu vygenerované'
- title: Obnovovacie kódy 2FA zmenené
+ title: Obnovovacie kódy pre dvoj-faktorové overovanie zmenené
unlock_instructions:
subject: 'Mastodon: Pokyny na odomknutie účtu'
omniauth_callbacks:
diff --git a/config/locales/devise.sq.yml b/config/locales/devise.sq.yml
index 0380d962e..0fb59cb48 100644
--- a/config/locales/devise.sq.yml
+++ b/config/locales/devise.sq.yml
@@ -44,6 +44,10 @@ sq:
extra: Nëse këtë s’e kërkuat ju, ju lutemi, shpërfilleni këtë email. Fjalëkalimi juaj s’do të ndryshohet pa hyrë në lidhjen më sipër dhe krijimin e një të riu.
subject: 'Mastodon: Udhëzime ricaktimi fjalëkalimi'
title: Ricaktim fjalëkalimi
+ two_factor_disabled:
+ title: 2FA ç'aktivizuar
+ two_factor_enabled:
+ title: 2FA aktivizuar
unlock_instructions:
subject: 'Mastodon: Udhëzime shkyçjeje'
omniauth_callbacks:
diff --git a/config/locales/devise.zh-CN.yml b/config/locales/devise.zh-CN.yml
index 4c75a8816..cc17b6289 100644
--- a/config/locales/devise.zh-CN.yml
+++ b/config/locales/devise.zh-CN.yml
@@ -8,14 +8,14 @@ zh-CN:
failure:
already_authenticated: 你已经登录。
inactive: 你还没有激活帐户。
- invalid: "%{authentication_keys}或密码错误。"
+ invalid: 无效的%{authentication_keys}或密码错误。
last_attempt: 你还有最后一次尝试机会,再次失败你的帐户将被锁定。
locked: 你的帐户已被锁定。
not_found_in_database: "%{authentication_keys}或密码错误。"
pending: 你的帐号仍在审核中。
- timeout: 你已登录超时,请重新登录。
+ timeout: 您的会话已过期。请重新登录再继续操作。
unauthenticated: 继续操作前请注册或者登录。
- unconfirmed: 继续操作前请先确认你的帐户。
+ unconfirmed: 您必须先确认您的电子邮件地址才能继续。
mailer:
confirmation_instructions:
action: 验证电子邮件地址
@@ -26,7 +26,7 @@ zh-CN:
subject: Mastodon:确认 %{instance} 帐户信息
title: 验证电子邮件地址
email_changed:
- explanation: 你的帐户的电子邮件地址即将变更为:
+ explanation: 你的帐户的电子邮件地址将变更为:
extra: 如果你并没有请求更改你的电子邮件地址,则他人很有可能已经入侵你的帐户。请立即更改你的密码;如果你已经无法访问你的帐户,请联系服务器管理员请求协助。
subject: Mastodon:电子邮件地址已被更改
title: 新电子邮件地址
@@ -80,8 +80,8 @@ zh-CN:
updated: 帐户资料更新成功。
sessions:
already_signed_out: 已成功登出。
- signed_in: 登录成功。
- signed_out: 登出成功。
+ signed_in: 已成功登录。
+ signed_out: 已成功登出。
unlocks:
send_instructions: 几分钟后,你将收到一封解锁帐户的邮件。如果没有,请检查你的垃圾邮箱。
send_paranoid_instructions: 如果你的邮箱存在于我们的数据库中,你将收到一封解锁帐户的邮件。如果没有,请检查你的垃圾邮箱。
@@ -91,7 +91,7 @@ zh-CN:
already_confirmed: 已经确认成功,请尝试登录
confirmation_period_expired: 必须在 %{period}以内确认。请重新发起请求
expired: 已过期。请重新发起请求
- not_found: 找不到
+ not_found: 未找到
not_locked: 未被锁定
not_saved:
- other: 发生 %{count} 个错误,导致%{resource}保存失败:
+ other: 发生了 %{count} 个错误, %{resource} 将保存失败:
diff --git a/config/locales/devise.zh-HK.yml b/config/locales/devise.zh-HK.yml
index ceae8b238..e1bb9f959 100644
--- a/config/locales/devise.zh-HK.yml
+++ b/config/locales/devise.zh-HK.yml
@@ -12,13 +12,16 @@ zh-HK:
last_attempt: 若你再一次嘗試失敗,我們將鎖定你的帳號,以策安全。
locked: 你的帳號已被鎖定。
not_found_in_database: 不正確的 %{authentication_keys} 或密碼。
+ pending: 您的帳戶仍在審核中。
timeout: 你的登入階段已經過期,請重新登入以繼續使用。
unauthenticated: 你必須先登入或登記,以繼續使用。
unconfirmed: 你必須先確認電郵地址,繼續使用。
mailer:
confirmation_instructions:
action: 驗證電子郵件地址
+ action_with_app: 確認並返回 %{app}
explanation: 你在 %{host} 上使用這個電子郵件地址建立了一個帳戶。只需點擊下面的連結,即可啟用帳戶。如果你並沒有建立過帳戶,請忽略此郵件。
+ explanation_when_pending: 您使用此電子信箱位址申請了 %{host} 的邀請。當您確認電子信箱後我們將審核您的申請,而直到核准前您都無法登入。當您的申請遭拒絕,您的資料將被移除而不必做後續動作。如果這不是您,請忽略此信件。
extra_html: 請記得閱讀本服務站的相關規定和使用條款。
subject: 'Mastodon: 確認電郵地址 %{instance}'
title: 驗證電子郵件地址
@@ -43,6 +46,18 @@ zh-HK:
extra: 如果你沒有請求本次變更,請忽略此郵件。你的密碼只有在你點擊上面的連結並輸入新密碼後才會更改。
subject: 'Mastodon: 重設密碼'
title: 重設密碼
+ two_factor_disabled:
+ explanation: 您帳戶的兩步驟驗證已停用。現在只能使用電子信箱位址及密碼登入。
+ subject: Mastodon:已停用兩步驟驗證
+ title: 已停用 2FA
+ two_factor_enabled:
+ explanation: 已對您的帳戶啟用兩步驟驗證。登入時將需要配對之 TOTP 應用程式所產生的 Token。
+ subject: Mastodon:已啟用兩步驟驗證
+ title: 已啟用 2FA
+ two_factor_recovery_codes_changed:
+ explanation: 上一次的復原碼已經失效,且已產生新的。
+ subject: Mastodon:兩步驟驗證復原碼已經重新產生
+ title: 2FA 復原碼已變更
unlock_instructions:
subject: 'Mastodon: 解除用戶鎖定'
omniauth_callbacks:
@@ -59,6 +74,7 @@ zh-HK:
signed_up: 歡迎你!你的登記已經成功。
signed_up_but_inactive: 你的登記已經成功,可是由於你的用戶還被被啟用,暫時還不能讓你登入。
signed_up_but_locked: 你的登記已經成功,可是由於你的用戶已被鎖定,我們無法讓你登入。
+ signed_up_but_pending: 包含確認連結的訊息已寄到您的電子信箱。按下此連結後我們將審核您的申請。核准後將通知您。
signed_up_but_unconfirmed: 一條確認連結已經電郵到你的郵址。請使用讓連結啟用你的用戶。
update_needs_confirmation: 你的用戶已經更新,但我們需要確認你的電郵地址。請打開你的郵箱,使用確認電郵的連結來確認的地郵址。
updated: 你的用戶已經成功更新。
diff --git a/config/locales/doorkeeper.br.yml b/config/locales/doorkeeper.br.yml
index c7677c850..a9b8d5b90 100644
--- a/config/locales/doorkeeper.br.yml
+++ b/config/locales/doorkeeper.br.yml
@@ -1 +1,52 @@
+---
br:
+ activerecord:
+ attributes:
+ doorkeeper/application:
+ name: Anv an arload
+ website: Lec'hienn an arload
+ doorkeeper:
+ applications:
+ buttons:
+ authorize: Aotren
+ cancel: Nullañ
+ destroy: Distrujañ
+ edit: Aozañ
+ confirmations:
+ destroy: Ha sur oc'h ?
+ index:
+ application: Arload
+ delete: Dilemel
+ name: Anv
+ new: Arload nevez
+ show: Diskouez
+ title: Hoc'h arloadoù
+ new:
+ title: Arload nevez
+ show:
+ title: 'Arload : %{name}'
+ authorizations:
+ buttons:
+ authorize: Aotren
+ authorized_applications:
+ confirmations:
+ revoke: Ha sur oc'h ?
+ index:
+ application: Arload
+ date_format: "%d-%m-%Y %H:%M:%S"
+ flash:
+ applications:
+ create:
+ notice: Savet eo bet an arload.
+ destroy:
+ notice: Dilamet eo bet an arload.
+ update:
+ notice: Hizivaet eo bet an arload.
+ layouts:
+ admin:
+ nav:
+ applications: Arloadoù
+ scopes:
+ read:lists: gwelout ho listennoù
+ write:lists: krouiñ listennoù
+ write:statuses: embann toudoù
diff --git a/config/locales/doorkeeper.cs.yml b/config/locales/doorkeeper.cs.yml
index 00345db76..aecb781c9 100644
--- a/config/locales/doorkeeper.cs.yml
+++ b/config/locales/doorkeeper.cs.yml
@@ -148,4 +148,4 @@ cs:
write:mutes: skrývat lidi a konverzace
write:notifications: mazat vaše oznámení
write:reports: nahlašovat jiné uživatele
- write:statuses: zvařejňovat tooty
+ write:statuses: zveřejňovat tooty
diff --git a/config/locales/doorkeeper.da.yml b/config/locales/doorkeeper.da.yml
index 04f524c0a..cf630195f 100644
--- a/config/locales/doorkeeper.da.yml
+++ b/config/locales/doorkeeper.da.yml
@@ -38,6 +38,7 @@ da:
application: Applikation
callback_url: Callback-URL
delete: Slet
+ empty: Du har ingen applikationer.
name: Navn
new: Ny applikation
scopes: Omfang
diff --git a/config/locales/doorkeeper.fi.yml b/config/locales/doorkeeper.fi.yml
index abe1a96b2..34b08dd76 100644
--- a/config/locales/doorkeeper.fi.yml
+++ b/config/locales/doorkeeper.fi.yml
@@ -38,6 +38,7 @@ fi:
application: Sovellus
callback_url: Takaisinkutsu-URL
delete: Poista
+ empty: Sinulla ei ole sovelluksia.
name: Nimi
new: Uusi sovellus
scopes: Oikeudet
diff --git a/config/locales/doorkeeper.fr.yml b/config/locales/doorkeeper.fr.yml
index e9bf70cd2..8a628538b 100644
--- a/config/locales/doorkeeper.fr.yml
+++ b/config/locales/doorkeeper.fr.yml
@@ -25,7 +25,7 @@ fr:
edit: Modifier
submit: Envoyer
confirmations:
- destroy: Êtes-vous certain·e ?
+ destroy: Voulez-vous vraiment faire ça ?
edit:
title: Modifier l’application
form:
@@ -37,7 +37,7 @@ fr:
index:
application: Application
callback_url: URL de retour d’appel
- delete: Effacer
+ delete: Supprimer
empty: Vous n’avez pas d’application.
name: Nom
new: Nouvelle application
@@ -69,7 +69,7 @@ fr:
buttons:
revoke: Annuler
confirmations:
- revoke: Êtes-vous certain·e ?
+ revoke: Voulez-vous vraiment faire ça ?
index:
application: Application
created_at: Créé le
@@ -145,7 +145,7 @@ fr:
write:follows: suivre des personnes
write:lists: créer des listes
write:media: téléverser des fichiers média
- write:mutes: masquer des gens et des conversations
- write:notifications: nettoyer vos notifications
+ write:mutes: masquer des comptes et des conversations
+ write:notifications: effacer vos notifications
write:reports: signaler d’autres personnes
write:statuses: publier des statuts
diff --git a/config/locales/doorkeeper.gl.yml b/config/locales/doorkeeper.gl.yml
index 281f03f84..c6c347a7f 100644
--- a/config/locales/doorkeeper.gl.yml
+++ b/config/locales/doorkeeper.gl.yml
@@ -5,7 +5,7 @@ gl:
doorkeeper/application:
name: Nome do aplicativo
redirect_uri: URI a redireccionar
- scopes: Permisos
+ scopes: Ámbitos
website: Sitio web da aplicación
errors:
models:
@@ -79,8 +79,8 @@ gl:
errors:
messages:
access_denied: O propietario do recurso ou o servidor autorizado denegaron a petición.
- credential_flow_not_configured: O fluxo do Contrasinal de Credenciais do Dono do Recurso fallou debido a que Doorkeeper.configure.resource_owner_from_credentials non están configuradas.
- invalid_client: A autenticación do cliente fallou debido a un cliente descoñecido, non se incluíu autenticación do cliente, ou o método de autenticación non está soportado.
+ credential_flow_not_configured: O fluxo do Contrasinal de Credenciais do Dono do Recurso fallou debido a que Doorkeeper.configure.resource_owner_from_credentials non están configuradas.
+ invalid_client: A autenticación do cliente fallou por ser un cliente descoñecido, non se incluíu autenticación do cliente, ou o método de autenticación non está soportado.
invalid_grant: A validación da autorización proporcionada non é valida, caducou, foi rexeitada, non coincide a redirección URI utilizada na petición de autorización, ou foi proporcionada para outro cliente.
invalid_redirect_uri: A uri de redirección incluída non é válida.
invalid_request: A petición fáltalle un parámetro requerido, inclúe un valor de parámetro non soportado, ou de algún xeito non ten o formato axeitado.
@@ -99,53 +99,53 @@ gl:
flash:
applications:
create:
- notice: Aplicativo creado.
+ notice: Aplicación creada.
destroy:
- notice: Aplicativo eliminado.
+ notice: Aplicación eliminada.
update:
- notice: Aplicativo actualizado.
+ notice: Aplicación actualizada.
authorized_applications:
destroy:
- notice: Aplicativo rexeitado.
+ notice: Aplicación revogada.
layouts:
admin:
nav:
- applications: Aplicativos
- oauth2_provider: Proveedor OAuth2
+ applications: Aplicacións
+ oauth2_provider: Provedor OAuth2
application:
title: Precisa autorización OAuth
scopes:
admin:read: ler todos os datos no servidor
admin:read:accounts: ler información sensible de todas as contas
- admin:read:reports: ler información sensible de todos os informes e contas reportadas
+ admin:read:reports: ler información sensible de todos os informes e contas denunciadas
admin:write: modificar todos os datos no servidor
admin:write:accounts: executar accións de moderación nas contas
- admin:write:reports: executar accións de moderación nos informes
+ admin:write:reports: executar accións de moderación nas denuncias
follow: modificar as relacións da conta
push: recibir notificacións push
- read: ler todos os datos da súa conta
+ read: ler todos os datos da tua conta
read:accounts: ver información das contas
- read:blocks: ver a quen bloquea
- read:bookmarks: aquí tes os marcadores
- read:favourites: ver as súas favoritas
- read:filters: ver os seus filtros
- read:follows: ver a quen segue
- read:lists: ver as súas listas
- read:mutes: ver a quen ten acalado
+ read:blocks: ver a quen bloqueas
+ read:bookmarks: ver os marcadores
+ read:favourites: ver os favoritos
+ read:filters: ver os filtros
+ read:follows: ver a quen segues
+ read:lists: ver as tuas listaxes
+ read:mutes: ver a quen tes acalado
read:notifications: ver as notificacións
- read:reports: ver os seus informes
- read:search: buscar no seu nome
+ read:reports: ver as túas denuncias
+ read:search: buscar no teu nome
read:statuses: ver todos os estados
- write: modificar todos os datos da súa conta
- write:accounts: modificar o seu perfil
+ write: modificar todos os datos da tua conta
+ write:accounts: modificar o teu perfil
write:blocks: bloquear contas e dominios
- write:bookmarks: marca os estados
+ write:bookmarks: marcar os estados
write:favourites: estados favoritos
write:filters: crear filtros
write:follows: seguir usuarias
- write:lists: crear listas
- write:media: subir ficheiros de medios
+ write:lists: crear listaxes
+ write:media: subir ficheiros multimedia
write:mutes: acalar usuarias e conversas
write:notifications: eliminar as notificacións
- write:reports: informe a outras usuarias
+ write:reports: denunciar usuarias
write:statuses: publicar estados
diff --git a/config/locales/doorkeeper.kab.yml b/config/locales/doorkeeper.kab.yml
index b384b76b1..dd141a10e 100644
--- a/config/locales/doorkeeper.kab.yml
+++ b/config/locales/doorkeeper.kab.yml
@@ -51,12 +51,12 @@ kab:
authorizations:
buttons:
authorize: Ssireg
- deny: Ggami
+ deny: Aggi
error:
title: Tella-d tuccḍa
new:
- able_to: Asnas-agi yezmer
- prompt: Eǧǧ i %{client_name} ad yekcem γer umiḍan-ik
+ able_to: Asnas-agi yezmer ad
+ prompt: Yessutred wesnan n %{client_name} akečum γer umiḍan-ik
title: Tlaq tsiregt
show:
title: Nγel tangalt n wurag sakkin senteḍ-itt deg usnas.
@@ -102,7 +102,7 @@ kab:
read:favourites: ẓer ismenyifen-ik
read:filters: ẓer imsizedgen-ik
read:follows: ẓer imeḍfaṛen-ik
- read:lists: ẓer tibdarin-ik
+ read:lists: ẓer umuγen-ik·im
read:mutes: ẓer wid i tesgugmeḍ
read:notifications: ẓer tilγa-ik
read:statuses: ẓer meṛṛa tisuffaγ
@@ -112,5 +112,5 @@ kab:
write:bookmarks: ad yernu tisuffγin γer ticraḍ
write:filters: rnu-d imsizedgen
write:follows: ḍfeṛ imdanen
- write:lists: rnu-d tibdarin
+ write:lists: yesnulfu umuγen
write:media: ad yessali ifayluyen n teγwalt
diff --git a/config/locales/doorkeeper.ko.yml b/config/locales/doorkeeper.ko.yml
index 6f4192ebe..16a2d0490 100644
--- a/config/locales/doorkeeper.ko.yml
+++ b/config/locales/doorkeeper.ko.yml
@@ -126,7 +126,7 @@ ko:
read: 계정의 모든 데이터를 읽기
read:accounts: 계정의 정보를 보기
read:blocks: 차단을 보기
- read:bookmarks: 내 갈무리 보기
+ read:bookmarks: 내 보관함 보기
read:favourites: 관심글을 보기
read:filters: 필터를 보기
read:follows: 팔로우를 보기
@@ -139,7 +139,7 @@ ko:
write: 계정 정보 수정
write:accounts: 프로필 수정
write:blocks: 계정이나 도메인 차단
- write:bookmarks: 게시글을 갈무리하기
+ write:bookmarks: 게시글을 보관함에 넣기
write:favourites: 관심글 지정
write:filters: 필터 만들기
write:follows: 사람을 팔로우
diff --git a/config/locales/doorkeeper.nn.yml b/config/locales/doorkeeper.nn.yml
index f670d5a8b..f5437672a 100644
--- a/config/locales/doorkeeper.nn.yml
+++ b/config/locales/doorkeeper.nn.yml
@@ -5,7 +5,7 @@ nn:
doorkeeper/application:
name: Applikasjonsnamn
redirect_uri: Omdirigerings-URI
- scopes: Omfang
+ scopes: Skop
website: Applikasjonsnettside
errors:
models:
@@ -33,15 +33,15 @@ nn:
help:
native_redirect_uri: Bruk %{native_redirect_uri} for lokale testar
redirect_uri: Bruk ei linjer per URI
- scopes: Adskill omfang med mellomrom. La det være blankt for å bruke standard omfang.
+ scopes: Skil skop med mellomrom. Ikkje fyll inn noko som helst for å bruke standardskop.
index:
application: Applikasjon
callback_url: Callback-URL
delete: Slett
- empty: Du har ingen søknader.
+ empty: Du har ikkje nokon applikasjonar.
name: Namn
new: Ny applikasjon
- scopes: Omfang
+ scopes: Skop
show: Vis
title: Dine applikasjonar
new:
@@ -49,8 +49,8 @@ nn:
show:
actions: Handlingar
application_id: Klientnøkkel
- callback_urls: Callback-URLer
- scopes: Omfang
+ callback_urls: Callback-URLar
+ scopes: Skop
secret: Klienthemmelegheit
title: 'Applikasjon: %{name}'
authorizations:
@@ -60,8 +60,8 @@ nn:
error:
title: Ein feil har oppstått
new:
- able_to: Den vil ha mulighet til
- prompt: Applikasjon %{client_name} spør om tilgang til din konto
+ able_to: Applikasjonen vil kunne
+ prompt: Applikasjonen %{client_name} spør om tilgang til kontoen din
title: Autorisasjon nødvendig
show:
title: Kopier denne autorisasjonskoden og lim den inn i applikasjonen.
@@ -74,15 +74,15 @@ nn:
application: Applikasjon
created_at: Autorisert
date_format: "%Y-%m-%d %H:%M:%S"
- scopes: Omfang
+ scopes: Skop
title: Dine autoriserte applikasjonar
errors:
messages:
- access_denied: Ressurseieren eller autoriseringstjeneren avviste forespørslen.
- credential_flow_not_configured: Ressurseiers passordflyt feilet fordi Doorkeeper.configure.resource_owner_from_credentials ikke var konfigurert.
+ access_denied: Ressurseigaren eller autorisasjonstenaren avviste førespurnaden.
+ credential_flow_not_configured: Flyten «Resource Owner Password Credentials» kunne ikkje verte fullført av di «Doorkeeper.configure.resource_owner_from_credentials» er ikkje konfigurert.
invalid_client: Klientautentisering feilet på grunn av ukjent klient, ingen autentisering inkludert, eller autentiseringsmetode er ikke støttet.
invalid_grant: Autoriseringen er ugyldig, utløpt, opphevet, stemmer ikke overens med omdirigerings-URIen eller var utstedt til en annen klient.
- invalid_redirect_uri: Den inkluderte omdirigerings-URLen er ikke gyldig.
+ invalid_redirect_uri: Omdirigerings-URLen er ikkje gyldig.
invalid_request: Forespørslen mangler en eller flere parametere, inkluderte en parameter som ikke støttes eller har feil struktur.
invalid_resource_owner: Ressurseierens detaljer er ikke gyldige, eller så er det ikke mulig å finne eieren
invalid_scope: Det etterspurte omfanget er ugyldig, ukjent eller har feil struktur.
diff --git a/config/locales/doorkeeper.pt-BR.yml b/config/locales/doorkeeper.pt-BR.yml
index 90d8f9358..7d18fb2bb 100644
--- a/config/locales/doorkeeper.pt-BR.yml
+++ b/config/locales/doorkeeper.pt-BR.yml
@@ -38,7 +38,7 @@ pt-BR:
application: Aplicativos
callback_url: Link de retorno
delete: Excluir
- empty: Não tem aplicações.
+ empty: Você não tem aplicativos.
name: Nome
new: Novo aplicativo
scopes: Autorizações
diff --git a/config/locales/doorkeeper.pt-PT.yml b/config/locales/doorkeeper.pt-PT.yml
index 2433f23e9..d492029b4 100644
--- a/config/locales/doorkeeper.pt-PT.yml
+++ b/config/locales/doorkeeper.pt-PT.yml
@@ -144,7 +144,7 @@ pt-PT:
write:filters: criar filtros
write:follows: seguir pessoas
write:lists: criar listas
- write:media: carregar arquivos de média
+ write:media: carregar arquivos de media
write:mutes: silenciar pessoas e conversas
write:notifications: limpar as suas notificações
write:reports: reportar outras pessoas
diff --git a/config/locales/doorkeeper.ro.yml b/config/locales/doorkeeper.ro.yml
index 79dbaa871..3f3077c1e 100644
--- a/config/locales/doorkeeper.ro.yml
+++ b/config/locales/doorkeeper.ro.yml
@@ -1 +1,151 @@
+---
ro:
+ activerecord:
+ attributes:
+ doorkeeper/application:
+ name: Numele aplicației
+ redirect_uri: URI de redirecționare
+ scopes: Domenii
+ website: Pagina web a aplicației
+ errors:
+ models:
+ doorkeeper/application:
+ attributes:
+ redirect_uri:
+ fragment_present: nu poate conține un fragment.
+ invalid_uri: trebuie să fie un URI valid.
+ relative_uri: trebuie să fie un URI absolut.
+ secured_uri: trebuie să fie un URI HTTPS/SSL.
+ doorkeeper:
+ applications:
+ buttons:
+ authorize: Autorizează
+ cancel: Anulează
+ destroy: Distruge
+ edit: Editează
+ submit: Trimite
+ confirmations:
+ destroy: Ești sigur?
+ edit:
+ title: Editați aplicația
+ form:
+ error: Ups! Verificați formularul pentru posibile erori
+ help:
+ native_redirect_uri: Utilizați %{native_redirect_uri} pentru teste locale
+ redirect_uri: Folosește câte o linie per URI
+ scopes: Separați domeniile cu spații. Lăsați necompletat pentru a utiliza domeniile implicite.
+ index:
+ application: Aplicație
+ callback_url: URL pentru callback
+ delete: Șterge
+ empty: Nu aveți aplicații.
+ name: Nume
+ new: Aplicație nouă
+ scopes: Domenii
+ show: Arată
+ title: Aplicațiile tale
+ new:
+ title: Aplicație nouă
+ show:
+ actions: Acțiuni
+ application_id: Cheie client
+ callback_urls: URL-uri de callback
+ scopes: Domenii
+ secret: Codul secret al clientului
+ title: 'Aplicație: %{name}'
+ authorizations:
+ buttons:
+ authorize: Autorizează
+ deny: Interzice
+ error:
+ title: A apărut o eroare
+ new:
+ able_to: Acesta va putea să
+ prompt: Aplicația %{client_name} cere acces la contul dvs
+ title: Autorizare necesară
+ show:
+ title: Copiați acest cod de autorizare și lipiți-l în aplicație.
+ authorized_applications:
+ buttons:
+ revoke: Revocați
+ confirmations:
+ revoke: Ești sigur?
+ index:
+ application: Aplicație
+ created_at: Autorizat
+ date_format: "%Y-%m-%d %H:%M:%S"
+ scopes: Domenii
+ title: Aplicațiile dvs autorizate
+ errors:
+ messages:
+ access_denied: Proprietarul de resurse sau serverul de autorizare a refuzat cererea.
+ credential_flow_not_configured: Fluxul Resurselor de Acreditări Parole a eșuat din cauza faptului că Doorkeeper.configure.resource_owner_from_credentials nu este configurat.
+ invalid_client: Autentificarea clientului a eșuat din cauza unui client necunoscut, nici o autentificare client inclusă, sau metodă de autentificare nesuportată.
+ invalid_grant: Acordarea autorizației furnizată este invalidă, expirată, revocată, nu corespunde URI-ului de redirecționare folosit în cererea de autorizare, sau a fost eliberat altui client.
+ invalid_redirect_uri: Uri-ul de redirecționare inclus nu este valid.
+ invalid_request: Solicitarea îi lipsește un parametru necesar, include o valoare de parametru nesuportată sau este dealtfel formatat incorect.
+ invalid_resource_owner: Acreditările proprietarului de resurse nu sunt valide sau proprietarul de resurse nu poate fi găsit
+ invalid_scope: Domeniul de aplicare solicitat este invalid, necunoscut sau incorect.
+ invalid_token:
+ expired: Token-ul de acces a expirat
+ revoked: Token-ul de acces a fost revocat
+ unknown: Token-ul de acces nu este valid
+ resource_owner_authenticator_not_configured: Găsirea Proprietarului de Resurse a eșuat deoarece Doorkeeper.configure.resource_owner_authenticator nu a fost configurată.
+ server_error: Serverul de autorizare a întâmpinat o condiție neașteptată care l-a împiedicat să îndeplinească cererea.
+ temporarily_unavailable: Serverul de autorizare este în prezent incapabil să gestioneze cererea din cauza unei supraîncărcări sau întrețineri temporare a serverului.
+ unauthorized_client: Clientul nu este autorizat să efectueze această cerere folosind această metodă.
+ unsupported_grant_type: Tipul de acordare a autorizației nu este suportat de serverul de autorizare.
+ unsupported_response_type: Serverul de autorizare nu acceptă acest tip de răspuns.
+ flash:
+ applications:
+ create:
+ notice: Aplicație creată.
+ destroy:
+ notice: Aplicație ștearsă.
+ update:
+ notice: Aplicație actualizată.
+ authorized_applications:
+ destroy:
+ notice: Aplicație revocată.
+ layouts:
+ admin:
+ nav:
+ applications: Aplicaţii
+ oauth2_provider: Furnizor OAuth2
+ application:
+ title: Este necesară autorizarea OAuth
+ scopes:
+ admin:read: citește toate datele de pe server
+ admin:read:accounts: citește informații sensibile ale tuturor conturilor
+ admin:read:reports: citește informații sensibile din toate rapoartele și conturile raportate
+ admin:write: modifică toate datele de pe server
+ admin:write:accounts: efectuează acțiuni de moderare pe conturi
+ admin:write:reports: efectuează acțiuni de moderare pe rapoarte
+ follow: modifică relațiile contului
+ push: primește notificările tale push
+ read: citește toate datele contului tău
+ read:accounts: vede informațiile privind conturile
+ read:blocks: vede blocurile tale
+ read:bookmarks: vede marcajele tale
+ read:favourites: vede favoritele tale
+ read:filters: vede filtrele tale
+ read:follows: vede urmăririle tale
+ read:lists: vede listele tale
+ read:mutes: vede ignorările tale
+ read:notifications: vede notificările tale
+ read:reports: vede raportările tale
+ read:search: caută în numele tău
+ read:statuses: vede toate stările
+ write: modifică toate datele contului tău
+ write:accounts: modifică profilul tău
+ write:blocks: blochează conturile și domeniile
+ write:bookmarks: marchează stările
+ write:favourites: favorizează stările
+ write:filters: creează filtre
+ write:follows: urmărește persoane
+ write:lists: creează liste
+ write:media: încarcă fișiere media
+ write:mutes: ignoră persoane și conversații
+ write:notifications: curăță notificările
+ write:reports: raportează alte persoane
+ write:statuses: publică stări
diff --git a/config/locales/doorkeeper.sc.yml b/config/locales/doorkeeper.sc.yml
new file mode 100644
index 000000000..91bd6d92f
--- /dev/null
+++ b/config/locales/doorkeeper.sc.yml
@@ -0,0 +1 @@
+sc:
diff --git a/config/locales/doorkeeper.sk.yml b/config/locales/doorkeeper.sk.yml
index 4cd80a4e0..bf414361d 100644
--- a/config/locales/doorkeeper.sk.yml
+++ b/config/locales/doorkeeper.sk.yml
@@ -60,7 +60,7 @@ sk:
title: Nastala chyba
new:
able_to: Bude môcť
- prompt: Aplikácia %{client_name} žiada prístup k vašemu účtu
+ prompt: Aplikácia %{client_name} vyžaduje prístup k tvojmu účtu
title: Je potrebná autorizácia
show:
title: Skopíruj tento autorizačný kód a vlož ho do aplikácie.
@@ -73,7 +73,7 @@ sk:
application: Aplikácia
created_at: Autorizované
scopes: Oprávnenia
- title: Vaše autorizované aplikácie
+ title: Tvoje povolené aplikácie
errors:
messages:
access_denied: Prístup zamietnutý.
diff --git a/config/locales/doorkeeper.sq.yml b/config/locales/doorkeeper.sq.yml
index a1f2121f9..1541213d1 100644
--- a/config/locales/doorkeeper.sq.yml
+++ b/config/locales/doorkeeper.sq.yml
@@ -3,10 +3,10 @@ sq:
activerecord:
attributes:
doorkeeper/application:
- name: Emër aplikacioni
+ name: Emri aplikacionit
redirect_uri: URI Ridrejtimi
scopes: Fushëveprime
- website: Sajt aplikacioni
+ website: Webi i aplikacionit
errors:
models:
doorkeeper/application:
@@ -19,49 +19,50 @@ sq:
doorkeeper:
applications:
buttons:
- authorize: Autorizoje
- cancel: Anuloje
- destroy: Asgjësoje
- edit: Përpunoni
- submit: Parashtroje
+ authorize: Autorizo
+ cancel: Anulo
+ destroy: Shkatërro
+ edit: Modifiko
+ submit: Dërgo
confirmations:
- destroy: A jeni i sigurt?
+ destroy: A jeni të sigurt?
edit:
- title: Përpunoni aplikacion
+ title: Modifiko aplikacionin
form:
error: Oh! Kontrolloni formularin tuaj për gabime të mundshme
help:
- native_redirect_uri: Përdor %{native_redirect_uri} për teste vendore
+ native_redirect_uri: Përdorni %{native_redirect_uri} për teste lokale
redirect_uri: Përdorni një URI për rresht
scopes: Ndajini fushëveprimet me hapësira. Që të përdoren fushëveprimet parazgjedhje, lëreni të zbrazët.
index:
application: Aplikacion
- callback_url: URL Callback-u
- delete: Fshije
- name: Emër
+ callback_url: URL pasuese
+ delete: Fshij
+ empty: Nuk posedoni aplikacione.
+ name: Emri
new: Aplikacion i ri
scopes: Fushëveprime
- show: Shfaqe
+ show: Shfaq
title: Aplikacionet tuaja
new:
title: Aplikacion i ri
show:
actions: Veprime
- application_id: Kyç klienti
- callback_urls: URL-ra Callback
+ application_id: Çelësi për klient
+ callback_urls: URL pasuese
scopes: Fushëveprime
- secret: E fshehtë klienti
- title: 'Aplikacion: %{name}'
+ secret: Sekreti për klient
+ title: 'Aplikacioni: %{name}'
authorizations:
buttons:
- authorize: Autorizoje
- deny: Mohoje
+ authorize: Autorizo
+ deny: Refuzo
error:
title: Ndodhi një gabim
new:
- able_to: Do të jetë në gjendje të
- prompt: "%{client_name} kërkesa hyrjeje aplikacionesh te llogaria juaj"
- title: Lypset autorizim
+ able_to: Do të jet e mundshme të
+ prompt: Aplikacioni %{client_name} kërkon të ketë qasje në llogarinë tuaj
+ title: Autorizim i domosdoshëm
show:
title: Kopjojeni këtë kod autorizimi dhe ngjiteni te aplikacioni.
authorized_applications:
@@ -114,11 +115,18 @@ sq:
application:
title: Lypset autorizim OAuth
scopes:
+ admin:read: lexo gjithë të dhënat në server
+ admin:read:accounts: lexo të dhëna sensitive të të gjithë llogarive
+ admin:read:reports: lexo të dhëna sensitive të raporteve dhe të llogarive të raportuara
+ admin:write: modifiko gjithë të dhënat në server
+ admin:write:accounts: realizo veprime moderimi në llogaritë
+ admin:write:reports: realizo veprime moderimi në raporte
follow: të ndryshojë marrëdhënies llogarish
push: të marrë njoftime push për ju
read: të lexojë krejt të dhënat e llogarisë tuaj
read:accounts: të shohë të dhëna llogarish
read:blocks: të shohë blloqet tuaja
+ read:bookmarks: shih shënjimet tuaja
read:favourites: të shohë të parapëlqyerit tuaj
read:filters: të shohë filtrat tuaj
read:follows: të shohë ndjekësit tuaj
@@ -131,6 +139,7 @@ sq:
write: të ndryshojë krejt të dhënat e llogarisë tuaj
write:accounts: të ndryshojë profilin tuaj
write:blocks: të bllokojë llogari dhe përkatësi
+ write:bookmarks: shënjo statuse
write:favourites: të parapëlqejë gjendje
write:filters: të krijojë filtra
write:follows: të ndjekë persona
@@ -139,4 +148,4 @@ sq:
write:mutes: të heshtojë persona dhe biseda
write:notifications: të pastrojë njoftimet tuaja
write:reports: të raportojë persona të tjerë
- write:statuses: të botojë gjendje
+ write:statuses: publiko statuse
diff --git a/config/locales/doorkeeper.th.yml b/config/locales/doorkeeper.th.yml
index be009af4d..8ca87578b 100644
--- a/config/locales/doorkeeper.th.yml
+++ b/config/locales/doorkeeper.th.yml
@@ -29,7 +29,7 @@ th:
edit:
title: แก้ไขแอปพลิเคชัน
help:
- native_redirect_uri: ใช้ %{native_redirect_uri} สำหรับการทดสอบในเว็บ
+ native_redirect_uri: ใช้ %{native_redirect_uri} สำหรับการทดสอบในเซิร์ฟเวอร์
redirect_uri: ใช้หนึ่งบรรทัดต่อ URI
scopes: แยกขอบเขตด้วยช่องว่าง เว้นว่างไว้เพื่อใช้ขอบเขตเริ่มต้น
index:
diff --git a/config/locales/el.yml b/config/locales/el.yml
index 85c7bc648..1e6254c5b 100644
--- a/config/locales/el.yml
+++ b/config/locales/el.yml
@@ -51,7 +51,7 @@ el:
accounts:
choices_html: 'Επιλογές από %{name}:'
endorsements_hint: Μπορεις να εγκρίνεις ανθρώπους που ακολουθείς μέσω της δικτυακής εφαρμογής και αυτοί θα εμφανίζονται εδώ.
- featured_tags_hint: Μπορείς να επιλέξεις συγκεκριμένες ταμπέλες που θα εμφανίζονται εδώ.
+ featured_tags_hint: Μπορείς να επιλέξεις συγκεκριμένες ετικέτες που θα εμφανίζονται εδώ.
follow: Ακολούθησε
followers:
one: Ακόλουθος
@@ -92,6 +92,7 @@ el:
delete: Διαγραφή
destroyed_msg: Επιτυχής καταστροφή σημειώματος μεσολάβησης!
accounts:
+ add_email_domain_block: Εγγραφή τομέα email σε μαύρη λίστα
approve: Έγκριση
approve_all: Έγκριση όλων
are_you_sure: Σίγουρα;
@@ -172,6 +173,7 @@ el:
staff: Προσωπικό
user: Χρήστης
search: Αναζήτηση
+ search_same_email_domain: Άλλοι χρήστες με τον ίδιο τομέα e-mail
search_same_ip: Υπόλοιποι χρήστες με την ίδια διεύθυνση IP
shared_inbox_url: URL κοινόχρηστων εισερχομένων
show:
@@ -193,6 +195,42 @@ el:
web: Διαδίκτυο
whitelisted: Εγκεκριμένοι
action_logs:
+ action_types:
+ assigned_to_self_report: Ανάθεση Αναφοράς
+ change_email_user: Αλλαγή email για χρήστη
+ confirm_user: Επιβεβαίωση Χρήστη
+ create_account_warning: Δημιουργία Προειδοποίησης
+ create_announcement: Δημιουργία Ανακοίνωσης
+ create_custom_emoji: Δημιουργία Προσαρμοσμένου Emoji
+ create_domain_allow: Δημιουργία Επιτρεπτού Τομέα
+ create_domain_block: Δημιουργία Αποκλεισμένου Τομέα
+ create_email_domain_block: Δημουργία Αποκλεισμένου Τομέα email
+ demote_user: Υποβιβασμός Χρήστη
+ destroy_announcement: Διαγραφή Ανακοίνωσης
+ destroy_custom_emoji: Διαγραφή Προσαρμοσμένου Emoji
+ destroy_domain_allow: Διαγραφή Επιτρεπτού Τομέα
+ destroy_domain_block: Διαγραφή Αποκλεισμού Τομέα
+ destroy_email_domain_block: Διαγραφή Αποκλεισμένου Τομέα email
+ destroy_status: Διαγραφή Κατάστασης
+ disable_2fa_user: Απενεργοποίηση 2FA
+ disable_custom_emoji: Απενεργοποίηση Προσαρμοσμένων Emoji
+ disable_user: Απενεργοποίηση Χρήστη
+ enable_custom_emoji: Ενεργοποίηση Προσαρμοσμένων Emoji
+ enable_user: Ενεργοποίηση Χρήστη
+ memorialize_account: Μετατροπή Λογαριασμού σε Αναμνηστικό
+ promote_user: Προαγωγή Χρήστη
+ remove_avatar_user: Αφαίρεση Avatar
+ reopen_report: Ξανάνοιγμα Καταγγελίας
+ reset_password_user: Επαναφορά Συνθηματικού
+ resolve_report: Επίλυση Καταγγελίας
+ silence_account: Σίγαση Λογαριασμού
+ suspend_account: Αναστολή Λογαριασμού
+ unassigned_report: Αποδέσμευση Καταγγελίας
+ unsilence_account: Άρση Σίγασης Λογαριασμού
+ unsuspend_account: Άρση Αναστολής Λογαριασμού
+ update_announcement: Ενημέρωση Ανακοίνωσης
+ update_custom_emoji: Ενημέρωση Προσαρμοσμένου Emoji
+ update_status: Ενημέρωση Κατάστασης
actions:
assigned_to_self_report: Ο/Η %{name} ανάθεσε την καταγγελία %{target} στον εαυτό του/της
change_email_user: Ο/Η %{name} άλλαξε τη διεύθυνση email του χρήστη %{target}
@@ -230,6 +268,9 @@ el:
update_custom_emoji: Ο/Η %{name} ενημέρωσε το emoji %{target}
update_status: Ο/Η %{name} ενημέρωσε την κατάσταση του/της %{target}
deleted_status: "(διαγραμμένη δημοσίευση)"
+ empty: Δεν βρέθηκαν αρχεία καταγραφής.
+ filter_by_action: Φιλτράρισμα ανά ενέργεια
+ filter_by_user: Φιλτράρισμα ανά χρήστη
title: Αρχείο ελέγχου
announcements:
destroyed_msg: Επιτυχής διαγραφή ανακοίνωσης!
@@ -292,7 +333,7 @@ el:
features: Λειτουργίες
hidden_service: Ομοσπονδία με κρυμμένες υπηρεσίες
open_reports: ανοιχτές καταγγελίες
- pending_tags: ταμπέλες προς έγκριση
+ pending_tags: ετικέτες προς έγκριση
pending_users: χρήστες προς έγκριση
recent_users: Πρόσφατοι χρήστες
search: Αναζήτηση πλήρους κειμένου
@@ -358,6 +399,7 @@ el:
destroyed_msg: Επιτυχής διαγραφή email τομέα από τη μαύρη λίστα
domain: Τομέας
empty: Δεν έχουν οριστεί αποκλεισμένοι τομείς email.
+ from_html: από %{domain}
new:
create: Πρόσθεση τομέα
title: Νέα εγγραφή email στη μαύρη λίστα
@@ -532,11 +574,14 @@ el:
title: Προεπισκόπιση ροής
title: Ρυθμίσεις ιστότοπου
trendable_by_default:
- desc_html: Επηρεάζει τις ταμπέλες που δεν είχαν απαγορευτεί νωρίτερα
- title: Επέτρεψε στις ταμπέλες να εμφανιστούν στις τάσεις χωρίς προηγούμενη έγκριση
+ desc_html: Επηρεάζει όσες ετικέτες δεν είχαν απαγορευτεί νωρίτερα
+ title: Επέτρεψε στις ετικέτες να εμφανίζονται στις τάσεις χωρίς να χρειάζεται πρώτα έγκριση
trends:
- desc_html: Δημόσια εμφάνιση ταμπελών που έχουν ήδη εγκριθεί και είναι δημοφιλείς
- title: Δημοφιλείς ταμπέλες
+ desc_html: Δημόσια εμφάνιση ετικετών που έχουν ήδη εγκριθεί και είναι δημοφιλείς
+ title: Δημοφιλείς ετικέτες
+ site_uploads:
+ delete: Διαγραφή μεταφορτωμένου αρχείου
+ destroyed_msg: Η μεταφόρτωση ιστότοπου διαγράφηκε επιτυχώς!
statuses:
back_to_account: Επιστροφή στη σελίδα λογαριασμού
batch:
@@ -561,19 +606,18 @@ el:
last_active: Τελευταία δραστηριότητα
most_popular: Δημοφιλέστερες
most_recent: Πιο πρόσφατες
- name: Ταμπέλα
+ name: Ετικέτα
review: Κατάσταση έγκρισης
reviewed: Εγκεκριμένες
- title: Ταμπέλες
+ title: Ετικέτες
trending_right_now: Δημοφιλείς αυτή τη στιγμή
unique_uses_today: "%{count} σημερινές δημοσιεύσεις"
unreviewed: Εκκρεμεί έγκριση
- updated_msg: Οι ρυθμίσεις των ταμπελών ενημερώθηκαν επιτυχώς
+ updated_msg: Οι ρυθμίσεις των ετικετών ενημερώθηκαν επιτυχώς
title: Διαχείριση
warning_presets:
add_new: Πρόσθεση νέου
delete: Διαγραφή
- edit: Ενημέρωση
edit_preset: Ενημέρωση προκαθορισμένης προειδοποίησης
title: Διαχείριση προκαθορισμένων προειδοποιήσεων
admin_mailer:
@@ -585,17 +629,18 @@ el:
body_remote: Κάποιος/α από τον τομέα %{domain} κατήγγειλε τον/την %{target}
subject: Νέα καταγγελία για %{instance} (#%{id})
new_trending_tag:
- body: 'Η ταμπέλα #%{name} είναι δημοφιλής σήμερα, αλλά δεν έχει εγκριθεί μέχρι τώρα. Δεν θα εμφανίζεται δημοσίως μέχρι να δοθεί έγκρισή, αλλιώς αποθηκεύστε τη φόρμα ως έχει για να μην την δείτε ξανά.'
- subject: Νέα ταμπέλα προς έγκριση στο %{instance} (#%{name})
+ body: 'Η ετικέτα #%{name} είναι δημοφιλής σήμερα, αλλά δεν έχει εγκριθεί μέχρι τώρα. Δεν θα εμφανίζεται δημοσίως μέχρι να δοθεί έγκριση, αλλιώς αποθήκευση τη φόρμα ως έχει για να μην την δεις ξανά.'
+ subject: Νέα ετικέτα προς έγκριση στο %{instance} (#%{name})
aliases:
add_new: Δημιουργία ψευδώνυμου
created_msg: Δημιουργήθηκε νέο ψευδώνυμο. Τώρα μπορείς να ξεκινήσεις τη μεταφορά από τον παλιό λογαριασμό.
deleted_msg: Αφαιρέθηκε το ψευδώνυμο. Η μεταφορά από εκείνον τον λογαριασμό σε αυτόν εδώ δε θα είναι πλέον δυνατή.
+ empty: Δεν έχεις ψευδώνυμα.
hint_html: Αν θέλεις να μετακομίσεις από έναν άλλο λογαριασμό σε αυτόν εδώ, μπορείς εδώ να δημιουργήσεις ένα ψευδώνυμο, πράγμα που απαιτείται πριν προχωρήσεις για να μεταφέρεις τους ακολούθους σου από τον παλιό λογαριασμό σε αυτόν εδώ. Η ενέργεια αυτή είναι ακίνδυνη και αναστρέψιμη.Η μετακόμιση του λογαριασμού ξεκινάει από τον παλιό λογαριασμό.
remove: Αφαίρεση ψευδώνυμου
appearance:
advanced_web_interface: Προηγμένη λειτουργία χρήσης
- advanced_web_interface_hint: 'Αν θέλεις να χρησιμοποιήσεις ολόκληρο το πλάτος της οθόνης σου, η προηγμένη λειτουργία χρήσης σου επιτρέπει να ορίσεις πολλαπλές κολώνες ώστε να βλέπεις ταυτόχρονα όση πληροφορία θέλεις: Την αρχική ροή, τις ειδοποιήσεις, την ομοσπονδιακή ροή και όσες λίστες και ταμπέλες θέλεις.'
+ advanced_web_interface_hint: 'Αν θέλεις να χρησιμοποιήσεις ολόκληρο το πλάτος της οθόνης σου, η προηγμένη λειτουργία χρήσης σου επιτρέπει να ορίσεις πολλαπλές κολώνες ώστε να βλέπεις ταυτόχρονα όση πληροφορία θέλεις: Την αρχική ροή, τις ειδοποιήσεις, την ομοσπονδιακή ροή και όσες λίστες και ετικέτες θέλεις.'
animations_and_accessibility: Κίνηση και προσβασιμότητα
confirmation_dialogs: Ερωτήσεις επιβεβαίωσης
discovery: Εξερεύνηση
@@ -661,6 +706,7 @@ el:
trouble_logging_in: Πρόβλημα σύνδεσης;
authorize_follow:
already_following: Ήδη ακολουθείς αυτό το λογαριασμό
+ already_requested: Έχετε ήδη στείλει ένα αίτημα ακολούθησης σε αυτόν τον λογαριασμό
error: Δυστυχώς παρουσιάστηκε ένα σφάλμα κατά την αναζήτηση του απομακρυσμένου λογαριασμού
follow: Ακολούθησε
follow_request: 'Έστειλες αίτημα παρακολούθησης προς:'
@@ -750,8 +796,8 @@ el:
featured_tags:
add_new: Προσθήκη νέας
errors:
- limit: Έχεις ήδη προσθέσει το μέγιστο αριθμό ταμπελών
- hint_html: "Τι είναι οι προβεβλημένες ταμπέλες; Προβάλλονται στο δημόσιο προφίλ σου επιτρέποντας σε όποιον το βλέπει να χαζέψει τις δημοσιεύσεις που τις χρησιμοποιούν. Είναι ωραίος τρόπος να παρακολουθείς κάποια δημιουργία ή ένα μακροπρόθεσμο έργο."
+ limit: Έχεις ήδη προσθέσει το μέγιστο αριθμό ετικετών
+ hint_html: "Τι είναι οι προβεβλημένες ετικέτες; Προβάλλονται στο δημόσιο προφίλ σου επιτρέποντας σε όποιον το βλέπει να χαζέψει τις δημοσιεύσεις που τις χρησιμοποιούν. Είναι ένας ωραίος τρόπος να παρακολουθείς την πορεία μιας δημιουργία ή ενός μακροπρόθεσμου έργου."
filters:
contexts:
account: Προφίλ
@@ -804,6 +850,8 @@ el:
inactive: Ανενεργή
publicize_checkbox: 'Και κάνε τουτ αυτό:'
publicize_toot: 'Αποδείχτηκε! Λέγομαι %{username} στο %{service}: %{url}'
+ remove: Αφαίρεση απόδειξης από τον λογαριασμό
+ removed: Επιτυχής αφαίρεση απόδειξης από τον λογαριασμό
status: Κατάσταση επαλήθευσης
view_proof: Εμφάνιση απόδειξης
imports:
@@ -849,6 +897,7 @@ el:
media_attachments:
validations:
images_and_video: Δεν γίνεται να προσθέσεις βίντεο σε ενημέρωση που ήδη περιέχει εικόνες
+ not_ready: Δεν μπορούν να επισυναφθούν αρχεία για τα οποία δεν έχει τελειώσει η επεξεργασία. Προσπαθήστε ξανά σε λίγο!
too_many: Δεν γίνεται να προσθέσεις περισσότερα από 4 αρχεία
migrations:
acct: ΌνομαΧρήστη@Τομέας του νέου λογαριασμού
@@ -1044,7 +1093,7 @@ el:
development: Ανάπτυξη
edit_profile: Επεξεργασία προφίλ
export: Εξαγωγή δεδομένων
- featured_tags: Χαρακτηριστικές ταμπέλες
+ featured_tags: Χαρακτηριστικές ετικέτες
identity_proofs: Αποδείξεις ταυτοτήτων
import: Εισαγωγή
import_and_export: Εισαγωγή & Εξαγωγή
@@ -1068,8 +1117,10 @@ el:
boosted_from_html: Προωθήθηκε από %{acct_link}
content_warning: 'Προειδοποίηση περιεχομένου: %{warning}'
disallowed_hashtags:
- one: 'περιέχει μη επιτρεπτή ταμπέλα: %{tags}'
- other: 'περιέχει μη επιτρεπτές ταμπέλες: %{tags}'
+ one: 'περιέχει μη επιτρεπτή ετικέτα: %{tags}'
+ other: περιέχει μη επιτρεπτές ετικέτες %{tags}
+ errors:
+ in_reply_not_found: Η κατάσταση στην οποία προσπαθείτε να απαντήσετε δεν υπάρχει.
language_detection: Αυτόματη αναγνώριση γλώσσας
open_in_web: Δες στο διαδίκτυο
over_character_limit: υπέρβαση μέγιστου ορίου %{max} χαρακτήρων
diff --git a/config/locales/en.yml b/config/locales/en.yml
index d11d9ae51..9e4808ec8 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -92,6 +92,7 @@ en:
delete: Delete
destroyed_msg: Moderation note successfully destroyed!
accounts:
+ add_email_domain_block: Blacklist e-mail domain
approve: Approve
approve_all: Approve all
are_you_sure: Are you sure?
@@ -172,6 +173,7 @@ en:
staff: Staff
user: User
search: Search
+ search_same_email_domain: Other users with the same e-mail domain
search_same_ip: Other users with the same IP
shared_inbox_url: Shared inbox URL
show:
@@ -193,6 +195,42 @@ en:
web: Web
whitelisted: Whitelisted
action_logs:
+ action_types:
+ assigned_to_self_report: Assign Report
+ change_email_user: Change E-mail for User
+ confirm_user: Confirm User
+ create_account_warning: Create Warning
+ create_announcement: Create Announcement
+ create_custom_emoji: Create Custom Emoji
+ create_domain_allow: Create Domain Allow
+ create_domain_block: Create Domain Block
+ create_email_domain_block: Create E-mail Domain Block
+ demote_user: Demote User
+ destroy_announcement: Delete Announcement
+ destroy_custom_emoji: Delete Custom Emoji
+ destroy_domain_allow: Delete Domain Allow
+ destroy_domain_block: Delete Domain Block
+ destroy_email_domain_block: Delete e-mail domain block
+ destroy_status: Delete Status
+ disable_2fa_user: Disable 2FA
+ disable_custom_emoji: Disable Custom Emoji
+ disable_user: Disable User
+ enable_custom_emoji: Enable Custom Emoji
+ enable_user: Enable User
+ memorialize_account: Memorialize Account
+ promote_user: Promote User
+ remove_avatar_user: Remove Avatar
+ reopen_report: Reopen Report
+ reset_password_user: Reset Password
+ resolve_report: Resolve Report
+ silence_account: Silence Account
+ suspend_account: Suspend Account
+ unassigned_report: Unassign Report
+ unsilence_account: Unsilence Account
+ unsuspend_account: Unsuspend Account
+ update_announcement: Update Announcement
+ update_custom_emoji: Update Custom Emoji
+ update_status: Update Status
actions:
assigned_to_self_report: "%{name} assigned report %{target} to themselves"
change_email_user: "%{name} changed the e-mail address of user %{target}"
@@ -230,6 +268,9 @@ en:
update_custom_emoji: "%{name} updated emoji %{target}"
update_status: "%{name} updated status by %{target}"
deleted_status: "(deleted status)"
+ empty: No logs found.
+ filter_by_action: Filter by action
+ filter_by_user: Filter by user
title: Audit log
announcements:
destroyed_msg: Announcement successfully deleted!
@@ -358,6 +399,7 @@ en:
destroyed_msg: Successfully deleted e-mail domain from blacklist
domain: Domain
empty: No e-mail domains currently blacklisted.
+ from_html: from %{domain}
new:
create: Add domain
title: New e-mail blacklist entry
@@ -537,6 +579,9 @@ en:
trends:
desc_html: Publicly display previously reviewed hashtags that are currently trending
title: Trending hashtags
+ site_uploads:
+ delete: Delete uploaded file
+ destroyed_msg: Site upload successfully deleted!
statuses:
back_to_account: Back to account page
batch:
@@ -573,7 +618,6 @@ en:
warning_presets:
add_new: Add new
delete: Delete
- edit: Edit
edit_preset: Edit warning preset
title: Manage warning presets
admin_mailer:
@@ -591,6 +635,7 @@ en:
add_new: Create alias
created_msg: Successfully created a new alias. You can now initiate the move from the old account.
deleted_msg: Successfully remove the alias. Moving from that account to this one will no longer be possible.
+ empty: You have no aliases.
hint_html: If you want to move from another account to this one, here you can create an alias, which is required before you can proceed with moving followers from the old account to this one. This action by itself is harmless and reversible. The account migration is initiated from the old account.
remove: Unlink alias
appearance:
@@ -725,7 +770,7 @@ en:
'422':
content: Security verification failed. Are you blocking cookies?
title: Security verification failed
- '429': Throttled
+ '429': Too many requests
'500':
content: We're sorry, but something went wrong on our end.
title: This page is not correct
@@ -800,12 +845,14 @@ en:
invalid_token: Keybase tokens are hashes of signatures and must be 66 hex characters
verification_failed: Keybase does not recognize this token as a signature of Keybase user %{kb_username}. Please retry from Keybase.
wrong_user: Cannot create a proof for %{proving} while logged in as %{current}. Log in as %{proving} and try again.
- explanation_html: Here you can cryptographically connect your other identities, such as a Keybase profile. This lets other people send you encrypted messages and trust content you send them.
+ explanation_html: Here you can cryptographically connect your other identities from other platforms, such as Keybase. This lets other people send you encrypted messages on those platforms and allows them to trust that the content you send them comes from you.
i_am_html: I am %{username} on %{service}.
identity: Identity
inactive: Inactive
publicize_checkbox: 'And post this:'
publicize_toot: 'It is proven! I am %{username} on %{service}: %{url}'
+ remove: Remove proof from account
+ removed: Successfully removed proof from account
status: Verification status
view_proof: View proof
imports:
@@ -851,6 +898,7 @@ en:
media_attachments:
validations:
images_and_video: Cannot attach a video to a status that already contains images
+ not_ready: Cannot attach files that have not finished processing. Try again in a moment!
too_many: Cannot attach more than 4 files
migrations:
acct: Moved to
@@ -859,7 +907,7 @@ en:
cancelled_msg: Successfully cancelled the redirect.
errors:
already_moved: is the same account you have already moved to
- missing_also_known_as: is not back-referencing this account
+ missing_also_known_as: is not an alias of this account
move_to_self: cannot be current account
not_found: could not be found
on_cooldown: You are on cooldown
@@ -1073,6 +1121,8 @@ en:
disallowed_hashtags:
one: 'contained a disallowed hashtag: %{tags}'
other: 'contained the disallowed hashtags: %{tags}'
+ errors:
+ in_reply_not_found: The status you are trying to reply to does not appear to exist.
language_detection: Automatically detect language
local_only: Local-only
open_in_web: Open in web
diff --git a/config/locales/en_GB.yml b/config/locales/en_GB.yml
index 6a538209d..a38a36e38 100644
--- a/config/locales/en_GB.yml
+++ b/config/locales/en_GB.yml
@@ -474,7 +474,6 @@ en_GB:
warning_presets:
add_new: Add new
delete: Delete
- edit: Edit
edit_preset: Edit warning preset
title: Manage warning presets
admin_mailer:
diff --git a/config/locales/eo.yml b/config/locales/eo.yml
index b3cb2b523..4f398763f 100644
--- a/config/locales/eo.yml
+++ b/config/locales/eo.yml
@@ -33,7 +33,7 @@ eo:
one: mesaĝo
other: mesaĝoj
status_count_before: Kie skribiĝis
- tagline: Sekvi amikojn kaj trovi novan onin
+ tagline: Sekvi amikojn kaj trovi iujn novajn
terms: Uzkondiĉoj
unavailable_content: Nedisponebla enhavo
unavailable_content_description:
@@ -187,6 +187,10 @@ eo:
web: Reto
whitelisted: En la blanka listo
action_logs:
+ action_types:
+ disable_user: Malebligi uzanton
+ enable_user: Ebligi uzanton
+ reopen_report: Remalfermi signalon
actions:
assigned_to_self_report: "%{name} asignis signalon %{target} al si mem"
change_email_user: "%{name} ŝanĝis retadreson de uzanto %{target}"
@@ -557,7 +561,6 @@ eo:
warning_presets:
add_new: Aldoni novan
delete: Forigi
- edit: Redakti
edit_preset: Redakti avertan antaŭagordon
title: Administri avertajn antaŭagordojn
admin_mailer:
@@ -819,11 +822,12 @@ eo:
images_and_video: Aldoni videon al mesaĝo, kiu jam havas bildojn ne eblas
too_many: Aldoni pli ol 4 dosierojn ne eblas
migrations:
- acct: uzantnomo@domajno de la nova konto
+ acct: Movigita al
cancel: Nuligi alidirekton
cancelled_msg: Sukcese forigis la alidirekton.
errors:
already_moved: estas la saman konton vi jam translokiĝis al
+ missing_also_known_as: ne returne referencas al ĉi tiu konto
move_to_self: ne povas esti nuna konto
not_found: ne povis trovi
on_cooldown: Vi estas ĉe malvarmiĝi
@@ -907,11 +911,16 @@ eo:
other: Aliaj aferoj
posting_defaults: Afiŝadoj defaŭltoj
public_timelines: Publikaj templinioj
+ reactions:
+ errors:
+ limit_reached: Limito de malsamaj reagoj atinginta
+ unrecognized_emoji: ne estas rekonita emoĝio
relationships:
activity: Konta aktiveco
dormant: Dormanta
followers: Sekvantoj
following: Sekvatoj
+ invited: Invitita
last_active: Laste aktiva
most_recent: Plej lasta
moved: Moviĝita
@@ -1035,7 +1044,7 @@ eo:
one: "%{count} voĉdono"
other: "%{count} voĉdonoj"
vote: Voĉdoni
- show_more: Montri pli
+ show_more: Malfoldi
show_thread: Montri la fadenon
sign_in_to_participate: Ensaluti por partopreni en la konversacio
title: "%{name}: “%{quote}”"
diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml
index 6eec00cb6..bfed20eab 100644
--- a/config/locales/es-AR.yml
+++ b/config/locales/es-AR.yml
@@ -92,6 +92,7 @@ es-AR:
delete: Eliminar
destroyed_msg: "¡Nota de moderación destruída exitosamente!"
accounts:
+ add_email_domain_block: Desaprobar el dominio del correo electrónico
approve: Aprobar
approve_all: Aprobar todas
are_you_sure: "¿Estás seguro?"
@@ -172,6 +173,7 @@ es-AR:
staff: Equipo
user: Usuario
search: Buscar
+ search_same_email_domain: Otros usuarios con el mismo dominio de correo electrónico
search_same_ip: Otros usuarios con la misma dirección IP
shared_inbox_url: Dirección web de la bandeja de entrada compartida
show:
@@ -193,6 +195,42 @@ es-AR:
web: Web
whitelisted: Aprobadas
action_logs:
+ action_types:
+ assigned_to_self_report: Asignar denuncia
+ change_email_user: Cambiar correo electrónico del usuario
+ confirm_user: Confirmar usuario
+ create_account_warning: Crear advertencia
+ create_announcement: Crear anuncio
+ create_custom_emoji: Crear emoji personalizado
+ create_domain_allow: Crear permiso de dominio
+ create_domain_block: Crear bloqueo de dominio
+ create_email_domain_block: Crear bloqueo de dominio de correo electrónico
+ demote_user: Descender usuario
+ destroy_announcement: Eliminar anuncio
+ destroy_custom_emoji: Eliminar emoji personalizado
+ destroy_domain_allow: Eliminar permiso de dominio
+ destroy_domain_block: Eliminar bloquedo de dominio
+ destroy_email_domain_block: Eliminar bloquedo de dominio de correo electrónico
+ destroy_status: Eliminar estado
+ disable_2fa_user: Deshabilitar 2FA
+ disable_custom_emoji: Deshabilitar emoji personalizado
+ disable_user: Deshabilitar usuario
+ enable_custom_emoji: Habilitar emoji personalizado
+ enable_user: Habilitar usuario
+ memorialize_account: Volver cuenta conmemorativa
+ promote_user: Promover usuario
+ remove_avatar_user: Quitar avatar
+ reopen_report: Reabrir denuncia
+ reset_password_user: Cambiar contraseña
+ resolve_report: Resolver denuncia
+ silence_account: Silenciar cuenta
+ suspend_account: Suspender cuenta
+ unassigned_report: Desasignar denuncia
+ unsilence_account: Dejar de silenciar cuenta
+ unsuspend_account: Dejar de suspender cuenta
+ update_announcement: Actualizar anuncio
+ update_custom_emoji: Actualizar emoji personalizado
+ update_status: Actualizar estado
actions:
assigned_to_self_report: "%{name} se asignó la denuncia %{target} a sí"
change_email_user: "%{name} cambió la dirección de correo electrónico del usuario %{target}"
@@ -230,6 +268,9 @@ es-AR:
update_custom_emoji: "%{name} actualizó el emoji %{target}"
update_status: "%{name} actualizó el estado de %{target}"
deleted_status: "(estado borrado)"
+ empty: No se encontraron registros.
+ filter_by_action: Filtrar por acción
+ filter_by_user: Filtrar por usuario
title: Registro de auditoría
announcements:
destroyed_msg: "¡Anuncio eliminado exitosamente!"
@@ -358,6 +399,7 @@ es-AR:
destroyed_msg: Se aprobó dominio de correo electrónico exitosamente
domain: Dominio
empty: Actualmente no hay dominios de correo electrónico desaprobados.
+ from_html: de %{domain}
new:
create: Agregar dominio
title: Nueva desaprobación de correo electrónico
@@ -537,6 +579,9 @@ es-AR:
trends:
desc_html: Mostrar públicamente etiquetas previamente revisadas que son tendencia actualmente
title: Etiquetas tendencias
+ site_uploads:
+ delete: Eliminar archivo subido
+ destroyed_msg: "¡Subida al sitio eliminada exitosamente!"
statuses:
back_to_account: Volver a la página de la cuenta
batch:
@@ -573,7 +618,6 @@ es-AR:
warning_presets:
add_new: Agregar nuevo
delete: Eliminar
- edit: Editar
edit_preset: Editar preajuste de advertencia
title: Administrar preajustes de advertencia
admin_mailer:
@@ -591,6 +635,7 @@ es-AR:
add_new: Crear alias
created_msg: El nuevo alias se creó exitosamente. Ahora podés empezar la mudanza desde la cuenta vieja.
deleted_msg: Eliminaste el alias exitosamente. La mudanza de esa cuenta a esta ya no será posible.
+ empty: No tenés alias.
hint_html: Si querés mudarte desde otra cuenta a esta, acá podés crear un alias, el cual es necesario antes de empezar a mudar seguidores de la cuenta vieja a esta. Esta acción por sí misma es inofensiva y reversible. La migración de la cuenta se inicia desde la cuenta anterior.
remove: Desenlazar alias
appearance:
@@ -661,6 +706,7 @@ es-AR:
trouble_logging_in: "¿Tenés problemas para iniciar sesión?"
authorize_follow:
already_following: Ya estás siguiendo a esta cuenta
+ already_requested: Ya enviaste una solicitud de seguimiento a esa cuenta
error: Lamentablemente, ocurrió un error buscando la cuenta remota
follow: Seguir
follow_request: 'Enviaste una solicitud de seguimiento a:'
@@ -804,6 +850,8 @@ es-AR:
inactive: Inactiva
publicize_checkbox: 'Y tooteá esto:'
publicize_toot: "¡Comprobado! Soy %{username} en %{service}: %{url}"
+ remove: Quitar prueba de cuenta
+ removed: Se quitó la prueba de cuenta exitosamente
status: Estado de verificación
view_proof: Ver prueba
imports:
@@ -849,6 +897,7 @@ es-AR:
media_attachments:
validations:
images_and_video: No se puede adjuntar un video a un estado que ya contenga imágenes
+ not_ready: No se pueden adjuntar archivos que no terminaron de procesarse. ¡Intentá de nuevo en un rato!
too_many: No se pueden adjuntar más de 4 archivos
migrations:
acct: Mudada a
@@ -1070,6 +1119,8 @@ es-AR:
disallowed_hashtags:
one: 'contenía una etiqueta no permitida: %{tags}'
other: 'contenía las etiquetas no permitidas: %{tags}'
+ errors:
+ in_reply_not_found: El estado al que intentás responder no existe.
language_detection: Detectar idioma automáticamente
open_in_web: Abrir en web
over_character_limit: se excedió el límite de %{max} caracteres
@@ -1099,7 +1150,7 @@ es-AR:
unlisted_long: Todos pueden ver, pero no está listado en las líneas temporales públicas
stream_entries:
pinned: Toot fijado
- reblogged: retooteado
+ reblogged: retooteó
sensitive_content: Contenido sensible
tags:
does_not_match_previous_name: no coincide con el nombre anterior
diff --git a/config/locales/es.yml b/config/locales/es.yml
index a26143018..f58b44c77 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -92,6 +92,7 @@ es:
delete: Borrar
destroyed_msg: "¡Nota de moderación destruida con éxito!"
accounts:
+ add_email_domain_block: Poner en lista negra el dominio del correo
approve: Aprobar
approve_all: Aprobar todos
are_you_sure: "¿Estás seguro?"
@@ -172,6 +173,7 @@ es:
staff: Personal
user: Usuario
search: Buscar
+ search_same_email_domain: Otros usuarios con el mismo dominio de correo
search_same_ip: Otros usuarios con la misma IP
shared_inbox_url: URL de bandeja compartida
show:
@@ -193,6 +195,42 @@ es:
web: Web
whitelisted: Añadido a la lista blanca
action_logs:
+ action_types:
+ assigned_to_self_report: Asignar Reporte
+ change_email_user: Cambiar Correo Electrónico del Usuario
+ confirm_user: Confirmar Usuario
+ create_account_warning: Crear Advertencia
+ create_announcement: Crear Anuncio
+ create_custom_emoji: Crear Emoji Personalizado
+ create_domain_allow: Crear Permiso de Dominio
+ create_domain_block: Crear Bloqueo de Dominio
+ create_email_domain_block: Crear Bloqueo de Dominio de Correo Electrónico
+ demote_user: Degradar Usuario
+ destroy_announcement: Eliminar Anuncio
+ destroy_custom_emoji: Eliminar Emoji Personalizado
+ destroy_domain_allow: Eliminar Permiso de Dominio
+ destroy_domain_block: Eliminar Bloqueo de Dominio
+ destroy_email_domain_block: Eliminar Bloqueo de Dominio de Correo Electrónico
+ destroy_status: Eliminar Estado
+ disable_2fa_user: Deshabilitar 2FA
+ disable_custom_emoji: Deshabilitar Emoji Personalizado
+ disable_user: Deshabilitar Usuario
+ enable_custom_emoji: Habilitar Emoji Personalizado
+ enable_user: Habilitar Usuario
+ memorialize_account: Transformar en Cuenta Conmemorativa
+ promote_user: Promover Usuario
+ remove_avatar_user: Eliminar Avatar
+ reopen_report: Reabrir Reporte
+ reset_password_user: Restablecer Contraseña
+ resolve_report: Resolver Reporte
+ silence_account: Silenciar Cuenta
+ suspend_account: Suspender Cuenta
+ unassigned_report: Desasignar Reporte
+ unsilence_account: Dejar de Silenciar Cuenta
+ unsuspend_account: Dejar de Suspender Cuenta
+ update_announcement: Actualizar Anuncio
+ update_custom_emoji: Actualizar Emoji Personalizado
+ update_status: Actualizar Estado
actions:
assigned_to_self_report: "%{name} se ha asignado la denuncia %{target} a sí mismo"
change_email_user: "%{name} ha cambiado la dirección de correo del usuario %{target}"
@@ -230,6 +268,9 @@ es:
update_custom_emoji: "%{name} actualizó el emoji %{target}"
update_status: "%{name} actualizó el estado de %{target}"
deleted_status: "(estado borrado)"
+ empty: No se encontraron registros.
+ filter_by_action: Filtrar por acción
+ filter_by_user: Filtrar por usuario
title: Log de auditoría
announcements:
destroyed_msg: "¡Anuncio eliminado con éxito!"
@@ -358,6 +399,7 @@ es:
destroyed_msg: Dominio de correo borrado de la lista negra con éxito
domain: Dominio
empty: Actualmente no hay dominios de correo electrónico en la lista negra.
+ from_html: de %{domain}
new:
create: Añadir dominio
title: Nueva entrada en la lista negra de correo
@@ -537,6 +579,9 @@ es:
trends:
desc_html: Mostrar públicamente hashtags previamente revisados que son tendencia
title: Hashtags de tendencia
+ site_uploads:
+ delete: Eliminar archivo subido
+ destroyed_msg: "¡Carga del sitio eliminada con éxito!"
statuses:
back_to_account: Volver a la cuenta
batch:
@@ -573,7 +618,6 @@ es:
warning_presets:
add_new: Añadir nuevo
delete: Borrar
- edit: Editar
edit_preset: Editar aviso predeterminado
title: Editar configuración predeterminada de avisos
admin_mailer:
@@ -591,6 +635,7 @@ es:
add_new: Crear alias
created_msg: El nuevo alias se ha creado correctamente. Ahora puedes empezar el traslado desde la cuenta antigua.
deleted_msg: Elimina el alias correctamente. El traslado de esa cuenta a esta ya no será posible.
+ empty: No tienes ningún alias.
hint_html: Si quieres migrar de otra cuenta a esta, aquí puedes crear un alias, es necesario proceder antes de empezar a mover seguidores de la cuenta anterior a esta. Esta acción por sí misma es inofensiva y reversible. La migración de la cuenta se inicia desde la cuenta antigua.
remove: Desvincular alias
appearance:
@@ -661,6 +706,7 @@ es:
trouble_logging_in: "¿Problemas para iniciar sesión?"
authorize_follow:
already_following: Ya estás siguiendo a esta cuenta
+ already_requested: Ya has enviado una solicitud de seguimiento a esa cuenta
error: Desafortunadamente, ha ocurrido un error buscando la cuenta remota
follow: Seguir
follow_request: 'Tienes una solicitud de seguimiento de:'
@@ -804,6 +850,8 @@ es:
inactive: Inactivo
publicize_checkbox: 'Y tootee esto:'
publicize_toot: "¡Comprobado! Soy %{username} en %{service}: %{url}"
+ remove: Eliminar prueba de la cuenta
+ removed: Prueba eliminada con éxito de la cuenta
status: Estado de la verificación
view_proof: Ver prueba
imports:
@@ -849,6 +897,7 @@ es:
media_attachments:
validations:
images_and_video: No se puede adjuntar un video a un estado que ya contenga imágenes
+ not_ready: No se pueden adjuntar archivos que no se han terminado de procesar. ¡Inténtalo de nuevo en un momento!
too_many: No se pueden adjuntar más de 4 archivos
migrations:
acct: username@domain de la nueva cuenta
@@ -1070,6 +1119,8 @@ es:
disallowed_hashtags:
one: 'contenía un hashtag no permitido: %{tags}'
other: 'contenía los hashtags no permitidos: %{tags}'
+ errors:
+ in_reply_not_found: El estado al que intentas responder no existe.
language_detection: Detección automática de idioma
open_in_web: Abrir en web
over_character_limit: Límite de caracteres de %{max} superado
diff --git a/config/locales/et.yml b/config/locales/et.yml
index 716da9010..8e3d56622 100644
--- a/config/locales/et.yml
+++ b/config/locales/et.yml
@@ -576,7 +576,6 @@ et:
warning_presets:
add_new: Lisa uus
delete: Kustuta
- edit: Redigeeri
edit_preset: Redigeeri hoiatuse eelseadistust
title: Halda hoiatuste eelseadistusi
admin_mailer:
diff --git a/config/locales/eu.yml b/config/locales/eu.yml
index 3ca68d321..4c81c1617 100644
--- a/config/locales/eu.yml
+++ b/config/locales/eu.yml
@@ -72,8 +72,8 @@ eu:
posts:
one: Toot
other: Toot
- posts_tab_heading: Toot-ak
- posts_with_replies: Toot-ak eta erantzunak
+ posts_tab_heading: Tootak
+ posts_with_replies: Tootak eta erantzunak
reserved_username: Erabiltzaile-izena erreserbatuta dago
roles:
admin: Administratzailea
@@ -92,6 +92,7 @@ eu:
delete: Ezabatu
destroyed_msg: Moderazio ohara ongi suntsitu da!
accounts:
+ add_email_domain_block: Sartu domeinua zerrenda beltzean
approve: Onartu
approve_all: Onartu denak
are_you_sure: Ziur zaude?
@@ -172,6 +173,7 @@ eu:
staff: Langilea
user: Erabiltzailea
search: Bilatu
+ search_same_email_domain: E-mail domeinu bera duten beste erabiltzailean
search_same_ip: IP bera duten beste erabiltzaileak
shared_inbox_url: Partekatutako sarrera ontziaren URL-a
show:
@@ -358,6 +360,7 @@ eu:
destroyed_msg: Ongi ezabatu da e-mail domeinua zerrenda beltzetik
domain: Domeinua
empty: Ez dago e-mail domeinurik zerrenda beltzean.
+ from_html: "%{domain} domeinutik"
new:
create: Gehitu domeinua
title: Sarrera berria e-mail zerrenda beltzean
@@ -503,7 +506,7 @@ eu:
open: Edonork eman dezake izena
title: Erregistratzeko modua
show_known_fediverse_at_about_page:
- desc_html: Txandakatzean, fedibertso ezagun osoko toot-ak bistaratuko ditu aurrebistan. Bestela, toot lokalak besterik ez ditu erakutsiko.
+ desc_html: Txandakatzean, fedibertso ezagun osoko tootak bistaratuko ditu aurrebistan. Bestela, toot lokalak besterik ez ditu erakutsiko
title: Erakutsi fedibertsu ezagun osoko denbora-lerroa aurrebistan
show_staff_badge:
desc_html: Erakutsi langile banda erabiltzailearen orrian
@@ -537,6 +540,9 @@ eu:
trends:
desc_html: Erakutsi publikoki orain joeran dauden aurretik errebisatutako traolak
title: Traolak joeran
+ site_uploads:
+ delete: Ezabatu igotako fitxategia
+ destroyed_msg: Guneko igoera ongi ezabatu da!
statuses:
back_to_account: Atzera kontuaren orrira
batch:
@@ -573,7 +579,6 @@ eu:
warning_presets:
add_new: Gehitu berria
delete: Ezabatu
- edit: Editatu
edit_preset: Editatu abisu aurre-ezarpena
title: Kudeatu abisu aurre-ezarpenak
admin_mailer:
@@ -661,6 +666,7 @@ eu:
trouble_logging_in: Arazoak saioa hasteko?
authorize_follow:
already_following: Kontu hau aurretik jarraitzen duzu
+ already_requested: Bidali duzu dagoeneko kontu hori jarraitzeko eskaera bat
error: Zoritxarrez, urruneko kontua bilatzean errore bat gertatu da
follow: Jarraitu
follow_request: 'Jarraitzeko eskari bat bidali duzu hona:'
@@ -849,6 +855,7 @@ eu:
media_attachments:
validations:
images_and_video: Ezin da irudiak dituen mezu batean bideo bat erantsi
+ not_ready: Ezin dira prozesatzen amaitu gabeko fitxategiak erantsi. Saiatu geroago!
too_many: Ezin dira 4 fitxategi baino gehiago erantsi
migrations:
acct: Kontu berriaren erabiltzaile@domeinua
@@ -1076,7 +1083,7 @@ eu:
pin_errors:
limit: Gehienez finkatu daitekeen toot kopurua finkatu duzu jada
ownership: Ezin duzu beste norbaiten toot bat finkatu
- private: Ezin dira publikoak ez diren toot-ak finkatu
+ private: Ezin dira publikoak ez diren tootak finkatu
reblog: Bultzada bat ezin da finkatu
poll:
total_people:
@@ -1098,7 +1105,7 @@ eu:
unlisted: Zerrendatu gabea
unlisted_long: Edonork ikusi dezake, baina ez da denbora-lerro publikoetan agertzen
stream_entries:
- pinned: Finkatutako toot-a
+ pinned: Finkatutako toota
reblogged: "(r)en bultzada"
sensitive_content: 'Kontuz: Eduki hunkigarria'
tags:
@@ -1218,7 +1225,7 @@ eu:
warning:
explanation:
disable: Zure kontua izoztuta dagoen bitartean, zure kontua bere horretan dirau, baina ezin duzu ekintzarik burutu desblokeatzen den arte.
- silence: Zure kontua murriztua dagoen bitartean, jada zu jarraitzen zaituztenak besterik ez dituzte zure Toot-ak ikusiko zerbitzari honetan, eta agian zerrenda publikoetatik kenduko zaizu. Hala ere besteek oraindik zu jarraitu zaitzakete.
+ silence: Zure kontua murriztua dagoen bitartean, jada zu jarraitzen zaituztenak besterik ez dituzte zure tootak ikusiko zerbitzari honetan, eta agian zerrenda publikoetatik kenduko zaizu. Hala ere besteek oraindik zu jarraitu zaitzakete.
suspend: Zure kontua kanporatua izan da, zure toot guztiak eta multimedia fitxategiak behin betiko ezabatu dira zerbitzari honetatik, eta zure jarraitzaileen zerbitzarietatik.
get_in_touch: "%{instance} instantziako jendearekin harremanetan jartzeko e-mail honi erantzun ahal diozu."
review_server_policies: Berrikusi zerbitzariko politikak
diff --git a/config/locales/fa.yml b/config/locales/fa.yml
index 02bbd2938..fda99a72c 100644
--- a/config/locales/fa.yml
+++ b/config/locales/fa.yml
@@ -94,6 +94,7 @@ fa:
delete: حذف
destroyed_msg: یادداشت نظارتی با موفقیت نابود شد!
accounts:
+ add_email_domain_block: مسدود کردن دامنهٔ رایانامه
approve: پذیرفتن
approve_all: پذیرفتن همه
are_you_sure: مطمئنید؟
@@ -174,6 +175,7 @@ fa:
staff: کارمند
user: کاربر
search: جستجو
+ search_same_email_domain: دیگر کاربران با دامنهٔ رایانامهٔ یکسان
search_same_ip: دیگر کاربران با IP یکسان
shared_inbox_url: نشانی صندوق ورودی مشترک
show:
@@ -195,6 +197,42 @@ fa:
web: وب
whitelisted: فهرست مجاز
action_logs:
+ action_types:
+ assigned_to_self_report: واگذاری گزارش
+ change_email_user: تغییر رایانامه برای کاربر
+ confirm_user: تأیید کاربر
+ create_account_warning: ایجاد هشدار
+ create_announcement: ایجاد اعلامیه
+ create_custom_emoji: ایجاد اموجی سفارشی
+ create_domain_allow: ایجاد اجازهٔ دامنه
+ create_domain_block: ایجاد انسداد دامنه
+ create_email_domain_block: ایجاد انسداد دامنهٔ رایانامه
+ demote_user: تنزل کاربر
+ destroy_announcement: حذف اعلامیه
+ destroy_custom_emoji: حذف اموجی سفارشی
+ destroy_domain_allow: حذف اجازهٔ دامنه
+ destroy_domain_block: حذف انسداد دامنه
+ destroy_email_domain_block: حذف انسداد دامنهٔ رایانامه
+ destroy_status: حذف وضعیت
+ disable_2fa_user: از کار انداختن ورود دومرحلهای
+ disable_custom_emoji: از کار انداختن اموجی سفارشی
+ disable_user: از کار انداختن کاربر
+ enable_custom_emoji: به کار انداختن اموجی سفارشی
+ enable_user: به کار انداختن کاربر
+ memorialize_account: یادسپاری حساب
+ promote_user: ترفیع کاربر
+ remove_avatar_user: برداشتن تصویر نمایه
+ reopen_report: بازگشایی گزارش
+ reset_password_user: بازنشانی گذرواژه
+ resolve_report: رفع گزارش
+ silence_account: خموشی حساب
+ suspend_account: تعلیق حساب
+ unassigned_report: رفع واگذاری گزارش
+ unsilence_account: رفع خموشی حساب
+ unsuspend_account: رفع تعلیق حساب
+ update_announcement: بهروز رسانی اعلامیه
+ update_custom_emoji: بهروز رسانی اموجی سفارشی
+ update_status: بهروز رسانی وضعیت
actions:
assigned_to_self_report: "%{name} رسیدگی به گزارش %{target} را به عهده گرفت"
change_email_user: "%{name} نشانی ایمیل کاربر %{target} را تغییر داد"
@@ -232,6 +270,9 @@ fa:
update_custom_emoji: "%{name} شکلک %{target} را بهروز کرد"
update_status: "%{name} نوشتهٔ %{target} را بهروز کرد"
deleted_status: "(نوشتهٔ پاکشده)"
+ empty: هیچ گزارشی پیدا نشد.
+ filter_by_action: پالایش بر اساس کنش
+ filter_by_user: پالایش بر اساس کاربر
title: سیاههٔ بازرسی
announcements:
destroyed_msg: اعلامیه با موفقیت حذف شد!
@@ -360,6 +401,7 @@ fa:
destroyed_msg: مسدودسازی دامین ایمیل با موفقیت پاک شد
domain: دامین
empty: هیچ دامنه ایمیلی در حال حاضر در لیستسیاه قرار نگرفته است.
+ from_html: از %{domain}
new:
create: ساختن مسدودسازی
title: مسدودسازی دامین ایمیل تازه
@@ -539,6 +581,9 @@ fa:
trends:
desc_html: برچسبهای عمومی که پیشتر بازبینی شدهاند و هماینک پرطرفدارند
title: برچسبهای پرطرفدار
+ site_uploads:
+ delete: پرونده بارگذاری شده را پاک کنید
+ destroyed_msg: بارگذاری پایگاه با موفقیت حذف شد!
statuses:
back_to_account: بازگشت به صفحهٔ حساب
batch:
@@ -575,7 +620,6 @@ fa:
warning_presets:
add_new: افزودن تازه
delete: زدودن
- edit: ویرایش
edit_preset: ویرایش هشدار پیشفرض
title: مدیریت هشدارهای پیشفرض
admin_mailer:
@@ -593,6 +637,7 @@ fa:
add_new: ساختن نام مستعار
created_msg: نام مستعار تازه با موفقیت ساخته شد. الان میتوانید انتقال از حساب قدیمی را آغاز کنید.
deleted_msg: نام مستعار با موفقیت حذف شد. انتقال از آن حساب به حساب فعلی دیگر ممکن نیست.
+ empty: هیچ نام مستعاری ندارید.
hint_html: اگر میخواهید از حساب دیگری به این حساب منتقل شوید، اینجا میتوانید یک نام مستعار بسازید که برای انتقال از حساب قدیمی به این حساب لازم است. این کار به تنهایی بیضرر و قابل بازگشت است. فرایند انتقال حساب از حساب قدیمی آغاز خواهد شد.
remove: حذف ارتباط نام مستعار
appearance:
@@ -663,6 +708,7 @@ fa:
trouble_logging_in: برای ورود مشکلی دارید؟
authorize_follow:
already_following: شما همین الان هم این حساب را پیمیگیرید
+ already_requested: درخواست پیگیریای برای آن حساب فرستاده بودید
error: متأسفانه حین یافتن آن حساب خطایی رخ داد
follow: پی بگیرید
follow_request: 'شما درخواست پیگیری فرستادهاید به:'
@@ -762,16 +808,16 @@ fa:
public: فهرست عمومی
thread: گفتگوها
edit:
- title: ویرایش فیلتر
+ title: ویرایش پالایه
errors:
invalid_context: زمینهای موجود نیست یا نامعتبر است
- invalid_irreversible: فیلترهای برگشتناپذیر تنها در زمینهٔ پیگیریها یا اعلانها کار میکنند
+ invalid_irreversible: پالایش برگشتناپذیر تنها در زمینهٔ خانه یا آگاهیها کار میکنند
index:
delete: پاککردن
- empty: شما هیچ فیلتری ندارید.
- title: فیلترها
+ empty: هیچ پالایهای ندارید.
+ title: پالایهها
new:
- title: افزودن فیلتر تازه
+ title: افزودن پالایهٔ جدید
footer:
developers: برنامهنویسان
more: بیشتر…
@@ -851,6 +897,7 @@ fa:
media_attachments:
validations:
images_and_video: نمیتوان برای نوشتهای که تصویر دارد ویدیو بارگذاری کرد
+ not_ready: پروندههایی که پردازش را تمام نکردهاند نمیتوانند پیوست شوند. یکبار دیگر امتحان کنید!
too_many: نمیتوان بیشتر از ۴ تصویر بارگذاری کرد
migrations:
acct: username@domain حساب تازه
@@ -1072,6 +1119,8 @@ fa:
disallowed_hashtags:
one: 'دارای هشتگ غیرمجاز: %{tags}'
other: 'دارای هشتگهای غیرمجاز: %{tags}'
+ errors:
+ in_reply_not_found: به نظر نمیرسد وضعیتی که میخواهید به آن پاسخ دهید، وجود داشته باشد.
language_detection: زبان نوشته خودبهخود شناخته شود
open_in_web: بازکردن در وب
over_character_limit: از حد مجاز %{max} حرف فراتر رفتید
diff --git a/config/locales/fi.yml b/config/locales/fi.yml
index 063e3bb91..c5703e596 100644
--- a/config/locales/fi.yml
+++ b/config/locales/fi.yml
@@ -17,11 +17,13 @@ fi:
hosted_on: Mastodon palvelimella %{domain}
learn_more: Lisätietoja
privacy_policy: Tietosuojaseloste
+ server_stats: 'Palvelimen tilastot:'
source_code: Lähdekoodi
status_count_after:
one: tila
other: tilanne
status_count_before: He ovat luoneet
+ tagline: Seuraa ja löydä uusia kavereita
terms: Käyttöehdot
unavailable_content_description:
domain: Palvelin
@@ -59,6 +61,7 @@ fi:
roles:
admin: Ylläpitäjä
bot: Botti
+ group: Ryhmä
moderator: Moderaattori
unavailable: Profiili ei saatavilla
unfollow: Lopeta seuraaminen
@@ -190,19 +193,27 @@ fi:
update_custom_emoji: "%{name} päivitti emojin %{target}"
update_status: "%{name} päivitti käyttäjän %{target} tilan"
title: Auditointiloki
+ announcements:
+ title: Ilmoitukset
custom_emojis:
+ assign_category: Aseta kategoria
by_domain: Verkkotunnus
copied_msg: Emojin paikallisen kopion luonti onnistui
copy: Kopioi
copy_failed_msg: Emojista ei voitu tehdä paikallista kopiota
+ create_new_category: Luo uusi kategoria
created_msg: Emojin luonti onnistui!
delete: Poista
destroyed_msg: Emojon poisto onnistui!
disable: Poista käytöstä
+ disabled: Ei käytössä
disabled_msg: Emojin poisto käytöstä onnistui
+ emoji: Emoji
enable: Ota käyttöön
+ enabled: Käytössä
enabled_msg: Emojin käyttöönotto onnistui
image_hint: PNG enintään 50 kt
+ list: Listaa
listed: Listassa
new:
title: Lisää uusi mukautettu emoji
@@ -210,12 +221,20 @@ fi:
shortcode: Lyhennekoodi
shortcode_hint: Vähintään kaksi merkkiä, vain kirjaimia, numeroita ja alaviivoja
title: Mukautetut emojit
+ uncategorized: Luokittelemattomat
+ unlist: Poista listalta
unlisted: Ei listassa
update_failed_msg: Emojin päivitys epäonnistui
updated_msg: Emojin päivitys onnistui!
upload: Lähetä
dashboard:
authorized_fetch_mode: Suojattu tila
+ config: Asetukset
+ feature_deletions: Tilien poistot
+ feature_invites: Kutsulinkit
+ feature_profile_directory: Profiilihakemisto
+ feature_registrations: Rekisteröitymiset
+ title: Hallintapaneeli
domain_blocks:
add_new: Lisää uusi
created_msg: Verkkotunnuksen estoa käsitellään
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index bf79bc0ff..bc3bc0d2f 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -4,7 +4,7 @@ fr:
about_hashtag_html: Voici les pouets tagués avec #%{hashtag}. Vous pouvez interagir avec eux si vous avez un compte n’importe où dans le Fédiverse.
about_mastodon_html: 'Le réseau social de l''avenir : Pas d''annonces, pas de surveillance institutionnelle, conception éthique et décentralisation ! Possédez vos données avec Mastodon !'
about_this: À propos
- active_count_after: actif·ve
+ active_count_after: actif·ve·s
active_footnote: Utilisateur·rice·s actif·ve·s mensuels (MAU)
administered_by: 'Administrée par :'
api: API
@@ -25,7 +25,7 @@ fr:
Ce compte est un acteur virtuel utilisé pour représenter le serveur lui-même et non un utilisateur individuel.
Il est utilisé à des fins de fédération et ne doit pas être bloqué à moins que vous ne vouliez bloquer l’instance entière, dans ce cas vous devriez utiliser un bloqueur de domaine.
learn_more: En savoir plus
- privacy_policy: Politique de vie privée
+ privacy_policy: Politique de confidentialité
see_whats_happening: Voir ce qui se passe
server_stats: 'Statistiques du serveur :'
source_code: Code source
@@ -40,25 +40,25 @@ fr:
domain: Serveur
reason: Motif
rejecting_media: 'Les fichiers média de ces serveurs ne seront pas traités ou stockés et aucune miniature ne sera affichée, nécessitant un clic vers le fichier d’origine :'
- silenced: 'Les messages de ces serveurs seront cachés des flux publics et conversations, et les interactions de leurs utilisateur·ice·s ne donneront lieu à aucune notification, à moins que vous ne les suiviez :'
- suspended: 'Aucune donnée venant de ces serveurs ne sera traitée, stockée ou échangée, rendant toute interaction ou communication avec les utilisateurs de ces serveurs impossible :'
- unavailable_content_html: Mastodon vous permet généralement de visualiser le contenu et d'interagir avec les utilisateurs de n'importe quel autre serveur dans le fédiverse. Voici les exceptions qui ont été faites sur ce serveur en particulier.
+ silenced: 'Les messages de ces serveurs seront cachés des flux publics et conversations, et les interactions de leurs utilisateur·rice·s ne donneront lieu à aucune notification, à moins que vous ne les suiviez :'
+ suspended: 'Aucune donnée venant de ces serveurs ne sera traitée, stockée ou échangée, rendant toute interaction ou communication avec les utilisateur·rice·s de ces serveurs impossible :'
+ unavailable_content_html: Mastodon vous permet généralement de visualiser le contenu et d'interagir avec les utilisateur·rice·s de n'importe quel autre serveur dans le fédiverse. Voici les exceptions qui ont été faites sur ce serveur en particulier.
user_count_after:
- one: utilisateur
- other: utilisateurs
+ one: utilisateur·rice
+ other: utilisateur·rice·s
user_count_before: Abrite
what_is_mastodon: Qu’est-ce que Mastodon ?
accounts:
choices_html: "%{name} recommande :"
endorsements_hint: Vous pouvez recommander des personnes que vous suivez depuis l’interface web, et elles apparaîtront ici.
- featured_tags_hint: Vous pouvez recommander des hashtags spécifiques qui seront affichés ici.
+ featured_tags_hint: Vous pouvez mettre en avant certains hashtags qui seront affichés ici.
follow: Suivre
followers:
one: Abonné·e
- other: Abonné⋅e⋅s
+ other: Abonné·e·s
following: Abonnements
joined: Inscrit·e en %{date}
- last_active: actif·ve dernièrement
+ last_active: dernière activité
link_verified_on: La propriété de ce lien a été vérifiée le %{date}
media: Médias
moved_html: "%{name} a changé de compte pour %{new_profile_link} :"
@@ -74,7 +74,7 @@ fr:
other: Pouets
posts_tab_heading: Pouets
posts_with_replies: Pouets & réponses
- reserved_username: Ce nom d’utilisateur⋅ice est réservé
+ reserved_username: Ce nom d’utilisateur·ice est réservé
roles:
admin: Admin
bot: Robot
@@ -92,9 +92,10 @@ fr:
delete: Supprimer
destroyed_msg: Note de modération supprimée avec succès !
accounts:
+ add_email_domain_block: Mettre le domaine du courriel sur liste noire
approve: Approuver
approve_all: Tout approuver
- are_you_sure: Êtes-vous certain⋅e ?
+ are_you_sure: Voulez-vous vraiment faire ça ?
avatar: Avatar
by_domain: Domaine
change_email:
@@ -119,7 +120,7 @@ fr:
email_status: État du courriel
enable: Activer
enabled: Activé
- followers: Abonné⋅e⋅s
+ followers: Abonné·e·s
follows: Abonnements
header: Entête
inbox_url: URL d’entrée
@@ -159,7 +160,7 @@ fr:
remove_avatar: Supprimer l’avatar
remove_header: Supprimer l’entête
resend_confirmation:
- already_confirmed: Cet·te utilisateur·ice est déjà confirmé·e
+ already_confirmed: Cet·te utilisateur·rice est déjà confirmé·e
send: Renvoyer un courriel de confirmation
success: Courriel de confirmation envoyé avec succès !
reset: Réinitialiser
@@ -172,6 +173,7 @@ fr:
staff: Équipe
user: Utilisateur
search: Rechercher
+ search_same_email_domain: Autres utilisateurs·trices avec le même domaine de courriel
search_same_ip: Autres utilisateur·rice·s avec la même IP
shared_inbox_url: URL de la boite de réception partagée
show:
@@ -188,35 +190,71 @@ fr:
undo_silenced: Démasquer
undo_suspension: Annuler la suspension
unsubscribe: Se désabonner
- username: Nom d’utilisateur⋅ice
+ username: Nom d’utilisateur·ice
warn: Avertissement
web: Web
whitelisted: Sur liste blanche
action_logs:
+ action_types:
+ assigned_to_self_report: Affecter le signalement
+ change_email_user: Modifier le courriel pour
+ confirm_user: Confirmer l’utilisateur
+ create_account_warning: Créer une alerte
+ create_announcement: Créer une annonce
+ create_custom_emoji: Créer des émojis personnalisés
+ create_domain_allow: Créer un domaine autorisé
+ create_domain_block: Créer un blocage de domaine
+ create_email_domain_block: Créer un blocage de domaine de courriel
+ demote_user: Rétrograder l’utilisateur·ice
+ destroy_announcement: Supprimer l’annonce
+ destroy_custom_emoji: Supprimer des émojis personnalisés
+ destroy_domain_allow: Supprimer le domaine autorisé
+ destroy_domain_block: Supprimer le blocage de domaine
+ destroy_email_domain_block: Supprimer le blocage de domaine de courriel
+ destroy_status: Supprimer le statut
+ disable_2fa_user: Désactiver l’A2F
+ disable_custom_emoji: Désactiver les émojis personnalisés
+ disable_user: Désactiver l’utilisateur·ice
+ enable_custom_emoji: Activer les émojis personnalisées
+ enable_user: Activer l’utilisateur
+ memorialize_account: Mémorialiser le compte
+ promote_user: Promouvoir l’utilisateur
+ remove_avatar_user: Supprimer l’avatar
+ reopen_report: Rouvrir le signalement
+ reset_password_user: Réinitialiser le mot de passe
+ resolve_report: Résoudre le signalement
+ silence_account: Rendre le compte silencieux
+ suspend_account: Suspendre le compte
+ unassigned_report: Ne plus assigner le signalement
+ unsilence_account: Désactiver le silence du compte
+ unsuspend_account: Annuler la suspension du compte
+ update_announcement: Modifier l’annonce
+ update_custom_emoji: Mettre à jour les émojis personnalisés
+ update_status: Mettre à jour le statut
actions:
assigned_to_self_report: "%{name} s’est assigné·e le signalement de %{target}"
change_email_user: "%{name} a modifié l’adresse de courriel de l’utilisateur·rice %{target}"
- confirm_user: "%{name} adresse courriel confirmée de l’utilisateur·ice %{target}"
+ confirm_user: "%{name} adresse courriel confirmée pour l’utilisateur·rice %{target}"
create_account_warning: "%{name} a envoyé un avertissement à %{target}"
create_announcement: "%{name} a créé une nouvelle annonce %{target}"
create_custom_emoji: "%{name} a importé de nouveaux émojis %{target}"
create_domain_allow: "%{name} a inscrit le domaine %{target} sur liste blanche"
create_domain_block: "%{name} a bloqué le domaine %{target}"
create_email_domain_block: "%{name} a mis le domaine de courriel %{target} sur liste noire"
- demote_user: "%{name} a rétrogradé l’utilisateur·ice %{target}"
+ demote_user: "%{name} a rétrogradé l’utilisateur·rice %{target}"
destroy_announcement: "%{name} a supprimé l’annonce %{target}"
destroy_custom_emoji: "%{name} a détruit l’émoticône %{target}"
destroy_domain_allow: "%{name} a supprimé le domaine %{target} de la liste blanche"
destroy_domain_block: "%{name} a débloqué le domaine %{target}"
destroy_email_domain_block: "%{name} a mis le domaine de courriel %{target} sur liste blanche"
destroy_status: "%{name} a enlevé le statut de %{target}"
- disable_2fa_user: "%{name} a désactivé l’authentification à deux facteurs pour l’utilisateur·ice %{target}"
+ disable_2fa_user: "%{name} a désactivé l’authentification à deux facteurs pour l’utilisateur·rice %{target}"
disable_custom_emoji: "%{name} a désactivé l’émoji %{target}"
- disable_user: "%{name} a désactivé le login pour l’utilisateur·ice %{target}"
+ disable_user: "%{name} a désactivé la connexion pour l’utilisateur·rice %{target}"
enable_custom_emoji: "%{name} a activé l’émoji %{target}"
- enable_user: "%{name} a activé le login pour l’utilisateur·ice %{target}"
+ enable_user: "%{name} a activé la connexion pour l’utilisateur·rice %{target}"
memorialize_account: "%{name} a transformé le compte de %{target} en une page de mémorial"
- promote_user: "%{name} a promu l’utilisateur·ice %{target}"
+ promote_user: "%{name} a promu l’utilisateur·rice %{target}"
remove_avatar_user: "%{name} a supprimé l’avatar de %{target}"
reopen_report: "%{name} a rouvert le signalement %{target}"
reset_password_user: "%{name} a réinitialisé le mot de passe de %{target}"
@@ -230,6 +268,9 @@ fr:
update_custom_emoji: "%{name} a mis à jour l’émoji %{target}"
update_status: "%{name} a mis à jour le statut de %{target}"
deleted_status: "(statut supprimé)"
+ empty: Aucun journal trouvé.
+ filter_by_action: Filtrer par action
+ filter_by_user: Filtrer par utilisateur·ice
title: Journal d’audit
announcements:
destroyed_msg: Annonce supprimée avec succès !
@@ -296,7 +337,7 @@ fr:
pending_users: utilisateur·rice·s en attente d’approbation
recent_users: Utilisateur·rice·s récent·e·s
search: Recherche plein texte
- single_user_mode: Mode utilisateur·ice unique
+ single_user_mode: Mode utilisateur·rice unique
software: Logiciel
space: Espace utilisé
title: Tableau de bord
@@ -347,7 +388,7 @@ fr:
retroactive:
silence: Annuler le masquage des comptes existants affectés pour ce domaine
suspend: Annuler la suspension des comptes existants affectés pour ce domaine
- title: Annuler le blocage de domaine pour %{domain}
+ title: Annuler le blocage du domaine %{domain}
undo: Annuler
undo: Annuler le bloqueur de domaine
view: Afficher les bloqueurs de domaines
@@ -358,6 +399,7 @@ fr:
destroyed_msg: Le blocage de domaine de courriel a été désactivé
domain: Domaine
empty: Aucun domaine de courriel n’est actuellement sur liste noire.
+ from_html: de %{domain}
new:
create: Créer le blocage
title: Nouveau blocage de domaine de courriel
@@ -394,7 +436,7 @@ fr:
title: Relations de %{acct}
relays:
add_new: Ajouter un nouveau relais
- delete: Effacer
+ delete: Supprimer
description_html: Un relai de fédération est un serveur intermédiaire qui échange de grandes quantités de pouets publics entre les serveurs qui publient dessus et ceux qui y sont abonnés. Il peut aider les petits et moyen serveurs à découvrir du contenu sur le fediverse, ce qui normalement nécessiterait que les membres locaux suivent des gens inscrits sur des serveurs distants.
disable: Désactiver
disabled: Désactivé
@@ -420,7 +462,7 @@ fr:
one: "%{count} signalement"
other: "%{count} signalements"
action_taken_by: Intervention de
- are_you_sure: Êtes vous certain⋅e ?
+ are_you_sure: Voulez-vous vraiment faire ça ?
assign_to_self: Me l’assigner
assigned: Modérateur assigné
by_target_domain: Domaine du compte signalé
@@ -433,7 +475,7 @@ fr:
create: Ajouter une note
create_and_resolve: Résoudre avec une note
create_and_unresolve: Ré-ouvrir avec une note
- delete: Effacer
+ delete: Supprimer
placeholder: Décrivez quelles actions ont été prises, ou toute autre mise à jour…
reopen: Ré-ouvrir le signalement
report: 'Signalement #%{id}'
@@ -448,14 +490,14 @@ fr:
updated_at: Mis à jour
settings:
activity_api_enabled:
- desc_html: Nombre de statuts affichés localement, d’utilisateur·ice·s actif·ve·s et de nouveaux·elles utilisateur·ice·s regroupé·e·s par semaine
- title: Publier des statistiques agrégées sur l’activité des utilisateur·ice·s
+ desc_html: Nombre de statuts affichés localement, de comptes actifs et de nouvelles inscriptions regroupé·e·s par semaine
+ title: Publier des statistiques agrégées sur l’activité des utilisateur·rice·s
bootstrap_timeline_accounts:
- desc_html: Séparez les noms d’utilisateur·ice par des virgules. Ne fonctionne qu’avec des comptes locaux et non verrouillés. Si laissé vide, tous les administrateur⋅ice⋅s locaux sont sélectionné⋅e⋅s.
- title: Abonnements par défaut pour les nouveaux·elles utilisateur·ice·s
+ desc_html: Séparez les noms d’utilisateur·rice·s par des virgules. Ne fonctionne qu’avec des comptes locaux et non verrouillés. Si laissé vide, tous les administrateur·rice·s locaux sont sélectionné⋅e⋅s.
+ title: Abonnements par défaut pour les nouveaux·elles utilisateur·rice·s
contact_information:
email: Entrez une adresse courriel publique
- username: Entrez un nom d’utilisateur⋅ice
+ username: Entrez un nom d’utilisateur·ice
custom_css:
desc_html: Modifier l’apparence avec une CSS chargée sur chaque page
title: CSS personnalisé
@@ -466,11 +508,11 @@ fr:
all: À tout le monde
disabled: À personne
title: Afficher les bloqueurs de domaines
- users: Pour les utilisateurs locaux connectés
+ users: Aux utilisateur·rice·s connecté·e·s localement
domain_blocks_rationale:
title: Montrer la raison
enable_bootstrap_timeline_accounts:
- title: Activer le suivi par défaut pour les nouveaux·elles utilisateur·ice·s
+ title: Activer les abonnements par défaut pour les nouveaux·elles utilisateur·rice·s
hero:
desc_html: Affichée sur la page d’accueil. Au moins 600x100px recommandé. Lorsqu’elle n’est pas définie, se rabat sur la vignette du serveur
title: Image d’en-tête
@@ -482,7 +524,7 @@ fr:
title: Publier la liste des serveurs découverts
preview_sensitive_media:
desc_html: Les liens de prévisualisation sur les autres sites web afficheront une vignette même si le média est sensible
- title: Afficher les médias sensibles dans les prévisualisations OpenGraph
+ title: Montrer les médias sensibles dans les prévisualisations OpenGraph
profile_directory:
desc_html: Permettre aux utilisateur·ice·s d’être découvert·e·s
title: Activer l’annuaire des profils
@@ -491,7 +533,7 @@ fr:
desc_html: Affiché sur la page d’accueil lorsque les inscriptions sont fermées. Vous pouvez utiliser des balises HTML
title: Message de fermeture des inscriptions
deletion:
- desc_html: Permettre à tou·te·s les utilisateur·ice·s de supprimer leur compte
+ desc_html: Permettre à tou·te·s les utilisateur·rice·s de supprimer leur compte
title: Autoriser les suppressions de compte
min_invite_role:
disabled: Personne
@@ -503,10 +545,10 @@ fr:
open: N’importe qui peut s’inscrire
title: Mode d’enregistrement
show_known_fediverse_at_about_page:
- desc_html: Lorsque l’option est activée, les pouets provenant de toutes les serveurs connus sont affichés dans la prévisualisation. Sinon, seuls les pouets locaux sont affichés
+ desc_html: Lorsque l’option est activée, les pouets provenant de toutes les serveurs connus sont montrés dans la prévisualisation. Sinon, seuls les pouets locaux sont montrés
title: Afficher le fediverse connu dans la prévisualisation du fil
show_staff_badge:
- desc_html: Montrer un badge de responsable sur une page utilisateur·ice
+ desc_html: Montrer un badge de responsable sur une page utilisateur·rice
title: Montrer un badge de responsable
site_description:
desc_html: Paragraphe introductif sur la page d’accueil. Décrivez ce qui rend spécifique ce serveur Mastodon et toute autre chose importante. Vous pouvez utiliser des balises HTML, en particulier <a>
et <em>
.
@@ -528,15 +570,18 @@ fr:
desc_html: Utilisée pour les prévisualisations via OpenGraph et l’API. 1200x630px recommandé
title: Vignette du serveur
timeline_preview:
- desc_html: Afficher le fil public sur la page d’accueil et autoriser l'accès anonyme à l'API du fil public
+ desc_html: Afficher un lien vers le fil public sur la page d’accueil et autoriser l'accès anonyme au fil public via l'API
title: Autoriser la prévisualisation anonyme du fil global
title: Paramètres du serveur
trendable_by_default:
desc_html: Affecte les hashtags qui n'ont pas été précédemment non autorisés
- title: Autoriser les hashtags à apparaître dans les tendances sans examen préalable
+ title: Autoriser les hashtags à apparaître dans les tendances sans approbation préalable
trends:
desc_html: Afficher publiquement les hashtags approuvés qui sont populaires en ce moment
title: Hashtags populaires
+ site_uploads:
+ delete: Supprimer le fichier téléversé
+ destroyed_msg: Téléversement sur le site supprimé avec succès !
statuses:
back_to_account: Retour à la page du compte
batch:
@@ -556,13 +601,13 @@ fr:
accounts_week: Utilisation unique cette semaine
breakdown: Répartition de l’utilisation actuelle par source
context: Contexte
- directory: Dans le répertoire
- in_directory: "%{count} dans le répertoire"
+ directory: Dans l’annuaire
+ in_directory: "%{count} dans l’annuaire"
last_active: Dernière activité
most_popular: Plus populaire
most_recent: Plus récent
- name: Mot-clé
- review: État de traitement
+ name: Hashtag
+ review: État du traitement
reviewed: Traité
title: Hashtags
trending_right_now: Populaire en ce moment
@@ -572,8 +617,7 @@ fr:
title: Administration
warning_presets:
add_new: Ajouter un nouveau
- delete: Effacer
- edit: Éditer
+ delete: Supprimer
edit_preset: Éditer les avertissements prédéfinis
title: Gérer les avertissements prédéfinis
admin_mailer:
@@ -585,12 +629,13 @@ fr:
body_remote: Quelqu’un de %{domain} a signalé %{target}
subject: Nouveau signalement sur %{instance} (#%{id})
new_trending_tag:
- body: 'Le hashtag #%{name} est populaire aujourd’hui, mais il n’a pas été approuvé. Il ne sera pas affiché publiquement à moins que vous l’autorisiez, ou sauvegardiez simplement ce formulaire tel quel pour ne plus jamais en entendre parler.'
- subject: Nouveau hashtag en attente de traitement sur %{instance} (#%{name})
+ body: 'Le hashtag #%{name} est dans les tendances aujourd’hui, mais il n’a pas été approuvé. Il ne sera pas affiché publiquement à moins que vous l’autorisiez, ou sauvegardez simplement ce formulaire tel quel pour ne plus jamais en entendre parler.'
+ subject: Nouveau hashtag en attente d’approbation sur %{instance} (#%{name})
aliases:
add_new: Créer un alias
created_msg: Un nouvel alias a été créé avec succès. Vous pouvez maintenant déménager depuis l'ancien compte.
- deleted_msg: Suppression réussie de l'alias. Le déménagement de ce compte vers celui-ci ne sera plus possible.
+ deleted_msg: Alias supprimé avec succès. Le déménagement de ce compte vers celui-ci ne sera plus possible.
+ empty: Vous n’avez pas d’alias.
hint_html: Si vous voulez déménager d’un autre compte vers celui-ci, vous pouvez créer ici un alias, qui est nécessaire avant de pouvoir migrer les abonné·e·s de l’ancien compte vers celui-ci. Cette action en soi est inoffensive et réversible. La migration du compte est initiée à partir de l’ancien compte.
remove: Détacher l'alias
appearance:
@@ -618,7 +663,7 @@ fr:
invalid_url: L’URL fournie est invalide
regenerate_token: Régénérer le jeton d’accès
token_regenerated: Jeton d’accès régénéré avec succès
- warning: Soyez prudent⋅e avec ces données. Ne les partagez pas !
+ warning: Soyez prudent·e avec ces données. Ne les partagez pas !
your_token: Votre jeton d’accès
auth:
apply_for_account: Demander une invitation
@@ -630,7 +675,7 @@ fr:
description:
prefix_invited_by_user: "@%{name} vous invite à rejoindre ce serveur Mastodon !"
prefix_sign_up: Inscrivez-vous aujourd’hui sur Mastodon !
- suffix: Avec un compte, vous pourrez suivre des gens, publier des statuts et échanger des messages avec les utilisateurs de n'importe quel serveur Mastodon et bien plus !
+ suffix: Avec un compte, vous pourrez suivre des gens, publier des statuts et échanger des messages avec les utilisateur·rice·s de n'importe quel serveur Mastodon et bien plus !
didnt_get_confirmation: Vous n’avez pas reçu les consignes de confirmation ?
forgot_password: Mot de passe oublié ?
invalid_reset_password_token: Le lien de réinitialisation du mot de passe est invalide ou a expiré. Merci de réessayer.
@@ -661,13 +706,14 @@ fr:
trouble_logging_in: Vous avez un problème pour vous connecter ?
authorize_follow:
already_following: Vous suivez déjà ce compte
+ already_requested: Vous avez déjà envoyé une demande d’abonnement à ce compte
error: Malheureusement, il y a eu une erreur en cherchant les détails du compte distant
follow: Suivre
follow_request: 'Vous avez demandé à suivre :'
following: 'Youpi ! Vous suivez maintenant :'
post_follow:
close: Ou bien, vous pouvez fermer cette fenêtre.
- return: Afficher le profil de l’utilisateur⋅ice
+ return: Afficher le profil de l’utilisateur·ice
web: Retour à l’interface web
title: Suivre %{acct}
challenge:
@@ -707,11 +753,11 @@ fr:
email_reconfirmation_html: Si vous ne recevez pas le courriel de confirmation, vous pouvez le demander à nouveau
irreversible: Vous ne pourrez pas restaurer ou réactiver votre compte
more_details_html: Pour plus de détails, voir la politique de confidentialité.
- username_available: Votre nom d’utilisateur·ice sera à nouveau disponible
- username_unavailable: Votre nom d’utilisateur·ice restera indisponible
+ username_available: Votre nom d’utilisateur·rice sera à nouveau disponible
+ username_unavailable: Votre nom d’utilisateur·rice restera indisponible
directories:
directory: Annuaire des profils
- explanation: Découvrir des utilisateurs en se basant sur leurs centres d’intérêt
+ explanation: Découvrir des utilisateur·rice·s en selon leurs centres d’intérêt
explore_mastodon: Explorer %{title}
domain_validator:
invalid_domain: n’est pas un nom de domaine valide
@@ -748,10 +794,10 @@ fr:
mutes: Vous masquez
storage: Médias stockés
featured_tags:
- add_new: Ajouter un nouvel hashtag
+ add_new: Ajouter un nouveau hashtag
errors:
- limit: Vous avez déjà recommandé le nombre maximum de hashtags
- hint_html: "Que sont les hashtags vedettes ? Ils sont affichés avec emphase sur votre flux d'actualités publique et permettent aux gens de parcourir vos messages publics spécifiquement sous ces hashtags. Ils sont un excellent outil pour garder trace des œuvres créatives ou des projets à long terme."
+ limit: Vous avez déjà mis en avant le nombre maximum de hashtags
+ hint_html: "Que sont les hashtags mis en avant ? Ils sont affichés en évidence sur votre profil public et permettent aux gens de parcourir vos messages publics qui utilisent ces hashtags. Ils sont un excellent outil pour garder la trace d’activités créatrices ou de projets de long terme."
filters:
contexts:
account: Profils
@@ -765,7 +811,7 @@ fr:
invalid_context: Contexte invalide ou insuffisant
invalid_irreversible: Le filtrage irréversible ne fonctionne que pour l’accueil et les notifications
index:
- delete: Effacer
+ delete: Supprimer
empty: Vous n'avez aucun filtre.
title: Filtres
new:
@@ -804,6 +850,8 @@ fr:
inactive: Inactive
publicize_checkbox: 'Et le poueter :'
publicize_toot: 'C’est prouvé ! Je suis %{username} sur %{service}: %{url}'
+ remove: Retirer une preuve du compte
+ removed: Preuve retirée du compte avec succès
status: État de la vérification
view_proof: Voir la preuve
imports:
@@ -817,8 +865,8 @@ fr:
types:
blocking: Liste de comptes bloqués
domain_blocking: Liste des serveurs bloqués
- following: Liste d’utilisateur⋅ice⋅s suivi⋅e⋅s
- muting: Liste d’utilisateur⋅ice⋅s que vous masquez
+ following: Liste d’utilisateur·rice·s suivi·e·s
+ muting: Liste d’utilisateur·rice·s que vous masquez
upload: Importer
in_memoriam_html: En mémoire de.
invites:
@@ -849,6 +897,7 @@ fr:
media_attachments:
validations:
images_and_video: Impossible de joindre une vidéo à un statut contenant déjà des images
+ not_ready: Impossible de joindre les fichiers en traitements. Réessayez dans un instant !
too_many: Impossible de joindre plus de 4 fichiers
migrations:
acct: A déménagé vers
@@ -857,12 +906,12 @@ fr:
cancelled_msg: Suppression de la redirection réussie.
errors:
already_moved: est le même compte que vous avez déjà déplacé vers
- missing_also_known_as: ne référence pas rétroactivement ce compte
+ missing_also_known_as: ne référence pas ce compte en retour
move_to_self: ne peut pas être le compte actuel
not_found: n'a pas été trouvé
on_cooldown: Vous êtes soumis·e à un temps de rechargement
followers_count: Abonné·e·s au moment du déménagement
- incoming_migrations: Déplacement d'un compte différent
+ incoming_migrations: Déplacement depuis un compte différent
incoming_migrations_html: Pour déménager d'un autre compte à celui-ci, vous devez d'abord créer un alias de compte.
moved_msg: Votre compte est maintenant redirigé vers %{acct} et vos abonné·e·s sont en train d'être déplacé·e·s.
not_redirecting: Votre compte n'est pas redirigé vers un autre compte actuellement.
@@ -905,7 +954,7 @@ fr:
follow_request:
action: Gérer les demandes d’abonnement
body: "%{name} a demandé à vous suivre"
- subject: 'Abonné⋅e·s en attente : %{name}'
+ subject: 'Abonné·e·s en attente : %{name}'
title: Nouvelle demande d’abonnement
mention:
action: Répondre
@@ -1044,7 +1093,7 @@ fr:
development: Développement
edit_profile: Modifier le profil
export: Export de données
- featured_tags: Hashtags recommandés
+ featured_tags: Hashtags mis en avant
identity_proofs: Preuves d’identité
import: Import de données
import_and_export: Import et export
@@ -1070,6 +1119,8 @@ fr:
disallowed_hashtags:
one: 'contient un hashtag désactivé : %{tags}'
other: 'contient les hashtags désactivés : %{tags}'
+ errors:
+ in_reply_not_found: Le statut auquel vous essayez de répondre ne semble pas exister.
language_detection: Détecter automatiquement la langue
open_in_web: Ouvrir sur le web
over_character_limit: limite de %{max} caractères dépassée
@@ -1086,13 +1137,13 @@ fr:
one: "%{count} vote"
other: "%{count} votes"
vote: Voter
- show_more: Afficher plus
+ show_more: Déplier
show_thread: Afficher le fil de discussion
sign_in_to_participate: Inscrivez-vous pour prendre part à la conversation
title: '%{name} : "%{quote}"'
visibilities:
private: Abonné⋅e⋅s uniquement
- private_long: Seul⋅e⋅s vos abonné⋅e⋅s verront vos statuts
+ private_long: Afficher seulement à vos vos abonné·e·s
public: Public
public_long: Tout le monde peut voir vos statuts
unlisted: Public sans être affiché sur le fil public
@@ -1111,7 +1162,7 @@ fr:
- Informations de base sur votre compte : Si vous vous inscrivez sur ce serveur, il vous sera demandé de rentrer un identifiant, une adresse électronique et un mot de passe. Vous pourrez également ajouter des informations additionnelles sur votre profil, telles qu’un nom public et une biographie, ainsi que téléverser une image de profil et une image d’en-tête. Vos identifiant, nom public, biographie, image de profil et image d’en-tête seront toujours affichés publiquement.
- Posts, liste d’abonnements et autres informations publiques : La liste de vos abonnements ainsi que la liste de vos abonné·e·s sont publiques. Quand vous postez un message, la date et l’heure d’envoi ainsi que le nom de l’application utilisée pour sa transmission sont enregistré·e·s. Des médias, tels que des images ou des vidéos, peuvent être joints aux messages. Les posts publics et non listés sont affichés publiquement. Quand vous mettez en avant un post sur votre profil, ce post est également affiché publiquement. Vos messages sont délivrés à vos abonné·e·s, ce qui, dans certains cas, signifie qu’ils sont délivrés à des serveurs tiers et que ces derniers en stockent une copie. Quand vous supprimer un post, il est probable que vos abonné·e·s en soient informé·e·s. Partager un message ou le marquer comme favori est toujours une action publique.
- - Posts directs et abonné·e·s uniquement : Tous les posts sont stockés et traités par le serveur. Les messages abonné·e·s uniquement ne sont transmis qu’à vos abonné·e·s et aux personnes mentionnées dans le corps du message, tandis que les messages directs ne sont transmis qu’aux personnes mentionnées. Dans certains cas, cela signifie qu’ils sont délivrés à des serveurs tiers et que ces derniers en stockent une copie. Nous faisons un effort de bonne fois pour en limiter l’accès uniquement aux personnes autorisées, mais ce n’est pas nécessairement le cas des autres serveurs. Il est donc très important que vous vérifiiez les serveurs auxquels appartiennent vos abonné·e·s. Il vous est possible d’activer une option dans les paramètres afin d’approuver et de rejeter manuellement les nouveaux·lles abonné·e·s. Gardez s’il-vous-plaît en mémoire que les opérateur·rice·s du serveur ainsi que celles et ceux de n’importe quel serveur récepteur peuvent voir ces messages et qu’il est possible pour les destinataires de faire des captures d’écran, de copier et plus généralement de repartager ces messages. Ne partager aucune information sensible à l’aide de Mastodon.
+ - Posts directs et abonné·e·s uniquement : Tous les posts sont stockés et traités par le serveur. Les messages abonné·e·s uniquement ne sont transmis qu’à vos abonné·e·s et aux personnes mentionnées dans le corps du message, tandis que les messages directs ne sont transmis qu’aux personnes mentionnées. Dans certains cas, cela signifie qu’ils sont délivrés à des serveurs tiers et que ces derniers en stockent une copie. Nous faisons un effort de bonne foi pour en limiter l’accès uniquement aux personnes autorisées, mais ce n’est pas nécessairement le cas des autres serveurs. Il est donc très important que vous vérifiiez les serveurs auxquels appartiennent vos abonné·e·s. Il vous est possible d’activer une option dans les paramètres afin d’approuver et de rejeter manuellement les nouveaux·lles abonné·e·s. Gardez s’il vous plaît en mémoire que les opérateur·rice·s du serveur ainsi que celles et ceux de n’importe quel serveur récepteur peuvent voir ces messages et qu’il est possible pour les destinataires de faire des captures d’écran, de copier et plus généralement de repartager ces messages. Ne partager aucune information sensible à l’aide de Mastodon.
- IP et autres métadonnées : Quand vous vous connectez, nous enregistrons votre adresse IP ainsi que le nom de votre navigateur web. Toutes les sessions enregistrées peuvent être consultées dans les paramètres, afin que vous puissiez les surveiller et éventuellement les révoquer. La dernière adresse IP utilisée est conservée pour une durée de 12 mois. Nous sommes également susceptibles de conserver les journaux du serveur, ce qui inclut l’adresse IP de chaque requête reçue.
@@ -1124,7 +1175,7 @@ fr:
- Pour vous fournir les fonctionnalités de base de Mastodon. Vous ne pouvez interagir avec le contenu des autres et poster votre propre contenu que lorsque vous êtes connecté·e. Par exemple, vous pouvez vous abonner à plusieurs autres comptes pour voir l’ensemble de leurs posts dans votre fil d’accueil personnalisé.
- Pour aider à la modération de la communauté, par exemple, comparer votre adresse IP à d’autres afin de déterminer si un bannissement a été contourné ou si une autre violation aux règles a été commise.
- - L’adresse électronique que vous nous avez fournie peut être utilisée pour vous envoyez des informations, des notifications lorsque d’autres personnes interagissent avec votre contenu ou vous envoient des messages, pour répondre à des demandes de votre part ainsi que pour tout autres requêtes ou questions.
+ - L’adresse électronique que vous nous avez fournie peut être utilisée pour vous envoyer des informations, des notifications lorsque d’autres personnes interagissent avec votre contenu ou vous envoient des messages, pour répondre à des demandes de votre part ainsi que pour touts autres requêtes ou questions.
@@ -1152,7 +1203,7 @@ fr:
Utilisons-nous des témoins de connexion ?
- Oui. Les témoins de connexion sont de petits fichiers qu’un site ou un service transféres sur le disque dur de votre ordinateur via votre navigateur web (si vous l’avez autorisé). Ces témoins permettent au site de reconnaître votre navigateur et de, dans le cas où vous possédez un compte, de vous associer avec ce dernier.
+ Oui. Les témoins de connexion sont de petits fichiers qu’un site ou un service transfère sur le disque dur de votre ordinateur via votre navigateur web (si vous l’avez autorisé). Ces témoins permettent au site de reconnaître votre navigateur et de, dans le cas où vous possédez un compte, de vous associer avec ce dernier.
Nous utilisons les témoins de connexion comme un moyen de comprendre et de nous souvenir de vos préférences pour vos prochaines visites.
@@ -1164,13 +1215,13 @@ fr:
Votre contenu public peut être téléchargé par d’autres serveurs du réseau. Dans le cas où vos abonné·e·s et vos destinataires résideraient sur des serveurs différents du vôtre, vos posts publics et abonné·e·s uniquement peuvent être délivrés vers les serveurs de vos abonné·e·s tandis que vos messages directs sont délivrés aux serveurs de vos destinataires.
- Quand vous autorisez une application à utiliser votre compte, en fonction de l’étendue des permissions que vous approuvez, il est possible qu’elle puisse accéder aux informations publiques de votre profil, votre liste d’abonnements, votre liste d’abonné·e·s, vos listes, tout vos posts et vos favoris. Les applications ne peuvent en aucun cas accéder à votre adresse électronique et à votre mot de passe.
+ Quand vous autorisez une application à utiliser votre compte, en fonction de l’étendue des permissions que vous approuvez, il est possible qu’elle puisse accéder aux informations publiques de votre profil, votre liste d’abonnements, votre liste d’abonné·e·s, vos listes, tous vos posts et vos favoris. Les applications ne peuvent en aucun cas accéder à votre adresse électronique et à votre mot de passe.
Utilisation de ce site par les enfants
- Si ce serveur est situé dans dans l’UE ou l’EEE : Notre site, produits et services sont tous destinés à des personnes âgées de 16 ans ou plus. Si vous avez moins de 16 ans, en application du RGPD (Règlement Général sur la Protection des Données), merci de ne pas utiliser ce site.
+ Si ce serveur est situé dans l’UE ou l’EEE : Notre site, produits et services sont tous destinés à des personnes âgées de 16 ans ou plus. Si vous avez moins de 16 ans, en application du RGPD (Règlement Général sur la Protection des Données), merci de ne pas utiliser ce site.
Si ce serveur est situé dans aux États-Unis d’Amérique : Notre site, produits et services sont tous destinés à des personnes âgées de 13 ans ou plus. Si vous avez moins de 13 ans, en application du COPPA (Children's Online Privacy Protection Act), merci de ne pas utiliser ce site.
@@ -1218,8 +1269,8 @@ fr:
warning:
explanation:
disable: Lorsque votre compte est gelé, les données de votre compte demeurent intactes, mais vous ne pouvez effectuer aucune action jusqu’à ce qu’il soit débloqué.
- silence: Lorsque votre compte est limité, seulement les utilisateurs qui vous suivent déjà verront vos pouets sur ce serveur, et vous pourriez être exclu de plusieurs listes publiques. Néanmoins, d’autres utilisateurs peuvent vous suivre manuellement.
- suspend: Votre compte a été suspendu, et tous vos pouets et vos fichiers multimédia téléversés ont été supprimés irréversiblement de ce serveur, et des serveurs où vous aviez des abonné⋅e⋅s.
+ silence: Lorsque votre compte est limité, seul·e·s les utilisateur·rice·s qui vous suivent déjà verront vos pouets sur ce serveur, et vous pourriez être exclu de plusieurs listes publiques. Néanmoins, d’autres utilisateur·rice·s peuvent vous suivre manuellement.
+ suspend: Votre compte a été suspendu, et tous vos pouets et vos fichiers multimédia téléversés ont été supprimés irréversiblement de ce serveur, et des serveurs où vous aviez des abonné·e·s.
get_in_touch: Vous pouvez répondre à cette adresse pour entrer en contact avec l’équipe de %{instance}.
review_server_policies: Passer en revue les politiques du serveur
statuses: 'Spécialement, pour :'
@@ -1242,7 +1293,7 @@ fr:
full_handle: Votre identifiant complet
full_handle_hint: C’est ce que vous diriez à vos ami·e·s pour leur permettre de vous envoyer un message ou vous suivre à partir d’un autre serveur.
review_preferences_action: Modifier les préférences
- review_preferences_step: Assurez-vous de définir vos préférences, telles que les courriels que vous aimeriez recevoir ou le niveau de confidentialité auquel vous aimeriez que vos messages soient soumis par défaut. Si vous n’avez pas le mal des transports, vous pouvez choisir d’activer la lecture automatique des GIF.
+ review_preferences_step: Assurez-vous de définir vos préférences, telles que les courriels que vous aimeriez recevoir ou le niveau de confidentialité auquel vous publier vos messages par défaut. Si vous n’avez pas le mal des transports, vous pouvez choisir d’activer la lecture automatique des GIF.
subject: Bienvenue sur Mastodon
tip_federated_timeline: La fil public global est une vue en direct du réseau Mastodon. Mais elle n’inclut que les personnes auxquelles vos voisin·es sont abonné·e·s, donc elle n’est pas complète.
tip_following: Vous suivez les administrateur·rice·s de votre serveur par défaut. Pour trouver d’autres personnes intéressantes, consultez les fils publics local et global.
diff --git a/config/locales/gl.yml b/config/locales/gl.yml
index c3a33932d..d92e06761 100644
--- a/config/locales/gl.yml
+++ b/config/locales/gl.yml
@@ -51,7 +51,7 @@ gl:
accounts:
choices_html: 'Escollas de %{name}:'
endorsements_hint: Podes suxerir a persoas que segues dende a interface web, e amosaranse aquí.
- featured_tags_hint: Podes destacar determinadas etiquetas que se amosarán aquí.
+ featured_tags_hint: Podes destacar determinados cancelos que se amosarán aquí.
follow: Seguir
followers:
one: Seguidora
@@ -92,6 +92,7 @@ gl:
delete: Eliminar
destroyed_msg: Nota de moderación eliminada de xeito correcto!
accounts:
+ add_email_domain_block: Bloquear o dominio do email
approve: Aprobar
approve_all: Aprobar todos
are_you_sure: Está segura?
@@ -172,6 +173,7 @@ gl:
staff: Persoal (staff)
user: Usuaria
search: Procurar
+ search_same_email_domain: Outras usuarias co mesmo dominio de email
search_same_ip: Outras usuarias co mesmo IP
shared_inbox_url: URL da caixa de entrada compartida
show:
@@ -193,6 +195,42 @@ gl:
web: Web
whitelisted: Lista branca
action_logs:
+ action_types:
+ assigned_to_self_report: Asignar denuncia
+ change_email_user: Editar email da usuaria
+ confirm_user: Confirmar usuaria
+ create_account_warning: Crear aviso
+ create_announcement: Crear anuncio
+ create_custom_emoji: Crear emoticonas personalizadas
+ create_domain_allow: Crear permiso de dominio
+ create_domain_block: Crear bloqueo de dominio
+ create_email_domain_block: Crear bloqueo de dominio de correo electrónico
+ demote_user: Degradar usuaria
+ destroy_announcement: Eliminar anuncio
+ destroy_custom_emoji: Eliminar emoticona personalizada
+ destroy_domain_allow: Eliminar permiso de dominio
+ destroy_domain_block: Eliminar bloqueo de dominio
+ destroy_email_domain_block: Eliminar bloqueo de dominio de correo electrónico
+ destroy_status: Eliminar estado
+ disable_2fa_user: Desactivar 2FA
+ disable_custom_emoji: Desactivar emoticona personalizada
+ disable_user: Desactivar usuaria
+ enable_custom_emoji: Activar emoticona personalizada
+ enable_user: Activar usuaria
+ memorialize_account: Transformar en conta conmemorativa
+ promote_user: Promover usuaria
+ remove_avatar_user: Eliminar avatar
+ reopen_report: Reabrir denuncia
+ reset_password_user: Restabelecer contrasinal
+ resolve_report: Resolver denuncia
+ silence_account: Silenciar conta
+ suspend_account: Suspender conta
+ unassigned_report: Desasignar denuncia
+ unsilence_account: Deixar de silenciar conta
+ unsuspend_account: Retirar suspensión de conta
+ update_announcement: Actualizar anuncio
+ update_custom_emoji: Actualizar emoticona personalizada
+ update_status: Actualizar estado
actions:
assigned_to_self_report: "%{name} atribuíu a denuncia %{target} a el mesmo"
change_email_user: "%{name} cambiou o enderezo de correo-e da usuaria %{target}"
@@ -230,6 +268,9 @@ gl:
update_custom_emoji: "%{name} actualizou a emoticona %{target}"
update_status: "%{name} actualizou o estado de %{target}"
deleted_status: "(estado eliminado)"
+ empty: Non se atoparon rexistros.
+ filter_by_action: Filtrar por acción
+ filter_by_user: Filtrar por usuaria
title: Rexistro de auditoría
announcements:
destroyed_msg: Anuncio eliminado de xeito correcto!
@@ -358,6 +399,7 @@ gl:
destroyed_msg: Eliminouse de xeito correcto o dominio de email da listaxe negra
domain: Dominio
empty: Actualmente non hai dominios de email na listaxe negra.
+ from_html: desde %{domain}
new:
create: Engadir dominio
title: Nova entrada na listaxe negra de email
@@ -488,7 +530,7 @@ gl:
title: Activar o directorio de perfil
registrations:
closed_message:
- desc_html: Mostrado na páxina de portada cando o rexistro está pechado. Pode utilizar etiquetas HTML
+ desc_html: Mostrado na páxina de portada cando o rexistro está pechado. Pode utilizar cancelos HTML
title: Mensaxe de rexistro pechado
deletion:
desc_html: Permitirlle a calquera que elimine a súa conta
@@ -509,16 +551,16 @@ gl:
desc_html: Mostrar unha insignia de membresía nunha páxina de usuaria
title: Mostrar insigna de membresía
site_description:
- desc_html: Parágrafo de presentación na páxina principal. Describe o que fai especial a este servidor Mastodon e calquera outra ouca importante. Pode utilizar etiquetas HTML, en particular <a>
e <em>
.
+ desc_html: Parágrafo de presentación na páxina principal. Describe o que fai especial a este servidor Mastodon e calquera outra ouca importante. Pode utilizar cancelos HTML, en particular <a>
e <em>
.
title: Descrición do servidor
site_description_extended:
- desc_html: Un bo lugar para o teu código de conduta, regras, guías e outras cousas para diferenciar o teu servidor. Podes empregar etiquetas HTML
+ desc_html: Un bo lugar para o teu código de conduta, regras, guías e outras cousas para diferenciar o teu servidor. Podes empregar cancelos HTML
title: Información extendida da personalización
site_short_description:
- desc_html: Amosado na barra lateral e nas etiquetas meta. Describe o que é Mastodon e que fai especial a este servidor nun só parágrafo. Se está baleiro, amosará a descrición do servidor.
+ desc_html: Amosado na barra lateral e nos cancelos meta. Describe o que é Mastodon e que fai especial a este servidor nun só parágrafo. Se está baleiro, amosará a descrición do servidor.
title: Descrición curta do servidor
site_terms:
- desc_html: Podes escribir a túa propia política de privacidade, termos de servizo ou aclaracións legais. Podes empregar etiquetas HTML
+ desc_html: Podes escribir a túa propia política de privacidade, termos de servizo ou aclaracións legais. Podes empregar cancelos HTML
title: Termos de servizo personalizados
site_title: Nome do servidor
spam_check_enabled:
@@ -537,6 +579,9 @@ gl:
trends:
desc_html: Amosar de xeito público cancelos revisados previamente que actualmente son tendencia
title: Cancelos en tendencia
+ site_uploads:
+ delete: Eliminar o ficheiro subido
+ destroyed_msg: Eliminado correctamente o subido!
statuses:
back_to_account: Voltar a páxina da conta
batch:
@@ -573,7 +618,6 @@ gl:
warning_presets:
add_new: Engadir novo
delete: Eliminar
- edit: Editar
edit_preset: Editar aviso preestablecido
title: Xestionar avisos preestablecidos
admin_mailer:
@@ -591,6 +635,7 @@ gl:
add_new: Crear alcume
created_msg: Creou un novo alcume correctamente. Pode iniciar o movemento desde a conta antiga.
deleted_msg: Eliminou correctamente o alcume. Xa non será posible mover desde esa conta a esta.
+ empty: Non tes alcumes.
hint_html: Se queres mudarte desde outra conta a esta nova, aquí podes crear un alcume, que é requerido antes de poder proceder a mover os seguidores da conta antiga a esta nova. Esta acción por si mesma é inocua e reversible. A migración da conta iníciase desde a conta antiga.
remove: Desligar alcume
appearance:
@@ -661,6 +706,7 @@ gl:
trouble_logging_in: Problemas para conectar?
authorize_follow:
already_following: Xa está a seguir esta conta
+ already_requested: Xa tes enviada unha solicitude de seguimento a esa conta
error: Desgraciadamente, algo fallou ao buscar a conta remota
follow: Seguir
follow_request: 'Enviou unha petición de seguimento a:'
@@ -751,7 +797,7 @@ gl:
add_new: Engadir novo
errors:
limit: Xa acadaches o número máximo de cancelos
- hint_html: "¿Qué son as etiquetas destacadas? Móstranse destacadas no seu perfil público e permítenlle a outras persoas ver os seus toots públicos nos que as utilizou. Son unha ferramenta moi útil para facer seguimento de traballos creativos e proxectos a longo prazo."
+ hint_html: "¿Qué son os cancelos destacados? Móstranse destacados no teu perfil público e permítenlle a outras persoas ver os teus toots públicos nos que os utilizaches. Son unha ferramenta moi útil para facer seguimento de traballos creativos e proxectos a longo prazo."
filters:
contexts:
account: Perfís
@@ -787,7 +833,7 @@ gl:
one: Algo non está ben de todo! Por favor revise abaixo o erro
other: Algo aínda non está ben! Por favor revise os %{count} erros abaixo
html_validator:
- invalid_markup: 'contén etiquetas HTML non válidas: %{error}'
+ invalid_markup: 'contén cancelos HTML non válidas: %{error}'
identity_proofs:
active: Activo
authorize: Si, autorizar
@@ -804,6 +850,8 @@ gl:
inactive: Inactiva
publicize_checkbox: 'E tootee esto:'
publicize_toot: 'Comprobado! Eu son %{username} en %{service}: %{url}'
+ remove: Quitar a verificación da conta
+ removed: Quitaches correctamente a verificación da conta
status: Estado da validación
view_proof: Ver proba
imports:
@@ -849,6 +897,7 @@ gl:
media_attachments:
validations:
images_and_video: Non pode anexar un vídeo a un estado que xa contén imaxes
+ not_ready: Non se poden anexar ficheiros que aínda se están a procesar. Agarda un intre!
too_many: Non pode anexar máis de 4 ficheiros
migrations:
acct: nomeusuaria@dominio da nova conta
@@ -1070,6 +1119,8 @@ gl:
disallowed_hashtags:
one: 'contiña un cancelo non permitido: %{tags}'
other: 'contiña uns cancelos non permitidos: %{tags}'
+ errors:
+ in_reply_not_found: O estado ó cal tentas respostar semella que non existe.
language_detection: Detección automática do idioma
open_in_web: Abrir na web
over_character_limit: Excedeu o límite de caracteres %{max}
@@ -1238,7 +1289,7 @@ gl:
edit_profile_step: Podes personalizar o teu perfil subindo un avatar, cabeceira, cambiar o nome público e aínda máis. Se restrinxes a tua conta podes revisar a conta das persoas que solicitan seguirte antes de permitirlles o acceso aos teus toots.
explanation: Aquí ten alunhas endereitas para ir aprendendo
final_action: Comece a publicar
- final_step: 'Publique! Incluso sin seguidoras as súas mensaxes serán vistas por outras, por exemplo na liña temporal local e nas etiquetas. Podería presentarse no #fediverso utilizando a etiqueta #introductions.'
+ final_step: 'Publica! Incluso sen seguidoras as túas mensaxes serán vistas por outras, por exemplo na liña temporal local e nos cancelos. Poderías presentarte ao #fediverso utilizando o cancelo #introductions.'
full_handle: O seu alcume completo
full_handle_hint: Esto é o que lle dirá aos seus amigos para que poidan seguila ou enviarlle mensaxes desde outro servidor.
review_preferences_action: Cambiar preferencias
diff --git a/config/locales/hi.yml b/config/locales/hi.yml
index 401d07cf6..fc4805625 100644
--- a/config/locales/hi.yml
+++ b/config/locales/hi.yml
@@ -19,7 +19,7 @@ hi:
'406': This page is not available in the requested format.
'410': The page you were looking for doesn't exist here anymore.
'422':
- '429': Throttled
+ '429': Too many requests
'500':
'503': The page could not be served due to a temporary server failure.
invites:
diff --git a/config/locales/hr.yml b/config/locales/hr.yml
index 9dd14c1dd..d7bd91c7a 100644
--- a/config/locales/hr.yml
+++ b/config/locales/hr.yml
@@ -50,7 +50,7 @@ hr:
'406': This page is not available in the requested format.
'410': The page you were looking for doesn't exist here anymore.
'422':
- '429': Throttled
+ '429': Too many requests
'500':
'503': The page could not be served due to a temporary server failure.
exports:
diff --git a/config/locales/hu.yml b/config/locales/hu.yml
index 2d7f3a137..6b444b478 100644
--- a/config/locales/hu.yml
+++ b/config/locales/hu.yml
@@ -11,9 +11,7 @@ hu:
apps: Mobil appok
apps_platforms: Használd a Mastodont iOS-ről, Androidról vagy más platformról
browse_directory: Böngészd a profilokat és szűrj érdeklődési körre
- browse_local_posts: 'Nézz bele a szerver publikus, élő adatfolyamába
-
-'
+ browse_local_posts: Nézz bele a szerver publikus, élő adatfolyamába
browse_public_posts: Nézz bele a Mastodon élő adatfolyamába
contact: Kapcsolat
contact_missing: Nincs megadva
@@ -94,6 +92,7 @@ hu:
delete: Törlés
destroyed_msg: Moderációs bejegyzés törölve!
accounts:
+ add_email_domain_block: Email domain tiltólistára vétele
approve: Jóváhagyás
approve_all: Mindet jóváhagy
are_you_sure: Biztos vagy benne?
@@ -112,7 +111,7 @@ hu:
deleted: Törölve
demote: Lefokozás
disable: Kikapcsolás
- disable_two_factor_authentication: Kétlépcsős azonosítás kikapcsolása
+ disable_two_factor_authentication: Kétlépcsős hitelesítés kikapcsolása
disabled: Kikapcsolva
display_name: Megjelenített név
domain: Domain
@@ -124,7 +123,7 @@ hu:
followers: Követő
follows: Követett
header: Fejléc
- inbox_url: Beérkezett üzenetek URL
+ inbox_url: Beérkezett üzenetek URL-je
invited_by: Meghívta
ip: IP
joined: Csatlakozott
@@ -174,6 +173,7 @@ hu:
staff: Stáb
user: Felhasználó
search: Keresés
+ search_same_email_domain: Felhasználók ugyanezzel az email domainnel
search_same_ip: Más felhasználók ugyanezzel az IP-vel
shared_inbox_url: Megosztott bejövő üzenetek URL
show:
@@ -195,27 +195,63 @@ hu:
web: Web
whitelisted: Engedélyező-listán
action_logs:
+ action_types:
+ assigned_to_self_report: Jelentés hozzárendelése
+ change_email_user: Felhasználó e-mail címének módosítása
+ confirm_user: Felhasználó megerősítése
+ create_account_warning: Figyelmeztetés létrehozása
+ create_announcement: Közlemény létrehozása
+ create_custom_emoji: Egyéni emodzsi létrehozása
+ create_domain_allow: Domain engedélyezés létrehozása
+ create_domain_block: Domain blokkolás létrehozása
+ create_email_domain_block: E-mail domain blokkolás létrehozása
+ demote_user: Felhasználó lefokozása
+ destroy_announcement: Közlemény törlése
+ destroy_custom_emoji: Egyéni emodzsi törlése
+ destroy_domain_allow: Domain engedélyezés törlése
+ destroy_domain_block: Domain blokkolás törlése
+ destroy_email_domain_block: E-mail domain blokkolás törlése
+ destroy_status: Állapot törlése
+ disable_2fa_user: Kétlépcsős hitelesítés letiltása
+ disable_custom_emoji: Egyéni emodzsi letiltása
+ disable_user: Felhasználói letiltása
+ enable_custom_emoji: Egyéni emodzsi engedélyezése
+ enable_user: Felhasználó engedélyezése
+ memorialize_account: Fiók emlékké nyilvánítása
+ promote_user: Felhasználó előléptetése
+ remove_avatar_user: Profilkép eltávolítása
+ reopen_report: Jelentés újranyitása
+ reset_password_user: Jelszó visszaállítása
+ resolve_report: Jelentés megoldása
+ silence_account: Fiók némítása
+ suspend_account: Fiók felfüggesztése
+ unassigned_report: Jelentés hozzárendelésének megszüntetése
+ unsilence_account: Fiók némításának feloldása
+ unsuspend_account: Fiók felfüggesztésének feloldása
+ update_announcement: Közlemény frissítése
+ update_custom_emoji: Egyéni emodzsi frissítése
+ update_status: Állapot frissítése
actions:
assigned_to_self_report: "%{name} a %{target} bejelentést magához rendelte"
change_email_user: "%{name} megváltoztatta %{target} felhasználó e-mail címét"
confirm_user: "%{name} megerősítette e-mail címét: %{target}"
create_account_warning: "%{name} figyelmeztetést küldött %{target} felhasználónak"
create_announcement: "%{name} új közleményt hozott létre %{target}"
- create_custom_emoji: "%{name} új emojit töltött fel: %{target}"
+ create_custom_emoji: "%{name} új emodzsit töltött fel: %{target}"
create_domain_allow: "%{name} engedélyező listára vette %{target} domaint"
create_domain_block: "%{name} letiltotta az alábbi domaint: %{target}"
create_email_domain_block: "%{name} feketelistára tette az alábbi e-mail domaint: %{target}"
demote_user: "%{name} lefokozta az alábbi felhasználót: %{target}"
destroy_announcement: "%{name} törölte a közleményt %{target}"
- destroy_custom_emoji: "%{name} törölte az emojit: %{target}"
+ destroy_custom_emoji: "%{name} törölte az emodzsit: %{target}"
destroy_domain_allow: "%{name} leszedte %{target} domaint az engedélyező listáról"
destroy_domain_block: "%{name} engedélyezte az alábbi domaint: %{target}"
destroy_email_domain_block: "%{name} fehérlistára tette az alábbi e-mail domaint: %{target}"
destroy_status: "%{name} eltávolította az alábbi felhasználó tülkjét: %{target}"
disable_2fa_user: "%{name} kikapcsolta a kétlépcsős azonosítást %{target} felhasználó fiókján"
- disable_custom_emoji: "%{name} letiltotta az alábbi emojit: %{target}"
+ disable_custom_emoji: "%{name} letiltotta az alábbi emodzsit: %{target}"
disable_user: "%{name} letiltotta az alábbi felhasználó bejelentkezését: %{target}"
- enable_custom_emoji: "%{name} engedélyezte az alábbi emojit: %{target}"
+ enable_custom_emoji: "%{name} engedélyezte az alábbi emodzsit: %{target}"
enable_user: "%{name} engedélyezte az alábbi felhasználó bejelentkezését: %{target}"
memorialize_account: "%{name} emléket állított az alábbi felhasználónak: %{target}"
promote_user: "%{name} előléptette az alábbi felhasználót: %{target}"
@@ -229,9 +265,12 @@ hu:
unsilence_account: "%{name} feloldotta a némítást %{target} felhasználói fiókján"
unsuspend_account: "%{name} feloldotta %{target} felhasználói fiókjának felfüggesztését"
update_announcement: "%{name} frissítette a közleményt %{target}"
- update_custom_emoji: "%{name} frissítette az alábbi emojit: %{target}"
+ update_custom_emoji: "%{name} frissítette az alábbi emodzsit: %{target}"
update_status: "%{name} frissítette %{target} felhasználó tülkjét"
deleted_status: "(törölt tülk)"
+ empty: Nem található napló.
+ filter_by_action: Szűrés művelet alapján
+ filter_by_user: Szűrés felhasználó alapján
title: Audit napló
announcements:
destroyed_msg: A közlemény sikeresen törölve!
@@ -251,34 +290,34 @@ hu:
custom_emojis:
assign_category: Kategóriák
by_domain: Domain
- copied_msg: Sikeresen létrehoztuk az emoji helyi másolatát
+ copied_msg: Sikeresen létrehoztuk az emodzsi helyi másolatát
copy: Másolás
- copy_failed_msg: Emoji helyi másolatának létrehozása sikertelen
+ copy_failed_msg: Emodzsi helyi másolatának létrehozása sikertelen
create_new_category: Új kategória létrehozása
- created_msg: Emoji létrehozva!
+ created_msg: Emodzsi létrehozva!
delete: Törlés
- destroyed_msg: Emoji törlése sikeres!
+ destroyed_msg: Emodzsi törlése sikeres!
disable: Letiltás
disabled: Letiltva
- disabled_msg: Emoji letiltva
- emoji: Emoji
+ disabled_msg: Emodzsi letiltva
+ emoji: Emodzsi
enable: Engedélyezés
enabled: Engedélyezve
- enabled_msg: Emoji engedélyezve
+ enabled_msg: Emodzsji engedélyezve
image_hint: PNG (maximális méret 50KB)
list: Listázás
listed: Listázva
new:
- title: Új egyedi emoji hozzáadása
+ title: Új egyedi emodzsi hozzáadása
overwrite: Felülírás
shortcode: Rövidítés
shortcode_hint: Legalább két karakter, csak betűk, számok és alsóvonás
- title: Egyedi emojik
+ title: Egyedi emodzsik
uncategorized: Nem kategorizált
unlist: Elrejtés a listáról
unlisted: Nincs listázva
- update_failed_msg: Nem sikerült frissíteni az emojit
- updated_msg: Emoji sikeresen frissítve!
+ update_failed_msg: Nem sikerült frissíteni az emodzsit
+ updated_msg: Emodzsi sikeresen frissítve!
upload: Feltöltés
dashboard:
authorized_fetch_mode: Áttöltő üzemmód engedélyezve
@@ -360,6 +399,7 @@ hu:
destroyed_msg: E-mail domain sikeresen eltávolítva a feketelistáról
domain: Domain
empty: Nincs email domain a feketelistán.
+ from_html: "%{domain}-ról"
new:
create: Domain hozzáadása
title: Új e-mail feketelista bejegyzés
@@ -539,6 +579,9 @@ hu:
trends:
desc_html: Előzetesen engedélyezett és most trendi hashtagek nyilvános mutatása
title: Trendi hashtagek
+ site_uploads:
+ delete: Feltöltött fájl törlése
+ destroyed_msg: Sikeresen töröltük a site feltöltését!
statuses:
back_to_account: Vissza a fiók oldalára
batch:
@@ -575,7 +618,6 @@ hu:
warning_presets:
add_new: Új hozzáadása
delete: Törlés
- edit: Szerkesztés
edit_preset: Figyelmeztetés szerkesztése
title: Figyelmeztetések
admin_mailer:
@@ -593,7 +635,8 @@ hu:
add_new: Alias készítése
created_msg: Elkészült az új aliasod. Most már elkezdheted a költöztetést a régi fiókból.
deleted_msg: Sikeresen eltávolítottad az aliast. A fiókról erre a fiókra való áttérés már nem lehetséges.
- hint_html: Ha másik fiókról kívánsz átlépni erre a fiókra, itt létrehozhatsz egy aliast, amelyre szükség van, mielőtt folytathatod a követők áthelyezését a régi fiókból erre. Ez az áthelyezés önmagában ártalmatlan és visszafordítható folyamat. A fiók áttelepítését a régi fiókból indul el.
+ empty: Nincsenek aliasaid.
+ hint_html: Ha másik fiókról kívánsz átlépni erre a fiókra, itt létrehozhatsz egy aliast, amelyre szükség van, mielőtt folytathatod a követők áthelyezését a régi fiókból erre. Ez az áthelyezés önmagában ártalmatlan és visszafordítható folyamat. A fiók áttelepítése a régi fiókból indul el.
remove: Alias szétkapcsolása
appearance:
advanced_web_interface: Haladó webes felület
@@ -663,6 +706,7 @@ hu:
trouble_logging_in: Problémád van a bejelentkezéssel?
authorize_follow:
already_following: Már követed ezt a felhasználót
+ already_requested: Már küldtél követési kérelmet ennek a fióknak
error: Hiba történt a távoli felhasználó keresésekor
follow: Követés
follow_request: 'Engedélyt kértél az alábbi felhasználó követésére:'
@@ -806,6 +850,8 @@ hu:
inactive: Inaktív
publicize_checkbox: 'És ezt tülköld ki:'
publicize_toot: 'Tanúsítva! %{username} vagyok %{service}: %{url} szerveren'
+ remove: Tanúsítás eltávolítása a fiókról
+ removed: Leszedtük a tanúsítást a fiókról
status: Ellenőrzés állapota
view_proof: Tanúsítás megtekintése
imports:
@@ -851,6 +897,7 @@ hu:
media_attachments:
validations:
images_and_video: Nem csatolhatsz videót olyan tülkhöz, amelyhez már csatoltál képet
+ not_ready: Nem lehet olyan fájlt csatolni, melynek még nem fejeződött be a feldolgozása. Próbáld kicsit később!
too_many: Maximum négy fájlt csatolhatsz a tülkhöz
migrations:
acct: Az új fiók felhasznalonev@domain formátumban
@@ -956,7 +1003,7 @@ hu:
reactions:
errors:
limit_reached: A különböző reakciók száma elérte a határértéket
- unrecognized_emoji: nem ismert emoji
+ unrecognized_emoji: nem ismert emodzsi
relationships:
activity: Fiók aktivitás
dormant: Elhagyott
@@ -1072,6 +1119,8 @@ hu:
disallowed_hashtags:
one: 'tiltott hashtaget tartalmaz: %{tags}'
other: 'tiltott hashtageket tartalmaz: %{tags}'
+ errors:
+ in_reply_not_found: Már nem létezik az a tülk, melyre válaszolni szeretnél.
language_detection: Nyelv automatikus felismerése
open_in_web: Megnyitás a weben
over_character_limit: Túllépted a maximális %{max} karakteres keretet
@@ -1194,7 +1243,7 @@ hu:
mastodon-light: Mastodon (Világos)
time:
formats:
- default: "%Y %b %d, %H:%M"
+ default: "%Y. %b %d., %H:%M"
month: "%Y %b"
two_factor_authentication:
code_hint: Megerősítéshez írd be az alkalmazás által generált kódot
diff --git a/config/locales/hy.yml b/config/locales/hy.yml
index 2c692235b..a0bed56fd 100644
--- a/config/locales/hy.yml
+++ b/config/locales/hy.yml
@@ -20,6 +20,11 @@ hy:
other: Հետևորդներ
media: Մեդիա
never_active: Երբեք
+ roles:
+ admin: Ադմինիստրատոր
+ bot: Բոտ
+ group: Խումբ
+ moderator: Մոդերատոր
unfollow: Չհետևել
admin:
account_moderation_notes:
@@ -33,7 +38,7 @@ hy:
'406': This page is not available in the requested format.
'410': The page you were looking for doesn't exist here anymore.
'422':
- '429': Throttled
+ '429': Too many requests
'500':
'503': The page could not be served due to a temporary server failure.
invites:
diff --git a/config/locales/id.yml b/config/locales/id.yml
index ca222946c..c22c75bd9 100644
--- a/config/locales/id.yml
+++ b/config/locales/id.yml
@@ -88,6 +88,7 @@ id:
delete: Hapus
destroyed_msg: Catatan moderasi berhasil dihapus!
accounts:
+ add_email_domain_block: Masukkan domain surel ke daftar hitam
approve: Terima
approve_all: Terima semua
are_you_sure: Anda yakin?
@@ -168,6 +169,7 @@ id:
staff: Staf
user: Pengguna
search: Cari
+ search_same_email_domain: Pengguna lain dengan domain surel yang sama
search_same_ip: Pengguna lain dengan IP yang sama
shared_inbox_url: URL kotak masuk bersama
show:
@@ -189,6 +191,27 @@ id:
web: Web
whitelisted: Masuk daftar putih
action_logs:
+ action_types:
+ change_email_user: Ubah Surel untuk Pengguna
+ confirm_user: Konfirmasi Pengguna
+ create_account_warning: Buat Peringatan
+ create_announcement: Buat Pengumuman
+ create_custom_emoji: Buat Emoji Khusus
+ create_domain_allow: Buat Izin Domain
+ create_domain_block: Buat Blokir Domain
+ create_email_domain_block: Buat Surel Blokir Domain
+ demote_user: Turunkan Pengguna
+ destroy_announcement: Hapus Pengumuman
+ destroy_custom_emoji: Hapus Emoji Khusus
+ destroy_domain_allow: Hapus Izin Domain
+ destroy_domain_block: Hapus Blokir Domain
+ destroy_email_domain_block: Hapus surel blokir domain
+ destroy_status: Hapus Status
+ disable_2fa_user: Nonaktifkan 2FA
+ disable_custom_emoji: Nonaktifkan Emoji Khusus
+ disable_user: Nonaktifkan Pengguna
+ enable_custom_emoji: Aktifkan Emoji Khusus
+ enable_user: Aktifkan Pengguna
actions:
assigned_to_self_report: "%{name} menugaskan laporan %{target} kpd dirinya sendiri"
change_email_user: "%{name} mengubah alamat surel pengguna %{target}"
@@ -353,6 +376,7 @@ id:
destroyed_msg: Berhasil menghapus domain surel dari daftar hitam
domain: Domain
empty: Tidak ada domain surel yang masuk daftar hitam.
+ from_html: dari %{domain}
new:
create: Tambah domain
title: Entri daftar hitam surel baru
@@ -529,6 +553,9 @@ id:
trends:
desc_html: Tampilkan secara publik tagar tertinjau yang kini sedang tren
title: Tagar sedang tren
+ site_uploads:
+ delete: Hapus berkas yang diunggah
+ destroyed_msg: Situs yang diunggah berhasil dihapus!
statuses:
back_to_account: Kembali ke halaman akun
batch:
@@ -565,7 +592,6 @@ id:
warning_presets:
add_new: Tambah baru
delete: Hapus
- edit: Sunting
edit_preset: Sunting preset peringatan
title: Kelola preset peringatan
admin_mailer:
@@ -653,6 +679,7 @@ id:
trouble_logging_in: Kesulitan masuk?
authorize_follow:
already_following: Anda sudah mengikuti akun ini
+ already_requested: Anda sudah mengirimkan permintaan untuk mengikuti akun tersebut
error: Sayangnya, ada error saat melihat akun remote
follow: Ikuti
follow_request: 'Anda telah mengirim permintaan untuk mengikuti ke:'
@@ -716,7 +743,7 @@ id:
'422':
content: Verifikasi keamanan gagal. Apa anda memblokir cookie?
title: Verifikasi keamanan gagal
- '429': Throttled
+ '429': Lambat
'500':
content: Maaf, ada sesuatu yang salah pada sistem kami.
title: Halaman ini tidak benar
@@ -755,6 +782,7 @@ id:
title: Ubah saringan
errors:
invalid_context: Konteks tidak ada atau invalid
+ invalid_irreversible: Penyaringan yang tidak dapat dipulihkan hanya bekerja di beranda atau konteks notifikasi
index:
delete: Hapus
empty: Anda tidak memiliki filter.
@@ -838,6 +866,7 @@ id:
media_attachments:
validations:
images_and_video: Tidak bisa melampirkan video pada status yang telah memiliki gambar
+ not_ready: Tidak dapat melampirkan berkas yang belum selesai diproses. Coba lagi nanti!
too_many: Tidak dapat melampirkan lebih dari 4 file
migrations:
acct: Pindah ke
@@ -846,21 +875,27 @@ id:
cancelled_msg: Pembatalan peralihan berhasil.
errors:
already_moved: adalah akun yang sama yang sudah Anda pindahkan ke
+ missing_also_known_as: ini bukan back-reference akun ini
move_to_self: tidak boleh akun sekarang
not_found: tidak dapat ditemukan
+ on_cooldown: Anda berada di masa tenang
followers_count: Jumlah pengikut saat migrasi
incoming_migrations: Pindah dari akun berbeda
incoming_migrations_html: Untuk pindah dari akun lain ke sini, Anda harus membuat alias akun terlebih dahulu.
moved_msg: Akun Anda dialihkan ke %{acct} dan pengikut Anda akan ikut dipindahkan.
not_redirecting: Saat ini akun Anda tidak dialihkan ke akun lain.
on_cooldown: Anda baru saja memindahkan akun Anda. Fungsi ini akan tersedia kembali %{count} hari lagi.
+ past_migrations: Migrasi lampau
proceed_with_move: Pindahkan pengikut
redirecting_to: Akun Anda dialihkan ke %{acct}.
set_redirect: Atur peralihan
warning:
+ backreference_required: Akun baru harus dikonfigurasi terlebih dahulu agar merujuk ke akun ini
before: 'Sebelum lanjut, mohon perhatikan catatan ini:'
cooldown: Setelah pindah akun adalah masa tenang, masa Anda tidak dapat pindah akun lagi
+ disabled_account: Akun Anda tidak akan dapat dipakai secara penuh. Namun, Anda tetap akan memiliki akses ke ekspor data dan aktivasi ulang.
followers: Tindakan ini akan memindah semua pengikut Anda dari akun sekarang ke akun baru
+ only_redirect_html: Secara alternatif, Anda hanya dapat menaruh tulisan mengarahkan ke profil Anda.
other_data: Tidak akan ada data lagi yang dipindahkan secara otomatis
redirect: Pemberitahuan peralihan akan dimunculkan pada akun profil Anda dan akun akan dikecualikan dari pencarian
moderation:
@@ -898,6 +933,8 @@ id:
subject: "%{name} mem-boost status anda"
title: Boost baru
notifications:
+ email_events: Event untuk notifikasi surel
+ email_events_hint: 'Pilih event yang ingin Anda terima notifikasinya:'
other_settings: Pengaturan notifikasi lain
number:
human:
@@ -919,6 +956,7 @@ id:
errors:
already_voted: Anda sudah mengikuti japat ini
duplicate_options: berisi item ganda
+ duration_too_long: terlalu jauh ke masa depan
duration_too_short: terlalu cepat
expired: Japat telah berakhir
invalid_choice: Opsi pilihan yang dipilih tidak ada
@@ -929,11 +967,16 @@ id:
other: Lainnya
posting_defaults: Kiriman bawaan
public_timelines: Linimasa publik
+ reactions:
+ errors:
+ limit_reached: Batas reaksi yang berbeda terpenuhi
+ unrecognized_emoji: bukan emoji yang dikenal
relationships:
activity: Aktivitas akun
dormant: Terbengkalai
followers: Pengikut
following: Mengikuti
+ invited: Diundang
last_active: Terakhir aktif
most_recent: Terkini
moved: Dipindah
@@ -1040,6 +1083,8 @@ id:
content_warning: 'Peringatan konten: %{warning}'
disallowed_hashtags:
other: 'berisi tagar yang tidak diizinkan: %{tags}'
+ errors:
+ in_reply_not_found: Status yang ingin Anda balas sudah tidak ada.
language_detection: Deteksi bahasa secara otomatis
open_in_web: Buka di web
over_character_limit: melebihi %{max} karakter
@@ -1126,11 +1171,14 @@ id:
explanation: Beberapa tips sebelum Anda memulai
final_action: Mulai mengirim
final_step: 'Mulai mengirim! Tanpa pengikut, pesan publik Anda akan tetap dapat dilihat oleh akun lain, contohnya di linimasa lokal atau di tagar. Anda mungkin ingin memperkenalkan diri dengan tagar #introductions.'
+ full_handle: Penanganan penuh Anda
full_handle_hint: Ini yang dapat Anda sampaikan kepada teman agar mereka dapat mengirim pesan atau mengikuti Anda dari server lain.
review_preferences_action: Ubah preferensi
review_preferences_step: Pastikan Anda telah mengatur preferensi Anda, seperti surel untuk menerima pesan, atau tingkat privasi bawaan untuk kiriman Anda. Jika Anda tidak alergi dengan gerakan gambar, Anda dapat mengaktifkan opsi mainkan otomatis GIF.
subject: Selamat datang di Mastodon
+ tip_federated_timeline: Linimasa gabungan adalah ruang yang menampilkan jaringan Mastodon. Tapi ini hanya berisi tetangga orang-orang yang Anda ikuti, jadi tidak sepenuhnya komplet.
tip_following: Anda secara otomatis mengikuti admin server. Untuk mencari akun-akun yang menarik, silakan periksa linimasa lokal dan gabungan.
+ tip_local_timeline: Linimasa lokal adalah ruang yang menampilkan orang-orang di %{instance}. Mereka adalah tetangga dekat!
tip_mobile_webapp: Jika peramban mobile Anda ingin menambahkan Mastodon ke layar utama, Anda dapat menerima notifikasi dorong. Ia akan berjalan seperti aplikasi asli!
tips: Tips
title: Selamat datang, %{name}!
diff --git a/config/locales/io.yml b/config/locales/io.yml
index 4e426e469..0b09134bb 100644
--- a/config/locales/io.yml
+++ b/config/locales/io.yml
@@ -79,7 +79,7 @@ io:
'406': This page is not available in the requested format.
'410': La pagino quan tu serchas ne plus existas.
'422':
- '429': Throttled
+ '429': Too many requests
'500':
'503': The page could not be served due to a temporary server failure.
exports:
diff --git a/config/locales/is.yml b/config/locales/is.yml
index d6cf23966..2138068e5 100644
--- a/config/locales/is.yml
+++ b/config/locales/is.yml
@@ -92,6 +92,7 @@ is:
delete: Eyða
destroyed_msg: Tókst að eyða minnispunkti umsjónarmanns!
accounts:
+ add_email_domain_block: Útiloka tölvupóstlén
approve: Samþykkja
approve_all: Samþykkja allt
are_you_sure: Ertu viss?
@@ -115,7 +116,7 @@ is:
display_name: Birtingarnafn
domain: Lén
edit: Breyta
- email: Tölvupóstur
+ email: Tölvupóstfang
email_status: Staða tölvupósts
enable: Virkja
enabled: Virkt
@@ -133,7 +134,7 @@ is:
title: Staðsetning
login_status: Staða innskráningar
media_attachments: Myndaviðhengi
- memorialize: Breya í minningargrein
+ memorialize: Breyta í minningargrein
moderation:
active: Virkur
all: Allt
@@ -172,6 +173,7 @@ is:
staff: Starfsmaður
user: Notandi
search: Leita
+ search_same_email_domain: Aðra notendur með sama tölvupóstlén
search_same_ip: Aðrir notendur með sama IP-vistfang
shared_inbox_url: Slóð á sameiginlegt innhólf
show:
@@ -193,6 +195,42 @@ is:
web: Vefur
whitelisted: Á lista yfir leyft
action_logs:
+ action_types:
+ assigned_to_self_report: Úthluta kæru
+ change_email_user: Skipta um tölvupóstfang notanda
+ confirm_user: Staðfesta notanda
+ create_account_warning: Útbúa aðvörun
+ create_announcement: Búa til tilkynningu
+ create_custom_emoji: Búa til sérsniðið tjáningartákn
+ create_domain_allow: Búa til lén leyft
+ create_domain_block: Búa til lén bannað
+ create_email_domain_block: Búa til tölvupóstfang bannað
+ demote_user: Lækka notanda í tign
+ destroy_announcement: Eyða tilkynningu
+ destroy_custom_emoji: Eyða sérsniðnu tjáningartákni
+ destroy_domain_allow: Eyða léni leyft
+ destroy_domain_block: Eyða léni bannað
+ destroy_email_domain_block: Eyða tölvupóstfangi bannað
+ destroy_status: Eyða stöðufærslu
+ disable_2fa_user: Gera tveggja-þátta auðkenningu óvirka
+ disable_custom_emoji: Gera sérsniðið tjáningartákn óvirkt
+ disable_user: Gera notanda óvirkan
+ enable_custom_emoji: Virkja sérsniðið tjáningartákn
+ enable_user: Virkja notanda
+ memorialize_account: Gera aðgang að minningargrein
+ promote_user: Hækka notanda í tign
+ remove_avatar_user: Fjarlægja auðkennismynd
+ reopen_report: Enduropna kæru
+ reset_password_user: Endurstilla lykilorð
+ resolve_report: Leysa kæru
+ silence_account: Hylja notandaaðgang
+ suspend_account: Setja notandaaðgang í bið
+ unassigned_report: Aftengja úthlutun kæru
+ unsilence_account: Hætta að hylja notandaaðgang
+ unsuspend_account: Taka notandaaðgang úr bið
+ update_announcement: Uppfæra tilkynningu
+ update_custom_emoji: Uppfæra sérsniðið tjáningartákn
+ update_status: Uppfæra stöðufærslu
actions:
assigned_to_self_report: "%{name} úthlutaði skýrslu %{target} til sín"
change_email_user: "%{name} breytti tölvupóstfangi fyrir notandann %{target}"
@@ -230,6 +268,9 @@ is:
update_custom_emoji: "%{name} uppfærði tjáningartákn %{target}"
update_status: "%{name} uppfærði stöðufærslu frá %{target}"
deleted_status: "(eydd stöðufærsla)"
+ empty: Engar atvikaskrár fundust.
+ filter_by_action: Sía eftir aðgerð
+ filter_by_user: Sía eftir notanda
title: Atvikaskrá
announcements:
destroyed_msg: Það tókst að eyða auglýsingunni!
@@ -358,6 +399,7 @@ is:
destroyed_msg: Tókst að eyða póstléni af lista yfir bannað
domain: Lén
empty: Engin tölvupóstlén eru á bannlista.
+ from_html: frá %{domain}
new:
create: Bæta við léni
title: Ný færsla á bannlista fyrir tölvupóstföng
@@ -537,6 +579,9 @@ is:
trends:
desc_html: Birta opinberlega þau áður yfirförnu myllumerki sem eru núna í umræðunni
title: Myllumerki í umræðunni
+ site_uploads:
+ delete: Eyða innsendri skrá
+ destroyed_msg: Það tókst að eyða innsendingu á vefsvæði!
statuses:
back_to_account: Fara aftur á síðu notandaaðgangsins
batch:
@@ -573,7 +618,6 @@ is:
warning_presets:
add_new: Bæta við nýju
delete: Eyða
- edit: Breyta
edit_preset: Breyta forstilltri aðvörun
title: Sýsla með forstilltar aðvaranir
admin_mailer:
@@ -591,6 +635,7 @@ is:
add_new: Búa til samnefni (alias)
created_msg: Tókst að búa til samnefni. Þú getur núna byrjað að færa gögn af gamla aðgangnum.
deleted_msg: Tókst að fjarlægja samnefnið. Flutningur af þeim notandaaðgangi yfir á þennan er ekki lengur mögulegur.
+ empty: Þú ert ekki með nein samnefni.
hint_html: Ef þú vilt flytjast af öðrum notandaaðgangi yfir á þennan, þá geturðu búið hér til samnefni, sem er nauðsynlegt áður en þú getur haldið áfram við að flytja fylgjendur af gamla notandaaðgangnum yfir á þennan aðgang. Þessi aðgerð er í sjálfu sér skaðlaus og afturkræf. Yfirfærsla notandaaðgangsins er síðan ræst á gamla notandaaðgangnum.
remove: Aftengja samnefni
appearance:
@@ -661,6 +706,7 @@ is:
trouble_logging_in: Vandræði við að skrá inn?
authorize_follow:
already_following: Þú ert að þegar fylgjast með þessum aðgangi
+ already_requested: Þú ert þegar búin/n að senda fylgjendabeiðni á þennan notanda
error: Því miður, það kom upp villa við að fletta upp fjartengda notandaaðgangnum
follow: Fylgjast með
follow_request: 'Þú sendir beiðni um að fylgjast með til:'
@@ -804,6 +850,8 @@ is:
inactive: Óvirkt
publicize_checkbox: 'Og tísti þetta:'
publicize_toot: 'Það er búið að sanna þetta! Ég er %{username} á %{service}: %{url}'
+ remove: Fjarlægja sönnun úr notandaaðgangi
+ removed: Tókst að fjarlægja sönnun úr notandaaðgangi
status: Staða sannvottunar
view_proof: Skoða sönnun
imports:
@@ -849,6 +897,7 @@ is:
media_attachments:
validations:
images_and_video: Ekki er hægt að hengja myndskeið við stöðufærslu sem þegar inniheldur myndir
+ not_ready: Ekki er hægt að hengja við skrár sem ekki er búið að vinna til fulls. Prófaðu aftur eftir augnablik!
too_many: Ekki er hægt að hengja við fleiri en 4 skrár
migrations:
acct: Færði í
@@ -1036,7 +1085,7 @@ is:
settings:
account: Notandaaðgangur
account_settings: Stillingar notandaaðgangs
- aliases: Samheiti notandaaðgangs
+ aliases: Samnefni notandaaðgangs
appearance: Útlit
authorized_apps: Leyfð forrit
back: Til baka í Mastodon
@@ -1070,6 +1119,8 @@ is:
disallowed_hashtags:
one: 'innihélt óleyfilegt myllumerki: %{tags}'
other: 'innihélt óleyfilegu myllumerkin: %{tags}'
+ errors:
+ in_reply_not_found: Stöðufærslan sem þú ert að reyna að svara að er líklega ekki til.
language_detection: Greina tungumál sjálfvirkt
open_in_web: Opna í vafra
over_character_limit: hámarksfjölda stafa (%{max}) náð
diff --git a/config/locales/it.yml b/config/locales/it.yml
index 2ccdc076c..4a9fe507a 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -92,6 +92,7 @@ it:
delete: Elimina
destroyed_msg: Nota di moderazione distrutta con successo!
accounts:
+ add_email_domain_block: Inserisci il dominio email nella blacklist
approve: Approva
approve_all: Approva tutto
are_you_sure: Sei sicuro?
@@ -172,6 +173,7 @@ it:
staff: Personale
user: Utente
search: Cerca
+ search_same_email_domain: Altri utenti con lo stesso dominio e-mail
search_same_ip: Altri utenti con lo stesso IP
shared_inbox_url: URL Inbox Condiviso
show:
@@ -193,6 +195,42 @@ it:
web: Web
whitelisted: Nella whitelist
action_logs:
+ action_types:
+ assigned_to_self_report: Assegna report
+ change_email_user: Cambia l'e-mail per l'utente
+ confirm_user: Conferma utente
+ create_account_warning: Crea avviso
+ create_announcement: Crea un annuncio
+ create_custom_emoji: Crea emoji personalizzata
+ create_domain_allow: Crea permesso di dominio
+ create_domain_block: Crea blocco di dominio
+ create_email_domain_block: Crea blocco dominio e-mail
+ demote_user: Degrada l'utente
+ destroy_announcement: Cancella annuncio
+ destroy_custom_emoji: Cancella emoji personalizzata
+ destroy_domain_allow: Cancella permesso di dominio
+ destroy_domain_block: Cancella blocco di dominio
+ destroy_email_domain_block: Cancella blocco dominio e-mail
+ destroy_status: Cancella stato
+ disable_2fa_user: Disabilita l'autenticazione a due fattori
+ disable_custom_emoji: Disabilita emoji personalizzata
+ disable_user: Disabilita utente
+ enable_custom_emoji: Abilita emoji personalizzata
+ enable_user: Abilita utente
+ memorialize_account: Trasforma in account commemorativo
+ promote_user: Promuovi utente
+ remove_avatar_user: Elimina avatar
+ reopen_report: Riapri report
+ reset_password_user: Reimposta password
+ resolve_report: Risolvi report
+ silence_account: Silenzia account
+ suspend_account: Sospendi account
+ unassigned_report: Disassegna report
+ unsilence_account: De-silenzia account
+ unsuspend_account: Annulla la sospensione dell'account
+ update_announcement: Aggiorna annuncio
+ update_custom_emoji: Aggiorna emoji personalizzata
+ update_status: Aggiorna stato
actions:
assigned_to_self_report: "%{name} ha assegnato il rapporto %{target} a se stesso"
change_email_user: "%{name} ha cambiato l'indirizzo email per l'utente %{target}"
@@ -230,6 +268,9 @@ it:
update_custom_emoji: "%{name} ha aggiornato l'emoji %{target}"
update_status: "%{name} stato aggiornato da %{target}"
deleted_status: "(stato cancellato)"
+ empty: Nessun log trovato.
+ filter_by_action: Filtra per azione
+ filter_by_user: Filtra per utente
title: Registro di controllo
announcements:
destroyed_msg: Annuncio eliminato!
@@ -244,7 +285,7 @@ it:
scheduled_for: Programmato per %{time}
scheduled_msg: Annuncio programmato per la pubblicazione!
title: Annunci
- unpublished_msg: Annuncio tolto dalla pubblicazione!
+ unpublished_msg: Annuncio ritirato!
updated_msg: Annuncio aggiornato!
custom_emojis:
assign_category: Assegna categoria
@@ -358,6 +399,7 @@ it:
destroyed_msg: Dominio email cancellato con successo dalla lista nera
domain: Dominio
empty: Nessun dominio di posta elettronica attualmente in blacklist.
+ from_html: da %{domain}
new:
create: Aggiungi dominio
title: Nuova voce della lista nera delle email
@@ -537,6 +579,9 @@ it:
trends:
desc_html: Visualizza pubblicamente gli hashtag precedentemente esaminati che sono attualmente in tendenza
title: Hashtag di tendenza
+ site_uploads:
+ delete: Cancella il file caricato
+ destroyed_msg: Caricamento sito eliminato!
statuses:
back_to_account: Torna alla pagina dell'account
batch:
@@ -573,7 +618,6 @@ it:
warning_presets:
add_new: Aggiungi nuovo
delete: Cancella
- edit: Modifica
edit_preset: Modifica avviso predefinito
title: Gestisci avvisi predefiniti
admin_mailer:
@@ -591,6 +635,7 @@ it:
add_new: Crea alias
created_msg: Hai creato un nuovo alias. Ora puoi iniziare lo spostamento dal vecchio account.
deleted_msg: L'alias è stato eliminato. Lo spostamento da quell'account a questo non sarà più possibile.
+ empty: Non hai alias.
hint_html: Se vuoi trasferirti da un altro account a questo, qui puoi creare un alias, che è necessario prima di poter spostare i seguaci dal vecchio account a questo. Questa azione è innocua e reversibile. La migrazione dell'account è avviata dal vecchio account.
remove: Scollega alias
appearance:
@@ -662,6 +707,7 @@ it:
trouble_logging_in: Problemi di accesso?
authorize_follow:
already_following: Stai già seguendo questo account
+ already_requested: Hai già mandato una richiesta di seguire questo account
error: Sfortunatamente c'è stato un errore nel consultare l'account remoto
follow: Segui
follow_request: 'Hai mandato una richiesta di diventare seguace a:'
@@ -805,6 +851,8 @@ it:
inactive: Inattiva
publicize_checkbox: 'E posta questo:'
publicize_toot: 'É provato! Io sono %{username} su %{service}: %{url}'
+ remove: Elimina prova dall'account
+ removed: Prova eliminata dall'account
status: Stato della verifica
view_proof: Vedi prova
imports:
@@ -850,6 +898,7 @@ it:
media_attachments:
validations:
images_and_video: Impossibile allegare video a un post che contiene già immagini
+ not_ready: Impossibile allegare file per cui l'elaborazione non è finita. Riprova tra poco!
too_many: Impossibile allegare più di 4 file
migrations:
acct: utente@dominio del nuovo account
@@ -1071,6 +1120,8 @@ it:
disallowed_hashtags:
one: 'contiene un hashtag non permesso: %{tags}'
other: 'contiene gli hashtags non permessi: %{tags}'
+ errors:
+ in_reply_not_found: Lo stato a cui stai tentando di rispondere non sembra esistere.
language_detection: Individua lingua automaticamente
open_in_web: Apri sul Web
over_character_limit: Limite caratteri superato di %{max}
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index 24a159e57..8a8baf764 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -88,6 +88,7 @@ ja:
delete: 削除
destroyed_msg: モデレーションメモを削除しました!
accounts:
+ add_email_domain_block: ドメインをブラックリストに追加
approve: 承認
approve_all: すべて承認
are_you_sure: 本当に実行しますか?
@@ -168,6 +169,7 @@ ja:
staff: スタッフ
user: ユーザー
search: 検索
+ search_same_email_domain: 同じドメインのメールアドレスを使用しているユーザー
search_same_ip: 同じ IP のユーザーを検索
shared_inbox_url: Shared inbox URL
show:
@@ -189,6 +191,42 @@ ja:
web: Web
whitelisted: ホワイトリストに登録済み
action_logs:
+ action_types:
+ assigned_to_self_report: 通報の担当者に設定
+ change_email_user: ユーザーのメールアドレスを変更
+ confirm_user: ユーザーの確認
+ create_account_warning: 警告を作成
+ create_announcement: お知らせを作成
+ create_custom_emoji: カスタム絵文字を作成
+ create_domain_allow: ドメインホワイトリストに追加
+ create_domain_block: ドメインブロックを作成
+ create_email_domain_block: メールドメインブロックを作成
+ demote_user: ユーザーを降格
+ destroy_announcement: お知らせを削除
+ destroy_custom_emoji: カスタム絵文字を削除
+ destroy_domain_allow: ドメインホワイトリストから削除
+ destroy_domain_block: ドメインブロックを削除
+ destroy_email_domain_block: メールドメインブロックを削除
+ destroy_status: トゥートを削除
+ disable_2fa_user: 二段階認証を無効にする
+ disable_custom_emoji: カスタム絵文字を無効化
+ disable_user: ユーザーを無効化
+ enable_custom_emoji: カスタム絵文字を有効化
+ enable_user: ユーザーを有効化
+ memorialize_account: 追悼アカウント
+ promote_user: ユーザーを昇格
+ remove_avatar_user: アイコンを削除
+ reopen_report: 通報を再度開く
+ reset_password_user: パスワードをリセット
+ resolve_report: 通報を解決済みにする
+ silence_account: アカウントをサイレンス
+ suspend_account: アカウントをサスペンド
+ unassigned_report: 通報の担当を解除
+ unsilence_account: アカウントのサイレンスを解除
+ unsuspend_account: アカウントのサスペンドを解除
+ update_announcement: お知らせを更新
+ update_custom_emoji: カスタム絵文字を更新
+ update_status: ステータスを更新
actions:
assigned_to_self_report: "%{name} さんが通報 %{target} を自身の担当に割り当てました"
change_email_user: "%{name} さんが %{target} さんのメールアドレスを変更しました"
@@ -226,6 +264,9 @@ ja:
update_custom_emoji: "%{name} さんがカスタム絵文字 %{target} を更新しました"
update_status: "%{name} さんが %{target} さんの投稿を更新しました"
deleted_status: "(削除済)"
+ empty: ログが見つかりませんでした
+ filter_by_action: アクションでフィルター
+ filter_by_user: ユーザーでフィルター
title: 操作履歴
announcements:
destroyed_msg: お知らせが削除されました
@@ -353,6 +394,7 @@ ja:
destroyed_msg: ブラックリストから外しました
domain: ドメイン
empty: メールブラックリストに登録されたドメインはありません
+ from_html: "%{domain} から"
new:
create: ドメインを追加
title: メールアドレス用ブラックリスト新規追加
@@ -529,6 +571,9 @@ ja:
trends:
desc_html: 現在トレンドになっている承認済みのハッシュタグを公開します
title: トレンドタグを有効にする
+ site_uploads:
+ delete: ファイルを削除
+ destroyed_msg: ファイルを削除しました!
statuses:
back_to_account: アカウントページに戻る
batch:
@@ -565,7 +610,6 @@ ja:
warning_presets:
add_new: 追加
delete: 削除
- edit: 編集
edit_preset: プリセット警告文を編集
title: プリセット警告文を管理
admin_mailer:
@@ -583,6 +627,7 @@ ja:
add_new: エイリアスを作成
created_msg: エイリアスを作成しました。これで以前のアカウントから引っ越しを開始できます。
deleted_msg: エイリアスを削除しました。指定されていたアカウントからは引っ越しできなくなります。
+ empty: エイリアスがありません。
hint_html: 他のアカウントからこのアカウントにフォロワーを引き継いで引っ越したい場合、ここでエイリアスを作成しておく必要があります。エイリアス自体は無害で、取り消すことができます。引っ越しは以前のアカウント側から開始する必要があります。
remove: エイリアスを削除
appearance:
@@ -653,6 +698,7 @@ ja:
trouble_logging_in: ログインできませんか?
authorize_follow:
already_following: あなたは既にこのアカウントをフォローしています
+ already_requested: 既にこのアカウントへフォローリクエストを送信しています
error: 残念ながら、リモートアカウント情報の取得中にエラーが発生しました
follow: フォロー
follow_request: 'あなたは以下のアカウントにフォローリクエストを送信しました:'
@@ -795,6 +841,8 @@ ja:
inactive: 非アクティブ
publicize_checkbox: 'そしてこれをトゥートします:'
publicize_toot: 'It is proven! I am %{username} on %{service}: %{url}'
+ remove: アカウントから証明書を削除
+ removed: アカウントから証明書を削除することに成功しました
status: 認証状態
view_proof: 証明を表示
imports:
@@ -839,6 +887,7 @@ ja:
media_attachments:
validations:
images_and_video: 既に画像が追加されているため、動画を追加することはできません
+ not_ready: ファイルのアップロードに失敗しました。しばらくしてからもう一度お試しください!
too_many: 追加できるファイルは4つまでです
migrations:
acct: 引っ越し先の ユーザー名@ドメイン
@@ -1055,6 +1104,8 @@ ja:
content_warning: '閲覧注意: %{warning}'
disallowed_hashtags:
other: '許可されていないハッシュタグが含まれています: %{tags}'
+ errors:
+ in_reply_not_found: あなたが返信しようとしているトゥートは存在しないようです。
language_detection: 自動検出
open_in_web: Webで開く
over_character_limit: 上限は %{max}文字までです
diff --git a/config/locales/kab.yml b/config/locales/kab.yml
index 03f4d8c13..92c14f68c 100644
--- a/config/locales/kab.yml
+++ b/config/locales/kab.yml
@@ -58,7 +58,7 @@ kab:
posts:
one: Tajewwiqt
other: Tijewwiqin
- posts_tab_heading: Tiberraḥin
+ posts_tab_heading: Tijewwiqin
posts_with_replies: Tijewwaqin akked tririyin
reserved_username: Isem-agi n umseqdac yettwaṭṭef yakan
roles:
@@ -107,6 +107,7 @@ kab:
location:
all: Akk
local: Adigan
+ remote: Ameccaq
title: Amḍiq
login_status: Addad n tuqqna
memorialize: Err amiḍan d asebter n usmekti
@@ -122,8 +123,8 @@ kab:
protocol: Aneggaf
public: Azayez
redownload: Smiren amaγnu
- reject: Ggami
- reject_all: Ggami-ten akk
+ reject: Aggi
+ reject_all: Aggi-ten akk
remove_avatar: Kkes tugna n wummuγ
resend_confirmation:
already_confirmed: Amseqdac-agi yettwasentem yakan
@@ -143,26 +144,26 @@ kab:
statuses: Tisuffγin
subscribe: Jerred
time_in_queue: Deg tebdert n uraju %{time}
- title: Imiḍan
+ title: Imiḍanen
unconfirmed_email: Imayl ur yettwasentem ara
undo_silenced: Kkes asgugem
unsubscribe: Ur ṭafar ara
username: Isem n useqdac
web: Web
- whitelisted: Deg tebdert tamellalt
+ whitelisted: Deg umuγ tamellalt
action_logs:
actions:
change_email_user: "%{name} ibeddel imayl n umseqdac %{target}"
confirm_user: "%{name} isentem tansa imayl n umseqdac %{target}"
create_account_warning: "%{name} yuzen alγu i %{target}"
create_custom_emoji: "%{name} yessuli-d imujiten imaynuten %{target}"
- create_domain_allow: "%{name} yerna taγult %{target} γer tebdart tamellalt"
+ create_domain_allow: "%{name} yerna taγult %{target} γer wumuγ amellal"
create_domain_block: "%{name} yesseḥbes taγult %{target}"
- create_email_domain_block: "%{name} yerna taγult n imayl %{target} γer tebdart taberkant"
+ create_email_domain_block: "%{name} yerna taγult n imayl %{target} γer wumuγ aberkan"
destroy_custom_emoji: "%{name} ihudd imuji %{target}"
- destroy_domain_allow: "%{name} yekkes taγult %{target} seg tebdart tamellalt"
+ destroy_domain_allow: "%{name} yekkes taγult %{target} seg wumuγ amellal"
destroy_domain_block: "%{name} yekkes aseḥbes n taγult %{target}"
- destroy_email_domain_block: "%{name} yerna taγult n imayl %{target} γer tebdart tamellalt"
+ destroy_email_domain_block: "%{name} yerna taγult n imayl %{target} γer wumuγ amellal"
destroy_status: "%{name} yekkes tasuffeγt n %{target}"
disable_custom_emoji: "%{name} yessens imuji %{target}"
disable_user: "%{name} yessens tuqqna i umseqdac %{target}"
@@ -178,6 +179,7 @@ kab:
edit:
title: Ẓreg ulγu
empty: Ulac kra n ulγuyen.
+ live: Srid
new:
create: Rnu-d ulγu
title: Ulγu amaynut
@@ -198,32 +200,35 @@ kab:
enabled: Yermed
enabled_msg: Imuji yermed mebla ugur
image_hint: PNG n ddaw n 50KT
- list: Tabdart
+ list: Umuγ
new:
title: Timerna n imuji udmawan amaynut
overwrite: Semselsi
title: Imujiten udmawanen
- unlist: Kkes si tabdert
- unlisted: Yettwakkes si tabdert
+ unlist: Kkes seg wumuγ
+ unlisted: Yettwakkes seg wumuγ
update_failed_msg: Ur izmir ara ad-issali umuji-a
upload: Sali
dashboard:
config: Tawila
+ feature_invites: Iseγwan n iɛaṛuḍen
feature_profile_directory: Akaram n imaγnuten
feature_registrations: Ajerred
+ feature_relay: Anmegli n tfidiṛalitt
features: Timahaltin
- open_reports: ad yeldi ineqqisen
+ open_reports: yeldin d ineqqisen
+ pending_users: imseqdacen ttrajun aɛiwed n tmuγli
recent_users: Iseqdacen n memli kan
software: Aseγẓan
title: Tafelwit
total_users: igellan akk d iseqdacen
- week_users_active: yermed deg yimalas-agi
+ week_users_active: urmiden deg yimalas-agi
week_users_new: imseqdacen deg yimalas-agi
domain_allows:
- add_new: Timerna n taγult γer tebdart tamellalt
- created_msg: Taγult-a tettwarna γer tebdart tamellalt mebla ugur
- destroyed_msg: Taγult-a tettwakkes seg tebdart tamellalt
- undo: Kkes seg tebdart tamellalt
+ add_new: Timerna n taγult γer wumuγ amellal
+ created_msg: Taγult-a tettwarna γer wumuγ amellal mebla ugur
+ destroyed_msg: Taγult-a tettwakkes seg umuγ amellal
+ undo: Kkes seg umuγ amellal
domain_blocks:
domain: Taγult
new:
@@ -242,13 +247,13 @@ kab:
domain: Taγult
new:
create: Rnu taγult
- title: Timerna n taγult tamaynut n imayl γer tebdart taberkant
- title: Tabdart taberkant n imayl
+ title: Timerna n taγult tamaynut n imayl γer wumuγ aberkan
+ title: Umuγ aberkan n imayl
instances:
by_domain: Taγult
delivery_available: Yella usiweḍ
known_accounts:
- one: "%{count} n umiḍan i yettwassen"
+ one: "%{count} n umiḍan i yettwasnen"
other: "%{count} n yimiḍanen i yettwassnen"
moderation:
all: Akk
@@ -265,13 +270,19 @@ kab:
expired: Ifat
title: Asizdeg
title: Iɛaruḍen
+ pending_accounts:
+ title: Imiḍanen yettrajun (%{count})
relays:
+ add_new: Rnu anmegli amaynut
delete: Kkes
disable: Gdel
+ disabled: Yettwassens
enable: Rmed
enabled: Yermed
+ inbox_url: URL n unmegli
save_and_enable: Sekles rnu rmed-it
status: Addad
+ title: Imnegliyen
reports:
account:
reports:
@@ -312,6 +323,8 @@ kab:
title: Aglam n uqeddac
site_title: Isem n uqeddac
title: Iγewwaṛen n usmel
+ site_uploads:
+ delete: Kkes afaylu yulin
statuses:
back_to_account: Tuγalin γer usebter n umiḍan
batch:
@@ -320,6 +333,7 @@ kab:
media:
title: Taγwalt
no_media: Mebla taγwalt
+ title: Tisuffiγin n umiḍan
with_media: S taγwalt
tags:
directory: Deg ukaram
@@ -327,10 +341,11 @@ kab:
last_active: Armud aneggaru
most_popular: Ittwasnen aṭas
most_recent: Melmi kan
+ name: Ahacṭag
+ title: Ihacṭagen
warning_presets:
add_new: Rnu amaynut
delete: Kkes
- edit: Ẓreg
admin_mailer:
new_report:
subject: Aneqqis amaynut i %{instance} (#%{id})
@@ -342,9 +357,13 @@ kab:
sensitive_content: Agbur amḥulfu
application_mailer:
salutation: "%{name},"
+ view: 'Ẓaṛ:'
view_profile: Sken-d amaγnu
+ view_status: Sken-d tasuffiγt
auth:
change_password: Awal uffir
+ checkbox_agreement_html: Qebleγ ilugan n uqeddac-a akked tiwtilin n useqdec
+ checkbox_agreement_without_rules_html: Qebleγ tiwtilin n useqdec
delete_account: Kkes amiḍan
description:
prefix_sign_up: Zeddi di Maṣṭudun assa!
@@ -359,7 +378,7 @@ kab:
register: Jerred
reset_password: Wennez awal uffir
security: Taγellist
- set_new_password: Egr-ed awal uffir amaynut
+ set_new_password: Egr-d awal uffir amaynut
status:
account_status: Addad n umiḍan
functional: Amiḍan-inek·m yettwaheyya.
@@ -369,7 +388,7 @@ kab:
follow: Ḍfeṛ
following: 'Igerrez! Aqlik teṭafareḍ tura:'
post_follow:
- return: Sken-ed amγnu n useqdac
+ return: Sken-d amγnu n useqdac
web: Ddu γer Web
title: Ḍfeṛ %{acct}
challenge:
@@ -381,18 +400,18 @@ kab:
default: "%d %b %Y"
datetime:
distance_in_words:
- about_x_hours: "%{count}a"
+ about_x_hours: "%{count}isr"
about_x_months: "%{count}ug"
- about_x_years: "%{count}i"
- almost_x_years: "%{count}i"
+ about_x_years: "%{count}isg"
+ almost_x_years: "%{count}isg"
half_a_minute: Tura kan
- less_than_x_minutes: "%{count}t"
+ less_than_x_minutes: "%{count}tis"
less_than_x_seconds: Tura kan
- over_x_years: "%{count}i"
+ over_x_years: "%{count}isg"
x_days: "%{count}wu"
- x_minutes: "%{count}t"
- x_months: "%{count}ug"
- x_seconds: "%{count}t"
+ x_minutes: "%{count}tis"
+ x_months: "%{count}agu"
+ x_seconds: "%{count}tas"
deletes:
proceed: Kkes amiḍan
directories:
@@ -405,8 +424,9 @@ kab:
'406': This page is not available in the requested format.
'410': The page you were looking for doesn't exist here anymore.
'422':
- '429': Throttled
- '500':
+ '429': Too many requests
+ '500':
+ title: Asebter-ayi d arameγtu
'503': The page could not be served due to a temporary server failure.
existing_username_validator:
not_found_multiple: ur yezmir ara ad yaf %{usernames}
@@ -415,7 +435,7 @@ kab:
date: Azemz
size: Teγzi
csv: CSV
- lists: Tibdarin
+ lists: Umuγen
mutes: Wid tesgugmeḍ
featured_tags:
add_new: Rnu amaynut
@@ -437,6 +457,7 @@ kab:
more: Ugar…
generic:
all: Akk
+ changes_saved_msg: Ttwaskelsen ibelliden-ik·im akken ilaq!
copy: Nγel
delete: Kkes
order_by: Sizwer s
@@ -452,7 +473,8 @@ kab:
modes:
overwrite: Semselsi
types:
- following: Tabdart n wid teṭafareḍ
+ following: Umuγ n wid teṭafareḍ
+ muting: Umuγ n wid tesgugmeḍ
upload: Sali
invites:
expires_in:
@@ -466,7 +488,8 @@ kab:
title: Ɛreḍ-d kra n yimdanen
migrations:
acct: Ibeddel γer
- incoming_migrations: Tusiḍ-ed seg umiḍan nniḍen
+ incoming_migrations: Tusiḍ-d seg umiḍan nniḍen
+ proceed_with_move: Awid imeḍfaṛen-ik
notification_mailer:
digest:
action: Wali akk tilγa
@@ -494,6 +517,12 @@ kab:
status: Addad n umiḍan
remote_follow:
no_account_html: Ur tesɛid ara amiḍan? Tzmreḍ ad jerdeḍ da
+ proceed: Kemmel taḍfart
+ remote_interaction:
+ favourite:
+ proceed: Kemmel asmenyef
+ reply:
+ proceed: Kemmel tiririt
sessions:
activity: Armud aneggaru
browser: Iminig
@@ -559,7 +588,7 @@ kab:
total_people:
one: "%{count} n wemdan"
other: "%{count} n yemdanen"
- show_more: Sken-ed ugar
+ show_more: Sken-d ugar
sign_in_to_participate: Qqen i waken ad tzeddiḍ deg udiwenni
title: '%{name}: "%{quote}"'
visibilities:
diff --git a/config/locales/kk.yml b/config/locales/kk.yml
index 416a5fc7d..bb7a57e87 100644
--- a/config/locales/kk.yml
+++ b/config/locales/kk.yml
@@ -555,7 +555,6 @@ kk:
warning_presets:
add_new: Add nеw
delete: Deletе
- edit: Еdit
edit_preset: Edit warning prеset
title: Manage warning presеts
admin_mailer:
diff --git a/config/locales/kn.yml b/config/locales/kn.yml
index d6c1d98eb..25bee609a 100644
--- a/config/locales/kn.yml
+++ b/config/locales/kn.yml
@@ -7,7 +7,7 @@ kn:
'406': This page is not available in the requested format.
'410': The page you were looking for doesn't exist here anymore.
'422':
- '429': Throttled
+ '429': Too many requests
'500':
'503': The page could not be served due to a temporary server failure.
invites:
diff --git a/config/locales/ko.yml b/config/locales/ko.yml
index e70fbef21..e1f543fe0 100644
--- a/config/locales/ko.yml
+++ b/config/locales/ko.yml
@@ -88,6 +88,7 @@ ko:
delete: 삭제
destroyed_msg: 중재 기록이 성공적으로 삭제되었습니다!
accounts:
+ add_email_domain_block: 이 이메일 도메인을 차단하기
approve: 승인
approve_all: 모두 승인
are_you_sure: 정말로 실행하시겠습니까?
@@ -168,6 +169,7 @@ ko:
staff: 스태프
user: 사용자
search: 검색
+ search_same_email_domain: 같은 이메일 도메인을 가진 다른 사용자들
search_same_ip: 같은 IP의 다른 사용자들
shared_inbox_url: 공유된 inbox URL
show:
@@ -189,6 +191,42 @@ ko:
web: 웹
whitelisted: 허용 목록
action_logs:
+ action_types:
+ assigned_to_self_report: 신고 맡기
+ change_email_user: 사용자의 이메일 변경
+ confirm_user: 사용자 확인
+ create_account_warning: 경고 생성
+ create_announcement: 공지사항 생성
+ create_custom_emoji: 커스텀 에모지 생성
+ create_domain_allow: 도메인 허용 생성
+ create_domain_block: 도메인 차단 추가
+ create_email_domain_block: 이메일 도메인 차단 생성
+ demote_user: 사용자 강등
+ destroy_announcement: 공지사항 삭제
+ destroy_custom_emoji: 커스텀 에모지 삭제
+ destroy_domain_allow: 도메인 허용 삭제
+ destroy_domain_block: 도메인 차단 삭제
+ destroy_email_domain_block: 이메일 도메인 차단 삭제
+ destroy_status: 게시물 삭제
+ disable_2fa_user: 2단계 인증 비활성화
+ disable_custom_emoji: 커스텀 에모지 비활성화
+ disable_user: 사용자 비활성화
+ enable_custom_emoji: 커스텀 에모지 활성화
+ enable_user: 사용자 활성화
+ memorialize_account: 계정을 장기 저장
+ promote_user: 사용자 승급
+ remove_avatar_user: 아바타 지우기
+ reopen_report: 신고 다시 열기
+ reset_password_user: 암호 재설정
+ resolve_report: 신고 처리
+ silence_account: 계정 침묵
+ suspend_account: 계정 정지
+ unassigned_report: 신고 맡기 취소
+ unsilence_account: 계정 침묵 취소
+ unsuspend_account: 계정 정지 취소
+ update_announcement: 공지사항 업데이트
+ update_custom_emoji: 커스텀 에모지 업데이트
+ update_status: 게시물 게시
actions:
assigned_to_self_report: "%{name}이 리포트 %{target}을 자신에게 할당했습니다"
change_email_user: "%{name}이 %{target}의 이메일 주소를 변경했습니다"
@@ -226,6 +264,9 @@ ko:
update_custom_emoji: "%{name}이 에모지 %{target}를 업데이트 했습니다"
update_status: "%{name}이 %{target}의 상태를 업데이트 했습니다"
deleted_status: "(삭제됨)"
+ empty: 로그를 찾을 수 없습니다
+ filter_by_action: 행동으로 거르기
+ filter_by_user: 유저로 거르기
title: 감사 기록
announcements:
destroyed_msg: 공지가 성공적으로 삭제되었습니다!
@@ -355,6 +396,7 @@ ko:
destroyed_msg: 이메일 도메인 차단 규칙을 삭제했습니다
domain: 도메인
empty: 현재 블랙리스트에 등록한 이메일 도메인이 없습니다
+ from_html: "%{domain}에서"
new:
create: 차단 규칙 생성
title: 새 이메일 도메인 차단
@@ -531,6 +573,9 @@ ko:
trends:
desc_html: 리뷰를 거친 해시태그를 유행하는 해시태그에 공개적으로 보여줍니다
title: 유행하는 해시태그
+ site_uploads:
+ delete: 업로드한 파일 삭제
+ destroyed_msg: 사이트 업로드를 성공적으로 삭제했습니다!
statuses:
back_to_account: 계정으로 돌아가기
batch:
@@ -567,7 +612,6 @@ ko:
warning_presets:
add_new: 새로 추가
delete: 삭제
- edit: 편집
edit_preset: 경고 틀 수정
title: 경고 틀 관리
admin_mailer:
@@ -585,6 +629,7 @@ ko:
add_new: 별칭 만들기
created_msg: 새 별칭이 성공적으로 만들어졌습니다. 이제 기존 계정에서 이주를 시작할 수 있습니다.
deleted_msg: 성공적으로 별칭을 삭제했습니다. 해당 계정에서 이 계정으로의 이주는 더이상 가능하지 않습니다.
+ empty: 별칭이 없습니다.
hint_html: 다른 계정에서 이 계정으로 옮기길 원하는 경우, 여기에서 별칭을 만들 수 있습니다, 기존 계정의 팔로워를 이쪽으로 옮기고 싶은 경우 필요한 과정입니다. 이 행동 자체는 해롭지 않고 되돌리기가 가능합니다.계정 이주는 이전 계정에서 착수하게 됩니다
remove: 별칭 연결 끊기
appearance:
@@ -655,6 +700,7 @@ ko:
trouble_logging_in: 로그인 하는데 문제가 있나요?
authorize_follow:
already_following: 이미 이 계정을 팔로우 하고 있습니다
+ already_requested: 이미 이 계정에게 팔로우 요청을 보냈습니다
error: 리모트 계정을 확인하는 도중 오류가 발생했습니다
follow: 팔로우
follow_request: '당신은 다음 계정에 팔로우 신청을 했습니다:'
@@ -797,6 +843,8 @@ ko:
inactive: 비활성
publicize_checkbox: '그리고 이것을 툿 하세요:'
publicize_toot: '증명되었습니다! 저는 %{service}에 있는 %{username}입니다: %{url}'
+ remove: 계정증명을 삭제
+ removed: 성공적으로 계정증명을 삭제했습니다
status: 인증 상태
view_proof: 증명 보기
imports:
@@ -841,6 +889,7 @@ ko:
media_attachments:
validations:
images_and_video: 이미 사진이 첨부 된 게시물엔 동영상을 첨부 할 수 없습니다
+ not_ready: 처리가 끝나지 않은 파일은 첨부할 수 없습니다. 잠시 후에 다시 시도해 주세요!
too_many: 최대 4개까지 첨부할 수 있습니다
migrations:
acct: 새 계정의 username@domain
@@ -1057,6 +1106,8 @@ ko:
content_warning: '열람 주의: %{warning}'
disallowed_hashtags:
other: '허용되지 않은 해시태그를 포함하고 있습니다: %{tags}'
+ errors:
+ in_reply_not_found: 답장하려는 게시물이 존재하지 않습니다.
language_detection: 자동으로 언어 감지
open_in_web: Web으로 열기
over_character_limit: 최대 %{max}자까지 입력할 수 있습니다
diff --git a/config/locales/lt.yml b/config/locales/lt.yml
index 9af094c01..5a4542ea8 100644
--- a/config/locales/lt.yml
+++ b/config/locales/lt.yml
@@ -410,7 +410,6 @@ lt:
warning_presets:
add_new: Pridėti naują
delete: Ištrinti
- edit: Keisti
edit_preset: Keisti įspėjimo nustatymus
title: Valdyti įspėjimo nustatymus
admin_mailer:
diff --git a/config/locales/lv.yml b/config/locales/lv.yml
index f6625dd41..5c493be56 100644
--- a/config/locales/lv.yml
+++ b/config/locales/lv.yml
@@ -7,7 +7,7 @@ lv:
'406': This page is not available in the requested format.
'410': The page you were looking for doesn't exist here anymore.
'422':
- '429': Throttled
+ '429': Too many requests
'500':
'503': The page could not be served due to a temporary server failure.
invites:
diff --git a/config/locales/mk.yml b/config/locales/mk.yml
index acb18fb5a..c2cafa5a7 100644
--- a/config/locales/mk.yml
+++ b/config/locales/mk.yml
@@ -7,7 +7,7 @@ mk:
'406': This page is not available in the requested format.
'410': The page you were looking for doesn't exist here anymore.
'422':
- '429': Throttled
+ '429': Too many requests
'500':
'503': The page could not be served due to a temporary server failure.
invites:
diff --git a/config/locales/ml.yml b/config/locales/ml.yml
index 960ab95cc..f2731cf04 100644
--- a/config/locales/ml.yml
+++ b/config/locales/ml.yml
@@ -51,7 +51,7 @@ ml:
'406': This page is not available in the requested format.
'410': The page you were looking for doesn't exist here anymore.
'422':
- '429': Throttled
+ '429': Too many requests
'500':
'503': The page could not be served due to a temporary server failure.
invites:
diff --git a/config/locales/mr.yml b/config/locales/mr.yml
index 3f83ed785..72228df52 100644
--- a/config/locales/mr.yml
+++ b/config/locales/mr.yml
@@ -7,7 +7,7 @@ mr:
'406': This page is not available in the requested format.
'410': The page you were looking for doesn't exist here anymore.
'422':
- '429': Throttled
+ '429': Too many requests
'500':
'503': The page could not be served due to a temporary server failure.
invites:
diff --git a/config/locales/ms.yml b/config/locales/ms.yml
index 71dc72d9d..3ab481846 100644
--- a/config/locales/ms.yml
+++ b/config/locales/ms.yml
@@ -291,7 +291,7 @@ ms:
'406': This page is not available in the requested format.
'410': The page you were looking for doesn't exist here anymore.
'422':
- '429': Throttled
+ '429': Too many requests
'500':
'503': The page could not be served due to a temporary server failure.
exports:
diff --git a/config/locales/nl.yml b/config/locales/nl.yml
index 976072368..7ab26c4ba 100644
--- a/config/locales/nl.yml
+++ b/config/locales/nl.yml
@@ -537,6 +537,9 @@ nl:
trends:
desc_html: Eerder beoordeelde hashtags die op dit moment trending zijn openbaar tonen
title: Trending hashtags
+ site_uploads:
+ delete: Geüpload bestand verwijderen
+ destroyed_msg: Verwijderen website-upload geslaagd!
statuses:
back_to_account: Terug naar accountpagina
batch:
@@ -573,7 +576,6 @@ nl:
warning_presets:
add_new: Nieuwe toevoegen
delete: Verwijderen
- edit: Bewerken
edit_preset: Voorinstelling van waarschuwing bewerken
title: Voorinstellingen van waarschuwingen beheren
admin_mailer:
@@ -661,6 +663,7 @@ nl:
trouble_logging_in: Problemen met inloggen?
authorize_follow:
already_following: Je volgt dit account al
+ already_requested: Je hebt al een volgverzoek naar dat account verstuurd
error: Helaas, er is een fout opgetreden bij het opzoeken van de externe account
follow: Volgen
follow_request: 'Jij hebt een volgverzoek ingediend bij:'
diff --git a/config/locales/nn.yml b/config/locales/nn.yml
index fd61f2156..d47956c72 100644
--- a/config/locales/nn.yml
+++ b/config/locales/nn.yml
@@ -21,9 +21,7 @@ nn:
federation_hint_html: Med ein konto på %{instance} kan du fylgja folk på kva som helst slags Mastod-tenar og meir.
get_apps: Prøv ein mobilapp
hosted_on: "%{domain} er vert for Mastodon"
- instance_actor_flash: 'Denne brukeren er en virtuell aktør brukt til å representere selve serveren og ingen individuell bruker. Det brukes til foreningsformål og bør ikke blokkeres med mindre du vil blokkere hele instansen, hvor domeneblokkering bør brukes i stedet.
-
-'
+ instance_actor_flash: "Denne brukeren er en virtuell aktør brukt til å representere selve serveren og ingen individuell bruker. Det brukes til foreningsformål og bør ikke blokkeres med mindre du vil blokkere hele instansen, hvor domeneblokkering bør brukes i stedet. \n"
learn_more: Lær meir
privacy_policy: Personvernsreglar
see_whats_happening: Sjå kva som skjer
@@ -92,6 +90,7 @@ nn:
delete: Slett
destroyed_msg: Moderatormerknad er utsletta!
accounts:
+ add_email_domain_block: Svartelist E-postdomenet
approve: Godtak
approve_all: Godtak alle
are_you_sure: Er du sikker?
@@ -172,6 +171,7 @@ nn:
staff: Personell
user: Brukar
search: Søk
+ search_same_email_domain: Andre brukere med samme E-postdomene
search_same_ip: Andre brukarar med same IP
shared_inbox_url: Delt Innboks URL
show:
@@ -193,6 +193,24 @@ nn:
web: Nett
whitelisted: Kvitlista
action_logs:
+ action_types:
+ change_email_user: Endre brukerens E-postadresse
+ confirm_user: Bekreft brukeren
+ create_account_warning: Opprett en advarsel
+ create_announcement: Opprett en kunngjøring
+ create_custom_emoji: Opprett en tilpasset emoji
+ destroy_announcement: Slett kunngjøringen
+ destroy_custom_emoji: Slett den tilpassede emojien
+ destroy_status: Slett statusen
+ disable_2fa_user: Skru av 2-trinnsinnlogging
+ disable_user: Deaktiver bruker
+ enable_user: Aktiver bruker
+ reopen_report: Gjenåpne rapporten
+ reset_password_user: Tilbakestill passord
+ suspend_account: Suspender kontoen
+ unsuspend_account: Opphev suspensjonen av kontoen
+ update_announcement: Oppdater kunngjøringen
+ update_status: Oppdater statusen
actions:
assigned_to_self_report: "%{name} tilegnet rapport %{target} til seg selv"
change_email_user: "%{name} endra e-postadressa til brukaren %{target}"
@@ -230,6 +248,9 @@ nn:
update_custom_emoji: "%{name} oppdaterte kjensleteiknet %{target}"
update_status: "%{name} oppdaterte status for %{target}"
deleted_status: "(sletta status)"
+ empty: Ingen loggføringer ble funnet.
+ filter_by_action: Sorter etter handling
+ filter_by_user: Sorter etter bruker
title: Revisionslogg
announcements:
destroyed_msg: Kunngjøringen er slettet!
@@ -358,6 +379,7 @@ nn:
destroyed_msg: E-postdomenet har blitt fjernet fra blokkeringslisten uten problemer
domain: Domene
empty: Ingen e-mail-domener er sortelistet på dette tidspunkt.
+ from_html: fra %{domain}
new:
create: Legg til domene
title: Ny blokkeringsoppføring av e-postdomene
@@ -530,6 +552,8 @@ nn:
title: Tillat emneknaggar å verta populære utan gjennomgang på førehand
trends:
title: Populære emneknaggar
+ site_uploads:
+ delete: Slett den opplastede filen
statuses:
back_to_account: Tilbake til kontosida
batch:
@@ -566,7 +590,6 @@ nn:
warning_presets:
add_new: Legg til ny
delete: Slett
- edit: Rediger
edit_preset: Endr åtvaringsoppsett
title: Handsam åtvaringsoppsett
admin_mailer:
@@ -584,6 +607,7 @@ nn:
add_new: Lag psevdonym
created_msg: Laga eit nytt kallenamn. No kan du setja i gang med flyttinga frå den gamle kontoen.
deleted_msg: Fjerna kallenamnet. No vert det ikkje lenger mogeleg å flytta frå den andre kontoen til denne.
+ empty: Du har ingen aliaser.
hint_html: Dersom du vil flytte fra en annen konto til den, kan du lage et alias her, som er påkrevd før du kan gå videre med å flytte følgere fra den gamle kontoen til den nye. Handlingen i seg selv er harmløs og reversibel. Kontoflyttingen har blitt satt i gang fra den gamle kontoen.
remove: Fjern aliaslenking
appearance:
@@ -841,6 +865,7 @@ nn:
already_moved: er den same kontoen som du allereie har flytta til
move_to_self: kan ikkje vera denne kontoen
not_found: fann ikkje
+ on_cooldown: Du er i en nedkjølingsperiode
followers_count: Fylgjarar då kontoen vart flytta
incoming_migrations: Flyttar frå ein annan konto
incoming_migrations_html: For å flytta frå ein annnan konto til denne må du fyrst laga eit kallenamn til kontoen.
@@ -924,6 +949,7 @@ nn:
reactions:
errors:
limit_reached: Grensen for forskjellige reaksjoner nådd
+ unrecognized_emoji: er ikke en gjenkjent emoji
relationships:
activity: Kontoaktivitet
dormant: I dvale
@@ -1019,6 +1045,8 @@ nn:
profile: Profil
relationships: Fylgjar og fylgjarar
two_factor_authentication: Tostegsautorisering
+ spam_check:
+ spam_detected: Dette er en automatisert rapport. Spam har blitt oppdaget.
statuses:
attached:
description: 'Vedlagt: %{attached}'
@@ -1050,6 +1078,7 @@ nn:
other: "%{count} røyster"
vote: Røyst
show_more: Vis meir
+ show_thread: Vis tråden
sign_in_to_participate: Logg inn for å verta med i samtalen
title: "%{name}: «%{quote}»"
visibilities:
diff --git a/config/locales/no.yml b/config/locales/no.yml
index 256ed99a3..24dc22284 100644
--- a/config/locales/no.yml
+++ b/config/locales/no.yml
@@ -92,6 +92,7 @@
delete: Slett
destroyed_msg: Moderasjonsnotat slettet uten problem!
accounts:
+ add_email_domain_block: Svartelist E-postdomenet
approve: Godkjenn
approve_all: Godkjenn alle
are_you_sure: Er du sikker?
@@ -172,6 +173,7 @@
staff: Personale
user: Bruker
search: Søk
+ search_same_email_domain: Andre brukere med samme E-postdomene
search_same_ip: Andre brukere med den samme IP-en
shared_inbox_url: Delt Innboks URL
show:
@@ -193,6 +195,24 @@
web: Nett
whitelisted: Hvitelistet
action_logs:
+ action_types:
+ change_email_user: Endre brukerens E-postadresse
+ confirm_user: Bekreft brukeren
+ create_account_warning: Opprett en advarsel
+ create_announcement: Opprett en kunngjøring
+ create_custom_emoji: Opprett en tilpasset emoji
+ destroy_announcement: Slett kunngjøringen
+ destroy_custom_emoji: Slett den tilpassede emojien
+ destroy_status: Slett statusen
+ disable_2fa_user: Skru av 2-trinnsinnlogging
+ disable_user: Deaktiver bruker
+ enable_user: Aktiver bruker
+ reopen_report: Gjenåpne rapporten
+ reset_password_user: Tilbakestill passord
+ suspend_account: Suspender kontoen
+ unsuspend_account: Opphev suspensjonen av kontoen
+ update_announcement: Oppdater kunngjøringen
+ update_status: Oppdater statusen
actions:
assigned_to_self_report: "%{name} tilegnet rapport %{target} til seg selv"
change_email_user: "%{name} forandret e-postadressen for bruker %{target}"
@@ -230,6 +250,9 @@
update_custom_emoji: "%{name} oppdaterte emoji %{target}"
update_status: "%{name} oppdaterte status for %{target}"
deleted_status: "(statusen er slettet)"
+ empty: Ingen loggføringer ble funnet.
+ filter_by_action: Sorter etter handling
+ filter_by_user: Sorter etter bruker
title: Revisionslogg
announcements:
destroyed_msg: Kunngjøringen er slettet!
@@ -358,6 +381,7 @@
destroyed_msg: E-postdomenet har blitt fjernet fra blokkeringslisten uten problemer
domain: Domene
empty: Ingen e-mail-domener er sortelistet på dette tidspunkt.
+ from_html: fra %{domain}
new:
create: Legg til domene
title: Ny blokkeringsoppføring av e-postdomene
@@ -527,6 +551,8 @@
title: Nettstedsinnstillinger
trends:
title: Trendende emneknagger
+ site_uploads:
+ delete: Slett den opplastede filen
statuses:
back_to_account: Tilbake til kontosiden
batch:
@@ -561,7 +587,6 @@
warning_presets:
add_new: Legg til ny
delete: Slett
- edit: Rediger
admin_mailer:
new_pending_account:
body: Detaljer om den nye kontoen er nedenfor. Du kan godkjenne eller avvise denne søknaden.
@@ -574,6 +599,7 @@
body: 'Emneknaggen #%{name} trender i dag, men den har ikke blitt gjennomgått tidligere. Den vil ikke bli vist offentlig med mindre du tillater at den blir det, eller du kan bare lagre skjemaet slik det er for å aldri høre om det igjen.'
aliases:
add_new: Lag et alias
+ empty: Du har ingen aliaser.
hint_html: Dersom du vil flytte fra en annen konto til den, kan du lage et alias her, som er påkrevd før du kan gå videre med å flytte følgere fra den gamle kontoen til den nye. Handlingen i seg selv er harmløs og reversibel. Kontoflyttingen har blitt satt i gang fra den gamle kontoen.
remove: Fjern aliaslenking
appearance:
@@ -829,6 +855,8 @@
already_moved: er den samme kontoen du allerede har flyttet til
move_to_self: kan ikke være den nåværende kontoen
not_found: ble ikke funnet
+ on_cooldown: Du er i en nedkjølingsperiode
+ followers_count: Følgere på flyttetidspunktet
incoming_migrations: Flytte fra en annen konto
incoming_migrations_html: For å flytte fra en annen konto til denne, må du først sette opp et kontoalias.
past_migrations: Tidligere migreringer
@@ -896,6 +924,7 @@
polls:
errors:
already_voted: Du har allerede stemt i denne avstemningen
+ duplicate_options: inneholder duplikatgjenstander
duration_too_long: er for langt frem i tid
duration_too_short: er for snart
expired: Denne avstemningen er allerede ferdig
@@ -910,6 +939,7 @@
reactions:
errors:
limit_reached: Grensen for forskjellige reaksjoner nådd
+ unrecognized_emoji: er ikke en gjenkjent emoji
relationships:
activity: Kontoaktivitet
dormant: Dormende
@@ -1005,6 +1035,8 @@
profile: Profil
relationships: Følginger og følgere
two_factor_authentication: Tofaktorautentisering
+ spam_check:
+ spam_detected: Dette er en automatisert rapport. Spam har blitt oppdaget.
statuses:
attached:
description: 'Vedlagt: %{attached}'
@@ -1032,6 +1064,7 @@
other: "%{count} stemmer"
vote: Stem
show_more: Vis mer
+ show_thread: Vis tråden
sign_in_to_participate: Logg på for å delta i samtalen
title: "%{name}: «%{quote}»"
visibilities:
diff --git a/config/locales/oc.yml b/config/locales/oc.yml
index 4a60227ab..0be4f6458 100644
--- a/config/locales/oc.yml
+++ b/config/locales/oc.yml
@@ -186,6 +186,33 @@ oc:
web: Web
whitelisted: Mes en lista blanca
action_logs:
+ action_types:
+ assigned_to_self_report: Assignar lo rapòrt
+ change_email_user: Cambiar l’adreça de l’utilizaire
+ confirm_user: Confirmar l’utilizaire
+ create_account_warning: Crear un avertiment
+ create_announcement: Crear una anóncia
+ create_custom_emoji: Crear un emoji personalizat
+ demote_user: Retrogradar l’utilizaire
+ destroy_announcement: Suprimir l’anóncia
+ destroy_custom_emoji: Suprimir l’emoji personalizat
+ destroy_domain_block: Suprimir lo blocatge de domeni
+ destroy_status: Suprimir l’estatut
+ disable_2fa_user: Desactivar 2FA
+ disable_custom_emoji: Desactivar l’emoji personalizat
+ disable_user: Desactivar l’utilizaire
+ enable_custom_emoji: Activar l’emoji personalizat
+ enable_user: Activar l’utilizaire
+ promote_user: Promòure l’utilizaire
+ remove_avatar_user: Suprimir l’avatar
+ reopen_report: Tornar dobrir lo rapòrt
+ reset_password_user: Reïnicializar lo senhal
+ resolve_report: Resòlver lo rapòrt
+ suspend_account: Suspendre lo compte
+ unassigned_report: Desafectar lo rapòrt
+ update_announcement: Actualizar l’anóncia
+ update_custom_emoji: Actualizar l’emoji personalizat
+ update_status: Actualizar l’estatut
actions:
assigned_to_self_report: "%{name} s’assignèt lo rapòrt %{target}"
change_email_user: "%{name} cambièt l’adreça de corrièl de %{target}"
@@ -223,6 +250,9 @@ oc:
update_custom_emoji: "%{name} metèt a jorn l’emoji %{target}"
update_status: "%{name} metèt a jorn l’estatut a %{target}"
deleted_status: "(estatut suprimit)"
+ empty: Cap de jornal pas trobat.
+ filter_by_action: Filtrar per accion
+ filter_by_user: Filtrar per utilizaire
title: Audit dels jornals
announcements:
destroyed_msg: Anóncia corrèctament tirada !
@@ -558,7 +588,6 @@ oc:
warning_presets:
add_new: N’ajustar un nòu
delete: Escafar
- edit: Modificar
edit_preset: Modificar lo tèxt predefinit d’avertiment
title: Gerir los tèxtes predefinits
admin_mailer:
diff --git a/config/locales/pl.yml b/config/locales/pl.yml
index 28a486145..e17986772 100644
--- a/config/locales/pl.yml
+++ b/config/locales/pl.yml
@@ -100,6 +100,7 @@ pl:
delete: Usuń
destroyed_msg: Pomyślnie usunięto notatkę moderacyjną!
accounts:
+ add_email_domain_block: Dodaj domenę e-mail na czarną listę
approve: Przyjmij
approve_all: Zatwierdź wszystkie
are_you_sure: Jesteś tego pewien?
@@ -180,6 +181,7 @@ pl:
staff: Ekipa
user: Użytkownik
search: Szukaj
+ search_same_email_domain: Inni użytkownicy z e-mail w tej domenie
search_same_ip: Inni użytkownicy z tym samym IP
shared_inbox_url: Adres udostępnianej skrzynki
show:
@@ -201,6 +203,42 @@ pl:
web: Sieć
whitelisted: Na białej liście
action_logs:
+ action_types:
+ assigned_to_self_report: Przypisz zgłoszenie
+ change_email_user: Zmień adres e-mail użytkownika
+ confirm_user: Potwierdź użytkownika
+ create_account_warning: Utwórz ostrzeżenie
+ create_announcement: Utwórz ogłoszenie
+ create_custom_emoji: Utwórz niestandardowe emoji
+ create_domain_allow: Utwórz zezwolenie dla domeny
+ create_domain_block: Utwórz blokadę domeny
+ create_email_domain_block: Utwórz blokadę domeny e-mail
+ demote_user: Zdegraduj użytkownika
+ destroy_announcement: Usuń ogłoszenie
+ destroy_custom_emoji: Usuń niestandardowe emoji
+ destroy_domain_allow: Usuń zezwolenie dla domeny
+ destroy_domain_block: Usuń blokadę domeny
+ destroy_email_domain_block: Usuń blokadę domeny e-mail
+ destroy_status: Usuń wpis
+ disable_2fa_user: Wyłącz 2FA
+ disable_custom_emoji: Wyłącz niestandardowe emoji
+ disable_user: Wyłącz użytkownika
+ enable_custom_emoji: Włącz niestandardowe emoji
+ enable_user: Włącz użytkownika
+ memorialize_account: Upamiętnij konto
+ promote_user: Podnieś uprawnienia
+ remove_avatar_user: Usuń awatar
+ reopen_report: Otwórz zgłoszenie ponownie
+ reset_password_user: Resetuj hasło
+ resolve_report: Rozwiąż zgłoszenie
+ silence_account: Wycisz konto
+ suspend_account: Zawieś konto
+ unassigned_report: Cofnij przypisanie zgłoszenia
+ unsilence_account: Cofnij wyciszenie konta
+ unsuspend_account: Cofnij zawieszenie konta
+ update_announcement: Aktualizuj ogłoszenie
+ update_custom_emoji: Aktualizuj niestandardowe emoji
+ update_status: Aktualizuj wpis
actions:
assigned_to_self_report: "%{name} przypisał(a) sobie zgłoszenie %{target}"
change_email_user: "%{name} zmienił(a) adres e-mail użytkownika %{target}"
@@ -238,6 +276,9 @@ pl:
update_custom_emoji: "%{name} zaktualizował(a) emoji %{target}"
update_status: "%{name} zaktualizował(a) wpis użytkownika %{target}"
deleted_status: "(usunięty wpis)"
+ empty: Nie znaleziono aktywności w dzienniku.
+ filter_by_action: Filtruj według działania
+ filter_by_user: Filtruj według użytkownika
title: Dziennik działań administracyjnych
announcements:
destroyed_msg: Pomyślnie usunięto ogłoszenie!
@@ -368,6 +409,7 @@ pl:
destroyed_msg: Pomyślnie usunięto blokadę domeny e-mail
domain: Domena
empty: Żadna domena e-mail nie znajduje się obecnie na czarnej liście.
+ from_html: z %{domain}
new:
create: Utwórz blokadę
title: Nowa blokada domeny e-mail
@@ -424,6 +466,17 @@ pl:
created_msg: Pomyslnie utworzono notatkę moderacyjną.
destroyed_msg: Pomyślnie usunięto notatkę moderacyjną.
reports:
+ account:
+ notes:
+ few: "%{count} notatki"
+ many: "%{count} notatek"
+ one: "%{count} notatka"
+ other: "%{count} notatki"
+ reports:
+ few: "%{count} zgłoszenia"
+ many: "%{count} zgłoszeń"
+ one: "%{count} zgłoszenie"
+ other: "%{count} zgłoszenia"
action_taken_by: Działanie podjęte przez
are_you_sure: Czy na pewno?
assign_to_self: Przypisz do siebie
@@ -464,6 +517,18 @@ pl:
custom_css:
desc_html: Modyfikuj wygląd pliku CSS ładowanego na każdej stronie
title: Niestandardowy CSS
+ default_noindex:
+ desc_html: Wpływa na wszystkich użytkowników, którzy nie zmienili tego ustawienia
+ title: Domyślnie żądaj nieindeksowania użytkowników w wyszukiwarkach
+ domain_blocks:
+ all: Każdemu
+ disabled: Nikomu
+ title: Pokazuj zablokowane domeny
+ users: Zalogowanym lokalnym użytkownikom
+ domain_blocks_rationale:
+ title: Pokaż uzasadnienia
+ enable_bootstrap_timeline_accounts:
+ title: Dodawaj domyślne obserwacje nowym użytkownikom
hero:
desc_html: Wyświetlany na stronie głównej. Zalecany jest rozmiar przynajmniej 600x100 pikseli. Jeżeli nie ustawiony, zostanie użyta miniatura serwera
title: Obraz bohatera
@@ -514,6 +579,9 @@ pl:
desc_html: Miejsce na własną politykę prywatności, zasady użytkowania i inne unormowania prawne. Możesz korzystać ze znaczników HTML
title: Niestandardowe zasady użytkowania
site_title: Nazwa serwera
+ spam_check_enabled:
+ desc_html: Mastodon może automatycznie zgłaszać konta, które wysyłają powtarzające się niechciane wiadomości. Część zgłoszeń może być nieprawidłowa.
+ title: Automatyzacja antyspamu
thumbnail:
desc_html: 'Używana w podglądzie przez OpenGraph i API. Zalecany rozmiar: 1200x630 pikseli'
title: Miniatura serwera
@@ -521,12 +589,22 @@ pl:
desc_html: Wyświetlaj publiczną oś czasu na stronie widocznej dla niezalogowanych
title: Podgląd osi czasu
title: Ustawienia strony
+ trendable_by_default:
+ desc_html: Wpływa na hashtagi, które nie były wcześniej niedozwolone
+ title: Hashtagi mogą pojawiać się w trendach bez wcześniejszego zatwierdzenia
+ trends:
+ desc_html: Wyświetlaj publicznie wcześniej sprawdzone hashtagi, które są obecnie na czasie
+ title: Popularne hashtagi
+ site_uploads:
+ delete: Usuń przesłany plik
+ destroyed_msg: Pomyślnie usunięto przesłany plik!
statuses:
back_to_account: Wróć na konto
batch:
delete: Usuń
nsfw_off: Cofnij NSFW
nsfw_on: Oznacz jako NSFW
+ deleted: Usunięto
failed_to_execute: Nie udało się wykonać
media:
title: Multimedia
@@ -535,13 +613,27 @@ pl:
title: Wpisy konta
with_media: Z zawartością multimedialną
tags:
+ accounts_today: Unikalne wykorzystania dzisiaj
+ accounts_week: Unikalne wykorzystania w tym tygodniu
+ breakdown: Podział dzisiejszego wykorzystania według źródła
+ context: Kontekst
+ directory: W katalogu
+ in_directory: "%{count} w katalogu"
+ last_active: Ostatnia aktywność
+ most_popular: Najpopularniejsze
+ most_recent: Ostatnie
name: Hasztag
+ review: Stan przeglądu
+ reviewed: Przejrzany
title: Hashtagi
+ trending_right_now: Obecnie na czasie
+ unique_uses_today: "%{count} opublikowanych dzisiaj"
+ unreviewed: Nie przejrzano
+ updated_msg: Pomyślnie uaktualniono ustawienia hashtagów
title: Administracja
warning_presets:
add_new: Dodaj nowy
delete: Usuń
- edit: Edytuj
edit_preset: Edytuj szablon ostrzeżenia
title: Zarządzaj szablonami ostrzeżeń
admin_mailer:
@@ -552,14 +644,28 @@ pl:
body: Użytkownik %{reporter} zgłosił(a) %{target}
body_remote: Użytkownik instancji %{domain} zgłosił(a) %{target}
subject: Nowe zgłoszenie na %{instance} (#%{id})
+ new_trending_tag:
+ body: 'Hashtag #%{name} jest dziś popularny, ale nie został wcześniej zatwierdzony. Nie będzie wyświetlany publicznie zanim na to pozwolisz, możesz też zapisać, że nie chcesz o nim już słyszeć.'
+ subject: Nowy hashtag do zatwierdzenia na %{instance} (#%{name})
aliases:
add_new: Utwórz alias
+ created_msg: Pomyślnie utworzono nowy alias. Możesz teraz rozpocząć przenoszenie ze starego konta.
+ deleted_msg: Pomyślnie usunięto alias. Przenoszenie z tamtego konta na to nie będzie dłużej możliwe.
+ empty: Nie masz żadnych aliasów.
+ hint_html: Jeżeli chcesz przenieść się z innego konta na to, możesz utworzyć alias, który jest wymagany zanim zaczniesz przenoszenie obserwacji z poprzedniego konta na to. To działanie nie wyrządzi szkód i jest odwracalne. Migracja konta jest inicjowana ze starego konta.
+ remove: Odłącz alias
appearance:
advanced_web_interface: Zaawansowany interfejs użytkownika
advanced_web_interface_hint: Jeśli chcesz użyć pełną szerokość swojego ekranu, zaawansowany interfejs użytkownika pozwala Ci skonfigurować wiele różnych kolumn, by zobaczyć jak najwięcej informacji kiedy tylko chcesz. Strona główna, Powiadomienia, Globalna oś czasu, dowolna ilość list i hasztagów.
animations_and_accessibility: Animacje i dostępność
confirmation_dialogs: Dialogi potwierdzenia
+ discovery: Odkrywanie
+ localization:
+ body: Mastodon jest tłumaczony przez wolontariuszy.
+ guide_link: https://pl.crowdin.com/project/mastodon
+ guide_link_text: Każdy może wnieść swój wkład.
sensitive_content: Wrażliwa zawartość
+ toot_layout: Wygląd wpisów
application_mailer:
notification_preferences: Zmień ustawienia e-maili
salutation: "%{name},"
@@ -579,8 +685,13 @@ pl:
apply_for_account: Poproś o zaproszenie
change_password: Hasło
checkbox_agreement_html: Zgadzam się z regułami serwera i zasadami korzystania z usługi
+ checkbox_agreement_without_rules_html: Akceptuję warunki korzystania z usługi
delete_account: Usunięcie konta
delete_account_html: Jeżeli chcesz usunąć konto, przejdź tutaj. Otrzymasz prośbę o potwierdzenie.
+ description:
+ prefix_invited_by_user: "@%{name} zaprasza Cię do dołączenia na ten serwer Mastodona!"
+ prefix_sign_up: Zarejestruj się na Mastodon już dziś!
+ suffix: Mając konto, możesz śledzić ludzi, publikować wpisy i wymieniać się wiadomościami z użytkownikami innych serwerów Mastodona i nie tylko!
didnt_get_confirmation: Nie otrzymałeś(-aś) instrukcji weryfikacji?
forgot_password: Nie pamiętasz hasła?
invalid_reset_password_token: Token do resetowania hasła jest nieprawidłowy lub utracił ważność. Spróbuj uzyskać nowy.
@@ -598,9 +709,20 @@ pl:
reset_password: Zresetuj hasło
security: Bezpieczeństwo
set_new_password: Ustaw nowe hasło
+ setup:
+ email_below_hint_html: Jeżeli poniższy adres e-mail jest nieprawidłowy, możesz zmienić go tutaj i otrzymać nowy e-mail potwierdzający.
+ email_settings_hint_html: E-mail potwierdzający został wysłany na %{email}. Jeżeli adres e-mail nie jest prawidłowy, możesz zmienić go w ustawieniach konta.
+ title: Konfiguracja
+ status:
+ account_status: Stan konta
+ confirming: Oczekiwanie na potwierdzenie adresu e-mail.
+ functional: Twoje konto całkowicie funkcjonuje.
+ pending: Twoje zgłoszenie czeka na zatwierdzenie przez nas. Może to trochę potrwać. Jeżeli zgłoszenie zostanie przyjęte, otrzymasz wiadomość e-mail.
+ redirecting_to: Twoje konto jest nieaktywne, ponieważ obecnie przekierowuje je na %{acct}.
trouble_logging_in: Masz problem z zalogowaniem się?
authorize_follow:
already_following: Już śledzisz to konto
+ already_requested: Już wysłałeś(-aś) prośbę o możliwość śledzenia tego konta
error: Niestety, podczas sprawdzania zdalnego konta wystąpił błąd
follow: Śledź
follow_request: 'Wysłano prośbę o pozwolenie na śledzenie:'
@@ -612,6 +734,12 @@ pl:
title: Śledź %{acct}
challenge:
confirm: Kontynuuj
+ hint_html: "Informacja: Nie będziemy prosić Cię o ponowne podanie hasła przez następną godzinę."
+ invalid_password: Nieprawidłowe hasło
+ prompt: Potwierdź hasło, aby kontynuować
+ date:
+ formats:
+ default: "%d. %b %Y"
datetime:
distance_in_words:
about_x_hours: "%{count}g"
@@ -627,18 +755,33 @@ pl:
x_months: "%{count} miesięcy"
x_seconds: "%{count}s"
deletes:
+ challenge_not_passed: Wprowadzone informacje za nieprawidłowe
confirm_password: Wprowadź aktualne hasło, aby potwierdzić tożsamość
+ confirm_username: Wprowadź swoją nazwę użytkownika aby potwierdzić procedurę
proceed: Usuń konto
success_msg: Twoje konto zostało pomyślnie usunięte
+ warning:
+ before: 'Zanim kontynuujesz, przeczytać uważnie te uwagi:'
+ caches: Zawartość obecna w pamięci podręcznej innych serwerów może tam pozostać
+ data_removal: Twoje wpisy i inne dane zostaną bezpowrotnie usunięte
+ email_change_html: Możesz zmienić swój adres e-mail bez usunięcia konta
+ email_contact_html: Jeżeli wciąż nie dotarł, możesz wysłać wiadomość e-mail na %{email} aby uzyskać pomoc
+ email_reconfirmation_html: Jeżeli nie otrzymujesz potwierdzającego e-maila, możesz poprosić o kolejny
+ irreversible: Nie będziesz móc przywrócić lub reaktywować swojego konta
+ more_details_html: Aby uzyskać więcej szczegółów, przeczytaj naszą politykę prywatności.
+ username_available: Twoja nazwa użytkownika będzie z powrotem dostępna
+ username_unavailable: Twoja nazwa użytkownika pozostanie niedostępna
directories:
directory: Katalog profilów
explanation: Poznaj profile na podstawie zainteresowań
explore_mastodon: Odkrywaj %{title}
+ domain_validator:
+ invalid_domain: nie jest prawidłową nazwą domeny
errors:
- '400': The request you submitted was invalid or malformed.
+ '400': Wysłane zgłoszenie jest nieprawidłowe lub uszkodzone.
'403': Nie masz uprawnień, aby wyświetlić tę stronę.
'404': Strona, którą próbujesz odwiedzić, nie istnieje.
- '406': This page is not available in the requested format.
+ '406': Ta strona nie jest dostępna w zażądanym formacie.
'410': Strona, którą próbujesz odwiedzić, przestała istnieć.
'422':
content: Sprawdzanie bezpieczeństwa nie powiodło się. Czy blokujesz pliki cookie?
@@ -647,7 +790,7 @@ pl:
'500':
content: Przepraszamy, coś poszło nie tak, po naszej stronie.
title: Ta strona jest nieprawidłowa
- '503': The page could not be served due to a temporary server failure.
+ '503': Strona nie może zostać wyświetlona z powodu tymczasowego niepowodzenia serwera.
noscript_html: Aby korzystać z aplikacji Mastodon, włącz JavaScript. Możesz też skorzystać z jednej z natywnych aplikacji obsługującej Twoje urządzenie.
existing_username_validator:
not_found: nie znaleziono lokalnego użytkownika o tej nazwie
@@ -670,8 +813,10 @@ pl:
add_new: Dodaj nowy
errors:
limit: Już przekroczyłeś(-aś) maksymalną liczbę wyróżnionych hashtagów
+ hint_html: "Czym są wyróżnione hashtagi? Są one na stałe wyświetlane na Twoim profilu i pozwalają innym na przeglądanie Twoich wpisów używających tych hashtagów. Są doskonałym narzędziem do śledzenia kreatywnej twórczości czy długoterminowych projektów."
filters:
contexts:
+ account: Profile
home: Strona główna
notifications: Powiadomienia
public: Publiczne osie czasu
@@ -683,6 +828,7 @@ pl:
invalid_irreversible: Nieodwracalne filtrowanie działa tylko na stronie głównej i w powiadomieniach
index:
delete: Usuń
+ empty: Nie masz żadnych filtrów.
title: Filtry
new:
title: Dodaj nowy filtr
@@ -690,10 +836,13 @@ pl:
developers: Dla programistów
more: Więcej…
resources: Zasoby
+ trending_now: Obecnie na czasie
generic:
all: Wszystkie
changes_saved_msg: Ustawienia zapisane!
copy: Kopiuj
+ delete: Usuń
+ no_batch_actions_available: Brak akcji wsadowych dostępnych na tej stronie
order_by: Uporządkuj według
save_changes: Zapisz zmiany
validation_errors:
@@ -766,9 +915,38 @@ pl:
media_attachments:
validations:
images_and_video: Nie możesz załączyć pliku wideo do wpisu, który zawiera już zdjęcia
+ not_ready: Nie można załączyć plików których przetwarzanie nie zostało ukończone. Spróbuj ponownie za chwilę!
too_many: Nie możesz załączyć więcej niż 4 plików
migrations:
acct: nazwa@domena nowego konta
+ cancel: Anuluj przekierowanie
+ cancel_explanation: Anulowanie przekierowania aktywuje Twoje obecne konto ponownie, ale nie przeniesie z powrotem śledzących, których przeniesiono na tamto konto.
+ cancelled_msg: Pomyślnie anulowano przekierowanie.
+ errors:
+ already_moved: jest tym samym kontem, na które już się przeniosłeś(-aś)
+ missing_also_known_as: nie odwołuje się do tego konta
+ move_to_self: nie może być bieżącym kontem
+ not_found: nie mogło zostać odnalezione
+ on_cooldown: Nie możesz teraz przenieść konta
+ followers_count: Śledzący w chwili przenoszenia
+ incoming_migrations: Przenoszenie z innego konta
+ incoming_migrations_html: Aby przenieść się z innego konta na to, musisz najpierw utworzyć alias konta.
+ moved_msg: Twoje konto przekierowuje teraz na %{acct}, a śledzący są przenoszeni.
+ not_redirecting: Twoje konto nie przekierowuje obecnie na żadne inne konto.
+ on_cooldown: Ostatnio przeniosłeś(-aś) swoje konto. Ta funkcja będzie dostępna ponownie za %{count} dni.
+ past_migrations: Poprzednie migracje
+ proceed_with_move: Przenieś obserwujących
+ redirecting_to: Twoje konto przekierowuje na %{acct}.
+ set_redirect: Ustaw przekierowanie
+ warning:
+ backreference_required: Nowe konto musi wcześniej zostać skonfigurowane tak, aby odwoływało się do tego
+ before: 'Zanim kontynuujesz, przeczytaj uważnie te uwagi:'
+ cooldown: Po przeniesieniu się, istnieje okres przez który nie możesz ponownie się przenieść
+ disabled_account: Twoje obecne konto nie będzie później całkowicie użyteczne. Możesz jednak uzyskać dostęp do eksportu danych i ponownie aktywować je.
+ followers: To działanie przeniesie wszystkich Twoich śledzących z obecnego konta na nowe
+ only_redirect_html: Możesz też po prostu skonfigurować przekierowanie na swój profil.
+ other_data: Żadne inne dane nie zostaną automatycznie przeniesione
+ redirect: Twoje obecne konto zostanie uaktualnione o informację o przeniesieniu i wyłączone z wyszukiwania
moderation:
title: Moderacja
notification_mailer:
@@ -809,6 +987,10 @@ pl:
body: 'Twój wpis został podbity przez %{name}:'
subject: Twój wpis został podbity przez %{name}
title: Nowe podbicie
+ notifications:
+ email_events: 'Powiadamiaj e-mailem o:'
+ email_events_hint: 'Wybierz wydarzenia, o których chcesz otrzymywać powiadomienia:'
+ other_settings: Inne ustawienia powiadomień
number:
human:
decimal_units:
@@ -832,6 +1014,7 @@ pl:
duration_too_long: jest zbyt odległa
duration_too_short: jest zbyt bliska
expired: To głosowanie już zakończyło się
+ invalid_choice: Wybrana opcja głosowania nie istnieje
over_character_limit: nie może zawierać więcej niż %{max} znaków
too_few_options: musi zawierać przynajmniej dwie opcje
too_many_options: nie może zawierać więcej niż %{max} opcji
@@ -839,9 +1022,16 @@ pl:
other: Pozostałe
posting_defaults: Domyślne ustawienia wpisów
public_timelines: Publiczne osie czasu
+ reactions:
+ errors:
+ limit_reached: Przekroczono limit różnych reakcji
+ unrecognized_emoji: nie jest znanym emoji
relationships:
activity: Aktywność konta
dormant: Uśpione
+ followers: Śledzący
+ following: Śledzeni
+ invited: Zaproszeni
last_active: Ostatnia aktywność
most_recent: Ostatnie
moved: Przeniesione
@@ -917,6 +1107,7 @@ pl:
settings:
account: Konto
account_settings: Ustawienia konta
+ aliases: Aliasy konta
appearance: Wygląd
authorized_apps: Uwierzytelnione aplikacje
back: Powrót do Mastodona
@@ -934,6 +1125,8 @@ pl:
profile: Profil
relationships: Śledzeni i śledzący
two_factor_authentication: Uwierzytelnianie dwuetapowe
+ spam_check:
+ spam_detected: To zgłoszenie jest automatyczne. Został wykryty spam.
statuses:
attached:
description: 'Załączono: %{attached}'
@@ -954,6 +1147,8 @@ pl:
many: 'zawiera niedozwolone hashtagi: %{tags}'
one: 'zawiera niedozwolony hashtag: %{tags}'
other: 'zawiera niedozwolone hashtagi: %{tags}'
+ errors:
+ in_reply_not_found: Post, na który próbujesz odpowiedzieć, nie istnieje.
language_detection: Automatycznie wykrywaj język
open_in_web: Otwórz w przeglądarce
over_character_limit: limit %{max} znaków przekroczony
@@ -963,6 +1158,11 @@ pl:
private: Nie możesz przypiąć niepublicznego wpisu
reblog: Nie możesz przypiąć podbicia wpisu
poll:
+ total_people:
+ few: "%{count} osoby"
+ many: "%{count} osób"
+ one: "%{count} osoba"
+ other: "%{count} osoby"
total_votes:
few: "%{count} głosy"
many: "%{count} głosy"
@@ -970,6 +1170,7 @@ pl:
other: "%{count} głosy"
vote: Głosuj
show_more: Pokaż więcej
+ show_thread: Pokaż wątek
sign_in_to_participate: Zaloguj się, aby udzielić się w tej konwersacji
title: '%{name}: "%{quote}"'
visibilities:
@@ -983,6 +1184,8 @@ pl:
pinned: Przypięty wpis
reblogged: podbił
sensitive_content: Wrażliwa zawartość
+ tags:
+ does_not_match_previous_name: nie pasuje do poprzedniej nazwy
terms:
body_html: |
Polityka prywatności
@@ -1100,7 +1303,9 @@ pl:
disable: Kiedy Twoje konto jest wyłączone, Twoje dane pozostają na serwerze, ale nie możesz wykonywać żadnych działań, zanim zostanie odblokowane.
silence: Kiedy Twoje konto jest ograniczone, tylko osoby które je śledzą będą widzieć Twoje wpisy. Może ono też przestać być widoczne na publicznych listach. Inni wciąż mogą zacząć Cię śledzić.
suspend: Twoje konto zostało zawieszone i wszystkie Twoje wpisy wraz z zawartością multimedialną zostały nieodwracalnie usunięte z tego serwera i serwerów, których użytkownicy śledzili Cię.
+ get_in_touch: Możesz odpowiedzieć na ten e-mail aby pozostać w kontakcie z prowadzącymi %{instance}.
review_server_policies: Przejrzyj zasady serwera
+ statuses: 'Szczególnie dla:'
subject:
disable: Twoje konto %{acct} zostało wyłączone
none: Ostrzeżenie dla %{acct}
diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml
index abea40130..bdee8d695 100644
--- a/config/locales/pt-BR.yml
+++ b/config/locales/pt-BR.yml
@@ -92,6 +92,7 @@ pt-BR:
delete: Excluir
destroyed_msg: Nota de moderação excluída com sucesso!
accounts:
+ add_email_domain_block: Adicionar o domínio de e-mail à lista negra
approve: Aprovar
approve_all: Aprovar tudo
are_you_sure: Você tem certeza?
@@ -172,6 +173,7 @@ pt-BR:
staff: Equipe
user: Usuário
search: Pesquisar
+ search_same_email_domain: Outros usuários com o mesmo domínio de e-mail
search_same_ip: Outros usuários com o mesmo IP
shared_inbox_url: Link da caixa de entrada compartilhada
show:
@@ -193,21 +195,57 @@ pt-BR:
web: Web
whitelisted: Permitido
action_logs:
+ action_types:
+ assigned_to_self_report: Adicionar relatório
+ change_email_user: Editar e-mail do usuário
+ confirm_user: Confirmar Usuário
+ create_account_warning: Criar Aviso
+ create_announcement: Criar Anúncio
+ create_custom_emoji: Criar Emoji Personalizado
+ create_domain_allow: Adicionar domínio permitido
+ create_domain_block: Criar Bloqueio de Domínio
+ create_email_domain_block: Criar Bloqueio de Domínio de E-mail
+ demote_user: Rebaixar usuário
+ destroy_announcement: Excluir anúncio
+ destroy_custom_emoji: Excluir emoji personalizado
+ destroy_domain_allow: Excluir domínio permitido
+ destroy_domain_block: Excluir Bloqueio de Domínio
+ destroy_email_domain_block: Excluir bloqueio de domínio de e-mail
+ destroy_status: Excluir Status
+ disable_2fa_user: Desativar autenticação de dois fatores
+ disable_custom_emoji: Desativar Emoji Personalizado
+ disable_user: Desativar usuário
+ enable_custom_emoji: Ativar Emoji Personalizado
+ enable_user: Ativar usuário
+ memorialize_account: Memorizar Conta
+ promote_user: Promover usuário
+ remove_avatar_user: Remover Avatar
+ reopen_report: Reabrir Relatório
+ reset_password_user: Redefinir a senha
+ resolve_report: Resolver Relatório
+ silence_account: Silenciar conta
+ suspend_account: Suspender Conta
+ unassigned_report: Remover relatório
+ unsilence_account: Desfazer silenciar conta
+ unsuspend_account: Remover suspensão de conta
+ update_announcement: Editar anúncio
+ update_custom_emoji: Editar Emoji Personalizado
+ update_status: Editar Status
actions:
assigned_to_self_report: "%{name} pegou a denúncia %{target}"
change_email_user: "%{name} alterou o endereço de e-mail do usuário %{target}"
confirm_user: "%{name} confirmou o endereço de e-mail do usuário %{target}"
create_account_warning: "%{name} enviou um aviso para %{target}"
- create_announcement: "%{name} criou um novo anúncio %{target}"
+ create_announcement: "%{name} criou o novo anúncio %{target}"
create_custom_emoji: "%{name} enviou o novo emoji %{target}"
create_domain_allow: "%{name} permitiu %{target}"
- create_domain_block: "%{name} bloqueou o domínio %{target}"
+ create_domain_block: "%{name} bloqueou %{target}"
create_email_domain_block: "%{name} bloqueou o domínio de e-mail %{target}"
demote_user: "%{name} rebaixou o usuário %{target}"
destroy_announcement: "%{name} excluiu o anúncio %{target}"
destroy_custom_emoji: "%{name} excluiu emoji %{target}"
destroy_domain_allow: "%{name} bloqueou %{target}"
- destroy_domain_block: "%{name} desbloqueou o domínio %{target}"
+ destroy_domain_block: "%{name} desbloqueou %{target}"
destroy_email_domain_block: "%{name} permitiu domínio de e-mail %{target}"
destroy_status: "%{name} excluiu toot de %{target}"
disable_2fa_user: "%{name} desativou a exigência de autenticação de dois fatores para o usuário %{target}"
@@ -225,18 +263,21 @@ pt-BR:
suspend_account: "%{name} baniu a conta de %{target}"
unassigned_report: "%{name} largou a denúncia %{target}"
unsilence_account: "%{name} desativou o silêncio de %{target}"
- unsuspend_account: "%{name} desbaniu %{target}"
+ unsuspend_account: "%{name} removeu a suspensão da conta de %{target}"
update_announcement: "%{name} atualizou o anúncio %{target}"
update_custom_emoji: "%{name} atualizou o emoji %{target}"
update_status: "%{name} atualizou o status de %{target}"
deleted_status: "(status excluído)"
+ empty: Nenhum registro encontrado.
+ filter_by_action: Filtrar por ação
+ filter_by_user: Filtrar por usuário
title: Auditar histórico
announcements:
destroyed_msg: Anúncio excluído com sucesso!
edit:
title: Editar anúncio
- empty: Nenhum anúncio encontrado.
- live: Em exibição
+ empty: Sem anúncios.
+ live: Ao vivo
new:
create: Criar anúncio
title: Novo anúncio
@@ -244,7 +285,7 @@ pt-BR:
scheduled_for: Agendado para %{time}
scheduled_msg: Anúncio agendado para publicação!
title: Anúncios
- unpublished_msg: Anúncio retirado de exibição com sucesso!
+ unpublished_msg: Anúncio despublicado com sucesso!
updated_msg: Anúncio atualizado com sucesso!
custom_emojis:
assign_category: Atribuir categoria
@@ -307,36 +348,36 @@ pt-BR:
week_users_new: usuários essa semana
whitelist_mode: Modo lista de permitidos
domain_allows:
- add_new: Permitir
+ add_new: Permitir domínio
created_msg: Domínio foi permitido
destroyed_msg: Domínio foi bloqueado
undo: Bloquear
domain_blocks:
- add_new: Bloquear outro domínio
+ add_new: Adicionar novo bloqueio de domínio
created_msg: Domínio está sendo bloqueado
destroyed_msg: Domínio desbloqueado
domain: Domínio
edit: Editar bloqueio de domínio
- existing_domain_block_html: Você já bloqueou %{name}, é necessário desbloqueá-lo primeiro.
+ existing_domain_block_html: Você já impôs limites mais estritos em %{name}, você precisa desbloqueá-lo primeiro.
new:
create: Criar bloqueio
- hint: O bloqueio de domínio não prevenirá a criação de entradas de contas na base de dados, mas vai retroativamente e automaticamente aplicar métodos específicos de moderação nestas contas.
+ hint: O bloqueio de domínio não vai prevenir a criação de entradas de contas na base de dados, mas vai retroativamente e automaticamente aplicar métodos específicos de moderação nessas contas.
severity:
- desc_html: "Silenciar fará com que os toots da conta fiquem invisíveis para qualquer um que não a esteja seguindo. Banir removerá todo o conteúdo da conta, mídia e dados do perfil. Use Nenhum se você apenas deseja recusar os arquivos de mídia."
+ desc_html: "Silenciar vai fazer os posts da conta invisíveis para qualquer um que não os esteja seguindo. Suspender vai remover todo o conteúdo, mídia, e dados de perfil da conta. Use Nenhum se você só quer rejeitar arquivos de mídia."
noop: Nenhum
silence: Silenciar
suspend: Banir
- title: Bloquear domínio
+ title: Novo bloqueio de domínio
private_comment: Comentário privado
private_comment_hint: Comente sobre essa restrição ao domínio para uso interno dos moderadores.
public_comment: Comentário público
public_comment_hint: Comente sobre essa restrição ao domínio para o público geral, caso a divulgação da lista de bloqueio esteja ativada.
- reject_media: Recusar arquivos de mídia
- reject_media_hint: Remove arquivos de mídia armazenados localmente e recusa quaisquer outros no futuro. Irrelevante para banimentos
- reject_reports: Recusar denúncias
- reject_reports_hint: Ignora todas as denúncias vindas deste domínio. Irrelevante para banimentos
- rejecting_media: recusando arquivos de mídia
- rejecting_reports: recusando denúncias
+ reject_media: Rejeitar arquivos de mídia
+ reject_media_hint: Remove arquivos de mídia armazenados localmente e recusa fazer download de qualquer um no futuro. Irrelevante para suspensões
+ reject_reports: Rejeitar denúncias
+ reject_reports_hint: Ignora todas as denúncias vindo deste domínio. Irrelevante para suspensões
+ rejecting_media: rejeitando arquivos de mídia
+ rejecting_reports: rejeitando denúncias
severity:
silence: silenciado
suspend: banido
@@ -345,23 +386,24 @@ pt-BR:
one: Uma conta no banco de dados foi afetada
other: "%{count} contas no banco de dados foram afetadas"
retroactive:
- silence: Desativar silêncio de todas as contas desse domínio
- suspend: Desbanir todas as contas deste domínio
- title: Desbloquear domínio %{domain}
+ silence: Dessilenciar contas existentes afetadas deste domínio
+ suspend: Dessuspender contas existentes afetadas deste domínio
+ title: Desfazer bloqueio de domínio para %{domain}
undo: Desfazer
- undo: Desbloquear domínio
+ undo: Desfazer bloqueio de domínio
view: Ver domínios bloqueados
email_domain_blocks:
add_new: Adicionar novo
- created_msg: Domínio de e-mail bloqueado
+ created_msg: Domínio de e-mail adicionado à lista negra com sucesso
delete: Excluir
- destroyed_msg: Domínio de e-mail desbloqueado
+ destroyed_msg: Domínio de e-mail excluído da lista negra com sucesso
domain: Domínio
- empty: Sem domínios de e-mail bloqueados.
+ empty: Nenhum domínio de e-mail atualmente na lista negra.
+ from_html: de %{domain}
new:
create: Adicionar domínio
- title: Novo domínio de e-mail bloqueado
- title: Lista de bloqueio de domínios de e-mail
+ title: Nova entrada de lista negra de e-mail
+ title: Lista de negra de e-mail
instances:
by_domain: Domínio
delivery_available: Envio disponível
@@ -421,7 +463,7 @@ pt-BR:
other: "%{count} denúncias"
action_taken_by: Atitude tomada por
are_you_sure: Você tem certeza?
- assign_to_self: Acatado por mim
+ assign_to_self: Pegar
assigned: Moderador responsável
by_target_domain: Domínio da conta denunciada
comment:
@@ -466,7 +508,7 @@ pt-BR:
all: Para todos
disabled: Para ninguém
title: Mostrar domínios bloqueados
- users: Para usuários locais ativos
+ users: Para usuários locais logados
domain_blocks_rationale:
title: Mostrar motivo
enable_bootstrap_timeline_accounts:
@@ -537,6 +579,9 @@ pt-BR:
trends:
desc_html: Mostrar publicamente hashtags previamente revisadas que estão em alta
title: Hashtags em alta
+ site_uploads:
+ delete: Excluir arquivo enviado
+ destroyed_msg: Upload do site excluído com sucesso!
statuses:
back_to_account: Voltar para página da conta
batch:
@@ -573,7 +618,6 @@ pt-BR:
warning_presets:
add_new: Adicionar novo
delete: Excluir
- edit: Editar
edit_preset: Editar o aviso pré-definido
title: Gerenciar os avisos pré-definidos
admin_mailer:
@@ -585,12 +629,13 @@ pt-BR:
body_remote: Alguém da instância %{domain} reportou %{target}
subject: Nova denúncia sobre %{instance} (#%{id})
new_trending_tag:
- body: 'A hashtag #%{name} está em alta hoje, mas não foi previamente revisada. Ela não estará visível publicamente a menos que você aprove, ou apenas salve o formulário do jeito que está para nunca mais ouvir falar dela.'
+ body: 'A hashtag #%{name} está em alta hoje, mas não foi previamente revisada. Ela não estará visível publicamente a menos que você aprove, ou salve o formulário do jeito que está para nunca mais ouvir falar dela.'
subject: Nova hashtag disponível para revisão em %{instance} (#%{name})
aliases:
add_new: Criar alias
- created_msg: Um novo alias foi criado com sucesso. Agora você pode se mudar.
- deleted_msg: Alias excluído com sucesso. Não será mais possível se mudar para esta conta.
+ created_msg: Um novo alias foi criado com sucesso. Agora você pode iniciar a mudança da conta antiga.
+ deleted_msg: Alias removido com sucesso. Não será mais possível se mudar daquela conta para esta conta.
+ empty: Você não tem alias.
hint_html: Se você quiser migrar de uma outra conta para esta, você pode criar um alias aqui, o que é necessário antes que você possa migrar os seguidores da conta antiga para esta. Esta ação por si só é inofensiva e reversível. A migração da conta é iniciada pela conta antiga.
remove: Desvincular alias
appearance:
@@ -661,6 +706,7 @@ pt-BR:
trouble_logging_in: Problemas para entrar?
authorize_follow:
already_following: Você já segue
+ already_requested: Você já enviou uma solicitação para seguir esta conta
error: Infelizmente, ocorreu um erro ao buscar a conta remota
follow: Seguir
follow_request: 'Você mandou uma solicitação para seguir para:'
@@ -677,7 +723,7 @@ pt-BR:
prompt: Confirme sua senha para continuar
date:
formats:
- default: "%d %b %Y"
+ default: "%d %b, %Y"
datetime:
distance_in_words:
about_x_hours: "%{count}h"
@@ -722,7 +768,7 @@ pt-BR:
'406': Esta página não está disponível no formato solicitado.
'410': A página que você procura não existe mais.
'422':
- content: Falha na verificação de segurança. Você desativou o uso de cookies?
+ content: Falha na verificação de segurança. Você está bloqueando cookies?
title: Falha na verificação de segurança
'429': Muitas solicitações
'500':
@@ -774,12 +820,12 @@ pt-BR:
developers: Desenvolvedores
more: Mais…
resources: Recursos
- trending_now: Em alta agora
+ trending_now: Em alta no momento
generic:
all: Tudo
changes_saved_msg: Alterações foram salvas com sucesso!
copy: Copiar
- delete: Eliminar
+ delete: Excluir
no_batch_actions_available: Nenhuma ação em lote disponível nesta página
order_by: Ordenar por
save_changes: Salvar alterações
@@ -804,6 +850,8 @@ pt-BR:
inactive: Inativo
publicize_checkbox: 'E toote isso:'
publicize_toot: 'Está provado! Eu sou %{username} no %{service}: %{url}'
+ remove: Remover comprovatido da conta
+ removed: Comprovativo removido da conta com sucesso
status: Status da verificação
view_proof: Ver prova
imports:
@@ -849,6 +897,7 @@ pt-BR:
media_attachments:
validations:
images_and_video: Não foi possível anexar um vídeo a um toot que já contém imagens
+ not_ready: Não é possível anexar arquivos que não terminaram de ser processados. Tente novamente daqui a pouco!
too_many: Não foi possível anexar mais de 4 imagens
migrations:
acct: Mudou-se para
@@ -1070,6 +1119,8 @@ pt-BR:
disallowed_hashtags:
one: 'continha hashtag não permitida: %{tags}'
other: 'continha hashtags não permitidas: %{tags}'
+ errors:
+ in_reply_not_found: O toot que você quer responder parece não existir.
language_detection: Detectar idioma automaticamente
open_in_web: Abrir no navegador
over_character_limit: limite de caracteres de %{max} excedido
@@ -1217,7 +1268,7 @@ pt-BR:
title: Baixar arquivo
warning:
explanation:
- disable: Enquanto sua conta está bloqueada, seus dados estão intactos, mas você não pode realizar nenhuma ação até que sua conta seja desbloqueada.
+ disable: Enquanto sua conta está congelada, seus dados de conta permanecem intactos, mas você não pode realizar nenhuma ação até que esteja destrancada.
silence: Enquanto sua conta está silenciada, somente pessoas que já estão seguindo você poderão ver seus toots nessa instância, e você pode ser excluído de várias listas públicas. No entanto, outros ainda podem te seguir manualmente.
suspend: Sua conta foi banida e todos os seus toots e mídias foram irreversivelmente excluídos desta instância e das instâncias dos seus seguidores.
get_in_touch: Você pode responder a este e-mail para entrar em contato com a equipe de %{instance}.
@@ -1235,7 +1286,7 @@ pt-BR:
suspend: Conta banida
welcome:
edit_profile_action: Configurar perfil
- edit_profile_step: Você pode personalizar o seu perfil enviando uma imagem de perfil, uma capa, alterando seu nome de exibição e etc. Se você preferir aprovar seus novos seguidores antes de eles verem seus toots, você pode trancar a sua conta.
+ edit_profile_step: Você pode customizar o seu perfil ao fazer upload de um avatar, header, alterar seu nome de exibição e mais. Se você preferir revisar novos seguidores antes de poderem te seguir, você pode trancar a sua conta.
explanation: Aqui estão algumas dicas para você começar
final_action: Comece a tootar
final_step: 'Comece a tootar! Mesmo sem seguidores, suas mensagens públicas podem ser vistas pelos outros, por exemplo, na linha local e nas hashtags. Você pode querer fazer uma introdução usando a hashtag #introdução, ou em inglês usando a hashtag #introductions.'
diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml
index 477c9d3a3..d17358956 100644
--- a/config/locales/pt-PT.yml
+++ b/config/locales/pt-PT.yml
@@ -11,38 +11,38 @@ pt-PT:
apps: Aplicações móveis
apps_platforms: Usar o Mastodon a partir do iOS, Android e outras plataformas
browse_directory: Navegue pelo directório de perfis e filtre por interesses
- browse_local_posts: Visualize as publicações públicas deste servidor em tempo real
+ browse_local_posts: Visualize as publicações públicas desta instância em tempo real
browse_public_posts: Visualize as publicações públicas do Mastodon em tempo real
contact: Contacto
contact_missing: Não configurado
contact_unavailable: n.d.
discover_users: Descobrir utilizadores
documentation: Documentação
- federation_hint_html: Ter uma conta em %{instance} permitirá seguir pessoas em qualquer servidor Mastodon.
+ federation_hint_html: Ter uma conta em %{instance} permitirá seguir pessoas em qualquer instância Mastodon.
get_apps: Experimente uma aplicação
hosted_on: Mastodon em %{domain}
instance_actor_flash: |
- Esta conta é um actor virtual usado para representar o próprio servidor e não um utilizador individual.
+ Esta conta é um actor virtual usado para representar a própria instância e não um utilizador individual.
É usada para motivos de federação e não deve ser bloqueada a não ser que que queira bloquear a instância por completo. Se for esse o caso, deverá usar o bloqueio de domínio.
learn_more: Saber mais
privacy_policy: Política de privacidade
see_whats_happening: Veja o que está a acontecer
- server_stats: 'Estatísticas do servidor:'
+ server_stats: 'Estatísticas da instância:'
source_code: Código fonte
status_count_after:
one: publicação
other: publicações
status_count_before: Que fizeram
tagline: Siga os seus amigos e descubra novas amizades
- terms: termos de serviço
+ terms: Termos de serviço
unavailable_content: Conteúdo indisponível
unavailable_content_description:
- domain: Servidor
+ domain: Instância
reason: Motivo
- rejecting_media: 'Arquivos de média destes servidores não serão processados ou armazenados, e nenhuma miniatura será exibida, o que requer que o utilizador clique e abra o arquivo original manualmente:'
- silenced: 'Publicações destes servidores serão ocultas em linhas do tempo e conversas públicas, e nenhuma notificação será gerada a partir das interações dos seus utilizadores, a menos que você os esteja a seguir:'
- suspended: 'Nenhum dado desses servidores será processado, armazenado ou trocado, tornando qualquer interação ou comunicação com os utilizadores desses servidores impossível:'
- unavailable_content_html: Mastodon geralmente permite que você veja o conteúdo e interaja com usuários de qualquer outro servidor no fediverso. Estas são as exceções deste servidor específico.
+ rejecting_media: 'Arquivos de media destas instâncias não serão processados ou armazenados, e nenhuma miniatura será exibida, o que requer que o utilizador clique e abra o arquivo original manualmente:'
+ silenced: 'Publicações destas instâncias serão ocultas em linhas do tempo e conversas públicas, e nenhuma notificação será gerada a partir das interações dos seus utilizadores, a menos que você os esteja a seguir:'
+ suspended: 'Nenhum dado dessas instâncias será processado, armazenado ou trocado, tornando qualquer interação ou comunicação com os utilizadores dessas instâncias impossível:'
+ unavailable_content_html: Mastodon geralmente permite que você veja o conteúdo e interaja com utilizadores de qualquer outra instância no fediverso. Estas são as exceções desta instância em específico.
user_count_after:
one: utilizador
other: utilizadores
@@ -60,7 +60,7 @@ pt-PT:
joined: Aderiu %{date}
last_active: última vez activo
link_verified_on: A posse deste link foi verificada em %{date}
- media: Média
+ media: Media
moved_html: "%{name} mudou-se para %{new_profile_link}:"
network_hidden: Esta informação não está disponível
never_active: Nunca
@@ -92,6 +92,7 @@ pt-PT:
delete: Eliminar
destroyed_msg: Nota de moderação excluída com sucesso!
accounts:
+ add_email_domain_block: Adicione o domínio de email à lista negra
approve: Aprovar
approve_all: Aprovar todos
are_you_sure: Tens a certeza?
@@ -132,7 +133,7 @@ pt-PT:
remote: Remoto
title: Local
login_status: Estado de início de sessão
- media_attachments: Media anexa
+ media_attachments: Anexos de media
memorialize: Converter em memorial
moderation:
active: Activo
@@ -159,7 +160,7 @@ pt-PT:
remove_avatar: Remover a imagem de perfil
remove_header: Remover o cabeçalho
resend_confirmation:
- already_confirmed: Este usuário já está confirmado
+ already_confirmed: Este utilizador já está confirmado
send: Reenviar um email de confirmação
success: Email de confirmação enviado com sucesso!
reset: Restaurar
@@ -172,6 +173,7 @@ pt-PT:
staff: Equipa
user: Utilizador
search: Pesquisar
+ search_same_email_domain: Outros utilizadores com o mesmo domínio de email
search_same_ip: Outros utilizadores com o mesmo IP
shared_inbox_url: URL da caixa de entrada compartilhada
show:
@@ -188,11 +190,47 @@ pt-PT:
undo_silenced: Desfazer silenciar
undo_suspension: Desfazer supensão
unsubscribe: Cancelar inscrição
- username: Usuário
+ username: Utilizador
warn: Aviso
web: Web
whitelisted: Está na lista branca
action_logs:
+ action_types:
+ assigned_to_self_report: Atribuir Relatório
+ change_email_user: Alterar E-mail do Utilizador
+ confirm_user: Confirmar Utilizador
+ create_account_warning: Criar Aviso
+ create_announcement: Criar Anúncio
+ create_custom_emoji: Criar Emoji Personalizado
+ create_domain_allow: Criar Permissão de Domínio
+ create_domain_block: Criar Bloqueio de Domínio
+ create_email_domain_block: Criar Bloqueio de Domínio de E-mail
+ demote_user: Despromover Utilizador
+ destroy_announcement: Remover Anúncio
+ destroy_custom_emoji: Remover Emoji Personalizado
+ destroy_domain_allow: Remover Permissão de Domínio
+ destroy_domain_block: Remover Bloqueio de Domínio
+ destroy_email_domain_block: Remover Bloqueio de Domínio de E-mail
+ destroy_status: Remover Estado
+ disable_2fa_user: Desativar 2FA
+ disable_custom_emoji: Desativar Emoji Personalizado
+ disable_user: Desativar Utilizador
+ enable_custom_emoji: Ativar Emoji Personalizado
+ enable_user: Ativar Utilizador
+ memorialize_account: Memorizar Conta
+ promote_user: Promover Utilizador
+ remove_avatar_user: Remover Imagem de Perfil
+ reopen_report: Reabrir Relatório
+ reset_password_user: Repor Password
+ resolve_report: Resolver Relatório
+ silence_account: Silenciar Conta
+ suspend_account: Suspender Conta
+ unassigned_report: Desatribuir Relatório
+ unsilence_account: Deixar de Silenciar Conta
+ unsuspend_account: Retirar Suspensão à Conta
+ update_announcement: Atualizar Anúncio
+ update_custom_emoji: Atualizar Emoji Personalizado
+ update_status: Atualizar Estado
actions:
assigned_to_self_report: "%{name} atribuiu o relatório %{target} a si próprios"
change_email_user: "%{name} alterou o endereço de e-mail do utilizador %{target}"
@@ -230,6 +268,9 @@ pt-PT:
update_custom_emoji: "%{name} atualizou o emoji %{target}"
update_status: "%{name} atualizou o estado de %{target}"
deleted_status: "(apagou a publicação)"
+ empty: Não foram encontrados registos.
+ filter_by_action: Filtrar por ação
+ filter_by_user: Filtrar por utilizador
title: Registo de auditoria
announcements:
destroyed_msg: Anúncio excluído com sucesso!
@@ -322,7 +363,7 @@ pt-PT:
create: Criar bloqueio
hint: O bloqueio de dominio não vai previnir a criação de entradas na base de dados, mas irá retroativamente e automaticamente aplicar métodos de moderação específica nessas contas.
severity:
- desc_html: "Silenciar irá fazer com que os posts dessas contas sejam invisíveis para todos que não a seguem. Supender irá eliminar todo o conteúdo guardado dessa conta, media e informação de perfil.Usa Nenhum se apenas desejas rejeitar arquivos de media."
+ desc_html: "Silenciar irá fazer com que as publicações dessa conta sejam invisíveis para quem não a segue. Supender irá eliminar todo o conteúdo guardado dessa conta, media e informação de perfil. Use Nenhum se apenas deseja rejeitar arquivos de media."
noop: Nenhum
silence: Silenciar
suspend: Suspender
@@ -332,7 +373,7 @@ pt-PT:
public_comment: Comentário público
public_comment_hint: Comentário sobre essa limitação de domínio para o público geral, se ativada a divulgação da lista de limitações de domínio.
reject_media: Rejeitar ficheiros de media
- reject_media_hint: Remove localmente arquivos armazenados e rejeita fazer guardar novos no futuro. Irrelevante na suspensão
+ reject_media_hint: Remove arquivos de media armazenados localmente e rejeita descarregar novos arquivos no futuro. Irrelevante para suspensões
reject_reports: Rejeitar relatórios
reject_reports_hint: Ignorar todos os relatórios vindos deste domínio. Irrelevantes para efectuar suspensões
rejecting_media: a rejeitar ficheiros de media
@@ -345,7 +386,7 @@ pt-PT:
one: Uma conta na base de dados afectada
other: "%{count} contas na base de dados afectadas"
retroactive:
- silence: Não silenciar todas as contas existentes nesse domínio
+ silence: Não silenciar contas afetadas existentes deste domínio
suspend: Não suspender todas as contas existentes nesse domínio
title: Remover o bloqueio de domínio de %{domain}
undo: Anular
@@ -358,6 +399,7 @@ pt-PT:
destroyed_msg: Bloqueio de domínio de email excluído com sucesso
domain: Domínio
empty: Nenhum domínio de e-mail atualmente na lista negra.
+ from_html: de %{domain}
new:
create: Adicionar domínio
title: Novo bloqueio de domínio de email
@@ -395,11 +437,11 @@ pt-PT:
relays:
add_new: Adicionar novo repetidor
delete: Apagar
- description_html: Um repetidor da federação é um servidor intermediário que troca grandes volumes de publicações públicas entre servidores que o subscrevem e publicam. Ele pode ajudar pequenos e médios servidores a descobrir conteúdo do "fediverse"que, de outro modo, exigiria que os utilizadores locais seguissem manualmente outras pessoas em servidores remotos.
+ description_html: Um repetidor de federação é um servidor intermediário que troca grandes volumes de publicações públicas entre instâncias que o subscrevem e publicam. Ele pode ajudar pequenas e medias instâncias a descobrir conteúdo do fediverso que, de outro modo, exigiria que os utilizadores locais seguissem manualmente outras pessoas em instâncias remotas.
disable: Desactivar
disabled: Desactivado
enable: Activar
- enable_hint: Uma vez activado, o teu servidor irá subscrever a todas as publicações deste repetidor e irá começar a enviar as suas publicações públicas para ele.
+ enable_hint: Uma vez ativado, a tua instância irá subscrever a todas as publicações deste repetidor e irá começar a enviar as suas publicações públicas para ele.
enabled: Ativado
inbox_url: URL do repetidor
pending: À espera da aprovação do repetidor
@@ -472,7 +514,7 @@ pt-PT:
enable_bootstrap_timeline_accounts:
title: Habilitar seguidores predefinidos para novos utilizadores
hero:
- desc_html: Apresentado na primeira página. Pelo menos 600x100px recomendados. Quando não é definido, é apresentado o thumbnail do servidor
+ desc_html: Apresentado na primeira página. Pelo menos 600x100px recomendados. Quando não é definido, é apresentada a miniatura da instância
title: Imagem Hero
mascot:
desc_html: Apresentada em múltiplas páginas. Pelo menos 293x205px recomendados. Quando não é definida, é apresentada a mascote predefinida
@@ -481,8 +523,8 @@ pt-PT:
desc_html: Nomes de domínio que esta instância encontrou no fediverso
title: Publicar lista de instâncias descobertas
preview_sensitive_media:
- desc_html: Previsualização de links noutros websites irá apresentar uma miniatura, mesmo que a media seja marcada como sensível
- title: Mostrar media sensível em previsualizações OpenGraph
+ desc_html: A pre-visualização de links noutros sites irá apresentar uma miniatura, mesmo que a media seja marcada como sensível
+ title: Mostrar media sensível em pre-visualizações OpenGraph
profile_directory:
desc_html: Permite aos utilizadores serem descobertos
title: Ativar directório do perfil
@@ -515,11 +557,11 @@ pt-PT:
desc_html: Mostrar na página de mais informações
Podes usar tags HTML
title: Página de mais informações
site_short_description:
- desc_html: Mostrada na barra lateral e em etiquetas de metadados. Descreve o que o Mastodon é e o que torna este servidor especial num único parágrafo. Se deixada em branco, remete para a descrição do servidor.
- title: Breve descrição do servidor
+ desc_html: Mostrada na barra lateral e em etiquetas de metadados. Descreve o que o Mastodon é e o que torna esta instância especial num único parágrafo. Se deixada em branco, remete para a descrição da instância.
+ title: Breve descrição da instância
site_terms:
- desc_html: Podes escrever a tua própria política de privacidade, termos de serviço, entre outras coisas. Podes usar tags HTML
- title: Termos de serviço customizados
+ desc_html: Podes escrever a sua própria política de privacidade, termos de serviço, entre outras coisas. Pode utilizar etiquetas HTML
+ title: Termos de serviço personalizados
site_title: Título do site
spam_check_enabled:
desc_html: O Mastodon pode reportar automaticamente contas que enviem repetidamente mensagens não solicitadas. Poderão ocorrer alguns falso-positivos.
@@ -530,13 +572,16 @@ pt-PT:
timeline_preview:
desc_html: Exibir a linha temporal pública na página inicial
title: Visualização da linha temporal
- title: Preferências do site
+ title: Configurações do site
trendable_by_default:
desc_html: Afecta as hashtags que ainda não tenham sido proibidas
title: Permitir hashtags em tendência sem revisão prévia
trends:
desc_html: Exibir publicamente hashtags atualmente em destaque que já tenham sido revistas anteriormente
title: Hashtags em destaque
+ site_uploads:
+ delete: Excluir arquivo carregado
+ destroyed_msg: Upload do site excluído com sucesso!
statuses:
back_to_account: Voltar para página da conta
batch:
@@ -546,8 +591,8 @@ pt-PT:
deleted: Apagado
failed_to_execute: Falhou ao executar
media:
- title: Média
- no_media: Não há média
+ title: Media
+ no_media: Não há media
no_status_selected: Nenhum estado foi alterado porque nenhum foi selecionado
title: Estado das contas
with_media: Com media
@@ -573,7 +618,6 @@ pt-PT:
warning_presets:
add_new: Adicionar novo
delete: Apagar
- edit: Editar
edit_preset: Editar o aviso predefinido
title: Gerir os avisos predefinidos
admin_mailer:
@@ -591,6 +635,7 @@ pt-PT:
add_new: Criar pseudónimo
created_msg: Criou com sucesso um novo pseudónimo. Pode agora iniciar a migração da conta antiga.
deleted_msg: Removido o pseudónimo com sucesso. Migrar dessa conta para esta não será mais possível.
+ empty: Não tem pseudónimos.
hint_html: Se quiser mudar de outra conta para esta, pode criar aqui um pseudónimo, que é necessário antes de poder prosseguir com a migração de seguidores da conta antiga para esta. Esta ação por si só é inofensiva e reversível. A migração da conta é iniciada a partir da conta antiga.
remove: Desvincular pseudónimo
appearance:
@@ -623,14 +668,14 @@ pt-PT:
auth:
apply_for_account: Solicitar um convite
change_password: Palavra-passe
- checkbox_agreement_html: Concordo com as regras do servidor e com os termos de serviço
+ checkbox_agreement_html: Concordo com as regras da instância e com os termos de serviço
checkbox_agreement_without_rules_html: Concordo com os termos do serviço
delete_account: Eliminar conta
delete_account_html: Se desejas eliminar a conta, podes continua aqui. Uma confirmação será pedida.
description:
- prefix_invited_by_user: "@%{name} convidou-o a juntar-se a este servidor do Mastodon!"
+ prefix_invited_by_user: "@%{name} convidou-o a juntar-se a esta instância do Mastodon!"
prefix_sign_up: Inscreva-se hoje no Mastodon!
- suffix: Com uma conta, poderá seguir pessoas, publicar atualizações e trocar mensagens com utilizadores de qualquer servidor Mastodon e muito mais!
+ suffix: Com uma conta, poderá seguir pessoas, publicar atualizações e trocar mensagens com utilizadores de qualquer instância Mastodon e muito mais!
didnt_get_confirmation: Não recebeu o email de confirmação?
forgot_password: Esqueceste a palavra-passe?
invalid_reset_password_token: Token de modificação da palavra-passe é inválido ou expirou. Por favor, solicita um novo.
@@ -661,6 +706,7 @@ pt-PT:
trouble_logging_in: Problemas em iniciar sessão?
authorize_follow:
already_following: Tu já estás a seguir esta conta
+ already_requested: Já enviou anteriormente um pedido para seguir esta conta
error: Infelizmente, ocorreu um erro ao buscar a conta remota
follow: Seguir
follow_request: 'Enviaste uma solicitação de seguidor para:'
@@ -700,7 +746,7 @@ pt-PT:
success_msg: A tua conta foi eliminada com sucesso
warning:
before: 'Antes de continuar, por favor leia cuidadosamente estas notas:'
- caches: O conteúdo que foi armazenado em cache por outros servidores pode persistir
+ caches: O conteúdo que foi armazenado em cache por outras instâncias pode persistir
data_removal: As suas publicações e outros dados serão removidos permanentemente
email_change_html: Pode alterar o seu endereço de e-mail sem eliminar a sua conta
email_contact_html: Se ainda não chegou, pode enviar um e-mail a %{email} para obter ajuda
@@ -737,7 +783,7 @@ pt-PT:
archive_takeout:
date: Data
download: Descarregar o teu arquivo
- hint_html: Podes pedir um arquivo das tuas publicações e ficheiros de media carregados. Os dados do ficheiro exportado estarão no formato ActivityPub, que pode ser lido com qualquer software compatível. Tu podes pedir um arquivo destes a cada 7 dias.
+ hint_html: Pode pedir um arquivo das suas publicações e ficheiros de media carregados. Os dados no ficheiro exportado estarão no formato ActivityPub, que pode ser lido com qualquer software compatível. Pode solicitar um arquivo a cada 7 dias.
in_progress: A compilar o seu arquivo...
request: Pede o teu arquivo
size: Tamanho
@@ -746,7 +792,7 @@ pt-PT:
domain_blocks: Bloqueios de domínio
lists: Listas
mutes: Tens em silêncio
- storage: Armazenamento de média
+ storage: Armazenamento de media
featured_tags:
add_new: Adicionar nova
errors:
@@ -797,13 +843,15 @@ pt-PT:
keybase:
invalid_token: Os tokens Keybase são hashes de assinaturas e devem conter 66 caracteres hexadecimais
verification_failed: O Keybase não reconhece este token como uma assinatura do utilizador do Keybase %{kb_username}. Por favor, tente novamente a partir do Keybase.
- wrong_user: Não é possível criar uma prova para %{proving} enquanto estiver conetado como %{current}. Inicie sessão como %{proving} e tente novamente.
+ wrong_user: Não é possível criar um comprovativo para %{proving} enquanto estiver conetado como %{current}. Inicie sessão como %{proving} e tente novamente.
explanation_html: Aqui pode conetar criptograficamente as suas outras identidades, tais como um perfil Keybase. Isto permite que outras pessoas lhe enviem mensagens encriptadas e confiar em conteúdo que você lhes envia.
i_am_html: Sou %{username} em %{service}.
identity: Identidade
inactive: Inativo
publicize_checkbox: 'E publique isso:'
- publicize_toot: 'Está provado! Eu sou %{username} em %{service}: %{url}'
+ publicize_toot: 'Está comprovado! Eu sou %{username} em %{service}: %{url}'
+ remove: Remover comprovatido da conta
+ removed: Comprovativo removido da conta com sucesso
status: Estado da verificação
view_proof: Ver prova
imports:
@@ -849,6 +897,7 @@ pt-PT:
media_attachments:
validations:
images_and_video: Não é possível anexar um vídeo a uma publicação que já contém imagens
+ not_ready: Não é possível anexar arquivos que não terminaram de ser processados. Tente novamente daqui a pouco!
too_many: Não é possível anexar mais de 4 arquivos
migrations:
acct: username@domain da nova conta
@@ -972,12 +1021,12 @@ pt-PT:
remove_selected_follows: Deixar de seguir os utilizadores selecionados
status: Estado da conta
remote_follow:
- acct: Entre seu usuário@domínio do qual quer seguir
+ acct: Introduza o seu utilizador@domínio do qual quer seguir
missing_resource: Não foi possível achar a URL de redirecionamento para sua conta
no_account_html: Não tens uma conta? Tu podes aderir aqui
proceed: Prossiga para seguir
prompt: 'Você vai seguir:'
- reason_html: " Porque é que este passo é necessário? %{instance}
pode não ser o servidor onde tu estás registado. Por isso, nós precisamos de te redirecionar para o teu servidor inicial em primeiro lugar."
+ reason_html: " Porque é este passo necessário? %{instance}
pode não ser a instância onde você está registado. Por isso, precisamos de o redirecionar para a sua instância de origem em primeiro lugar."
remote_interaction:
favourite:
proceed: Prosseguir para os favoritos
@@ -1070,6 +1119,8 @@ pt-PT:
disallowed_hashtags:
one: 'continha uma hashtag proibida: %{tags}'
other: 'continha as hashtags proibidas: %{tags}'
+ errors:
+ in_reply_not_found: A publicação a que está a tentar responder parece não existir.
language_detection: Detectar automaticamente a língua
open_in_web: Abrir no browser
over_character_limit: limite de caracter excedeu %{max}
@@ -1109,9 +1160,9 @@ pt-PT:
Que informação nós recolhemos?
- - Informação básica da conta: Se te registares neste servidor, pode-te ser pedido que indiques um nome de utilizador, um endereço de e-mail e uma palavra-passe. Também podes introduzir informação adicional de perfil, tal como um nome a mostrar e dados biográficos, que carregues uma fotografia para o teu perfil e para o cabeçalho. O nome de utilizador, o nome a mostrar, a biografia, a imagem de perfil e a imagem de cabeçalho são sempre listados publicamente.
- - Publicações, seguimento e outra informação pública: A lista de pessoas que tu segues é pública, o mesmo é verdade para os teus seguidores. Quando tu publicas uma mensagem, a data e a hora são guardados, tal como a aplicação a partir da qual a mensagem foi enviada. As mensagens podem conter anexos multimédia, tais como fotografias ou vídeos. Publicações públicas e não listadas são acessíveis publicamente. Quando expões uma publicação no teu perfil, isso é também informação disponível publicamente. As tuas publicações são enviadas aos teus seguidores. Em alguns casos isso significa que elas são enviadas para servidores diferentes onde são guardadas cópias. Quando tu apagas publicações, isso também é enviado para os teus seguidores. A acção de republicar ou favoritar outra publicação é sempre pública.
- - Publicações directas e exclusivas para seguidores: Todas as publicações são guardadas e processadas no servidor. Publicações exclusivas para seguidores são enviadas para os teus seguidores e para utilizadores que são nelas mencionados. As publicações directas são enviadas apenas para os utilizadores nelas mencionados. Em alguns casos isso significa que elas são enviadas para diferentes servidores onde são guardadas cópias das mesmas. Nós fazemos um grande esforço para limitar o acesso a estas publicações aos utilizadores autorizados, mas outros servidores podem falhar neste objectivo. Por isso, tu deves rever os servidores a que os teus seguidores pertencem. Tu podes activar uma opção para aprovar e rejeitar manualmente novos seguidores nas configurações. Por favor, tem em mente que os gestores do servidor e qualquer servidor que receba a publicação pode lê-lae que os destinatários podem fazer uma captura de tela, copiar ou partilhar a publicação. Não partilhes qualquer informação perigosa no Mastodon.
+ - Informação básica da conta: Se te registares neste servidor, pode-te ser pedido que indiques um nome de utilizador, um endereço de email e uma palavra-passe. Também podes introduzir informação adicional de perfil, tal como um nome a mostrar e dados biográficos, que carregues uma fotografia para o teu perfil e para o cabeçalho. O nome de utilizador, o nome a mostrar, a biografia, a imagem de perfil e a imagem de cabeçalho são sempre listados publicamente.
+ - Publicações, seguimento e outra informação pública: A lista de pessoas que tu segues é pública, o mesmo é verdade para os teus seguidores. Quando tu publicas uma mensagem, a data e a hora são guardados, tal como a aplicação a partir da qual a mensagem foi enviada. As mensagens podem conter anexos média, tais como fotografias ou vídeos. Publicações públicas e não listadas são acessíveis publicamente. Quando expões uma publicação no teu perfil, isso é também informação disponível publicamente. As tuas publicações são enviadas aos teus seguidores. Em alguns casos isso significa que elas são enviadas para servidores diferentes onde são guardadas cópias. Quando tu apagas publicações, isso também é enviado para os teus seguidores. A ação de republicar ou favoritar outra publicação é sempre pública.
+ - Publicações diretas e exclusivas para seguidores: Todas as publicações são guardadas e processadas no servidor. Publicações exclusivas para seguidores são enviadas para os teus seguidores e para utilizadores que são nelas mencionados. As publicações diretas são enviadas apenas para os utilizadores nelas mencionados. Em alguns casos isso significa que elas são enviadas para diferentes servidores onde são guardadas cópias das mesmas. Nós fazemos um grande esforço para limitar o acesso a estas publicações aos utilizadores autorizados, mas outros servidores podem falhar neste objetivo. Por isso, tu deves rever os servidores a que os teus seguidores pertencem. Tu podes ativar uma opção para aprovar e rejeitar manualmente novos seguidores nas configurações. Por favor, tem em mente que os gestores do servidor e qualquer servidor que receba a publicação pode lê-la e que os destinatários podem fazer uma captura de tela, copiar ou partilhar a publicação. Não partilhes qualquer informação perigosa no Mastodon.
- IPs e outros metadados: Quando inicias sessão, nós guardamos o endereço de IP a partir do qual iniciaste a sessão, tal como o nome do teu navegador. Todas as sessões estão disponíveis para verificação e revogação nas configurações. O último endereço de IP usado é guardado até 12 meses. Nós também podemos guardar registos de servidor, os quais incluem o endereço de IP de cada pedido dirigido ao nosso servidor.
@@ -1140,7 +1191,7 @@ pt-PT:
Nós envidaremos todos os esforços no sentido de:
- - Guardar registos do servidor contendo o endereço de IP de todos os pedidos feitos a este servidor, considerando que estes registos não serão guardados por mais de 90 dias.
+ - Guardar registos do servidor contendo o endereço de IP de todos os pedidos feitos a este servidor, considerando que estes registos não serão guardados por mais de 90 dias.
- Guardar os endereços de IP associados aos utilizadores registados durante um período que não ultrapassará os 12 meses.
@@ -1218,10 +1269,10 @@ pt-PT:
warning:
explanation:
disable: Enquanto a tua conta está congelada, os seus dados permanecem intactos, mas tu não podes executar quaisquer acções até que ela seja desbloqueada.
- silence: Enquanto a tua conta estiver limitada, só pessoas que já estiveres a seguir irão ver as tuas publicações neste servidor e poderás ser excluído de várias listagens públicas. No entanto, outros ainda te poderão seguir de forma manual.
- suspend: A tua conta foi suspensa e todas as tuas publicações e os teus ficheiros de media foram irreversivelmente removidos deste servidor e dos servidores onde tinhas seguidores.
+ silence: Enquanto a sua conta estiver limitada, só pessoas que já estiver a seguir irão ver as suas publicações nesta instância e poderá ser excluído de várias listagens públicas. No entanto, outros ainda o poderão seguir de forma manual.
+ suspend: A sua conta foi suspensa e todas as suas publicações e os seus ficheiros de media foram irreversivelmente removidos desta instância e das instâncias onde tinhas seguidores.
get_in_touch: Pode responder a este e-mail para entrar em contacto com a equipa de %{instance}.
- review_server_policies: Revê as políticas do servidor
+ review_server_policies: Reveja a política da instância
statuses: 'Especificamente, para:'
subject:
disable: A tua conta %{acct} foi congelada
@@ -1240,13 +1291,13 @@ pt-PT:
final_action: Começa a publicar
final_step: 'Começa a publicar! Mesmo sem seguidores, as tuas mensagens públicas podem ser vistas por outros, por exemplo, na cronologia local e em hashtags. Tu podes querer apresentar-te na hashtag #introductions.'
full_handle: O teu nome completo
- full_handle_hint: Isto é o que tu dirias aos teus amigos para que eles te possam enviar mensagens ou seguir-te a partir de outro servidor.
+ full_handle_hint: Isto é o que você diria aos seus amigos para que eles lhe possam enviar mensagens ou seguir a partir de outra instância.
review_preferences_action: Alterar preferências
- review_preferences_step: Certifica-te de configurar as tuas preferências, tais como os e-mails que gostarias de receber ou o nível de privacidade que desejas que as tuas publicações tenham por defeito. Se não sofres de enjoo, podes activar a opção GIF autoplay.
+ review_preferences_step: Certifica-te de configurar as tuas preferências, tais como os e-mails que gostarias de receber ou o nível de privacidade que desejas que as tuas publicações tenham por defeito. Se não sofres de enjoo, podes ativar a opção de auto-iniciar GIFs.
subject: Bem-vindo ao Mastodon
tip_federated_timeline: A cronologia federativa é uma visão global da rede Mastodon. Mas só inclui pessoas que os teus vizinhos subscrevem, por isso não é uma visão completa.
- tip_following: Tu segues o(s) administrador(es) do teu servidor por defeito. Para encontrares mais pessoas interessantes, procura nas cronologias local e federativa.
- tip_local_timeline: A cronologia local é uma visão global das pessoas em %{instance}. Estes são os teus vizinhos próximos!
+ tip_following: Você segue o(s) administrador(es) da sua instância por defeito. Para encontrar mais pessoas interessantes, procure nas cronologias local e federada.
+ tip_local_timeline: A cronologia local é uma visão global das pessoas em %{instance}. Estes são os seus vizinhos mais próximos!
tip_mobile_webapp: Se o teu navegador móvel te oferecer a possibilidade de adicionar o Mastodon ao teu homescreen, tu podes receber notificações push. Ele age como uma aplicação nativa de vários modos!
tips: Dicas
title: Bem-vindo a bordo, %{name}!
diff --git a/config/locales/ro.yml b/config/locales/ro.yml
index 3dc2a944d..9d68ad803 100644
--- a/config/locales/ro.yml
+++ b/config/locales/ro.yml
@@ -1,11 +1,258 @@
---
ro:
about:
+ about_hashtag_html: Acestea sunt postări publice etichetate cu #%{hashtag}. Poți interacționa cu ele dacă ai un cont oriunde în rețea.
+ about_mastodon_html: 'Rețeaua socială a viitorului: Fără reclame, fără supraveghere corporativă, design etic și descentralizare! Dețineți-vă datele cu Mastodon!'
+ about_this: Despre
+ active_count_after: activi
+ active_footnote: Utilizatori activi lunar (UAL)
+ administered_by: 'Administrat de:'
+ api: API
+ apps: Aplicații mobile
+ apps_platforms: Folosește Mastodon de pe iOS, Android și alte platforme
+ browse_directory: Răsfoiți directorul de profil și filtrați după interese
+ browse_local_posts: Răsfoiți un flux live al postărilor publice de pe acest server
+ browse_public_posts: Răsfoiește un flux live de postări publice pe Mastodon
+ contact: Contact
+ contact_missing: Nesetat
+ contact_unavailable: N/A
+ discover_users: Descoperă utilizatori
+ documentation: Documentație
+ federation_hint_html: Cu un cont pe %{instance} vei putea urmări oameni pe orice server de Mastodon sau mai departe.
+ get_apps: Încercați o aplicație pentru mobil
hosted_on: Mastodon găzduit de %{domain}
+ instance_actor_flash: |
+ Acest cont este un actor virtual folosit pentru a reprezenta serverul în sine și nu un utilizator individual.
+ Acesta este folosit în scopuri de federație și nu ar trebui blocat decât dacă doriți să blocați întreaga instanță, în ce caz trebuie să utilizaţi un bloc de domeniu.
+ learn_more: Află mai multe
+ privacy_policy: Politica de confidenţialitate
+ see_whats_happening: Vezi ce se întâmplă
+ server_stats: 'Statistici server:'
+ source_code: Cod sursă
+ status_count_after:
+ few: stări
+ one: stare
+ other: de stări
+ status_count_before: Care au postat
+ tagline: Urmăriți prietenii și descoperiți alții noi
+ terms: Termeni de serviciu
+ unavailable_content: Conținut indisponibil
+ unavailable_content_description:
+ domain: Server
+ reason: Motiv
+ rejecting_media: 'Fişierele media de pe aceste servere nu vor fi procesate sau stocate şi nici o miniatură nu va fi afişată, necesitând click manual la fişierul original:'
+ silenced: 'Postările de pe aceste servere vor fi ascunse în cronologii și conversații publice, și nici o notificare nu va fi generată de interacțiunile utilizatorilor lor decât dacă le urmărești:'
+ suspended: 'Nici o informație de pe aceste servere nu va fi procesată, stocată sau schimbată, ceea ce face imposibilă orice interacțiune sau comunicare cu utilizatorii de pe aceste servere:'
+ unavailable_content_html: Mastodon vă permite în general să vedeți conținutul din orice alt server și să interacționați cu utilizatorii din rețea. Acestea sunt excepţiile care au fost făcute pe acest server.
+ user_count_after:
+ few: utilizatori
+ one: utilizator
+ other: de utilizatori
+ user_count_before: Casa a
+ what_is_mastodon: Ce este Mastodon?
+ accounts:
+ choices_html: 'Alegerile lui %{name}:'
+ endorsements_hint: Poți promova oameni pe care îi urmărești din interfața web, și ei vor apărea aici.
+ featured_tags_hint: Puteți promova anumite hashtag-uri care vor fi afișate aici.
+ follow: Urmărește
+ followers:
+ few: Urmăritori
+ one: Urmăritor
+ other: De Urmăritori
+ following: Urmăriți
+ joined: Înscris %{date}
+ last_active: ultima activitate
+ link_verified_on: Proprietatea acestui link a fost verificată la %{date}
+ media: Media
+ moved_html: "%{name} s-a mutat la %{new_profile_link}:"
+ network_hidden: Aceste informaţii nu sunt disponibile
+ never_active: Niciodată
+ nothing_here: Nu există nimic aici!
+ people_followed_by: Persoane pe care %{name} le urmărește
+ people_who_follow: Persoane care urmăresc pe %{name}
+ pin_errors:
+ following: Trebuie să urmăriți deja persoana pe care doriți să o aprobați
+ posts:
+ few: Postări
+ one: Postare
+ other: De Postări
+ posts_tab_heading: Postări
+ posts_with_replies: Postări și răspunsuri
+ reserved_username: Numele de utilizator este rezervat
+ roles:
+ admin: Admin
+ bot: Robot
+ group: Grup
+ moderator: Mod
+ unavailable: Profil indisponibil
+ unfollow: Nu mai urmării
+ admin:
+ account_actions:
+ action: Efectuează acțiunea
+ title: Efectuează acțiune de moderare la %{acct}
+ account_moderation_notes:
+ create: Lasă o notă
+ created_msg: Notă de moderare creată cu succes!
+ delete: Șterge
+ destroyed_msg: Notă de moderare distrusă cu succes!
+ accounts:
+ add_email_domain_block: Domeniu de e-mail în lista neagră
+ approve: Aprobă
+ approve_all: Aprobă toate
+ are_you_sure: Ești sigur?
+ avatar: Avatar
+ by_domain: Domeniu
+ change_email:
+ changed_msg: E-mail de cont schimbat cu succes!
+ current_email: E-mailul curent
+ label: Schimbă adresa de email
+ new_email: E-mail nou
+ submit: Schimbă adresa de email
+ title: Schimbă e-mailul pentru %{username}
+ confirm: Confirmă
+ confirmed: Confirmat
+ confirming: Confirmare
+ deleted: Șters
+ demote: Retrogradează
+ disable: Dezactivează
+ disable_two_factor_authentication: Dezactivează 2FA
+ disabled: Dezactivat
+ display_name: Nume afișat
+ domain: Domeniu
+ edit: Editează
+ email: E-mail
+ email_status: Stare e-mail
+ enable: Activează
+ enabled: Activat
+ followers: Urmăritori
+ follows: Urmăriri
+ header: Antet
+ inbox_url: URL mesaje primite
+ invited_by: Invitat de
+ ip: IP
+ joined: Înscris
+ location:
+ all: Toate
+ local: Local
+ remote: La distanţă
+ title: Locaţie
+ login_status: Stare conectare
+ media_attachments: Atașamente media
+ memorialize: Transformă în memorie
+ moderation:
+ active: Activ
+ all: Toate
+ pending: În așteptare
+ silenced: Ignorate
+ suspended: Suspendate
+ title: Moderare
+ moderation_notes: Note de moderare
+ most_recent_activity: Cea mai recentă activitate
+ most_recent_ip: Cel mai recent IP
+ no_account_selected: Nici un cont nu a fost schimbat deoarece nici unul nu a fost selectat
+ no_limits_imposed: Nicio limită impusă
+ not_subscribed: Nesubscrise
+ pending: În așteptare
+ perform_full_suspension: Suspendate
+ promote: Promovează
+ protocol: Protocol
+ public: Public
+ push_subscription_expires: Abonamentul PuSH expiră
+ redownload: Reîmprospătează profilul
+ reject: Respinge
+ reject_all: Respinge toate
+ remove_avatar: Elimină avatar
+ remove_header: Elimină antet
+ resend_confirmation:
+ already_confirmed: Acest utilizator este deja confirmat
+ send: Retrimite e-mail de confirmare
+ success: E-mail de confirmare trimis cu succes!
+ reset: Resetează
+ reset_password: Resetează parola
+ resubscribe: Resubscrie-te
+ role: Permisiuni
+ roles:
+ admin: Administrator
+ moderator: Moderator
+ staff: Personal
+ user: Utilizator
+ search: Caută
+ search_same_email_domain: Alţi utilizatori cu acelaşi domeniu de e-mail
+ search_same_ip: Alţi utilizatori cu acelaşi IP
+ shared_inbox_url: URL inbox distribuit
+ show:
+ created_reports: Rapoarte realizate
+ targeted_reports: Raportat de alții
+ silence: Ignoră
+ silenced: Ignorate
+ statuses: Stări
+ subscribe: Subscrie
+ suspended: Suspendate
+ time_in_queue: Așteptare în coadă %{time}
+ title: Conturi
+ unconfirmed_email: E-mail neconfirmat
+ undo_silenced: Anulează ignorarea
+ undo_suspension: Anulați suspendarea
+ unsubscribe: Dezabonare
+ username: Nume
+ warn: Avertizează
+ web: Web
+ whitelisted: Excluse la blocare
+ action_logs:
+ action_types:
+ assigned_to_self_report: Atribuie raportul
+ change_email_user: Schimbă e-mailul pentru utilizator
+ confirm_user: Confirmare Utilizator
+ create_account_warning: Crează avertisment
+ create_announcement: Creează Anunț
+ create_custom_emoji: Creează Zâmbet Personalizat
+ create_domain_allow: Creează permis domeniu
+ create_domain_block: Crează blocare de domenii
+ create_email_domain_block: Creați blocare de domeniu e-mail
+ demote_user: Retrogradare Utilizatorul
+ destroy_announcement: Ștergere anunț
+ destroy_custom_emoji: Ștergere Zâmbet Personalizat
+ destroy_domain_allow: Ștergere Permitere Domeniu
+ destroy_domain_block: Ștergere Blocare Domeniu
+ aliases:
+ add_new: Creează un alias
+ created_msg: A fost creat cu succes un alias nou. Acum puteţi iniţia mutarea din vechiul cont.
+ deleted_msg: Eliminați cu succes aliasul. Mutarea din acel cont în acesta nu va mai fi posibilă.
+ empty: Nu ai aliasuri.
+ hint_html: Dacă doriți să vă mutați dintr-un cont în altul, aici puteți crea un alias, care este necesar înainte de a putea continua mutarea urmăritorilor din vechiul cont în acesta. Această acțiune este inofensivă și reversibilă. Migrarea contului este inițiată din vechiul cont.
+ remove: Deconectare alias
+ appearance:
+ localization:
+ guide_link: https://crowdin.com/project/mastodon
+ guide_link_text: Toată lumea poate contribui.
+ sensitive_content: Conținut sensibil
+ toot_layout: Aspect postare
+ application_mailer:
+ notification_preferences: Modifică preferințe e-mail
+ salutation: "%{name},"
+ settings: 'Modifică preferințe e-mail: %{link}'
+ view: 'Vizualizare:'
+ view_profile: Vizualizați profilul
+ view_status: Vezi starea
+ applications:
+ created: Aplicație creată cu succes
+ destroyed: Aplicație ștearsă cu succes
+ invalid_url: URL-ul furnizat nu este valid
+ regenerate_token: Regenerează token-ul de acces
+ token_regenerated: Token de acces regenerat cu succes
+ warning: Fiți foarte atent cu aceste date. Nu le împărtășiți niciodată cu cineva!
+ your_token: Token-ul tău de acces
auth:
+ apply_for_account: Solicită o invitație
change_password: Parolă
+ checkbox_agreement_html: Sunt de acord cu regulile serverului şi termenii de serviciu
+ checkbox_agreement_without_rules_html: Sunt de acord cu termenii serviciului
delete_account: Șterge contul
delete_account_html: Dacă vrei să ștergi acest cont poți începe aici. Va trebui să confirmi această acțiune.
+ description:
+ prefix_invited_by_user: "@%{name} vă invită să vă alăturați acestui server de Mastodon!"
+ prefix_sign_up: Înscrie-te pe Mastodon astăzi!
+ suffix: Cu un cont, vei putea să urmărești oameni, să postezi actualizări și să schimbi mesaje cu utilizatorii de pe orice server Mastodon și multe altele!
didnt_get_confirmation: Nu ai primit instrucțiunile de confirmare?
forgot_password: Ai uitat parola?
invalid_reset_password_token: Această cerere este invalidă sau a expirat. Încearcă resetarea parolei din nou.
@@ -14,13 +261,29 @@ ro:
migrate_account: Transfer către un alt cont
migrate_account_html: Dacă dorești să redirecționezi acest cont către un altul, poți configura asta aici.
or_log_in_with: Sau conectează-te cu
+ providers:
+ cas: CAS
+ saml: SAML
register: Înregistrare
+ registration_closed: "%{instance} nu acceptă membri noi"
resend_confirmation: Retrimite instrucțiunile de confirmare
reset_password: Resetare parolă
security: Securitate
set_new_password: Setează o nouă parolă
+ setup:
+ email_below_hint_html: Dacă adresa de e-mail de mai jos este incorectă, o puteți schimba aici și puteți primi un nou e-mail de confirmare.
+ email_settings_hint_html: E-mailul de confirmare a fost trimis la %{email}. Dacă această adresă de e-mail nu este corectă, o puteți schimba în setările contului.
+ title: Configurare
+ status:
+ account_status: Starea contului
+ confirming: Se așteaptă finalizarea confirmării prin e-mail.
+ functional: Contul dvs. este complet operațional.
+ pending: Cererea dvs. este în curs de revizuire de către personalul nostru. Este posibil să dureze ceva timp. Veți primi un e-mail dacă cererea dvs. este aprobată.
+ redirecting_to: Contul dvs. este inactiv deoarece în prezent se redirecționează către %{acct}.
+ trouble_logging_in: Probleme la conectare?
authorize_follow:
already_following: Urmărești deja acest cont
+ already_requested: Ați trimis deja o cerere de urmărire către acel cont
error: Din păcate a apărut o eroare
follow: Urmărește
follow_request: 'Ai trimis o cerere de urmărire către:'
@@ -30,6 +293,14 @@ ro:
return: Arată profilul utilizatorului
web: Mergi la web
title: Urmărește %{acct}
+ challenge:
+ confirm: Continuă
+ hint_html: "Sfat: Nu vă vom mai cere parola pentru următoarea oră."
+ invalid_password: Parolă incorectă
+ prompt: Confirmă parola pentru a continua
+ date:
+ formats:
+ default: "%d %m, %Y"
datetime:
distance_in_words:
about_x_hours: "%{count}o"
@@ -41,11 +312,21 @@ ro:
less_than_x_seconds: Chiar acum
over_x_years: "%{count}ani"
x_days: "%{count}z"
+ x_minutes: "%{count}m"
x_months: "%{count}l"
+ x_seconds: "%{count}s"
deletes:
+ challenge_not_passed: Informațiile introduse nu au fost corecte
confirm_password: Introdu parola curentă pentru a-ți verifica identitatea
+ confirm_username: Introduceți numele de utilizator pentru a confirma procedura
proceed: Șterge contul
success_msg: Contul tău a fost șterg. Nu mai poate fi recuperat :D
+ warning:
+ before: 'Înainte de a continua, vă rugăm să citiţi aceste note cu atenţie:'
+ caches: Conținutul care a fost memorat de alte servere poate persista
+ data_removal: Postările tale și alte date vor fi șterse permanent
+ email_change_html: Puteți schimba adresa de e-mail fără a șterge contul dvs
+ email_contact_html: Dacă tot nu ajunge, puteți trimite e-mail la %{email} pentru ajutor
directories:
explanation: Descoperă oameni și companii în funcție de interesele lor
explore_mastodon: Explorează %{title}
@@ -91,11 +372,345 @@ ro:
title: Filtre
new:
title: Adaugă un filtru nou
+ imports:
+ modes:
+ overwrite: Suprascrie
+ overwrite_long: Înlocuiţi înregistrările curente cu cele noi
+ preface: Puteți importa date pe care le-ați exportat de pe un alt server, cum ar fi o listă a persoanelor pe care le urmăriți sau blocați.
+ success: Datele dvs. au fost încărcate cu succes și vor fi procesate acum în timp util
+ types:
+ blocking: Lista de blocare
+ domain_blocking: Listă de blocare domenii
+ following: Lista de urmărire
+ muting: Lista de ignorare
+ upload: Încarcă
+ in_memoriam_html: În Memoria.
invites:
+ delete: Dezactivați
+ expired: Expirat
expires_in:
- '1800': 30 minutes
- '21600': 6 hours
- '3600': 1 hour
- '43200': 12 hours
- '604800': 1 week
- '86400': 1 day
+ '1800': 30 de minute
+ '21600': 6 ore
+ '3600': 1 oră
+ '43200': 12 ore
+ '604800': 1 săptămână
+ '86400': 1 zi
+ expires_in_prompt: Niciodată
+ generate: Generează link de invitație
+ invited_by: 'Ai fost invitat de:'
+ max_uses:
+ few: "%{count} utilizări"
+ one: 1 utilizare
+ other: "%{count} de utilizări"
+ max_uses_prompt: Fără limită
+ prompt: Generați și împărtășiți link-uri cu alții pentru a acorda acces la acest server
+ table:
+ expires_at: Expiră
+ uses: Utilizări
+ title: Invită persoane
+ lists:
+ errors:
+ limit: Ați atins valoarea maximă a listelor
+ media_attachments:
+ validations:
+ images_and_video: Nu se poate atașa un videoclip la o stare care conține deja imagini
+ not_ready: Nu se pot ataşa fişiere care nu au terminat procesarea. Încercaţi din nou într-un moment!
+ too_many: Nu se pot ataşa mai mult de 4 fişiere
+ migrations:
+ acct: Mutat la
+ cancel: Anulează redirecționarea
+ cancel_explanation: Anularea redirecționării va reactiva contul curent, dar nu va aduce înapoi urmăritorii care au fost mutați în acel cont.
+ cancelled_msg: Redirecționarea a fost anulată cu succes.
+ errors:
+ already_moved: este același cont în care ați fost deja mutat
+ missing_also_known_as: nu are corelare inversă cu acest cont
+ move_to_self: nu poate fi contul curent
+ not_found: nu a putut fi găsit
+ on_cooldown: Ești în așteptare
+ followers_count: Urmăritori în momentul mutării
+ incoming_migrations: Mutarea de la un cont diferit
+ incoming_migrations_html: Pentru a trece de la un cont la altul, trebuie mai întâi să creați un alias.
+ moved_msg: Contul tău se redirecționează acum către %{acct} și urmăritorii tăi sunt mutați înapoi.
+ not_redirecting: Contul dvs. nu se redirecționează către niciun alt cont în prezent.
+ on_cooldown: Ți-ai migrat recent contul. Această funcție va deveni disponibilă din nou în %{count} zile.
+ past_migrations: Migrări trecute
+ proceed_with_move: Mută urmăritorii
+ redirecting_to: Contul dvs. se redirecționează către %{acct}.
+ set_redirect: Setați redirecționarea
+ notification_mailer:
+ reblog:
+ body: 'Postarea ta a fost impulsionată de %{name}:'
+ subject: "%{name} ți-a impulsionat postarea"
+ title: Impuls nou
+ polls:
+ errors:
+ expired: Sondajul s-a încheiat deja
+ invalid_choice: Opțiunea aleasă de vot nu există
+ over_character_limit: nu poate fi mai lung de %{max} caractere
+ too_few_options: trebuie să aibă mai mult de un element
+ too_many_options: nu poate conține mai mult de %{max} elemente
+ preferences:
+ other: Altele
+ posting_defaults: Valori prestabilite de postare
+ public_timelines: Fluxuri publice
+ reactions:
+ errors:
+ limit_reached: S-a atins limita diferitelor reacţii
+ unrecognized_emoji: nu este un zâmbet recunoscut
+ relationships:
+ activity: Activitate cont
+ dormant: Latente
+ followers: Urmăritori
+ following: Urmăriți
+ invited: Invitați
+ last_active: Ultima activitate
+ most_recent: Cei mai recenți
+ moved: Mutat
+ mutual: Mutuali
+ primary: Primar
+ relationship: Relaţie
+ remove_selected_domains: Eliminați toți urmăritorii din domeniile selectate
+ remove_selected_followers: Elimină urmăritorii selectați
+ remove_selected_follows: Anulează urmărirea utilizatorilor selectați
+ status: Starea contului
+ remote_follow:
+ acct: Introduceți numele@domeniu din care doriți să acționați
+ missing_resource: Nu s-a putut găsi URL-ul de redirecționare necesar pentru contul dvs
+ no_account_html: Nu ai un cont? Poți să te înregistrezi aici
+ proceed: Continuă să urmărești
+ prompt: 'Vei urmării pe:'
+ reason_html: "De ce este necesar acest pas? %{instance}
ar putea să nu fie serverul în care sunteți înregistrat, așa că trebuie să te redirecționăm către serverul tău de acasă."
+ remote_interaction:
+ favourite:
+ proceed: Continuă să favorizezi
+ prompt: 'Vrei să favorizezi această postare:'
+ reblog:
+ proceed: Continuă să dai impuls
+ prompt: 'Vrei să impulsionezi această postare:'
+ reply:
+ proceed: Continuă să răspunzi
+ prompt: 'Vrei să răspunzi la această postare:'
+ scheduled_statuses:
+ over_daily_limit: Ai depășit limita de %{limit} postări programate pentru acea zi
+ over_total_limit: Ai depășit limita de %{limit} postări programate
+ too_soon: Data programată trebuie să fie în viitor
+ sessions:
+ activity: Ultima activitate
+ browser: Navigator
+ browsers:
+ alipay: Alipay
+ blackberry: Blackberry
+ chrome: Chrome
+ edge: Microsoft Edge
+ electron: Electron
+ firefox: Firefox
+ generic: Navigator necunoscut
+ ie: Internet Explorer
+ statuses:
+ attached:
+ image:
+ few: "%{count} imagini"
+ one: "%{count} imagine"
+ other: "%{count} de imagini"
+ video:
+ few: "%{count} videoclipuri"
+ one: "%{count} video"
+ other: "%{count} de videoclipuri"
+ boosted_from_html: Impuls de la %{acct_link}
+ content_warning: 'Avertisment privind conținutul: %{warning}'
+ disallowed_hashtags:
+ few: 'conținea aceste hashtag-uri nepermise: %{tags}'
+ one: 'conținea un hashtag nepermis: %{tags}'
+ other: 'conținea aceste hashtag-uri nepermise: %{tags}'
+ errors:
+ in_reply_not_found: Postarea la care încercați să răspundeți nu pare să existe.
+ language_detection: Detectează automat limba
+ open_in_web: Deschide pe web
+ over_character_limit: s-a depășit limita de caracter %{max}
+ pin_errors:
+ limit: Deja ai fixat numărul maxim de postări
+ ownership: Postarea altcuiva nu poate fi fixată
+ private: Postarea non-publică nu poate fi fixată
+ reblog: Un impuls nu poate fi fixat
+ poll:
+ total_people:
+ few: "%{count} persoane"
+ one: "%{count} persoană"
+ other: "%{count} de persoane"
+ total_votes:
+ few: "%{count} voturi"
+ one: "%{count} vot"
+ other: "%{count} de voturi"
+ vote: Votează
+ show_more: Arată mai mult
+ show_thread: Arată discuția
+ sign_in_to_participate: Conectează-te pentru a participa la conversație
+ title: '%{name}: "%{quote}"'
+ visibilities:
+ private: Doar urmăritorii
+ private_long: Arată doar urmăritorilor
+ public: Public
+ public_long: Toată lumea poate vedea
+ unlisted: Nelistat
+ unlisted_long: Toată lumea poate vedea, dar nu este listată pe fluxurile publice
+ stream_entries:
+ pinned: Postare fixată
+ reblogged: impulsionată
+ sensitive_content: Conținut sensibil
+ tags:
+ does_not_match_previous_name: nu se potrivește cu numele anterior
+ terms:
+ body_html: |
+ Politica de confidențialitate
+ Ce informații colectăm?
+
+
+ - Informații de bază despre cont : dacă vă înregistrați pe acest server, vi se poate cere să introduceți un nume de utilizator, o adresă de e-mail și o parolă. De asemenea, puteți introduce informații suplimentare despre profil, cum ar fi numele afișat și biografie, și puteți încărca o imagine de profil și o imagine de antet. Numele de utilizator, numele afișat, biografia, imaginea de profil și imaginea antetului sunt întotdeauna listate public.
+ - Postări, umăriri și alte informații publice : Lista persoanelor pe care le urmărești este listată public, aceeași este valabilă și pentru urmăritorii tăi. Când trimiteți un mesaj, data și ora sunt stocate, precum și aplicația din care ați trimis mesajul. Mesajele pot conține atașamente media, cum ar fi imagini și videoclipuri. Postările publice și nelistate sunt disponibile public. Când aveți o postare pe profilul dvs., aceasta este, de asemenea, informații disponibile publicului. Postările dvs. sunt livrate urmăritorilor dvs., în unele cazuri înseamnă că sunt livrate pe diferite servere și copiile sunt stocate acolo. Când ștergeți postări, acest lucru este de asemenea livrat urmăritorilor dvs. Acțiunea de a impulsiona sau favoriza o altă postare este întotdeauna publică.
+ - Postări directe și doar pentru urmăritori : toate postările sunt stocate și procesate pe server. Postările destinate numai urmăritorilor sunt livrate urmăritorilor și utilizatorilor dvs. menționați în ele, iar postările directe sunt livrate numai utilizatorilor menționați în ele. În unele cazuri, înseamnă că sunt livrate pe diferite servere și copiile sunt stocate acolo. Facem un efort de bună-credință pentru a limita accesul la aceste postări doar persoanelor autorizate, dar este posibil ca alte servere să nu reușească. Prin urmare, este important să revizuiți serverele de pe care urmăritorii dvs provin. Puteți comuta o opțiune pentru a aproba și respinge manual următorii noi din setări. Vă rugăm să rețineți că operatorii serverului și orice server primitor pot vizualiza astfel de mesaje și că destinatarii pot face captură de ecran, copie sau distribuirea lor. Nu împărtășiți informații periculoase pe servere.
+ - IP-uri și alte metadate : atunci când vă conectați, înregistrăm adresa IP de lacare vă conectați, precum și numele aplicației dvs. de navigare pe internet. Toate sesiunile conectate sunt disponibile pentru revizuire și revocare în setări. Cea mai recentă adresă IP folosită este stocată până la 12 luni. De asemenea, putem păstra jurnalele de server care includ adresa IP a fiecărei solicitări către serverul nostru.
+ Ul>
+
+
+
+ Pentru ce folosim informațiile dvs.?
+
+ Toate informațiile pe care le colectăm de la dvs. pot fi utilizate în următoarele moduri:
+
+
+ - Pentru a oferi funcționalitatea de bază a platformei. Puteți interacționa cu conținutul altor persoane și puteți posta propriul conținut atunci când sunteți autentificat. De exemplu, puteți urmări alte persoane pentru a vizualiza postările combinate în fluxul personal.
+ - Pentru a ajuta la moderarea comunității, de exemplu, compararea adresei IP cu altele cunoscute pentru a determina evaziunea interdicției sau alte încălcări.
+ - Adresa de e-mail pe care o furnizați poate fi utilizată pentru a vă trimite informații, notificări despre alte persoane care interacționează cu conținutul dvs. sau pentru a vă trimite mesaje și pentru a răspunde la întrebări și / sau alte solicitări sau întrebări.
+ Ul>
+
+
+
+ Cum vă protejăm informațiile?
+
+ Implementăm o varietate de măsuri de securitate pentru a menține siguranța informațiilor dvs. personale atunci când introduceți, trimiteți sau accesați informațiile dvs. personale. Printre altele, sesiunea navigatorului dvs., precum și traficul dintre aplicațiile dvs. și API-ul, sunt securizate cu SSL, iar parola dvs. este salvată folosind un algoritm puternic unidirecțional. Puteți activa autentificarea în doi pași pentru a asigura accesul suplimentar la contul dvs..
+
+
+
+ Care este politica noastră de păstrare a datelor?
+
+ Vom depune eforturi de bună credință pentru:
+
+
+ - Păstrarea jurnalelor serverului care conțin adresa IP a tuturor solicitărilor către acest server, în măsura în care se păstrează astfel de jurnale, nu mai mult de 90 de zile.
+ - Păstrarea adreselor IP asociate cu utilizatorii înregistrați nu mai mult de 12 luni.
+ Ul>
+
+ Puteți solicita și descărca o arhivă a conținutului dvs., inclusiv postările, atașamentele media, poza de profil și imaginea antetului.
+
+ Puteți șterge ireversibil contul în orice moment.
+
+
+
+ Folosim module cookie?
+
+ Da. Cookie-urile sunt fișiere mici pe care un site sau furnizorul său de servicii le transferă pe hard disk-ul computerului prin intermediul navigatorului dvs. Web (dacă permiteți). Aceste cookie-uri permit site-ului să vă recunoască navigatorul și, dacă aveți un cont înregistrat, să îl asociați cu contul dvs. înregistrat.
+
+ Folosim cookie-uri pentru a înțelege și salva preferințele pentru vizitele viitoare.
+
+
+
+ Dezvăluim informații părților din afară?
+
+ Nu vindem, comercializăm sau nu transferăm în alte părți informațiilor dvs. de identificare personală. Aceasta nu include terți de încredere care ne ajută în operarea site-ului nostru, în desfășurarea activității noastre sau în deservirea dvs., atât timp cât acele părți acceptă să păstreze aceste informații confidențiale. De asemenea, putem elibera informațiile dvs. atunci când considerăm că eliberarea este adecvată pentru a respecta legea, a aplica politicile site-ului nostru sau a proteja drepturile noastre, proprietatea sau siguranța noastră sau a altor persoane.
+
+ Conținutul dvs. public poate fi descărcat de alte servere din rețea. Postările dvs. publice și cele doar pentru urmăritori sunt livrate pe serverele de unde provin urmăritorii dvs., iar mesajele directe sunt livrate către serverele destinatarilor, în măsura în care acei urmăritori sau destinatari provin de pe un server diferit decât acesta.
+
+ Atunci când autorizați o aplicație să vă utilizeze contul, în funcție de sfera de autorizare pe care o aprobați, aceasta poate accesa informațiile despre profilul dvs. public, lista dvs. de urmăritori, urmăritorii, listele dvs., toate postările și favorizările dvs. Aplicațiile nu vă pot accesa niciodată adresa de e-mail sau parola.
+
+
+
+ Utilizarea site-ului de către copii
+
+ Site-ul nostru, produsele și serviciile noastre sunt destinate tuturor persoanelor care au cel puțin 16 ani. Dacă aveți sub 16 ani, conform cerințelor GDPR ( Regulamentul general privind protecția datelor ) nu utilizați acest site . p>
+
+
Cerințele legii pot fi diferite dacă acest server se află într-o altă jurisdicție.
+
+
+
+ Modificări ale politicii noastre de confidențialitate
+
+ Dacă decidem să ne schimbăm politica de confidențialitate, vom posta aceste modificări pe această pagină.
+
+ Acsta a fost actualizat ultima dată pe 27 aprilie 2020.
+
+ Adaptat inițial din Politica de confidențialitate Discourse .
+ title: "%{instance} Termeni de utilizare și Politica de confidențialitate"
+ themes:
+ contrast: Mastodon (contrast mare)
+ default: Mastodon (Întunecat)
+ mastodon-light: Mastodon (Luminat)
+ time:
+ formats:
+ default: "%d %m, %Y, %H:%M"
+ month: "%m %Y"
+ two_factor_authentication:
+ code_hint: Introduceți codul generat de aplicația dvs de autentificare pentru a confirma
+ description_html: Dacă activați autentificarea în doi pași, autentificarea va necesita ca tu să fii în posesia telefonului tău, ceea ce va genera token-uri pentru ca tu să intri.
+ disable: Dezactivează
+ enable: Activează
+ enabled: Autentificare în doi pași este activată
+ enabled_success: Autentificarea în doi pași activată cu succes
+ generate_recovery_codes: Generează coduri de recuperare
+ instructions_html: "Scanați acest cod QR în Google Authenticator sau o aplicație TOTP similiară de pe telefonul dvs.. De acum înainte, acea aplicație va genera token-uri pe care va trebui să îi introduceți atunci când vă conectați."
+ lost_recovery_codes: Codurile de recuperare vă permit să redobândiți accesul la contul dvs. dacă vă pierdeți telefonul. Dacă ți-ai pierdut codurile de recuperare, le poți regenera aici. Codurile tale vechi de recuperare vor fi invalidate.
+ manual_instructions: 'Dacă nu puteți scana codul QR și trebuie să-l introduceți manual, aici este textul simplu pentru cheia secretă:'
+ recovery_codes: Copie a codurilor de recuperare
+ recovery_codes_regenerated: Coduri de recuperare regenerate cu succes
+ recovery_instructions_html: Dacă îți pierzi vreodată accesul la telefon, poți folosi unul dintre codurile de recuperare de mai jos pentru a recâștiga accesul la contul tău. Păstrați codurile de recuperare în condiții de siguranță. De exemplu, le puteți tipări și stoca cu alte documente importante.
+ setup: Configurare
+ wrong_code: Codul introdus nu a fost valid! Orele serverului și timpul dispozitivului sunt corecte?
+ user_mailer:
+ backup_ready:
+ explanation: Ai solicitat o copie de rezervă completă a contului tău. Acum este gata pentru descărcare!
+ subject: Arhiva ta este gata pentru descărcare
+ title: Preluare arhivă
+ warning:
+ explanation:
+ disable: În timp ce contul tău este înghețat, datele contului tău rămân intacte, dar nu poți efectua nicio acțiune până când acesta este deblocat.
+ silence: În timp ce contul tău este limitat, doar persoanele care deja te urmăresc îți vor vedea postările pe acest server, și puteți fi exclus de la diverse liste publice. Cu toate acestea, este posibil ca alte persoane să vă urmărească manual.
+ suspend: Contul tău a fost suspendat și toate postările tale și fișierele media încărcate au fost șterse ireversibil de pe acest server, și servere unde ai avut urmăritori.
+ get_in_touch: Puteți răspunde la acest e-mail pentru a lua legătura cu personalul din %{instance}.
+ review_server_policies: Revizuiește politicile serverului
+ statuses: 'Mai precis, pentru:'
+ subject:
+ disable: Contul tău %{acct} a fost înghețat
+ none: Avertizare pentru %{acct}
+ silence: Contul tău %{acct} a fost limitat
+ suspend: Contul tău %{acct} a fost suspendat
+ title:
+ disable: Cont înghețat
+ none: Avertizare
+ silence: Cont limitat
+ suspend: Cont suspendat
+ welcome:
+ edit_profile_action: Configurare profil
+ edit_profile_step: Vă puteți personaliza profilul încărcând un avatar, un antet, schimbându-vă numele afișat și multe altele. Dacă dorești să revizuiești noi urmăritori înainte de a primi permisiunea de a te urmări, îți poți bloca contul.
+ explanation: Iată câteva sfaturi pentru a începe
+ final_action: Începe să postezi
+ final_step: 'Începe să postezi! Chiar și fără urmăritori, mesajele publice pot fi văzute de alții, de exemplu pe fluxul local și pe hashtag-uri. Poate doriți să vă prezentați pe hashtag-ul #introducere.'
+ full_handle: Numele tău complet
+ full_handle_hint: Asta este ceea ce vei putea spune prietenilor pentru a te putea contacta sau pentru a te urmării de pe un alt server.
+ review_preferences_action: Schimbă preferințele
+ review_preferences_step: Asigură-te că setezi preferințele tale, cum ar fi e-mailurile pe care dorești să le primești sau ce nivel de confidențialitate vrei ca mesajele tale să fie implicite. Dacă nu ai rău de mişcare, ai putea alege să activezi imaginile GIF să pornească automat.
+ subject: Bine ai venit
+ tip_federated_timeline: Fluxul federat este o vedere de ansamblu a rețelei Mastodon. Dar include doar oameni la care s-au abonat vecinii tăi, așa că nu este completă.
+ tip_following: Urmăriți implicit administratorul(ii) serverului. Pentru a găsi oameni mai interesanți, verificați fluxurile locale și federalizate.
+ tip_local_timeline: Fluxul local este o vedere în ansamblu a persoanelor de pe %{instance}. Aceștia sunt vecinii tăi apropiați!
+ tip_mobile_webapp: Dacă navigatorul tău mobil îți oferă să adaugi Mastodon pe ecranul tău de pornire, poți primi notificări push. Se comportă ca o aplicație nativă în multe moduri!
+ tips: Sfaturi
+ title: Bine ai venit la bord, %{name}!
+ users:
+ follow_limit_reached: Nu poți urmări mai mult de %{limit} persoane
+ invalid_email: Adresa de e-mail nu este validă
+ invalid_otp_token: Cod doi pași nevalid
+ otp_lost_help_html: Dacă ai pierdut accesul la ambele, poți lua legătura cu %{email}
+ seamless_external_login: Sunteți autentificat prin intermediul unui serviciu extern, astfel încât parola și setările de e-mail nu sunt disponibile.
+ signed_in_as: 'Conectat ca:'
+ verification:
+ explanation_html: 'Poți să te verifici ca proprietar al link-urilor din metadatele profilului tău. Pentru aceasta, site-ul web asociat trebuie să conțină un link înapoi la profilul tău. Link-ul înapoi trebuie să aibă un atribut rel="me"
. Conținut textului link-ului nu contează. Iată un exemplu:'
+ verification: Verificare
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
index 6196ac3eb..b84da7abf 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -100,6 +100,7 @@ ru:
delete: Удалить
destroyed_msg: Заметка модератора успешно удалена!
accounts:
+ add_email_domain_block: Добавить домен электронной почты в чёрный список
approve: Подтвердить
approve_all: Подтвердить все
are_you_sure: Вы уверены?
@@ -180,6 +181,7 @@ ru:
staff: Персонал
user: Пользователь
search: Поиск
+ search_same_email_domain: Другие пользователи с тем же доменом электронной почты
search_same_ip: Другие пользователи с таким же IP
shared_inbox_url: URL общих входящих
show:
@@ -201,6 +203,42 @@ ru:
web: Веб
whitelisted: В белом списке
action_logs:
+ action_types:
+ assigned_to_self_report: Присвоение жалоб
+ change_email_user: Изменение e-mail пользователей
+ confirm_user: Подтверждение пользователей
+ create_account_warning: Выдача предупреждения
+ create_announcement: Создание объявлений
+ create_custom_emoji: Добавление эмодзи
+ create_domain_allow: Создать разрешение для домена
+ create_domain_block: Блокировка доменов
+ create_email_domain_block: Блокировка e-mail доменов
+ demote_user: Разжалование пользователей
+ destroy_announcement: Удаление объявлений
+ destroy_custom_emoji: Удаление эмодзи
+ destroy_domain_allow: Удалить разрешение для домена
+ destroy_domain_block: Разблокировка доменов
+ destroy_email_domain_block: Разблокировка e-mail доменов
+ destroy_status: Удаление постов
+ disable_2fa_user: Отключение 2FA
+ disable_custom_emoji: Отключение эмодзи
+ disable_user: Заморозка пользователей
+ enable_custom_emoji: Включение эмодзи
+ enable_user: Разморозка пользователей
+ memorialize_account: Сделать мемориалом
+ promote_user: Повышение пользователей
+ remove_avatar_user: Удаление аватаров
+ reopen_report: Возобновление жалоб
+ reset_password_user: Сброс пароля пользователей
+ resolve_report: Отметка жалоб «решёнными»
+ silence_account: Скрытие пользователей
+ suspend_account: Блокировка пользователей
+ unassigned_report: Снятие жалоб
+ unsilence_account: Отмена скрытия пользователей
+ unsuspend_account: Разблокировка пользователей
+ update_announcement: Обновление объявлений
+ update_custom_emoji: Обновление эмодзи
+ update_status: Изменение постов
actions:
assigned_to_self_report: "%{name} назначил(а) себя для решения жалобы %{target}"
change_email_user: "%{name} сменил(а) e-mail пользователя %{target}"
@@ -218,7 +256,7 @@ ru:
destroy_domain_block: "%{name} разблокировал(а) домен %{target}"
destroy_email_domain_block: "%{name} добавил(а) e-mail домен %{target} в белый список"
destroy_status: "%{name} удалил(а) пост пользователя %{target}"
- disable_2fa_user: "%{name} отключил(а) двухэтапную авторизацию у пользователя %{target}"
+ disable_2fa_user: "%{name} отключил(а) требование двухэтапной авторизации для пользователя %{target}"
disable_custom_emoji: "%{name} отключил(а) эмодзи %{target}"
disable_user: "%{name} заморозил(а) пользователя %{target}"
enable_custom_emoji: "%{name} включил(а) эмодзи %{target}"
@@ -238,6 +276,9 @@ ru:
update_custom_emoji: "%{name} обновил(а) эмодзи %{target}"
update_status: "%{name} изменил(а) пост пользователя %{target}"
deleted_status: "(удалённый пост)"
+ empty: Журнал пуст.
+ filter_by_action: Фильтр по действию
+ filter_by_user: Фильтр по пользователю
title: Журнал событий
announcements:
destroyed_msg: Объявление удалено.
@@ -373,6 +414,7 @@ ru:
destroyed_msg: Домен убран из списка e-mail блокировки
domain: Домен
empty: Никакие e-mail домены не блокируются.
+ from_html: с %{domain}
new:
create: Создать блокировку
title: Новая блокировка по домену
@@ -381,9 +423,9 @@ ru:
by_domain: Домен
delivery_available: Доставка возможна
known_accounts:
- few: "%{count} известных учётных записей"
+ few: "%{count} известные учётные записи"
many: "%{count} известных учётных записей"
- one: "%{count} известных учётных записей"
+ one: "%{count} известная учётная запись"
other: "%{count} известных учётных записей"
moderation:
all: Все
@@ -434,12 +476,12 @@ ru:
few: "%{count} заметки"
many: "%{count} заметок"
one: "%{count} заметка"
- other: "%{count} заметки"
+ other: "%{count} заметок"
reports:
few: "%{count} жалобы"
many: "%{count} жалоб"
one: "%{count} жалоба"
- other: "%{count} жалобы"
+ other: "%{count} жалоб"
action_taken_by: 'Действие предпринято:'
are_you_sure: Вы уверены?
assign_to_self: Назначить себе
@@ -558,6 +600,9 @@ ru:
trends:
desc_html: Публично отобразить проверенные хэштеги, актуальные на данный момент
title: Популярные хэштеги
+ site_uploads:
+ delete: Удалить загруженный файл
+ destroyed_msg: Файл успешно удалён.
statuses:
back_to_account: Назад к учётной записи
batch:
@@ -594,7 +639,6 @@ ru:
warning_presets:
add_new: Добавить
delete: Удалить
- edit: Изменить
edit_preset: Удалить шаблон предупреждения
title: Управление шаблонами предупреждений
admin_mailer:
@@ -612,6 +656,7 @@ ru:
add_new: Создать псевдоним
created_msg: Новый псевдоним установлен. Теперь мы можете начать миграцию со старой учётной записи.
deleted_msg: Псевдоним успешно удалён. Миграция старой учётной записи в текущую более невозможна.
+ empty: У вас нет псевдонимов.
hint_html: Если вы собираетесь мигрировать с другой учётной записи на эту, вы можете настроить псевдоним, что требуется для переноса подписчиков со старой учётной записи. Это действие само по себе безвредно и обратимо. Миграция учётной записи начинается со старой учётной записи.
remove: Отвязать псевдоним
appearance:
@@ -678,16 +723,17 @@ ru:
confirming: Ожидание подтверждения e-mail.
functional: Ваша учётная запись в полном порядке.
pending: Ваша заявка ожидает одобрения администраторами, это может занять немного времени. Вы получите письмо, как только заявку одобрят.
- redirecting_to: Ваша учётная запись признана неактивным, потому что она перенаправляется на %{acct}.
+ redirecting_to: Ваша учётная запись деактивированна, потому что вы настроили перенаправление на %{acct}.
trouble_logging_in: Не удаётся войти?
authorize_follow:
already_following: Вы уже подписаны на эту учётную запись
+ already_requested: Вы уже отправили запрос на подписку на эту учётную запись
error: К сожалению, при поиске удалённой учётной записи возникла ошибка
follow: Подписаться
follow_request: 'Вы отправили запрос на подписку:'
- following: 'Ура! Теперь Вы подписаны на:'
+ following: 'Готово! Вы подписались на:'
post_follow:
- close: Или просто закрыть это окно.
+ close: Или просто закройте это окно.
return: Вернуться к профилю пользователя
web: Открыть в веб-версии
title: Подписаться на %{acct}
@@ -723,7 +769,7 @@ ru:
before: 'Внимательно прочитайте следующую информацию перед началом:'
caches: Некоторые данные, обработанные другими узлами, однако, могут храниться ещё какое-то время
data_removal: Все ваши золотые посты, шикарный профиль и прочие данные будут безвозвратно уничтожены
- email_change_html: Поменять свой e-mail можно не удаляя учётной записи
+ email_change_html: Поменять свой e-mail можно не удаляя учётную запись
email_contact_html: Если письмо не приходит, обратитесь за помощю на %{email}
email_reconfirmation_html: Если вы не получили письмо с подтверждением, его можно запросить ещё раз
irreversible: После удаления восстановить или повторно активировать учётную запись не получится
@@ -827,14 +873,16 @@ ru:
inactive: Неактивно
publicize_checkbox: 'И опубликуйте текст:'
publicize_toot: 'Подтверждено! Я %{username} на %{service}: %{url}'
+ remove: Удалить идентификатор
+ removed: Идентификатор учётной записи удалён
status: Статус
view_proof: Посмотреть подтверждение
imports:
modes:
merge: Объединить
- merge_long: Сохранить имеющиеся данные и добавить новые
+ merge_long: Сохранить имеющиеся данные и добавить новые.
overwrite: Перезаписать
- overwrite_long: Перезаписать имеющиеся данные новыми
+ overwrite_long: Перезаписать имеющиеся данные новыми.
preface: Вы можете загрузить некоторые данные, например, списки людей, на которых Вы подписаны или которых блокируете, в Вашу учётную запись на этом узле из файлов, экспортированных с другого узла.
success: Ваши данные были успешно загружены и будут обработаны с должной скоростью
types:
@@ -863,7 +911,7 @@ ru:
one: 1 исп
other: "%{count} исп"
max_uses_prompt: Без ограничения
- prompt: Создавайте и делитесь ссылками с другими, чтобы предоставить им доступом к этому узлу
+ prompt: Создавайте и делитесь ссылками с другими, чтобы предоставить им доступом к этому узлу.
table:
expires_at: Истекает
uses: Исп.
@@ -874,6 +922,7 @@ ru:
media_attachments:
validations:
images_and_video: Нельзя добавить видео к посту с изображениями
+ not_ready: Не удаётся прикрепить файлы, обработка которых не завершена. Повторите попытку чуть позже!
too_many: Нельзя добавить более 4 файлов
migrations:
acct: имя@домен новой учётной записи
@@ -924,8 +973,8 @@ ru:
other: "%{count} новых уведомлений с вашего последнего захода \U0001F418"
title: В ваше отсутствие…
favourite:
- body: "%{name} добавил ваш пост в избранное:"
- subject: "%{name} добавил ваш пост в избранное"
+ body: "%{name} добавил(а) ваш пост в избранное:"
+ subject: "%{name} добавил(а) ваш пост в избранное"
title: Понравившийся статус
follow:
body: "%{name} теперь подписан(а) на вас!"
@@ -939,7 +988,7 @@ ru:
mention:
action: Ответить
body: 'Вас упомянул(а) %{name} в:'
- subject: Вы были упомянуты %{name}
+ subject: "%{name} упомянул(а) вас"
title: Новое упоминание
reblog:
body: 'Ваш пост был продвинут %{name}:'
@@ -977,7 +1026,7 @@ ru:
too_few_options: должно быть больше 1 варианта
too_many_options: может содержать не больше %{max} вариантов
preferences:
- other: Всё остальное
+ other: Остальное
posting_defaults: Настройки отправки по умолчанию
public_timelines: Публичные ленты
reactions:
@@ -1010,7 +1059,7 @@ ru:
remote_interaction:
favourite:
proceed: Добавить в избранное
- prompt: 'Вы собираетесь поставить отметку "нравится" этому посту:'
+ prompt: 'Вы собираетесь добавить в избранное следующий пост:'
reblog:
proceed: Продвинуть пост
prompt: 'Вы хотите продвинуть этот пост:'
@@ -1105,6 +1154,8 @@ ru:
many: 'содержались запрещённые хэштеги: %{tags}'
one: 'содержался запрещённый хэштег: %{tags}'
other: 'содержались запрещённые хэштеги: %{tags}'
+ errors:
+ in_reply_not_found: Пост, на который вы пытаетесь ответить, не существует или удалён.
language_detection: Определять язык автоматически
open_in_web: Открыть в веб-версии
over_character_limit: превышен лимит символов (%{max})
@@ -1115,7 +1166,7 @@ ru:
reblog: Нельзя закрепить продвинутый пост
poll:
total_people:
- few: "%{count} человек"
+ few: "%{count} человека"
many: "%{count} человек"
one: "%{count} человек"
other: "%{count} человек"
@@ -1230,7 +1281,7 @@ ru:
default: "%d %b %Y, %H:%M"
month: "%m.%Y"
two_factor_authentication:
- code_hint: Для подтверждения введите код, сгенерированный приложением-аутентификатором
+ code_hint: Для подтверждения введите код, сгенерированный приложением-аутентификатором.
description_html: 'На этой странице можно включить двухфакторную авторизацию: с ней, чтобы войти в свою учётную запись, потребуется ввести небольшой временный код, генерируемый через приложение на своём смартфоне.'
disable: Отключить
enable: Включить
@@ -1239,7 +1290,7 @@ ru:
generate_recovery_codes: Сгенерировать коды восстановления
instructions_html: "Отсканируйте этот QR-код с помощью Google Authenticator, Яндекс.Ключа или любого другого подобного приложения. После сканирования и добавления, приложение начнёт генерировать коды, которые потребуется вводить для завершения входа в учётную запись."
lost_recovery_codes: Коды восстановления позволяются войти в учётную запись в случае утери смартфона. Если вы потеряли свои коды восстановления, вы можете создать новые здесь. Прошлые коды работать перестанут.
- manual_instructions: 'Если Вы не можете отсканировать QR-код и хотите ввести его вручную, секрет представлен здесь открытым текстом:'
+ manual_instructions: 'Если отсканировать QR-код не получается или не представляется возможным, вы можете ввести его вручную:'
recovery_codes: Коды восстановления
recovery_codes_regenerated: Коды восстановления успешно сгенерированы
recovery_instructions_html: 'Пожалуйста, сохраните коды ниже в надёжном месте: они понадобятся, чтобы войти в учётную запись, если вы потеряете доступ к своему смартфону. Вы можете вручную переписать их, распечатать и спрятать среди важных документов или, например, в любимой книжке. Каждый код действителен один раз.'
@@ -1260,8 +1311,8 @@ ru:
statuses: 'В частности, для:'
subject:
disable: Ваша учётная запись %{acct} заморожена
- none: "%{acct}, вам вынесено предупреждение"
- silence: На вашу учётную запись, %{acct}, были наложены ограничения
+ none: "%{acct} вынесено предупреждение"
+ silence: На учётную запись %{acct} наложены ограничения
suspend: Ваша учётная запись %{acct} была заблокирована
title:
disable: Учётная запись заморожена
diff --git a/config/locales/sc.yml b/config/locales/sc.yml
new file mode 100644
index 000000000..d1b8b43b4
--- /dev/null
+++ b/config/locales/sc.yml
@@ -0,0 +1,20 @@
+---
+sc:
+ errors:
+ '400': The request you submitted was invalid or malformed.
+ '403': You don't have permission to view this page.
+ '404': The page you are looking for isn't here.
+ '406': This page is not available in the requested format.
+ '410': The page you were looking for doesn't exist here anymore.
+ '422':
+ '429': Too many requests
+ '500':
+ '503': The page could not be served due to a temporary server failure.
+ invites:
+ expires_in:
+ '1800': 30 minutes
+ '21600': 6 hours
+ '3600': 1 hour
+ '43200': 12 hours
+ '604800': 1 week
+ '86400': 1 day
diff --git a/config/locales/simple_form.ar.yml b/config/locales/simple_form.ar.yml
index 52933da12..0be13c8e5 100644
--- a/config/locales/simple_form.ar.yml
+++ b/config/locales/simple_form.ar.yml
@@ -8,7 +8,9 @@ ar:
acct: ادخِل عنون الحساب username@domain الذي تودّ الإنتقال إليه
account_warning_preset:
text: بإمكانك استخدام نفس القواعد التي نجدها في التبويقات كعناوين الروابط والوسوم والإشارات
+ title: اختياري. غير مرئي للمُستَلِم
admin_account_action:
+ include_statuses: سيرى المستخدم أي مِن التبويقات تسببت في إجراء الإشراف أو التحذير
send_email_notification: سوف يتلقى المستخدم رسالة تُفسِّر ما حدث على حسابه
type_html: اختر ما تود إجراؤه على %{acct}
warning_preset_id: اختياري. يمكنك إضافة نص مخصص إلى نهاية النموذج
@@ -70,6 +72,7 @@ ar:
acct: مُعرّف الحساب الجديد
account_warning_preset:
text: نموذج نصي
+ title: العنوان
admin_account_action:
include_statuses: أدرج التبويقات التي تم الإبلاغ عنها ضمن الرسالة الإلكترونية
send_email_notification: إشعار المستخدِم عبر البريد الإلكتروني
diff --git a/config/locales/simple_form.ast.yml b/config/locales/simple_form.ast.yml
index 39cfa32c4..1a62eb76b 100644
--- a/config/locales/simple_form.ast.yml
+++ b/config/locales/simple_form.ast.yml
@@ -28,6 +28,8 @@ ast:
fields:
name: Etiqueta
value: Conteníu
+ account_warning_preset:
+ title: Títulu
admin_account_action:
type: Aición
types:
diff --git a/config/locales/simple_form.br.yml b/config/locales/simple_form.br.yml
index c7677c850..b67db471f 100644
--- a/config/locales/simple_form.br.yml
+++ b/config/locales/simple_form.br.yml
@@ -1 +1,23 @@
+---
br:
+ simple_form:
+ labels:
+ account_warning_preset:
+ title: Titl
+ announcement:
+ text: Kemenn
+ defaults:
+ display_name: Anv diskouezet
+ header: Talbenn
+ locale: Yezh ar c'hetal
+ new_password: Ger-tremen nevez
+ password: Ger-tremen
+ setting_display_media_default: Dre ziouer
+ setting_display_media_hide_all: Kuzhat pep tra
+ setting_display_media_show_all: Diskouez pep tra
+ tag:
+ name: Ger-klik
+ 'no': Ket
+ required:
+ mark: "*"
+ 'yes': Ya
diff --git a/config/locales/simple_form.ca.yml b/config/locales/simple_form.ca.yml
index e91b74f85..f912e2e9e 100644
--- a/config/locales/simple_form.ca.yml
+++ b/config/locales/simple_form.ca.yml
@@ -8,6 +8,7 @@ ca:
acct: Especifica l'usuari@domini del compte al que et vols moure
account_warning_preset:
text: Pots utilitzar totes les sintaxi com ara URL, etiquetes i mencions
+ title: Opcional. No és visible per al destinatari
admin_account_action:
include_statuses: L'usuari veurà quins tuts han causat l'acció de moderació o avís
send_email_notification: L'usuari rebrà una explicació del que ha passat amb el seu compte
@@ -53,6 +54,9 @@ ca:
whole_word: Quan la paraula clau o la frase sigui només alfanumèrica, s'aplicarà si coincideix amb la paraula sencera
domain_allow:
domain: Aquest domini podrà obtenir dades d’aquest servidor i les dades entrants d’aquests seran processades i emmagatzemades
+ email_domain_block:
+ domain: Això pot ser el nom del domini que es veu en l’adreça de correu electrònic, el registre MX al que resol el domini o l’IP del servidor al que resol el registre MX. Es comprovaran amb el registre d’usuari i es rebutjarà la inscripció.
+ with_dns_records: Es procurarà resoldre els registres DNS del domini determinat i els resultats també es llistaran a la llista negra
featured_tag:
name: 'És possible que vulguis utilitzar un d''aquests:'
form_challenge:
@@ -78,6 +82,7 @@ ca:
acct: Nom del nou compte
account_warning_preset:
text: Text predefinit
+ title: Títol
admin_account_action:
include_statuses: Inclou tuts reportats en el correu electrònic
send_email_notification: Notifica l'usuari per correu electrònic
@@ -150,6 +155,8 @@ ca:
username: Nom d'usuari
username_or_email: Nom d'usuari o adreça electrònica
whole_word: Paraula sencera
+ email_domain_block:
+ with_dns_records: Incloure registres MX i IP del domini
featured_tag:
name: Etiqueta
interactions:
diff --git a/config/locales/simple_form.co.yml b/config/locales/simple_form.co.yml
index f4737069b..9ea83a6e7 100644
--- a/config/locales/simple_form.co.yml
+++ b/config/locales/simple_form.co.yml
@@ -8,6 +8,7 @@ co:
acct: Entrate u cugnome@duminiu di u contu induve vulete traslucà
account_warning_preset:
text: Pudete utilizà a sintassa di i statuti, per esempiu l'URL, hashtag, minzione
+ title: In uzzione. Micca visibile per u distinatariu
admin_account_action:
include_statuses: L'utilizatore viderà i statuti rispunsevuli di l'azzione o l'avertimentu di muderazione
send_email_notification: L'utilizatore hà da riceve una spiegazione di cio chì hè accadutu à u so contu
@@ -53,6 +54,9 @@ co:
whole_word: Quandu a parolla o a frasa sana hè alfanumerica, sarà applicata solu s'ella currisponde à a parolla sana
domain_allow:
domain: Stu duminiu puderà ricuperà i dati di stu servore è i dati ch'affaccanu da quallà saranu trattati è cunservati
+ email_domain_block:
+ domain: Pò esse u duminiu affissatu nant'à l'indirizzu e-mail, l'intrata MX assuciata à u duminiu, o l'IP di u servore assuciatu à l'intrata MX. Quessi anu da esse verificati durante l'arregistramente di l'utilizatore, chì sarà righjittatu.
+ with_dns_records: Un tintativu di cunsultà i dati DNS di u duminiu sarà fattu, è i risultati saranu ancu messi nant'à a lista nera
featured_tag:
name: 'Pudete vulè utilizà unu di quelli:'
form_challenge:
@@ -78,6 +82,7 @@ co:
acct: Cugnome di u novu contu
account_warning_preset:
text: Testu preselezziunatu
+ title: Titulu
admin_account_action:
include_statuses: Inchjude i statuti palisati indè l'e-mail
send_email_notification: Nutificà l'utilizatore cù un'e-mail
@@ -150,6 +155,8 @@ co:
username: Cugnome
username_or_email: Cugnome o Email
whole_word: Parolla sana
+ email_domain_block:
+ with_dns_records: Inchjude intrate MX è indirizze IP di u duminiu
featured_tag:
name: Hashtag
interactions:
diff --git a/config/locales/simple_form.cs.yml b/config/locales/simple_form.cs.yml
index 62d5823fc..7795f43f3 100644
--- a/config/locales/simple_form.cs.yml
+++ b/config/locales/simple_form.cs.yml
@@ -8,6 +8,7 @@ cs:
acct: Zadejte svůj účet, na který se chcete přesunout, ve formátu přezdívka@doména
account_warning_preset:
text: Můžete používat syntaxi tootů, jako například URL, hashtagy a zmínky
+ title: Nepovinné. Není viditelné pro příjemce
admin_account_action:
include_statuses: Uživatel uvidí, které tooty způsobily moderátorskou akci nebo varování
send_email_notification: Uživatel obdrží vysvětlení toho, co se stalo s jeho účtem
@@ -78,6 +79,7 @@ cs:
acct: Adresa nového účtu
account_warning_preset:
text: Text předlohy
+ title: Nadpis
admin_account_action:
include_statuses: Zahrnout v e-mailu nahlášené tooty
send_email_notification: Informovat uživatele e-mailem
@@ -150,6 +152,8 @@ cs:
username: Uživatelské jméno
username_or_email: Uživatelské jméno nebo e-mail
whole_word: Celé slovo
+ email_domain_block:
+ with_dns_records: Zahrnout MX záznamy a IP adresy domény
featured_tag:
name: Hashtag
interactions:
diff --git a/config/locales/simple_form.cy.yml b/config/locales/simple_form.cy.yml
index 19aca7334..d6681e664 100644
--- a/config/locales/simple_form.cy.yml
+++ b/config/locales/simple_form.cy.yml
@@ -8,6 +8,7 @@ cy:
acct: Rhowch enwdefnyddiwr@parth y cyfrif rydych chi am symud iddo
account_warning_preset:
text: Gallwch defnyddio cystrawen tŵt, fel URLs, hashnodau a sôniadau
+ title: Yn ddewisiol. Ddim yn weladwy i'r derbynydd
admin_account_action:
include_statuses: Bydd y defnyddiwr yn gweld pa tŵtiau sydd wedi achosi'r weithred gymedroli neu'r rhybudd
send_email_notification: Bydd y defnyddiwr yn derbyn esboniad o beth digwyddodd gyda'i cyfrif
@@ -53,6 +54,9 @@ cy:
whole_word: Os yw'r allweddair neu'r ymadrodd yn alffaniwmerig yn unig, mi fydd ond yn cael ei osod os yw'n cyfateb a'r gair cyfan
domain_allow:
domain: Bydd y parth hwn yn gallu nôl data o'r gweinydd hwn a bydd data sy'n dod i mewn ohono yn cael ei brosesu a'i storio
+ email_domain_block:
+ domain: Gall hyn fod yr enw parth sy'n dangos yn yr ebost, y cofnod MX mae'r parth yn adfer i, neu'r cyfeiriad IP o'r gweinydd mae'r cofnod MX yn adfer i. Bydd y rhain yn cael eu gwirio wrth i defnyddiwr cofrestru, a chaiff y cofrestriad ei wrthod.
+ with_dns_records: Bydd ceisiad i adfer cofnodau DNS y parth penodol yn cael ei wneud, a bydd y canlyniadau hefyd yn cael ei gosbrestru
featured_tag:
name: 'Efallai hoffech defnyddio un o''r rhain:'
form_challenge:
@@ -78,6 +82,7 @@ cy:
acct: Enw'r cyfrif newydd
account_warning_preset:
text: Testun rhagosodedig
+ title: Teitl
admin_account_action:
include_statuses: Cynhwyswch tŵtiau yr adroddwyd amdanynt yn yr e-bost
send_email_notification: Hysbysu'r defnyddiwr trwy e-bost
@@ -150,6 +155,8 @@ cy:
username: Enw defnyddiwr
username_or_email: Enw defnyddiwr neu e-bost
whole_word: Gair cyfan
+ email_domain_block:
+ with_dns_records: Cynnwys cofnodion MX a chyfeiriadau IP y parth
featured_tag:
name: Hashnod
interactions:
diff --git a/config/locales/simple_form.da.yml b/config/locales/simple_form.da.yml
index 3fadd7fb9..d7a10a4a9 100644
--- a/config/locales/simple_form.da.yml
+++ b/config/locales/simple_form.da.yml
@@ -39,6 +39,8 @@ da:
fields:
name: Etiket
value: Indhold
+ account_warning_preset:
+ title: Titel
admin_account_action:
include_statuses: Inkluder rapporteret toot i email
send_email_notification: Underret brugeren per email
diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml
index 0863cc4a8..02d8ffbaa 100644
--- a/config/locales/simple_form.de.yml
+++ b/config/locales/simple_form.de.yml
@@ -8,6 +8,7 @@ de:
acct: Gib den benutzernamen@domain des Kontos an, zu dem du umziehen möchtest
account_warning_preset:
text: Du kannst Beitragssyntax benutzen, wie z.B. URLs, Hashtags und Erwähnungen
+ title: Optional. Für den Empfänger nicht sichtbar
admin_account_action:
include_statuses: Der Benutzer wird sehen, welche Beiträge diese Maßnahme verursacht haben
send_email_notification: Benutzer_in wird Bescheid gegeben, was mit dem Konto geschehen ist
@@ -43,7 +44,7 @@ de:
setting_default_sensitive: Heikle Medien werden erst nach einem Klick sichtbar
setting_display_media_default: Verstecke Medien, die als sensibel markiert sind
setting_display_media_hide_all: Alle Medien immer verstecken
- setting_display_media_show_all: Medien, die als sensibel markiert sind, immer anzeigen
+ setting_display_media_show_all: Alle Medien immer anzeigen
setting_hide_network: Wem du folgst und wer dir folgt, wird in deinem Profil nicht angezeigt
setting_noindex: Betrifft dein öffentliches Profil und deine Beiträge
setting_show_application: Die Anwendung die du nutzst wird in der detaillierten Ansicht deiner Beiträge angezeigt
@@ -53,6 +54,9 @@ de:
whole_word: Wenn das Schlagwort nur aus Buchstaben und Zahlen besteht, wird es nur angewendet, wenn es dem ganzen Wort entspricht
domain_allow:
domain: Diese Domain kann Daten von diesem Server abrufen und eingehende Daten werden verarbeitet und gespeichert
+ email_domain_block:
+ domain: Dies kann der Domainname sein, der in der E-Mail-Adresse angezeigt wird, den MX-Datensatz, der aufgelöst wird oder die IP des Servers, auf dem der MX-Eintrag aufgelöst wird. Diese werden bei der Registrierung überprüft und die Registrierung wird abgelehnt.
+ with_dns_records: Ein Versuch die DNS-Einträge der Domain aufzulösen wurde unternommen und diese Ergebnisse werden unter anderem auch geblacklistet
featured_tag:
name: 'Du möchtest vielleicht einen von diesen benutzen:'
form_challenge:
@@ -78,6 +82,7 @@ de:
acct: Adresse des neuen Kontos
account_warning_preset:
text: Vorlagentext
+ title: Titel
admin_account_action:
include_statuses: Meldungen der E-Mail beifügen
send_email_notification: Benachrichtige den Nutzer per E-Mail
@@ -150,6 +155,8 @@ de:
username: Profilname
username_or_email: Profilname oder E-Mail
whole_word: Ganzes Wort
+ email_domain_block:
+ with_dns_records: MX-Einträge und IPs der Domain einbeziehen
featured_tag:
name: Hashtag
interactions:
diff --git a/config/locales/simple_form.el.yml b/config/locales/simple_form.el.yml
index 231c32959..841cafbf4 100644
--- a/config/locales/simple_form.el.yml
+++ b/config/locales/simple_form.el.yml
@@ -7,7 +7,8 @@ el:
account_migration:
acct: Όρισε το username@domain του λογαριασμού στον οποίο θέλεις να μετακινηθείς
account_warning_preset:
- text: Μπορείς να χρησιμοποιήσεις το ίδιο συντακτικό των τουτ όπως URL, ταμπέλες και αναφορές
+ text: Μπορείς να χρησιμοποιήσεις το ίδιο συντακτικό των τουτ όπως URL, ετικέτες και αναφορές
+ title: Προαιρετικό. Δεν εμφανίζεται στον παραλήπτη
admin_account_action:
include_statuses: Ο χρήστης θα δει ποια τουτ προκάλεσαν την προειδοποίηση ή την ενέργεια των διαχειριστών
send_email_notification: Ο χρήστης θα λάβει μια εξήγηση του τι συνέβη με τον λογαριασμό του
@@ -53,6 +54,9 @@ el:
whole_word: Όταν η λέξη ή η φράση κλειδί είναι μόνο αλφαριθμητική, θα εφαρμοστεί μόνο αν ταιριάζει με ολόκληρη τη λέξη
domain_allow:
domain: Ο τομέας αυτός θα επιτρέπεται να ανακτά δεδομένα από αυτό τον διακομιστή και τα εισερχόμενα δεδομένα θα επεξεργάζονται και θα αποθηκεύονται
+ email_domain_block:
+ domain: Αυτό μπορεί να είναι το όνομα του τομέα που εμφανίζεται στη διεύθυνση email, στην εγγραφή MX στην οποία δείχνει ο τομέας ή την διεύθυνση IP του σέρβερ που δείχνει η εγγραφή MX. Αυτά θα ελεγχθούν κατά την εγγραφή του χρήστη και η εγγραφή θα απορριφθεί αναλόγως.
+ with_dns_records: Θα γίνει απόπειρα ανάλυσης των εγγραφών DNS του τομέα και τα αποτελέσματα θα μπουν και αυτά σε μαύρη λίστα
featured_tag:
name: 'Ίσως να θες να χρησιμοποιήσεις μια από αυτές:'
form_challenge:
@@ -70,7 +74,7 @@ el:
labels:
account:
fields:
- name: Ταμπέλα
+ name: Περιγραφή
value: Περιεχόμενο
account_alias:
acct: Διακριτικό του παλιού λογαριασμού
@@ -78,6 +82,7 @@ el:
acct: Διακριτικό του νέου λογαριασμού
account_warning_preset:
text: Προκαθορισμένο κείμενο
+ title: Τίτλος
admin_account_action:
include_statuses: Συμπερίληψη των καταγγελλομένων τουτ στο email
send_email_notification: Ενημέρωση χρήστη μέσω email
@@ -150,8 +155,10 @@ el:
username: Όνομα χρηστη
username_or_email: Όνομα ή διεύθυνση email χρήστη
whole_word: Ολόκληρη λέξη
+ email_domain_block:
+ with_dns_records: Συμπερίληψη εγγραφών MX και διευθύνσεων IP του τομέα
featured_tag:
- name: Ταμπέλα
+ name: Ετικέτα
interactions:
must_be_follower: Μπλόκαρε τις ειδοποιήσεις από όσους δεν σε ακολουθούν
must_be_following: Μπλόκαρε τις ειδοποιήσεις από όσους δεν ακολουθείς
@@ -169,12 +176,12 @@ el:
pending_account: Αποστολή email όταν υπάρχει νέος λογαριασμός για επιθεώρηση
reblog: Αποστολή email όταν κάποιος προωθεί τη δημοσίευση σου
report: Αποστολή email όταν υποβάλλεται νέα καταγγελία
- trending_tag: Αποστολή email όταν μια μη-εγκεκριμένη ταμπέλα γίνεται δημοφιλής
+ trending_tag: Αποστολή email όταν μια μη-εγκεκριμένη ετικέτα γίνεται δημοφιλής
tag:
- listable: Εμφάνιση αυτής της ταμπέλας στο δημόσιο κατάλογο
- name: Ταμπέλα
- trendable: Εμφάνιση της ταμπέλας στις τάσεις
- usable: Χρήση της ταμπέλας σε τουτ
+ listable: Εμφάνιση αυτής της ετικέτας στο δημόσιο κατάλογο
+ name: Ετικέτα
+ trendable: Εμφάνιση της ετικέτας στις τάσεις
+ usable: Χρήση της ετικέτας σε τουτ
'no': Όχι
recommended: Προτείνεται
required:
diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml
index 105222b92..c91735e75 100644
--- a/config/locales/simple_form.en.yml
+++ b/config/locales/simple_form.en.yml
@@ -8,6 +8,7 @@ en:
acct: Specify the username@domain of the account you want to move to
account_warning_preset:
text: You can use post syntax, such as URLs, hashtags and mentions
+ title: Optional. Not visible to the recipient
admin_account_action:
include_statuses: The user will see which posts have caused the moderation action or warning
send_email_notification: The user will receive an explanation of what happened with their account
@@ -43,8 +44,8 @@ en:
setting_default_federation: Posts do not federate to other instances unless manually changed while composing
setting_default_sensitive: Sensitive media is hidden by default and can be revealed with a click
setting_display_media_default: Hide media marked as sensitive
- setting_display_media_hide_all: Always hide all media
- setting_display_media_show_all: Always show media marked as sensitive
+ setting_display_media_hide_all: Always hide media
+ setting_display_media_show_all: Always show media
setting_hide_network: Who you follow and who follows you will not be shown on your profile
setting_noindex: Affects your public profile and status pages
setting_show_application: The application you use to post will be displayed in the detailed view of your posts
@@ -54,6 +55,9 @@ en:
whole_word: When the keyword or phrase is alphanumeric only, it will only be applied if it matches the whole word
domain_allow:
domain: This domain will be able to fetch data from this server and incoming data from it will be processed and stored
+ email_domain_block:
+ domain: This can be the domain name that shows up in the e-mail address, the MX record that domain resolves to, or IP of the server that MX record resolves to. Those will be checked upon user sign-up and the sign-up will be rejected.
+ with_dns_records: An attempt to resolve the given domain's DNS records will be made and the results will also be blacklisted
featured_tag:
name: 'You might want to use one of these:'
form_challenge:
@@ -79,6 +83,7 @@ en:
acct: Handle of the new account
account_warning_preset:
text: Preset text
+ title: Title
admin_account_action:
include_statuses: Include reported posts in the e-mail
send_email_notification: Notify the user per e-mail
@@ -152,6 +157,8 @@ en:
username: Username
username_or_email: Username or Email
whole_word: Whole word
+ email_domain_block:
+ with_dns_records: Include MX records and IPs of the domain
featured_tag:
name: Hashtag
interactions:
diff --git a/config/locales/simple_form.eo.yml b/config/locales/simple_form.eo.yml
index ee7ec769a..e3e68b107 100644
--- a/config/locales/simple_form.eo.yml
+++ b/config/locales/simple_form.eo.yml
@@ -17,6 +17,7 @@ eo:
current_password: Pro sekuraj kialoj, bonvolu enigi la pasvorton de la nuna konto
current_username: Por konfirmi, bonvolu enigi la uzantnomon de la nuna konto
digest: Sendita nur post longa tempo de neaktiveco, kaj nur se vi ricevis personan mesaĝon en via foresto
+ discoverable: Montru ĉi tiun profilon en la profilujon por ke la konto estos pli-vaste vidata
email: Vi ricevos konfirman retmesaĝon
fields: Vi povas havi ĝis 4 tabelajn elementojn en via profilo
header: Formato PNG, GIF aŭ JPG. Ĝis %{size}. Estos malgrandigita al %{dimensions}px
@@ -35,6 +36,7 @@ eo:
setting_hide_network: Tiuj, kiujn vi sekvas, kaj tiuj, kiuj sekvas vin ne estos videblaj en via profilo
setting_noindex: Influas vian publikan profilon kaj mesaĝajn paĝojn
setting_show_application: La aplikaĵo, kiun vi uzas por afiŝi, estos montrita en la detala vido de viaj mesaĝoj
+ setting_use_blurhash: Transirojn estas bazita sur la koloroj de la kaŝitaj aŭdovidaĵoj sed ne montri iun ajn detalon
username: Via uzantnomo estos unika ĉe %{domain}
whole_word: Kiam la vorto aŭ frazo estas nur litera aŭ cifera, ĝi estos uzata nur se ĝi kongruas kun la tuta vorto
featured_tag:
@@ -105,7 +107,8 @@ eo:
setting_advanced_layout: Ebligi altnivelan retpaĝan interfacon
setting_aggregate_reblogs: Grupigi diskonigojn en tempolinioj
setting_auto_play_gif: Aŭtomate ekigi GIF-ojn
- setting_boost_modal: Montri fenestron por konfirmi antaŭ ol diskonigi
+ setting_boost_modal: Montri fenestron por konfirmi antaŭ ol diskonigi mesaĝon
+ setting_crop_images: Stuci bildojn en negrandigitaj mesaĝoj al 16x9
setting_default_language: Publikada lingvo
setting_default_privacy: Mesaĝa videbleco
setting_default_sensitive: Ĉiam marki aŭdovidaĵojn tiklaj
@@ -114,7 +117,7 @@ eo:
setting_display_media_default: Dekomenca
setting_display_media_hide_all: Kaŝi ĉiujn
setting_display_media_show_all: Montri ĉiujn
- setting_expand_spoilers: Ĉiam grandigi mesaĝojn markitajn per avertoj pri enhavo
+ setting_expand_spoilers: Ĉiam malfoldas mesaĝojn markitajn per averto pri enhavo
setting_hide_network: Kaŝi viajn sekvantojn kaj sekvatojn
setting_noindex: Ellistiĝi de retserĉila indeksado
setting_reduce_motion: Malrapidigi animaciojn
diff --git a/config/locales/simple_form.es-AR.yml b/config/locales/simple_form.es-AR.yml
index 78bb3e275..ad35135e4 100644
--- a/config/locales/simple_form.es-AR.yml
+++ b/config/locales/simple_form.es-AR.yml
@@ -8,6 +8,7 @@ es-AR:
acct: Especificá el nombredeusuario@dominio de la cuenta a la que querés mudarte
account_warning_preset:
text: Podés usar sintaxis de toots, como direcciones web, etiquetas y menciones
+ title: Opcional. No visible para el destinatario
admin_account_action:
include_statuses: El usuario verá qué toots causaron la acción de moderación o advertencia
send_email_notification: El usuario recibirá una explicación de lo que sucedió con su cuenta
@@ -53,6 +54,9 @@ es-AR:
whole_word: Cuando la palabra clave o frase es sólo alfanumérica, sólo será aplicado si coincide con toda la palabra
domain_allow:
domain: Este dominio podrá recolectar datos de este servidor, y los datos entrantes serán procesados y archivados
+ email_domain_block:
+ domain: Puede ser el nombre de dominio que aparece en la dirección de correo electrónico, el registro MX hacia el cual resuelve el dominio, o la dirección IP del servidor hacia el cual resuelve ese registro MX. Esto se comprobará en el momento del registro del usuario, y el registro será rechazado.
+ with_dns_records: Se hará un intento de resolver los registros DNS del dominio dado y los resultados serán también puestos en la lista de desaprobados
featured_tag:
name: 'Puede que quieras usar una de estas:'
form_challenge:
@@ -78,6 +82,7 @@ es-AR:
acct: Alias de la cuenta nueva
account_warning_preset:
text: Texto predefinido
+ title: Título
admin_account_action:
include_statuses: Incluir en el correo electrónico a los toots denunciados
send_email_notification: Notificar al usuario por correo electrónico
@@ -150,6 +155,8 @@ es-AR:
username: Nombre de usuario
username_or_email: Nombre de usuario o correo electrónico
whole_word: Palabra entera
+ email_domain_block:
+ with_dns_records: Incluir los registros MX y las direcciones IP del dominio
featured_tag:
name: Etiqueta
interactions:
diff --git a/config/locales/simple_form.es.yml b/config/locales/simple_form.es.yml
index 745de3332..b114b1424 100644
--- a/config/locales/simple_form.es.yml
+++ b/config/locales/simple_form.es.yml
@@ -8,6 +8,7 @@ es:
acct: Especifique el nombre de usuario@dominio de la cuenta a la cual se desea migrar
account_warning_preset:
text: Puede usar sintaxis de toots, como URLs, hashtags y menciones
+ title: Opcional. No visible para el destinatario
admin_account_action:
include_statuses: El usuario verá qué toots han causado la acción de moderación o advertencia
send_email_notification: El usuario recibirá una explicación de lo que sucedió con respecto a su cuenta
@@ -53,6 +54,9 @@ es:
whole_word: Cuando la palabra clave o frase es solo alfanumérica, solo será aplicado si concuerda con toda la palabra
domain_allow:
domain: Este dominio podrá obtener datos de este servidor y los datos entrantes serán procesados y archivados
+ email_domain_block:
+ domain: Puede ser el nombre de dominio que aparece en la dirección de correo, el registro MX hacia el cual resuelve el dominio, o la IP del servidor hacia el cual resuelve ese registro MX. Esto se comprobará en el momento del alta del usuario y el alta se rechazará.
+ with_dns_records: Se hará un intento de resolver los registros DNS del dominio dado y los resultados serán también puestos en lista negra
featured_tag:
name: 'Puede que quieras usar uno de estos:'
form_challenge:
@@ -78,6 +82,7 @@ es:
acct: Maneja la cuenta nueva
account_warning_preset:
text: Texto predefinido
+ title: Título
admin_account_action:
include_statuses: Incluir en el correo electrónico a los toots denunciados
send_email_notification: Notificar al usuario por correo electrónico
@@ -150,6 +155,8 @@ es:
username: Nombre de usuario
username_or_email: Usuario o Email
whole_word: Toda la palabra
+ email_domain_block:
+ with_dns_records: Incluye los registros MX y las IP del dominio
featured_tag:
name: Etiqueta
interactions:
diff --git a/config/locales/simple_form.eu.yml b/config/locales/simple_form.eu.yml
index 9e45fb032..c3520b072 100644
--- a/config/locales/simple_form.eu.yml
+++ b/config/locales/simple_form.eu.yml
@@ -8,8 +8,9 @@ eu:
acct: Zehaztu migrazioaren xede den kontuaren erabiltzaile@domeinua
account_warning_preset:
text: Toot sintaxia erabili dezakezu, URLak, traolak eta aipamenak
+ title: Aukerakoa. Hartzaileak ez du ikusiko
admin_account_action:
- include_statuses: Erabiltzaileak moderazio ekintza edo abisu bat eragin duten toot-ak ikusi ahal izango ditu
+ include_statuses: Erabiltzaileak moderazio ekintza edo abisu bat eragin duten tootak ikusi ahal izango ditu
send_email_notification: Erabiltzaileak bere kontuarekin gertatutakoaren azalpen bat jasoko du
text_html: Aukerakoa. Toot sintaxia erabili dezakezu. Abisu aurre-ezarpenak gehitu ditzakezu denbora aurrezteko
type_html: Erabaki zer egin %{acct} kontuarekin
@@ -19,7 +20,7 @@ eu:
ends_at: Aukerakoa. Iragapena une honetan automatikoki desargitaratuko da
scheduled_at: Laga hutsik iragarpena berehala argitaratzeko
starts_at: Aukerakoa. Zure iragarpena denbora-tarte batera lotuta dagoenerako
- text: Toot-etako sintaxia erabili dezakezu. Kontuan izan iragarpenak erabiltzailearen pantailan hartuko duen neurria
+ text: Tootetako sintaxia erabili dezakezu. Kontuan izan iragarpenak erabiltzailearen pantailan hartuko duen neurria
defaults:
autofollow: Gonbidapena erabiliz izena ematen dutenek automatikoki jarraituko dizute
avatar: PNG, GIF edo JPG. Gehienez %{size}. %{dimensions}px neurrira eskalatuko da
@@ -33,19 +34,19 @@ eu:
fields: 4 elementu bistaratu ditzakezu taula batean zure profilean
header: PNG, GIF edo JPG. Gehienez %{size}. %{dimensions}px eskalara txikituko da
inbox_url: Kopiatu erabili nahi duzun errelearen hasiera orriaren URLa
- irreversible: Iragazitako Toot-ak betirako galduko dira, geroago iragazkia kentzen baduzu ere
+ irreversible: Iragazitako tootak betirako galduko dira, geroago iragazkia kentzen baduzu ere
locale: Erabiltzaile-interfazea, e-mail mezuen eta jakinarazpenen hizkuntza
locked: Jarraitzaileak eskuz onartu behar dituzu
password: Erabili 8 karaktere gutxienez
phrase: Bat egingo du Maiuskula/minuskula kontuan hartu gabe eta edukiaren abisua kontuan hartu gabe
scopes: Zeintzuk API atzitu ditzakeen aplikazioak. Goi mailako arloa aukeratzen baduzu, ez dituzu azpikoak aukeratu behar.
- setting_aggregate_reblogs: Ez erakutsi bultzada berriak berriki bultzada jaso duten toot-entzat (berriki jasotako bultzadei eragiten die bakarrik)
+ setting_aggregate_reblogs: Ez erakutsi bultzada berriak berriki bultzada jaso duten tootentzat (berriki jasotako bultzadei eragiten die bakarrik)
setting_default_sensitive: Multimedia hunkigarria lehenetsita ezkutatzen da, eta sakatuz ikusi daiteke
setting_display_media_default: Ezkutatu hunkigarri gisa markatutako multimedia
setting_display_media_hide_all: Ezkutatu multimedia guztia beti
setting_display_media_show_all: Erakutsi beti hunkigarri gisa markatutako multimedia
setting_hide_network: Nor jarraitzen duzun eta nork jarraitzen zaituen ez da bistaratuko zure profilean
- setting_noindex: Zure profil publiko eta Toot-en orrietan eragina du
+ setting_noindex: Zure profil publiko eta tooten orrietan eragina du
setting_show_application: Tootak bidaltzeko erabiltzen duzun aplikazioa zure tooten ikuspegi xehetsuan bistaratuko da
setting_use_blurhash: Gradienteak ezkutatutakoaren koloreetan oinarritzen dira, baina xehetasunak ezkutatzen dituzte
setting_use_pending_items: Ezkutatu denbora-lerroko eguneraketak klik baten atzean jarioa automatikoki korritu ordez
@@ -53,6 +54,9 @@ eu:
whole_word: Hitz eta esaldi gakoa alfanumerikoa denean, hitz osoarekin bat datorrenean besterik ez da aplikatuko
domain_allow:
domain: Domeinu honek zerbitzari honetatik datuak hartu ahal izango ditu eta bertatik jasotako informazioa prozesatu eta gordeko da
+ email_domain_block:
+ domain: Hau e-mail helbidean agertzen den domeinua izan daiteke, honen MX erregistroa, edo MX erregistroaren IP helbidea. Hauek erabiltzaileak izena ematean egiaztatuko dira eta atzera botako da.
+ with_dns_records: Emandako domeinuaren DNS erregistroak ebazteko saiakera bat egingo da eta emaitzak ere zerrenda beltzean sartuko dira
featured_tag:
name: 'Hauetakoren bat erabili zenezake:'
form_challenge:
@@ -66,7 +70,7 @@ eu:
tag:
name: Letrak maiuskula/minuskulara aldatu ditzakezu besterik ez, adibidez irakurterrazago egiteko
user:
- chosen_languages: Ezer markatzekotan, hautatutako hizkuntzetan dauden toot-ak besterik ez dira erakutsiko
+ chosen_languages: Ezer markatzekotan, hautatutako hizkuntzetan dauden tootak besterik ez dira erakutsiko
labels:
account:
fields:
@@ -78,8 +82,9 @@ eu:
acct: Kontu berriaren helbidea
account_warning_preset:
text: Aurrez ezarritako testua
+ title: Izenburua
admin_account_action:
- include_statuses: Txertatu salatutako toot-ak e-mailean
+ include_statuses: Txertatu salatutako tootak e-mailean
send_email_notification: Jakinarazi erabiltzaileari e-mail bidez
text: Abisu pertsonalizatua
type: Ekintza
@@ -125,7 +130,7 @@ eu:
setting_aggregate_reblogs: Taldekatu bultzadak denbora-lerroetan
setting_auto_play_gif: Erreproduzitu GIF animatuak automatikoki
setting_boost_modal: Erakutsi baieztapen elkarrizketa-koadroa bultzada eman aurretik
- setting_crop_images: Moztu irudiak hedatu gabeko toot-etan 16x9 proportzioan
+ setting_crop_images: Moztu irudiak hedatu gabeko tootetan 16x9 proportzioan
setting_default_language: Argitalpenen hizkuntza
setting_default_privacy: Mezuen pribatutasuna
setting_default_sensitive: Beti markatu edukiak hunkigarri gisa
@@ -140,7 +145,7 @@ eu:
setting_reduce_motion: Murriztu animazioen mugimenduak
setting_show_application: Utzi agerian tootak bidaltzeko erabilitako aplikazioa
setting_system_font_ui: Erabili sistemako tipografia lehenetsia
- setting_theme: Gunearen gaia
+ setting_theme: Gunearen azala
setting_trends: Erakutsi gaurko joerak
setting_unfollow_modal: Erakutsi baieztapen elkarrizketa-koadroa inor jarraitzeari utzi aurretik
setting_use_blurhash: Erakutsi gradiente koloretsuak ezkutatutako multimediaren ordez
@@ -150,6 +155,8 @@ eu:
username: Erabiltzaile-izena
username_or_email: Erabiltzaile-izena edo e-mail helbidea
whole_word: Hitz osoa
+ email_domain_block:
+ with_dns_records: Sartu ere domeinuaren MX erregistroak eta IPak
featured_tag:
name: Traola
interactions:
@@ -174,7 +181,7 @@ eu:
listable: Baimendu traola hau bilaketetan agertzea eta profilen direktorioan
name: Traola
trendable: Baimendu traola hau joeretan agertzea
- usable: Baimendu toot-ek traola hau erabiltzea
+ usable: Baimendu tootek traola hau erabiltzea
'no': Ez
recommended: Aholkatua
required:
diff --git a/config/locales/simple_form.fa.yml b/config/locales/simple_form.fa.yml
index 0001efaf5..dea53ddbb 100644
--- a/config/locales/simple_form.fa.yml
+++ b/config/locales/simple_form.fa.yml
@@ -8,6 +8,7 @@ fa:
acct: نشانی username@domain را برای حسابی که میخواهید به آن منتقل شوید بنویسید
account_warning_preset:
text: میتوانید مانند بوقهای معمولی کاربران دیگر را نام ببرید یا پیوند و برچسب بگذارید
+ title: اختیاری. برای گیرنده قابل مشاهده نیست
admin_account_action:
include_statuses: این کاربر خواهد دید که کدام بوق او موجب اقدام مدیریتی یا هشدار شده است
send_email_notification: توضیحی که کاربر میبینید که برای حسابش چه رخ داده است
@@ -24,7 +25,7 @@ fa:
autofollow: کسانی که از راه دعوتنامه عضو میشوند به طور خودکار پیگیر شما خواهند شد
avatar: یکی از قالبهای PNG یا GIF یا JPG. بیشترین اندازه %{size}. تصویر به اندازهٔ %{dimensions} پیکسل تبدیل خواهد شد
bot: این حساب بیشتر به طور خودکار فعالیت میکند و نظارت پیوستهای روی آن وجود ندارد
- context: یک یا چند زمینه که فیلتر باید در آنها اعمال شود
+ context: یک یا چند زمینه که پالایه باید در آنها اعمال شود
current_password: به دلایل امنیتی لطفاً رمز این حساب را وارد کنید
current_username: برای تأیید، لطفاً نام کاربری حساب فعلی را وارد کنید
digest: تنها وقتی فرستاده میشود که مدتی طولانی فعالیتی نداشته باشید و در این مدت برای شما پیغام خصوصیای نوشته شده باشد
@@ -33,7 +34,7 @@ fa:
fields: شما میتوانید تا چهار مورد را در یک جدول در نمایهٔ خود نمایش دهید
header: یکی از قالبهای PNG یا GIF یا JPG. بیشترین اندازه %{size}. تصویر به اندازهٔ %{dimensions} پیکسل تبدیل خواهد شد
inbox_url: نشانی صفحهٔ اصلی رلهای را که میخواهید به کار ببرید کپی کنید
- irreversible: بوقهای فیلترشده به طور برگشتناپذیری ناپدید میشوند، حتی اگر فیلتر را بعداً بردارید
+ irreversible: بوقهای پالوده به طور برگشتناپذیری ناپدید میشوند، حتا اگر بعدها پالایه برداشته شود
locale: زبان محیط کاربری، ایمیلها، و اعلانها
locked: باید پیگیران تازه را خودتان تأیید کنید
password: دستکم باید ۸ نویسه داشته باشد
@@ -53,6 +54,9 @@ fa:
whole_word: اگر کلیدواژه فقط دارای حروف و اعداد باشد، تنها وقتی پیدا میشود که با کل یک واژه در متن منطبق باشد، نه با بخشی از یک واژه
domain_allow:
domain: این دامین خواهد توانست دادهها از این سرور را دریافت کند و دادههای از این دامین در اینجا پردازش و ذخیره خواهند شد
+ email_domain_block:
+ domain: میتواند نام دامنه که در نشانی رایانامه ظاهر میشود، رکورد MX که دامنه به آن resolve میشود یا IP کارسازی که رکورد MX به آن resolve میشود باشد. این موارد هنگام ثبتنام کاربر بررسی شده و ثبتنام رد میشود.
+ with_dns_records: تلاشی برای resolve کردن رکوردهای ساناد دامنهٔ دادهشده انجام شده و نتیجه نیز مسدود خواهد شد
featured_tag:
name: 'شاید بخواهید چنین چیزهایی را به کار ببرید:'
form_challenge:
@@ -78,6 +82,7 @@ fa:
acct: نشانی حساب تازه
account_warning_preset:
text: متن از پیش آمادهشده
+ title: عنوان
admin_account_action:
include_statuses: بوقهای گزارششده را در ایمیل بگنجان
send_email_notification: اطلاعرسانی به کاربر از راه ایمیل
@@ -102,7 +107,7 @@ fa:
chosen_languages: جدا کردن زبانها
confirm_new_password: تأیید رمز تازه
confirm_password: تأیید رمز
- context: زمینههای فیلترکردن
+ context: زمینههای پالایش
current_password: رمز فعلی
data: دادهها
discoverable: این حساب را در فهرست گزیدهٔ کاربران نشان بده
@@ -150,6 +155,8 @@ fa:
username: نام کاربری (لاتین)
username_or_email: نام کاربری یا ایمیل
whole_word: تطابق واژهٔ کامل
+ email_domain_block:
+ with_dns_records: شامل رکوردهای MX وIPهای دامنه
featured_tag:
name: برچسب
interactions:
diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml
index 0e5332f1e..bbcd53f5e 100644
--- a/config/locales/simple_form.fr.yml
+++ b/config/locales/simple_form.fr.yml
@@ -3,11 +3,12 @@ fr:
simple_form:
hints:
account_alias:
- acct: Spécifiez le nom d’utilisateur@domaine du compte que vous souhaitez migrer
+ acct: Spécifiez l’identifiant@domaine du compte que vous souhaitez migrer
account_migration:
- acct: Spécifiez le nom d’utilisateur@domaine du compte vers lequel vous souhaitez déménager
+ acct: Spécifiez l’identifiant@domaine du compte vers lequel vous souhaitez déménager
account_warning_preset:
text: Vous pouvez utiliser la syntaxe des pouets, comme les URLs, les hashtags et les mentions
+ title: Facultatif. Invisible pour le destinataire
admin_account_action:
include_statuses: L’utilisateur·rice verra quels sont les pouets qui ont provoqué l’action de modération ou l’avertissement
send_email_notification: L’utilisateur recevra une explication de ce qu’il s’est passé avec son compte
@@ -35,24 +36,27 @@ fr:
inbox_url: Copiez l’URL depuis la page d’accueil du relais que vous souhaitez utiliser
irreversible: Les pouets filtrés disparaîtront irrémédiablement, même si le filtre est supprimé plus tard
locale: La langue de l’interface, des courriels et des notifications
- locked: Vous devrez approuver chaque abonné⋅e et vos statuts ne s’afficheront qu’à vos abonné⋅es
+ locked: Vous devrez approuver chaque abonné·e et vos statuts ne s’afficheront qu’à vos abonné·e·s
password: Utilisez au moins 8 caractères
- phrase: Sera trouvé sans que la case ou l’avertissement de contenu du pouet soit pris en compte
+ phrase: Sera filtré sans que la casse ou l’avertissement sur le contenu du pouet soit pris en compte
scopes: À quelles APIs l’application sera autorisée à accéder. Si vous sélectionnez une permission générale, vous n’avez pas besoin de sélectionner les permissions plus précises.
setting_aggregate_reblogs: Ne pas afficher de nouveaux partages pour les pouets qui ont été récemment partagés (n’affecte que les partages nouvellement reçus)
setting_default_sensitive: Les médias sensibles sont cachés par défaut et peuvent être révélés d’un simple clic
setting_display_media_default: Masquer les médias marqués comme sensibles
- setting_display_media_hide_all: Toujours masquer tous les médias
+ setting_display_media_hide_all: Toujours cacher les médias
setting_display_media_show_all: Toujours afficher les médias marqués comme sensibles
setting_hide_network: Ceux que vous suivez et ceux qui vous suivent ne seront pas affichés sur votre profil
setting_noindex: Affecte votre profil public ainsi que vos statuts
setting_show_application: Le nom de l’application que vous utilisez afin d’envoyer des pouets sera affiché dans la vue détaillée de ceux-ci
- setting_use_blurhash: Les dégradés sont basés sur les couleurs des visuels cachés mais ne divulgent pas les détails
- setting_use_pending_items: Masquer les mises à jour chronologiques derrière un clic au lieu de les montrer automatiquement en faisant défiler le flux d'actualités
+ setting_use_blurhash: Les dégradés sont basés sur les couleurs des images cachées mais n’en montrent pas les détails
+ setting_use_pending_items: Cacher les mises à jour des fils d’actualités derrière un clic, au lieu de les afficher automatiquement
username: Votre nom d’utilisateur sera unique sur %{domain}
- whole_word: Lorsque le mot-clef ou la phrase-clef est uniquement alphanumérique, ça sera uniquement appliqué s’il correspond au mot entier
+ whole_word: Si le mot-clé ou la phrase est alphanumérique, alors le filtre ne sera appliqué que s’il correspond au mot entier
domain_allow:
domain: Ce domaine pourra récupérer des données de ce serveur et les données entrantes seront traitées et stockées
+ email_domain_block:
+ domain: Ceci peut être le nom de domaine qui apparaît dans le courriel, l’enregistrement MX que le domaine résout, ou l’IP du serveur auquel l’enregistrement MX résout. Celles-ci seront vérifiées lors de l’inscription de l’utilisateur et l’inscription sera rejetée.
+ with_dns_records: Une tentative de résolution des enregistrements DNS du domaine donné sera effectuée et les résultats seront également mis sur liste noire
featured_tag:
name: 'Vous pourriez vouloir utiliser l’un d’entre eux :'
form_challenge:
@@ -73,11 +77,12 @@ fr:
name: Étiquette
value: Contenu
account_alias:
- acct: L’identifiant de l’ancien compte
+ acct: Identifiant de l’ancien compte
account_migration:
acct: L’identifiant du nouveau compte
account_warning_preset:
text: Texte de présélection
+ title: Titre
admin_account_action:
include_statuses: Inclure les pouets signalés dans le courriel
send_email_notification: Notifier l’utilisateur par courriel
@@ -87,7 +92,7 @@ fr:
disable: Désactiver
none: Ne rien faire
silence: Masquer
- suspend: Suspendre et effacer les données du compte de manière irréversible
+ suspend: Suspendre et supprimer les données du compte de manière irréversible
warning_preset_id: Utiliser un modèle d’avertissement
announcement:
all_day: Événement de toute la journée
@@ -112,7 +117,7 @@ fr:
fields: Métadonnées du profil
header: Image d’en-tête
inbox_url: URL de la boîte de relais
- irreversible: Supprimer plutôt que de cacher
+ irreversible: Supprimer plutôt que masquer
locale: Langue de l’interface
locked: Verrouiller le compte
max_uses: Nombre maximum d’utilisations
@@ -122,10 +127,10 @@ fr:
password: Mot de passe
phrase: Mot-clé ou phrase
setting_advanced_layout: Activer l’interface Web avancée
- setting_aggregate_reblogs: Partages groupés dans les fils d’actualités
+ setting_aggregate_reblogs: Grouper les partages dans les fils d’actualités
setting_auto_play_gif: Lire automatiquement les GIFs animés
- setting_boost_modal: Afficher une fenêtre de confirmation avant de partager
- setting_crop_images: Recadrer les images dans les pouets non-expansés à 16x9
+ setting_boost_modal: Afficher une fenêtre de confirmation avant de partager un pouet
+ setting_crop_images: Recadrer les images des pouets non-dépliés en 16x9
setting_default_language: Langue de publication
setting_default_privacy: Confidentialité des statuts
setting_default_sensitive: Toujours marquer les médias comme sensibles
@@ -134,7 +139,7 @@ fr:
setting_display_media_default: Défaut
setting_display_media_hide_all: Masquer tout
setting_display_media_show_all: Montrer tout
- setting_expand_spoilers: Toujours développer les pouets marqués d’un avertissement de contenu
+ setting_expand_spoilers: Toujours déplier les pouets marqués d’un avertissement sur le contenu
setting_hide_network: Cacher votre réseau
setting_noindex: Demander aux moteurs de recherche de ne pas indexer vos informations personnelles
setting_reduce_motion: Réduire la vitesse des animations
@@ -143,13 +148,15 @@ fr:
setting_theme: Thème du site
setting_trends: Afficher les tendances du jour
setting_unfollow_modal: Afficher une fenêtre de confirmation avant de vous désabonner d’un compte
- setting_use_blurhash: Afficher les dégradés colorés pour les médias cachés
+ setting_use_blurhash: Afficher des dégradés colorés pour les médias cachés
setting_use_pending_items: Mode lent
severity: Sévérité
type: Type d’import
username: Identifiant
- username_or_email: Nom d’utilisateur·ice ou courriel
+ username_or_email: Nom d’utilisateur·rice ou courriel
whole_word: Mot entier
+ email_domain_block:
+ with_dns_records: Inclure les enregistrements MX et IP du domaine
featured_tag:
name: Hashtag
interactions:
@@ -166,14 +173,14 @@ fr:
follow: Envoyer un courriel lorsque quelqu’un me suit
follow_request: Envoyer un courriel lorsque quelqu’un demande à me suivre
mention: Envoyer un courriel lorsque quelqu’un me mentionne
- pending_account: Envoyer un courriel lorsqu’un nouveau compte est en attente d’approbation
- reblog: Quelqu’un a partagé votre statut
+ pending_account: Nouveau compte en attente d’approbation
+ reblog: Quelqu’un a partagé votre pouet
report: Envoyer un courriel lorsqu’un nouveau rapport est soumis
- trending_tag: Envoyer un e-mail quand un hashtag non contrôlé est en tendance actuelle
+ trending_tag: Un hashtag non approuvé est dans les tendances
tag:
listable: Autoriser ce hashtag à apparaître dans les recherches et dans l’annuaire des profils
name: Hashtag
- trendable: Autoriser ce hashtag à apparaître sous les tendances du jour
+ trendable: Autoriser ce hashtag à apparaitre dans les tendances
usable: Autoriser les pouets à utiliser ce hashtag
'no': Non
recommended: Recommandé
diff --git a/config/locales/simple_form.gl.yml b/config/locales/simple_form.gl.yml
index d6768a17d..5c2637342 100644
--- a/config/locales/simple_form.gl.yml
+++ b/config/locales/simple_form.gl.yml
@@ -7,12 +7,13 @@ gl:
account_migration:
acct: Indica o usuaria@servidor da conta a cal queres migrar
account_warning_preset:
- text: Pódeslle dar formato ao toot, como URLs, etiquetas e mencións
+ text: Pódeslle dar formato ao toot, como URLs, cancelos e mencións
+ title: Optativo. Non visible para a correspondente
admin_account_action:
include_statuses: A usuaria verá que toots causaron a acción da moderación ou aviso
send_email_notification: A usuaria recibirá unha explicación sobre o que lle aconteceu a súa conta
- text_html: Optativo. Pode utilizar formato no toot. Pode engadir avisos preestablecidos para aforrar tempo
- type_html: Escolla que facer con %{acct}
+ text_html: Optativo. Podes utilizar formato no toot. Podes engadir avisos preestablecidos para aforrar tempo
+ type_html: Escolle que facer con %{acct}
warning_preset_id: Optativo. Poderás engadir texto personalizado ao final do preestablecido
announcement:
all_day: Cando se marca, só serán amosadas as datas do intre de tempo
@@ -27,44 +28,47 @@ gl:
context: Un ou varios contextos onde se debería aplicar o filtro
current_password: Por razóns de seguridade, introduce o contrasinal da conta actual
current_username: Para confirmar, introduce o nome de usuaria da conta actual
- digest: Enviar só tras un longo período de inactividade e só se recibeu algunha mensaxe directa na súa ausencia
- discoverable: O directorio de perfil é outro xeito para que a túa conta alcance unha maior audiencia
+ digest: Enviar só tras un longo período de inactividade e só se recibiches algunha mensaxe directa na tua ausencia
+ discoverable: O directorio de perfil é outro xeito de que a túa conta alcance unha maior audiencia
email: Ímosche enviar un correo de confirmación
- fields: Pode ter ate 4 elementos no seu perfil mostrados como unha táboa
+ fields: Podes ter ate 4 elementos no teu perfil mostrados como unha táboa
header: PNG, GIF ou JPG. Máximo %{size}. Será reducida a %{dimensions}px
inbox_url: Copiar o URL desde a páxina de inicio do repetidor que queres utilizar
- irreversible: Os toots filtrados desaparecerán de xeito irreversible, incluso si despois se elimina o filtro
+ irreversible: Os toots filtrados desaparecerán de xeito irreversible, incluso se despois se elimina o filtro
locale: O idioma da interface de usuaria, correos e notificacións
locked: Require que ti aceptes as seguidoras de xeito manual
- password: Utilice 8 caracteres ao menos
+ password: Utiliza 8 caracteres ao menos
phrase: Concordará independentemente das maiúsculas ou avisos de contido no toot
- scopes: A que APIs terá acceso a aplicación. Se selecciona un ámbito de alto nivel, non precisa seleccionar elementos individuais.
+ scopes: A que APIs terá acceso a aplicación. Se escolles un ámbito de alto nivel, non precisas seleccionar elementos individuais.
setting_aggregate_reblogs: Non mostrar novas promocións de toots que foron promocionados recentemente (só afecta a promocións recén recibidas)
setting_default_sensitive: Medios sensibles marcados como ocultos por defecto e móstranse cun click
setting_display_media_default: Ocultar medios marcados como sensibles
setting_display_media_hide_all: Ocultar sempre os medios
setting_display_media_show_all: Mostrar sempre os medios marcados como sensibles
- setting_hide_network: Non se mostrará no seu perfil quen a segue e quen a está a seguir
- setting_noindex: Afecta ao seu perfil público e páxinas de estado
- setting_show_application: A aplicación que está a utilizar para enviar toots mostrarase na vista detallada do toot
+ setting_hide_network: Non se mostrará no teu perfil quen te segue e a quen estás a seguir
+ setting_noindex: Afecta ao teu perfil público e páxinas de estado
+ setting_show_application: A aplicación que estás a utilizar para enviar toots mostrarase na vista detallada do toot
setting_use_blurhash: Os gradientes toman as cores da imaxe oculta pero esborranchando todos os detalles
setting_use_pending_items: Ocultar as actualizacións da liña temporal tras un click no lugar de desprazar automáticamente os comentarios
- username: O seu nome de usuaria será único en %{domain}
+ username: O teu nome de usuaria será único en %{domain}
whole_word: Se a chave ou frase de paso é só alfanumérica, só se aplicará se concorda a palabra completa
domain_allow:
domain: Este dominio estará en disposición de obter datos desde este servidor e datos de entrada a el poderán ser procesados e gardados
+ email_domain_block:
+ domain: Esto pode ser o nome de dominio que aparece no enderezo do correo, o rexistro MX que resolve o dominio, ou o IP do servidor que resolve o rexistro MX. Estos confrontaranse contra o rexistro da usuaria e o rexistro será rexeitado.
+ with_dns_records: Vaise facer un intento de resolver os rexistros DNS propocionados e os resultados tamén irán a lista negra
featured_tag:
- name: 'Podería utilizar algunha de estas:'
+ name: 'Poderías usar algunha destas:'
form_challenge:
current_password: Estás entrando nun área segura
imports:
data: Ficheiro CSV exportado desde outro servidor Mastodon
invite_request:
- text: Esto axudaranos a revisar a súa aplicación
+ text: Esto axudaranos a revisar a tua aplicación
sessions:
- otp: 'Introduza o código de dobre-factor creado pola aplicación do seu móbil ou utilice un dos seus códigos de recuperación:'
+ otp: 'Introduce o código do segundo factor creado pola aplicación do teu móbil ou usa un dos códigos de recuperación:'
tag:
- name: Só pode cambiar maiús/minúsculas, por exemplo, mellorar a lexibilidade
+ name: Só podes cambiar maiús/minúsculas, por exemplo, mellorar a lexibilidade
user:
chosen_languages: Se ten marca, só os toots nos idiomas seleccionados serán mostrados en liñas temporais públicas
labels:
@@ -75,16 +79,17 @@ gl:
account_alias:
acct: Xestiona a conta antiga
account_migration:
- acct: Xestiona a nova conta
+ acct: Usuaria na nova conta
account_warning_preset:
text: Texto preestablecido
+ title: Título
admin_account_action:
- include_statuses: Incluír toots reportados no correo
+ include_statuses: Incluír toots denunciados no correo
send_email_notification: Notificar a usuaria por correo-e
- text: Aviso persoalizado
+ text: Aviso personalizado
type: Acción
types:
- disable: Desactivar
+ disable: Desactivar conexión
none: Non facer nada
silence: Acalar
suspend: Suspender e eliminar irreversiblemente datos da conta
@@ -96,7 +101,7 @@ gl:
starts_at: Comezo do acontecemento
text: Anuncio
defaults:
- autofollow: Convide a seguir a súa conta
+ autofollow: Convida a seguir a tua conta
avatar: Avatar
bot: Esta conta é de un bot
chosen_languages: Filtrar idiomas
@@ -107,8 +112,8 @@ gl:
data: Datos
discoverable: Incluír esta conta no directorio
display_name: Nome mostrado
- email: enderezo correo electrónico
- expires_in: Caducidade despois de
+ email: Enderezo de email
+ expires_in: Caduca tras
fields: Metadatos do perfil
header: Cabeceira
inbox_url: URL da caixa de entrada do repetidor
@@ -118,7 +123,7 @@ gl:
max_uses: Número máximo de usos
new_password: Novo contrasinal
note: Acerca de ti
- otp_attempt: Código de Dobre-Factor
+ otp_attempt: Código do Segundo Factor
password: Contrasinal
phrase: Palabra chave ou frase
setting_advanced_layout: Activar interface web avanzada
@@ -127,10 +132,10 @@ gl:
setting_boost_modal: Pedir confirmación antes de promocionar
setting_crop_images: Recortar imaxes a 16x9 en toots non despregados
setting_default_language: Idioma de publicación
- setting_default_privacy: Intimidade da publicación
+ setting_default_privacy: Privacidade da publicación
setting_default_sensitive: Marcar sempre multimedia como sensible
setting_delete_modal: Solicitar confirmación antes de eliminar unha mensaxe
- setting_display_media: Mostrar medios
+ setting_display_media: Mostrar multimedia
setting_display_media_default: Por omisión
setting_display_media_hide_all: Ocultar todo
setting_display_media_show_all: Mostrar todo
@@ -150,31 +155,33 @@ gl:
username: Nome de usuaria
username_or_email: Nome de usuaria ou Correo-e
whole_word: Palabra completa
+ email_domain_block:
+ with_dns_records: Incluír rexistros MX e IPs do dominio
featured_tag:
- name: Etiqueta
+ name: Cancelo
interactions:
must_be_follower: Bloquear as notificacións de non-seguidoras
- must_be_following: Bloquea as notificacións de persoas que non segue
- must_be_following_dm: Bloquea as mensaxes directas de persoas que non segue
+ must_be_following: Bloquea as notificacións de persoas que non segues
+ must_be_following_dm: Bloquea as mensaxes directas de persoas que non segues
invite:
comment: Comentar
invite_request:
text: Por que queres unirte?
notification_emails:
digest: Enviar correos con resumos
- favourite: Enviar un correo cando alguén marca como favorita unha das súas publicacións
- follow: Enviar un correo cando alguén a segue
- follow_request: Enviar un correo cando alguén solicita seguila
- mention: Enviar un correo cando alguén a menciona
- pending_account: Enviar correo-e cando unha nova conta precisa revisión
- reblog: Enviar un correo cando alguén promociona a súa mensaxe
- report: Enviar un correo cando se envíe un novo informe
- trending_tag: Enviar correo cando unha etiqueta non revisada é tendencia
+ favourite: Enviar un correo cando alguén marca como favorita unha das tuas publicacións
+ follow: Enviar un correo cando alguén te segue
+ follow_request: Enviar un correo cando alguén solicita seguirte
+ mention: Enviar un correo cando alguén te menciona
+ pending_account: Enviar un correo cando unha nova conta precisa revisión
+ reblog: Enviar un correo cando alguén promociona a tua mensaxe
+ report: Enviar un correo cando se envíe unha denuncia
+ trending_tag: Un cancelo ser revisar está sendo tendencia
tag:
- listable: Permitir a esta etiqueta aparecer no directorio de perfil
- name: Etiqueta
- trendable: Permitir a esta etiqueta aparecer baixo Tendencias
- usable: Permitir que os toots utilicen esta etiqueta
+ listable: Permitir que este cancelo apareza en buscas e no directorio de perfil
+ name: Cancelo
+ trendable: Permitir que este cancelo apareza en tendencias
+ usable: Permitir que os toots utilicen este cancelo
'no': Non
recommended: Recomendado
required:
diff --git a/config/locales/simple_form.hu.yml b/config/locales/simple_form.hu.yml
index cee6bdb45..5f8c525e1 100644
--- a/config/locales/simple_form.hu.yml
+++ b/config/locales/simple_form.hu.yml
@@ -8,6 +8,7 @@ hu:
acct: Add meg a fióknév@domain fiókot, melybe költözni szeretnél
account_warning_preset:
text: Használhatod a tülkökben szokásos szintaxist, URL-eket, hashtageket, megemlítéseket
+ title: Opcionális. Címzett számára nem látható
admin_account_action:
include_statuses: A felhasználó látni fogja, melyik tülk okozta a moderációt vagy figyelmeztetést
send_email_notification: A felhasználó magyarázatot kap arra, mi történt a fiókjával
@@ -53,6 +54,9 @@ hu:
whole_word: Ha a kulcsszó alfanumerikus, csak akkor minősül majd találatnak, ha teljes szóra illeszkedik
domain_allow:
domain: Ez a domain adatot kérhet le a szerverünkről és az ettől érkező adatokat feldolgozzuk és mentjük
+ email_domain_block:
+ domain: Lehet domain név, mely az email címben szerepel, MX rekord, amire a domain hivatkozik vagy a szerver IP címe, amire az MX rekord hivatkozik. Ezeket regisztrációkor ellenőrizzük és visszautasítjuk a regisztrációt, ha szükséges.
+ with_dns_records: Megpróbáljuk a megadott domain DNS rekordjait lekérni, és az eredményeket hozzáadjuk a tiltólistához
featured_tag:
name: 'Ezeket esetleg használhatod:'
form_challenge:
@@ -78,6 +82,7 @@ hu:
acct: Új fiók kezelése
account_warning_preset:
text: Figyelmeztető szöveg
+ title: Cím
admin_account_action:
include_statuses: Helyezd az e-mailbe a jelentett tülköket
send_email_notification: Figyelmeztessük a felhasználót e-mailben
@@ -148,8 +153,10 @@ hu:
severity: Súlyosság
type: Importálás típusa
username: Felhasználónév
- username_or_email: Felhasználónév vagy E-mail
+ username_or_email: Felhasználónév vagy e-mail cím
whole_word: Teljes szó
+ email_domain_block:
+ with_dns_records: Domain MX rekordjainak és IP-címeinek hozzávétele
featured_tag:
name: Hashtag
interactions:
@@ -172,7 +179,7 @@ hu:
trending_tag: E-mail küldése, ha egy még nem látott hashtag trendi lett
tag:
listable: A hashtag megjelenhet a profiladatbázisban
- name: Címke
+ name: Hashtag
trendable: A hashtag megjelenhet a trendek között
usable: Tülkök használhatják ezt a hashtaget
'no': Nem
diff --git a/config/locales/simple_form.id.yml b/config/locales/simple_form.id.yml
index ada83fc86..1717d0722 100644
--- a/config/locales/simple_form.id.yml
+++ b/config/locales/simple_form.id.yml
@@ -8,6 +8,7 @@ id:
acct: Tentukan namapengguna@domain akun yang ingin Anda pindah
account_warning_preset:
text: Anda dapat memakai sintaks toot, seperti URL, tagar, dan sebutan
+ title: Opsional. Tidak terlihat penerima
admin_account_action:
include_statuses: Pengguna dapat melihat toot mana yang menyebabkan aksi atau peringatan moderasi
send_email_notification: Pengguna akan menerima penjelasan tentang apa yang terjadi pada akun mereka
@@ -53,6 +54,9 @@ id:
whole_word: Ketika kata kunci/frasa hanya alfanumerik, maka itu hanya akan diterapkan jika cocok dengan semua kata
domain_allow:
domain: Domain ini dapat mengambil data dari server ini dan data yang diterima akan diproses dan disimpan
+ email_domain_block:
+ domain: Ini bisa nama domain yang muncul di alamat surel, data MX yang sedang diselesaikan oleh domain, atau IP server yang dipecahkan oleh data MX. Mereka akan dicek saat pendaftaran pengguna dan pendaftaran akan ditolak.
+ with_dns_records: Usaha untuk menyelesaikan data DNS domain yang diberikan akan dilakukan dan hasilnya akan masuk daftar hitam
featured_tag:
name: 'Anda mungkin ingin pakai salah satu dari ini:'
form_challenge:
@@ -78,6 +82,7 @@ id:
acct: Menangani akun baru
account_warning_preset:
text: Teks preset
+ title: Judul
admin_account_action:
include_statuses: Sertakan toot terlapor pada surel
send_email_notification: Beritahu pengguna per surel
@@ -150,6 +155,8 @@ id:
username: Nama pengguna
username_or_email: Nama pengguna atau Surel
whole_word: Seluruh kata
+ email_domain_block:
+ with_dns_records: Termasuk data MX dan IP domain
featured_tag:
name: Tagar
interactions:
diff --git a/config/locales/simple_form.is.yml b/config/locales/simple_form.is.yml
index 65041f19c..3275b15f7 100644
--- a/config/locales/simple_form.is.yml
+++ b/config/locales/simple_form.is.yml
@@ -8,6 +8,7 @@ is:
acct: Tilgreindu notandanafn@lén á notandaaðgangnum sem þú vilt flytjast til
account_warning_preset:
text: Þú getur notað sömu skilgreiningar og fyrir tíst, svo sem URL-slóðir, myllumerki og tilvísanir
+ title: Valkvætt. Ekki sýnilegt viðtakandanum
admin_account_action:
include_statuses: Notandinn mun sjá hvaða tíst hafa valdið viðbrögðum umsjónarmanns eða aðvörun kerfisins
send_email_notification: Notandinn mun fá útskýringar á því hvað gerðist með notandaaðganginn hans
@@ -53,6 +54,9 @@ is:
whole_word: Þegar stikkorð eða frasi er einungis tölur og bókstafir, verður það aðeins notað ef það samsvarar heilu orði
domain_allow:
domain: Þetta lén mun geta sótt gögn af þessum vefþjóni og tekið verður á móti innsendum gögnum frá léninu til vinnslu og geymslu
+ email_domain_block:
+ domain: Þetta getur verið heiti lénsins sem birtist í tölvupóstfanginu, MX-færslan sem það lén beinist að, eða IP-vistfang netþjónsins sem sú MX-færsla beinist að. Þetta verður athugað um leið og notandi skráir sig, og verður þá skráningunni hafnað.
+ with_dns_records: Tilraun verður gerð til að leysa DNS-færslur uppgefins léns og munu niðurstöðurnar einnig verða útilokaðar
featured_tag:
name: 'Þú gætir viljað nota eitt af þessum:'
form_challenge:
@@ -78,6 +82,7 @@ is:
acct: Auðkenni nýja aðgangsins
account_warning_preset:
text: Forstilltur texti
+ title: Titill
admin_account_action:
include_statuses: Innifela kærð tíst í tölvupóstinum
send_email_notification: Láta notanda vita með tölvupósti
@@ -150,6 +155,8 @@ is:
username: Notandanafn
username_or_email: Notandanafn eða tölvupóstfang
whole_word: Heil orð
+ email_domain_block:
+ with_dns_records: Hafa með MX-færslur og IP-vistföng lénsins
featured_tag:
name: Myllumerki
interactions:
diff --git a/config/locales/simple_form.it.yml b/config/locales/simple_form.it.yml
index 35c4f80cf..61128bb38 100644
--- a/config/locales/simple_form.it.yml
+++ b/config/locales/simple_form.it.yml
@@ -8,6 +8,7 @@ it:
acct: Indica il nomeutente@dominio dell'account al quale vuoi trasferirti
account_warning_preset:
text: Puoi usare la sintassi dei toot, come URL, hashtag e menzioni
+ title: Opzionale. Non visibile al destinatario
admin_account_action:
include_statuses: L'utente vedrà quali toot hanno causato l'azione di moderazione o l'avviso
send_email_notification: L'utente riceverà una spiegazione di ciò che è successo con suo account
@@ -53,6 +54,9 @@ it:
whole_word: Quando la parola chiave o la frase è solo alfanumerica, si applica solo se corrisponde alla parola intera
domain_allow:
domain: Questo dominio potrà recuperare i dati da questo server e i dati in arrivo da esso verranno elaborati e memorizzati
+ email_domain_block:
+ domain: Questo può essere il nome del dominio che fa parte dell'indirizzo email, il record MX a cui il dominio si risolve o l'indirizzo IP del server a cui il record MX si risolve. Saranno verificati alla registrazione da parte dell'utente e la sua iscrizione sarà respinta.
+ with_dns_records: Sarà effettuato un tentativo di risolvere i record DNS del dominio in questione e i risultati saranno inseriti anche nella blacklist
featured_tag:
name: 'Eccone alcuni che potresti usare:'
form_challenge:
@@ -78,6 +82,7 @@ it:
acct: Handle del nuovo account
account_warning_preset:
text: Testo preimpostato
+ title: Titolo
admin_account_action:
include_statuses: Includi i toots segnalati nell'email
send_email_notification: Informa l'utente via email
@@ -150,12 +155,16 @@ it:
username: Nome utente
username_or_email: Nome utente o email
whole_word: Parola intera
+ email_domain_block:
+ with_dns_records: Includi record MX e indirizzi IP del dominio
featured_tag:
name: Etichetta
interactions:
must_be_follower: Blocca notifiche da chi non ti segue
must_be_following: Blocca notifiche dalle persone che non segui
must_be_following_dm: Blocca i messaggi diretti dalle persone che non segui
+ invite:
+ comment: Commento
invite_request:
text: Perché vuoi iscriverti?
notification_emails:
diff --git a/config/locales/simple_form.ja.yml b/config/locales/simple_form.ja.yml
index a56990d3b..a14dc3e04 100644
--- a/config/locales/simple_form.ja.yml
+++ b/config/locales/simple_form.ja.yml
@@ -8,6 +8,7 @@ ja:
acct: 引っ越し先のユーザー名@ドメインを指定してください
account_warning_preset:
text: URL、ハッシュタグ、メンションなど、投稿に用いる構文が使用できます
+ title: オプションです。受信者には表示されません。
admin_account_action:
include_statuses: ユーザーは取られた制限や警告の原因となったトゥートを確認できるようになります
send_email_notification: ユーザーは自分のアカウントに何が起こったのか説明を受け取ります
@@ -42,8 +43,8 @@ ja:
setting_aggregate_reblogs: 最近ブーストされたトゥートが新たにブーストされても表示しません (設定後受信したものにのみ影響)
setting_default_sensitive: 閲覧注意状態のメディアはデフォルトでは内容が伏せられ、クリックして初めて閲覧できるようになります
setting_display_media_default: 閲覧注意としてマークされたメディアは隠す
- setting_display_media_hide_all: 全てのメディアを常に隠す
- setting_display_media_show_all: 閲覧注意としてマークされたメディアも常に表示する
+ setting_display_media_hide_all: メディアを常に隠す
+ setting_display_media_show_all: メディアを常に表示する
setting_hide_network: フォローとフォロワーの情報がプロフィールページで見られないようにします
setting_noindex: 公開プロフィールおよび各投稿ページに影響します
setting_show_application: トゥートするのに使用したアプリがトゥートの詳細ビューに表示されるようになります
@@ -53,6 +54,9 @@ ja:
whole_word: キーワードまたはフレーズが英数字のみの場合、単語全体と一致する場合のみ適用されるようになります
domain_allow:
domain: 登録するとこのサーバーからデータを受信したり、このドメインから受信するデータを処理して保存できるようになります
+ email_domain_block:
+ domain: メールアドレスのドメイン名および、名前解決したMXレコード、IPアドレスを指定できます。ユーザー登録時にこれらをチェックし、該当する場合はユーザー登録を拒否します。
+ with_dns_records: 指定したドメインのDNSレコードを取得し、その結果もブラックリストに登録されます
featured_tag:
name: 'これらを使うといいかもしれません:'
form_challenge:
@@ -78,13 +82,14 @@ ja:
acct: 引っ越し先のユーザー ID
account_warning_preset:
text: プリセット警告文
+ title: タイトル
admin_account_action:
include_statuses: 通報されたトゥートをメールに含める
send_email_notification: メールでユーザーに通知
text: カスタム警告文
type: アクション
types:
- disable: 無効化
+ disable: ログインを無効化
none: 何もしない
silence: サイレンス
suspend: 停止しアカウントのデータを恒久的に削除する
@@ -150,6 +155,8 @@ ja:
username: ユーザー名
username_or_email: ユーザー名またはメールアドレス
whole_word: 単語全体にマッチ
+ email_domain_block:
+ with_dns_records: ドメインのMXレコードとIPアドレスを含む
featured_tag:
name: ハッシュタグ
interactions:
diff --git a/config/locales/simple_form.kab.yml b/config/locales/simple_form.kab.yml
index db4369e92..c9936c49a 100644
--- a/config/locales/simple_form.kab.yml
+++ b/config/locales/simple_form.kab.yml
@@ -3,7 +3,7 @@ kab:
simple_form:
hints:
account_alias:
- acct: Specify the username@domain of the account you want to move from
+ acct: Sekcem isem n umseqdac@domain n umiḍan s wansa itebγiḍ ad gujjeḍ
account_migration:
acct: Sekcem isem n umseqdac@taγult n umiḍan anida itebγiḍ ad gujjeḍ
admin_account_action:
@@ -15,7 +15,11 @@ kab:
email: Ad n-teṭṭfeḍ imayl i usentem
irreversible: Tijewwaqin i tessazedgeḍ ad ttwakksent i lebda, ula ma tekkseḍ imsizdeg-nni ar zdat
locale: Tutlayt n ugrudem, imaylen d tilγa
+ locked: Isra asentem s wufus n ineḍfaren
password: Seqdec ma drus 8 n yisekkilen
+ setting_display_media_default: Ffer teywalt yettwacreḍ d tanafrit
+ setting_display_media_hide_all: Ffer yal tikkelt akk taywalt
+ setting_display_media_show_all: Ffer yal tikkelt teywalt yettwacreḍ d tanafrit
setting_hide_network: Wid i teṭṭafaṛeḍ d wid i k-yeṭṭafaṛen ur d-ttwaseknen ara deg umaγnu-inek
username: Isem-ik n umseqdac ad yili d ayiwen, ulac am netta deg %{domain}
featured_tag:
@@ -25,12 +29,19 @@ kab:
labels:
account:
fields:
+ name: Tabzimt
value: Agbur
account_migration:
acct: Tansa n umiḍan amaynut
admin_account_action:
+ send_email_notification: Sileɣ aseqdac s imaylen
+ type: Tigawt
types:
+ disable: Sens anekcum
+ none: Ur teg kra
silence: Sgugem
+ announcement:
+ ends_at: Tagara n tedyant
defaults:
bot: Wagi d amiḍan aṛubut
chosen_languages: Sizdeg tutlayin
@@ -43,7 +54,10 @@ kab:
email: Tansa imayl
header: Ixef
locale: Tutlayt n ugrudem
+ locked: Rgel amiḍan
+ max_uses: Amḍan afellay n iseqdacen
new_password: Awal uffir amaynut
+ otp_attempt: Tangalt n snat n tarayin
password: Awal uffir
setting_default_language: Tutlayt n tira
setting_default_privacy: Tabaḍnit n tira
@@ -52,6 +66,7 @@ kab:
setting_display_media_show_all: Sken kullec
setting_hide_network: Ffer azetta-k·m
setting_theme: Asental n wesmel
+ setting_use_pending_items: Askar aleγwayan
username: Isem n useqdac
username_or_email: Isem n useqdac neγ imal
whole_word: Awal akk
@@ -61,7 +76,10 @@ kab:
comment: Awennit
invite_request:
text: Acimi tebγiḍ ad ternuḍ iman-ik?
+ tag:
+ name: Ahacṭag
'no': Ala
+ recommended: Yettuwelleh
required:
mark: "*"
text: ilaq
diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml
index 028aa59d9..0bf46b0ff 100644
--- a/config/locales/simple_form.ko.yml
+++ b/config/locales/simple_form.ko.yml
@@ -8,6 +8,7 @@ ko:
acct: 이동하고자 하는 목적지 계정의 사용자이름@도메인을 설정하세요
account_warning_preset:
text: URL, 해시태그, 멘션과 같은 툿 문법을 사용할 수 있습니다
+ title: 선택사항. 수신자에게는 보이지 않습니다
admin_account_action:
include_statuses: 사용자는 어떤 툿에 대해 경고나 조치가 취해졌는지 볼 수 있게 됩니다
send_email_notification: 유저는 어떤 일이 일어났는 지에 대한 설명을 받게 됩니다
@@ -53,6 +54,9 @@ ko:
whole_word: 키워드가 영문과 숫자로만 이루어 진 경우, 단어 전체에 매칭 되었을 때에만 작동하게 합니다
domain_allow:
domain: 이 도메인은 이 서버에서 데이터를 가져갈 수 있고 이 도메인에서 보내진 데이터는 처리되고 저장 됩니다
+ email_domain_block:
+ domain: 이것은 이메일 주소에 보이는 도메인 네임이거나, 도메인이 향하는 MX 레코드이거나, 또는 MX 레코드가 향하는 IP 주소일 수 있습니다. 이것들은 사용자가 가입 할 때 확인 되며 가입은 반려될 것입니다.
+ with_dns_records: 입력한 도메인의 DNS를 조회를 시도하여 나온 값도 차단됩니다
featured_tag:
name: '이것들을 사용하면 좋을 것 같습니다:'
form_challenge:
@@ -78,6 +82,7 @@ ko:
acct: 새 계정의 핸들
account_warning_preset:
text: 프리셋 텍스트
+ title: 제목
admin_account_action:
include_statuses: 신고된 툿을 이메일에 포함
send_email_notification: 이메일로 유저에게 알리기
@@ -150,6 +155,8 @@ ko:
username: 유저 이름
username_or_email: 유저네임 또는 이메일
whole_word: 단어 전체에 매칭
+ email_domain_block:
+ with_dns_records: 도메인의 IP와 MX 레코드 값을 포함
featured_tag:
name: 해시태그
interactions:
diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml
index ec6ba52eb..c65608d95 100644
--- a/config/locales/simple_form.nl.yml
+++ b/config/locales/simple_form.nl.yml
@@ -43,7 +43,7 @@ nl:
setting_default_sensitive: Gevoelige media wordt standaard verborgen en kan met één klik worden getoond
setting_display_media_default: Als gevoelig gemarkeerde media verbergen
setting_display_media_hide_all: Media altijd verbergen
- setting_display_media_show_all: Als gevoelig gemarkeerde media altijd verbergen
+ setting_display_media_show_all: Media altijd tonen
setting_hide_network: Wie jij volgt en wie jou volgen wordt niet op jouw profiel getoond
setting_noindex: Heeft invloed op jouw openbare profiel en toots
setting_show_application: De toepassing de je gebruikt om te tooten wordt in de gedetailleerde weergave van de toot getoond
diff --git a/config/locales/simple_form.nn.yml b/config/locales/simple_form.nn.yml
index 5fb0e8fce..8eddd3589 100644
--- a/config/locales/simple_form.nn.yml
+++ b/config/locales/simple_form.nn.yml
@@ -78,6 +78,7 @@ nn:
acct: Brukernavnet til den nye brukeren
account_warning_preset:
text: Føreåtstekst
+ title: Tittel
admin_account_action:
include_statuses: Inkluder rapporterte tuter i e-mailen
send_email_notification: Varsl brukaren med e-post
diff --git a/config/locales/simple_form.no.yml b/config/locales/simple_form.no.yml
index 426247676..55b33a281 100644
--- a/config/locales/simple_form.no.yml
+++ b/config/locales/simple_form.no.yml
@@ -78,6 +78,7 @@
acct: Brukernavnet til den nye brukeren
account_warning_preset:
text: Forhåndsvalgt tekst
+ title: Tittel
admin_account_action:
include_statuses: Inkluder rapporterte tuter i e-mailen
send_email_notification: Si ifra til brukeren over E-post
diff --git a/config/locales/simple_form.oc.yml b/config/locales/simple_form.oc.yml
index b7495c56d..f1daa0e6e 100644
--- a/config/locales/simple_form.oc.yml
+++ b/config/locales/simple_form.oc.yml
@@ -8,6 +8,7 @@ oc:
acct: Donatz l’utilizaire@domeni del compte ont volètz anar
account_warning_preset:
text: Podètz utilizar la sintaxi dels tuts, coma las URL, las etiquetas e las mencions
+ title: Opcional. Pas visible pel destinari
admin_account_action:
include_statuses: L’utilizaire veiràs quals tuts a provocat l’accion de moderacion o avertiment
send_email_notification: L’utilizaire recebrà una explicacion de çò qu’arribèt a son compte
@@ -78,6 +79,7 @@ oc:
acct: Identificant del nòu compte
account_warning_preset:
text: Tèxt predefinit
+ title: Títol
admin_account_action:
include_statuses: Inclure los tuts senhalats dins lo corrièl
send_email_notification: Avisar l’utilizaire per corrièl
@@ -150,6 +152,8 @@ oc:
username: Nom d’utilizaire
username_or_email: Nom d’utilizaire o corrièl
whole_word: Mot complèt
+ email_domain_block:
+ with_dns_records: Inclure los enregistraments MX e las IP del domeni
featured_tag:
name: Etiqueta
interactions:
diff --git a/config/locales/simple_form.pl.yml b/config/locales/simple_form.pl.yml
index e8e2251b0..77d02cf17 100644
--- a/config/locales/simple_form.pl.yml
+++ b/config/locales/simple_form.pl.yml
@@ -2,19 +2,34 @@
pl:
simple_form:
hints:
+ account_alias:
+ acct: Określ nazwę@domenę konta z którego chcesz się przenieść
+ account_migration:
+ acct: Określ nazwę@domenę konta na które chcesz się przenieść
account_warning_preset:
text: Możesz korzystać ze składni której używasz we wpisach, takiej jak adresy URL, hashtagi i wspomnienia
+ title: Nieobowiązkowe. Niewidoczne dla odbiorcy
admin_account_action:
+ include_statuses: Użytkownik zobaczy, których wpisów dotyczyło działanie moderacji lub ostrzeżenie
send_email_notification: Użytkownik otrzyma informację, co stało się z jego kontem
text_html: Możesz używać składni której używasz we wpisach. Możesz dodać szablon ostrzeżenia aby zaoszczędzić czas
type_html: Wybierz co chcesz zrobić z %{acct}
warning_preset_id: Nieobowiązkowe. Możesz dodać niestandardowy tekst do końcowki szablonu
+ announcement:
+ all_day: Jeżeli zaznaczone, tylko daty z przedziału czasu będą wyświetlane
+ ends_at: Nieobowiązkowe. Ogłoszenie zostanie automatycznie wycofane w tym czasie
+ scheduled_at: Pozostaw puste, aby opublikować ogłoszenie natychmiastowo
+ starts_at: Nieobowiązkowe. Jeżeli ogłoszenie jest związane z danym przedziałem czasu
+ text: Możesz używać składni wpisu. Pamiętaj o tym, ile miejsca zajmie ogłoszenie na ekranie użytkownika
defaults:
autofollow: Osoby, które zarejestrują się z Twojego zaproszenia automatycznie zaczną Cię śledzić
avatar: PNG, GIF lub JPG. Maksymalnie %{size}. Zostanie zmniejszony do %{dimensions}px
bot: To konto wykonuje głównie zautomatyzowane działania i może nie być monitorowane
context: Jedno lub wiele miejsc, w których filtr zostanie zastosowany
+ current_password: Ze względów bezpieczeństwa wprowadź hasło obecnego konta
+ current_username: Aby potwierdzić, wprowadź nazwę użytkownika obecnego konta
digest: Wysyłane tylko po długiej nieaktywności, jeżeli w tym czasie otrzymaleś jakąś wiadomość bezpośrednią
+ discoverable: Katalog profilu jest jednym ze sposobów, dzięki którym Twoje konto dotrze do szerszego grona
email: Otrzymasz e-mail potwierdzający
fields: Możesz ustawić maksymalnie 4 niestandardowe pola wyświetlane jako tabela na Twoim profilu
header: PNG, GIF lub JPG. Maksymalnie %{size}. Zostanie zmniejszony do %{dimensions}px
@@ -34,8 +49,14 @@ pl:
setting_noindex: Wpływa na widoczność strony profilu i Twoich wpisów
setting_show_application: W informacjach o wpisie będzie widoczna informacja o aplikacji, z której został wysłany
setting_use_blurhash: Gradienty są oparte na kolorach ukrywanej zawartości, ale uniewidaczniają wszystkie szczegóły
+ setting_use_pending_items: Ukryj aktualizacje osi czasu za kliknięciem, zamiast automatycznego przewijania strumienia
username: Twoja nazwa użytkownika będzie niepowtarzalna na %{domain}
whole_word: Jeśli słowo lub fraza składa się jedynie z liter lub cyfr, filtr będzie zastosowany tylko do pełnych wystąpień
+ domain_allow:
+ domain: Ta domena będzie mogła pobierać dane z serwera, a dane przychodzące z niej będą przetwarzane i przechowywane
+ email_domain_block:
+ domain: Może to być nazwa domeny pojawiająca się w adresu e-mail, rekord MX na który rozwiązuje domena lub IP serwera na który rozwiązuje rekord MX. Będą one wykrywane i odrzucane przy rejestracji.
+ with_dns_records: Zostanie wykonana próba rozwiązania rekordów DNS podanej domeny, a wyniki również zostaną dodane na czarną listę
featured_tag:
name: 'Sugerujemy użycie jednego z następujących:'
form_challenge:
@@ -61,6 +82,7 @@ pl:
acct: Nazwa nowego konta
account_warning_preset:
text: Tekst szablonu
+ title: Tytuł
admin_account_action:
include_statuses: Uwzględniaj zgłoszone wpisy w wiadomości e-mail
send_email_notification: Powiadom użytkownika mailem
@@ -133,6 +155,8 @@ pl:
username: Nazwa użytkownika
username_or_email: Nazwa użytkownika lub adres e-mail
whole_word: Całe słowo
+ email_domain_block:
+ with_dns_records: Uwzględnij rekordy MX i adresy IP domeny
featured_tag:
name: Hasztag
interactions:
diff --git a/config/locales/simple_form.pt-BR.yml b/config/locales/simple_form.pt-BR.yml
index 503b48d83..600ebe5c5 100644
--- a/config/locales/simple_form.pt-BR.yml
+++ b/config/locales/simple_form.pt-BR.yml
@@ -8,6 +8,7 @@ pt-BR:
acct: Especifique o usuário@domínio da conta para a qual você deseja se mudar
account_warning_preset:
text: Você pode usar a sintaxe do toot, como links, hashtags e menções
+ title: Opcional. Não visível para o destinatário
admin_account_action:
include_statuses: O usuário verá quais toots causaram o aviso ou ação da moderação
send_email_notification: O usuário receberá uma explicação do que aconteceu com a própria conta
@@ -15,7 +16,7 @@ pt-BR:
type_html: Decida o que fazer com %{acct}
warning_preset_id: Opcional. Você ainda pode adicionar texto personalizado no final do aviso pré-definido
announcement:
- all_day: Quando marcado, apenas as datas do período serão exibidas
+ all_day: Quando marcada, apenas as datas do período serão mostradas
ends_at: Opcional. O anúncio será automaticamente não publicado no momento
scheduled_at: Deixe em branco para publicar o anúncio imediatamente
starts_at: Opcional. Caso seu anúncio esteja vinculado a um período específico
@@ -53,6 +54,9 @@ pt-BR:
whole_word: Quando a palavra-chave ou frase é inteiramente alfanumérica, ela será aplicada somente se corresponder a palavra inteira
domain_allow:
domain: Este domínio poderá obter dados deste servidor e os dados recebidos dele serão processados e armazenados
+ email_domain_block:
+ domain: Este pode ser o nome de domínio que aparece no endereço de e-mail, o registro MX para o qual o domínio resolve, ou o IP do servidor para o qual o registro MX resolve. Esses vão ser verificados no momento da cadastro do usuário e o cadastro será rejeitado.
+ with_dns_records: Será feita uma tentativa de resolver os registros DNS do domínio em questão e os resultados também serão colocados na lista negra
featured_tag:
name: 'Você pode querer usar um destes:'
form_challenge:
@@ -78,6 +82,7 @@ pt-BR:
acct: Nome de usuário da nova conta
account_warning_preset:
text: Aviso pré-definido
+ title: Título
admin_account_action:
include_statuses: Incluir toots denunciados no e-mail
send_email_notification: Notificar o usuário por e-mail
@@ -150,6 +155,8 @@ pt-BR:
username: Nome de usuário
username_or_email: Nome de usuário ou e-mail
whole_word: Palavra inteira
+ email_domain_block:
+ with_dns_records: Incluir registros MX e IPs do domínio
featured_tag:
name: Hashtag
interactions:
@@ -169,11 +176,11 @@ pt-BR:
pending_account: Enviar e-mail quando uma nova conta precisar ser revisada
reblog: Enviar e-mail quando alguém der boost nos seus toots
report: Enviar e-mail quando uma nova denúncia for enviada
- trending_tag: Enviar e-mail quando uma hashtag não revisada estiver em alta
+ trending_tag: Uma hashtag não-revisada está em alta
tag:
listable: Permitir que esta hashtag apareça em pesquisas e no diretório de perfis
name: Hashtag
- trendable: Permitir que esta hashtag apareça em alta
+ trendable: Permitir que esta hashtag fique em alta
usable: Permitir que toots usem esta hashtag
'no': Não
recommended: Recomendado
diff --git a/config/locales/simple_form.pt-PT.yml b/config/locales/simple_form.pt-PT.yml
index f346005f7..43927893d 100644
--- a/config/locales/simple_form.pt-PT.yml
+++ b/config/locales/simple_form.pt-PT.yml
@@ -3,13 +3,14 @@ pt-PT:
simple_form:
hints:
account_alias:
- acct: Especifique o nome de usuário@domínio da conta de onde você deseja mover
+ acct: Especifique o utilizador@domínio da conta de onde você deseja migrar
account_migration:
- acct: Especifique o nome de usuário@domínio da conta para onde você deseja mover
+ acct: Especifique o utilizador@domínio da conta para onde você deseja migrar
account_warning_preset:
text: Tu podes usar sintaxe de escrita, como URLs, hashtags e referências
+ title: Opcional. Não visível para o destinatário
admin_account_action:
- include_statuses: O usuário verá quais ferramentas causaram a ação de moderação ou aviso
+ include_statuses: O utilizador verá quais toots causaram a ação de moderação ou aviso
send_email_notification: O utilizador receberá uma explicação sobre o que aconteceu com a sua conta
text_html: Opcional. Tu podes usar sintaxe de escrita. Tu podes adicionar predefinições de aviso para poupar tempo
type_html: Escolhe o que fazer com %{acct}
@@ -40,7 +41,7 @@ pt-PT:
phrase: Será correspondido independentemente da capitalização ou do aviso de conteúdo duma publicação
scopes: Quais as APIs a que será concedido acesso. Se escolheres uma abrangência de nível superior, não precisarás de as seleccionar individualmente.
setting_aggregate_reblogs: Não mostrar novas partilhas que foram partilhadas recentemente (só afecta as novas partilhas)
- setting_default_sensitive: Média sensível está oculta por padrão e pode ser revelada com um clique
+ setting_default_sensitive: Media sensível está oculta por padrão e pode ser revelada com um clique
setting_display_media_default: Esconder media marcada como sensível
setting_display_media_hide_all: Esconder sempre toda a media
setting_display_media_show_all: Mostrar sempre a media marcada como sensível
@@ -52,13 +53,16 @@ pt-PT:
username: O teu nome de utilizador será único em %{domain}
whole_word: Quando a palavra-chave ou expressão-chave é somente alfanumérica, ela só será aplicada se corresponder à palavra completa
domain_allow:
- domain: Este domínio será capaz de obter dados deste servidor e os dados dele recebidos serão processados e armazenados
+ domain: Este domínio será capaz de obter dados desta instância e os dados dele recebidos serão processados e armazenados
+ email_domain_block:
+ domain: Este pode ser o nome de domínio que aparece no endereço de email, o registro MX para o qual o domínio resolve, ou o IP do servidor para o qual o registro MX resolve. Estes serão verificados no momento da inscrição do utilizador e a inscrição será rejeitada.
+ with_dns_records: Será feita uma tentativa de resolver os registros DNS do domínio em questão e os resultados também serão colocados na lista negra
featured_tag:
name: 'Poderás querer usar um destes:'
form_challenge:
current_password: Está a entrar numa área restrita
imports:
- data: Arquivo CSV exportado de outro servidor do Mastodon
+ data: Arquivo CSV exportado de outra instância do Mastodon
invite_request:
text: Isto vai ajudar-nos a rever o seu pedido
sessions:
@@ -78,6 +82,7 @@ pt-PT:
acct: Nome de utilizador da nova conta
account_warning_preset:
text: Texto pré-definido
+ title: Título
admin_account_action:
include_statuses: Incluir no e-mail os toots reportados
send_email_notification: Notificar o utilizador por e-mail
@@ -130,7 +135,7 @@ pt-PT:
setting_default_privacy: Privacidade da publicação
setting_default_sensitive: Sempre marcar media como sensível
setting_delete_modal: Solicitar confirmação antes de eliminar uma publicação
- setting_display_media: Exposição de media
+ setting_display_media: Visualização de media
setting_display_media_default: Pré-definição
setting_display_media_hide_all: Esconder todos
setting_display_media_show_all: Mostrar todos
@@ -143,13 +148,15 @@ pt-PT:
setting_theme: Tema do site
setting_trends: Mostrar as tendências de hoje
setting_unfollow_modal: Solicitar confirmação antes de deixar de seguir alguém
- setting_use_blurhash: Mostrar gradientes coloridos para médias ocultas
+ setting_use_blurhash: Mostrar gradientes coloridos para medias ocultas
setting_use_pending_items: Modo lento
severity: Gravidade
type: Tipo de importação
username: Nome de utilizador
username_or_email: Nome de utilizador ou e-mail
whole_word: Palavra completa
+ email_domain_block:
+ with_dns_records: Incluir registros MX e IPs do domínio
featured_tag:
name: Hashtag
interactions:
diff --git a/config/locales/simple_form.ro.yml b/config/locales/simple_form.ro.yml
index ac4c344f1..aa0b07708 100644
--- a/config/locales/simple_form.ro.yml
+++ b/config/locales/simple_form.ro.yml
@@ -2,19 +2,34 @@
ro:
simple_form:
hints:
+ account_alias:
+ acct: Specificați numele de utilizator@domeniu al contului de la care doriți să treceți
+ account_migration:
+ acct: Specificați numele de utilizator@domeniu al contului la care doriți să vă mutați
account_warning_preset:
text: Poți utiliza sintaxe precum URL, hastag sau menționări
+ title: Opțional. Nu este vizibil pentru destinatar
admin_account_action:
+ include_statuses: Utilizatorul va vedea ce postări au provocat acțiunea de moderare sau avertismentul
send_email_notification: Utilizatorul va primi o explicație cu privire la ceea ce sa întâmplat cu contul lui
text_html: Opțional. Poți utiliza sintaxe. Poți adăuga avertismente predefinite pentru a salva timp
type_html: Alege ce se întâmplă cu %{acct}
warning_preset_id: Opțional. Poți adăuga text personalizat la sfârșitul presetului
+ announcement:
+ all_day: Când este bifat, numai datele intervalului de timp vor fi afișate
+ ends_at: Opțional. Anunțul va fi automat nepublicat în acest moment
+ scheduled_at: Lăsați necompletat pentru a publica anunțul imediat
+ starts_at: Opțional. În cazul în care anunțul tău este legat de un anumit interval de timp
+ text: Poți folosi sintaxa de postare. Te rugăm să fii atent la spațiul pe care anunțul îl va ocupa pe ecranul utilizatorului
defaults:
autofollow: Persoanele care se înregistrează datorită invitației tale te vor urmări automat
avatar: PNG, GIF sau JPG. Cel mult %{size}. Va fi redimensionată la %{dimensions}px
bot: Acest cont performează în cea mai mare parte acțiuni automate și nu poate fi monitorizat
context: Contextele în care filtrul trebuie aplicat
+ current_password: În scopuri de securitate, vă rugăm să introduceţi parola contului curent
+ current_username: Pentru a confirma, vă rugăm să introduceţi numele de utilizator al contului curent
digest: Este trimis doar după o lungă perioadă de inactivitate și numai dacă primești mesaje personale în perioada de absență
+ discoverable: Directorul de profil este un alt mod prin care contul tău poate ajunge la un public mai larg
email: Vei primi un e-mail de confirmare
fields: Poti afișa pană la maxim 4 adrese sub formă de tabel pe pofilul tău
header: PNG, GIF sau JPG. Cel mult %{size}. Vor fi redimensionate la %{dimensions}px
@@ -25,18 +40,35 @@ ro:
password: Utilizează cel puțin 8 caractere
phrase: Vor fi potrivite indiferent de textul din casetă sau advertismentul unei postări
scopes: La care API-uri aplicația are nevoie de acces. Dacă selectezi un scop principal nu mai e nevoie să selectezi fiecare sub-scop al acestuia.
- setting_aggregate_reblogs: Nu afișa redistribuirile noi pentru postările care au fost deja recent redistribuite (afectează doar noile redistribuiri primite)
+ setting_aggregate_reblogs: Nu afișa impulsurile noi pentru postările care au fost deja recent impulsionate (afectează doar noile impulsuri primite)
+ setting_default_sensitive: Fișierele media sensibile sunt ascunse implicit și pot fi dezvăluite cu un clic
setting_display_media_default: Ascunde conținutul media marcat ca sensibil (NSFW)
setting_display_media_hide_all: Întotdeauna ascunde tot conținutul media
setting_display_media_show_all: Întotdeauna afișează conținutul media marcat ca sensibil
setting_hide_network: Pe cine urmărești și cine te urmărește nu vor fi afișați pe profilul tău
setting_noindex: Afecteazâ profilul tău public și statusurile tale
+ setting_show_application: Aplicația pe care o utilizați pentru a posta va fi afișată în vizualizarea detaliată a postărilor
+ setting_use_blurhash: Gradienții sunt bazați pe culorile vizualelor ascunse, dar ofuscă orice detalii
+ setting_use_pending_items: Ascunde actualizările cronologice din spatele unui click în loc de a derula automat fluxul
username: Numele tău de utilizator va fi unic pe %{domain}
whole_word: Când fraza sau cuvântul este doar alfanumeric, acesta se aplică doar dacă există o potrivire completă
+ domain_allow:
+ domain: Acest domeniu va putea prelua date de pe acest server și datele primite de la el vor fi procesate și stocate
+ email_domain_block:
+ domain: Acesta poate fi numele domeniului care apare pe adresa de e-mail, înregistrarea MX la care domeniul se rezolvă sau IP-ul serverului la care înregistrează MX rezolvă. Acestea vor fi verificate după înregistrarea utilizatorului, iar înscrierea va fi respinsă.
+ with_dns_records: Se va face o încercare de a rezolva înregistrările DNS ale domeniului dat și rezultatele vor fi de asemenea afișate pe lista neagră
+ featured_tag:
+ name: 'S-ar putea să vreți să folosiți unul dintre acestea:'
+ form_challenge:
+ current_password: Ați intrat într-o zonă securizată
imports:
data: Fișierul CSV exportat de la o altă instanță
+ invite_request:
+ text: Acest lucru ne va ajuta să revizuim cererea dvs
sessions:
otp: 'Introdu codul pentru dubla protecție generat de telefonul mobil sau unul din codurile de rezervă:'
+ tag:
+ name: Poți doar să schimbi caseta literelor, de exemplu, pentru a o face mai lizibilă
user:
chosen_languages: Doar postările în limbile selectate vor fi afișate în fluxurile publice
labels:
@@ -44,9 +76,15 @@ ro:
fields:
name: Etichetă
value: Conținut
+ account_alias:
+ acct: Manipularea contului vechi
+ account_migration:
+ acct: Manipularea contului nou
account_warning_preset:
text: Text presetat
+ title: Titlu
admin_account_action:
+ include_statuses: Include postările raportate în e-mail
send_email_notification: Notificați utilizatorul prin e-mail
text: Avertisment personalizat
type: Acțiune
@@ -56,6 +94,12 @@ ro:
silence: Liniște
suspend: Suspendă și șterge ireversibil datele contului
warning_preset_id: Utilizează un avertisment predefinit
+ announcement:
+ all_day: Eveniment pe toată ziua
+ ends_at: Sfârșitul evenimentului
+ scheduled_at: Programare publicare
+ starts_at: Începerea evenimentului
+ text: Anunţ
defaults:
autofollow: Invită să te urmărească
avatar: Fotografie de profil
@@ -65,6 +109,7 @@ ro:
confirm_password: Confirmă parola
context: Contextele filtrului
current_password: Parola actuală
+ data: Date
discoverable: Listează acest cont in director
display_name: Numele afișat
email: Adresa de e-mail
@@ -81,37 +126,65 @@ ro:
otp_attempt: Cod dublă protecție
password: Parolă
phrase: Cuvânt sau frază
+ setting_advanced_layout: Activează interfața web avansată
+ setting_aggregate_reblogs: Grupează impulsurile în fluxuri
setting_auto_play_gif: Redă automat animațiile GIF
- setting_boost_modal: Arată dialogul de confirmare înainte de a redistribui
+ setting_boost_modal: Arată dialogul de confirmare înainte de a impulsiona
+ setting_crop_images: Decupează imaginile în postările non-extinse la 16x9
setting_default_language: În ce limbă postezi
setting_default_privacy: Cine vede postările tale
setting_default_sensitive: Întotdeauna marchează conținutul media ca sensibil
setting_delete_modal: Arată dialogul de confirmare înainte de a șterge o postare
+ setting_display_media: Afișare media
setting_display_media_default: Standard
+ setting_display_media_hide_all: Ascunde toate
+ setting_display_media_show_all: Arată toate
+ setting_expand_spoilers: Întotdeauna extinde postările marcate cu avertismente referitoare la conținut
setting_hide_network: Ascunde rețeaua
setting_noindex: Nu permite motoarelor de căutare să indexeze rețeaua ta
setting_reduce_motion: Redu mișcarea în animații
+ setting_show_application: Dezvăluie aplicația folosită pentru a trimite postări
setting_system_font_ui: Utilizează fontul standard as sistemului
setting_theme: Tema siteului
+ setting_trends: Arată tendințele de astăzi
setting_unfollow_modal: Arată dialogul de confirmare înainte de a nu mai urmări pe cineva
+ setting_use_blurhash: Arată gradiente colorate pentru media ascunse
+ setting_use_pending_items: Modul lent
severity: Severitate
type: Ce importați
username: Nume de utilizator
username_or_email: Numele de utilizator sau adresa de E-mail
whole_word: Cuvânt întreg
+ email_domain_block:
+ with_dns_records: Include înregistrările MX și IP-urile domeniului
+ featured_tag:
+ name: Hashtag
interactions:
must_be_follower: Blochează notificările de la persoane care nu te urmăresc
must_be_following: Blochează notificările de la persoane pe care nu le urmărești
must_be_following_dm: Blochează mesajele directe de la persoane pe care nu le urmărești
+ invite:
+ comment: Comentariu
+ invite_request:
+ text: De ce vrei să te alături?
notification_emails:
digest: Trimite rezumate
favourite: Trimite e-mail când cineva favorizează unul din statusurile tale
follow: Trimite e-mail când cineva te urmărește
follow_request: Trimite e-mail când cineva trimite o cerere de urmărire
mention: Trimite e-mail când cineva te menționează
- reblog: Trimite e-mail când cineva redistribuie unul din statusurile tale
+ pending_account: Noul cont trebuie revizuit
+ reblog: Trimite e-mail când cineva impulsionează una din postările tale
report: Trimite e-mail când un raport nou este trimis
+ trending_tag: Un hashtag nerevizuit este în tendință
+ tag:
+ listable: Permite acestui hashtag să apară în căutări și în directorul de profil
+ name: Hashtag
+ trendable: Permite acestui hashtag să apară sub tendințe
+ usable: Permite postărilor să folosească acest hashtag
'no': Nu
+ recommended: Recomandat
required:
+ mark: "*"
text: obligatoriu
'yes': Da
diff --git a/config/locales/simple_form.ru.yml b/config/locales/simple_form.ru.yml
index 0ec9d0d6b..15f383b2a 100644
--- a/config/locales/simple_form.ru.yml
+++ b/config/locales/simple_form.ru.yml
@@ -8,6 +8,7 @@ ru:
acct: Укажите имя_пользователя@домен учётной записи, на которую вы собираетесь мигрировать
account_warning_preset:
text: Вы можете использовать всё, что в обычных постах — ссылки, хэштеги, упоминания и т.д.
+ title: Необязательно. Не видно получателю
admin_account_action:
include_statuses: Пользователь будет видеть к каким постами применялись модераторские действия и выносились предупреждения
send_email_notification: Пользователь получит сообщение о том, что случилось с его/её учётной записью
@@ -21,44 +22,47 @@ ru:
starts_at: Необязательно. На случай, если ваше объявление привязано к какому-то временному интервалу
text: Вы можете использовать тот же синтаксис, что и в постах. Будьте предусмотрительны насчёт места, которое займёт объявление на экране пользователей
defaults:
- autofollow: Люди, пришедшие по этому приглашению, автоматически будут подписаны на вас
- avatar: Поддерживается PNG, GIF и JPG. Максимальный размер — %{size}. Будет уменьшен до %{dimensions}px
- bot: Эта учётная запись обычно выполяет автоматизированные действия и может не просматриваться владельцем
+ autofollow: Люди, пришедшие по этому приглашению, автоматически будут подписаны на вас.
+ avatar: Поддерживается PNG, GIF и JPG. Максимальный размер — %{size}. Будет уменьшен до %{dimensions}px.
+ bot: Отметьте, если с этой учётной записи выполняются автоматизированные действия и она может не просматриваться владельцем.
context: Один или несколько контекстов, к которым должны быть применены фильтры
current_password: В целях безопасности введите пароль текущей учётной записи
current_username: Для подтверждения, пожалуйста, введите имя пользователя текущей учётной записи
digest: Если вы долго не заглядывали, отправим вам дайджест событий, которые происходили в период вашего отсутствия.
- discoverable: Каталог профилей это один из способов получить охват вашего профиля более обширной аудиторией
- email: Вам будет отправлено электронное письмо с подтверждением
- fields: В профиле можно отобразить до 4 пунктов в виде таблицы
- header: Поддерживается PNG, GIF и JPG. Максимальный размер — %{size}. Будет уменьшена до %{dimensions}px
+ discoverable: Каталог профилей это один из способов получить охват вашего профиля более обширной аудиторией.
+ email: Вам будет отправлено электронное письмо с подтверждением.
+ fields: В профиле можно отобразить до 4 пунктов в виде таблицы.
+ header: Поддерживается PNG, GIF и JPG. Максимальный размер — %{size}. Будет уменьшена до %{dimensions}px.
inbox_url: Копировать URL с главной страницы ретранслятора, который вы хотите использовать
irreversible: Отфильтрованные посты будут утеряны навсегда, даже если в будущем фильтр будет убран
locale: Язык интерфейса, e-mail писем и push-уведомлений
- locked: Подписчиков нужно будет подтверждать самостоятельно
- password: Укажите не менее 8 символов
+ locked: Подписчиков нужно будет подтверждать вручную.
+ password: Укажите не менее 8 символов.
phrase: Будет сопоставлено независимо от присутствия в тексте или предупреждения о содержании поста
scopes: Какие API приложению будет позволено использовать. Если вы выберете самый верхний, нижестоящие будут выбраны автоматически.
- setting_aggregate_reblogs: Не показывать новые продвижения постов, которые уже были недавно продвинуты (относится только к новым продвижениям)
- setting_default_sensitive: Деликатные медиафайлы скрыты по умолчанию и могут быть показаны по нажатию на них
+ setting_aggregate_reblogs: Не показывать новые продвижения постов, которые уже были недавно продвинуты (относится только к новым продвижениям).
+ setting_default_sensitive: Деликатные медиафайлы скрыты по умолчанию и могут быть показаны по нажатию на них.
setting_display_media_default: Скрывать деликатные медиафайлы
setting_display_media_hide_all: Всегда скрывать любые медиафайлы
setting_display_media_show_all: Всегда показывать деликатные медиафайлы
- setting_hide_network: Другие не смогут видеть ни ваши подписки, ни ваших подписчиков
- setting_noindex: Относится к вашему публичному профилю и страницам постов
- setting_show_application: При просмотре поста будет видно из какого приложения он отправлен
- setting_use_blurhash: Градиенты основаны на цветах скрытых медиа, но скрывают любые детали
- setting_use_pending_items: Показывать обновления в ленте только после клика вместо автоматической прокрутки
+ setting_hide_network: Другие не смогут видеть ни ваши подписки, ни ваших подписчиков.
+ setting_noindex: Ваш публичный профиль и страницы постов будут скрыты из поисковых движков.
+ setting_show_application: При просмотре поста будет видно из какого приложения он отправлен.
+ setting_use_blurhash: Градиенты основаны на цветах скрытых медиа, но скрывают любые детали.
+ setting_use_pending_items: Показывать обновления в ленте только после клика вместо автоматической прокрутки.
username: Ваше имя пользователя будет уникальным на %{domain}
whole_word: Если слово или фраза состоит только из букв и цифр, сопоставление произойдёт только по полному совпадению
domain_allow:
domain: Этот домен сможет получать данные с этого сервера и его входящие данные будут обрабатываться и сохранены
+ email_domain_block:
+ domain: Это может быть домен, отображаемый в адресе электронной почты, MX-запись, на которую разрешается домен или IP сервера, на который разрешается MX-запись. Они будут проверены при регистрации пользователя, и регистрация будет отклонена.
+ with_dns_records: Будет сделана попытка разрешить DNS-записи данного домена и результаты также будут внесены в чёрный список
featured_tag:
name: 'Возможно, вы захотите добавить что-то из этого:'
form_challenge:
current_password: Вы входите в зону безопасности
imports:
- data: Файл CSV, экспортированный с другого узла Mastodon
+ data: Файл CSV, экспортированный с другого узла Mastodon.
invite_request:
text: Это поможет нам рассмотреть вашу заявку
sessions:
@@ -66,7 +70,7 @@ ru:
tag:
name: Вы можете изменить только регистр букв чтобы, например, сделать тег более читаемым
user:
- chosen_languages: Если выбрано, то в публичных лентах будут показаны только посты на выбранных языках
+ chosen_languages: Если выбрано, то в публичных лентах будут показаны только посты на выбранных языках.
labels:
account:
fields:
@@ -78,6 +82,7 @@ ru:
acct: Имя новой учётной записи
account_warning_preset:
text: Текст шаблона
+ title: Заголовок
admin_account_action:
include_statuses: Включать в письмо жалобы на посты
send_email_notification: Уведомить пользователя по e-mail
@@ -118,7 +123,7 @@ ru:
max_uses: Максимальное число использований
new_password: Новый пароль
note: О себе
- otp_attempt: Двухфакторный код
+ otp_attempt: Код из приложения-аутентификатора
password: Пароль
phrase: Слово или фраза
setting_advanced_layout: Включить многоколоночный интерфейс
@@ -150,6 +155,8 @@ ru:
username: Имя пользователя
username_or_email: Имя пользователя или e-mail
whole_word: Слово целиком
+ email_domain_block:
+ with_dns_records: Включить MX-записи и IP-адреса домена
featured_tag:
name: Хэштег
interactions:
diff --git a/config/locales/simple_form.sc.yml b/config/locales/simple_form.sc.yml
new file mode 100644
index 000000000..91bd6d92f
--- /dev/null
+++ b/config/locales/simple_form.sc.yml
@@ -0,0 +1 @@
+sc:
diff --git a/config/locales/simple_form.sk.yml b/config/locales/simple_form.sk.yml
index c10df08d0..9e03d7254 100644
--- a/config/locales/simple_form.sk.yml
+++ b/config/locales/simple_form.sk.yml
@@ -72,6 +72,7 @@ sk:
acct: Adresa nového účtu
account_warning_preset:
text: Text predlohy
+ title: Názov
admin_account_action:
include_statuses: Zahrnúť nahlásené príspevky v emaile
send_email_notification: Oznam užívateľovi cez email
@@ -83,6 +84,11 @@ sk:
silence: Utíš
suspend: Vylúč a nenávratne vymaž dáta na účte
warning_preset_id: Použi varovnú predlohu
+ announcement:
+ all_day: Celodenná udalosť
+ ends_at: Koniec udalosti
+ starts_at: Začiatok udalosti
+ text: Oboznámenie
defaults:
autofollow: Pozvi k následovaniu tvojho profilu
avatar: Maskot
@@ -141,7 +147,7 @@ sk:
featured_tag:
name: Haštag
interactions:
- must_be_follower: Blokuj oboznámenia od užívateľov, ktorí ma nenásledujú
+ must_be_follower: Blokuj oboznámenia od užívateľov, ktorí ma nenasledujú
must_be_following: Blokuj oboznámenia od ľudí, ktorých nesledujem
must_be_following_dm: Blokuj priame správy od ľudí, ktorých nesleduješ
invite:
diff --git a/config/locales/simple_form.sq.yml b/config/locales/simple_form.sq.yml
index b365bdda8..485f74d24 100644
--- a/config/locales/simple_form.sq.yml
+++ b/config/locales/simple_form.sq.yml
@@ -59,8 +59,12 @@ sq:
silence: Heshtje
suspend: Pezulloje dhe fshi në mënyrë të pakthyeshme të dhënat e llogarisë
warning_preset_id: Përdor një sinjalizim të paracaktuar
+ announcement:
+ starts_at: Fillimi i ngjarjes
+ text: Lajmërim
defaults:
autofollow: Ftesë për ndjekje të llogarisë tuaj
+ avatar: Foto profili
bot: Kjo është një llogari robot
chosen_languages: Filtro gjuhë
confirm_new_password: Ripohoni fjalëkalimin e ri
@@ -84,6 +88,7 @@ sq:
otp_attempt: Kod mirëfilltësimi dyfaktorësh
password: Fjalëkalim
phrase: Fjalëkyç ose frazë
+ setting_advanced_layout: Aktivizo ueb interface të avancuar
setting_aggregate_reblogs: Grupoji përforcimet në rrjedha kohore
setting_auto_play_gif: Vetëluaji GIF-et e animuar
setting_boost_modal: Shfaq dialog ripohimi përpara përforcimi
@@ -102,16 +107,23 @@ sq:
setting_show_application: Tregoje aplikacionin e përdorur për të dërguar mesazhe
setting_system_font_ui: Përdor shkronja parazgjedhje të sistemit
setting_theme: Temë sajti
+ setting_trends: Shfaq trendet e sodit
setting_unfollow_modal: Shfaq dialog ripohimi përpara heqjes së ndjekjes për dikë
+ setting_use_blurhash: Shfaq ngjyra me pjerrësi për media të fshehura
+ setting_use_pending_items: Gjendje e ngadalshme
severity: Rreptësi
type: Lloj importimi
username: Emër përdoruesi
username_or_email: Emër përdoruesi ose Email
whole_word: Krejt fjalën
+ featured_tag:
+ name: Hashtag
interactions:
must_be_follower: Blloko njoftime nga jo-ndjekës
must_be_following: Blloko njoftime nga persona që nuk i ndiqni
must_be_following_dm: Blloko mesazhe të drejtpërdrejt nga persona që nuk i ndiqni
+ invite:
+ comment: Komento
notification_emails:
digest: Dërgo email-e përmbledhës
favourite: Të dërgohet email kur dikush parapëlqen gjendjen tuaj
@@ -120,7 +132,11 @@ sq:
mention: Të dërgohet email kur dikush ju përmend
reblog: Dërgo email kur dikush përforcon gjendjen time
report: Dërgo email kur parashtrohet një raportim i ri
+ tag:
+ name: Hashtag
'no': Jo
+ recommended: Rekomanduar
required:
+ mark: "*"
text: e domosdoshme
'yes': Po
diff --git a/config/locales/simple_form.sv.yml b/config/locales/simple_form.sv.yml
index de0a14bd7..80b699c28 100644
--- a/config/locales/simple_form.sv.yml
+++ b/config/locales/simple_form.sv.yml
@@ -8,6 +8,7 @@ sv:
acct: Ange användarnamn@domän för kontot du flyttar till
account_warning_preset:
text: Du kan använda inläggssyntax som webbadresser, hashtaggar och omnämnanden
+ title: Valfri. Inte synlig för mottagaren
admin_account_action:
include_statuses: Användaren ser de toots som orsakat moderering eller varning
send_email_notification: Användaren kommer att få en förklaring av vad som hände med sitt konto
@@ -45,6 +46,8 @@ sv:
fields:
name: Etikett
value: Innehåll
+ account_warning_preset:
+ title: Rubrik
admin_account_action:
types:
none: Gör ingenting
diff --git a/config/locales/simple_form.ta.yml b/config/locales/simple_form.ta.yml
index bac29f158..74c641901 100644
--- a/config/locales/simple_form.ta.yml
+++ b/config/locales/simple_form.ta.yml
@@ -6,6 +6,8 @@ ta:
acct: நீங்கள் இங்கே நகர்த்த விரும்பும் கணக்கின் பயனர் பெயர்
account_migration:
acct: நீங்கள் இங்கே நகர்த்த விரும்பும் கணக்கின் பயனர் பெயர் username@domain
+ account_warning_preset:
+ title: விருப்பத் தேர்வு. பெறுநரால் பார்க்கமுடியாது
admin_account_action:
send_email_notification: தங்கள் கணக்கிற்கு என்ன நேர்ந்தது என்ற விவரம் பயனரால் பெறப்படும்
announcement:
@@ -23,10 +25,15 @@ ta:
password: குறைந்தது 8 எழுத்துக்களைப் பயன்படுத்தவும்
setting_display_media_hide_all: எப்போதும் எல்லா ஊடகங்களையும் மறைக்கவும்
setting_display_media_show_all: உணர்ச்சி வயப்படு (Sensitive) குறிக்கப்பட்ட மீடியாவை எப்போதும் காட்டுங்கள்
+ email_domain_block:
+ domain: இது மின்னஞ்சலில் காணப்படும் களத்தின் பெயராக இருக்கலாம், அல்லது அக்களம் சார்ந்திருக்கும் MX record-ஆக இருக்கலாம், அல்லது அந்த MX record சார்ந்திருக்கும் சர்வரின் IP முகவரியாக இருக்கலாம். பயனர் கணக்கைத் துவங்கும்போது அவை கண்காணிக்கப்பட்டு, கணக்குத் துவக்கம் நிராகரிக்கப்படும்.
+ with_dns_records: இக்களத்தின் DNS record-களை சரிசெய்யும் முயற்சி மேற்கொள்ளப்படும், மற்றும் அதன் முடிவுகள் தடுப்புப்பட்டியலில் சேர்க்கப்படும்
labels:
account:
fields:
name: லேபிள்
+ account_warning_preset:
+ title: தலைப்பு
admin_account_action:
types:
disable: உள்நுழைவை முடக்கு
@@ -59,6 +66,8 @@ ta:
setting_use_pending_items: மெதுவான பயன்முறை
username: பயனர்பெயர்
username_or_email: பயனர் பெயர் அல்லது மின்னஞ்சல்
+ email_domain_block:
+ with_dns_records: களத்தின் IP மற்றும் MX records-ஐ உள்ளடக்கு
required:
text: தேவை
'yes': ஆம்
diff --git a/config/locales/simple_form.th.yml b/config/locales/simple_form.th.yml
index 33a255e8d..0f8578bb1 100644
--- a/config/locales/simple_form.th.yml
+++ b/config/locales/simple_form.th.yml
@@ -8,6 +8,7 @@ th:
acct: ระบุ username@domain ของบัญชีที่คุณต้องการย้ายไป
account_warning_preset:
text: คุณสามารถใช้ไวยากรณ์โพสต์ เช่น URL, แฮชแท็ก และการกล่าวถึง
+ title: ตัวเลือกเพิ่มเติม ไม่ปรากฏแก่ผู้รับ
admin_account_action:
include_statuses: ผู้ใช้จะเห็นว่าโพสต์ใดก่อให้เกิดการกระทำการควบคุมหรือคำเตือน
send_email_notification: ผู้ใช้จะได้รับคำอธิบายว่าเกิดอะไรขึ้นกับบัญชีของเขา
@@ -23,7 +24,7 @@ th:
defaults:
autofollow: ผู้คนที่ลงทะเบียนผ่านคำเชิญจะติดตามคุณโดยอัตโนมัติ
avatar: PNG, GIF หรือ JPG สูงสุด %{size} จะถูกย่อขนาดเป็น %{dimensions}px
- bot: บัญชีนี้ทำการกระทำอัตโนมัติเป็นหลักและอาจไม่ได้รับการสังเกตการณ์
+ bot: บัญชีนี้ทำการกระทำแบบอัตโนมัติเป็นหลักและอาจไม่ได้รับการสังเกตการณ์
context: บริบทจำนวนหนึ่งหรือมากกว่าที่ตัวกรองควรใช้
current_password: เพื่อวัตถุประสงค์ด้านความปลอดภัย โปรดป้อนรหัสผ่านของบัญชีปัจจุบัน
current_username: เพื่อยืนยัน โปรดป้อนชื่อผู้ใช้ของบัญชีปัจจุบัน
@@ -42,8 +43,8 @@ th:
setting_aggregate_reblogs: ไม่แสดงการดันใหม่สำหรับโพสต์ที่เพิ่งดัน (มีผลต่อการดันที่ได้รับใหม่เท่านั้น)
setting_default_sensitive: ซ่อนสื่อที่ละเอียดอ่อนโดยค่าเริ่มต้นและสามารถเปิดเผยได้ด้วยการคลิก
setting_display_media_default: ซ่อนสื่อที่ถูกทำเครื่องหมายว่าละเอียดอ่อน
- setting_display_media_hide_all: ซ่อนสื่อทั้งหมดเสมอ
- setting_display_media_show_all: แสดงสื่อที่ถูกทำเครื่องหมายว่าละเอียดอ่อนเสมอ
+ setting_display_media_hide_all: ซ่อนสื่อเสมอ
+ setting_display_media_show_all: แสดงสื่อเสมอ
setting_hide_network: จะไม่แสดงผู้ที่คุณติดตามและผู้ที่ติดตามคุณในโปรไฟล์ของคุณ
setting_noindex: มีผลต่อโปรไฟล์สาธารณะและหน้าสถานะของคุณ
setting_show_application: จะแสดงแอปพลิเคชันที่คุณใช้เพื่อโพสต์ในมุมมองโดยละเอียดของโพสต์ของคุณ
@@ -78,6 +79,7 @@ th:
acct: การจัดการบัญชีใหม่
account_warning_preset:
text: ข้อความที่ตั้งไว้ล่วงหน้า
+ title: ชื่อเรื่อง
admin_account_action:
include_statuses: รวมโพสต์ที่รายงานไว้ในอีเมล
send_email_notification: แจ้งเตือนผู้ใช้ทางอีเมล
@@ -86,7 +88,7 @@ th:
types:
disable: ปิดใช้งานการเข้าสู่ระบบ
none: ไม่ทำสิ่งใด
- silence: เงียบ
+ silence: ทำให้เงียบ
suspend: ระงับและลบข้อมูลบัญชีอย่างถาวร
warning_preset_id: ใช้คำเตือนที่ตั้งไว้ล่วงหน้า
announcement:
@@ -126,8 +128,8 @@ th:
setting_auto_play_gif: เล่น GIF แบบเคลื่อนไหวโดยอัตโนมัติ
setting_boost_modal: แสดงกล่องโต้ตอบการยืนยันก่อนดัน
setting_crop_images: ครอบตัดภาพในโพสต์ที่ไม่ได้ขยายเป็น 16x9
- setting_default_language: ภาษาที่โพสต์
- setting_default_privacy: ความเป็นส่วนตัวของโพสต์
+ setting_default_language: ภาษาของการโพสต์
+ setting_default_privacy: ความเป็นส่วนตัวของการโพสต์
setting_default_sensitive: ทำเครื่องหมายสื่อว่าละเอียดอ่อนเสมอ
setting_delete_modal: แสดงกล่องโต้ตอบการยืนยันก่อนลบโพสต์
setting_display_media: การแสดงสื่อ
@@ -150,6 +152,8 @@ th:
username: ชื่อผู้ใช้
username_or_email: ชื่อผู้ใช้หรืออีเมล
whole_word: ทั้งคำ
+ email_domain_block:
+ with_dns_records: รวมระเบียน MX และ IP ของโดเมน
featured_tag:
name: แฮชแท็ก
interactions:
@@ -166,10 +170,10 @@ th:
follow: ใครสักคนได้ติดตามคุณ
follow_request: ใครสักคนได้ขอติดตามคุณ
mention: ใครสักคนได้กล่าวถึงคุณ
- pending_account: ส่งอีเมลเมื่อบัญชีใหม่ต้องการการตรวจทาน
+ pending_account: บัญชีใหม่ต้องมีการตรวจทาน
reblog: ใครสักคนได้ดันสถานะของคุณ
- report: ส่งอีเมลเมื่อมีการส่งรายงานใหม่
- trending_tag: ส่งอีเมลเมื่อแฮชแท็กที่ยังไม่ได้ตรวจทานกำลังนิยม
+ report: มีการส่งรายงานใหม่
+ trending_tag: แฮชแท็กที่ยังไม่ได้ตรวจทานกำลังนิยม
tag:
listable: อนุญาตให้แฮชแท็กนี้ปรากฏในการค้นหาและในไดเรกทอรีโปรไฟล์
name: แฮชแท็ก
diff --git a/config/locales/simple_form.tr.yml b/config/locales/simple_form.tr.yml
index 69ee19f1b..60f7c9eac 100644
--- a/config/locales/simple_form.tr.yml
+++ b/config/locales/simple_form.tr.yml
@@ -78,6 +78,7 @@ tr:
acct: Yeni hesabın tanıtıcısı
account_warning_preset:
text: Ön-ayar metni
+ title: Başlık
admin_account_action:
include_statuses: Birdirilen tootları e-postaya dahil et
send_email_notification: E-postayla kullanıcıyı bilgilendir
diff --git a/config/locales/simple_form.uk.yml b/config/locales/simple_form.uk.yml
index 2fe0461cf..10977aedc 100644
--- a/config/locales/simple_form.uk.yml
+++ b/config/locales/simple_form.uk.yml
@@ -8,6 +8,7 @@ uk:
acct: Вкажіть ім'я користувача@домен облікового запису, на яку ви хочете переміститися
account_warning_preset:
text: Ви можете використовувати синтаксис дмухів, наприклад URLи, хештеґи та згадки
+ title: Необов'язково. Не відображається отримувачу
admin_account_action:
include_statuses: Користувач побачить, які дмухи призвели до адміністративних дій або попереджень
send_email_notification: Користувач отримає роз'яснення, що сталося з його обліковим записом
@@ -23,7 +24,7 @@ uk:
defaults:
autofollow: Люди, що зареєструвалися за вашим запрошенням, автоматично підпишуться на вас
avatar: PNG, GIF, або JPG. Максимум - %{size}. Буде зменшено до %{dimensions}px
- bot: Цей аккаунт в основному виконує автоматичні дії та може не відстежуватіся
+ bot: Цей акаунт виконує автоматичні дії та може не відстежуватися
context: Один або кілька контекстів, до яких повинні бути застосовані фільтри
current_password: Для цілей безпеки, будь ласка, введіть пароль поточного облікового запису
current_username: Для підтвердження, будь ласка, введіть ім'я користувача поточного облікового запису
@@ -42,8 +43,8 @@ uk:
setting_aggregate_reblogs: Не показувати передмухи для дмухів, які нещодавно вже були передмухнуті (не вплине на вже отримані передмухи)
setting_default_sensitive: Дражливі медіа приховані за промовчанням та можуть бути розкрити кліком
setting_display_media_default: Приховувати медіа, помічені як дражливі
- setting_display_media_hide_all: Приховувати будь-які медіа
- setting_display_media_show_all: Завжди відображати медіа, помічені як дражливі
+ setting_display_media_hide_all: Завжди приховувати медіа
+ setting_display_media_show_all: Завжди показувати медіа
setting_hide_network: У вашому профілі не буде відображено підписки та підписників
setting_noindex: Впливає на ваш публічний профіль та сторінки статусу
setting_show_application: Застосунок, за допомогою якого ви дмухнули, буде відображено серед деталей дмуху
@@ -78,6 +79,7 @@ uk:
acct: Оброблювач нового облікового запису
account_warning_preset:
text: Текст шаблону
+ title: Заголовок
admin_account_action:
include_statuses: Додати дмухи, на які ви скаржитесь, до електронного листа
send_email_notification: Сповістити користувача електронною поштою
diff --git a/config/locales/simple_form.zh-CN.yml b/config/locales/simple_form.zh-CN.yml
index 1a7b7de99..040e90ef7 100644
--- a/config/locales/simple_form.zh-CN.yml
+++ b/config/locales/simple_form.zh-CN.yml
@@ -7,7 +7,8 @@ zh-CN:
account_migration:
acct: 指定你想迁移过去的帐号的 用户名@站点域名
account_warning_preset:
- text: 你可以使用嘟文格式,在嘟文中加入 URL、话题标签和提及“@”
+ text: 你可以在嘟文中使用特殊格式,例如在嘟文中加入 URL、话题标签和提及“@”
+ title: 可选。对接收者不可见
admin_account_action:
include_statuses: 用户将会看到哪些嘟文导致了审核行为或警告
send_email_notification: 用户将收到对其账号上发生的事的解释
@@ -32,7 +33,7 @@ zh-CN:
email: 我们会向你发送一封确认邮件
fields: 这将会在个人资料页上以表格的形式展示,最多 4 个项目
header: 文件大小限制 %{size},只支持 PNG、GIF 或 JPG 格式。图片分辨率将会压缩至 %{dimensions}px
- inbox_url: 从你想要使用的中继的主页上复制 URL
+ inbox_url: 从你想要使用的中继站的主页上复制 URL
irreversible: 已过滤的嘟文会不可逆转地消失,即便移除过滤器之后也一样
locale: 用户界面、电子邮件和推送通知中使用的语言
locked: 你需要手动审核所有关注请求
@@ -53,6 +54,9 @@ zh-CN:
whole_word: 如果关键词只包含字母和数字,就只会在整个词被匹配时才会套用
domain_allow:
domain: 该站点将能够从该服务器上拉取数据,并且从那里发过来的数据也会被处理和存储。
+ email_domain_block:
+ domain: 这里可以是邮箱地址中的域名部分、域名解析到的 MX 记录,或者 MX 记录解析到的域名。这些检查会在用户注册时进行,如果在黑名单中,那么注册会被拒绝。
+ with_dns_records: Mastodon 会尝试解析所给域名的 DNS 记录,然后把解析结果一并加入黑名单
featured_tag:
name: 你可能想要使用以下之一:
form_challenge:
@@ -78,6 +82,7 @@ zh-CN:
acct: 处理新账号
account_warning_preset:
text: 预置文本
+ title: 标题
admin_account_action:
include_statuses: 在电子邮件中包括已举报的嘟文
send_email_notification: 通过邮件提醒此用户
@@ -111,8 +116,8 @@ zh-CN:
expires_in: 失效时间
fields: 个人资料附加信息
header: 个人资料页横幅图片
- inbox_url: 中继收件箱的 URL
- irreversible: 放弃而非隐藏
+ inbox_url: 中继站收件箱的 URL
+ irreversible: 丢弃而非隐藏
locale: 界面语言
locked: 保护你的帐户(锁嘟)
max_uses: 最大使用次数
@@ -150,6 +155,8 @@ zh-CN:
username: 用户名
username_or_email: 用户名或电子邮件地址
whole_word: 整个词条
+ email_domain_block:
+ with_dns_records: 包括改域名的 MX 记录和 IP 地址
featured_tag:
name: 话题标签
interactions:
diff --git a/config/locales/simple_form.zh-HK.yml b/config/locales/simple_form.zh-HK.yml
index 235d9c764..57befb139 100644
--- a/config/locales/simple_form.zh-HK.yml
+++ b/config/locales/simple_form.zh-HK.yml
@@ -13,11 +13,16 @@ zh-HK:
text_html: 選用。您能使用嘟文語法。您可 新增警告預設 來節省時間
type_html: 設定要使用 %{acct} 做的事
warning_preset_id: 選用。您仍可在預設的結尾新增自訂文字
+ announcement:
+ all_day: 核取後,只會顯示出時間範圍中的日期部分
+ scheduled_at: 空白則立即發布公告
defaults:
autofollow: 通過邀請網址註冊的用戶將會自動關注你
avatar: 支援 PNG, GIF 或 JPG 圖片,檔案最大為 %{size},會縮裁成 %{dimensions}px
bot: 提醒用戶本帳號是機械人
context: 應該套用過濾器的一項或多項內容
+ current_password: 因安全因素,請輸入目前帳戶的密碼
+ current_username: 請輸入目前帳戶的使用者名稱以確認
digest: 僅在你長時間未登錄,且收到了私信時發送
email: 您將收到一封確認電子郵件
fields: 個人資料頁可顯示多至 4 個項目
@@ -30,6 +35,7 @@ zh-HK:
phrase: 無論是嘟文的本文或是內容警告都會被過濾
scopes: 允許讓應用程式存取的 API。 若您選擇最高階範圍,則無須選擇個別項目。
setting_aggregate_reblogs: 請勿顯示最近已被轉嘟之嘟文的最新轉嘟(只影響最新收到的嘟文)
+ setting_default_sensitive: 敏感媒體預設隱藏,且按一下即可重新顯示
setting_display_media_default: 隱藏標為敏感的媒體
setting_display_media_hide_all: 總是隱藏所有媒體
setting_display_media_show_all: 總是顯示標為敏感的媒體
@@ -40,10 +46,16 @@ zh-HK:
whole_word: 如果關鍵字或詞組僅有字母與數字,則其將只在符合整個單字的時候才會套用
featured_tag:
name: 您可能想使用其中一個:
+ form_challenge:
+ current_password: 您正要進入安全區域
imports:
data: 自其他服務站匯出的 CSV 檔案
+ invite_request:
+ text: 這會協助我們審核您的應用程式
sessions:
otp: 輸入你手機上生成的雙重認證碼,或者任意一個恢復代碼:
+ tag:
+ name: 您只能變更大小寫,例如,以使其更易讀。
user:
chosen_languages: 只有被選擇的語言會在公開時間軸內顯示
labels:
@@ -54,6 +66,7 @@ zh-HK:
account_warning_preset:
text: 預設文字
admin_account_action:
+ include_statuses: 在電子郵件中加入檢舉的嘟文
send_email_notification: 透過電子信件通知使用者
text: 自訂警告
type: 動作
@@ -63,6 +76,12 @@ zh-HK:
silence: 安靜
suspend: 停權並不可逆的刪除帳戶資料
warning_preset_id: 使用警告預設
+ announcement:
+ all_day: 全天活動
+ ends_at: 活動結束時間
+ scheduled_at: 排程發佈
+ starts_at: 活動開始時間
+ text: 公告
defaults:
autofollow: 邀請別人關注你的賬號
avatar: 個人頭像
@@ -89,6 +108,7 @@ zh-HK:
otp_attempt: 雙重認證碼
password: 密碼
phrase: 關鍵字或片語
+ setting_advanced_layout: 啟用進階網頁介面
setting_aggregate_reblogs: 時間軸中的群組轉嘟
setting_auto_play_gif: 自動播放 GIF
setting_boost_modal: 在轉推前詢問我
@@ -107,7 +127,9 @@ zh-HK:
setting_show_application: 顯示用來傳送嘟文的應用程式
setting_system_font_ui: 使用系統預設字型
setting_theme: 網站主題
+ setting_trends: 顯示本日趨勢
setting_unfollow_modal: 取消關注前跳出詢問我
+ setting_use_pending_items: 限速模式
severity: 等級
type: 匯入資料類型
username: 用戶名稱
@@ -119,15 +141,26 @@ zh-HK:
must_be_follower: 隱藏沒有關注你的用戶的通知
must_be_following: 隱藏你不關注的用戶的通知
must_be_following_dm: 隱藏你不關注的用戶的私信
+ invite:
+ comment: 備註
+ invite_request:
+ text: 加入的原因
notification_emails:
digest: 定期電郵摘要
favourite: 當有用戶喜歡你的文章時,發電郵通知
follow: 當有用戶關注你時,發電郵通知
follow_request: 當有用戶要求關注你時,發電郵通知
mention: 當有用戶在文章提及你時,發電郵通知
+ pending_account: 需要審核的新帳戶
reblog: 當有用戶轉推你的文章時,發電郵通知
report: 當提交新檢舉時傳送電子郵件
+ tag:
+ listable: 允許此主題標籤在搜尋及個人檔案目錄中顯示
+ name: 主題標籤
+ trendable: 允許此主題標籤在趨勢下顯示
+ usable: 允許嘟文使用此主題標籤
'no': 否
+ recommended: 建議
required:
mark: "*"
text: 必須填寫
diff --git a/config/locales/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml
index 7de349ee3..6efebbe6d 100644
--- a/config/locales/simple_form.zh-TW.yml
+++ b/config/locales/simple_form.zh-TW.yml
@@ -13,11 +13,16 @@ zh-TW:
text_html: 選用。您能使用嘟文語法。您可 新增警告預設 來節省時間
type_html: 設定要使用 %{acct} 做的事
warning_preset_id: 選用。您仍可在預設的結尾新增自訂文字
+ announcement:
+ all_day: 核取後,只會顯示出時間範圍中的日期部分
+ scheduled_at: 空白則立即發布公告
defaults:
autofollow: 通過邀請網址註冊的使用者將自動關注你
avatar: 支援 PNG, GIF 或 JPG 圖片,檔案最大為 %{size},會等比例縮減成 %{dimensions} 像素
bot: 此帳戶主要執行自動操作且可能未被監控
context: 應該套用過濾器的一項或多項內容
+ current_password: 因安全因素,請輸入目前帳戶的密碼
+ current_username: 請輸入目前帳戶的使用者名稱以確認
digest: 僅在你長時間未登入且在未登入期間收到私訊時傳送
email: 您將收到一封確認電子郵件
fields: 您可在個人資料上有至多 4 個以表格形式顯示的項目
@@ -30,6 +35,7 @@ zh-TW:
phrase: 無論是嘟文的本文或是內容警告都會被過濾
scopes: 允許讓應用程式存取的 API。 若您選擇最高階範圍,則無須選擇個別項目。
setting_aggregate_reblogs: 請勿顯示最近已被轉嘟之嘟文的最新轉嘟(只影響最新收到的嘟文)
+ setting_default_sensitive: 敏感媒體預設隱藏,且按一下即可重新顯示
setting_display_media_default: 隱藏標為敏感的媒體
setting_display_media_hide_all: 總是隱藏所有媒體
setting_display_media_show_all: 總是顯示標為敏感的媒體
@@ -40,10 +46,16 @@ zh-TW:
whole_word: 如果關鍵字或詞組僅有字母與數字,則其將只在符合整個單字的時候才會套用
featured_tag:
name: 您可能想使用其中一個:
+ form_challenge:
+ current_password: 您正要進入安全區域
imports:
data: 從其他 Mastodon 伺服器匯出的 CSV 檔案
+ invite_request:
+ text: 這會協助我們審核您的應用程式
sessions:
otp: 請輸入產生自您手機 App 的兩步驟驗證碼,或輸入其中一個復原代碼:
+ tag:
+ name: 您只能變更大小寫,例如,以使其更易讀。
user:
chosen_languages: 當核取時,只有選取語言的嘟文會在公開時間軸中顯示
labels:
@@ -54,6 +66,7 @@ zh-TW:
account_warning_preset:
text: 預設文字
admin_account_action:
+ include_statuses: 在電子郵件中加入檢舉的嘟文
send_email_notification: 透過電子信件通知使用者
text: 自訂警告
type: 動作
@@ -63,6 +76,12 @@ zh-TW:
silence: 安靜
suspend: 停權並不可逆的刪除帳戶資料
warning_preset_id: 使用警告預設
+ announcement:
+ all_day: 全天活動
+ ends_at: 活動結束時間
+ scheduled_at: 排程發佈
+ starts_at: 活動開始時間
+ text: 公告
defaults:
autofollow: 邀請別人關注你的帳戶
avatar: 大頭貼
@@ -89,6 +108,7 @@ zh-TW:
otp_attempt: 兩步驟驗證碼
password: 密碼
phrase: 關鍵字或片語
+ setting_advanced_layout: 啟用進階網頁介面
setting_aggregate_reblogs: 時間軸中的群組轉嘟
setting_auto_play_gif: 自動播放 GIF 動畫
setting_boost_modal: 在轉嘟前先詢問我
@@ -107,7 +127,9 @@ zh-TW:
setting_show_application: 顯示用來傳送嘟文的應用程式
setting_system_font_ui: 使用系統預設字型
setting_theme: 站點主題
+ setting_trends: 顯示本日趨勢
setting_unfollow_modal: 取消關注某人前先詢問我
+ setting_use_pending_items: 限速模式
severity: 優先級
type: 匯入類型
username: 使用者名稱
@@ -119,15 +141,26 @@ zh-TW:
must_be_follower: 封鎖非關注者的通知
must_be_following: 封鎖您未關注之使用者的通知
must_be_following_dm: 封鎖您未關注之使用者的私訊
+ invite:
+ comment: 備註
+ invite_request:
+ text: 加入的原因
notification_emails:
digest: 傳送摘要信件
favourite: 當有使用者喜歡你的嘟文時,傳送電子信件通知
follow: 當有使用者關注你時,傳送電子信件通知
follow_request: 當有使用者請求關注你時,傳送電子信件通知
mention: 當有使用者在嘟文提及你時,傳送電子信件通知
+ pending_account: 需要審核的新帳戶
reblog: 當有使用者轉嘟你的嘟文時,傳送電子信件通知
report: 當提交新檢舉時傳送電子郵件
+ tag:
+ listable: 允許此主題標籤在搜尋及個人檔案目錄中顯示
+ name: 主題標籤
+ trendable: 允許此主題標籤在趨勢下顯示
+ usable: 允許嘟文使用此主題標籤
'no': 否
+ recommended: 建議
required:
mark: "*"
text: 必須填寫
diff --git a/config/locales/sk.yml b/config/locales/sk.yml
index dbee6bb12..e11fb3e69 100644
--- a/config/locales/sk.yml
+++ b/config/locales/sk.yml
@@ -10,7 +10,7 @@ sk:
api: API
apps: Aplikácie
apps_platforms: Užívaj Mastodon z iOSu, Androidu, a iných platforiem
- browse_directory: Prehľadávaj databázu profilov, filtruj podľa záujmov
+ browse_directory: Prehľadávaj databázu profilov, a filtruj podľa záujmov
browse_local_posts: Prebádaj naživo prúd verejných príspevkov z tohto servera
browse_public_posts: Sleduj naživo prúd verejných príspevkov na Mastodone
contact: Kontakt
@@ -35,7 +35,7 @@ sk:
one: príspevok
other: príspevky
status_count_before: Ktorí napísali
- tagline: Následuj kamarátov, a objavuj nových
+ tagline: Nasleduj kamarátov, a objavuj nových
terms: Podmienky užitia
unavailable_content: Nedostupný obsah
unavailable_content_description:
@@ -43,6 +43,7 @@ sk:
reason: 'Dôvod:'
rejecting_media: 'Mediálne súbory z týchto serverov nebudú spracované, alebo ukladané, a nebudú z nich zobrazované žiadne náhľady, vyžadujúc ručné prekliknutie priamo až k pôvodnému súboru:'
silenced: 'Príspevky z týchto serverov budú skryté z verejných osí a z konverzácií, a nebudú vytvorené žiadné oboznámena ohľadom aktivity ich užívateľov, pokiaľ ich nenásleduješ:'
+ unavailable_content_html: Vo všeobecnosti, Mastodon ti dovoľuje vidieť obsah, a komunikovať s užívateľmi akéhokoľvek iného serveru v rámci fediversa. Toto sú výnimky, ktoré boli vytvorené na tomto konkrétnom serveri.
user_count_after:
few: užívateľov
many: užívatelia
@@ -75,9 +76,9 @@ sk:
following: Musíš už následovať toho človeka, ktorého si praješ zviditeľniť
posts:
few: Príspevkov
- many: Príspevkov
+ many: Príspevky
one: Príspevok
- other: Príspevky
+ other: Príspevkov
posts_tab_heading: Príspevky
posts_with_replies: Príspevky s odpoveďami
reserved_username: Prihlasovacie meno je vyhradené
@@ -98,6 +99,7 @@ sk:
delete: Vymaž
destroyed_msg: Moderátorska poznámka bola úspešne zmazaná!
accounts:
+ add_email_domain_block: Pridaj e-mailovú doménu na zoznam zakázaných
approve: Schváľ
approve_all: Schváľ všetky
are_you_sure: Si si istý/á?
@@ -116,7 +118,7 @@ sk:
deleted: Vymazané
demote: Degraduj
disable: Zablokuj
- disable_two_factor_authentication: Zakáž 2FA
+ disable_two_factor_authentication: Vypni dvoj-faktorové overovanie
disabled: Blokovaný
display_name: Ukáž meno
domain: Doména
@@ -178,6 +180,7 @@ sk:
staff: Člen
user: Užívateľ
search: Hľadaj
+ search_same_email_domain: Iní užívatelia s tou istou emailovou doménou
search_same_ip: Ostatní užívatelia s rovnakou IP adresou
shared_inbox_url: URL zdieľanej schránky
show:
@@ -199,6 +202,28 @@ sk:
web: Web
whitelisted: Na bielej listine
action_logs:
+ action_types:
+ assigned_to_self_report: Priraď hlásenie
+ change_email_user: Zmeň email pre užívateľa
+ confirm_user: Potvrď užívateľa
+ create_account_warning: Vytvor výstrahu
+ create_announcement: Vytvor oboznámenie
+ create_domain_allow: Vytvor povolenie pre doménu
+ create_domain_block: Vytvor doménovú blokádu
+ demote_user: Zniž užívateľskú rolu
+ destroy_announcement: Vymaž oboznámenie
+ destroy_domain_allow: Zmaž povolenie pre doménu
+ destroy_domain_block: Zruš blokovanie domény
+ destroy_status: Vymaž príspevok
+ disable_2fa_user: Vypni dvoj-faktorové overovanie
+ disable_user: Deaktivuj užívateľa
+ enable_user: Povoľ užívateľa
+ remove_avatar_user: Vymaž avatar
+ reopen_report: Znovu otvor hlásenie
+ reset_password_user: Obnov heslo
+ silence_account: Utíš účet
+ suspend_account: Vylúč účet
+ update_status: Aktualizuj stav
actions:
assigned_to_self_report: "%{name} pridelil/a hlásenie užívateľa %{target} sebe"
change_email_user: "%{name} zmenil/a emailovú adresu užívateľa %{target}"
@@ -233,6 +258,8 @@ sk:
update_custom_emoji: "%{name} aktualizoval/a emoji %{target}"
update_status: "%{name} aktualizoval/a status pre %{target}"
deleted_status: "(zmazaný príspevok)"
+ filter_by_action: Filtruj podľa úkonu
+ filter_by_user: Trieď podľa užívateľa
title: Kontrólny záznam
announcements:
destroyed_msg: Oboznámenie úspešne vymazané!
@@ -244,6 +271,8 @@ sk:
create: Vytvor oznam
title: Nové oznámenie
published_msg: Oboznámenie úspešne zverejnené!
+ scheduled_for: Načasované na %{time}
+ scheduled_msg: Oboznámenie bolo naplánované na zverejnenie!
title: Oboznámenia
custom_emojis:
assign_category: Priraď kategóriu
@@ -358,6 +387,7 @@ sk:
destroyed_msg: Emailová doména bola úspešne vymazaná zo zoznamu zakázaných
domain: Doména
empty: Žiadné emailové domény niesú v súčasnosti na čiernej listine.
+ from_html: z %{domain}
new:
create: Pridaj doménu
title: Nový email na zablokovanie
@@ -538,6 +568,9 @@ sk:
trends:
desc_html: Verejne zobraz už schválené haštagy, ktoré práve trendujú
title: Populárne haštagy
+ site_uploads:
+ delete: Vymaž nahratý súbor
+ destroyed_msg: Nahratie bolo zo stránky úspešne vymazané!
statuses:
back_to_account: Späť na účet
batch:
@@ -574,7 +607,6 @@ sk:
warning_presets:
add_new: Pridaj nové
delete: Vymaž
- edit: Uprav
edit_preset: Uprav varovnú predlohu
title: Spravuj varovné predlohy
admin_mailer:
@@ -657,9 +689,9 @@ sk:
authorize_follow:
already_following: Tento účet už následuješ
error: Naneštastie nastala chyba pri hľadaní vzdialeného účtu
- follow: Následuj
+ follow: Nasleduj
follow_request: 'Poslal/a si žiadosť následovať užívateľa:'
- following: 'Podarilo sa! Teraz už následuješ užívateľa:'
+ following: 'Podarilo sa! Teraz nasleduješ užívateľa:'
post_follow:
close: Alebo môžeš iba zatvoriť toto okno.
return: Ukáž užívateľov profil
@@ -686,7 +718,7 @@ sk:
x_seconds: "%{count}sek"
deletes:
challenge_not_passed: Údaje, ktoré si zadal/a, sú nesprávne
- confirm_password: Napíšte svoje terajšie heslo pre overenie vašej identity
+ confirm_password: Napíš svoje terajšie heslo pre overenie tvojej identity
confirm_username: Zadaj svoju prezývku, na potvrdenie úkonu
proceed: Vymaž účet
success_msg: Tvoj účet bol úspešne vymazaný
@@ -745,6 +777,7 @@ sk:
limit: Už si si predvolil/a najvyšší možný počet obľúbených haštagov
filters:
contexts:
+ account: Profily
home: Domáca os
notifications: Oznámenia
public: Verejné osi
@@ -769,6 +802,7 @@ sk:
all: Všetko
changes_saved_msg: Zmeny boli úspešne uložené!
copy: Kopíruj
+ delete: Vymaž
no_batch_actions_available: Na tejto stránke niesú k dispozícii žiadne hromadné akcie
order_by: Zoraď podľa
save_changes: Ulož zmeny
@@ -899,7 +933,7 @@ sk:
title: Nové obľúbené
follow:
body: "%{name} ťa teraz následuje!"
- subject: "%{name} ťa teraz následuje"
+ subject: "%{name} ťa teraz nasleduje"
title: Nový sledovateľ
follow_request:
action: Spravuj žiadosti o sledovanie
@@ -939,6 +973,10 @@ sk:
other: Ostatné
posting_defaults: Východiskové nastavenia príspevkov
public_timelines: Verejné časové osi
+ reactions:
+ errors:
+ limit_reached: Maximálny počet rôznorodých reakcií bol dosiahnutý
+ unrecognized_emoji: je neznámy smajlík
relationships:
activity: Aktivita účtu
dormant: Spiace
@@ -1046,6 +1084,8 @@ sk:
many: 'obsah nepovolených haštagov: %{tags}'
one: 'obsahoval nepovolený haštag: %{tags}'
other: 'obsahoval nepovolené haštagy: %{tags}'
+ errors:
+ in_reply_not_found: Príspevok, na ktorý sa snažíš odpovedať, už pravdepodobne neexistuje.
language_detection: Zisti automaticky
open_in_web: Otvor v okne na webe
over_character_limit: limit %{max} znakov bol presiahnutý
@@ -1067,6 +1107,7 @@ sk:
other: "%{count} hlasy"
vote: Hlasuj
show_more: Ukáž viac
+ show_thread: Ukáž diskusné vlákno
sign_in_to_participate: Prihlás sa pre zapojenie do diskusie
title: '%{name}: „%{quote}"'
visibilities:
diff --git a/config/locales/sl.yml b/config/locales/sl.yml
index afb928f11..a7cf869a4 100644
--- a/config/locales/sl.yml
+++ b/config/locales/sl.yml
@@ -58,6 +58,7 @@ sl:
media: Mediji
moved_html: "%{name} se je prestavil na %{new_profile_link}:"
network_hidden: Ta informacija ni na voljo
+ never_active: Nikoli
nothing_here: Tukaj ni ničesar!
people_followed_by: Ljudje, ki jim sledi %{name}
people_who_follow: Ljudje, ki sledijo %{name}
@@ -485,7 +486,6 @@ sl:
warning_presets:
add_new: Dodaj novo
delete: Izbriši
- edit: Uredi
edit_preset: Uredi prednastavitev opozoril
title: Upravljaj prednastavitev opozoril
admin_mailer:
diff --git a/config/locales/sq.yml b/config/locales/sq.yml
index 6a7a945c4..eee431006 100644
--- a/config/locales/sq.yml
+++ b/config/locales/sq.yml
@@ -4,23 +4,37 @@ sq:
about_hashtag_html: Këto janë mesazhe publike të etiketuar me #%{hashtag}. Mundeni të ndërveproni me ta, nëse keni një llogari kudo qoftë në fediverse.
about_mastodon_html: Mastodon-i është një rrjet shoqëror i bazuar në protokolle web të hapur dhe në software të lirë, me burim të hapur. Është i decentralizuar, si email-ii.
about_this: Mbi
+ active_count_after: aktive
+ active_footnote: Përdorues Aktivë Mujor (PAM)
administered_by: 'Administruar nga:'
+ api: API
apps: Aplikacione për celular
contact: Kontakt
contact_missing: I parregulluar
+ contact_unavailable: N/A
+ discover_users: Zbulo përdoruesit
documentation: Dokumentim
+ get_apps: Provo app mobil
hosted_on: Mastodon i strehuar në %{domain}
learn_more: Mësoni më tepër
privacy_policy: Rregulla privatësie
+ see_whats_happening: Shih se ç'po ndodhë
+ server_stats: 'Statistika serveri:'
source_code: Kod burim
status_count_after:
one: gjendje
other: gjendje
status_count_before: Cili krijoi
+ tagline: Ndjek shokët/shoqet dhe gjej të ri
terms: Kushte shërbimi
+ unavailable_content: Përmbajtje e pa arritshme
+ unavailable_content_description:
+ domain: Server
+ reason: Arsye
user_count_after:
one: përdorues
other: përdorues
+ user_count_before: Shtëpi për
what_is_mastodon: Ç’është Mastodon-i?
accounts:
choices_html: 'Zgjedhje të %{name}:'
@@ -32,8 +46,10 @@ sq:
joined: U bë pjesë më %{date}
last_active: aktiv së fundi
link_verified_on: Pronësia e kësaj lidhjeje qe kontrolluar më %{date}
+ media: Media
moved_html: "%{name} ka kaluar te %{new_profile_link}:"
network_hidden: Këto të dhëna nuk mund të kihen
+ never_active: Asnjëherë
nothing_here: S’ka gjë këtu!
people_followed_by: Persona të ndjekur nga %{name}
people_who_follow: Persona që ndjekin %{name}
@@ -47,6 +63,9 @@ sq:
reserved_username: Emri i përdoruesit është i ruajtur për dikë
roles:
admin: Përgjegjës
+ bot: Bot
+ group: Grup
+ unavailable: Profil i pa arritshëm
unfollow: Resht së ndjekuri
admin:
account_actions:
@@ -58,7 +77,11 @@ sq:
delete: Fshije
destroyed_msg: Shënimi i moderimit u asgjësua me sukses!
accounts:
+ add_email_domain_block: Shto e-mail domain në listën e zezë
+ approve: Prano
+ approve_all: Prano të gjithë
are_you_sure: A jeni i sigurt?
+ avatar: Foto profili
by_domain: Përkatësi
change_email:
changed_msg: Email-i i llogarisë u ndryshua me sukses!
@@ -78,6 +101,7 @@ sq:
display_name: Emër në ekran
domain: Përkatësi
edit: Përpunojeni
+ email: Email
email_status: Gjendje email-i
enable: Aktivizoje
enabled: E aktivizuar
@@ -86,6 +110,7 @@ sq:
header: Krye
inbox_url: URL Mesazhesh të Marrë
invited_by: Ftuar nga
+ ip: IP
joined: U bë pjesë
location:
all: Krejt
@@ -98,20 +123,25 @@ sq:
moderation:
active: Aktiv
all: Krejt
+ pending: Në pritje
silenced: U heshtua
suspended: Të pezulluara
title: Moderim
moderation_notes: Shënime moderimesh
most_recent_activity: Veprimtaria më e freskët
most_recent_ip: IP-ja më e freskët
+ no_account_selected: Asnjë llogari nuk është ndryshuar pasiqë asnjë llogari nuk është zgjedhur
no_limits_imposed: Pa imponim kufijsh
not_subscribed: Jo i pajtuar
+ pending: Në pritje për rishikim
perform_full_suspension: Pezulloje
promote: Promovojeni
protocol: Protokoll
public: Publike
push_subscription_expires: Pajtimi PuSH skadon më
redownload: Rifresko profilin
+ reject: Refuzo
+ reject_all: Refuzo të gjitha
remove_avatar: Hiqe avatarin
remove_header: Hiqe kryen
resend_confirmation:
@@ -124,9 +154,12 @@ sq:
role: Leje
roles:
admin: Përgjegjës
+ moderator: Moderues
staff: Staf
user: Përdorues
search: Kërkoni
+ search_same_email_domain: Përdorues tjerë me e-mail domain të ngjajshëm
+ search_same_ip: Përdorues tjerë me IP të ngjajshme
shared_inbox_url: URL kutie të përbashkët mesazesh
show:
created_reports: Ka bërë raportime
@@ -136,6 +169,7 @@ sq:
statuses: Gjendje
subscribe: Pajtomë
suspended: Të pezulluara
+ time_in_queue: Në pritje në radhë %{time}
title: Llogari
unconfirmed_email: Email i paripohuar
undo_silenced: Zhbëje heshtjen
@@ -143,7 +177,28 @@ sq:
unsubscribe: Shpajtohuni
username: Emër përdoruesi
warn: Sinjalizoje
+ web: Ueb
+ whitelisted: Lista e bardhë
action_logs:
+ action_types:
+ assigned_to_self_report: Përcakto Raportin
+ change_email_user: Ndrysho E-mail për përdoruesin
+ confirm_user: Konfirmo përdoruesin
+ create_account_warning: Krijo vërrejtje
+ create_announcement: Krijo lajmërim
+ create_custom_emoji: Krijo Emoji të veçantë
+ create_domain_allow: Lejo krijimin e domain
+ create_domain_block: Krijo bllokimin e domain
+ create_email_domain_block: Krijo bllokadë për E-mailët me domain
+ destroy_status: Fshij gjendjen
+ disable_2fa_user: Ç'aktivizo 2FA
+ disable_custom_emoji: Ç'aktivizo Emoji të veçantë
+ disable_user: Ç'aktivizo përdorues
+ enable_user: Aktivizo përdorues
+ promote_user: Promovo përdoruesin
+ remove_avatar_user: Largo foton e profilit
+ reopen_report: Rihap rapotin
+ update_status: Përditëso gjendjen
actions:
assigned_to_self_report: "%{name} ia kaloi raportimin %{target} në ngarkim vetvetes"
change_email_user: "%{name} ndryshoi adresën email të përdoruesit %{target}"
@@ -176,21 +231,40 @@ sq:
update_custom_emoji: "%{name} përditësoi emotikonin %{target}"
update_status: "%{name} përditësoi gjendjen me %{target}"
deleted_status: "(fshiu gjendjen)"
+ empty: Nuk u gjendën regjistrat.
+ filter_by_action: Filtro sipas veprimit
+ filter_by_user: Filtro sipas përdoruesit
title: Auditim regjistri
+ announcements:
+ destroyed_msg: Lajmërimi është fshirë me sukses!
+ edit:
+ title: Modifiko lajmërimin
+ empty: Nuk u gjendën lajmërimet.
+ live: Drejtpërdrejtë
+ new:
+ create: Krijo lajmërim
+ title: Lajmërimi i ri
+ published_msg: Lajmërimi u publikua me sukses!
+ title: Lajmërimet
custom_emojis:
+ assign_category: Përcakto kategori
by_domain: Përkatësi
copied_msg: Kopja vendore e emotikonëve u krijua me sukses
copy: Kopjoje
copy_failed_msg: S’u bë dot një kopje vendore e emotikoneve
+ create_new_category: Krijo kategori të re
created_msg: Emotikoni u krijua me sukses!
delete: Fshije
destroyed_msg: Emotikoni u asgjësua me sukses!
disable: Çaktivizoje
+ disabled: Pamundësuar
disabled_msg: Ai emotikon u çaktivizua me sukses
emoji: Emotikon
enable: Aktivizoje
+ enabled: Mundësuar
enabled_msg: Ai emotikon u aktivizua me sukses
image_hint: PNG deri 50KB
+ list: Listë
listed: Në listë
new:
title: Shtoni emotikon të ri vetjak
@@ -198,11 +272,14 @@ sq:
shortcode: Kod i shkurtër
shortcode_hint: Të paktën 2 shenja, vetëm shenja alfanumerike dhe nënvija
title: Emotikone vetjake
+ uncategorized: E pakategorizuar
+ unlist: Ç'listo
unlisted: Hequr prej liste
update_failed_msg: S’u përditësua dot ai emotikon
updated_msg: Emotikoni u përditësua me sukses!
upload: Ngarkoje
dashboard:
+ authorized_fetch_mode: Gjendja e sigurtë
backlog: punë të prapambetura
config: Formësim
feature_deletions: Fshirje llogarish
@@ -210,12 +287,17 @@ sq:
feature_profile_directory: Drejtori profilesh
feature_registrations: Regjistrime
feature_relay: Rele federimi
+ feature_spam_check: Kundër spam
+ feature_timeline_preview: Parashikimi kohështrirjes
features: Veçori
hidden_service: Federim me shërbime të fshehura
open_reports: raportime të hapur
+ pending_tags: hashtag në pritje për rishikim
+ pending_users: përdorues në pritje për rishikim
recent_users: Përdorues së fundi
search: Kërko tekstin e plotë
single_user_mode: Mënyrë me përdorues të vetëm
+ software: Softuerë
space: Përdorim hapësire
title: Pult
total_users: përdorues gjithsej
@@ -223,6 +305,8 @@ sq:
week_interactions: ndërveprime këtë javë
week_users_active: aktivë këtë javë
week_users_new: përdorues këtë javë
+ domain_allows:
+ undo: Largo nga lista e bardhë
domain_blocks:
add_new: Shtoni bllokim të ri përkatësie
created_msg: Bllokimi i përkatësisë tani po përpunohet
@@ -237,6 +321,8 @@ sq:
silence: Heshtoji
suspend: Pezulloje
title: Bllokim i ri përkatësie
+ private_comment: Koment privat
+ public_comment: Koment publik
reject_media: Mos prano kartela media
reject_media_hint: Heq kartela media të depozituara lokalisht dhe nuk pranon të shkarkohen të tilla në të ardhmen. Pa peshë për pezullimet
reject_reports: Hidh tej raportimet
@@ -262,11 +348,13 @@ sq:
delete: Fshije
destroyed_msg: Përkatësia email u fshi me sukses nga lista e bllokimeve
domain: Përkatësi
+ from_html: nga %{domain}
new:
create: Shtoni përkatësi
title: Zë i ri email në listë bllokimesh
title: Listë bllokimesh email-esh
instances:
+ by_domain: Domain
delivery_available: Ka shpërndarje të mundshme
known_accounts:
one: "%{count} llogari e njohur"
@@ -275,6 +363,8 @@ sq:
all: Krejt
limited: E kufizuar
title: Moderim
+ private_comment: Koment privat
+ public_comment: Koment publik
title: Federim
total_blocked_by_us: Bllokuar nga ne
total_followed_by_them: Ndjekur prej tyre
@@ -347,6 +437,9 @@ sq:
custom_css:
desc_html: Modifikojeni pamjen me CSS të nagrkuar në çdo faqe
title: CSS Vetjake
+ domain_blocks:
+ all: Për të gjithë
+ disabled: Për askend
hero:
desc_html: E shfaqur në faqen ballore. Këshillohet të paktën 600x100px. Kur nuk caktohet gjë, përdoret miniaturë e shërbyesit
title: Figurë heroi
@@ -404,18 +497,30 @@ sq:
delete: Fshije
nsfw_off: Vëri shenjë si jo rezervat
nsfw_on: Vëri shenjë si rezervat
+ deleted: Fshirë
failed_to_execute: S’u arrit të përmbushej
+ media:
+ title: Media
no_media: S’ka media
no_status_selected: S’u ndryshua ndonjë gjendje, ngaqë s’u përzgjodh ndonjë e tillë
title: Gjendje llogarish
with_media: Me media
tags:
+ context: Kontekst
+ directory: Në direktorium
+ last_active: Aktive së fundi
+ most_popular: Më e famshmja
+ most_recent: Të fundit
+ name: Hashtag
+ review: Gjendja e rishikimit
+ reviewed: Rishikuar
title: Hashtage
+ trending_right_now: Në trend tani
+ unreviewed: E parishikuar
title: Administrim
warning_presets:
add_new: Shtoni të ri
delete: Fshije
- edit: Përpunoni
edit_preset: Përpunoni sinjalizim të paracaktuar
title: Administroni sinjalizime të paracaktuara
admin_mailer:
@@ -423,8 +528,17 @@ sq:
body: "%{reporter} ka raportuar %{target}"
body_remote: Dikush nga %{domain} ka raportuar %{target}
subject: Raport i ri për %{instance} (#%{id})
+ aliases:
+ add_new: Krijo shkurtesë
+ remove: Fshijë shkurtesën
+ appearance:
+ localization:
+ guide_link_text: Çdokush mund të kontribuojë.
+ sensitive_content: Përmbajtje sensitive
+ toot_layout: Pamja e cicërimës
application_mailer:
notification_preferences: Ndryshoni parapëlqime email-i
+ salutation: "%{name},"
settings: 'Ndryshoni parapëlqime email-i: %{link}'
view: 'Parje:'
view_profile: Shihni Profilin
@@ -438,6 +552,7 @@ sq:
warning: Hapni sytë me ato të dhëna. Mos ia jepni kurrë njeriu!
your_token: Token-i juaj për hyrje
auth:
+ apply_for_account: Kërko ftesë
change_password: Fjalëkalim
delete_account: Fshije llogarinë
delete_account_html: Nëse dëshironi të fshihni llogarinë tuaj, mund ta bëni që këtu. Do t’ju kërkohet ta ripohoni.
@@ -449,11 +564,18 @@ sq:
migrate_account: Kaloni në një tjetër llogari
migrate_account_html: Nëse doni ta ridrejtoni këtë llogari te një tjetër, këtë mund ta formësoni këtu.
or_log_in_with: Ose bëni hyrjen me
+ providers:
+ cas: CAS
+ saml: SAML
register: Regjistrohuni
resend_confirmation: Ridërgo udhëzime ripohimi
reset_password: Ricaktoni fjalëkalimin
security: Siguri
set_new_password: Caktoni fjalëkalim të ri
+ setup:
+ title: Rregullo
+ status:
+ account_status: Gjendja e llogarisë
authorize_follow:
already_following: E ndiqni tashmë këtë llogari
error: Mjerisht, pati një gabim gjatë kërkimit të llogarisë së largët
@@ -465,6 +587,8 @@ sq:
return: Shfaq profilin e përdoruesit
web: Kalo në web
title: Ndiq %{acct}
+ challenge:
+ confirm: Vazhdo
datetime:
distance_in_words:
about_x_hours: "%{count}o"
@@ -538,10 +662,19 @@ sq:
generic:
changes_saved_msg: Ndryshimet u ruajtën me sukses!
copy: Kopjoje
+ order_by: Rendit sipas
save_changes: Ruaji ndryshimet
validation_errors:
one: Diçka s’është ende si duhet! Ju lutemi, shqyrtoni gabimin më poshtë
other: Diçka s’është ende si duhet! Ju lutemi, shqyrtoni %{count} gabimet më poshtë
+ identity_proofs:
+ active: Aktive
+ authorize: Po, autorizoje
+ identity: Identifiko
+ inactive: Ç'aktivizo
+ publicize_checkbox: 'Dhe cicëro këtë:'
+ status: Gjendja e verifikimit
+ view_proof: Shfaq evidencë
imports:
modes:
merge: Përzieji
@@ -556,6 +689,7 @@ sq:
following: Listë ndjekjesh
muting: Listë heshtimesh
upload: Ngarkoje
+ in_memoriam_html: Në përkujtim.
invites:
delete: Çaktivizoje
expired: Ka skaduar
@@ -587,6 +721,9 @@ sq:
too_many: S’mund të bashkëngjiten më shumë se 4 kartela
migrations:
acct: emërpërdoruesi@përkatësi e llogarisë së re
+ cancel: Anulo ridrejtimin
+ proceed_with_move: Lëviz ndjekësit
+ set_redirect: Cakto ridrejtim
moderation:
title: Moderim
notification_mailer:
@@ -627,6 +764,7 @@ sq:
human:
decimal_units:
units:
+ billion: B
quadrillion: K
pagination:
newer: Më të ri
@@ -635,6 +773,18 @@ sq:
prev: I mëparshmi
preferences:
other: Tjetër
+ relationships:
+ activity: Aktivitet e llogarisë
+ dormant: Inaktive
+ followers: Ndjekësit
+ following: Të ndjekurit
+ invited: Të ftuarit
+ last_active: Së fundi aktiv
+ most_recent: Të fundit
+ moved: Lëvizur
+ mutual: Përbashkët
+ primary: Primare
+ relationship: Marrëdhënie
remote_follow:
acct: Jepni çiftin tuaj emërpërdoruesi@përkatësi prej të cilit doni që të veprohet
missing_resource: S’u gjet dot URL-ja e domosdoshme e ridrejtimit për llogarinë tuaj
@@ -660,17 +810,48 @@ sq:
activity: Veprimtaria e fundit
browser: Shfletues
browsers:
+ alipay: Alipay
+ blackberry: Blackberry
+ chrome: Chrome
+ edge: Microsoft Edge
+ electron: Electron
+ firefox: Firefox
generic: Shfletues i panjohur
+ ie: Internet Explorer
+ micro_messenger: MicroMessenger
nokia: Shfletues Nokia S40 Ovi
+ opera: Opera
+ otter: Otter
+ phantom_js: PhantomJS
+ qq: QQ Browser
+ safari: Safari
+ uc_browser: UCBrowser
+ weibo: Weibo
current_session: Sesioni i tanishëm
description: "%{browser} në %{platform}"
explanation: Këta janë shfletuesit e futur në këtë çast te llogaria juaj Mastodon.
+ ip: IP
platforms:
+ adobe_air: Adobe Air
+ android: Android
+ blackberry: Blackberry
+ chrome_os: ChromeOS
+ firefox_os: Firefox OS
+ ios: iOS
+ linux: Linux
+ mac: macOS
other: platformë e panjohur
+ windows: Windows
+ windows_mobile: Windows Mobile
+ windows_phone: Windows Phone
revoke: Shfuqizoje
revoke_success: Sesioni u shfuqizua me sukses
title: Sesione
settings:
+ account: Llogari
+ account_settings: Rregullimet e llogarisë
+ aliases: Shkurtesat e llogarisë
+ appearance: Dukja
authorized_apps: Aplikacione të autorizuara
back: Mbrapsht te Mastodon
delete: Fshirje llogarie
diff --git a/config/locales/sr.yml b/config/locales/sr.yml
index c68681215..d7fb6f74d 100644
--- a/config/locales/sr.yml
+++ b/config/locales/sr.yml
@@ -431,7 +431,6 @@ sr:
warning_presets:
add_new: Додај нови
delete: Избриши
- edit: Уреди
edit_preset: Уреди пресет упозорења
title: Управљај пресетима упозорења
admin_mailer:
diff --git a/config/locales/sv.yml b/config/locales/sv.yml
index 0094ff06b..3f06878f8 100644
--- a/config/locales/sv.yml
+++ b/config/locales/sv.yml
@@ -219,6 +219,8 @@ sv:
update_status: "%{name} uppdaterade status för %{target}"
deleted_status: "(raderad status)"
title: Revisionslogg
+ announcements:
+ scheduled_for: Schemalagd för %{time}
custom_emojis:
assign_category: Ange kategori
by_domain: Domän
@@ -430,6 +432,8 @@ sv:
desc_html: Visa offentlig tidslinje på landingsidan
title: Förhandsgranska tidslinje
title: Sidans inställningar
+ site_uploads:
+ delete: Radera uppladdad fil
statuses:
back_to_account: Tillbaka till kontosidan
batch:
@@ -448,7 +452,6 @@ sv:
warning_presets:
add_new: Lägg till ny
delete: Radera
- edit: Redigera
admin_mailer:
new_report:
body: "%{reporter} har rapporterat %{target}"
@@ -505,6 +508,7 @@ sv:
account_status: Kontostatus
authorize_follow:
already_following: Du följer redan detta konto
+ already_requested: Du har redan skickat en vänförfrågan till det kontot
error: Tyvärr inträffade ett fel när vi kontrollerade fjärrkontot
follow: Följ
follow_request: 'Du har skickat en följaförfrågan till:'
@@ -751,6 +755,8 @@ sv:
disallowed_hashtags:
one: 'innehöll en otillåten hashtag: %{tags}'
other: 'innehöll de otillåtna hashtagarna: %{tags}'
+ errors:
+ in_reply_not_found: Statusen du försöker svara på existerar inte.
language_detection: Lista ut språk automatiskt
open_in_web: Öppna på webben
over_character_limit: teckengräns på %{max} har överskridits
@@ -760,6 +766,7 @@ sv:
private: Icke-offentliga toot kan inte fästas
reblog: Knuffar kan inte fästas
show_more: Visa mer
+ show_thread: Visa tråd
visibilities:
private: Endast följare
private_long: Visa endast till följare
diff --git a/config/locales/ta.yml b/config/locales/ta.yml
index c3da99c48..fa4c1a87b 100644
--- a/config/locales/ta.yml
+++ b/config/locales/ta.yml
@@ -78,6 +78,7 @@ ta:
delete: அகற்று
destroyed_msg: நடுநிலை குறிப்பு வெற்றிகரமாக அகற்றப்பட்டது!
accounts:
+ add_email_domain_block: இம்மின்னஞ்சல் களத்தைத் தடுப்புப்பட்டியலில் சேர்
approve: அங்கீகரி
approve_all: அனைத்தும் அங்கீகரி
are_you_sure: நிச்சயமா?
@@ -149,6 +150,7 @@ ta:
staff: பணியாளர்
user: பயனர்
search: தேடு
+ search_same_email_domain: இம்மின்னஞ்சல் களத்தில் உள்ள மற்ற பயனர்கள்
shared_inbox_url: குழு மின்னஞ்சல் முகவரி
show:
created_reports: உறுவாக்கிய அறிக்கைகள்
@@ -163,10 +165,47 @@ ta:
warn: எச்சரி
whitelisted: அனுமதிப்பட்டியல்
action_logs:
+ action_types:
+ change_email_user: பயனரின் மின்னஞ்சலை மாற்று
+ confirm_user: பயனரை உறுதி செய்
+ create_account_warning: எச்சரிக்கையை உருவாக்கு
+ create_announcement: அறிவிப்பை உருவாக்கு
+ create_custom_emoji: தனிப்பயனான எமோஜியை உருவாக்கு
+ create_domain_allow: கள அனுமதியை உருவாக்கு
+ create_domain_block: கள முடக்கத்தை உருவாக்கு
+ create_email_domain_block: மின்னஞ்சல் கள முடக்கத்தை உருவாக்கு
+ demote_user: பயனரைப் படியிறக்கு
+ destroy_announcement: அறிவிப்பை நீக்கு
+ destroy_custom_emoji: தனிப்பயனான எமோஜியை நீக்கு
+ destroy_domain_allow: கள அனுமதியை நீக்கு
+ destroy_domain_block: கள முடக்கத்தை நீக்கு
+ destroy_email_domain_block: மின்னஞ்சல் கள முடக்கத்தை நீக்கு
+ destroy_status: பதிவை நீக்கு
+ disable_2fa_user: 2FA-வை முடக்கு
+ disable_custom_emoji: தனிப்பயனான எமோஜியை முடக்கு
+ disable_user: பயனரை முடக்கு
+ enable_custom_emoji: தனிப்பயனான எமோஜியை அனுமதி
+ enable_user: பயனரை அனுமதி
+ memorialize_account: கணக்கை நினைவிடம் ஆக்கு
+ promote_user: பயனரைப் பதவி உயர்த்து
+ remove_avatar_user: சுயவிவரப் படத்தை நீக்கு
+ reopen_report: அறிக்கையை மீண்டும் திற
+ reset_password_user: கடவுச்சொல்லை மீட்டமை
+ resolve_report: புகாரை சரிசெய்
+ silence_account: கணக்கை அமைதியாக்கு
+ suspend_account: கணக்கை இடைநீக்கு
+ unsilence_account: கணக்கிலிருந்து மீண்டும் அறிவிப்பைப் பெறு
+ unsuspend_account: கணக்கின் இடைநீக்கத்தைத் திரும்பப்பெறு
+ update_announcement: அறிவிப்பைப் புதுப்பி
+ update_custom_emoji: தனிப்பயனான எமோஜியைப் புதுப்பி
+ update_status: பதிவைப் புதுப்பி
actions:
create_announcement: "%{name} %{target} என்றொரு புதிய அறிவிப்பை உருவாக்கியிருக்கிறார்"
destroy_announcement: "%{name} %{target} அறிவிப்பை நீக்கிவிட்டார்"
update_announcement: "%{name} %{target} அறிவிப்பைப் புதுப்பித்துள்ளார்"
+ empty: குறிப்புகள் எவையும் காணப்படவில்லை.
+ filter_by_action: செயலின் அடிப்படையில் வடிகட்டு
+ filter_by_user: பயனரின் அடிப்படையில் வடிகட்டு
announcements:
destroyed_msg: அறிவிப்பு வெற்றிகரமாக நீக்கப்பட்டது!
edit:
@@ -200,6 +239,7 @@ ta:
suspend: தற்காலீகமாக நீக்குக
email_domain_blocks:
empty: மின்னஞ்சற் களங்கள் எதுவும் தடுக்கப்படவில்லை.
+ from_html: "%{domain} -இலிருந்து"
invites:
filter:
all: அனைத்தும்
@@ -221,10 +261,15 @@ ta:
other: "%{count} புகார்கள்"
comment:
none: எதுவுமில்லை
+ site_uploads:
+ delete: பதிவேற்றப்பட்டப் படம் அழிக்கப்பட்டது
+ destroyed_msg: பதிவேற்றப்பட்ட வலைதளம் வெற்றிக்கரமாக அழிக்கப்பட்டது!
appearance:
localization:
body: மாஸ்டோடான் தன்னார்வலர்களால் மொழிபெயர்க்கப்படுகிறது.
guide_link_text: அனைவரும் பங்களிக்கலாம்.
+ authorize_follow:
+ already_requested: இக்கணக்கைப் பின்தொடரும் கோரிக்கையை நீங்கள் ஏற்கனவே அனுப்பிவிட்டீர்கள்
date:
formats:
default: "%b %d, %Y"
@@ -235,7 +280,7 @@ ta:
'406': This page is not available in the requested format.
'410': The page you were looking for doesn't exist here anymore.
'422':
- '429': Throttled
+ '429': Too many requests
'500':
'503': The page could not be served due to a temporary server failure.
filters:
@@ -251,6 +296,9 @@ ta:
'43200': 12 hours
'604800': 1 week
'86400': 1 day
+ media_attachments:
+ validations:
+ not_ready: பதிவேற்றம் முடிவடையாத கோப்புகளை இணைக்க முடியாது. சிறிது நேரம் கழித்து மீண்டும் முயற்சி செய்யவும்!
notifications:
email_events: மின்னஞ்சல் அறிவிப்புகளுக்கான நிகழ்வுகள்
email_events_hint: 'எந்த நிகழ்வுகளுக்கு அறிவிப்புகளைப் பெற வேண்டும் என்று தேர்வு செய்க:'
@@ -263,4 +311,6 @@ ta:
limit_reached: எதிர்வினைகளுக்கான உச்சவரம்பு எட்டப்பட்டது
unrecognized_emoji: அங்கீகரிக்கப்பட்ட ஈமோஜி அல்ல
statuses:
+ errors:
+ in_reply_not_found: நீங்கள் மறுமொழி அளிக்க முயலும் பதிவு இருப்பதுபோல் தெரியவில்லை.
show_thread: தொடரைக் காட்டு
diff --git a/config/locales/te.yml b/config/locales/te.yml
index dd6c878e7..79415b1d1 100644
--- a/config/locales/te.yml
+++ b/config/locales/te.yml
@@ -113,7 +113,7 @@ te:
'406': This page is not available in the requested format.
'410': The page you were looking for doesn't exist here anymore.
'422':
- '429': Throttled
+ '429': Too many requests
'500':
'503': The page could not be served due to a temporary server failure.
invites:
diff --git a/config/locales/th.yml b/config/locales/th.yml
index 7d6ec0b13..8215f2259 100644
--- a/config/locales/th.yml
+++ b/config/locales/th.yml
@@ -34,7 +34,7 @@ th:
unavailable_content: เนื้อหาไม่พร้อมใช้งาน
unavailable_content_description:
domain: เซิร์ฟเวอร์
- reason: 'เหตุผล:'
+ reason: เหตุผล
rejecting_media: 'ไฟล์สื่อจากเซิร์ฟเวอร์เหล่านี้จะไม่ได้รับการประมวลผลหรือจัดเก็บ และจะไม่แสดงภาพขนาดย่อ ต้องมีการคลิกไปยังไฟล์ต้นฉบับด้วยตนเอง:'
user_count_after:
other: ผู้ใช้
@@ -77,6 +77,7 @@ th:
delete: ลบ
destroyed_msg: ทำลายหมายเหตุการควบคุมสำเร็จ!
accounts:
+ add_email_domain_block: ขึ้นบัญชีดำโดเมนอีเมล
approve: อนุมัติ
approve_all: อนุมัติทั้งหมด
are_you_sure: คุณแน่ใจหรือไม่?
@@ -113,12 +114,12 @@ th:
joined: เข้าร่วมเมื่อ
location:
all: ทั้งหมด
- local: ในเว็บ
+ local: ในเซิร์ฟเวอร์
remote: ระยะไกล
title: ตำแหน่งที่ตั้ง
login_status: สถานะการเข้าสู่ระบบ
media_attachments: ไฟล์แนบสื่อ
- memorialize: เปลี่ยนเป็นระลึกถึง
+ memorialize: เปลี่ยนเป็นอนุสรณ์
moderation:
active: ใช้งานอยู่
all: ทั้งหมด
@@ -154,12 +155,13 @@ th:
staff: พนักงาน
user: ผู้ใช้
search: ค้นหา
+ search_same_email_domain: ผู้ใช้อื่น ๆ ที่มีโดเมนอีเมลเดียวกัน
search_same_ip: ผู้ใช้อื่น ๆ ที่มี IP เดียวกัน
shared_inbox_url: URL กล่องขาเข้าที่แบ่งปัน
show:
created_reports: รายงานที่สร้าง
targeted_reports: รายงานโดยผู้อื่น
- silence: เงียบ
+ silence: ทำให้เงียบ
silenced: เงียบอยู่
statuses: สถานะ
subscribe: บอกรับ
@@ -167,7 +169,7 @@ th:
time_in_queue: กำลังรออยู่ในคิว %{time}
title: บัญชี
unconfirmed_email: อีเมลที่ยังไม่ได้ยืนยัน
- undo_silenced: เลิกทำการเงียบ
+ undo_silenced: เลิกทำการทำให้เงียบ
undo_suspension: เลิกทำการระงับ
unsubscribe: เลิกบอกรับ
username: ชื่อผู้ใช้
@@ -175,6 +177,42 @@ th:
web: เว็บ
whitelisted: ขึ้นบัญชีขาวแล้ว
action_logs:
+ action_types:
+ assigned_to_self_report: มอบหมายรายงาน
+ change_email_user: เปลี่ยนอีเมลสำหรับผู้ใช้
+ confirm_user: ยืนยันผู้ใช้
+ create_account_warning: สร้างคำเตือน
+ create_announcement: สร้างประกาศ
+ create_custom_emoji: สร้างอีโมจิที่กำหนดเอง
+ create_domain_allow: สร้างการอนุญาตโดเมน
+ create_domain_block: สร้างการปิดกั้นโดเมน
+ create_email_domain_block: สร้างการปิดกั้นโดเมนอีเมล
+ demote_user: ลดขั้นผู้ใช้
+ destroy_announcement: ลบประกาศ
+ destroy_custom_emoji: ลบอีโมจิที่กำหนดเอง
+ destroy_domain_allow: ลบการอนุญาตโดเมน
+ destroy_domain_block: ลบการปิดกั้นโดเมน
+ destroy_email_domain_block: ลบการปิดกั้นโดเมนอีเมล
+ destroy_status: ลบสถานะ
+ disable_2fa_user: ปิดใช้งาน 2FA
+ disable_custom_emoji: ปิดใช้งานอีโมจิที่กำหนดเอง
+ disable_user: ปิดใช้งานผู้ใช้
+ enable_custom_emoji: เปิดใช้งานอีโมจิที่กำหนดเอง
+ enable_user: เปิดใช้งานผู้ใช้
+ memorialize_account: ทำให้บัญชีเป็นอนุสรณ์
+ promote_user: เลื่อนขั้นผู้ใช้
+ remove_avatar_user: เอาภาพประจำตัวออก
+ reopen_report: เปิดรายงานใหม่
+ reset_password_user: ตั้งรหัสผ่านใหม่
+ resolve_report: แก้ปัญหารายงาน
+ silence_account: ทำให้บัญชีเงียบ
+ suspend_account: ระงับบัญชี
+ unassigned_report: เลิกมอบหมายรายงาน
+ unsilence_account: เลิกทำให้บัญชีเงียบ
+ unsuspend_account: เลิกระงับบัญชี
+ update_announcement: อัปเดตประกาศ
+ update_custom_emoji: อัปเดตอีโมจิที่กำหนดเอง
+ update_status: อัปเดตสถานะ
actions:
change_email_user: "%{name} ได้เปลี่ยนที่อยู่อีเมลของผู้ใช้ %{target}"
confirm_user: "%{name} ได้ยืนยันที่อยู่อีเมลของผู้ใช้ %{target}"
@@ -196,17 +234,23 @@ th:
disable_user: "%{name} ได้ปิดใช้งานการเข้าสู่ระบบสำหรับผู้ใช้ %{target}"
enable_custom_emoji: "%{name} ได้เปิดใช้งานอีโมจิ %{target}"
enable_user: "%{name} ได้เปิดใช้งานการเข้าสู่ระบบสำหรับผู้ใช้ %{target}"
+ memorialize_account: "%{name} ได้เปลี่ยนบัญชีของ %{target} เป็นหน้าอนุสรณ์"
promote_user: "%{name} ได้เลื่อนขั้นผู้ใช้ %{target}"
remove_avatar_user: "%{name} ได้เอาภาพประจำตัวของ %{target} ออก"
reopen_report: "%{name} ได้เปิดรายงาน %{target} ใหม่"
resolve_report: "%{name} ได้แก้ปัญหารายงาน %{target}"
+ silence_account: "%{name} ได้ทำให้บัญชีของ %{target} เงียบ"
suspend_account: "%{name} ได้ระงับบัญชีของ %{target}"
unassigned_report: "%{name} ได้เลิกมอบหมายรายงาน %{target}"
+ unsilence_account: "%{name} ได้เลิกทำให้บัญชีของ %{target} เงียบ"
unsuspend_account: "%{name} ได้เลิกระงับบัญชีของ %{target}"
update_announcement: "%{name} ได้อัปเดตประกาศ %{target}"
update_custom_emoji: "%{name} ได้อัปเดตอีโมจิ %{target}"
update_status: "%{name} ได้อัปเดตสถานะโดย %{target}"
deleted_status: "(สถานะที่ลบแล้ว)"
+ empty: ไม่พบรายการบันทึก
+ filter_by_action: กรองตามการกระทำ
+ filter_by_user: กรองตามผู้ใช้
title: รายการบันทึกการตรวจสอบ
announcements:
destroyed_msg: ลบประกาศสำเร็จ!
@@ -246,6 +290,7 @@ th:
overwrite: เขียนทับ
shortcode: รหัสย่อ
title: อีโมจิที่กำหนดเอง
+ uncategorized: ไม่มีหมวดหมู่
unlist: เลิกแสดงรายการ
unlisted: ไม่อยู่ในรายการ
update_failed_msg: ไม่สามารถอัปเดตอีโมจินั้น
@@ -259,9 +304,11 @@ th:
feature_invites: ลิงก์เชิญ
feature_profile_directory: ไดเรกทอรีโปรไฟล์
feature_registrations: การลงทะเบียน
+ feature_relay: รีเลย์การติดต่อกับภายนอก
feature_spam_check: การป้องกันสแปม
feature_timeline_preview: ตัวอย่างเส้นเวลา
features: คุณลักษณะ
+ hidden_service: การติดต่อกับภายนอกกับบริการที่ซ่อนอยู่
open_reports: รายงานที่เปิด
pending_tags: แฮชแท็กที่กำลังรอการตรวจทาน
pending_users: ผู้ใช้ที่กำลังรอการตรวจทาน
@@ -292,15 +339,15 @@ th:
create: สร้างการปิดกั้น
hint: การปิดกั้นโดเมนจะไม่ป้องกันการสร้างรายการบัญชีในฐานข้อมูล แต่จะใช้วิธีการควบคุมเฉพาะกับบัญชีเหล่านั้นย้อนหลังและโดยอัตโนมัติ
severity:
- desc_html: "เงียบ จะทำให้โพสต์ของบัญชีมองไม่เห็นกับใครก็ตามที่ไม่ได้กำลังติดตามบัญชี ระงับ จะเอาเนื้อหา, สื่อ และข้อมูลโปรไฟล์ทั้งหมดของบัญชีออก ใช้ ไม่มี หากคุณเพียงแค่ต้องการปฏิเสธไฟล์สื่อ"
+ desc_html: "ทำให้เงียบ จะทำให้โพสต์ของบัญชีไม่ปรากฏแก่ใครก็ตามที่ไม่ได้กำลังติดตามบัญชี ระงับ จะเอาเนื้อหา, สื่อ และข้อมูลโปรไฟล์ทั้งหมดของบัญชีออก ใช้ ไม่มี หากคุณเพียงแค่ต้องการปฏิเสธไฟล์สื่อ"
noop: ไม่มี
- silence: เงียบ
+ silence: ทำให้เงียบ
suspend: ระงับ
title: การปิดกั้นโดเมนใหม่
private_comment: ความคิดเห็นส่วนตัว
public_comment: ความคิดเห็นสาธารณะ
reject_media: ปฏิเสธไฟล์สื่อ
- reject_media_hint: เอาไฟล์สื่อที่จัดเก็บไว้ในเว็บออกและปฏิเสธที่จะดาวน์โหลดไฟล์ใด ๆ ในอนาคต ไม่เกี่ยวข้องกับการระงับ
+ reject_media_hint: เอาไฟล์สื่อที่จัดเก็บไว้ในเซิร์ฟเวอร์ออกและปฏิเสธที่จะดาวน์โหลดไฟล์ใด ๆ ในอนาคต ไม่เกี่ยวข้องกับการระงับ
reject_reports: ปฏิเสธรายงาน
severity:
silence: เงียบอยู่
@@ -309,7 +356,7 @@ th:
affected_accounts:
other: มีผลต่อ %{count} บัญชีในฐานข้อมูล
retroactive:
- silence: เลิกเงียบบัญชีที่มีอยู่ทั้งหมดจากโดเมนนี้
+ silence: เลิกทำให้บัญชีที่มีอยู่ทั้งหมดจากโดเมนนี้เงียบ
suspend: เลิกระงับบัญชีที่มีอยู่ทั้งหมดจากโดเมนนี้
title: เลิกทำการปิดกั้นโดเมนสำหรับ %{domain}
undo: เลิกทำ
@@ -322,6 +369,7 @@ th:
destroyed_msg: ลบโดเมนอีเมลออกจากบัญชีดำสำเร็จ
domain: โดเมน
empty: ไม่มีโดเมนอีเมลที่ขึ้นบัญชีดำอยู่
+ from_html: จาก %{domain}
new:
create: เพิ่มโดเมน
title: รายการบัญชีดำอีเมลใหม่
@@ -408,7 +456,7 @@ th:
all: ให้กับทุกคน
disabled: ให้กับไม่มีใคร
title: แสดงการปิดกั้นโดเมน
- users: ให้กับผู้ใช้ในเว็บที่เข้าสู่ระบบ
+ users: ให้กับผู้ใช้ในเซิร์ฟเวอร์ที่เข้าสู่ระบบ
domain_blocks_rationale:
title: แสดงคำชี้แจงเหตุผล
enable_bootstrap_timeline_accounts:
@@ -418,6 +466,7 @@ th:
mascot:
title: ภาพมาสคอต
peers_api_enabled:
+ desc_html: ชื่อโดเมนที่เซิร์ฟเวอร์นี้ได้พบในเฟดิเวิร์ส
title: เผยแพร่รายการเซิร์ฟเวอร์ที่ค้นพบ
profile_directory:
desc_html: อนุญาตให้ผู้ใช้สามารถค้นพบได้
@@ -459,6 +508,9 @@ th:
title: การตั้งค่าไซต์
trends:
title: แฮชแท็กที่กำลังนิยม
+ site_uploads:
+ delete: ลบไฟล์ที่อัปโหลด
+ destroyed_msg: ลบการอัปโหลดไซต์สำเร็จ!
statuses:
back_to_account: กลับไปที่หน้าบัญชี
batch:
@@ -484,11 +536,11 @@ th:
trending_right_now: กำลังนิยม
unique_uses_today: "%{count} การโพสต์วันนี้"
unreviewed: ยังไม่ได้ตรวจทาน
+ updated_msg: อัปเดตการตั้งค่าแฮชแท็กสำเร็จ
title: การดูแล
warning_presets:
add_new: เพิ่มใหม่
delete: ลบ
- edit: แก้ไข
edit_preset: แก้ไขคำเตือนที่ตั้งไว้ล่วงหน้า
title: จัดการคำเตือนที่ตั้งไว้ล่วงหน้า
admin_mailer:
@@ -498,6 +550,7 @@ th:
subject: รายงานใหม่สำหรับ %{instance} (#%{id})
aliases:
add_new: สร้างนามแฝง
+ empty: คุณไม่มีนามแฝง
remove: เลิกเชื่อมโยงนามแฝง
appearance:
advanced_web_interface: ส่วนติดต่อเว็บขั้นสูง
@@ -554,6 +607,7 @@ th:
follow_request: 'คุณได้ส่งคำขอติดตามไปยัง:'
following: 'สำเร็จ! คุณกำลังติดตาม:'
post_follow:
+ close: หรือคุณสามารถปิดหน้าต่างนี้
return: แสดงโปรไฟล์ของผู้ใช้
web: ไปยังเว็บ
title: ติดตาม %{acct}
@@ -580,6 +634,7 @@ th:
x_seconds: "%{count} วินาที"
deletes:
challenge_not_passed: ข้อมูลที่คุณป้อนไม่ถูกต้อง
+ confirm_password: ป้อนรหัสผ่านปัจจุบันของคุณเพื่อยืนยันตัวตนของคุณ
confirm_username: ป้อนชื่อผู้ใช้ของคุณเพื่อยืนยันกระบวนงาน
proceed: ลบบัญชี
success_msg: ลบบัญชีของคุณสำเร็จ
@@ -588,6 +643,8 @@ th:
email_change_html: คุณสามารถ เปลี่ยนที่อยู่อีเมลของคุณ โดยไม่ต้องลบบัญชีของคุณ
email_reconfirmation_html: หากคุณไม่ได้รับอีเมลยืนยัน คุณสามารถ ขออีเมลอีกครั้ง
more_details_html: สำหรับรายละเอียดเพิ่มเติม ดู นโยบายความเป็นส่วนตัว
+ username_available: ชื่อผู้ใช้ของคุณจะพร้อมใช้งานอีกครั้ง
+ username_unavailable: ชื่อผู้ใช้ของคุณจะยังคงไม่พร้อมใช้งาน
directories:
directory: ไดเรกทอรีโปรไฟล์
explanation: ค้นพบผู้ใช้ตามความสนใจของเขา
@@ -599,15 +656,16 @@ th:
'403': คุณไม่มีสิทธิอนุญาตเพื่อดูหน้านี้
'404': หน้าที่คุณกำลังมองหาไม่ได้อยู่ที่นี่
'406': This page is not available in the requested format.
- '410': หน้าที่คุณกำลังมองหาไม่มีอยู่ที่นี่อีกต่อไป
+ '410': ไม่มีหน้าที่คุณกำลังมองหาอยู่ที่นี่อีกต่อไป
'422':
content: การตรวจสอบความปลอดภัยล้มเหลว คุณกำลังปิดกั้นคุกกี้หรือไม่?
title: การตรวจสอบความปลอดภัยล้มเหลว
- '429': Throttled
+ '429': คำขอมากเกินไป
'500':
title: หน้านี้ไม่ถูกต้อง
'503': The page could not be served due to a temporary server failure.
existing_username_validator:
+ not_found: ไม่พบผู้ใช้ในเซิร์ฟเวอร์ที่มีชื่อผู้ใช้นั้น
not_found_multiple: ไม่พบ %{usernames}
exports:
archive_takeout:
@@ -655,13 +713,18 @@ th:
identity_proofs:
active: ใช้งานอยู่
authorize: ใช่ อนุญาต
+ identity: ตัวตน
inactive: ไม่ได้ใช้งาน
publicize_checkbox: 'และโพสต์สิ่งนี้:'
+ remove: เอาการพิสูจน์ออกจากบัญชี
+ removed: เอาการพิสูจน์ออกจากบัญชีสำเร็จ
status: สถานะการตรวจสอบ
imports:
modes:
merge: ผสาน
+ merge_long: เก็บระเบียนที่มีอยู่และเพิ่มระเบียนใหม่
overwrite: เขียนทับ
+ overwrite_long: แทนที่ระเบียนปัจจุบันด้วยระเบียนใหม่
types:
blocking: รายการปิดกั้น
domain_blocking: รายการปิดกั้นโดเมน
@@ -695,6 +758,7 @@ th:
migrations:
acct: ย้ายไปยัง
cancel: ยกเลิกการเปลี่ยนเส้นทาง
+ cancelled_msg: ยกเลิกการเปลี่ยนเส้นทางสำเร็จ
errors:
move_to_self: ไม่สามารถเป็นบัญชีปัจจุบัน
not_found: ไม่พบ
@@ -708,6 +772,10 @@ th:
digest:
action: ดูการแจ้งเตือนทั้งหมด
mention: "%{name} ได้กล่าวถึงคุณใน:"
+ new_followers_summary:
+ other: นอกจากนี้คุณยังได้รับ %{count} ผู้ติดตามใหม่ขณะที่ไม่อยู่! มหัศจรรย์!
+ subject:
+ other: "%{count} การแจ้งเตือนใหม่นับตั้งแต่การเยี่ยมชมล่าสุดของคุณ \U0001F418"
title: เมื่อคุณไม่อยู่...
favourite:
body: 'สถานะของคุณได้รับการชื่นชอบโดย %{name}:'
@@ -733,6 +801,7 @@ th:
title: การดันใหม่
notifications:
email_events: เหตุการณ์สำหรับการแจ้งเตือนอีเมล
+ email_events_hint: 'เลือกเหตุการณ์ที่คุณต้องการรับการแจ้งเตือน:'
other_settings: การตั้งค่าการแจ้งเตือนอื่น ๆ
pagination:
newer: ใหม่กว่า
@@ -744,6 +813,7 @@ th:
errors:
already_voted: คุณได้ลงคะแนนในการสำรวจความคิดเห็นนี้อยู่แล้ว
duplicate_options: มีรายการที่ซ้ำกัน
+ invalid_choice: ไม่มีตัวเลือกการลงคะแนนที่เลือกอยู่
too_few_options: ต้องมีมากกว่าหนึ่งรายการ
too_many_options: ไม่สามารถมีมากกว่า %{max} รายการ
preferences:
@@ -755,6 +825,7 @@ th:
unrecognized_emoji: ไม่ใช่อีโมจิที่รู้จัก
relationships:
activity: กิจกรรมบัญชี
+ dormant: ไม่เคลื่อนไหว
followers: ผู้ติดตาม
following: กำลังติดตาม
invited: เชิญแล้ว
@@ -827,6 +898,7 @@ th:
settings:
account: บัญชี
account_settings: การตั้งค่าบัญชี
+ aliases: นามแฝงบัญชี
appearance: ลักษณะที่ปรากฏ
authorized_apps: แอปที่ได้รับอนุญาต
back: กลับไปที่ Mastodon
@@ -835,6 +907,7 @@ th:
edit_profile: แก้ไขโปรไฟล์
export: การส่งออกข้อมูล
featured_tags: แฮชแท็กที่แนะนำ
+ identity_proofs: การพิสูจน์ตัวตน
import: การนำเข้า
import_and_export: การนำเข้าและการส่งออก
migrate: การโยกย้ายบัญชี
@@ -843,6 +916,8 @@ th:
profile: โปรไฟล์
relationships: การติดตามและผู้ติดตาม
two_factor_authentication: การรับรองความถูกต้องด้วยสองปัจจัย
+ spam_check:
+ spam_detected: นี่คือรายงานแบบอัตโนมัติ ตรวจพบสแปม
statuses:
attached:
description: 'แนบอยู่: %{attached}'
@@ -893,6 +968,7 @@ th:
default: "%d %b %Y, %H:%M"
month: "%b %Y"
two_factor_authentication:
+ code_hint: ป้อนรหัสที่สร้างโดยแอปตัวรับรองความถูกต้องของคุณเพื่อยืนยัน
disable: ปิดใช้งาน
enable: เปิดใช้งาน
enabled: เปิดใช้งานการรับรองความถูกต้องด้วยสองปัจจัยแล้ว
@@ -914,10 +990,12 @@ th:
review_preferences_action: เปลี่ยนการกำหนดลักษณะ
subject: ยินดีต้อนรับสู่ Mastodon
tips: เคล็ดลับ
+ title: ยินดีต้อนรับ %{name}!
users:
follow_limit_reached: คุณไม่สามารถติดตามมากกว่า %{limit} คน
invalid_email: ที่อยู่อีเมลไม่ถูกต้อง
invalid_otp_token: รหัสสองปัจจัยไม่ถูกต้อง
+ seamless_external_login: คุณได้เข้าสู่ระบบผ่านบริการภายนอก ดังนั้นจึงไม่มีการตั้งค่ารหัสผ่านและอีเมล
signed_in_as: 'ลงชื่อเข้าเป็น:'
verification:
verification: การตรวจสอบ
diff --git a/config/locales/tr.yml b/config/locales/tr.yml
index cde7f1c83..41c39ba1f 100644
--- a/config/locales/tr.yml
+++ b/config/locales/tr.yml
@@ -193,6 +193,12 @@ tr:
web: Web
whitelisted: Beyaz listede
action_logs:
+ action_types:
+ change_email_user: Kullanıcı için e-postayı değiştir
+ confirm_user: Kullanıcıyı Onayla
+ create_announcement: Duyuru Oluştur
+ create_custom_emoji: Özel İfade Oluştur
+ destroy_status: Durumu Sil
actions:
assigned_to_self_report: "%{name} kendilerine %{target} adlı raporu verdi"
change_email_user: "%{name}, %{target} kullanıcısının e-posta adresini değiştirdi"
@@ -573,7 +579,6 @@ tr:
warning_presets:
add_new: Yeni ekle
delete: Sil
- edit: Düzenle
edit_preset: Uyarı ön-ayarını düzenle
title: Uyarı ön-ayarlarını yönet
admin_mailer:
diff --git a/config/locales/uk.yml b/config/locales/uk.yml
index 967a02717..6ff21b068 100644
--- a/config/locales/uk.yml
+++ b/config/locales/uk.yml
@@ -100,6 +100,7 @@ uk:
delete: Видалити
destroyed_msg: Нотатку модератора успішно видалено!
accounts:
+ add_email_domain_block: Додати поштовий домен до чорного списку
approve: Схвалити
approve_all: Схвалити всіх
are_you_sure: Ви впевнені?
@@ -180,11 +181,12 @@ uk:
staff: Персонал
user: Користувач
search: Пошук
+ search_same_email_domain: Інші користувачі з тим самим поштовим доменом
search_same_ip: Інші користувачі з тим самим IP
shared_inbox_url: URL спільного вхідного кошика
show:
- created_reports: Скарги, створені цим аккаунтом
- targeted_reports: Скарги щодо цього аккаунту
+ created_reports: Скарги, створені цим акаунтом
+ targeted_reports: Скарги щодо цього акаунту
silence: Глушення
silenced: Заглушені
statuses: Статуси
@@ -201,6 +203,38 @@ uk:
web: Веб
whitelisted: У білому списку
action_logs:
+ action_types:
+ change_email_user: Змінити електронну пошту для користувача
+ confirm_user: Підтвердити користувача
+ create_account_warning: Створити попередження
+ create_announcement: Створити оголошення
+ create_custom_emoji: Створити користувацьке емодзі
+ create_domain_allow: Створити дозвіл на домен
+ create_domain_block: Створити блокування домену
+ create_email_domain_block: Створити блокування поштового домену
+ demote_user: Понизити користувача
+ destroy_announcement: Видалити оголошення
+ destroy_custom_emoji: Видалити користувацьке емодзі
+ destroy_domain_allow: Видалити дозвіл на домен
+ destroy_domain_block: Видалити блокування домену
+ destroy_email_domain_block: Видалити блокування поштового домену
+ destroy_status: Видалити пост
+ disable_custom_emoji: Вимкнути користувацькі емодзі
+ disable_user: Відключити користувача
+ enable_custom_emoji: Увімкнути користувацькі емодзі
+ enable_user: Активувати користувача
+ promote_user: Підвищити користувача
+ remove_avatar_user: Видалити аватар
+ reopen_report: Перевідкрити скаргу
+ reset_password_user: Скинути пароль
+ resolve_report: Розв'язати скаргу
+ silence_account: Заглушити обліковий запис
+ suspend_account: Призупинити обліковий запис
+ unsilence_account: Розглушити обліковий запис
+ unsuspend_account: Розморозити обліковий запис
+ update_announcement: Оновити оголошення
+ update_custom_emoji: Оновити користувацькі емодзі
+ update_status: Оновити статус
actions:
assigned_to_self_report: "%{name} призначив(-ла) скаргу %{target} на себе"
change_email_user: "%{name} змінив(-ла) поштову адресу користувача %{target}"
@@ -230,14 +264,17 @@ uk:
reset_password_user: "%{name} скинув(-ла) пароль користувача %{target}"
resolve_report: "%{name} розв'язав(-ла) скаргу %{target}"
silence_account: "%{name} заглушив(-ла) обліковий запис %{target}"
- suspend_account: "%{name} заморозив обліковий запис користувача %{target}"
+ suspend_account: "%{name} заморозив(-ла) обліковий запис %{target}"
unassigned_report: "%{name} зняв(-ла) призначення скарги %{target}"
unsilence_account: "%{name} розглушив(-ла) обліковий запис %{target}"
- unsuspend_account: "%{name} розморозив обліковий запис користувача %{target}"
+ unsuspend_account: "%{name} розморозив(-ла) обліковий запис %{target}"
update_announcement: "%{name} оновив оголошення %{target}"
update_custom_emoji: "%{name} оновив(-ла) емодзі %{target}"
update_status: "%{name} змінив(-ла) статус користуача %{target}"
deleted_status: "(видалений статус)"
+ empty: Не знайдено жодного журналу.
+ filter_by_action: Фільтрувати за дією
+ filter_by_user: Фільтрувати за користувачем
title: Журнал подій
announcements:
destroyed_msg: Оголошення успішно видалено!
@@ -368,6 +405,7 @@ uk:
destroyed_msg: Успішно видалено поштовий домен з чорного списку
domain: Домен
empty: Ніякі e-mail домени не блокуються.
+ from_html: з %{domain}
new:
create: Додати домен
title: Нове блокування поштового домену
@@ -555,6 +593,8 @@ uk:
trends:
desc_html: Відображати розглянуті хештеґи, які популярні зараз
title: Популярні хештеги
+ site_uploads:
+ delete: Видалити завантажений файл
statuses:
back_to_account: Назад до сторінки облікового запису
batch:
@@ -591,7 +631,6 @@ uk:
warning_presets:
add_new: Додати новий
delete: Видалити
- edit: Редагувати
edit_preset: Редагувати шаблон попередження
title: Управління шаблонами попереджень
admin_mailer:
@@ -609,6 +648,7 @@ uk:
add_new: Створити псевдонім
created_msg: Новий псевдонім успішно створено. Тепер ви можете починати переміщення зі старого облікового запису.
deleted_msg: Псевдонім успішно видалено. Переміщення з того облікового запису до цього більше не можливе.
+ empty: У вас немає псевдонімів.
hint_html: Якщо ви збираєтеся мігрувати з іншого облікового запису на цей, ви можете налаштувати псевдонім, що потрібно для перенесення передплатників зі старою облікового запису. Ця дія саме по собі нешкідливо і оборотно. Міграція облікового запису починається з старого облікового запису.
remove: Від'єднати псевдонім
appearance:
@@ -621,7 +661,7 @@ uk:
body: Mastodon перекладено волонтерами.
guide_link: https://uk.crowdin.com/project/mastodon
guide_link_text: Кожен може взяти участь.
- sensitive_content: Дражливий вміст
+ sensitive_content: Дражливий зміст
toot_layout: Зовнішній вигляд дмухів
application_mailer:
notification_preferences: Змінити налаштування e-mail
@@ -679,6 +719,7 @@ uk:
trouble_logging_in: Проблема під час входу?
authorize_follow:
already_following: Ви вже слідкуєте за цим обліковим записом
+ already_requested: Ви вже надіслали запит на підписку до цього облікового запису
error: На жаль, під час пошуку віддаленого облікового запису сталася помилка
follow: Підписатися
follow_request: 'Вам надіслали запит на підписку:'
@@ -824,6 +865,8 @@ uk:
inactive: Неактивний
publicize_checkbox: 'Та дмухнути це:'
publicize_toot: 'Це доведено! Я таки %{username} з %{service}: %{url}'
+ remove: Видалення підтвердження з облікового запису
+ removed: Підтвердження видалено з облікового запису
status: Стан перевірки
view_proof: Переглянути доказ
imports:
@@ -871,6 +914,7 @@ uk:
media_attachments:
validations:
images_and_video: Не можна додати відео до статусу з зображеннями
+ not_ready: Не можна прикріпити файли, оброблення яких ще не закінчилося. Спробуйте ще раз через хвилину!
too_many: Не можна додати більше 4 файлів
migrations:
acct: username@domain нового облікового запису
@@ -1102,6 +1146,8 @@ uk:
many: 'заборонених хештеґів: %{tags}'
one: 'заборонений хештеґ: %{tags}'
other: 'заборонених хештеґів: %{tags}'
+ errors:
+ in_reply_not_found: Статуса, на який ви намагаєтеся відповісти, не існує.
language_detection: Автоматично визначати мову
open_in_web: Відкрити у вебі
over_character_limit: перевищено ліміт символів (%{max})
@@ -1122,7 +1168,7 @@ uk:
one: "%{count} голос"
other: "%{count} голоси"
vote: Проголосувати
- show_more: Детальніше
+ show_more: Розгорнути
show_thread: Відкрити обговорення
sign_in_to_participate: Увійдіть, щоб брати участь у бесіді
title: '%{name}: "%{quote}"'
@@ -1136,7 +1182,7 @@ uk:
stream_entries:
pinned: Закріплений пост
reblogged: передмухнув(-ла)
- sensitive_content: Дражливий контент
+ sensitive_content: Дражливий зміст
tags:
does_not_match_previous_name: не збігається з попереднім ім'ям
terms:
diff --git a/config/locales/ur.yml b/config/locales/ur.yml
index 114261859..2aa72a8f8 100644
--- a/config/locales/ur.yml
+++ b/config/locales/ur.yml
@@ -7,7 +7,7 @@ ur:
'406': This page is not available in the requested format.
'410': The page you were looking for doesn't exist here anymore.
'422':
- '429': Throttled
+ '429': Too many requests
'500':
'503': The page could not be served due to a temporary server failure.
invites:
diff --git a/config/locales/vi.yml b/config/locales/vi.yml
index ec8e853fe..cba773417 100644
--- a/config/locales/vi.yml
+++ b/config/locales/vi.yml
@@ -534,7 +534,6 @@ vi:
warning_presets:
add_new: Thêm mới
delete: Xóa bỏ
- edit: Biên tập
edit_preset: Chỉnh sửa cảnh báo đặt trước
title: Quản lý cài đặt trước cảnh báo
admin_mailer:
diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml
index d6618dbbe..be116f6e7 100644
--- a/config/locales/zh-CN.yml
+++ b/config/locales/zh-CN.yml
@@ -41,7 +41,7 @@ zh-CN:
rejecting_media: 来自这些服务器的媒体文件将不会被处理或存储,缩略图也不会显示,需要手动点击打开原始文件。
silenced: 来自这些服务器上的帖子将不会出现在公共时间线和会话中;此外,除非你关注了这些服务器上的用户,否则他们的互动不会产生通知。
suspended: 这些服务器的数据将不会被处理、存储或者交换,本站也将无法和来自这些服务器的用户互动或者交流。
- unavailable_content_html: 通常来说,在Mastodon上,你可以浏览联邦宇宙中任何一台服务器上的内容,并且和上面的用户互动。但是这台服务器上会有一些挟制。
+ unavailable_content_html: 通常来说,在Mastodon上,你可以浏览联邦宇宙中任何一台服务器上的内容,并且和上面的用户互动。但是某些站点上不排除会有例外。
user_count_after:
other: 位用户
user_count_before: 这里共注册有
@@ -88,6 +88,7 @@ zh-CN:
delete: 删除
destroyed_msg: 管理备忘删除成功!
accounts:
+ add_email_domain_block: 把电子邮箱域名加入黑名单
approve: 批准
approve_all: 批准全部
are_you_sure: 你确定吗?
@@ -137,7 +138,7 @@ zh-CN:
silenced: 已隐藏
suspended: 已封禁
title: 帐户状态
- moderation_notes: 管理备忘
+ moderation_notes: 管理员备注
most_recent_activity: 最后一次活跃的时间
most_recent_ip: 最后一次活跃的 IP 地址
no_account_selected: 因为没有帐号被选择,所以没有更改
@@ -165,9 +166,10 @@ zh-CN:
roles:
admin: 管理员
moderator: 监察员
- staff: 管理人员
+ staff: 站务人员
user: 普通用户
search: 搜索
+ search_same_email_domain: 其他具有相同电子邮箱域名的用户
search_same_ip: 具有相同IP的其他用户
shared_inbox_url: 公用收件箱(Shared Inbox)URL
show:
@@ -189,6 +191,42 @@ zh-CN:
web: 站内页面
whitelisted: 已加入白名单
action_logs:
+ action_types:
+ assigned_to_self_report: 指派举报
+ change_email_user: 为用户修改邮箱地址
+ confirm_user: 确认用户
+ create_account_warning: 创建警告
+ create_announcement: 创建公告
+ create_custom_emoji: 创建自定义表情符号
+ create_domain_allow: 允许新域名
+ create_domain_block: 封禁新域名
+ create_email_domain_block: 封禁电子邮箱域名
+ demote_user: 给用户降职
+ destroy_announcement: 删除公告
+ destroy_custom_emoji: 删除自定义表情符号
+ destroy_domain_allow: 解除域名允许
+ destroy_domain_block: 解除域名封禁
+ destroy_email_domain_block: 解除电子邮箱域名封禁
+ destroy_status: 删除嘟文
+ disable_2fa_user: 禁用双重认证
+ disable_custom_emoji: 禁用自定义表情符号
+ disable_user: 禁用用户
+ enable_custom_emoji: 启用自定义表情符号
+ enable_user: 启用用户
+ memorialize_account: 将账户设为追悼模式
+ promote_user: 给用户升任
+ remove_avatar_user: 移除头像
+ reopen_report: 重开举报
+ reset_password_user: 重置密码
+ resolve_report: 处理举报
+ silence_account: 隐藏用户
+ suspend_account: 封禁用户
+ unassigned_report: 取消举报的指派
+ unsilence_account: 解除账号隐藏
+ unsuspend_account: 解除账号封禁
+ update_announcement: 更新公告
+ update_custom_emoji: 更新自定义表情符号
+ update_status: 更新嘟文
actions:
assigned_to_self_report: "%{name} 接管了举报 %{target}"
change_email_user: "%{name} 更改了用户 %{target} 的电子邮件地址"
@@ -226,6 +264,9 @@ zh-CN:
update_custom_emoji: "%{name} 更新了自定义表情 %{target}"
update_status: "%{name} 刷新了 %{target} 的嘟文"
deleted_status: "(嘟文已删除)"
+ empty: 没有找到日志
+ filter_by_action: 根据行为过滤
+ filter_by_user: 根据用户过滤
title: 运营日志
announcements:
destroyed_msg: 公告已删除!
@@ -282,7 +323,7 @@ zh-CN:
feature_invites: 邀请链接
feature_profile_directory: 用户目录
feature_registrations: 公开注册
- feature_relay: 中继服务器
+ feature_relay: 联邦中继站
feature_spam_check: 反垃圾
feature_timeline_preview: 时间轴预览
features: 功能
@@ -353,13 +394,14 @@ zh-CN:
destroyed_msg: 电子邮件域名屏蔽删除成功
domain: 域名
empty: 当前没有邮件域名黑名单。
+ from_html: 来自 %{domain}
new:
create: 添加域名
title: 添加电子邮件域名屏蔽
title: 电子邮件域名屏蔽
instances:
by_domain: 域名
- delivery_available: 无法投递
+ delivery_available: 可投递
known_accounts:
other: "%{count} 个已知帐户"
moderation:
@@ -387,21 +429,21 @@ zh-CN:
relationships:
title: "%{acct} 的关系"
relays:
- add_new: 订阅新的中继
+ add_new: 订阅新的中继站
delete: 删除
description_html: "中继服务器是一个信息统合服务器,各服务器可以通过订阅中继服务器和向中继服务器推送信息来交换大量公开嘟文。它可以帮助中小型服务器发现联邦宇宙中的其他服务器的内容,而无需本站用户手动关注其他远程服务器上的用户。"
disable: 禁用
disabled: 已禁用
enable: 启用
- enable_hint: 启用此功能后,你的实例会订阅此中继的所有公开嘟文,并同时向其推送本服务器的公开嘟文。
+ enable_hint: 启用此功能后,你的实例会订阅此中继站的所有公开嘟文,并同时向其推送本服务器的公开嘟文。
enabled: 已启用
- inbox_url: 中继 URL
- pending: 等待中继确认
+ inbox_url: 中继站 URL
+ pending: 等待中继站的确认
save_and_enable: 保存并启用
setup: 设置中继连接
signatures_not_enabled: 安全模式或白名单模式启用时,中继将不会正常工作
status: 状态
- title: 中继
+ title: 中继站
report_notes:
created_msg: 举报记录建立成功!
destroyed_msg: 举报记录删除成功!
@@ -495,8 +537,8 @@ zh-CN:
open: 开放注册
title: 注册模式
show_known_fediverse_at_about_page:
- desc_html: 启用此选项将会在预览中显示来自已知实例的嘟文,否则只会显示本站时间轴的内容.
- title: 在时间轴预览中显示已知实例
+ desc_html: 如果开启,就会在时间轴预览显示其他站点嘟文,否则就只会只显示本站嘟文。
+ title: 在时间轴预览中显示其他站点嘟文
show_staff_badge:
desc_html: 在个人资料页上显示管理人员标志
title: 显示管理人员标志
@@ -529,6 +571,9 @@ zh-CN:
trends:
desc_html: 公开显示先前已通过审核的当前热门话题
title: 热门标签
+ site_uploads:
+ delete: 删除已上传的文件
+ destroyed_msg: 站点上传的文件已经成功删除!
statuses:
back_to_account: 返回帐户信息页
batch:
@@ -565,7 +610,6 @@ zh-CN:
warning_presets:
add_new: 添加新条目
delete: 删除
- edit: 编辑
edit_preset: 编辑预置警告
title: 管理预设警告
admin_mailer:
@@ -583,6 +627,7 @@ zh-CN:
add_new: 创建别名
created_msg: 成功创建了一个新别名。您现在可以从旧账户开始迁移了。
deleted_msg: 成功移除别名。已经无法从该帐户移动到此帐户了。
+ empty: 你没有设置别名
hint_html: 如果你想把另一个帐号迁移到这里,你可以先在这里创建一个别名。如果你想把关注者迁移过来,这一步是必须的。设置别名的操作时无害而且可以恢复的。帐号迁移的操作会从旧帐号开始。
remove: 取消关联别名
appearance:
@@ -653,6 +698,7 @@ zh-CN:
trouble_logging_in: 登录有问题?
authorize_follow:
already_following: 你已经在关注此用户了
+ already_requested: 你已经向那个账户发送过关注请求了
error: 对不起,寻找这个跨站用户时出错
follow: 关注
follow_request: 关注请求已发送给:
@@ -795,6 +841,8 @@ zh-CN:
inactive: 失效
publicize_checkbox: 并发一条这样的嘟文:
publicize_toot: '证明完毕!我是 %{service} 上的 %{username}: %{url}'
+ remove: 从帐户中移除凭据
+ removed: 成功从帐户中删除凭据
status: 验证状态
view_proof: 查看证明
imports:
@@ -839,6 +887,7 @@ zh-CN:
media_attachments:
validations:
images_and_video: 无法在嘟文中同时插入视频和图片
+ not_ready: 不能附加还在处理中的文件。请稍后再试!
too_many: 最多只能添加 4 张图片
migrations:
acct: 新帐户的 用户名@域名
@@ -1055,6 +1104,8 @@ zh-CN:
content_warning: 内容警告:%{warning}
disallowed_hashtags:
other: 包含了这些禁止的话题标签:%{tags}
+ errors:
+ in_reply_not_found: 你回复的嘟文似乎不存在
language_detection: 自动检测语言
open_in_web: 在站内打开
over_character_limit: 超过了 %{max} 字的限制
diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml
index ffd5ba5e9..92233dcc6 100644
--- a/config/locales/zh-HK.yml
+++ b/config/locales/zh-HK.yml
@@ -11,12 +11,14 @@ zh-HK:
apps: 行動應用程式
apps_platforms: 在 iOS、Android 和其他平台使用 Mastodon
browse_directory: 依興趣瀏覽個人資料目錄和過濾器
+ browse_local_posts: 瀏覽這台伺服器中公開嘟文的直播串流
browse_public_posts: 在 Mastodon 瀏覽公開嘟文的即時串流
contact: 聯絡
contact_missing: 未設定
contact_unavailable: 未公開
discover_users: 探索使用者
documentation: 文件
+ federation_hint_html: 你只需要擁有 %{instance} 的帳戶,就可以追蹤隨便一台 Mastodon 伺服器上的人等等。
get_apps: 嘗試行動應用程式
hosted_on: 在 %{domain} 運作的 Mastodon 服務站
learn_more: 了解更多
@@ -29,6 +31,7 @@ zh-HK:
status_count_before: 他們共發佈了
tagline: 關注朋友並探索新朋友
terms: 使用條款
+ unavailable_content: 無法取得的內容
unavailable_content_description:
domain: 伺服器
reason: 原因
@@ -60,7 +63,9 @@ zh-HK:
roles:
admin: 管理員
bot: 機械人
+ group: 群組
moderator: 監察員
+ unavailable: 無法取得個人檔案
unfollow: 取消關注
admin:
account_actions:
@@ -72,6 +77,7 @@ zh-HK:
delete: 刪除
destroyed_msg: 管理記錄已被刪除
accounts:
+ add_email_domain_block: 將電子郵件網域加入黑名單
approve: 核准
approve_all: 全部批准
are_you_sure: 你確定嗎?
@@ -151,6 +157,8 @@ zh-HK:
staff: 管理人員
user: 普通用戶
search: 搜索
+ search_same_email_domain: 其他有同個電子郵件網域的使用者
+ search_same_ip: 其他有同個 IP 的使用者
shared_inbox_url: 公共收件箱(Shared Inbox)URL
show:
created_reports: 此用戶所提舉報的紀錄
@@ -160,6 +168,7 @@ zh-HK:
statuses: 文章
subscribe: 訂閱
suspended: 已停權
+ time_in_queue: 正在佇列等待 %{time}
title: 用戶
unconfirmed_email: 未確認的電郵
undo_silenced: 解除靜音
@@ -168,17 +177,22 @@ zh-HK:
username: 用戶名稱
warn: 警告
web: 用戶頁面
+ whitelisted: 已加入白名單
action_logs:
actions:
assigned_to_self_report: "%{name} 指派了 %{target} 的舉報給自己"
change_email_user: "%{name} 改變了用戶 %{target} 的電郵地址"
confirm_user: "%{name} 確認了用戶 %{target} 的電郵地址"
create_account_warning: "%{name} 已對 %{target} 送出警告"
+ create_announcement: "%{name} 建立了新公告 %{target}"
create_custom_emoji: "%{name} 加入自訂表情符號 %{target}"
+ create_domain_allow: "%{name} 將 %{target} 網域加入黑名單了"
create_domain_block: "%{name} 阻隔了網域 %{target}"
create_email_domain_block: "%{name} 阻隔了電郵網域 %{target}"
demote_user: "%{name} 把用戶 %{target} 降任"
+ destroy_announcement: "%{name} 刪除了公告 %{target}"
destroy_custom_emoji: "%{name} 破壞了 %{target} 表情符號"
+ destroy_domain_allow: "%{name} 從白名單中移除了 %{target} 網域"
destroy_domain_block: "%{name} 取消了對網域 %{target} 的阻隔"
destroy_email_domain_block: "%{name} 取消了對電郵網域 %{target} 的阻隔"
destroy_status: "%{name} 刪除了 %{target} 的文章"
@@ -198,15 +212,33 @@ zh-HK:
unassigned_report: "%{name} 取消指派 %{target} 的舉報"
unsilence_account: "%{name} 取消了用戶 %{target} 的靜音狀態"
unsuspend_account: "%{name} 取消了用戶 %{target} 的停權狀態"
+ update_announcement: "%{name} 更新了公告 %{target}"
update_custom_emoji: "%{name} 更新了自訂表情符號 %{target}"
update_status: "%{name} 刷新了 %{target} 的文章"
deleted_status: "(已刪除嘟文)"
title: 營運日誌
+ announcements:
+ destroyed_msg: 成功刪除公告!
+ edit:
+ title: 編輯公告
+ empty: 找不到公告。
+ live: 直播
+ new:
+ create: 建立公告
+ title: 新增公告
+ published_msg: 成功發布公告!
+ scheduled_for: 排定 %{time}
+ scheduled_msg: 公告已排定公開!
+ title: 公告
+ unpublished_msg: 成功取消發布公告!
+ updated_msg: 成功更新公告!
custom_emojis:
+ assign_category: 指定分類
by_domain: 網域
copied_msg: 成功將表情複製到本地
copy: 複製
copy_failed_msg: 無法將表情複製到本地
+ create_new_category: 建立新分類
created_msg: 已新增表情符號
delete: 刪除
destroyed_msg: 已刪除表情符號
@@ -226,11 +258,13 @@ zh-HK:
shortcode: 短代碼
shortcode_hint: 至少 2 個字元,只能使用字母、數字和下劃線
title: 自訂 emoji
+ uncategorized: 未分類
unlisted: 已隱藏
update_failed_msg: 無法更新表情符號
updated_msg: 已更新表情符號
upload: 上傳新的表情符號
dashboard:
+ authorized_fetch_mode: 安全模式
backlog: 未處理工作數
config: 設定
feature_deletions: 帳戶刪除
@@ -238,9 +272,13 @@ zh-HK:
feature_profile_directory: 個人資料目錄
feature_registrations: 註冊
feature_relay: 聯邦中繼站
+ feature_spam_check: 防垃圾訊息
+ feature_timeline_preview: 時間軸預覽
features: 功能
hidden_service: 與隱密服務互連
open_reports: 待處理檢舉數
+ pending_tags: 等待審核的主題標籤
+ pending_users: 等待審核的使用者
recent_users: 最近加入的使用者
search: 全文搜尋
single_user_mode: 單一使用者模式
@@ -252,6 +290,12 @@ zh-HK:
week_interactions: 本週互動次數
week_users_active: 本週活躍使用者數
week_users_new: 本週新使用者數
+ whitelist_mode: 白名單模式
+ domain_allows:
+ add_new: 將網域加入白名單
+ created_msg: 網域已成功加入白名單
+ destroyed_msg: 網域已成功從白名單移除
+ undo: 從白名單移除
domain_blocks:
add_new: 新增
created_msg: 正處理域名阻隔
@@ -352,12 +396,23 @@ zh-HK:
contact_information:
email: 輸入一個公開的電郵地址
username: 輸入用戶名稱
+ domain_blocks:
+ all: 給任何人
+ disabled: 給沒有人
+ title: 顯示封鎖的網域
+ enable_bootstrap_timeline_accounts:
+ title: 啟用新使用者的預設追蹤
hero:
desc_html: 在首頁顯示。推薦最小 600x100px。如果留空,就會默認為服務站縮圖
title: 主題圖片
peers_api_enabled:
desc_html: 現時本服務站在網絡中已發現的域名
title: 公開已知服務站的列表
+ preview_sensitive_media:
+ title: 在 OpenGraph 預覽中顯示敏感媒體
+ profile_directory:
+ desc_html: 允許能探索使用者
+ title: 啟用個人資料目錄
registrations:
closed_message:
desc_html: 當本站暫停接受註冊時,會顯示這個訊息。
可使用 HTML
@@ -368,6 +423,12 @@ zh-HK:
min_invite_role:
disabled: 沒有人
title: 允許發送邀請的身份
+ registrations_mode:
+ modes:
+ approved: 註冊需要核准
+ none: 沒有人可註冊
+ open: 任何人皆能註冊
+ title: 註冊模式
show_known_fediverse_at_about_page:
desc_html: 如果開啟,就會在時間軸預覽顯示跨站文章,否則就只會顯示本站文章。
title: 在時間軸預覽顯示跨站文章
@@ -380,10 +441,14 @@ zh-HK:
site_description_extended:
desc_html: 本站詳細資訊頁的內文
你可以在此使用 HTML
title: 本站詳細資訊
+ site_short_description:
+ title: 伺服器短描述
site_terms:
desc_html: 可以填寫自己的隱私權政策、使用條款或其他法律文本。可以使用 HTML 標籤
title: 自訂使用條款
site_title: 本站名稱
+ spam_check_enabled:
+ title: 自動防廣告訊息
thumbnail:
desc_html: 用於在 OpenGraph 和 API 中顯示預覽圖。推薦大小 1200×630px
title: 本站縮圖
@@ -391,25 +456,44 @@ zh-HK:
desc_html: 在主頁顯示本站時間軸
title: 時間軸預覽
title: 網站設定
+ trends:
+ title: 趨勢主題標籤
+ site_uploads:
+ delete: 刪除上傳的檔案
+ destroyed_msg: 成功刪除站台的上傳項目!
statuses:
back_to_account: 返回帳戶信息頁
batch:
delete: 刪除
nsfw_off: 取消 NSFW 標記
nsfw_on: 添加 NSFW 標記
+ deleted: 已刪除
failed_to_execute: 執行失敗
media:
title: 媒體檔案
no_media: 不含媒體檔案
+ no_status_selected: 因未選擇嘟文而未變更。
title: 帳戶文章
with_media: 含有媒體檔案
tags:
+ context: 上下文
+ directory: 在目錄中
+ in_directory: 目錄中有 %{count} 個
+ last_active: 上次活躍
+ most_popular: 最熱門
+ most_recent: 最近
name: Hashtag
+ review: 審核嘟文
+ reviewed: 已審核
+ title: 主題標籤
+ trending_right_now: 最新趨勢
+ unique_uses_today: 今天嘟了 %{count} 則
+ unreviewed: 未審核
+ updated_msg: 成功更新主題標籤設定
title: 管理
warning_presets:
add_new: 新增
delete: 刪除
- edit: 編輯
admin_mailer:
new_report:
body: "%{reporter} 舉報了用戶 %{target}"
@@ -456,6 +540,7 @@ zh-HK:
set_new_password: 設定新密碼
authorize_follow:
already_following: 你已經關注了這個帳號
+ already_requested: 您早已向該帳戶寄送追蹤請求
error: 對不起,尋找這個跨站用戶的過程發生錯誤
follow: 關注
follow_request: 關注請求已發送给:
@@ -673,6 +758,8 @@ zh-HK:
content_warning: 內容警告: %{warning}
disallowed_hashtags:
other: 包含不允許的標籤: %{tags}
+ errors:
+ in_reply_not_found: 您嘗試回覆的嘟文看起來不存在。
language_detection: 自動偵測語言
open_in_web: 開啟網頁
over_character_limit: 超過了 %{max} 字的限制
diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml
index 5b25688ed..3f82428de 100644
--- a/config/locales/zh-TW.yml
+++ b/config/locales/zh-TW.yml
@@ -11,12 +11,14 @@ zh-TW:
apps: 行動應用程式
apps_platforms: 在 iOS、Android 和其他平台使用 Mastodon
browse_directory: 依興趣瀏覽個人資料目錄和過濾器
+ browse_local_posts: 瀏覽這台伺服器中公開嘟文的直播串流
browse_public_posts: 在 Mastodon 瀏覽公開嘟文的即時串流
contact: 聯絡我們
contact_missing: 未設定
contact_unavailable: 未公開
discover_users: 探索使用者
documentation: 文件
+ federation_hint_html: 你只需要擁有 %{instance} 的帳戶,就可以追蹤隨便一台 Mastodon 伺服器上的人等等。
get_apps: 嘗試行動應用程式
hosted_on: 在 %{domain} 運作的 Mastodon 站點
learn_more: 了解詳細
@@ -29,6 +31,7 @@ zh-TW:
status_count_before: 他們共嘟出了
tagline: 關注朋友並探索新朋友
terms: 使用條款
+ unavailable_content: 無法取得的內容
unavailable_content_description:
domain: 伺服器
reason: 原因
@@ -60,7 +63,9 @@ zh-TW:
roles:
admin: 管理員
bot: 機器人
+ group: 群組
moderator: 版主
+ unavailable: 無法取得個人檔案
unfollow: 取消關注
admin:
account_actions:
@@ -72,6 +77,7 @@ zh-TW:
delete: 刪除
destroyed_msg: 成功刪除管理備忘!
accounts:
+ add_email_domain_block: 將電子郵件網域加入黑名單
approve: 核准
approve_all: 全部批准
are_you_sure: 您確定嗎?
@@ -151,6 +157,8 @@ zh-TW:
staff: 管理人員
user: 普通使用者
search: 搜尋
+ search_same_email_domain: 其他有同個電子郵件網域的使用者
+ search_same_ip: 其他有同個 IP 的使用者
shared_inbox_url: 共享收件箱網址
show:
created_reports: 建立檢舉
@@ -160,6 +168,7 @@ zh-TW:
statuses: 嘟文
subscribe: 訂閱
suspended: 已停權
+ time_in_queue: 正在佇列等待 %{time}
title: 帳戶
unconfirmed_email: 未確認的電子信箱位址
undo_silenced: 取消靜音
@@ -168,17 +177,22 @@ zh-TW:
username: 使用者名稱
warn: 警告
web: 頁面
+ whitelisted: 已加入白名單
action_logs:
actions:
assigned_to_self_report: "%{name} 接受了檢舉 %{target}"
change_email_user: "%{name} 變更了使用者 %{target} 的電子信箱位址"
confirm_user: "%{name} 確認了使用者 %{target} 的電子信箱位址"
create_account_warning: "%{name} 已對 %{target} 送出警告"
+ create_announcement: "%{name} 建立了新公告 %{target}"
create_custom_emoji: "%{name} 加入自訂表情符號 %{target}"
+ create_domain_allow: "%{name} 將 %{target} 網域加入黑名單了"
create_domain_block: "%{name} 封鎖了站點 %{target}"
create_email_domain_block: "%{name} 封鎖了電子信箱網域 %{target}"
demote_user: "%{name} 把使用者 %{target} 降級"
+ destroy_announcement: "%{name} 刪除了公告 %{target}"
destroy_custom_emoji: "%{name} 破壞了 %{target} 表情符號"
+ destroy_domain_allow: "%{name} 從白名單中移除了 %{target} 網域"
destroy_domain_block: "%{name} 取消了對站點 %{target} 的封鎖"
destroy_email_domain_block: "%{name} 取消了對電子信箱網域 %{target} 的封鎖"
destroy_status: "%{name} 刪除了 %{target} 的嘟文"
@@ -198,15 +212,33 @@ zh-TW:
unassigned_report: "%{name} 取消指派 %{target} 的檢舉"
unsilence_account: "%{name} 取消了使用者 %{target} 的靜音狀態"
unsuspend_account: "%{name} 取消了使用者 %{target} 的停權狀態"
+ update_announcement: "%{name} 更新了公告 %{target}"
update_custom_emoji: "%{name} 更新了自訂表情符號 %{target}"
update_status: "%{name} 重整了 %{target} 的嘟文"
deleted_status: "(已刪除嘟文)"
title: 營運日誌
+ announcements:
+ destroyed_msg: 成功刪除公告!
+ edit:
+ title: 編輯公告
+ empty: 找不到公告。
+ live: 直播
+ new:
+ create: 建立公告
+ title: 新增公告
+ published_msg: 成功發布公告!
+ scheduled_for: 排定 %{time}
+ scheduled_msg: 公告已排定公開!
+ title: 公告
+ unpublished_msg: 成功取消發布公告!
+ updated_msg: 成功更新公告!
custom_emojis:
+ assign_category: 指定分類
by_domain: 站點
copied_msg: 成功將表情複製到本地
copy: 複製
copy_failed_msg: 無法將表情複製到本地
+ create_new_category: 建立新分類
created_msg: 已新增表情符號!
delete: 刪除
destroyed_msg: 已刪除表情符號!
@@ -226,11 +258,13 @@ zh-TW:
shortcode: 短代碼
shortcode_hint: 至少 2 個字元,只能使用字母、數字和下劃線
title: 自訂表情符號
+ uncategorized: 未分類
unlisted: 已隱藏
update_failed_msg: 無法更新表情符號
updated_msg: 已更新表情符號!
upload: 上傳新的表情符號
dashboard:
+ authorized_fetch_mode: 安全模式
backlog: 未處理工作數
config: 設定
feature_deletions: 帳戶刪除
@@ -238,9 +272,13 @@ zh-TW:
feature_profile_directory: 個人資料目錄
feature_registrations: 註冊
feature_relay: 聯邦中繼站
+ feature_spam_check: 防垃圾訊息
+ feature_timeline_preview: 時間軸預覽
features: 功能
hidden_service: 與隱密服務互連
open_reports: 待處理檢舉數
+ pending_tags: 等待審核的主題標籤
+ pending_users: 等待審核的使用者
recent_users: 最近加入的使用者
search: 全文搜尋
single_user_mode: 單一使用者模式
@@ -252,6 +290,12 @@ zh-TW:
week_interactions: 本週互動次數
week_users_active: 本週活躍使用者數
week_users_new: 本週新使用者數
+ whitelist_mode: 白名單模式
+ domain_allows:
+ add_new: 將網域加入白名單
+ created_msg: 網域已成功加入白名單
+ destroyed_msg: 網域已成功從白名單移除
+ undo: 從白名單移除
domain_blocks:
add_new: 新增欲封鎖域名
created_msg: 正在進行站點封鎖
@@ -351,12 +395,23 @@ zh-TW:
contact_information:
email: 用於聯絡的公開電子信箱位址
username: 請輸入使用者名稱
+ domain_blocks:
+ all: 給任何人
+ disabled: 給沒有人
+ title: 顯示封鎖的網域
+ enable_bootstrap_timeline_accounts:
+ title: 啟用新使用者的預設追蹤
hero:
desc_html: 在首頁顯示。推薦最小 600x100px。如果留空,就會重設回伺服器預覽圖
title: 主題圖片
peers_api_enabled:
desc_html: 本伺服器在聯邦中發現的站點
title: 發布已知伺服器的列表
+ preview_sensitive_media:
+ title: 在 OpenGraph 預覽中顯示敏感媒體
+ profile_directory:
+ desc_html: 允許能探索使用者
+ title: 啟用個人資料目錄
registrations:
closed_message:
desc_html: 關閉註冊時顯示在首頁的內容,可使用 HTML 標籤
@@ -367,6 +422,12 @@ zh-TW:
min_invite_role:
disabled: 沒有人
title: 允許發送邀請的身份
+ registrations_mode:
+ modes:
+ approved: 註冊需要核准
+ none: 沒有人可註冊
+ open: 任何人皆能註冊
+ title: 註冊模式
show_known_fediverse_at_about_page:
desc_html: 如果開啟,就會在時間軸預覽顯示其他站點嘟文,否則就只會顯示本站點嘟文。
title: 在時間軸預覽顯示其他站點嘟文
@@ -379,10 +440,14 @@ zh-TW:
site_description_extended:
desc_html: 可放置行為準則、規定以及其他此伺服器特有的內容。可使用 HTML 標籤
title: 本站詳細資訊
+ site_short_description:
+ title: 伺服器短描述
site_terms:
desc_html: 可以填寫自己的隱私權政策、使用條款或其他法律文本。可以使用 HTML 標籤
title: 自訂使用條款
site_title: 伺服器名稱
+ spam_check_enabled:
+ title: 自動防廣告訊息
thumbnail:
desc_html: 用於在 OpenGraph 和 API 中顯示預覽圖。推薦大小 1200×630px
title: 伺服器縮圖
@@ -390,25 +455,44 @@ zh-TW:
desc_html: 在主頁顯示本站時間軸
title: 時間軸預覽
title: 網站設定
+ trends:
+ title: 趨勢主題標籤
+ site_uploads:
+ delete: 刪除上傳的檔案
+ destroyed_msg: 成功刪除站台的上傳項目!
statuses:
back_to_account: 返回帳戶訊息頁
batch:
delete: 刪除
nsfw_off: 標記為非敏感內容
nsfw_on: 標記為敏感內容
+ deleted: 已刪除
failed_to_execute: 執行失敗
media:
title: 媒體檔案
no_media: 不含媒體檔案
+ no_status_selected: 因未選擇嘟文而未變更。
title: 帳戶嘟文
with_media: 含有媒體檔案
tags:
+ context: 上下文
+ directory: 在目錄中
+ in_directory: 目錄中有 %{count} 個
+ last_active: 上次活躍
+ most_popular: 最熱門
+ most_recent: 最近
name: Hashtag
+ review: 審核嘟文
+ reviewed: 已審核
+ title: 主題標籤
+ trending_right_now: 最新趨勢
+ unique_uses_today: 今天嘟了 %{count} 則
+ unreviewed: 未審核
+ updated_msg: 成功更新主題標籤設定
title: 管理介面
warning_presets:
add_new: 新增
delete: 刪除
- edit: 編輯
admin_mailer:
new_report:
body: "%{reporter} 檢舉了使用者 %{target}"
@@ -455,6 +539,7 @@ zh-TW:
set_new_password: 設定新密碼
authorize_follow:
already_following: 你已經關注了這個使用者
+ already_requested: 您早已向該帳戶寄送追蹤請求
error: 對不起,搜尋其他站點使用者出現錯誤
follow: 關注
follow_request: 關注請求已經發送給:
@@ -655,6 +740,8 @@ zh-TW:
description: 附件: %{attached}
boosted_from_html: 轉嘟自 %{acct_link}
content_warning: 內容警告: %{warning}
+ errors:
+ in_reply_not_found: 您嘗試回覆的嘟文看起來不存在。
language_detection: 自動偵測語言
open_in_web: 以網頁開啟
over_character_limit: 超過了 %{max} 字的限制
diff --git a/config/pghero.yml b/config/pghero.yml
index 244245d0d..84d0d7eef 100644
--- a/config/pghero.yml
+++ b/config/pghero.yml
@@ -38,4 +38,4 @@ databases:
# aws_secret_access_key: ...
# aws_region: us-east-1
-override_csp: true
+override_csp: false
diff --git a/config/routes.rb b/config/routes.rb
index c22efc1e1..920a48fe7 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-require 'sidekiq/web'
+require 'sidekiq_unique_jobs/web'
require 'sidekiq-scheduler/web'
Sidekiq::Web.set :session_secret, Rails.application.secrets[:secret_key_base]
@@ -100,7 +100,9 @@ Rails.application.routes.draw do
get '/settings', to: redirect('/settings/profile')
namespace :settings do
- resource :profile, only: [:show, :update]
+ resource :profile, only: [:show, :update] do
+ resources :pictures, only: :destroy
+ end
get :preferences, to: redirect('/settings/preferences/appearance')
@@ -128,7 +130,7 @@ Rails.application.routes.draw do
resource :confirmation, only: [:new, :create]
end
- resources :identity_proofs, only: [:index, :show, :new, :create, :update]
+ resources :identity_proofs, only: [:index, :new, :create, :destroy]
resources :applications, except: [:edit] do
member do
@@ -186,6 +188,7 @@ Rails.application.routes.draw do
end
resource :settings, only: [:edit, :update]
+ resources :site_uploads, only: [:destroy]
resources :invites, only: [:index, :create, :destroy] do
collection do
@@ -342,7 +345,7 @@ Rails.application.routes.draw do
end
end
- resources :media, only: [:create, :update]
+ resources :media, only: [:create, :update, :show]
resources :blocks, only: [:index]
resources :mutes, only: [:index]
resources :favourites, only: [:index]
@@ -454,6 +457,7 @@ Rails.application.routes.draw do
end
namespace :v2 do
+ resources :media, only: [:create]
get '/search', to: 'search#index', as: :search
end
diff --git a/config/webpack/development.js b/config/webpack/development.js
index 56f6e43f0..774ecbc07 100644
--- a/config/webpack/development.js
+++ b/config/webpack/development.js
@@ -54,7 +54,7 @@ module.exports = merge(sharedConfig, {
watchOptions: Object.assign(
{},
settings.dev_server.watch_options,
- watchOptions
+ watchOptions,
),
writeToDisk: filePath => /ocr/.test(filePath),
},
diff --git a/config/webpack/shared.js b/config/webpack/shared.js
index d5e399ced..81c02acd4 100644
--- a/config/webpack/shared.js
+++ b/config/webpack/shared.js
@@ -31,7 +31,7 @@ module.exports = {
Object.keys(themes).reduce((themePaths, name) => {
themePaths[name] = resolve(join(settings.source_path, themes[name]));
return themePaths;
- }, {})
+ }, {}),
),
output: {
@@ -73,7 +73,7 @@ module.exports = {
// temporary fix for https://github.com/ReactTraining/react-router/issues/5576
// to reduce bundle size
resource.request = resource.request.replace(/^history/, 'history/es');
- }
+ },
),
new MiniCssExtractPlugin({
filename: 'css/[name]-[contenthash:8].css',
diff --git a/db/migrate/20171125031751_add_invite_id_to_users.rb b/db/migrate/20171125031751_add_invite_id_to_users.rb
index 16829f866..9cfb0c542 100644
--- a/db/migrate/20171125031751_add_invite_id_to_users.rb
+++ b/db/migrate/20171125031751_add_invite_id_to_users.rb
@@ -1,5 +1,5 @@
class AddInviteIdToUsers < ActiveRecord::Migration[5.1]
def change
- add_reference :users, :invite, null: true, default: nil, foreign_key: { on_delete: :nullify }, index: false
+ safety_assured { add_reference :users, :invite, null: true, default: nil, foreign_key: { on_delete: :nullify }, index: false }
end
end
diff --git a/db/migrate/20180402031200_add_assigned_account_id_to_reports.rb b/db/migrate/20180402031200_add_assigned_account_id_to_reports.rb
index 0456839c4..e2d1371d2 100644
--- a/db/migrate/20180402031200_add_assigned_account_id_to_reports.rb
+++ b/db/migrate/20180402031200_add_assigned_account_id_to_reports.rb
@@ -1,5 +1,5 @@
class AddAssignedAccountIdToReports < ActiveRecord::Migration[5.1]
def change
- add_reference :reports, :assigned_account, null: true, default: nil, foreign_key: { on_delete: :nullify, to_table: :accounts }, index: false
+ safety_assured { add_reference :reports, :assigned_account, null: true, default: nil, foreign_key: { on_delete: :nullify, to_table: :accounts }, index: false }
end
end
diff --git a/db/migrate/20180510214435_add_access_token_id_to_web_push_subscriptions.rb b/db/migrate/20180510214435_add_access_token_id_to_web_push_subscriptions.rb
index 94ef8e0f5..f60716532 100644
--- a/db/migrate/20180510214435_add_access_token_id_to_web_push_subscriptions.rb
+++ b/db/migrate/20180510214435_add_access_token_id_to_web_push_subscriptions.rb
@@ -1,6 +1,8 @@
class AddAccessTokenIdToWebPushSubscriptions < ActiveRecord::Migration[5.2]
def change
- add_reference :web_push_subscriptions, :access_token, null: true, default: nil, foreign_key: { on_delete: :cascade, to_table: :oauth_access_tokens }, index: false
- add_reference :web_push_subscriptions, :user, null: true, default: nil, foreign_key: { on_delete: :cascade }, index: false
+ safety_assured do
+ add_reference :web_push_subscriptions, :access_token, null: true, default: nil, foreign_key: { on_delete: :cascade, to_table: :oauth_access_tokens }, index: false
+ add_reference :web_push_subscriptions, :user, null: true, default: nil, foreign_key: { on_delete: :cascade }, index: false
+ end
end
end
diff --git a/db/migrate/20181219235220_add_created_by_application_id_to_users.rb b/db/migrate/20181219235220_add_created_by_application_id_to_users.rb
index 17ce900af..81c9237e8 100644
--- a/db/migrate/20181219235220_add_created_by_application_id_to_users.rb
+++ b/db/migrate/20181219235220_add_created_by_application_id_to_users.rb
@@ -2,7 +2,7 @@ class AddCreatedByApplicationIdToUsers < ActiveRecord::Migration[5.2]
disable_ddl_transaction!
def change
- add_reference :users, :created_by_application, foreign_key: { to_table: 'oauth_applications', on_delete: :nullify }, index: false
+ safety_assured { add_reference :users, :created_by_application, foreign_key: { to_table: 'oauth_applications', on_delete: :nullify }, index: false }
add_index :users, :created_by_application_id, algorithm: :concurrently
end
end
diff --git a/db/migrate/20190103124754_add_scheduled_status_id_to_media_attachments.rb b/db/migrate/20190103124754_add_scheduled_status_id_to_media_attachments.rb
index 6f6cf2351..7d904af60 100644
--- a/db/migrate/20190103124754_add_scheduled_status_id_to_media_attachments.rb
+++ b/db/migrate/20190103124754_add_scheduled_status_id_to_media_attachments.rb
@@ -2,7 +2,7 @@ class AddScheduledStatusIdToMediaAttachments < ActiveRecord::Migration[5.2]
disable_ddl_transaction!
def change
- add_reference :media_attachments, :scheduled_status, foreign_key: { on_delete: :nullify }, index: false
+ safety_assured { add_reference :media_attachments, :scheduled_status, foreign_key: { on_delete: :nullify }, index: false }
add_index :media_attachments, :scheduled_status_id, algorithm: :concurrently
end
end
diff --git a/db/migrate/20191212163405_add_hide_collections_to_accounts.rb b/db/migrate/20191212163405_add_hide_collections_to_accounts.rb
new file mode 100644
index 000000000..fa99b32e5
--- /dev/null
+++ b/db/migrate/20191212163405_add_hide_collections_to_accounts.rb
@@ -0,0 +1,5 @@
+class AddHideCollectionsToAccounts < ActiveRecord::Migration[5.2]
+ def change
+ add_column :accounts, :hide_collections, :boolean
+ end
+end
diff --git a/db/migrate/20200306035625_add_processing_to_media_attachments.rb b/db/migrate/20200306035625_add_processing_to_media_attachments.rb
new file mode 100644
index 000000000..131ffa52a
--- /dev/null
+++ b/db/migrate/20200306035625_add_processing_to_media_attachments.rb
@@ -0,0 +1,5 @@
+class AddProcessingToMediaAttachments < ActiveRecord::Migration[5.2]
+ def change
+ add_column :media_attachments, :processing, :integer
+ end
+end
diff --git a/db/migrate/20200312144258_add_title_to_account_warning_presets.rb b/db/migrate/20200312144258_add_title_to_account_warning_presets.rb
new file mode 100644
index 000000000..46a5350e7
--- /dev/null
+++ b/db/migrate/20200312144258_add_title_to_account_warning_presets.rb
@@ -0,0 +1,15 @@
+require Rails.root.join('lib', 'mastodon', 'migration_helpers')
+
+class AddTitleToAccountWarningPresets < ActiveRecord::Migration[5.2]
+ include Mastodon::MigrationHelpers
+
+ disable_ddl_transaction!
+
+ def up
+ safety_assured { add_column_with_default :account_warning_presets, :title, :string, default: '', allow_null: false }
+ end
+
+ def down
+ remove_column :account_warning_presets, :title
+ end
+end
diff --git a/db/migrate/20200312162302_add_status_ids_to_announcements.rb b/db/migrate/20200312162302_add_status_ids_to_announcements.rb
new file mode 100644
index 000000000..42aa6513d
--- /dev/null
+++ b/db/migrate/20200312162302_add_status_ids_to_announcements.rb
@@ -0,0 +1,6 @@
+class AddStatusIdsToAnnouncements < ActiveRecord::Migration[5.2]
+ def change
+ add_column :announcements, :status_ids, :bigint, array: true
+ end
+end
+
diff --git a/db/migrate/20200312185443_add_parent_id_to_email_domain_blocks.rb b/db/migrate/20200312185443_add_parent_id_to_email_domain_blocks.rb
new file mode 100644
index 000000000..54ca3b87c
--- /dev/null
+++ b/db/migrate/20200312185443_add_parent_id_to_email_domain_blocks.rb
@@ -0,0 +1,5 @@
+class AddParentIdToEmailDomainBlocks < ActiveRecord::Migration[5.2]
+ def change
+ safety_assured { add_reference :email_domain_blocks, :parent, null: true, default: nil, foreign_key: { on_delete: :cascade, to_table: :email_domain_blocks }, index: false }
+ end
+end
diff --git a/db/migrate/20200407201300_create_unavailable_domains.rb b/db/migrate/20200407201300_create_unavailable_domains.rb
new file mode 100644
index 000000000..56b477da5
--- /dev/null
+++ b/db/migrate/20200407201300_create_unavailable_domains.rb
@@ -0,0 +1,9 @@
+class CreateUnavailableDomains < ActiveRecord::Migration[5.2]
+ def change
+ create_table :unavailable_domains do |t|
+ t.string :domain, default: '', null: false, index: { unique: true }
+
+ t.timestamps
+ end
+ end
+end
diff --git a/db/migrate/20200407202420_migrate_unavailable_inboxes.rb b/db/migrate/20200407202420_migrate_unavailable_inboxes.rb
new file mode 100644
index 000000000..92a3acb5d
--- /dev/null
+++ b/db/migrate/20200407202420_migrate_unavailable_inboxes.rb
@@ -0,0 +1,21 @@
+class MigrateUnavailableInboxes < ActiveRecord::Migration[5.2]
+ disable_ddl_transaction!
+
+ def up
+ urls = Redis.current.smembers('unavailable_inboxes')
+
+ hosts = urls.map do |url|
+ Addressable::URI.parse(url).normalized_host
+ end.compact.uniq
+
+ UnavailableDomain.delete_all
+
+ hosts.each do |host|
+ UnavailableDomain.create(domain: host)
+ end
+
+ Redis.current.del(*(['unavailable_inboxes'] + Redis.current.keys('exhausted_deliveries:*')))
+ end
+
+ def down; end
+end
diff --git a/db/migrate/20200417125749_add_storage_schema_version.rb b/db/migrate/20200417125749_add_storage_schema_version.rb
new file mode 100644
index 000000000..7438f97ba
--- /dev/null
+++ b/db/migrate/20200417125749_add_storage_schema_version.rb
@@ -0,0 +1,9 @@
+class AddStorageSchemaVersion < ActiveRecord::Migration[5.2]
+ def change
+ add_column :preview_cards, :image_storage_schema_version, :integer
+ add_column :accounts, :avatar_storage_schema_version, :integer
+ add_column :accounts, :header_storage_schema_version, :integer
+ add_column :media_attachments, :file_storage_schema_version, :integer
+ add_column :custom_emojis, :image_storage_schema_version, :integer
+ end
+end
diff --git a/db/migrate/20200508212852_reset_unique_jobs_locks.rb b/db/migrate/20200508212852_reset_unique_jobs_locks.rb
new file mode 100644
index 000000000..3ffdeb0aa
--- /dev/null
+++ b/db/migrate/20200508212852_reset_unique_jobs_locks.rb
@@ -0,0 +1,12 @@
+class ResetUniqueJobsLocks < ActiveRecord::Migration[5.2]
+ disable_ddl_transaction!
+
+ def up
+ # We do this to clean up unique job digests that were not properly
+ # disposed of prior to https://github.com/tootsuite/mastodon/pull/13361
+
+ SidekiqUniqueJobs::Digests.delete_by_pattern('*', count: SidekiqUniqueJobs::Digests.count)
+ end
+
+ def down; end
+end
diff --git a/db/migrate/20200510110808_reset_web_app_secret.rb b/db/migrate/20200510110808_reset_web_app_secret.rb
new file mode 100644
index 000000000..b274844c5
--- /dev/null
+++ b/db/migrate/20200510110808_reset_web_app_secret.rb
@@ -0,0 +1,15 @@
+class ResetWebAppSecret < ActiveRecord::Migration[5.2]
+ disable_ddl_transaction!
+
+ def up
+ web_app = Doorkeeper::Application.find_by(superapp: true)
+
+ return if web_app.nil?
+
+ web_app.renew_secret
+ web_app.save!
+ end
+
+ def down
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index cbc5f8579..28eafc383 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 2020_01_26_203551) do
+ActiveRecord::Schema.define(version: 2020_05_10_110808) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -114,6 +114,7 @@ ActiveRecord::Schema.define(version: 2020_01_26_203551) do
t.text "text", default: "", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
+ t.string "title", default: "", null: false
end
create_table "account_warnings", force: :cascade do |t|
@@ -170,6 +171,9 @@ ActiveRecord::Schema.define(version: 2020_01_26_203551) do
t.datetime "silenced_at"
t.datetime "suspended_at"
t.integer "trust_level"
+ t.boolean "hide_collections"
+ t.integer "avatar_storage_schema_version"
+ t.integer "header_storage_schema_version"
t.index "(((setweight(to_tsvector('simple'::regconfig, (display_name)::text), 'A'::\"char\") || setweight(to_tsvector('simple'::regconfig, (username)::text), 'B'::\"char\")) || setweight(to_tsvector('simple'::regconfig, (COALESCE(domain, ''::character varying))::text), 'C'::\"char\")))", name: "search_index", using: :gin
t.index "lower((username)::text), lower((domain)::text)", name: "index_accounts_on_username_and_domain_lower", unique: true
t.index ["moved_to_account_id"], name: "index_accounts_on_moved_to_account_id"
@@ -229,6 +233,7 @@ ActiveRecord::Schema.define(version: 2020_01_26_203551) do
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.datetime "published_at"
+ t.bigint "status_ids", array: true
end
create_table "backups", force: :cascade do |t|
@@ -296,6 +301,7 @@ ActiveRecord::Schema.define(version: 2020_01_26_203551) do
t.string "image_remote_url"
t.boolean "visible_in_picker", default: true, null: false
t.bigint "category_id"
+ t.integer "image_storage_schema_version"
t.index ["shortcode", "domain"], name: "index_custom_emojis_on_shortcode_and_domain", unique: true
end
@@ -334,6 +340,7 @@ ActiveRecord::Schema.define(version: 2020_01_26_203551) do
t.string "domain", default: "", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
+ t.bigint "parent_id"
t.index ["domain"], name: "index_email_domain_blocks_on_domain", unique: true
end
@@ -460,6 +467,8 @@ ActiveRecord::Schema.define(version: 2020_01_26_203551) do
t.text "description"
t.bigint "scheduled_status_id"
t.string "blurhash"
+ t.integer "processing"
+ t.integer "file_storage_schema_version"
t.index ["account_id"], name: "index_media_attachments_on_account_id"
t.index ["scheduled_status_id"], name: "index_media_attachments_on_scheduled_status_id"
t.index ["shortcode"], name: "index_media_attachments_on_shortcode", unique: true
@@ -600,6 +609,7 @@ ActiveRecord::Schema.define(version: 2020_01_26_203551) do
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "embed_url", default: "", null: false
+ t.integer "image_storage_schema_version"
t.index ["url"], name: "index_preview_cards_on_url", unique: true
end
@@ -791,6 +801,13 @@ ActiveRecord::Schema.define(version: 2020_01_26_203551) do
t.index ["uri"], name: "index_tombstones_on_uri"
end
+ create_table "unavailable_domains", force: :cascade do |t|
+ t.string "domain", default: "", null: false
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ t.index ["domain"], name: "index_unavailable_domains_on_domain", unique: true
+ end
+
create_table "user_invite_requests", force: :cascade do |t|
t.bigint "user_id"
t.text "text"
@@ -893,6 +910,7 @@ ActiveRecord::Schema.define(version: 2020_01_26_203551) do
add_foreign_key "conversation_mutes", "accounts", name: "fk_225b4212bb", on_delete: :cascade
add_foreign_key "conversation_mutes", "conversations", on_delete: :cascade
add_foreign_key "custom_filters", "accounts", on_delete: :cascade
+ add_foreign_key "email_domain_blocks", "email_domain_blocks", column: "parent_id", on_delete: :cascade
add_foreign_key "favourites", "accounts", name: "fk_5eb6c2b873", on_delete: :cascade
add_foreign_key "favourites", "statuses", name: "fk_b0e856845e", on_delete: :cascade
add_foreign_key "featured_tags", "accounts", on_delete: :cascade
diff --git a/dist/nginx.conf b/dist/nginx.conf
index b6591e897..2d5f3a389 100644
--- a/dist/nginx.conf
+++ b/dist/nginx.conf
@@ -3,6 +3,14 @@ map $http_upgrade $connection_upgrade {
'' close;
}
+upstream backend {
+ server 127.0.0.1:3000 fail_timeout=0;
+}
+
+upstream streaming {
+ server 127.0.0.1:4000 fail_timeout=0;
+}
+
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=CACHE:10m inactive=7d max_size=1g;
server {
@@ -69,7 +77,7 @@ server {
proxy_set_header Proxy "";
proxy_pass_header Server;
- proxy_pass http://127.0.0.1:3000;
+ proxy_pass http://backend;
proxy_buffering on;
proxy_redirect off;
proxy_http_version 1.1;
@@ -93,7 +101,7 @@ server {
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Proxy "";
- proxy_pass http://127.0.0.1:4000;
+ proxy_pass http://streaming;
proxy_buffering off;
proxy_redirect off;
proxy_http_version 1.1;
diff --git a/docker-compose.yml b/docker-compose.yml
index 20649e424..b41578274 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -4,6 +4,7 @@ services:
db:
restart: always
image: postgres:9.6-alpine
+ shm_size: 256mb
networks:
- internal_network
healthcheck:
diff --git a/ide-helper.js b/ide-helper.js
new file mode 100644
index 000000000..9e645cb0e
--- /dev/null
+++ b/ide-helper.js
@@ -0,0 +1,12 @@
+/* global path */
+/*
+Preferences | Languages & Frameworks | JavaScript | Webpack | webpack configuration file
+jetbrains://WebStorm/settings?name=Languages+%26+Frameworks--JavaScript--Webpack
+*/
+module.exports = {
+ resolve: {
+ alias: {
+ 'mastodon': path.resolve(__dirname, 'app/javascript/mastodon'),
+ },
+ },
+};
diff --git a/lib/cli.rb b/lib/cli.rb
index 19cc5d6b5..313a36a3d 100644
--- a/lib/cli.rb
+++ b/lib/cli.rb
@@ -11,6 +11,7 @@ require_relative 'mastodon/statuses_cli'
require_relative 'mastodon/domains_cli'
require_relative 'mastodon/preview_cards_cli'
require_relative 'mastodon/cache_cli'
+require_relative 'mastodon/upgrade_cli'
require_relative 'mastodon/version'
module Mastodon
@@ -49,6 +50,9 @@ module Mastodon
desc 'cache SUBCOMMAND ...ARGS', 'Manage cache'
subcommand 'cache', Mastodon::CacheCLI
+ desc 'upgrade SUBCOMMAND ...ARGS', 'Various version upgrade utilities'
+ subcommand 'upgrade', Mastodon::UpgradeCLI
+
option :dry_run, type: :boolean
desc 'self-destruct', 'Erase the server from the federation'
long_desc <<~LONG_DESC
diff --git a/lib/mastodon/cli_helper.rb b/lib/mastodon/cli_helper.rb
index ec4d9a81e..4a20fa8d6 100644
--- a/lib/mastodon/cli_helper.rb
+++ b/lib/mastodon/cli_helper.rb
@@ -10,6 +10,10 @@ Paperclip.options[:log] = false
module Mastodon
module CLIHelper
+ def dry_run?
+ options[:dry_run]
+ end
+
def create_progress_bar(total = nil)
ProgressBar.create(total: total, format: '%c/%u |%b%i| %e')
end
diff --git a/lib/mastodon/emoji_cli.rb b/lib/mastodon/emoji_cli.rb
index dbaf12018..da8fd6a0d 100644
--- a/lib/mastodon/emoji_cli.rb
+++ b/lib/mastodon/emoji_cli.rb
@@ -23,7 +23,7 @@ module Mastodon
Existing emoji will be skipped unless the --overwrite option
is provided, in which case they will be overwritten.
- You can specifiy a --category under which the emojis will be
+ You can specify a --category under which the emojis will be
grouped together.
With the --prefix option, a prefix can be added to all
@@ -72,6 +72,48 @@ module Mastodon
say("Imported #{imported}, skipped #{skipped}, failed to import #{failed}", color(imported, skipped, failed))
end
+ option :category
+ option :overwrite, type: :boolean
+ desc 'export PATH', 'Export emoji to a TAR GZIP archive at PATH'
+ long_desc <<-LONG_DESC
+ Exports custom emoji to 'export.tar.gz' at PATH.
+
+ The --category option dumps only the specified category.
+ If this option is not specified, all emoji will be exported.
+
+ The --overwrite option will overwrite an existing archive.
+ LONG_DESC
+ def export(path)
+ exported = 0
+ category = CustomEmojiCategory.find_by(name: options[:category])
+ export_file_name = File.join(path, 'export.tar.gz')
+
+ if File.file?(export_file_name) && !options[:overwrite]
+ say("Archive already exists! Use '--overwrite' to overwrite it!")
+ exit 1
+ end
+ if category.nil? && options[:category]
+ say("Unable to find category '#{options[:category]}'!")
+ exit 1
+ end
+
+ File.open(export_file_name, 'wb') do |file|
+ Zlib::GzipWriter.wrap(file) do |gzip|
+ Gem::Package::TarWriter.new(gzip) do |tar|
+ scope = !options[:category] || category.nil? ? CustomEmoji.local : category.emojis
+ scope.find_each do |emoji|
+ say("Adding '#{emoji.shortcode}'...")
+ tar.add_file_simple(emoji.shortcode + File.extname(emoji.image_file_name), 0o644, emoji.image_file_size) do |io|
+ io.write Paperclip.io_adapters.for(emoji.image).read
+ exported += 1
+ end
+ end
+ end
+ end
+ end
+ say("Exported #{exported}")
+ end
+
option :remote_only, type: :boolean
desc 'purge', 'Remove all custom emoji'
long_desc <<-LONG_DESC
diff --git a/lib/mastodon/media_cli.rb b/lib/mastodon/media_cli.rb
index d842b986f..2b1653335 100644
--- a/lib/mastodon/media_cli.rb
+++ b/lib/mastodon/media_cli.rb
@@ -45,6 +45,7 @@ module Mastodon
end
option :start_after
+ option :prefix
option :dry_run, type: :boolean, default: false
desc 'remove-orphans', 'Scan storage and check for files that do not belong to existing media attachments'
long_desc <<~LONG_DESC
@@ -58,6 +59,7 @@ module Mastodon
reclaimed_bytes = 0
removed = 0
dry_run = options[:dry_run] ? ' (DRY RUN)' : ''
+ prefix = options[:prefix]
case Paperclip::Attachment.default_options[:storage]
when :s3
@@ -69,7 +71,7 @@ module Mastodon
loop do
objects = begin
begin
- bucket.objects(start_after: last_key, prefix: 'media_attachments/files/').limit(1000).map { |x| x }
+ bucket.objects(start_after: last_key, prefix: prefix).limit(1000).map { |x| x }
rescue => e
progress.log(pastel.red("Error fetching list of files: #{e}"))
progress.log("If you want to continue from this point, add --start-after=#{last_key} to your command") if last_key
@@ -79,16 +81,23 @@ module Mastodon
break if objects.empty?
- last_key = objects.last.key
- attachments_map = MediaAttachment.where(id: objects.map { |object| object.key.split('/')[2..-2].join.to_i }).each_with_object({}) { |attachment, map| map[attachment.id] = attachment }
+ last_key = objects.last.key
+ record_map = preload_records_from_mixed_objects(objects)
objects.each do |object|
- attachment_id = object.key.split('/')[2..-2].join.to_i
- filename = object.key.split('/').last
+ path_segments = object.key.split('/')
+ path_segments.delete('cache')
+
+ model_name = path_segments.first.classify
+ attachment_name = path_segments[1].singularize
+ record_id = path_segments[2..-2].join.to_i
+ file_name = path_segments.last
+ record = record_map.dig(model_name, record_id)
+ attachment = record&.public_send(attachment_name)
progress.increment
- next unless attachments_map[attachment_id].nil? || !attachments_map[attachment_id].variant?(filename)
+ next unless attachment.blank? || !attachment.variant?(file_name)
begin
object.delete unless options[:dry_run]
@@ -108,24 +117,41 @@ module Mastodon
when :filesystem
require 'find'
- root_path = ENV.fetch('RAILS_ROOT_PATH', File.join(':rails_root', 'public', 'system')).gsub(':rails_root', Rails.root.to_s)
+ root_path = ENV.fetch('PAPERCLIP_ROOT_PATH', File.join(':rails_root', 'public', 'system')).gsub(':rails_root', Rails.root.to_s)
- Find.find(File.join(root_path, 'media_attachments', 'files')) do |path|
+ Find.find(File.join(*[root_path, prefix].compact)) do |path|
next if File.directory?(path)
- key = path.gsub("#{root_path}#{File::SEPARATOR}", '')
- attachment_id = key.split(File::SEPARATOR)[2..-2].join.to_i
- filename = key.split(File::SEPARATOR).last
- attachment = MediaAttachment.find_by(id: attachment_id)
+ key = path.gsub("#{root_path}#{File::SEPARATOR}", '')
+
+ path_segments = key.split(File::SEPARATOR)
+ path_segments.delete('cache')
+
+ model_name = path_segments.first.classify
+ record_id = path_segments[2..-2].join.to_i
+ attachment_name = path_segments[1].singularize
+ file_name = path_segments.last
+
+ next unless PRELOAD_MODEL_WHITELIST.include?(model_name)
+
+ record = model_name.constantize.find_by(id: record_id)
+ attachment = record&.public_send(attachment_name)
progress.increment
- next unless attachment.nil? || !attachment.variant?(filename)
+ next unless attachment.blank? || !attachment.variant?(file_name)
begin
size = File.size(path)
- File.delete(path) unless options[:dry_run]
+ unless options[:dry_run]
+ File.delete(path)
+ begin
+ FileUtils.rmdir(File.dirname(path), parents: true)
+ rescue Errno::ENOTEMPTY
+ # OK
+ end
+ end
reclaimed_bytes += size
removed += 1
@@ -172,7 +198,7 @@ module Mastodon
if options[:status]
scope = MediaAttachment.where(status_id: options[:status])
elsif options[:account]
- username, domain = username.split('@')
+ username, domain = options[:account].split('@')
account = Account.find_remote(username, domain)
if account.nil?
@@ -191,7 +217,7 @@ module Mastodon
next if media_attachment.remote_url.blank? || (!options[:force] && media_attachment.file_file_name.present?)
unless options[:dry_run]
- media_attachment.reset_file!
+ media_attachment.file_remote_url = media_attachment.remote_url
media_attachment.save
end
@@ -213,25 +239,71 @@ module Mastodon
say("Settings:\t#{number_to_human_size(SiteUpload.sum(:file_file_size))}")
end
- desc 'lookup', 'Lookup where media is displayed by passing a media URL'
- def lookup
- prompt = TTY::Prompt.new
+ desc 'lookup URL', 'Lookup where media is displayed by passing a media URL'
+ def lookup(url)
+ path = Addressable::URI.parse(url).path
- url = prompt.ask('Please enter a URL to the media to lookup:', required: true)
+ path_segments = path.split('/')[2..-1]
+ path_segments.delete('cache')
- attachment_id = url
- .split('/')[0..-2]
- .grep(/\A\d+\z/)
- .join('')
+ model_name = path_segments.first.classify
+ record_id = path_segments[2..-2].join.to_i
- if url.split('/')[0..-2].include? 'media_attachments'
- model = MediaAttachment.find(attachment_id).status
- prompt.say(ActivityPub::TagManager.instance.url_for(model))
- elsif url.split('/')[0..-2].include? 'accounts'
- model = Account.find(attachment_id)
- prompt.say(ActivityPub::TagManager.instance.url_for(model))
- else
- prompt.say('Not found')
+ unless PRELOAD_MODEL_WHITELIST.include?(model_name)
+ say("Cannot find corresponding model: #{model_name}", :red)
+ exit(1)
+ end
+
+ record = model_name.constantize.find_by(id: record_id)
+ record = record.status if record.respond_to?(:status)
+
+ unless record
+ say('Cannot find corresponding record', :red)
+ exit(1)
+ end
+
+ display_url = ActivityPub::TagManager.instance.url_for(record)
+
+ if display_url.blank?
+ say('No public URL for this type of record', :red)
+ exit(1)
+ end
+
+ say(display_url, :blue)
+ rescue Addressable::URI::InvalidURIError
+ say('Invalid URL', :red)
+ exit(1)
+ end
+
+ private
+
+ PRELOAD_MODEL_WHITELIST = %w(
+ Account
+ Backup
+ CustomEmoji
+ Import
+ MediaAttachment
+ PreviewCard
+ SiteUpload
+ ).freeze
+
+ def preload_records_from_mixed_objects(objects)
+ preload_map = Hash.new { |hash, key| hash[key] = [] }
+
+ objects.map do |object|
+ segments = object.key.split('/')
+ segments.delete('cache')
+
+ model_name = segments.first.classify
+ record_id = segments[2..-2].join.to_i
+
+ next unless PRELOAD_MODEL_WHITELIST.include?(model_name)
+
+ preload_map[model_name] << record_id
+ end
+
+ preload_map.each_with_object({}) do |(model_name, record_ids), model_map|
+ model_map[model_name] = model_name.constantize.where(id: record_ids).each_with_object({}) { |record, record_map| record_map[record.id] = record }
end
end
end
diff --git a/lib/mastodon/redis_config.rb b/lib/mastodon/redis_config.rb
index f11d94a45..e9db9122f 100644
--- a/lib/mastodon/redis_config.rb
+++ b/lib/mastodon/redis_config.rb
@@ -14,7 +14,9 @@ def setup_redis_env_url(prefix = nil, defaults = true)
ENV[prefix + 'REDIS_URL'] = if [password, host, port, db].all?(&:nil?)
ENV['REDIS_URL']
else
- "redis://#{password.blank? ? '' : ":#{password}@"}#{host}:#{port}/#{db}"
+ Addressable::URI.parse("redis://#{host}:#{port}/#{db}").tap do |uri|
+ uri.password = password if password.present?
+ end.normalize.to_str
end
end
diff --git a/lib/mastodon/statuses_cli.rb b/lib/mastodon/statuses_cli.rb
index ecaac17e3..b9dccdd8a 100644
--- a/lib/mastodon/statuses_cli.rb
+++ b/lib/mastodon/statuses_cli.rb
@@ -14,6 +14,7 @@ module Mastodon
option :days, type: :numeric, default: 90
option :clean_followed, type: :boolean
+ option :skip_media_remove, type: :boolean
desc 'remove', 'Remove unreferenced statuses'
long_desc <<~LONG_DESC
Remove statuses that are not referenced by local user activity, such as
@@ -58,9 +59,10 @@ module Mastodon
scope.in_batches.delete_all
- say('Beginning removal of now-orphaned media attachments to free up disk space...')
-
- Scheduler::MediaCleanupScheduler.new.perform
+ unless options[:skip_media_remove]
+ say('Beginning removal of now-orphaned media attachments to free up disk space...')
+ Scheduler::MediaCleanupScheduler.new.perform
+ end
say("Done after #{Time.now.to_f - start_at}s", :green)
ensure
diff --git a/lib/mastodon/upgrade_cli.rb b/lib/mastodon/upgrade_cli.rb
new file mode 100644
index 000000000..779462a4f
--- /dev/null
+++ b/lib/mastodon/upgrade_cli.rb
@@ -0,0 +1,148 @@
+# frozen_string_literal: true
+
+require_relative '../../config/boot'
+require_relative '../../config/environment'
+require_relative 'cli_helper'
+
+module Mastodon
+ class UpgradeCLI < Thor
+ include CLIHelper
+
+ def self.exit_on_failure?
+ true
+ end
+
+ CURRENT_STORAGE_SCHEMA_VERSION = 1
+
+ option :dry_run, type: :boolean, default: false
+ option :verbose, type: :boolean, default: false, aliases: [:v]
+ desc 'storage-schema', 'Upgrade storage schema of various file attachments to the latest version'
+ long_desc <<~LONG_DESC
+ Iterates over every file attachment of every record and, if its storage schema is outdated, performs the
+ necessary upgrade to the latest one. In practice this means e.g. moving files to different directories.
+
+ Will most likely take a long time.
+ LONG_DESC
+ def storage_schema
+ progress = create_progress_bar(nil)
+ dry_run = dry_run? ? ' (DRY RUN)' : ''
+ records = 0
+
+ klasses = [
+ Account,
+ CustomEmoji,
+ MediaAttachment,
+ PreviewCard,
+ ]
+
+ klasses.each do |klass|
+ attachment_names = klass.attachment_definitions.keys
+
+ klass.find_each do |record|
+ attachment_names.each do |attachment_name|
+ attachment = record.public_send(attachment_name)
+
+ next if attachment.blank? || attachment.storage_schema_version >= CURRENT_STORAGE_SCHEMA_VERSION
+
+ attachment.styles.each_key do |style|
+ case Paperclip::Attachment.default_options[:storage]
+ when :s3
+ upgrade_storage_s3(progress, attachment, style)
+ when :fog
+ upgrade_storage_fog(progress, attachment, style)
+ when :filesystem
+ upgrade_storage_filesystem(progress, attachment, style)
+ end
+
+ progress.increment
+ end
+
+ attachment.instance_write(:storage_schema_version, CURRENT_STORAGE_SCHEMA_VERSION)
+ end
+
+ if record.changed?
+ record.save unless dry_run?
+ records += 1
+ end
+ end
+ end
+
+ progress.total = progress.progress
+ progress.finish
+
+ say("Upgraded storage schema of #{records} records#{dry_run}", :green, true)
+ end
+
+ private
+
+ def upgrade_storage_s3(progress, attachment, style)
+ previous_storage_schema_version = attachment.storage_schema_version
+ object = attachment.s3_object(style)
+
+ attachment.instance_write(:storage_schema_version, CURRENT_STORAGE_SCHEMA_VERSION)
+
+ upgraded_path = attachment.path(style)
+
+ if upgraded_path != object.key && object.exists?
+ progress.log("Moving #{object.key} to #{upgraded_path}") if options[:verbose]
+
+ begin
+ object.move_to(upgraded_path) unless dry_run?
+ rescue => e
+ progress.log(pastel.red("Error processing #{object.key}: #{e}"))
+ end
+ end
+
+ # Because we move files style-by-style, it's important to restore
+ # previous version at the end. The upgrade will be recorded after
+ # all styles are updated
+ attachment.instance_write(:storage_schema_version, previous_storage_schema_version)
+ end
+
+ def upgrade_storage_fog(_progress, _attachment, _style)
+ say('The fog storage driver is not supported for this operation at this time', :red)
+ exit(1)
+ end
+
+ def upgrade_storage_filesystem(progress, attachment, style)
+ previous_storage_schema_version = attachment.storage_schema_version
+ previous_path = attachment.path(style)
+
+ attachment.instance_write(:storage_schema_version, CURRENT_STORAGE_SCHEMA_VERSION)
+
+ upgraded_path = attachment.path(style)
+
+ if upgraded_path != previous_path && File.exist?(previous_path)
+ progress.log("Moving #{previous_path} to #{upgraded_path}") if options[:verbose]
+
+ begin
+ unless dry_run?
+ FileUtils.mkdir_p(File.dirname(upgraded_path))
+ FileUtils.mv(previous_path, upgraded_path)
+
+ begin
+ FileUtils.rmdir(File.dirname(previous_path), parents: true)
+ rescue Errno::ENOTEMPTY
+ # OK
+ end
+ end
+ rescue => e
+ progress.log(pastel.red("Error processing #{previous_path}: #{e}"))
+
+ unless dry_run?
+ begin
+ FileUtils.rmdir(File.dirname(upgraded_path), parents: true)
+ rescue Errno::ENOTEMPTY
+ # OK
+ end
+ end
+ end
+ end
+
+ # Because we move files style-by-style, it's important to restore
+ # previous version at the end. The upgrade will be recorded after
+ # all styles are updated
+ attachment.instance_write(:storage_schema_version, previous_storage_schema_version)
+ end
+ end
+end
diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb
index ed8bc96cd..f73b8805a 100644
--- a/lib/mastodon/version.rb
+++ b/lib/mastodon/version.rb
@@ -13,7 +13,7 @@ module Mastodon
end
def patch
- 2
+ 4
end
def flags
diff --git a/lib/paperclip/attachment_extensions.rb b/lib/paperclip/attachment_extensions.rb
new file mode 100644
index 000000000..f3e51dbd3
--- /dev/null
+++ b/lib/paperclip/attachment_extensions.rb
@@ -0,0 +1,41 @@
+# frozen_string_literal: true
+
+module Paperclip
+ module AttachmentExtensions
+ # We overwrite this method to support delayed processing in
+ # Sidekiq. Since we process the original file to reduce disk
+ # usage, and we still want to generate thumbnails straight
+ # away, it's the only style we need to exclude
+ def process_style?(style_name, style_args)
+ if style_name == :original && instance.respond_to?(:delay_processing?) && instance.delay_processing?
+ false
+ else
+ style_args.empty? || style_args.include?(style_name)
+ end
+ end
+
+ def storage_schema_version
+ instance_read(:storage_schema_version) || 0
+ end
+
+ def assign_attributes
+ super
+ instance_write(:storage_schema_version, 1)
+ end
+
+ def variant?(other_filename)
+ return true if original_filename == other_filename
+ return false if original_filename.nil?
+
+ formats = styles.values.map(&:format).compact
+
+ return false if formats.empty?
+
+ other_extension = File.extname(other_filename)
+
+ formats.include?(other_extension.delete('.')) && File.basename(other_filename, other_extension) == File.basename(original_filename, File.extname(original_filename))
+ end
+ end
+end
+
+Paperclip::Attachment.prepend(Paperclip::AttachmentExtensions)
diff --git a/lib/paperclip/url_generator_extensions.rb b/lib/paperclip/url_generator_extensions.rb
new file mode 100644
index 000000000..1079efdbc
--- /dev/null
+++ b/lib/paperclip/url_generator_extensions.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+module Paperclip
+ module UrlGeneratorExtensions
+ # Monkey-patch Paperclip to use Addressable::URI's normalization instead
+ # of the long-deprecated URI.esacpe
+ def escape_url(url)
+ if url.respond_to?(:escape)
+ url.escape
+ else
+ Addressable::URI.parse(url).normalize.to_str.gsub(escape_regex) { |m| "%#{m.ord.to_s(16).upcase}" }
+ end
+ end
+ end
+end
+
+Paperclip::UrlGenerator.prepend(Paperclip::UrlGeneratorExtensions)
diff --git a/lib/paperclip/video_transcoder.rb b/lib/paperclip/video_transcoder.rb
index 66f7feda5..4d9544231 100644
--- a/lib/paperclip/video_transcoder.rb
+++ b/lib/paperclip/video_transcoder.rb
@@ -5,12 +5,22 @@ module Paperclip
# to check when uploaded videos are actually gifv's
class VideoTranscoder < Paperclip::Processor
def make
- meta = ::Av.cli.identify(@file.path)
+ movie = FFMPEG::Movie.new(@file.path)
- attachment.instance.type = MediaAttachment.types[:gifv] unless meta[:audio_encode]
- options[:format] = File.extname(attachment.instance.file_file_name)[1..-1] if options[:keep_same_format]
+ attachment.instance.type = MediaAttachment.types[:gifv] unless movie.audio_codec
- Paperclip::Transcoder.make(file, options, attachment)
+ Paperclip::Transcoder.make(file, actual_options(movie), attachment)
+ end
+
+ private
+
+ def actual_options(movie)
+ opts = options[:passthrough_options]
+ if opts && opts[:video_codecs].include?(movie.video_codec) && opts[:audio_codecs].include?(movie.audio_codec) && opts[:colorspaces].include?(movie.colorspace)
+ opts[:options]
+ else
+ options
+ end
end
end
end
diff --git a/lib/tasks/emojis.rake b/lib/tasks/emojis.rake
index 892afd898..70919fbdb 100644
--- a/lib/tasks/emojis.rake
+++ b/lib/tasks/emojis.rake
@@ -15,7 +15,7 @@ end
namespace :emojis do
desc 'Generate a unicode to filename mapping'
task :generate do
- source = 'http://www.unicode.org/Public/emoji/11.0/emoji-test.txt'
+ source = 'http://www.unicode.org/Public/emoji/12.0/emoji-test.txt'
codes = []
dest = Rails.root.join('app', 'javascript', 'mastodon', 'features', 'emoji', 'emoji_map.json')
diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake
index 2e92e8ded..a873335d4 100644
--- a/lib/tasks/mastodon.rake
+++ b/lib/tasks/mastodon.rake
@@ -336,7 +336,20 @@ namespace :mastodon do
if prompt.yes?('Save configuration?')
cmd = TTY::Command.new(printer: :quiet)
- File.write(Rails.root.join('.env.production'), "# Generated with mastodon:setup on #{Time.now.utc}\n\n" + env.each_pair.map { |key, value| "#{key}=#{value}" }.join("\n") + "\n")
+ env_contents = env.each_pair.map do |key, value|
+ if value.is_a?(String) && value =~ /[\s\#\\"]/
+ if value =~ /[']/
+ value = value.to_s.gsub(/[\\"\$]/) { |x| "\\#{x}" }
+ "#{key}=\"#{value}\""
+ else
+ "#{key}='#{value}'"
+ end
+ else
+ "#{key}=#{value}"
+ end
+ end.join("\n")
+
+ File.write(Rails.root.join('.env.production'), "# Generated with mastodon:setup on #{Time.now.utc}\n\n" + env_contents + "\n")
if using_docker
prompt.ok 'Below is your configuration, save it to an .env.production file outside Docker:'
diff --git a/package.json b/package.json
index 1a873615d..44f810b98 100644
--- a/package.json
+++ b/package.json
@@ -59,31 +59,32 @@
},
"private": true,
"dependencies": {
- "@babel/core": "^7.8.4",
+ "@babel/core": "^7.9.6",
"@babel/plugin-proposal-class-properties": "^7.8.3",
"@babel/plugin-proposal-decorators": "^7.8.3",
- "@babel/plugin-transform-react-inline-elements": "^7.8.3",
- "@babel/plugin-transform-runtime": "^7.8.3",
- "@babel/preset-env": "^7.8.3",
- "@babel/preset-react": "^7.8.3",
- "@babel/runtime": "^7.8.3",
- "@clusterws/cws": "^0.17.3",
+ "@babel/plugin-transform-react-inline-elements": "^7.9.0",
+ "@babel/plugin-transform-runtime": "^7.9.0",
+ "@babel/preset-env": "^7.9.6",
+ "@babel/preset-react": "^7.9.4",
+ "@babel/runtime": "^7.8.4",
+ "@clusterws/cws": "^2.0.0",
"@gamestdio/websocket": "^0.3.2",
+ "@rails/ujs": "^6.0.3",
"array-includes": "^3.1.1",
"arrow-key-navigation": "^1.1.0",
- "autoprefixer": "^9.7.4",
+ "autoprefixer": "^9.7.6",
"axios": "^0.19.2",
- "babel-loader": "^8.0.6",
+ "babel-loader": "^8.1.0",
"babel-plugin-lodash": "^3.3.4",
- "babel-plugin-preval": "^4.0.0",
- "babel-plugin-react-intl": "^3.4.1",
+ "babel-plugin-preval": "^5.0.0",
+ "babel-plugin-react-intl": "^6.2.0",
"babel-plugin-transform-react-remove-prop-types": "^0.4.24",
"babel-runtime": "^6.26.0",
"blurhash": "^1.1.3",
"classnames": "^2.2.5",
"compression-webpack-plugin": "^3.1.0",
"copy-webpack-plugin": "^5.1.1",
- "cross-env": "^6.0.3",
+ "cross-env": "^7.0.2",
"css-loader": "^3.4.2",
"cssnano": "^4.1.10",
"detect-passive-events": "^1.0.2",
@@ -93,7 +94,7 @@
"escape-html": "^1.0.3",
"exif-js": "^2.3.0",
"express": "^4.17.1",
- "file-loader": "^5.0.2",
+ "file-loader": "^5.1.0",
"font-awesome": "^4.7.0",
"glob": "^7.1.6",
"history": "^4.10.1",
@@ -110,7 +111,7 @@
"mark-loader": "^0.1.6",
"marky": "^1.2.1",
"mini-css-extract-plugin": "^0.9.0",
- "mkdirp": "^0.5.1",
+ "mkdirp": "^1.0.4",
"npmlog": "^4.1.2",
"object-assign": "^4.1.1",
"object-fit-images": "^3.2.3",
@@ -123,11 +124,10 @@
"promise.prototype.finally": "^3.1.2",
"prop-types": "^15.5.10",
"punycode": "^2.1.0",
- "rails-ujs": "^5.2.4",
- "react": "^16.12.0",
- "react-dom": "^16.12.0",
+ "react": "^16.13.1",
+ "react-dom": "^16.13.1",
"react-hotkeys": "^1.1.4",
- "react-immutable-proptypes": "^2.1.0",
+ "react-immutable-proptypes": "^2.2.0",
"react-immutable-pure-component": "^1.1.1",
"react-intl": "^2.9.0",
"react-masonry-infinite": "^1.2.2",
@@ -138,12 +138,12 @@
"react-redux-loading-bar": "^4.0.8",
"react-router-dom": "^4.1.1",
"react-router-scroll-4": "^1.0.0-beta.1",
- "react-select": "^3.0.8",
+ "react-select": "^3.1.0",
"react-sparklines": "^1.7.0",
"react-swipeable-views": "^0.13.9",
"react-textarea-autosize": "^7.1.2",
"react-toggle": "^4.1.1",
- "redis": "^2.7.1",
+ "redis": "^3.0.2",
"redux": "^4.0.5",
"redux-immutable": "^4.0.0",
"redux-thunk": "^2.2.0",
@@ -151,40 +151,43 @@
"requestidlecallback": "^0.3.0",
"reselect": "^4.0.0",
"rimraf": "^3.0.2",
- "sass": "^1.25.0",
+ "sass": "^1.26.3",
"sass-loader": "^8.0.2",
"stacktrace-js": "^2.0.2",
- "stringz": "^2.0.0",
+ "stringz": "^2.1.0",
"substring-trie": "^1.0.2",
- "terser-webpack-plugin": "^2.3.5",
+ "terser-webpack-plugin": "^3.0.1",
"tesseract.js": "^2.0.0-alpha.16",
"throng": "^4.0.0",
"tiny-queue": "^0.2.1",
- "uuid": "^3.4.0",
- "wavesurfer.js": "^3.3.1",
- "webpack": "^4.41.5",
+ "uuid": "^8.0.0",
+ "wavesurfer.js": "^3.3.3",
+ "webpack": "^4.43.0",
"webpack-assets-manifest": "^3.1.1",
- "webpack-bundle-analyzer": "^3.6.0",
+ "webpack-bundle-analyzer": "^3.7.0",
"webpack-cli": "^3.3.11",
"webpack-merge": "^4.2.1",
- "wicg-inert": "^3.0.0"
+ "wicg-inert": "^3.0.2"
},
"devDependencies": {
"babel-eslint": "^10.0.3",
- "babel-jest": "^24.9.0",
+ "babel-jest": "^25.2.4",
"enzyme": "^3.11.0",
"enzyme-adapter-react-16": "^1.15.2",
"eslint": "^6.8.0",
"eslint-plugin-import": "~2.20.1",
"eslint-plugin-jsx-a11y": "~6.2.3",
"eslint-plugin-promise": "~4.2.1",
- "eslint-plugin-react": "~7.17.0",
- "jest": "^24.9.0",
+ "eslint-plugin-react": "~7.19.0",
+ "jest": "^25.4.0",
"raf": "^3.4.1",
"react-intl-translations-manager": "^5.0.3",
- "react-test-renderer": "^16.12.0",
+ "react-test-renderer": "^16.13.1",
"sass-lint": "^1.13.1",
- "webpack-dev-server": "^3.10.1",
- "yargs": "^15.1.0"
+ "webpack-dev-server": "^3.10.3",
+ "yargs": "^15.3.1"
+ },
+ "resolutions": {
+ "kind-of": "^6.0.3"
}
}
diff --git a/public/emoji/1f3c3-1f3fb.svg b/public/emoji/1f3c3-1f3fb.svg
index 604a0024c..c650508da 100644
--- a/public/emoji/1f3c3-1f3fb.svg
+++ b/public/emoji/1f3c3-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f3c3-1f3fc.svg b/public/emoji/1f3c3-1f3fc.svg
index f93e9dbfc..d207d92aa 100644
--- a/public/emoji/1f3c3-1f3fc.svg
+++ b/public/emoji/1f3c3-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f3c3-1f3fd.svg b/public/emoji/1f3c3-1f3fd.svg
index 847b7f6e0..54b5cbc81 100644
--- a/public/emoji/1f3c3-1f3fd.svg
+++ b/public/emoji/1f3c3-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f3c3-1f3fe.svg b/public/emoji/1f3c3-1f3fe.svg
index 51db6d67a..7012bb130 100644
--- a/public/emoji/1f3c3-1f3fe.svg
+++ b/public/emoji/1f3c3-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f3c3-1f3ff.svg b/public/emoji/1f3c3-1f3ff.svg
index 818897772..b45b1e012 100644
--- a/public/emoji/1f3c3-1f3ff.svg
+++ b/public/emoji/1f3c3-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f3c3.svg b/public/emoji/1f3c3.svg
index 42bc60109..a9658d691 100644
--- a/public/emoji/1f3c3.svg
+++ b/public/emoji/1f3c3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f3c4-1f3fb.svg b/public/emoji/1f3c4-1f3fb.svg
index e396618ff..600f4aeb2 100644
--- a/public/emoji/1f3c4-1f3fb.svg
+++ b/public/emoji/1f3c4-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f3c4-1f3fc.svg b/public/emoji/1f3c4-1f3fc.svg
index 228af26f8..42a5f1dee 100644
--- a/public/emoji/1f3c4-1f3fc.svg
+++ b/public/emoji/1f3c4-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f3c4-1f3fd.svg b/public/emoji/1f3c4-1f3fd.svg
index 521b554b6..0c13cab54 100644
--- a/public/emoji/1f3c4-1f3fd.svg
+++ b/public/emoji/1f3c4-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f3c4-1f3fe.svg b/public/emoji/1f3c4-1f3fe.svg
index 147c45aea..269f1737f 100644
--- a/public/emoji/1f3c4-1f3fe.svg
+++ b/public/emoji/1f3c4-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f3c4-1f3ff.svg b/public/emoji/1f3c4-1f3ff.svg
index 0e0ef2e9a..75cc51480 100644
--- a/public/emoji/1f3c4-1f3ff.svg
+++ b/public/emoji/1f3c4-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f3c4.svg b/public/emoji/1f3c4.svg
index 6da42a5c0..53b4ec65a 100644
--- a/public/emoji/1f3c4.svg
+++ b/public/emoji/1f3c4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f3ca-1f3fb.svg b/public/emoji/1f3ca-1f3fb.svg
index b3e345531..cb149c344 100644
--- a/public/emoji/1f3ca-1f3fb.svg
+++ b/public/emoji/1f3ca-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f3ca-1f3fc.svg b/public/emoji/1f3ca-1f3fc.svg
index 86eda1850..fd8f6f195 100644
--- a/public/emoji/1f3ca-1f3fc.svg
+++ b/public/emoji/1f3ca-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f3ca-1f3fd.svg b/public/emoji/1f3ca-1f3fd.svg
index bf9442202..36b89523d 100644
--- a/public/emoji/1f3ca-1f3fd.svg
+++ b/public/emoji/1f3ca-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f3ca-1f3fe.svg b/public/emoji/1f3ca-1f3fe.svg
index e320765ae..0c54d9938 100644
--- a/public/emoji/1f3ca-1f3fe.svg
+++ b/public/emoji/1f3ca-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f3ca-1f3ff.svg b/public/emoji/1f3ca-1f3ff.svg
index a25741c20..65dd7f379 100644
--- a/public/emoji/1f3ca-1f3ff.svg
+++ b/public/emoji/1f3ca-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f3ca.svg b/public/emoji/1f3ca.svg
index 12bad0643..490137695 100644
--- a/public/emoji/1f3ca.svg
+++ b/public/emoji/1f3ca.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f3cb-1f3fb.svg b/public/emoji/1f3cb-1f3fb.svg
index 1caeeb8f2..8bcc454f5 100644
--- a/public/emoji/1f3cb-1f3fb.svg
+++ b/public/emoji/1f3cb-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f3cb-1f3fc.svg b/public/emoji/1f3cb-1f3fc.svg
index 44953ab18..2898d555f 100644
--- a/public/emoji/1f3cb-1f3fc.svg
+++ b/public/emoji/1f3cb-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f3cb-1f3fd.svg b/public/emoji/1f3cb-1f3fd.svg
index 5401c2f65..6a8ede71a 100644
--- a/public/emoji/1f3cb-1f3fd.svg
+++ b/public/emoji/1f3cb-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f3cb-1f3fe.svg b/public/emoji/1f3cb-1f3fe.svg
index b5f19bf25..465f6c5b5 100644
--- a/public/emoji/1f3cb-1f3fe.svg
+++ b/public/emoji/1f3cb-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f3cb-1f3ff.svg b/public/emoji/1f3cb-1f3ff.svg
index 2cf83c479..a557ed47e 100644
--- a/public/emoji/1f3cb-1f3ff.svg
+++ b/public/emoji/1f3cb-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f3cb.svg b/public/emoji/1f3cb.svg
index f9bbcc92c..78e9c7a2a 100644
--- a/public/emoji/1f3cb.svg
+++ b/public/emoji/1f3cb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f3cc-1f3fb.svg b/public/emoji/1f3cc-1f3fb.svg
index f478ef136..105b62c6c 100644
--- a/public/emoji/1f3cc-1f3fb.svg
+++ b/public/emoji/1f3cc-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f3cc-1f3fc.svg b/public/emoji/1f3cc-1f3fc.svg
index 59373fd1f..e69be1394 100644
--- a/public/emoji/1f3cc-1f3fc.svg
+++ b/public/emoji/1f3cc-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f3cc-1f3fd.svg b/public/emoji/1f3cc-1f3fd.svg
index 6e67562b6..d938cd7e1 100644
--- a/public/emoji/1f3cc-1f3fd.svg
+++ b/public/emoji/1f3cc-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f3cc-1f3fe.svg b/public/emoji/1f3cc-1f3fe.svg
index 24031bbf7..28f9169cd 100644
--- a/public/emoji/1f3cc-1f3fe.svg
+++ b/public/emoji/1f3cc-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f3cc-1f3ff.svg b/public/emoji/1f3cc-1f3ff.svg
index 6c8ed88f3..916098194 100644
--- a/public/emoji/1f3cc-1f3ff.svg
+++ b/public/emoji/1f3cc-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f3cc.svg b/public/emoji/1f3cc.svg
index 1381d6d3c..6b973a285 100644
--- a/public/emoji/1f3cc.svg
+++ b/public/emoji/1f3cc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f468-1f3fb-200d-1f91d-200d-1f468-1f3fc.svg b/public/emoji/1f468-1f3fb-200d-1f91d-200d-1f468-1f3fc.svg
new file mode 100644
index 000000000..7ad1503aa
--- /dev/null
+++ b/public/emoji/1f468-1f3fb-200d-1f91d-200d-1f468-1f3fc.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f468-1f3fb-200d-1f91d-200d-1f468-1f3fd.svg b/public/emoji/1f468-1f3fb-200d-1f91d-200d-1f468-1f3fd.svg
new file mode 100644
index 000000000..a431a10cd
--- /dev/null
+++ b/public/emoji/1f468-1f3fb-200d-1f91d-200d-1f468-1f3fd.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f468-1f3fb-200d-1f91d-200d-1f468-1f3fe.svg b/public/emoji/1f468-1f3fb-200d-1f91d-200d-1f468-1f3fe.svg
new file mode 100644
index 000000000..26df52616
--- /dev/null
+++ b/public/emoji/1f468-1f3fb-200d-1f91d-200d-1f468-1f3fe.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f468-1f3fb-200d-1f91d-200d-1f468-1f3ff.svg b/public/emoji/1f468-1f3fb-200d-1f91d-200d-1f468-1f3ff.svg
new file mode 100644
index 000000000..aba57a36a
--- /dev/null
+++ b/public/emoji/1f468-1f3fb-200d-1f91d-200d-1f468-1f3ff.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f468-1f3fc-200d-1f91d-200d-1f468-1f3fb.svg b/public/emoji/1f468-1f3fc-200d-1f91d-200d-1f468-1f3fb.svg
index 447fd47bf..2c042889b 100644
--- a/public/emoji/1f468-1f3fc-200d-1f91d-200d-1f468-1f3fb.svg
+++ b/public/emoji/1f468-1f3fc-200d-1f91d-200d-1f468-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f468-1f3fc-200d-1f91d-200d-1f468-1f3fd.svg b/public/emoji/1f468-1f3fc-200d-1f91d-200d-1f468-1f3fd.svg
new file mode 100644
index 000000000..461f95d06
--- /dev/null
+++ b/public/emoji/1f468-1f3fc-200d-1f91d-200d-1f468-1f3fd.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f468-1f3fc-200d-1f91d-200d-1f468-1f3fe.svg b/public/emoji/1f468-1f3fc-200d-1f91d-200d-1f468-1f3fe.svg
new file mode 100644
index 000000000..50adc8b70
--- /dev/null
+++ b/public/emoji/1f468-1f3fc-200d-1f91d-200d-1f468-1f3fe.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f468-1f3fc-200d-1f91d-200d-1f468-1f3ff.svg b/public/emoji/1f468-1f3fc-200d-1f91d-200d-1f468-1f3ff.svg
new file mode 100644
index 000000000..fb82cc529
--- /dev/null
+++ b/public/emoji/1f468-1f3fc-200d-1f91d-200d-1f468-1f3ff.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f468-1f3fd-200d-1f91d-200d-1f468-1f3fb.svg b/public/emoji/1f468-1f3fd-200d-1f91d-200d-1f468-1f3fb.svg
index bb34ac855..c74eea4c2 100644
--- a/public/emoji/1f468-1f3fd-200d-1f91d-200d-1f468-1f3fb.svg
+++ b/public/emoji/1f468-1f3fd-200d-1f91d-200d-1f468-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f468-1f3fd-200d-1f91d-200d-1f468-1f3fc.svg b/public/emoji/1f468-1f3fd-200d-1f91d-200d-1f468-1f3fc.svg
index 4d6b0dd69..020e414ad 100644
--- a/public/emoji/1f468-1f3fd-200d-1f91d-200d-1f468-1f3fc.svg
+++ b/public/emoji/1f468-1f3fd-200d-1f91d-200d-1f468-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f468-1f3fd-200d-1f91d-200d-1f468-1f3fe.svg b/public/emoji/1f468-1f3fd-200d-1f91d-200d-1f468-1f3fe.svg
new file mode 100644
index 000000000..f9acaa59c
--- /dev/null
+++ b/public/emoji/1f468-1f3fd-200d-1f91d-200d-1f468-1f3fe.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f468-1f3fd-200d-1f91d-200d-1f468-1f3ff.svg b/public/emoji/1f468-1f3fd-200d-1f91d-200d-1f468-1f3ff.svg
new file mode 100644
index 000000000..6ebf806e6
--- /dev/null
+++ b/public/emoji/1f468-1f3fd-200d-1f91d-200d-1f468-1f3ff.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f468-1f3fe-200d-1f91d-200d-1f468-1f3fb.svg b/public/emoji/1f468-1f3fe-200d-1f91d-200d-1f468-1f3fb.svg
index 7c7ecbf2c..6f6162c3a 100644
--- a/public/emoji/1f468-1f3fe-200d-1f91d-200d-1f468-1f3fb.svg
+++ b/public/emoji/1f468-1f3fe-200d-1f91d-200d-1f468-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f468-1f3fe-200d-1f91d-200d-1f468-1f3fc.svg b/public/emoji/1f468-1f3fe-200d-1f91d-200d-1f468-1f3fc.svg
index bbe83212d..92f56c75a 100644
--- a/public/emoji/1f468-1f3fe-200d-1f91d-200d-1f468-1f3fc.svg
+++ b/public/emoji/1f468-1f3fe-200d-1f91d-200d-1f468-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f468-1f3fe-200d-1f91d-200d-1f468-1f3fd.svg b/public/emoji/1f468-1f3fe-200d-1f91d-200d-1f468-1f3fd.svg
index 99a2b33d3..064e44b43 100644
--- a/public/emoji/1f468-1f3fe-200d-1f91d-200d-1f468-1f3fd.svg
+++ b/public/emoji/1f468-1f3fe-200d-1f91d-200d-1f468-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f468-1f3fe-200d-1f91d-200d-1f468-1f3ff.svg b/public/emoji/1f468-1f3fe-200d-1f91d-200d-1f468-1f3ff.svg
new file mode 100644
index 000000000..58212d4f8
--- /dev/null
+++ b/public/emoji/1f468-1f3fe-200d-1f91d-200d-1f468-1f3ff.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fb.svg b/public/emoji/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fb.svg
index b2383477f..e83c662e2 100644
--- a/public/emoji/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fb.svg
+++ b/public/emoji/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fc.svg b/public/emoji/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fc.svg
index a7f8308d1..bee8dd51c 100644
--- a/public/emoji/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fc.svg
+++ b/public/emoji/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fd.svg b/public/emoji/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fd.svg
index e9fc548f6..66591e149 100644
--- a/public/emoji/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fd.svg
+++ b/public/emoji/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fe.svg b/public/emoji/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fe.svg
index f55ff86f9..33856b497 100644
--- a/public/emoji/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fe.svg
+++ b/public/emoji/1f468-1f3ff-200d-1f91d-200d-1f468-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fb-200d-1f91d-200d-1f468-1f3fc.svg b/public/emoji/1f469-1f3fb-200d-1f91d-200d-1f468-1f3fc.svg
index c0a072e2f..688ddedc1 100644
--- a/public/emoji/1f469-1f3fb-200d-1f91d-200d-1f468-1f3fc.svg
+++ b/public/emoji/1f469-1f3fb-200d-1f91d-200d-1f468-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fb-200d-1f91d-200d-1f468-1f3fd.svg b/public/emoji/1f469-1f3fb-200d-1f91d-200d-1f468-1f3fd.svg
index fa124a7f9..a33c2de59 100644
--- a/public/emoji/1f469-1f3fb-200d-1f91d-200d-1f468-1f3fd.svg
+++ b/public/emoji/1f469-1f3fb-200d-1f91d-200d-1f468-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fb-200d-1f91d-200d-1f468-1f3fe.svg b/public/emoji/1f469-1f3fb-200d-1f91d-200d-1f468-1f3fe.svg
index 97533c42d..3686c1862 100644
--- a/public/emoji/1f469-1f3fb-200d-1f91d-200d-1f468-1f3fe.svg
+++ b/public/emoji/1f469-1f3fb-200d-1f91d-200d-1f468-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fb-200d-1f91d-200d-1f468-1f3ff.svg b/public/emoji/1f469-1f3fb-200d-1f91d-200d-1f468-1f3ff.svg
index 8d03f30f0..1180b222d 100644
--- a/public/emoji/1f469-1f3fb-200d-1f91d-200d-1f468-1f3ff.svg
+++ b/public/emoji/1f469-1f3fb-200d-1f91d-200d-1f468-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fb-200d-1f91d-200d-1f469-1f3fc.svg b/public/emoji/1f469-1f3fb-200d-1f91d-200d-1f469-1f3fc.svg
new file mode 100644
index 000000000..6bab40c30
--- /dev/null
+++ b/public/emoji/1f469-1f3fb-200d-1f91d-200d-1f469-1f3fc.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fb-200d-1f91d-200d-1f469-1f3fd.svg b/public/emoji/1f469-1f3fb-200d-1f91d-200d-1f469-1f3fd.svg
new file mode 100644
index 000000000..a6584189b
--- /dev/null
+++ b/public/emoji/1f469-1f3fb-200d-1f91d-200d-1f469-1f3fd.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fb-200d-1f91d-200d-1f469-1f3fe.svg b/public/emoji/1f469-1f3fb-200d-1f91d-200d-1f469-1f3fe.svg
new file mode 100644
index 000000000..85afc9277
--- /dev/null
+++ b/public/emoji/1f469-1f3fb-200d-1f91d-200d-1f469-1f3fe.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fb-200d-1f91d-200d-1f469-1f3ff.svg b/public/emoji/1f469-1f3fb-200d-1f91d-200d-1f469-1f3ff.svg
new file mode 100644
index 000000000..43ce3ec24
--- /dev/null
+++ b/public/emoji/1f469-1f3fb-200d-1f91d-200d-1f469-1f3ff.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fc-200d-1f91d-200d-1f468-1f3fb.svg b/public/emoji/1f469-1f3fc-200d-1f91d-200d-1f468-1f3fb.svg
index 53e58734c..9c9e08c1c 100644
--- a/public/emoji/1f469-1f3fc-200d-1f91d-200d-1f468-1f3fb.svg
+++ b/public/emoji/1f469-1f3fc-200d-1f91d-200d-1f468-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fc-200d-1f91d-200d-1f468-1f3fd.svg b/public/emoji/1f469-1f3fc-200d-1f91d-200d-1f468-1f3fd.svg
index 16f795307..a4220c37c 100644
--- a/public/emoji/1f469-1f3fc-200d-1f91d-200d-1f468-1f3fd.svg
+++ b/public/emoji/1f469-1f3fc-200d-1f91d-200d-1f468-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fc-200d-1f91d-200d-1f468-1f3fe.svg b/public/emoji/1f469-1f3fc-200d-1f91d-200d-1f468-1f3fe.svg
index 47dd9158e..bc5805af7 100644
--- a/public/emoji/1f469-1f3fc-200d-1f91d-200d-1f468-1f3fe.svg
+++ b/public/emoji/1f469-1f3fc-200d-1f91d-200d-1f468-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fc-200d-1f91d-200d-1f468-1f3ff.svg b/public/emoji/1f469-1f3fc-200d-1f91d-200d-1f468-1f3ff.svg
index 2cdda31da..d96d1d937 100644
--- a/public/emoji/1f469-1f3fc-200d-1f91d-200d-1f468-1f3ff.svg
+++ b/public/emoji/1f469-1f3fc-200d-1f91d-200d-1f468-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fc-200d-1f91d-200d-1f469-1f3fb.svg b/public/emoji/1f469-1f3fc-200d-1f91d-200d-1f469-1f3fb.svg
index 0939b16d8..cc7111d19 100644
--- a/public/emoji/1f469-1f3fc-200d-1f91d-200d-1f469-1f3fb.svg
+++ b/public/emoji/1f469-1f3fc-200d-1f91d-200d-1f469-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fc-200d-1f91d-200d-1f469-1f3fd.svg b/public/emoji/1f469-1f3fc-200d-1f91d-200d-1f469-1f3fd.svg
new file mode 100644
index 000000000..6c9f81a9e
--- /dev/null
+++ b/public/emoji/1f469-1f3fc-200d-1f91d-200d-1f469-1f3fd.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fc-200d-1f91d-200d-1f469-1f3fe.svg b/public/emoji/1f469-1f3fc-200d-1f91d-200d-1f469-1f3fe.svg
new file mode 100644
index 000000000..e00c758e9
--- /dev/null
+++ b/public/emoji/1f469-1f3fc-200d-1f91d-200d-1f469-1f3fe.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fc-200d-1f91d-200d-1f469-1f3ff.svg b/public/emoji/1f469-1f3fc-200d-1f91d-200d-1f469-1f3ff.svg
new file mode 100644
index 000000000..61833c8ea
--- /dev/null
+++ b/public/emoji/1f469-1f3fc-200d-1f91d-200d-1f469-1f3ff.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fd-200d-1f91d-200d-1f468-1f3fb.svg b/public/emoji/1f469-1f3fd-200d-1f91d-200d-1f468-1f3fb.svg
index adf04f14e..973ae2eea 100644
--- a/public/emoji/1f469-1f3fd-200d-1f91d-200d-1f468-1f3fb.svg
+++ b/public/emoji/1f469-1f3fd-200d-1f91d-200d-1f468-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fd-200d-1f91d-200d-1f468-1f3fc.svg b/public/emoji/1f469-1f3fd-200d-1f91d-200d-1f468-1f3fc.svg
index 724aede5b..6c651ec22 100644
--- a/public/emoji/1f469-1f3fd-200d-1f91d-200d-1f468-1f3fc.svg
+++ b/public/emoji/1f469-1f3fd-200d-1f91d-200d-1f468-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fd-200d-1f91d-200d-1f468-1f3fe.svg b/public/emoji/1f469-1f3fd-200d-1f91d-200d-1f468-1f3fe.svg
index 6ab1b4275..743c16420 100644
--- a/public/emoji/1f469-1f3fd-200d-1f91d-200d-1f468-1f3fe.svg
+++ b/public/emoji/1f469-1f3fd-200d-1f91d-200d-1f468-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fd-200d-1f91d-200d-1f468-1f3ff.svg b/public/emoji/1f469-1f3fd-200d-1f91d-200d-1f468-1f3ff.svg
index edfadd095..d6444e8c6 100644
--- a/public/emoji/1f469-1f3fd-200d-1f91d-200d-1f468-1f3ff.svg
+++ b/public/emoji/1f469-1f3fd-200d-1f91d-200d-1f468-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fd-200d-1f91d-200d-1f469-1f3fb.svg b/public/emoji/1f469-1f3fd-200d-1f91d-200d-1f469-1f3fb.svg
index 6a909b143..ce6b91c6e 100644
--- a/public/emoji/1f469-1f3fd-200d-1f91d-200d-1f469-1f3fb.svg
+++ b/public/emoji/1f469-1f3fd-200d-1f91d-200d-1f469-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fd-200d-1f91d-200d-1f469-1f3fc.svg b/public/emoji/1f469-1f3fd-200d-1f91d-200d-1f469-1f3fc.svg
index 9ec331669..8fd0c0be2 100644
--- a/public/emoji/1f469-1f3fd-200d-1f91d-200d-1f469-1f3fc.svg
+++ b/public/emoji/1f469-1f3fd-200d-1f91d-200d-1f469-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fd-200d-1f91d-200d-1f469-1f3fe.svg b/public/emoji/1f469-1f3fd-200d-1f91d-200d-1f469-1f3fe.svg
new file mode 100644
index 000000000..c26f66976
--- /dev/null
+++ b/public/emoji/1f469-1f3fd-200d-1f91d-200d-1f469-1f3fe.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fd-200d-1f91d-200d-1f469-1f3ff.svg b/public/emoji/1f469-1f3fd-200d-1f91d-200d-1f469-1f3ff.svg
new file mode 100644
index 000000000..e2176e4dc
--- /dev/null
+++ b/public/emoji/1f469-1f3fd-200d-1f91d-200d-1f469-1f3ff.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f468-1f3fb.svg b/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f468-1f3fb.svg
index c14a8e794..6a6824ec5 100644
--- a/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f468-1f3fb.svg
+++ b/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f468-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f468-1f3fc.svg b/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f468-1f3fc.svg
index dff165ed5..59e3f287c 100644
--- a/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f468-1f3fc.svg
+++ b/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f468-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f468-1f3fd.svg b/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f468-1f3fd.svg
index 19a8dab4c..2550de8b0 100644
--- a/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f468-1f3fd.svg
+++ b/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f468-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f468-1f3ff.svg b/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f468-1f3ff.svg
index 6040c7be6..c43d096ae 100644
--- a/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f468-1f3ff.svg
+++ b/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f468-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f469-1f3fb.svg b/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f469-1f3fb.svg
index 77a4bce68..ddce0b449 100644
--- a/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f469-1f3fb.svg
+++ b/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f469-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f469-1f3fc.svg b/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f469-1f3fc.svg
index c30ccdf21..7a12304c8 100644
--- a/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f469-1f3fc.svg
+++ b/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f469-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f469-1f3fd.svg b/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f469-1f3fd.svg
index aa913dc93..09b01755c 100644
--- a/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f469-1f3fd.svg
+++ b/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f469-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f469-1f3ff.svg b/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f469-1f3ff.svg
new file mode 100644
index 000000000..dd4f20eb7
--- /dev/null
+++ b/public/emoji/1f469-1f3fe-200d-1f91d-200d-1f469-1f3ff.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fb.svg b/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fb.svg
index cbcfecadc..8932b8cdf 100644
--- a/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fb.svg
+++ b/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fc.svg b/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fc.svg
index fce4c9184..cf102b7c1 100644
--- a/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fc.svg
+++ b/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fd.svg b/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fd.svg
index 84e2b2bd8..7e8c4130b 100644
--- a/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fd.svg
+++ b/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fe.svg b/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fe.svg
index d0ba4cd18..bcd04bf7f 100644
--- a/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fe.svg
+++ b/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f468-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fb.svg b/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fb.svg
index bfbb93bbf..1128ecfa9 100644
--- a/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fb.svg
+++ b/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fc.svg b/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fc.svg
index 36dec9257..3200168e6 100644
--- a/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fc.svg
+++ b/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fd.svg b/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fd.svg
index f18bc69bc..9212f3c4b 100644
--- a/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fd.svg
+++ b/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fe.svg b/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fe.svg
index ac2fe9944..ff7c90116 100644
--- a/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fe.svg
+++ b/public/emoji/1f469-1f3ff-200d-1f91d-200d-1f469-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f46a.svg b/public/emoji/1f46a.svg
index 8f5fad9f5..945b1a840 100644
--- a/public/emoji/1f46a.svg
+++ b/public/emoji/1f46a.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f46b-1f3fb.svg b/public/emoji/1f46b-1f3fb.svg
index 5fedd969b..2cc10f953 100644
--- a/public/emoji/1f46b-1f3fb.svg
+++ b/public/emoji/1f46b-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f46b-1f3fc.svg b/public/emoji/1f46b-1f3fc.svg
index d5be6fe59..894d7220f 100644
--- a/public/emoji/1f46b-1f3fc.svg
+++ b/public/emoji/1f46b-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f46b-1f3fd.svg b/public/emoji/1f46b-1f3fd.svg
index 15c9bdfed..4496ef511 100644
--- a/public/emoji/1f46b-1f3fd.svg
+++ b/public/emoji/1f46b-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f46b-1f3fe.svg b/public/emoji/1f46b-1f3fe.svg
index 54c46de87..25cbd9950 100644
--- a/public/emoji/1f46b-1f3fe.svg
+++ b/public/emoji/1f46b-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f46b-1f3ff.svg b/public/emoji/1f46b-1f3ff.svg
index e0cb1e2bb..f4be2772c 100644
--- a/public/emoji/1f46b-1f3ff.svg
+++ b/public/emoji/1f46b-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f46b.svg b/public/emoji/1f46b.svg
index f7e46f210..59ca8c08d 100644
--- a/public/emoji/1f46b.svg
+++ b/public/emoji/1f46b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f46c-1f3fb.svg b/public/emoji/1f46c-1f3fb.svg
index 18c40167f..2050ca351 100644
--- a/public/emoji/1f46c-1f3fb.svg
+++ b/public/emoji/1f46c-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f46c-1f3fc.svg b/public/emoji/1f46c-1f3fc.svg
index c7665eaf9..057010838 100644
--- a/public/emoji/1f46c-1f3fc.svg
+++ b/public/emoji/1f46c-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f46c-1f3fd.svg b/public/emoji/1f46c-1f3fd.svg
index adf95058f..b00c6be06 100644
--- a/public/emoji/1f46c-1f3fd.svg
+++ b/public/emoji/1f46c-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f46c-1f3fe.svg b/public/emoji/1f46c-1f3fe.svg
index 484683659..58302a872 100644
--- a/public/emoji/1f46c-1f3fe.svg
+++ b/public/emoji/1f46c-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f46c-1f3ff.svg b/public/emoji/1f46c-1f3ff.svg
index f6fc11202..c7dddadf4 100644
--- a/public/emoji/1f46c-1f3ff.svg
+++ b/public/emoji/1f46c-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f46c.svg b/public/emoji/1f46c.svg
index 0aa9dcb33..87280c143 100644
--- a/public/emoji/1f46c.svg
+++ b/public/emoji/1f46c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f46d-1f3fb.svg b/public/emoji/1f46d-1f3fb.svg
index 8bc44aae2..e3e1a4a52 100644
--- a/public/emoji/1f46d-1f3fb.svg
+++ b/public/emoji/1f46d-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f46d-1f3fc.svg b/public/emoji/1f46d-1f3fc.svg
index 555fcbb5b..782875a05 100644
--- a/public/emoji/1f46d-1f3fc.svg
+++ b/public/emoji/1f46d-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f46d-1f3fd.svg b/public/emoji/1f46d-1f3fd.svg
index 5db65de5a..f69bbc06e 100644
--- a/public/emoji/1f46d-1f3fd.svg
+++ b/public/emoji/1f46d-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f46d-1f3fe.svg b/public/emoji/1f46d-1f3fe.svg
index d122ab64f..f14ac947b 100644
--- a/public/emoji/1f46d-1f3fe.svg
+++ b/public/emoji/1f46d-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f46d-1f3ff.svg b/public/emoji/1f46d-1f3ff.svg
index 5f292d55d..d8e8432d2 100644
--- a/public/emoji/1f46d-1f3ff.svg
+++ b/public/emoji/1f46d-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f46d.svg b/public/emoji/1f46d.svg
index 8f8ea9cfb..91a55c385 100644
--- a/public/emoji/1f46d.svg
+++ b/public/emoji/1f46d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f46e-1f3fb.svg b/public/emoji/1f46e-1f3fb.svg
index 25c4c81c3..a7041d070 100644
--- a/public/emoji/1f46e-1f3fb.svg
+++ b/public/emoji/1f46e-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f46e-1f3fc.svg b/public/emoji/1f46e-1f3fc.svg
index b2c47839d..18883fa74 100644
--- a/public/emoji/1f46e-1f3fc.svg
+++ b/public/emoji/1f46e-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f46e-1f3fd.svg b/public/emoji/1f46e-1f3fd.svg
index 7e5e4b5d3..333abdab6 100644
--- a/public/emoji/1f46e-1f3fd.svg
+++ b/public/emoji/1f46e-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f46e-1f3fe.svg b/public/emoji/1f46e-1f3fe.svg
index e817083a5..cfd4fcda7 100644
--- a/public/emoji/1f46e-1f3fe.svg
+++ b/public/emoji/1f46e-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f46e-1f3ff.svg b/public/emoji/1f46e-1f3ff.svg
index 440cb510f..339c56b91 100644
--- a/public/emoji/1f46e-1f3ff.svg
+++ b/public/emoji/1f46e-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f46e.svg b/public/emoji/1f46e.svg
index 2974c9847..feaeb0b95 100644
--- a/public/emoji/1f46e.svg
+++ b/public/emoji/1f46e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f46f-200d-2640-fe0f.svg b/public/emoji/1f46f-200d-2640-fe0f.svg
index 6559253b8..7c7fe7df4 100644
--- a/public/emoji/1f46f-200d-2640-fe0f.svg
+++ b/public/emoji/1f46f-200d-2640-fe0f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f46f-200d-2642-fe0f.svg b/public/emoji/1f46f-200d-2642-fe0f.svg
index 04254cd99..13717aacc 100644
--- a/public/emoji/1f46f-200d-2642-fe0f.svg
+++ b/public/emoji/1f46f-200d-2642-fe0f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f46f.svg b/public/emoji/1f46f.svg
index 6559253b8..062ff266d 100644
--- a/public/emoji/1f46f.svg
+++ b/public/emoji/1f46f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f471-1f3fb.svg b/public/emoji/1f471-1f3fb.svg
index 8a5a32993..2bbee7295 100644
--- a/public/emoji/1f471-1f3fb.svg
+++ b/public/emoji/1f471-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f471-1f3fc.svg b/public/emoji/1f471-1f3fc.svg
index 8455a9edd..9030253ec 100644
--- a/public/emoji/1f471-1f3fc.svg
+++ b/public/emoji/1f471-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f471-1f3fd.svg b/public/emoji/1f471-1f3fd.svg
index 4332b5b13..52d178ff3 100644
--- a/public/emoji/1f471-1f3fd.svg
+++ b/public/emoji/1f471-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f471-1f3fe.svg b/public/emoji/1f471-1f3fe.svg
index c8461a985..5fbbad14a 100644
--- a/public/emoji/1f471-1f3fe.svg
+++ b/public/emoji/1f471-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f471-1f3ff.svg b/public/emoji/1f471-1f3ff.svg
index f91a87fef..323178b92 100644
--- a/public/emoji/1f471-1f3ff.svg
+++ b/public/emoji/1f471-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f471.svg b/public/emoji/1f471.svg
index f73f9f5bb..b524f21e3 100644
--- a/public/emoji/1f471.svg
+++ b/public/emoji/1f471.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f473-1f3fb.svg b/public/emoji/1f473-1f3fb.svg
index bb59f1199..060fcd514 100644
--- a/public/emoji/1f473-1f3fb.svg
+++ b/public/emoji/1f473-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f473-1f3fc.svg b/public/emoji/1f473-1f3fc.svg
index 3e748c39b..3ad2dd13f 100644
--- a/public/emoji/1f473-1f3fc.svg
+++ b/public/emoji/1f473-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f473-1f3fd.svg b/public/emoji/1f473-1f3fd.svg
index 2373c1dc7..6f11f5334 100644
--- a/public/emoji/1f473-1f3fd.svg
+++ b/public/emoji/1f473-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f473-1f3fe.svg b/public/emoji/1f473-1f3fe.svg
index bc680e6dc..165a9750a 100644
--- a/public/emoji/1f473-1f3fe.svg
+++ b/public/emoji/1f473-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f473-1f3ff.svg b/public/emoji/1f473-1f3ff.svg
index 6f0f3c59f..74fc855ec 100644
--- a/public/emoji/1f473-1f3ff.svg
+++ b/public/emoji/1f473-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f473.svg b/public/emoji/1f473.svg
index 5ef43d40a..216ebcc30 100644
--- a/public/emoji/1f473.svg
+++ b/public/emoji/1f473.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f477-1f3fb.svg b/public/emoji/1f477-1f3fb.svg
index bbe5b3aab..cfc256540 100644
--- a/public/emoji/1f477-1f3fb.svg
+++ b/public/emoji/1f477-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f477-1f3fc.svg b/public/emoji/1f477-1f3fc.svg
index de9673175..e19ba61b0 100644
--- a/public/emoji/1f477-1f3fc.svg
+++ b/public/emoji/1f477-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f477-1f3fd.svg b/public/emoji/1f477-1f3fd.svg
index a7c900da6..59ca2e2b1 100644
--- a/public/emoji/1f477-1f3fd.svg
+++ b/public/emoji/1f477-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f477-1f3fe.svg b/public/emoji/1f477-1f3fe.svg
index 4fa4d68c8..a090efe5e 100644
--- a/public/emoji/1f477-1f3fe.svg
+++ b/public/emoji/1f477-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f477-1f3ff.svg b/public/emoji/1f477-1f3ff.svg
index a49432184..2838ca153 100644
--- a/public/emoji/1f477-1f3ff.svg
+++ b/public/emoji/1f477-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f477.svg b/public/emoji/1f477.svg
index d1e6b36d4..5843060c4 100644
--- a/public/emoji/1f477.svg
+++ b/public/emoji/1f477.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f481-1f3fb.svg b/public/emoji/1f481-1f3fb.svg
index c3f18727d..b8c32493f 100644
--- a/public/emoji/1f481-1f3fb.svg
+++ b/public/emoji/1f481-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f481-1f3fc.svg b/public/emoji/1f481-1f3fc.svg
index c3e88dcd5..ec37e7d5f 100644
--- a/public/emoji/1f481-1f3fc.svg
+++ b/public/emoji/1f481-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f481-1f3fd.svg b/public/emoji/1f481-1f3fd.svg
index 8b53b3006..793093f45 100644
--- a/public/emoji/1f481-1f3fd.svg
+++ b/public/emoji/1f481-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f481-1f3fe.svg b/public/emoji/1f481-1f3fe.svg
index 11e4e8320..65df7b421 100644
--- a/public/emoji/1f481-1f3fe.svg
+++ b/public/emoji/1f481-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f481-1f3ff.svg b/public/emoji/1f481-1f3ff.svg
index e55c1eddf..9d3ea6cfe 100644
--- a/public/emoji/1f481-1f3ff.svg
+++ b/public/emoji/1f481-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f481.svg b/public/emoji/1f481.svg
index 7a4864fde..eeffd85d0 100644
--- a/public/emoji/1f481.svg
+++ b/public/emoji/1f481.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f482-1f3fb.svg b/public/emoji/1f482-1f3fb.svg
index c15d824fb..3f7f82f6d 100644
--- a/public/emoji/1f482-1f3fb.svg
+++ b/public/emoji/1f482-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f482-1f3fc.svg b/public/emoji/1f482-1f3fc.svg
index 1e6689e48..2dc74688f 100644
--- a/public/emoji/1f482-1f3fc.svg
+++ b/public/emoji/1f482-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f482-1f3fd.svg b/public/emoji/1f482-1f3fd.svg
index 268da5487..96779eeb0 100644
--- a/public/emoji/1f482-1f3fd.svg
+++ b/public/emoji/1f482-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f482-1f3fe.svg b/public/emoji/1f482-1f3fe.svg
index 88b6c0f84..2493a1399 100644
--- a/public/emoji/1f482-1f3fe.svg
+++ b/public/emoji/1f482-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f482-1f3ff.svg b/public/emoji/1f482-1f3ff.svg
index 831d1986e..40b130b5c 100644
--- a/public/emoji/1f482-1f3ff.svg
+++ b/public/emoji/1f482-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f482.svg b/public/emoji/1f482.svg
index e8998c599..d809a9f71 100644
--- a/public/emoji/1f482.svg
+++ b/public/emoji/1f482.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f486-1f3fb.svg b/public/emoji/1f486-1f3fb.svg
index 28d27e296..3e6ec649b 100644
--- a/public/emoji/1f486-1f3fb.svg
+++ b/public/emoji/1f486-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f486-1f3fc.svg b/public/emoji/1f486-1f3fc.svg
index dad79ad13..6c9d96ced 100644
--- a/public/emoji/1f486-1f3fc.svg
+++ b/public/emoji/1f486-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f486-1f3fd.svg b/public/emoji/1f486-1f3fd.svg
index 407d11b37..82205d5a9 100644
--- a/public/emoji/1f486-1f3fd.svg
+++ b/public/emoji/1f486-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f486-1f3fe.svg b/public/emoji/1f486-1f3fe.svg
index defbf61f6..923f580d4 100644
--- a/public/emoji/1f486-1f3fe.svg
+++ b/public/emoji/1f486-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f486-1f3ff.svg b/public/emoji/1f486-1f3ff.svg
index 793967fdb..c03123b29 100644
--- a/public/emoji/1f486-1f3ff.svg
+++ b/public/emoji/1f486-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f486.svg b/public/emoji/1f486.svg
index 4ff1d7a63..57e358840 100644
--- a/public/emoji/1f486.svg
+++ b/public/emoji/1f486.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f487-1f3fb.svg b/public/emoji/1f487-1f3fb.svg
index 3d2a27c64..acafd9bb2 100644
--- a/public/emoji/1f487-1f3fb.svg
+++ b/public/emoji/1f487-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f487-1f3fc.svg b/public/emoji/1f487-1f3fc.svg
index fc1565368..e3665ec1c 100644
--- a/public/emoji/1f487-1f3fc.svg
+++ b/public/emoji/1f487-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f487-1f3fd.svg b/public/emoji/1f487-1f3fd.svg
index c2d9ec711..45bb2f1ad 100644
--- a/public/emoji/1f487-1f3fd.svg
+++ b/public/emoji/1f487-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f487-1f3fe.svg b/public/emoji/1f487-1f3fe.svg
index ed2374cf3..39623cc05 100644
--- a/public/emoji/1f487-1f3fe.svg
+++ b/public/emoji/1f487-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f487-1f3ff.svg b/public/emoji/1f487-1f3ff.svg
index b8b4754c0..1840045c3 100644
--- a/public/emoji/1f487-1f3ff.svg
+++ b/public/emoji/1f487-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f487.svg b/public/emoji/1f487.svg
index 8bfab8018..1957fa0f1 100644
--- a/public/emoji/1f487.svg
+++ b/public/emoji/1f487.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f48f.svg b/public/emoji/1f48f.svg
index 8248ed607..69cec3c60 100644
--- a/public/emoji/1f48f.svg
+++ b/public/emoji/1f48f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f574-1f3fb.svg b/public/emoji/1f574-1f3fb.svg
index 97bc7b5a5..dda8bd696 100644
--- a/public/emoji/1f574-1f3fb.svg
+++ b/public/emoji/1f574-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f574-1f3fc.svg b/public/emoji/1f574-1f3fc.svg
index 27c10f151..ba0b1252e 100644
--- a/public/emoji/1f574-1f3fc.svg
+++ b/public/emoji/1f574-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f574-1f3fd.svg b/public/emoji/1f574-1f3fd.svg
index 4e980b002..a06a09df4 100644
--- a/public/emoji/1f574-1f3fd.svg
+++ b/public/emoji/1f574-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f574-1f3fe.svg b/public/emoji/1f574-1f3fe.svg
index 88a306164..2dde9ec80 100644
--- a/public/emoji/1f574-1f3fe.svg
+++ b/public/emoji/1f574-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f574-1f3ff.svg b/public/emoji/1f574-1f3ff.svg
index 57aec606d..31c17327a 100644
--- a/public/emoji/1f574-1f3ff.svg
+++ b/public/emoji/1f574-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f574.svg b/public/emoji/1f574.svg
index a834fd4b9..d363425a9 100644
--- a/public/emoji/1f574.svg
+++ b/public/emoji/1f574.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f575-1f3fb.svg b/public/emoji/1f575-1f3fb.svg
index fd521e254..a27829939 100644
--- a/public/emoji/1f575-1f3fb.svg
+++ b/public/emoji/1f575-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f575-1f3fc.svg b/public/emoji/1f575-1f3fc.svg
index fdb8cd5bf..0c94590fa 100644
--- a/public/emoji/1f575-1f3fc.svg
+++ b/public/emoji/1f575-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f575-1f3fd.svg b/public/emoji/1f575-1f3fd.svg
index 474f2535a..9350bd1c9 100644
--- a/public/emoji/1f575-1f3fd.svg
+++ b/public/emoji/1f575-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f575-1f3fe.svg b/public/emoji/1f575-1f3fe.svg
index 3367897ac..5455c07a3 100644
--- a/public/emoji/1f575-1f3fe.svg
+++ b/public/emoji/1f575-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f575-1f3ff.svg b/public/emoji/1f575-1f3ff.svg
index eb25e6448..0302169f4 100644
--- a/public/emoji/1f575-1f3ff.svg
+++ b/public/emoji/1f575-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f575.svg b/public/emoji/1f575.svg
index bba4b9437..e82b8d9e2 100644
--- a/public/emoji/1f575.svg
+++ b/public/emoji/1f575.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f645-1f3fb.svg b/public/emoji/1f645-1f3fb.svg
index d3d6161f2..9c977a2ae 100644
--- a/public/emoji/1f645-1f3fb.svg
+++ b/public/emoji/1f645-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f645-1f3fc.svg b/public/emoji/1f645-1f3fc.svg
index 061e83da3..1b50a9c77 100644
--- a/public/emoji/1f645-1f3fc.svg
+++ b/public/emoji/1f645-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f645-1f3fd.svg b/public/emoji/1f645-1f3fd.svg
index 3ba6194b5..03a708594 100644
--- a/public/emoji/1f645-1f3fd.svg
+++ b/public/emoji/1f645-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f645-1f3fe.svg b/public/emoji/1f645-1f3fe.svg
index 5eacdc63d..1424c968d 100644
--- a/public/emoji/1f645-1f3fe.svg
+++ b/public/emoji/1f645-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f645-1f3ff.svg b/public/emoji/1f645-1f3ff.svg
index e38dfd1cd..5b3bf34fe 100644
--- a/public/emoji/1f645-1f3ff.svg
+++ b/public/emoji/1f645-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f645.svg b/public/emoji/1f645.svg
index 2e47b6710..d3d98541e 100644
--- a/public/emoji/1f645.svg
+++ b/public/emoji/1f645.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f646-1f3fb.svg b/public/emoji/1f646-1f3fb.svg
index 6e78c309c..acc932df1 100644
--- a/public/emoji/1f646-1f3fb.svg
+++ b/public/emoji/1f646-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f646-1f3fc.svg b/public/emoji/1f646-1f3fc.svg
index 439f4d81f..ec60afebf 100644
--- a/public/emoji/1f646-1f3fc.svg
+++ b/public/emoji/1f646-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f646-1f3fd.svg b/public/emoji/1f646-1f3fd.svg
index e5b1aea51..0eb04e91c 100644
--- a/public/emoji/1f646-1f3fd.svg
+++ b/public/emoji/1f646-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f646-1f3fe.svg b/public/emoji/1f646-1f3fe.svg
index b041dc167..05a8ebf39 100644
--- a/public/emoji/1f646-1f3fe.svg
+++ b/public/emoji/1f646-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f646-1f3ff.svg b/public/emoji/1f646-1f3ff.svg
index 66d5bd09f..70e7bb822 100644
--- a/public/emoji/1f646-1f3ff.svg
+++ b/public/emoji/1f646-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f646.svg b/public/emoji/1f646.svg
index ccdb92a45..351e8d888 100644
--- a/public/emoji/1f646.svg
+++ b/public/emoji/1f646.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f647-1f3fb.svg b/public/emoji/1f647-1f3fb.svg
index 339010951..f16e19bb0 100644
--- a/public/emoji/1f647-1f3fb.svg
+++ b/public/emoji/1f647-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f647-1f3fc.svg b/public/emoji/1f647-1f3fc.svg
index 93d418cd2..d0f9cf9d0 100644
--- a/public/emoji/1f647-1f3fc.svg
+++ b/public/emoji/1f647-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f647-1f3fd.svg b/public/emoji/1f647-1f3fd.svg
index abd06691a..83ba2f6cc 100644
--- a/public/emoji/1f647-1f3fd.svg
+++ b/public/emoji/1f647-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f647-1f3fe.svg b/public/emoji/1f647-1f3fe.svg
index 3f55ae820..2eeb5c5c9 100644
--- a/public/emoji/1f647-1f3fe.svg
+++ b/public/emoji/1f647-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f647-1f3ff.svg b/public/emoji/1f647-1f3ff.svg
index 1ea343bb1..768d9ea9e 100644
--- a/public/emoji/1f647-1f3ff.svg
+++ b/public/emoji/1f647-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f647.svg b/public/emoji/1f647.svg
index 7462b006b..7ad69e9bf 100644
--- a/public/emoji/1f647.svg
+++ b/public/emoji/1f647.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f64b-1f3fb.svg b/public/emoji/1f64b-1f3fb.svg
index f10a7ef71..4da55e824 100644
--- a/public/emoji/1f64b-1f3fb.svg
+++ b/public/emoji/1f64b-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f64b-1f3fc.svg b/public/emoji/1f64b-1f3fc.svg
index 34b2d325b..4ead58191 100644
--- a/public/emoji/1f64b-1f3fc.svg
+++ b/public/emoji/1f64b-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f64b-1f3fd.svg b/public/emoji/1f64b-1f3fd.svg
index 62156c386..13d043147 100644
--- a/public/emoji/1f64b-1f3fd.svg
+++ b/public/emoji/1f64b-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f64b-1f3fe.svg b/public/emoji/1f64b-1f3fe.svg
index 4dcde3700..f16cf36df 100644
--- a/public/emoji/1f64b-1f3fe.svg
+++ b/public/emoji/1f64b-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f64b-1f3ff.svg b/public/emoji/1f64b-1f3ff.svg
index f939a8364..9131dc367 100644
--- a/public/emoji/1f64b-1f3ff.svg
+++ b/public/emoji/1f64b-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f64b.svg b/public/emoji/1f64b.svg
index a5ccaa1ad..197e8318c 100644
--- a/public/emoji/1f64b.svg
+++ b/public/emoji/1f64b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f64d-1f3fb.svg b/public/emoji/1f64d-1f3fb.svg
index 3aaba5033..b694b36bd 100644
--- a/public/emoji/1f64d-1f3fb.svg
+++ b/public/emoji/1f64d-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f64d-1f3fc.svg b/public/emoji/1f64d-1f3fc.svg
index 7198a13c0..9d0e546d5 100644
--- a/public/emoji/1f64d-1f3fc.svg
+++ b/public/emoji/1f64d-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f64d-1f3fd.svg b/public/emoji/1f64d-1f3fd.svg
index ed14e028f..ba415fbf8 100644
--- a/public/emoji/1f64d-1f3fd.svg
+++ b/public/emoji/1f64d-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f64d-1f3fe.svg b/public/emoji/1f64d-1f3fe.svg
index 47e3da25c..cb7cb69d0 100644
--- a/public/emoji/1f64d-1f3fe.svg
+++ b/public/emoji/1f64d-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f64d-1f3ff.svg b/public/emoji/1f64d-1f3ff.svg
index 7e2411447..b8de15477 100644
--- a/public/emoji/1f64d-1f3ff.svg
+++ b/public/emoji/1f64d-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f64d.svg b/public/emoji/1f64d.svg
index e14fb5706..0506155c7 100644
--- a/public/emoji/1f64d.svg
+++ b/public/emoji/1f64d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f64e-1f3fb.svg b/public/emoji/1f64e-1f3fb.svg
index e283e46e5..de1072658 100644
--- a/public/emoji/1f64e-1f3fb.svg
+++ b/public/emoji/1f64e-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f64e-1f3fc.svg b/public/emoji/1f64e-1f3fc.svg
index 6f7d0fe07..cb76ab3f6 100644
--- a/public/emoji/1f64e-1f3fc.svg
+++ b/public/emoji/1f64e-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f64e-1f3fd.svg b/public/emoji/1f64e-1f3fd.svg
index 96584b4a6..a8acc8cb0 100644
--- a/public/emoji/1f64e-1f3fd.svg
+++ b/public/emoji/1f64e-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f64e-1f3fe.svg b/public/emoji/1f64e-1f3fe.svg
index ab993b070..8f0366d45 100644
--- a/public/emoji/1f64e-1f3fe.svg
+++ b/public/emoji/1f64e-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f64e-1f3ff.svg b/public/emoji/1f64e-1f3ff.svg
index 5bdbed288..b13aab77c 100644
--- a/public/emoji/1f64e-1f3ff.svg
+++ b/public/emoji/1f64e-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f64e.svg b/public/emoji/1f64e.svg
index 0bd74db6b..bc4da1cc5 100644
--- a/public/emoji/1f64e.svg
+++ b/public/emoji/1f64e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f6a3-1f3fb.svg b/public/emoji/1f6a3-1f3fb.svg
index a9651dca4..b8ae875d0 100644
--- a/public/emoji/1f6a3-1f3fb.svg
+++ b/public/emoji/1f6a3-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f6a3-1f3fc.svg b/public/emoji/1f6a3-1f3fc.svg
index d5d8a1b1a..13cde3cbd 100644
--- a/public/emoji/1f6a3-1f3fc.svg
+++ b/public/emoji/1f6a3-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f6a3-1f3fd.svg b/public/emoji/1f6a3-1f3fd.svg
index 350a363a0..1861758f6 100644
--- a/public/emoji/1f6a3-1f3fd.svg
+++ b/public/emoji/1f6a3-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f6a3-1f3fe.svg b/public/emoji/1f6a3-1f3fe.svg
index 58d8d4e8a..8d52d6393 100644
--- a/public/emoji/1f6a3-1f3fe.svg
+++ b/public/emoji/1f6a3-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f6a3-1f3ff.svg b/public/emoji/1f6a3-1f3ff.svg
index d461a4103..b93ca9180 100644
--- a/public/emoji/1f6a3-1f3ff.svg
+++ b/public/emoji/1f6a3-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f6a3.svg b/public/emoji/1f6a3.svg
index d62822936..a427ce683 100644
--- a/public/emoji/1f6a3.svg
+++ b/public/emoji/1f6a3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f6b4-1f3fb.svg b/public/emoji/1f6b4-1f3fb.svg
index def3807bc..581a4471d 100644
--- a/public/emoji/1f6b4-1f3fb.svg
+++ b/public/emoji/1f6b4-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f6b4-1f3fc.svg b/public/emoji/1f6b4-1f3fc.svg
index d163a47c0..565fe9f17 100644
--- a/public/emoji/1f6b4-1f3fc.svg
+++ b/public/emoji/1f6b4-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f6b4-1f3fd.svg b/public/emoji/1f6b4-1f3fd.svg
index afc749ad3..5a9800973 100644
--- a/public/emoji/1f6b4-1f3fd.svg
+++ b/public/emoji/1f6b4-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f6b4-1f3fe.svg b/public/emoji/1f6b4-1f3fe.svg
index 551789511..2a22bf01a 100644
--- a/public/emoji/1f6b4-1f3fe.svg
+++ b/public/emoji/1f6b4-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f6b4-1f3ff.svg b/public/emoji/1f6b4-1f3ff.svg
index c06f35930..c62512e58 100644
--- a/public/emoji/1f6b4-1f3ff.svg
+++ b/public/emoji/1f6b4-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f6b4.svg b/public/emoji/1f6b4.svg
index ae3112edc..f1bbb724b 100644
--- a/public/emoji/1f6b4.svg
+++ b/public/emoji/1f6b4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f6b5-1f3fb.svg b/public/emoji/1f6b5-1f3fb.svg
index 63627abc7..10e9b6350 100644
--- a/public/emoji/1f6b5-1f3fb.svg
+++ b/public/emoji/1f6b5-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f6b5-1f3fc.svg b/public/emoji/1f6b5-1f3fc.svg
index e629c6cf3..202bc22ef 100644
--- a/public/emoji/1f6b5-1f3fc.svg
+++ b/public/emoji/1f6b5-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f6b5-1f3fd.svg b/public/emoji/1f6b5-1f3fd.svg
index c1e95693c..947c54602 100644
--- a/public/emoji/1f6b5-1f3fd.svg
+++ b/public/emoji/1f6b5-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f6b5-1f3fe.svg b/public/emoji/1f6b5-1f3fe.svg
index 55a8b20bb..99154e4fb 100644
--- a/public/emoji/1f6b5-1f3fe.svg
+++ b/public/emoji/1f6b5-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f6b5-1f3ff.svg b/public/emoji/1f6b5-1f3ff.svg
index c856c95ba..9e98fb46d 100644
--- a/public/emoji/1f6b5-1f3ff.svg
+++ b/public/emoji/1f6b5-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f6b5.svg b/public/emoji/1f6b5.svg
index 991430830..fb824d58e 100644
--- a/public/emoji/1f6b5.svg
+++ b/public/emoji/1f6b5.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f6b6-1f3fb.svg b/public/emoji/1f6b6-1f3fb.svg
index 8f5f4ce23..e361a2866 100644
--- a/public/emoji/1f6b6-1f3fb.svg
+++ b/public/emoji/1f6b6-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f6b6-1f3fc.svg b/public/emoji/1f6b6-1f3fc.svg
index cba51a41c..ff5f70459 100644
--- a/public/emoji/1f6b6-1f3fc.svg
+++ b/public/emoji/1f6b6-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f6b6-1f3fd.svg b/public/emoji/1f6b6-1f3fd.svg
index 84169ed7a..1862ab315 100644
--- a/public/emoji/1f6b6-1f3fd.svg
+++ b/public/emoji/1f6b6-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f6b6-1f3fe.svg b/public/emoji/1f6b6-1f3fe.svg
index 591c56223..b6476fefc 100644
--- a/public/emoji/1f6b6-1f3fe.svg
+++ b/public/emoji/1f6b6-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f6b6-1f3ff.svg b/public/emoji/1f6b6-1f3ff.svg
index 198a8377e..d410eb393 100644
--- a/public/emoji/1f6b6-1f3ff.svg
+++ b/public/emoji/1f6b6-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f6b6.svg b/public/emoji/1f6b6.svg
index 9217939d2..124c29676 100644
--- a/public/emoji/1f6b6.svg
+++ b/public/emoji/1f6b6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f926-1f3fb.svg b/public/emoji/1f926-1f3fb.svg
index 01f59a196..80e07bb5c 100644
--- a/public/emoji/1f926-1f3fb.svg
+++ b/public/emoji/1f926-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f926-1f3fc.svg b/public/emoji/1f926-1f3fc.svg
index a479826f8..227838db0 100644
--- a/public/emoji/1f926-1f3fc.svg
+++ b/public/emoji/1f926-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f926-1f3fd.svg b/public/emoji/1f926-1f3fd.svg
index ece26ca04..7ef592b71 100644
--- a/public/emoji/1f926-1f3fd.svg
+++ b/public/emoji/1f926-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f926-1f3fe.svg b/public/emoji/1f926-1f3fe.svg
index 8e677c492..caf3e782c 100644
--- a/public/emoji/1f926-1f3fe.svg
+++ b/public/emoji/1f926-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f926-1f3ff.svg b/public/emoji/1f926-1f3ff.svg
index c5a860357..e3f244a87 100644
--- a/public/emoji/1f926-1f3ff.svg
+++ b/public/emoji/1f926-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f926.svg b/public/emoji/1f926.svg
index a31d72bdd..631e91c3c 100644
--- a/public/emoji/1f926.svg
+++ b/public/emoji/1f926.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f935-1f3fb.svg b/public/emoji/1f935-1f3fb.svg
index abd68b8f6..0994b27a8 100644
--- a/public/emoji/1f935-1f3fb.svg
+++ b/public/emoji/1f935-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f935-1f3fc.svg b/public/emoji/1f935-1f3fc.svg
index f7093beb7..a674ce965 100644
--- a/public/emoji/1f935-1f3fc.svg
+++ b/public/emoji/1f935-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f935-1f3fd.svg b/public/emoji/1f935-1f3fd.svg
index 5ed3aa32a..af123557b 100644
--- a/public/emoji/1f935-1f3fd.svg
+++ b/public/emoji/1f935-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f935-1f3fe.svg b/public/emoji/1f935-1f3fe.svg
index 6ed7fb365..3e69b42cf 100644
--- a/public/emoji/1f935-1f3fe.svg
+++ b/public/emoji/1f935-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f935-1f3ff.svg b/public/emoji/1f935-1f3ff.svg
index 3af34ef2c..3df4f27f0 100644
--- a/public/emoji/1f935-1f3ff.svg
+++ b/public/emoji/1f935-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f935.svg b/public/emoji/1f935.svg
index 5c87be483..5b0498b1e 100644
--- a/public/emoji/1f935.svg
+++ b/public/emoji/1f935.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f937-1f3fb.svg b/public/emoji/1f937-1f3fb.svg
index 1c60fc388..b44ceefca 100644
--- a/public/emoji/1f937-1f3fb.svg
+++ b/public/emoji/1f937-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f937-1f3fc.svg b/public/emoji/1f937-1f3fc.svg
index af1de0404..dc703ebdc 100644
--- a/public/emoji/1f937-1f3fc.svg
+++ b/public/emoji/1f937-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f937-1f3fd.svg b/public/emoji/1f937-1f3fd.svg
index 1e7109af3..9037d4e2f 100644
--- a/public/emoji/1f937-1f3fd.svg
+++ b/public/emoji/1f937-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f937-1f3fe.svg b/public/emoji/1f937-1f3fe.svg
index b5731d5eb..36763bb06 100644
--- a/public/emoji/1f937-1f3fe.svg
+++ b/public/emoji/1f937-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f937-1f3ff.svg b/public/emoji/1f937-1f3ff.svg
index 2400a4e7c..e39f07075 100644
--- a/public/emoji/1f937-1f3ff.svg
+++ b/public/emoji/1f937-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f937.svg b/public/emoji/1f937.svg
index f78db073b..d5984aa11 100644
--- a/public/emoji/1f937.svg
+++ b/public/emoji/1f937.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f938-1f3fb.svg b/public/emoji/1f938-1f3fb.svg
index c5a0d1e42..aeb71a863 100644
--- a/public/emoji/1f938-1f3fb.svg
+++ b/public/emoji/1f938-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f938-1f3fc.svg b/public/emoji/1f938-1f3fc.svg
index 15b2df731..99b46eacc 100644
--- a/public/emoji/1f938-1f3fc.svg
+++ b/public/emoji/1f938-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f938-1f3fd.svg b/public/emoji/1f938-1f3fd.svg
index 58447e654..fb0e27982 100644
--- a/public/emoji/1f938-1f3fd.svg
+++ b/public/emoji/1f938-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f938-1f3fe.svg b/public/emoji/1f938-1f3fe.svg
index b17fdb449..41abefee8 100644
--- a/public/emoji/1f938-1f3fe.svg
+++ b/public/emoji/1f938-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f938-1f3ff.svg b/public/emoji/1f938-1f3ff.svg
index 076b69d98..52eb41e81 100644
--- a/public/emoji/1f938-1f3ff.svg
+++ b/public/emoji/1f938-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f938.svg b/public/emoji/1f938.svg
index 9cec3f994..aaf5b18d6 100644
--- a/public/emoji/1f938.svg
+++ b/public/emoji/1f938.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f939-1f3fb.svg b/public/emoji/1f939-1f3fb.svg
index 8b7579bf2..b794735df 100644
--- a/public/emoji/1f939-1f3fb.svg
+++ b/public/emoji/1f939-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f939-1f3fc.svg b/public/emoji/1f939-1f3fc.svg
index 11006e21b..1bc4dba90 100644
--- a/public/emoji/1f939-1f3fc.svg
+++ b/public/emoji/1f939-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f939-1f3fd.svg b/public/emoji/1f939-1f3fd.svg
index 98b3b798e..fe7c94fcc 100644
--- a/public/emoji/1f939-1f3fd.svg
+++ b/public/emoji/1f939-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f939-1f3fe.svg b/public/emoji/1f939-1f3fe.svg
index dd3670570..5bd7d053b 100644
--- a/public/emoji/1f939-1f3fe.svg
+++ b/public/emoji/1f939-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f939-1f3ff.svg b/public/emoji/1f939-1f3ff.svg
index ab10e8926..43016b27b 100644
--- a/public/emoji/1f939-1f3ff.svg
+++ b/public/emoji/1f939-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f939.svg b/public/emoji/1f939.svg
index 62230dc4c..d79aad75f 100644
--- a/public/emoji/1f939.svg
+++ b/public/emoji/1f939.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f93c.svg b/public/emoji/1f93c.svg
index 13ec50b44..fcd902e71 100644
--- a/public/emoji/1f93c.svg
+++ b/public/emoji/1f93c.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f93d-1f3fb.svg b/public/emoji/1f93d-1f3fb.svg
index 62da945eb..5bba0fbae 100644
--- a/public/emoji/1f93d-1f3fb.svg
+++ b/public/emoji/1f93d-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f93d-1f3fc.svg b/public/emoji/1f93d-1f3fc.svg
index 6df278743..ed5845abe 100644
--- a/public/emoji/1f93d-1f3fc.svg
+++ b/public/emoji/1f93d-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f93d-1f3fd.svg b/public/emoji/1f93d-1f3fd.svg
index 2b8c67d12..4056ca51c 100644
--- a/public/emoji/1f93d-1f3fd.svg
+++ b/public/emoji/1f93d-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f93d-1f3fe.svg b/public/emoji/1f93d-1f3fe.svg
index 045d9fde9..2de4cfaf7 100644
--- a/public/emoji/1f93d-1f3fe.svg
+++ b/public/emoji/1f93d-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f93d-1f3ff.svg b/public/emoji/1f93d-1f3ff.svg
index 60c34455b..37c3616cb 100644
--- a/public/emoji/1f93d-1f3ff.svg
+++ b/public/emoji/1f93d-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f93d.svg b/public/emoji/1f93d.svg
index 9469b6a03..df8453d88 100644
--- a/public/emoji/1f93d.svg
+++ b/public/emoji/1f93d.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f93e-1f3fb.svg b/public/emoji/1f93e-1f3fb.svg
index 46d9bdcab..0988f2671 100644
--- a/public/emoji/1f93e-1f3fb.svg
+++ b/public/emoji/1f93e-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f93e-1f3fc.svg b/public/emoji/1f93e-1f3fc.svg
index 2a6191fd9..8ee96e0b4 100644
--- a/public/emoji/1f93e-1f3fc.svg
+++ b/public/emoji/1f93e-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f93e-1f3fd.svg b/public/emoji/1f93e-1f3fd.svg
index ca6f6c27c..a4e93ba49 100644
--- a/public/emoji/1f93e-1f3fd.svg
+++ b/public/emoji/1f93e-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f93e-1f3fe.svg b/public/emoji/1f93e-1f3fe.svg
index 692ed9d36..95c71b92e 100644
--- a/public/emoji/1f93e-1f3fe.svg
+++ b/public/emoji/1f93e-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f93e-1f3ff.svg b/public/emoji/1f93e-1f3ff.svg
index ec3b45f83..8456c7830 100644
--- a/public/emoji/1f93e-1f3ff.svg
+++ b/public/emoji/1f93e-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f93e.svg b/public/emoji/1f93e.svg
index 28e86b3ef..b678e6561 100644
--- a/public/emoji/1f93e.svg
+++ b/public/emoji/1f93e.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f97b.svg b/public/emoji/1f97b.svg
index d69d53d17..846d591ce 100644
--- a/public/emoji/1f97b.svg
+++ b/public/emoji/1f97b.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9b8-1f3fb-200d-2640-fe0f.svg b/public/emoji/1f9b8-1f3fb-200d-2640-fe0f.svg
index 1bb8c86fc..f50f846a7 100644
--- a/public/emoji/1f9b8-1f3fb-200d-2640-fe0f.svg
+++ b/public/emoji/1f9b8-1f3fb-200d-2640-fe0f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9b8-1f3fb-200d-2642-fe0f.svg b/public/emoji/1f9b8-1f3fb-200d-2642-fe0f.svg
index 05d48788a..fc3adcb64 100644
--- a/public/emoji/1f9b8-1f3fb-200d-2642-fe0f.svg
+++ b/public/emoji/1f9b8-1f3fb-200d-2642-fe0f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9b8-1f3fb.svg b/public/emoji/1f9b8-1f3fb.svg
index 1bb8c86fc..52a50d9eb 100644
--- a/public/emoji/1f9b8-1f3fb.svg
+++ b/public/emoji/1f9b8-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9b8-1f3fc-200d-2640-fe0f.svg b/public/emoji/1f9b8-1f3fc-200d-2640-fe0f.svg
index 1ac8651e9..3b0a5be2d 100644
--- a/public/emoji/1f9b8-1f3fc-200d-2640-fe0f.svg
+++ b/public/emoji/1f9b8-1f3fc-200d-2640-fe0f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9b8-1f3fc-200d-2642-fe0f.svg b/public/emoji/1f9b8-1f3fc-200d-2642-fe0f.svg
index a5d6bb187..3e223f3e6 100644
--- a/public/emoji/1f9b8-1f3fc-200d-2642-fe0f.svg
+++ b/public/emoji/1f9b8-1f3fc-200d-2642-fe0f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9b8-1f3fc.svg b/public/emoji/1f9b8-1f3fc.svg
index 1ac8651e9..8a2fc9b66 100644
--- a/public/emoji/1f9b8-1f3fc.svg
+++ b/public/emoji/1f9b8-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9b8-1f3fd-200d-2640-fe0f.svg b/public/emoji/1f9b8-1f3fd-200d-2640-fe0f.svg
index 64a0ef6d1..e87b63fd7 100644
--- a/public/emoji/1f9b8-1f3fd-200d-2640-fe0f.svg
+++ b/public/emoji/1f9b8-1f3fd-200d-2640-fe0f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9b8-1f3fd-200d-2642-fe0f.svg b/public/emoji/1f9b8-1f3fd-200d-2642-fe0f.svg
index 2573ab23d..f3575906e 100644
--- a/public/emoji/1f9b8-1f3fd-200d-2642-fe0f.svg
+++ b/public/emoji/1f9b8-1f3fd-200d-2642-fe0f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9b8-1f3fd.svg b/public/emoji/1f9b8-1f3fd.svg
index 64a0ef6d1..a9ee6d80f 100644
--- a/public/emoji/1f9b8-1f3fd.svg
+++ b/public/emoji/1f9b8-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9b8-1f3fe-200d-2640-fe0f.svg b/public/emoji/1f9b8-1f3fe-200d-2640-fe0f.svg
index e8dadca64..355bbad7b 100644
--- a/public/emoji/1f9b8-1f3fe-200d-2640-fe0f.svg
+++ b/public/emoji/1f9b8-1f3fe-200d-2640-fe0f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9b8-1f3fe-200d-2642-fe0f.svg b/public/emoji/1f9b8-1f3fe-200d-2642-fe0f.svg
index 9043fcfce..a1535bfdc 100644
--- a/public/emoji/1f9b8-1f3fe-200d-2642-fe0f.svg
+++ b/public/emoji/1f9b8-1f3fe-200d-2642-fe0f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9b8-1f3fe.svg b/public/emoji/1f9b8-1f3fe.svg
index e8dadca64..11d689b4f 100644
--- a/public/emoji/1f9b8-1f3fe.svg
+++ b/public/emoji/1f9b8-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9b8-1f3ff-200d-2640-fe0f.svg b/public/emoji/1f9b8-1f3ff-200d-2640-fe0f.svg
index d7bfc5120..d4126a1be 100644
--- a/public/emoji/1f9b8-1f3ff-200d-2640-fe0f.svg
+++ b/public/emoji/1f9b8-1f3ff-200d-2640-fe0f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9b8-1f3ff-200d-2642-fe0f.svg b/public/emoji/1f9b8-1f3ff-200d-2642-fe0f.svg
index 7cea264f1..8e5c15059 100644
--- a/public/emoji/1f9b8-1f3ff-200d-2642-fe0f.svg
+++ b/public/emoji/1f9b8-1f3ff-200d-2642-fe0f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9b8-1f3ff.svg b/public/emoji/1f9b8-1f3ff.svg
index d7bfc5120..58b200eb1 100644
--- a/public/emoji/1f9b8-1f3ff.svg
+++ b/public/emoji/1f9b8-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9b8-200d-2640-fe0f.svg b/public/emoji/1f9b8-200d-2640-fe0f.svg
index e3129286a..120097ee7 100644
--- a/public/emoji/1f9b8-200d-2640-fe0f.svg
+++ b/public/emoji/1f9b8-200d-2640-fe0f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9b8-200d-2642-fe0f.svg b/public/emoji/1f9b8-200d-2642-fe0f.svg
index 462fc3720..404dcb207 100644
--- a/public/emoji/1f9b8-200d-2642-fe0f.svg
+++ b/public/emoji/1f9b8-200d-2642-fe0f.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9b8.svg b/public/emoji/1f9b8.svg
index e3129286a..f01221534 100644
--- a/public/emoji/1f9b8.svg
+++ b/public/emoji/1f9b8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9b9-1f3fb.svg b/public/emoji/1f9b9-1f3fb.svg
index 361bab6ac..2070980d2 100644
--- a/public/emoji/1f9b9-1f3fb.svg
+++ b/public/emoji/1f9b9-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9b9-1f3fc.svg b/public/emoji/1f9b9-1f3fc.svg
index f035f13c1..2a0ce49f5 100644
--- a/public/emoji/1f9b9-1f3fc.svg
+++ b/public/emoji/1f9b9-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9b9-1f3fd.svg b/public/emoji/1f9b9-1f3fd.svg
index 58999ae9a..199cceb66 100644
--- a/public/emoji/1f9b9-1f3fd.svg
+++ b/public/emoji/1f9b9-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9b9-1f3fe.svg b/public/emoji/1f9b9-1f3fe.svg
index 04120e37a..63f24fd94 100644
--- a/public/emoji/1f9b9-1f3fe.svg
+++ b/public/emoji/1f9b9-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9b9-1f3ff.svg b/public/emoji/1f9b9-1f3ff.svg
index 5dadcd8b6..bd52692b0 100644
--- a/public/emoji/1f9b9-1f3ff.svg
+++ b/public/emoji/1f9b9-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9b9.svg b/public/emoji/1f9b9.svg
index 7d6953ea2..43922b08a 100644
--- a/public/emoji/1f9b9.svg
+++ b/public/emoji/1f9b9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9cd-1f3fb.svg b/public/emoji/1f9cd-1f3fb.svg
index 8fbd6c034..3492853cd 100644
--- a/public/emoji/1f9cd-1f3fb.svg
+++ b/public/emoji/1f9cd-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9cd-1f3fc.svg b/public/emoji/1f9cd-1f3fc.svg
index 0ea6dafdc..b974f41f7 100644
--- a/public/emoji/1f9cd-1f3fc.svg
+++ b/public/emoji/1f9cd-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9cd-1f3fd.svg b/public/emoji/1f9cd-1f3fd.svg
index 3197184b7..468edc6b6 100644
--- a/public/emoji/1f9cd-1f3fd.svg
+++ b/public/emoji/1f9cd-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9cd-1f3fe.svg b/public/emoji/1f9cd-1f3fe.svg
index 8b05543d0..db22d1847 100644
--- a/public/emoji/1f9cd-1f3fe.svg
+++ b/public/emoji/1f9cd-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9cd-1f3ff.svg b/public/emoji/1f9cd-1f3ff.svg
index 59fb6a930..5191b96d5 100644
--- a/public/emoji/1f9cd-1f3ff.svg
+++ b/public/emoji/1f9cd-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9cd.svg b/public/emoji/1f9cd.svg
index 450561e2a..331041b72 100644
--- a/public/emoji/1f9cd.svg
+++ b/public/emoji/1f9cd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9ce-1f3fb.svg b/public/emoji/1f9ce-1f3fb.svg
index 09e6f4d9b..9e269bd2a 100644
--- a/public/emoji/1f9ce-1f3fb.svg
+++ b/public/emoji/1f9ce-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9ce-1f3fc.svg b/public/emoji/1f9ce-1f3fc.svg
index 9bd2fc01d..bdd410e2e 100644
--- a/public/emoji/1f9ce-1f3fc.svg
+++ b/public/emoji/1f9ce-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9ce-1f3fd.svg b/public/emoji/1f9ce-1f3fd.svg
index 10df60c9b..465db1df1 100644
--- a/public/emoji/1f9ce-1f3fd.svg
+++ b/public/emoji/1f9ce-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9ce-1f3fe.svg b/public/emoji/1f9ce-1f3fe.svg
index fb24b6dfb..e84e1235a 100644
--- a/public/emoji/1f9ce-1f3fe.svg
+++ b/public/emoji/1f9ce-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9ce-1f3ff.svg b/public/emoji/1f9ce-1f3ff.svg
index aba0cb467..c07e81fcf 100644
--- a/public/emoji/1f9ce-1f3ff.svg
+++ b/public/emoji/1f9ce-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9ce.svg b/public/emoji/1f9ce.svg
index 403d73eb3..60fe53792 100644
--- a/public/emoji/1f9ce.svg
+++ b/public/emoji/1f9ce.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9cf-1f3fb.svg b/public/emoji/1f9cf-1f3fb.svg
index be0cd9005..297d20ac8 100644
--- a/public/emoji/1f9cf-1f3fb.svg
+++ b/public/emoji/1f9cf-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9cf-1f3fc.svg b/public/emoji/1f9cf-1f3fc.svg
index 312364641..ef8f1d8c6 100644
--- a/public/emoji/1f9cf-1f3fc.svg
+++ b/public/emoji/1f9cf-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9cf-1f3fd.svg b/public/emoji/1f9cf-1f3fd.svg
index d41a0fa60..f1ed199ee 100644
--- a/public/emoji/1f9cf-1f3fd.svg
+++ b/public/emoji/1f9cf-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9cf-1f3fe.svg b/public/emoji/1f9cf-1f3fe.svg
index dd4392664..480a1a66f 100644
--- a/public/emoji/1f9cf-1f3fe.svg
+++ b/public/emoji/1f9cf-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9cf-1f3ff.svg b/public/emoji/1f9cf-1f3ff.svg
index 748ab421b..d44bde714 100644
--- a/public/emoji/1f9cf-1f3ff.svg
+++ b/public/emoji/1f9cf-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9cf.svg b/public/emoji/1f9cf.svg
index 8c119c990..b63252139 100644
--- a/public/emoji/1f9cf.svg
+++ b/public/emoji/1f9cf.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fb-200d-1f33e.svg b/public/emoji/1f9d1-1f3fb-200d-1f33e.svg
new file mode 100644
index 000000000..9963675b7
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fb-200d-1f33e.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fb-200d-1f373.svg b/public/emoji/1f9d1-1f3fb-200d-1f373.svg
new file mode 100644
index 000000000..35898dadc
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fb-200d-1f373.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fb-200d-1f393.svg b/public/emoji/1f9d1-1f3fb-200d-1f393.svg
new file mode 100644
index 000000000..73f9b6d0b
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fb-200d-1f393.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fb-200d-1f3a4.svg b/public/emoji/1f9d1-1f3fb-200d-1f3a4.svg
new file mode 100644
index 000000000..b093c515f
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fb-200d-1f3a4.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fb-200d-1f3a8.svg b/public/emoji/1f9d1-1f3fb-200d-1f3a8.svg
new file mode 100644
index 000000000..260397c51
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fb-200d-1f3a8.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fb-200d-1f3eb.svg b/public/emoji/1f9d1-1f3fb-200d-1f3eb.svg
new file mode 100644
index 000000000..09c5866af
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fb-200d-1f3eb.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fb-200d-1f3ed.svg b/public/emoji/1f9d1-1f3fb-200d-1f3ed.svg
new file mode 100644
index 000000000..00836e95d
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fb-200d-1f3ed.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fb-200d-1f4bb.svg b/public/emoji/1f9d1-1f3fb-200d-1f4bb.svg
new file mode 100644
index 000000000..b38cf485a
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fb-200d-1f4bb.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fb-200d-1f4bc.svg b/public/emoji/1f9d1-1f3fb-200d-1f4bc.svg
new file mode 100644
index 000000000..5c448c35a
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fb-200d-1f4bc.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fb-200d-1f527.svg b/public/emoji/1f9d1-1f3fb-200d-1f527.svg
new file mode 100644
index 000000000..94bf92c22
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fb-200d-1f527.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fb-200d-1f52c.svg b/public/emoji/1f9d1-1f3fb-200d-1f52c.svg
new file mode 100644
index 000000000..726e37800
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fb-200d-1f52c.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fb-200d-1f680.svg b/public/emoji/1f9d1-1f3fb-200d-1f680.svg
new file mode 100644
index 000000000..45e136197
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fb-200d-1f680.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fb-200d-1f692.svg b/public/emoji/1f9d1-1f3fb-200d-1f692.svg
new file mode 100644
index 000000000..319c6877f
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fb-200d-1f692.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fb.svg b/public/emoji/1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fb.svg
index 5fedd969b..872bbb01d 100644
--- a/public/emoji/1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fb.svg
+++ b/public/emoji/1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fc.svg b/public/emoji/1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fc.svg
new file mode 100644
index 000000000..fee6221ee
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fc.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fd.svg b/public/emoji/1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fd.svg
new file mode 100644
index 000000000..937470f69
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fd.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fe.svg b/public/emoji/1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fe.svg
new file mode 100644
index 000000000..782e26e79
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3fe.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3ff.svg b/public/emoji/1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3ff.svg
new file mode 100644
index 000000000..93b224ad3
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fb-200d-1f91d-200d-1f9d1-1f3ff.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fb-200d-1f9af.svg b/public/emoji/1f9d1-1f3fb-200d-1f9af.svg
new file mode 100644
index 000000000..66a5330a7
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fb-200d-1f9af.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fb-200d-1f9b0.svg b/public/emoji/1f9d1-1f3fb-200d-1f9b0.svg
new file mode 100644
index 000000000..d32aaaf78
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fb-200d-1f9b0.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fb-200d-1f9b1.svg b/public/emoji/1f9d1-1f3fb-200d-1f9b1.svg
new file mode 100644
index 000000000..81b32ae0d
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fb-200d-1f9b1.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fb-200d-1f9b2.svg b/public/emoji/1f9d1-1f3fb-200d-1f9b2.svg
new file mode 100644
index 000000000..74beee114
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fb-200d-1f9b2.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fb-200d-1f9b3.svg b/public/emoji/1f9d1-1f3fb-200d-1f9b3.svg
new file mode 100644
index 000000000..c0c69875f
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fb-200d-1f9b3.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fb-200d-1f9bc.svg b/public/emoji/1f9d1-1f3fb-200d-1f9bc.svg
new file mode 100644
index 000000000..0fdb383a3
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fb-200d-1f9bc.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fb-200d-1f9bd.svg b/public/emoji/1f9d1-1f3fb-200d-1f9bd.svg
new file mode 100644
index 000000000..aaff786ee
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fb-200d-1f9bd.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fb-200d-2695-fe0f.svg b/public/emoji/1f9d1-1f3fb-200d-2695-fe0f.svg
new file mode 100644
index 000000000..40e3f3ee6
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fb-200d-2695-fe0f.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fb-200d-2696-fe0f.svg b/public/emoji/1f9d1-1f3fb-200d-2696-fe0f.svg
new file mode 100644
index 000000000..4eb55101a
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fb-200d-2696-fe0f.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fb-200d-2708-fe0f.svg b/public/emoji/1f9d1-1f3fb-200d-2708-fe0f.svg
new file mode 100644
index 000000000..97c34403d
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fb-200d-2708-fe0f.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fb.svg b/public/emoji/1f9d1-1f3fb.svg
index 9c2da5b36..9235058bb 100644
--- a/public/emoji/1f9d1-1f3fb.svg
+++ b/public/emoji/1f9d1-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fc-200d-1f33e.svg b/public/emoji/1f9d1-1f3fc-200d-1f33e.svg
new file mode 100644
index 000000000..ca8c8b7e8
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fc-200d-1f33e.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fc-200d-1f373.svg b/public/emoji/1f9d1-1f3fc-200d-1f373.svg
new file mode 100644
index 000000000..9a065b5b6
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fc-200d-1f373.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fc-200d-1f393.svg b/public/emoji/1f9d1-1f3fc-200d-1f393.svg
new file mode 100644
index 000000000..6923efa5b
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fc-200d-1f393.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fc-200d-1f3a4.svg b/public/emoji/1f9d1-1f3fc-200d-1f3a4.svg
new file mode 100644
index 000000000..f35861f43
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fc-200d-1f3a4.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fc-200d-1f3a8.svg b/public/emoji/1f9d1-1f3fc-200d-1f3a8.svg
new file mode 100644
index 000000000..6666557a8
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fc-200d-1f3a8.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fc-200d-1f3eb.svg b/public/emoji/1f9d1-1f3fc-200d-1f3eb.svg
new file mode 100644
index 000000000..c0e5cd141
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fc-200d-1f3eb.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fc-200d-1f3ed.svg b/public/emoji/1f9d1-1f3fc-200d-1f3ed.svg
new file mode 100644
index 000000000..2a9e89a0e
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fc-200d-1f3ed.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fc-200d-1f4bb.svg b/public/emoji/1f9d1-1f3fc-200d-1f4bb.svg
new file mode 100644
index 000000000..39c5f63df
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fc-200d-1f4bb.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fc-200d-1f4bc.svg b/public/emoji/1f9d1-1f3fc-200d-1f4bc.svg
new file mode 100644
index 000000000..4ec99b23f
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fc-200d-1f4bc.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fc-200d-1f527.svg b/public/emoji/1f9d1-1f3fc-200d-1f527.svg
new file mode 100644
index 000000000..20526c613
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fc-200d-1f527.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fc-200d-1f52c.svg b/public/emoji/1f9d1-1f3fc-200d-1f52c.svg
new file mode 100644
index 000000000..5912cbceb
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fc-200d-1f52c.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fc-200d-1f680.svg b/public/emoji/1f9d1-1f3fc-200d-1f680.svg
new file mode 100644
index 000000000..9e5eee391
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fc-200d-1f680.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fc-200d-1f692.svg b/public/emoji/1f9d1-1f3fc-200d-1f692.svg
new file mode 100644
index 000000000..c03e8ecf0
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fc-200d-1f692.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fb.svg b/public/emoji/1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fb.svg
index 53e58734c..db9e577bc 100644
--- a/public/emoji/1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fb.svg
+++ b/public/emoji/1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fc.svg b/public/emoji/1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fc.svg
index d5be6fe59..91bae5336 100644
--- a/public/emoji/1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fc.svg
+++ b/public/emoji/1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fd.svg b/public/emoji/1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fd.svg
new file mode 100644
index 000000000..b76524f2f
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fd.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fe.svg b/public/emoji/1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fe.svg
new file mode 100644
index 000000000..166e27118
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3fe.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3ff.svg b/public/emoji/1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3ff.svg
new file mode 100644
index 000000000..cbcf327e8
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fc-200d-1f91d-200d-1f9d1-1f3ff.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fc-200d-1f9af.svg b/public/emoji/1f9d1-1f3fc-200d-1f9af.svg
new file mode 100644
index 000000000..5dfba690a
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fc-200d-1f9af.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fc-200d-1f9b0.svg b/public/emoji/1f9d1-1f3fc-200d-1f9b0.svg
new file mode 100644
index 000000000..95e52682f
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fc-200d-1f9b0.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fc-200d-1f9b1.svg b/public/emoji/1f9d1-1f3fc-200d-1f9b1.svg
new file mode 100644
index 000000000..27e3ad6da
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fc-200d-1f9b1.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fc-200d-1f9b2.svg b/public/emoji/1f9d1-1f3fc-200d-1f9b2.svg
new file mode 100644
index 000000000..4235ea03d
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fc-200d-1f9b2.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fc-200d-1f9b3.svg b/public/emoji/1f9d1-1f3fc-200d-1f9b3.svg
new file mode 100644
index 000000000..71bce8fa6
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fc-200d-1f9b3.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fc-200d-1f9bc.svg b/public/emoji/1f9d1-1f3fc-200d-1f9bc.svg
new file mode 100644
index 000000000..72413161f
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fc-200d-1f9bc.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fc-200d-1f9bd.svg b/public/emoji/1f9d1-1f3fc-200d-1f9bd.svg
new file mode 100644
index 000000000..740422fc9
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fc-200d-1f9bd.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fc-200d-2695-fe0f.svg b/public/emoji/1f9d1-1f3fc-200d-2695-fe0f.svg
new file mode 100644
index 000000000..8c5d10677
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fc-200d-2695-fe0f.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fc-200d-2696-fe0f.svg b/public/emoji/1f9d1-1f3fc-200d-2696-fe0f.svg
new file mode 100644
index 000000000..a39ad4ec9
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fc-200d-2696-fe0f.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fc-200d-2708-fe0f.svg b/public/emoji/1f9d1-1f3fc-200d-2708-fe0f.svg
new file mode 100644
index 000000000..cbba7776c
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fc-200d-2708-fe0f.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fc.svg b/public/emoji/1f9d1-1f3fc.svg
index f9f3f6bd1..e47b1b24d 100644
--- a/public/emoji/1f9d1-1f3fc.svg
+++ b/public/emoji/1f9d1-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fd-200d-1f33e.svg b/public/emoji/1f9d1-1f3fd-200d-1f33e.svg
new file mode 100644
index 000000000..4526ae450
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fd-200d-1f33e.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fd-200d-1f373.svg b/public/emoji/1f9d1-1f3fd-200d-1f373.svg
new file mode 100644
index 000000000..af6f1f272
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fd-200d-1f373.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fd-200d-1f393.svg b/public/emoji/1f9d1-1f3fd-200d-1f393.svg
new file mode 100644
index 000000000..5ca8a61e3
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fd-200d-1f393.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fd-200d-1f3a4.svg b/public/emoji/1f9d1-1f3fd-200d-1f3a4.svg
new file mode 100644
index 000000000..91929e063
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fd-200d-1f3a4.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fd-200d-1f3a8.svg b/public/emoji/1f9d1-1f3fd-200d-1f3a8.svg
new file mode 100644
index 000000000..5c9448c23
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fd-200d-1f3a8.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fd-200d-1f3eb.svg b/public/emoji/1f9d1-1f3fd-200d-1f3eb.svg
new file mode 100644
index 000000000..b9e6bd7e3
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fd-200d-1f3eb.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fd-200d-1f3ed.svg b/public/emoji/1f9d1-1f3fd-200d-1f3ed.svg
new file mode 100644
index 000000000..98518b075
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fd-200d-1f3ed.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fd-200d-1f4bb.svg b/public/emoji/1f9d1-1f3fd-200d-1f4bb.svg
new file mode 100644
index 000000000..83db71bd3
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fd-200d-1f4bb.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fd-200d-1f4bc.svg b/public/emoji/1f9d1-1f3fd-200d-1f4bc.svg
new file mode 100644
index 000000000..310edfecb
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fd-200d-1f4bc.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fd-200d-1f527.svg b/public/emoji/1f9d1-1f3fd-200d-1f527.svg
new file mode 100644
index 000000000..dbe729a91
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fd-200d-1f527.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fd-200d-1f52c.svg b/public/emoji/1f9d1-1f3fd-200d-1f52c.svg
new file mode 100644
index 000000000..fcf6cdb21
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fd-200d-1f52c.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fd-200d-1f680.svg b/public/emoji/1f9d1-1f3fd-200d-1f680.svg
new file mode 100644
index 000000000..59e3fb532
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fd-200d-1f680.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fd-200d-1f692.svg b/public/emoji/1f9d1-1f3fd-200d-1f692.svg
new file mode 100644
index 000000000..11503259b
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fd-200d-1f692.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fb.svg b/public/emoji/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fb.svg
index adf04f14e..95b71de9c 100644
--- a/public/emoji/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fb.svg
+++ b/public/emoji/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fc.svg b/public/emoji/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fc.svg
index 724aede5b..ccf18e15a 100644
--- a/public/emoji/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fc.svg
+++ b/public/emoji/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fd.svg b/public/emoji/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fd.svg
index 15c9bdfed..bd3e7124c 100644
--- a/public/emoji/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fd.svg
+++ b/public/emoji/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fe.svg b/public/emoji/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fe.svg
new file mode 100644
index 000000000..37b06f9be
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3fe.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3ff.svg b/public/emoji/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3ff.svg
new file mode 100644
index 000000000..4f85ab9ad
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fd-200d-1f91d-200d-1f9d1-1f3ff.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fd-200d-1f9af.svg b/public/emoji/1f9d1-1f3fd-200d-1f9af.svg
new file mode 100644
index 000000000..7db282e8d
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fd-200d-1f9af.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fd-200d-1f9b0.svg b/public/emoji/1f9d1-1f3fd-200d-1f9b0.svg
new file mode 100644
index 000000000..2a950baf5
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fd-200d-1f9b0.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fd-200d-1f9b1.svg b/public/emoji/1f9d1-1f3fd-200d-1f9b1.svg
new file mode 100644
index 000000000..e6547c13d
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fd-200d-1f9b1.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fd-200d-1f9b2.svg b/public/emoji/1f9d1-1f3fd-200d-1f9b2.svg
new file mode 100644
index 000000000..fe56d2a9d
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fd-200d-1f9b2.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fd-200d-1f9b3.svg b/public/emoji/1f9d1-1f3fd-200d-1f9b3.svg
new file mode 100644
index 000000000..369b94157
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fd-200d-1f9b3.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fd-200d-1f9bc.svg b/public/emoji/1f9d1-1f3fd-200d-1f9bc.svg
new file mode 100644
index 000000000..a7352ece2
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fd-200d-1f9bc.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fd-200d-1f9bd.svg b/public/emoji/1f9d1-1f3fd-200d-1f9bd.svg
new file mode 100644
index 000000000..baac4da8b
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fd-200d-1f9bd.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fd-200d-2695-fe0f.svg b/public/emoji/1f9d1-1f3fd-200d-2695-fe0f.svg
new file mode 100644
index 000000000..8361c3a0d
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fd-200d-2695-fe0f.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fd-200d-2696-fe0f.svg b/public/emoji/1f9d1-1f3fd-200d-2696-fe0f.svg
new file mode 100644
index 000000000..5c8816e3e
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fd-200d-2696-fe0f.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fd-200d-2708-fe0f.svg b/public/emoji/1f9d1-1f3fd-200d-2708-fe0f.svg
new file mode 100644
index 000000000..55592e38b
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fd-200d-2708-fe0f.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fd.svg b/public/emoji/1f9d1-1f3fd.svg
index 814791047..892d26225 100644
--- a/public/emoji/1f9d1-1f3fd.svg
+++ b/public/emoji/1f9d1-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fe-200d-1f33e.svg b/public/emoji/1f9d1-1f3fe-200d-1f33e.svg
new file mode 100644
index 000000000..c2cfa0a75
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fe-200d-1f33e.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fe-200d-1f373.svg b/public/emoji/1f9d1-1f3fe-200d-1f373.svg
new file mode 100644
index 000000000..1c9bbf3c2
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fe-200d-1f373.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fe-200d-1f393.svg b/public/emoji/1f9d1-1f3fe-200d-1f393.svg
new file mode 100644
index 000000000..fbf4897f3
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fe-200d-1f393.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fe-200d-1f3a4.svg b/public/emoji/1f9d1-1f3fe-200d-1f3a4.svg
new file mode 100644
index 000000000..756b24fb4
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fe-200d-1f3a4.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fe-200d-1f3a8.svg b/public/emoji/1f9d1-1f3fe-200d-1f3a8.svg
new file mode 100644
index 000000000..b3e5d45ea
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fe-200d-1f3a8.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fe-200d-1f3eb.svg b/public/emoji/1f9d1-1f3fe-200d-1f3eb.svg
new file mode 100644
index 000000000..c9769d992
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fe-200d-1f3eb.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fe-200d-1f3ed.svg b/public/emoji/1f9d1-1f3fe-200d-1f3ed.svg
new file mode 100644
index 000000000..891e38ae3
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fe-200d-1f3ed.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fe-200d-1f4bb.svg b/public/emoji/1f9d1-1f3fe-200d-1f4bb.svg
new file mode 100644
index 000000000..fa7b724c7
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fe-200d-1f4bb.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fe-200d-1f4bc.svg b/public/emoji/1f9d1-1f3fe-200d-1f4bc.svg
new file mode 100644
index 000000000..ee31db061
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fe-200d-1f4bc.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fe-200d-1f527.svg b/public/emoji/1f9d1-1f3fe-200d-1f527.svg
new file mode 100644
index 000000000..e70a61688
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fe-200d-1f527.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fe-200d-1f52c.svg b/public/emoji/1f9d1-1f3fe-200d-1f52c.svg
new file mode 100644
index 000000000..d9ca99fad
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fe-200d-1f52c.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fe-200d-1f680.svg b/public/emoji/1f9d1-1f3fe-200d-1f680.svg
new file mode 100644
index 000000000..f747a9329
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fe-200d-1f680.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fe-200d-1f692.svg b/public/emoji/1f9d1-1f3fe-200d-1f692.svg
new file mode 100644
index 000000000..994939d54
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fe-200d-1f692.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fb.svg b/public/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fb.svg
index c14a8e794..c00782bff 100644
--- a/public/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fb.svg
+++ b/public/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fc.svg b/public/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fc.svg
index dff165ed5..581eac9f0 100644
--- a/public/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fc.svg
+++ b/public/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fd.svg b/public/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fd.svg
index 19a8dab4c..565c1cffe 100644
--- a/public/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fd.svg
+++ b/public/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fe.svg b/public/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fe.svg
index 54c46de87..7bad57771 100644
--- a/public/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fe.svg
+++ b/public/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3ff.svg b/public/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3ff.svg
new file mode 100644
index 000000000..be44c06b3
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fe-200d-1f91d-200d-1f9d1-1f3ff.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fe-200d-1f9af.svg b/public/emoji/1f9d1-1f3fe-200d-1f9af.svg
new file mode 100644
index 000000000..bc64dc3d2
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fe-200d-1f9af.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fe-200d-1f9b0.svg b/public/emoji/1f9d1-1f3fe-200d-1f9b0.svg
new file mode 100644
index 000000000..4a29c3fd1
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fe-200d-1f9b0.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fe-200d-1f9b1.svg b/public/emoji/1f9d1-1f3fe-200d-1f9b1.svg
new file mode 100644
index 000000000..a1824afc9
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fe-200d-1f9b1.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fe-200d-1f9b2.svg b/public/emoji/1f9d1-1f3fe-200d-1f9b2.svg
new file mode 100644
index 000000000..9139c2fa3
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fe-200d-1f9b2.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fe-200d-1f9b3.svg b/public/emoji/1f9d1-1f3fe-200d-1f9b3.svg
new file mode 100644
index 000000000..a5559283c
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fe-200d-1f9b3.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fe-200d-1f9bc.svg b/public/emoji/1f9d1-1f3fe-200d-1f9bc.svg
new file mode 100644
index 000000000..d83b937d0
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fe-200d-1f9bc.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fe-200d-1f9bd.svg b/public/emoji/1f9d1-1f3fe-200d-1f9bd.svg
new file mode 100644
index 000000000..1f3215c17
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fe-200d-1f9bd.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fe-200d-2695-fe0f.svg b/public/emoji/1f9d1-1f3fe-200d-2695-fe0f.svg
new file mode 100644
index 000000000..f0835140f
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fe-200d-2695-fe0f.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fe-200d-2696-fe0f.svg b/public/emoji/1f9d1-1f3fe-200d-2696-fe0f.svg
new file mode 100644
index 000000000..fcf4bead7
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fe-200d-2696-fe0f.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fe-200d-2708-fe0f.svg b/public/emoji/1f9d1-1f3fe-200d-2708-fe0f.svg
new file mode 100644
index 000000000..0f059a9ce
--- /dev/null
+++ b/public/emoji/1f9d1-1f3fe-200d-2708-fe0f.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3fe.svg b/public/emoji/1f9d1-1f3fe.svg
index 0b0527e98..ee05425fe 100644
--- a/public/emoji/1f9d1-1f3fe.svg
+++ b/public/emoji/1f9d1-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3ff-200d-1f33e.svg b/public/emoji/1f9d1-1f3ff-200d-1f33e.svg
new file mode 100644
index 000000000..6b9286b86
--- /dev/null
+++ b/public/emoji/1f9d1-1f3ff-200d-1f33e.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3ff-200d-1f373.svg b/public/emoji/1f9d1-1f3ff-200d-1f373.svg
new file mode 100644
index 000000000..bb79b4b8d
--- /dev/null
+++ b/public/emoji/1f9d1-1f3ff-200d-1f373.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3ff-200d-1f393.svg b/public/emoji/1f9d1-1f3ff-200d-1f393.svg
new file mode 100644
index 000000000..6d7689e48
--- /dev/null
+++ b/public/emoji/1f9d1-1f3ff-200d-1f393.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3ff-200d-1f3a4.svg b/public/emoji/1f9d1-1f3ff-200d-1f3a4.svg
new file mode 100644
index 000000000..3e4407fc3
--- /dev/null
+++ b/public/emoji/1f9d1-1f3ff-200d-1f3a4.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3ff-200d-1f3a8.svg b/public/emoji/1f9d1-1f3ff-200d-1f3a8.svg
new file mode 100644
index 000000000..499729b0a
--- /dev/null
+++ b/public/emoji/1f9d1-1f3ff-200d-1f3a8.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3ff-200d-1f3eb.svg b/public/emoji/1f9d1-1f3ff-200d-1f3eb.svg
new file mode 100644
index 000000000..b9ac53102
--- /dev/null
+++ b/public/emoji/1f9d1-1f3ff-200d-1f3eb.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3ff-200d-1f3ed.svg b/public/emoji/1f9d1-1f3ff-200d-1f3ed.svg
new file mode 100644
index 000000000..bc66d2213
--- /dev/null
+++ b/public/emoji/1f9d1-1f3ff-200d-1f3ed.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3ff-200d-1f4bb.svg b/public/emoji/1f9d1-1f3ff-200d-1f4bb.svg
new file mode 100644
index 000000000..d79adc7ed
--- /dev/null
+++ b/public/emoji/1f9d1-1f3ff-200d-1f4bb.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3ff-200d-1f4bc.svg b/public/emoji/1f9d1-1f3ff-200d-1f4bc.svg
new file mode 100644
index 000000000..b08175e38
--- /dev/null
+++ b/public/emoji/1f9d1-1f3ff-200d-1f4bc.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3ff-200d-1f527.svg b/public/emoji/1f9d1-1f3ff-200d-1f527.svg
new file mode 100644
index 000000000..015b39c35
--- /dev/null
+++ b/public/emoji/1f9d1-1f3ff-200d-1f527.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3ff-200d-1f52c.svg b/public/emoji/1f9d1-1f3ff-200d-1f52c.svg
new file mode 100644
index 000000000..ff1a170d2
--- /dev/null
+++ b/public/emoji/1f9d1-1f3ff-200d-1f52c.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3ff-200d-1f680.svg b/public/emoji/1f9d1-1f3ff-200d-1f680.svg
new file mode 100644
index 000000000..5939ba5d6
--- /dev/null
+++ b/public/emoji/1f9d1-1f3ff-200d-1f680.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3ff-200d-1f692.svg b/public/emoji/1f9d1-1f3ff-200d-1f692.svg
new file mode 100644
index 000000000..c51348cd1
--- /dev/null
+++ b/public/emoji/1f9d1-1f3ff-200d-1f692.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fb.svg b/public/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fb.svg
index cbcfecadc..a01b2c97d 100644
--- a/public/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fb.svg
+++ b/public/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fc.svg b/public/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fc.svg
index fce4c9184..87d818117 100644
--- a/public/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fc.svg
+++ b/public/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fd.svg b/public/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fd.svg
index 84e2b2bd8..0eb84d09f 100644
--- a/public/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fd.svg
+++ b/public/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fe.svg b/public/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fe.svg
index d0ba4cd18..0526a3e04 100644
--- a/public/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fe.svg
+++ b/public/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3ff.svg b/public/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3ff.svg
index e0cb1e2bb..29dbea243 100644
--- a/public/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3ff.svg
+++ b/public/emoji/1f9d1-1f3ff-200d-1f91d-200d-1f9d1-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3ff-200d-1f9af.svg b/public/emoji/1f9d1-1f3ff-200d-1f9af.svg
new file mode 100644
index 000000000..d46aa0a3a
--- /dev/null
+++ b/public/emoji/1f9d1-1f3ff-200d-1f9af.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3ff-200d-1f9b0.svg b/public/emoji/1f9d1-1f3ff-200d-1f9b0.svg
new file mode 100644
index 000000000..4e8b888f6
--- /dev/null
+++ b/public/emoji/1f9d1-1f3ff-200d-1f9b0.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3ff-200d-1f9b1.svg b/public/emoji/1f9d1-1f3ff-200d-1f9b1.svg
new file mode 100644
index 000000000..e6a22f151
--- /dev/null
+++ b/public/emoji/1f9d1-1f3ff-200d-1f9b1.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3ff-200d-1f9b2.svg b/public/emoji/1f9d1-1f3ff-200d-1f9b2.svg
new file mode 100644
index 000000000..a5e06b8a6
--- /dev/null
+++ b/public/emoji/1f9d1-1f3ff-200d-1f9b2.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3ff-200d-1f9b3.svg b/public/emoji/1f9d1-1f3ff-200d-1f9b3.svg
new file mode 100644
index 000000000..a9abb9792
--- /dev/null
+++ b/public/emoji/1f9d1-1f3ff-200d-1f9b3.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3ff-200d-1f9bc.svg b/public/emoji/1f9d1-1f3ff-200d-1f9bc.svg
new file mode 100644
index 000000000..b82a52246
--- /dev/null
+++ b/public/emoji/1f9d1-1f3ff-200d-1f9bc.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3ff-200d-1f9bd.svg b/public/emoji/1f9d1-1f3ff-200d-1f9bd.svg
new file mode 100644
index 000000000..ffa7e8631
--- /dev/null
+++ b/public/emoji/1f9d1-1f3ff-200d-1f9bd.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3ff-200d-2695-fe0f.svg b/public/emoji/1f9d1-1f3ff-200d-2695-fe0f.svg
new file mode 100644
index 000000000..63a0b4bc4
--- /dev/null
+++ b/public/emoji/1f9d1-1f3ff-200d-2695-fe0f.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3ff-200d-2696-fe0f.svg b/public/emoji/1f9d1-1f3ff-200d-2696-fe0f.svg
new file mode 100644
index 000000000..10b9d96fd
--- /dev/null
+++ b/public/emoji/1f9d1-1f3ff-200d-2696-fe0f.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3ff-200d-2708-fe0f.svg b/public/emoji/1f9d1-1f3ff-200d-2708-fe0f.svg
new file mode 100644
index 000000000..0ba368680
--- /dev/null
+++ b/public/emoji/1f9d1-1f3ff-200d-2708-fe0f.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-1f3ff.svg b/public/emoji/1f9d1-1f3ff.svg
index 6d56d1868..64832fee4 100644
--- a/public/emoji/1f9d1-1f3ff.svg
+++ b/public/emoji/1f9d1-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-200d-1f33e.svg b/public/emoji/1f9d1-200d-1f33e.svg
new file mode 100644
index 000000000..56eba79e9
--- /dev/null
+++ b/public/emoji/1f9d1-200d-1f33e.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-200d-1f373.svg b/public/emoji/1f9d1-200d-1f373.svg
new file mode 100644
index 000000000..21a99bf52
--- /dev/null
+++ b/public/emoji/1f9d1-200d-1f373.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-200d-1f393.svg b/public/emoji/1f9d1-200d-1f393.svg
new file mode 100644
index 000000000..1befeaa62
--- /dev/null
+++ b/public/emoji/1f9d1-200d-1f393.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-200d-1f3a4.svg b/public/emoji/1f9d1-200d-1f3a4.svg
new file mode 100644
index 000000000..9b138a809
--- /dev/null
+++ b/public/emoji/1f9d1-200d-1f3a4.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-200d-1f3a8.svg b/public/emoji/1f9d1-200d-1f3a8.svg
new file mode 100644
index 000000000..6271635a9
--- /dev/null
+++ b/public/emoji/1f9d1-200d-1f3a8.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-200d-1f3eb.svg b/public/emoji/1f9d1-200d-1f3eb.svg
new file mode 100644
index 000000000..ec3858a5a
--- /dev/null
+++ b/public/emoji/1f9d1-200d-1f3eb.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-200d-1f3ed.svg b/public/emoji/1f9d1-200d-1f3ed.svg
new file mode 100644
index 000000000..21c22e209
--- /dev/null
+++ b/public/emoji/1f9d1-200d-1f3ed.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-200d-1f4bb.svg b/public/emoji/1f9d1-200d-1f4bb.svg
new file mode 100644
index 000000000..d89d8a0b6
--- /dev/null
+++ b/public/emoji/1f9d1-200d-1f4bb.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-200d-1f4bc.svg b/public/emoji/1f9d1-200d-1f4bc.svg
new file mode 100644
index 000000000..d88ae0d4c
--- /dev/null
+++ b/public/emoji/1f9d1-200d-1f4bc.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-200d-1f527.svg b/public/emoji/1f9d1-200d-1f527.svg
new file mode 100644
index 000000000..489d5b3e0
--- /dev/null
+++ b/public/emoji/1f9d1-200d-1f527.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-200d-1f52c.svg b/public/emoji/1f9d1-200d-1f52c.svg
new file mode 100644
index 000000000..6e760049a
--- /dev/null
+++ b/public/emoji/1f9d1-200d-1f52c.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-200d-1f680.svg b/public/emoji/1f9d1-200d-1f680.svg
new file mode 100644
index 000000000..be96b03f3
--- /dev/null
+++ b/public/emoji/1f9d1-200d-1f680.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-200d-1f692.svg b/public/emoji/1f9d1-200d-1f692.svg
new file mode 100644
index 000000000..588500131
--- /dev/null
+++ b/public/emoji/1f9d1-200d-1f692.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-200d-1f91d-200d-1f9d1.svg b/public/emoji/1f9d1-200d-1f91d-200d-1f9d1.svg
index f7e46f210..6c3d407c4 100644
--- a/public/emoji/1f9d1-200d-1f91d-200d-1f9d1.svg
+++ b/public/emoji/1f9d1-200d-1f91d-200d-1f9d1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-200d-1f9af.svg b/public/emoji/1f9d1-200d-1f9af.svg
new file mode 100644
index 000000000..a43e28070
--- /dev/null
+++ b/public/emoji/1f9d1-200d-1f9af.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-200d-1f9b0.svg b/public/emoji/1f9d1-200d-1f9b0.svg
new file mode 100644
index 000000000..682b59106
--- /dev/null
+++ b/public/emoji/1f9d1-200d-1f9b0.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-200d-1f9b1.svg b/public/emoji/1f9d1-200d-1f9b1.svg
new file mode 100644
index 000000000..aa5479941
--- /dev/null
+++ b/public/emoji/1f9d1-200d-1f9b1.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-200d-1f9b2.svg b/public/emoji/1f9d1-200d-1f9b2.svg
new file mode 100644
index 000000000..e8732a599
--- /dev/null
+++ b/public/emoji/1f9d1-200d-1f9b2.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-200d-1f9b3.svg b/public/emoji/1f9d1-200d-1f9b3.svg
new file mode 100644
index 000000000..baaf5ffd6
--- /dev/null
+++ b/public/emoji/1f9d1-200d-1f9b3.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-200d-1f9bc.svg b/public/emoji/1f9d1-200d-1f9bc.svg
new file mode 100644
index 000000000..257d1e3b3
--- /dev/null
+++ b/public/emoji/1f9d1-200d-1f9bc.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-200d-1f9bd.svg b/public/emoji/1f9d1-200d-1f9bd.svg
new file mode 100644
index 000000000..e6acf9846
--- /dev/null
+++ b/public/emoji/1f9d1-200d-1f9bd.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-200d-2695-fe0f.svg b/public/emoji/1f9d1-200d-2695-fe0f.svg
new file mode 100644
index 000000000..c33867ab5
--- /dev/null
+++ b/public/emoji/1f9d1-200d-2695-fe0f.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-200d-2696-fe0f.svg b/public/emoji/1f9d1-200d-2696-fe0f.svg
new file mode 100644
index 000000000..34d420d4e
--- /dev/null
+++ b/public/emoji/1f9d1-200d-2696-fe0f.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1-200d-2708-fe0f.svg b/public/emoji/1f9d1-200d-2708-fe0f.svg
new file mode 100644
index 000000000..ab9e11bd1
--- /dev/null
+++ b/public/emoji/1f9d1-200d-2708-fe0f.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/emoji/1f9d1.svg b/public/emoji/1f9d1.svg
index db7b14fe0..3c71659ec 100644
--- a/public/emoji/1f9d1.svg
+++ b/public/emoji/1f9d1.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d2-1f3fb.svg b/public/emoji/1f9d2-1f3fb.svg
index 188dea00e..59fdd03f5 100644
--- a/public/emoji/1f9d2-1f3fb.svg
+++ b/public/emoji/1f9d2-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d2-1f3fc.svg b/public/emoji/1f9d2-1f3fc.svg
index ab1c21218..0b0386dc9 100644
--- a/public/emoji/1f9d2-1f3fc.svg
+++ b/public/emoji/1f9d2-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d2-1f3fd.svg b/public/emoji/1f9d2-1f3fd.svg
index 467f99e45..cba8e6679 100644
--- a/public/emoji/1f9d2-1f3fd.svg
+++ b/public/emoji/1f9d2-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d2-1f3fe.svg b/public/emoji/1f9d2-1f3fe.svg
index 2b9aec1b3..62abe30a0 100644
--- a/public/emoji/1f9d2-1f3fe.svg
+++ b/public/emoji/1f9d2-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d2-1f3ff.svg b/public/emoji/1f9d2-1f3ff.svg
index 3de0af2df..180f8f361 100644
--- a/public/emoji/1f9d2-1f3ff.svg
+++ b/public/emoji/1f9d2-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d2.svg b/public/emoji/1f9d2.svg
index f2a0aa300..23dce9f16 100644
--- a/public/emoji/1f9d2.svg
+++ b/public/emoji/1f9d2.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d3-1f3fb.svg b/public/emoji/1f9d3-1f3fb.svg
index e7dce37af..28b9a2d10 100644
--- a/public/emoji/1f9d3-1f3fb.svg
+++ b/public/emoji/1f9d3-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d3-1f3fc.svg b/public/emoji/1f9d3-1f3fc.svg
index 9dbd38ed5..c484efd85 100644
--- a/public/emoji/1f9d3-1f3fc.svg
+++ b/public/emoji/1f9d3-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d3-1f3fd.svg b/public/emoji/1f9d3-1f3fd.svg
index 9194aca9f..5010b969f 100644
--- a/public/emoji/1f9d3-1f3fd.svg
+++ b/public/emoji/1f9d3-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d3-1f3fe.svg b/public/emoji/1f9d3-1f3fe.svg
index 16a87db41..98df63c6a 100644
--- a/public/emoji/1f9d3-1f3fe.svg
+++ b/public/emoji/1f9d3-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d3-1f3ff.svg b/public/emoji/1f9d3-1f3ff.svg
index 6a4b741df..d4f781dc7 100644
--- a/public/emoji/1f9d3-1f3ff.svg
+++ b/public/emoji/1f9d3-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d3.svg b/public/emoji/1f9d3.svg
index 920069772..ad713bb08 100644
--- a/public/emoji/1f9d3.svg
+++ b/public/emoji/1f9d3.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d4-1f3fb.svg b/public/emoji/1f9d4-1f3fb.svg
index 823e9cbf2..f70cdfe7d 100644
--- a/public/emoji/1f9d4-1f3fb.svg
+++ b/public/emoji/1f9d4-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d4-1f3fc.svg b/public/emoji/1f9d4-1f3fc.svg
index 5a3dded42..5006795a3 100644
--- a/public/emoji/1f9d4-1f3fc.svg
+++ b/public/emoji/1f9d4-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d4-1f3fd.svg b/public/emoji/1f9d4-1f3fd.svg
index 5346429f3..9caabe780 100644
--- a/public/emoji/1f9d4-1f3fd.svg
+++ b/public/emoji/1f9d4-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d4-1f3fe.svg b/public/emoji/1f9d4-1f3fe.svg
index 3a1941d26..6dd4b0a54 100644
--- a/public/emoji/1f9d4-1f3fe.svg
+++ b/public/emoji/1f9d4-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d4-1f3ff.svg b/public/emoji/1f9d4-1f3ff.svg
index 7790ff998..b994169ba 100644
--- a/public/emoji/1f9d4-1f3ff.svg
+++ b/public/emoji/1f9d4-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d4.svg b/public/emoji/1f9d4.svg
index ca23c872a..edabdc0cd 100644
--- a/public/emoji/1f9d4.svg
+++ b/public/emoji/1f9d4.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d6-1f3fb.svg b/public/emoji/1f9d6-1f3fb.svg
index 98c29804f..cf686c459 100644
--- a/public/emoji/1f9d6-1f3fb.svg
+++ b/public/emoji/1f9d6-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d6-1f3fc.svg b/public/emoji/1f9d6-1f3fc.svg
index 976146def..1ab495c72 100644
--- a/public/emoji/1f9d6-1f3fc.svg
+++ b/public/emoji/1f9d6-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d6-1f3fd.svg b/public/emoji/1f9d6-1f3fd.svg
index b29750071..d2611e997 100644
--- a/public/emoji/1f9d6-1f3fd.svg
+++ b/public/emoji/1f9d6-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d6-1f3fe.svg b/public/emoji/1f9d6-1f3fe.svg
index 935ff3290..bc36bf29b 100644
--- a/public/emoji/1f9d6-1f3fe.svg
+++ b/public/emoji/1f9d6-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d6-1f3ff.svg b/public/emoji/1f9d6-1f3ff.svg
index 1c0862f7a..4402aab37 100644
--- a/public/emoji/1f9d6-1f3ff.svg
+++ b/public/emoji/1f9d6-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d6.svg b/public/emoji/1f9d6.svg
index f1d0343e3..497443356 100644
--- a/public/emoji/1f9d6.svg
+++ b/public/emoji/1f9d6.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d7-1f3fb.svg b/public/emoji/1f9d7-1f3fb.svg
index 5d7450bdf..357d5054e 100644
--- a/public/emoji/1f9d7-1f3fb.svg
+++ b/public/emoji/1f9d7-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d7-1f3fc.svg b/public/emoji/1f9d7-1f3fc.svg
index a8fed1463..0475ced3c 100644
--- a/public/emoji/1f9d7-1f3fc.svg
+++ b/public/emoji/1f9d7-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d7-1f3fd.svg b/public/emoji/1f9d7-1f3fd.svg
index 8e7e28608..a208c734b 100644
--- a/public/emoji/1f9d7-1f3fd.svg
+++ b/public/emoji/1f9d7-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d7-1f3fe.svg b/public/emoji/1f9d7-1f3fe.svg
index fc16b859e..65169635b 100644
--- a/public/emoji/1f9d7-1f3fe.svg
+++ b/public/emoji/1f9d7-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d7-1f3ff.svg b/public/emoji/1f9d7-1f3ff.svg
index 2a9524e2e..4b64961e2 100644
--- a/public/emoji/1f9d7-1f3ff.svg
+++ b/public/emoji/1f9d7-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d7.svg b/public/emoji/1f9d7.svg
index bb4970996..9709f8621 100644
--- a/public/emoji/1f9d7.svg
+++ b/public/emoji/1f9d7.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d8-1f3fb.svg b/public/emoji/1f9d8-1f3fb.svg
index e51d2e439..39cbf7f72 100644
--- a/public/emoji/1f9d8-1f3fb.svg
+++ b/public/emoji/1f9d8-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d8-1f3fc.svg b/public/emoji/1f9d8-1f3fc.svg
index 079727076..3eaa3d88b 100644
--- a/public/emoji/1f9d8-1f3fc.svg
+++ b/public/emoji/1f9d8-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d8-1f3fd.svg b/public/emoji/1f9d8-1f3fd.svg
index 010541a1e..6af0877be 100644
--- a/public/emoji/1f9d8-1f3fd.svg
+++ b/public/emoji/1f9d8-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d8-1f3fe.svg b/public/emoji/1f9d8-1f3fe.svg
index 71bc5ad76..e189a9ea1 100644
--- a/public/emoji/1f9d8-1f3fe.svg
+++ b/public/emoji/1f9d8-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d8-1f3ff.svg b/public/emoji/1f9d8-1f3ff.svg
index 5cc0fb7d4..b09ba9e95 100644
--- a/public/emoji/1f9d8-1f3ff.svg
+++ b/public/emoji/1f9d8-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d8.svg b/public/emoji/1f9d8.svg
index 8fcb70fb6..e6b30ed1f 100644
--- a/public/emoji/1f9d8.svg
+++ b/public/emoji/1f9d8.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d9-1f3fb.svg b/public/emoji/1f9d9-1f3fb.svg
index 7f07ddab6..9f5bd3613 100644
--- a/public/emoji/1f9d9-1f3fb.svg
+++ b/public/emoji/1f9d9-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d9-1f3fc.svg b/public/emoji/1f9d9-1f3fc.svg
index 3b981e929..9277d4bdb 100644
--- a/public/emoji/1f9d9-1f3fc.svg
+++ b/public/emoji/1f9d9-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d9-1f3fd.svg b/public/emoji/1f9d9-1f3fd.svg
index 936629d27..0bdb235b4 100644
--- a/public/emoji/1f9d9-1f3fd.svg
+++ b/public/emoji/1f9d9-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d9-1f3fe.svg b/public/emoji/1f9d9-1f3fe.svg
index f83e59baa..de5dc0711 100644
--- a/public/emoji/1f9d9-1f3fe.svg
+++ b/public/emoji/1f9d9-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d9-1f3ff.svg b/public/emoji/1f9d9-1f3ff.svg
index 91482a151..0bd73e868 100644
--- a/public/emoji/1f9d9-1f3ff.svg
+++ b/public/emoji/1f9d9-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9d9.svg b/public/emoji/1f9d9.svg
index c747b3446..553708315 100644
--- a/public/emoji/1f9d9.svg
+++ b/public/emoji/1f9d9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9da-1f3fb.svg b/public/emoji/1f9da-1f3fb.svg
index e75c0b200..d89d15540 100644
--- a/public/emoji/1f9da-1f3fb.svg
+++ b/public/emoji/1f9da-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9da-1f3fc.svg b/public/emoji/1f9da-1f3fc.svg
index 3572c60d1..427b84da8 100644
--- a/public/emoji/1f9da-1f3fc.svg
+++ b/public/emoji/1f9da-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9da-1f3fd.svg b/public/emoji/1f9da-1f3fd.svg
index 9af4964ad..108f96a99 100644
--- a/public/emoji/1f9da-1f3fd.svg
+++ b/public/emoji/1f9da-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9da-1f3fe.svg b/public/emoji/1f9da-1f3fe.svg
index 00d57b1ec..50d0f22ce 100644
--- a/public/emoji/1f9da-1f3fe.svg
+++ b/public/emoji/1f9da-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9da-1f3ff.svg b/public/emoji/1f9da-1f3ff.svg
index ce1e45dc4..68d77af80 100644
--- a/public/emoji/1f9da-1f3ff.svg
+++ b/public/emoji/1f9da-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9da.svg b/public/emoji/1f9da.svg
index 7a60a49c8..5c9ea3625 100644
--- a/public/emoji/1f9da.svg
+++ b/public/emoji/1f9da.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9db-1f3fb.svg b/public/emoji/1f9db-1f3fb.svg
index 6c790428d..a341fe997 100644
--- a/public/emoji/1f9db-1f3fb.svg
+++ b/public/emoji/1f9db-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9db-1f3fc.svg b/public/emoji/1f9db-1f3fc.svg
index fe6e755e1..4fed8b224 100644
--- a/public/emoji/1f9db-1f3fc.svg
+++ b/public/emoji/1f9db-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9db-1f3fd.svg b/public/emoji/1f9db-1f3fd.svg
index abcb25899..21b2a188d 100644
--- a/public/emoji/1f9db-1f3fd.svg
+++ b/public/emoji/1f9db-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9db-1f3fe.svg b/public/emoji/1f9db-1f3fe.svg
index bd9e32b80..e1154e59f 100644
--- a/public/emoji/1f9db-1f3fe.svg
+++ b/public/emoji/1f9db-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9db-1f3ff.svg b/public/emoji/1f9db-1f3ff.svg
index d611a42c6..a30ee9299 100644
--- a/public/emoji/1f9db-1f3ff.svg
+++ b/public/emoji/1f9db-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9db.svg b/public/emoji/1f9db.svg
index b2192234b..642dc3a9d 100644
--- a/public/emoji/1f9db.svg
+++ b/public/emoji/1f9db.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9dc-1f3fb.svg b/public/emoji/1f9dc-1f3fb.svg
index e211b06a1..7529d0eb6 100644
--- a/public/emoji/1f9dc-1f3fb.svg
+++ b/public/emoji/1f9dc-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9dc-1f3fc.svg b/public/emoji/1f9dc-1f3fc.svg
index de8fa7329..8d014d122 100644
--- a/public/emoji/1f9dc-1f3fc.svg
+++ b/public/emoji/1f9dc-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9dc-1f3fd.svg b/public/emoji/1f9dc-1f3fd.svg
index 0ad162b31..fcd5e0ab5 100644
--- a/public/emoji/1f9dc-1f3fd.svg
+++ b/public/emoji/1f9dc-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9dc-1f3fe.svg b/public/emoji/1f9dc-1f3fe.svg
index 5f71af9d0..e9e20c6e2 100644
--- a/public/emoji/1f9dc-1f3fe.svg
+++ b/public/emoji/1f9dc-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9dc-1f3ff.svg b/public/emoji/1f9dc-1f3ff.svg
index f2932edee..a075dc9a8 100644
--- a/public/emoji/1f9dc-1f3ff.svg
+++ b/public/emoji/1f9dc-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9dc.svg b/public/emoji/1f9dc.svg
index 750f24335..52f120c41 100644
--- a/public/emoji/1f9dc.svg
+++ b/public/emoji/1f9dc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9dd-1f3fb.svg b/public/emoji/1f9dd-1f3fb.svg
index 95c77d46d..5646b908b 100644
--- a/public/emoji/1f9dd-1f3fb.svg
+++ b/public/emoji/1f9dd-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9dd-1f3fc.svg b/public/emoji/1f9dd-1f3fc.svg
index d65388c84..424624865 100644
--- a/public/emoji/1f9dd-1f3fc.svg
+++ b/public/emoji/1f9dd-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9dd-1f3fd.svg b/public/emoji/1f9dd-1f3fd.svg
index 9633b7dfa..f96868bfe 100644
--- a/public/emoji/1f9dd-1f3fd.svg
+++ b/public/emoji/1f9dd-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9dd-1f3fe.svg b/public/emoji/1f9dd-1f3fe.svg
index 61d69acfe..e127507a3 100644
--- a/public/emoji/1f9dd-1f3fe.svg
+++ b/public/emoji/1f9dd-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9dd-1f3ff.svg b/public/emoji/1f9dd-1f3ff.svg
index 49faa0928..47cf437e2 100644
--- a/public/emoji/1f9dd-1f3ff.svg
+++ b/public/emoji/1f9dd-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9dd.svg b/public/emoji/1f9dd.svg
index f9c1e97a7..3e82899f3 100644
--- a/public/emoji/1f9dd.svg
+++ b/public/emoji/1f9dd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9de.svg b/public/emoji/1f9de.svg
index af17a48e7..95be289b3 100644
--- a/public/emoji/1f9de.svg
+++ b/public/emoji/1f9de.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/1f9df.svg b/public/emoji/1f9df.svg
index 21674c3b2..596a02fd2 100644
--- a/public/emoji/1f9df.svg
+++ b/public/emoji/1f9df.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/26f9-1f3fb.svg b/public/emoji/26f9-1f3fb.svg
index 78a8b5d49..836b94b8a 100644
--- a/public/emoji/26f9-1f3fb.svg
+++ b/public/emoji/26f9-1f3fb.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/26f9-1f3fc.svg b/public/emoji/26f9-1f3fc.svg
index fb2b1e1b5..0c3662e1d 100644
--- a/public/emoji/26f9-1f3fc.svg
+++ b/public/emoji/26f9-1f3fc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/26f9-1f3fd.svg b/public/emoji/26f9-1f3fd.svg
index 9282cee90..ee2eb3780 100644
--- a/public/emoji/26f9-1f3fd.svg
+++ b/public/emoji/26f9-1f3fd.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/26f9-1f3fe.svg b/public/emoji/26f9-1f3fe.svg
index d618e5a45..f6687c664 100644
--- a/public/emoji/26f9-1f3fe.svg
+++ b/public/emoji/26f9-1f3fe.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/26f9-1f3ff.svg b/public/emoji/26f9-1f3ff.svg
index c174ef8bc..435b37b82 100644
--- a/public/emoji/26f9-1f3ff.svg
+++ b/public/emoji/26f9-1f3ff.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/emoji/26f9.svg b/public/emoji/26f9.svg
index ee014e406..e772c2cd2 100644
--- a/public/emoji/26f9.svg
+++ b/public/emoji/26f9.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/inert.css b/public/inert.css
new file mode 100644
index 000000000..275fad2e6
--- /dev/null
+++ b/public/inert.css
@@ -0,0 +1,11 @@
+[inert] {
+ pointer-events: none;
+ cursor: default;
+}
+
+[inert], [inert] * {
+ user-select: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+}
diff --git a/spec/controllers/account_follow_controller_spec.rb b/spec/controllers/account_follow_controller_spec.rb
index ac15499be..9a93e1ebe 100644
--- a/spec/controllers/account_follow_controller_spec.rb
+++ b/spec/controllers/account_follow_controller_spec.rb
@@ -25,7 +25,7 @@ describe AccountFollowController do
sign_in(user)
subject
- expect(service).to have_received(:call).with(user.account, 'alice')
+ expect(service).to have_received(:call).with(user.account, alice, with_rate_limit: true)
expect(response).to redirect_to(account_path(alice))
end
end
diff --git a/spec/controllers/accounts_controller_spec.rb b/spec/controllers/accounts_controller_spec.rb
index 3d2a0665d..bd36f5494 100644
--- a/spec/controllers/accounts_controller_spec.rb
+++ b/spec/controllers/accounts_controller_spec.rb
@@ -3,108 +3,608 @@ require 'rails_helper'
RSpec.describe AccountsController, type: :controller do
render_views
- let(:alice) { Fabricate(:account, username: 'alice', user: Fabricate(:user)) }
- let(:eve) { Fabricate(:user) }
+ let(:account) { Fabricate(:user).account }
describe 'GET #show' do
- let!(:status1) { Status.create!(account: alice, text: 'Hello world') }
- let!(:status2) { Status.create!(account: alice, text: 'Boop', thread: status1) }
- let!(:status3) { Status.create!(account: alice, text: 'Picture!') }
- let!(:status4) { Status.create!(account: alice, text: 'Mentioning @alice') }
- let!(:status5) { Status.create!(account: alice, text: 'Kitsune') }
- let!(:status6) { Status.create!(account: alice, text: 'Neko') }
- let!(:status7) { Status.create!(account: alice, text: 'Tanuki') }
+ let(:format) { 'html' }
- let!(:status_pin1) { StatusPin.create!(account: alice, status: status5, created_at: 5.days.ago) }
- let!(:status_pin2) { StatusPin.create!(account: alice, status: status6, created_at: 2.years.ago) }
- let!(:status_pin3) { StatusPin.create!(account: alice, status: status7, created_at: 10.minutes.ago) }
+ let!(:status) { Fabricate(:status, account: account) }
+ let!(:status_reply) { Fabricate(:status, account: account, thread: Fabricate(:status)) }
+ let!(:status_self_reply) { Fabricate(:status, account: account, thread: status) }
+ let!(:status_media) { Fabricate(:status, account: account) }
+ let!(:status_pinned) { Fabricate(:status, account: account) }
+ let!(:status_private) { Fabricate(:status, account: account, visibility: :private) }
+ let!(:status_direct) { Fabricate(:status, account: account, visibility: :direct) }
+ let!(:status_reblog) { Fabricate(:status, account: account, reblog: Fabricate(:status)) }
before do
- alice.block!(eve.account)
- status3.media_attachments.create!(account: alice, file: fixture_file_upload('files/attachment.jpg', 'image/jpeg'))
+ status_media.media_attachments << Fabricate(:media_attachment, account: account, type: :image)
+ account.pinned_statuses << status_pinned
end
- shared_examples 'responses' do
- before do
- sign_in(current_user) if defined? current_user
- get :show, params: {
- username: alice.username,
- max_id: (max_id if defined? max_id),
- since_id: (since_id if defined? since_id),
- current_user: (current_user if defined? current_user),
- }, format: format
+ shared_examples 'preliminary checks' do
+ context 'when account is not approved' do
+ before do
+ account.user.update(approved: false)
+ end
+
+ it 'returns http not found' do
+ get :show, params: { username: account.username, format: format }
+ expect(response).to have_http_status(404)
+ end
end
- it 'assigns @account' do
- expect(assigns(:account)).to eq alice
- end
+ context 'when account is suspended' do
+ before do
+ account.suspend!
+ end
- it 'returns http success' do
- expect(response).to have_http_status(200)
- end
-
- it 'returns correct format' do
- expect(response.content_type).to eq content_type
+ it 'returns http gone' do
+ get :show, params: { username: account.username, format: format }
+ expect(response).to have_http_status(410)
+ end
end
end
- context 'activitystreams2' do
+ context 'as HTML' do
+ let(:format) { 'html' }
+
+ it_behaves_like 'preliminary checks'
+
+ shared_examples 'common response characteristics' do
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include ActivityPub::TagManager.instance.uri_for(account)
+ end
+
+ it 'renders show template' do
+ expect(response).to render_template(:show)
+ end
+ end
+
+ context do
+ before do
+ get :show, params: { username: account.username, format: format }
+ end
+
+ it_behaves_like 'common response characteristics'
+
+ it 'renders public status' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status))
+ end
+
+ it 'renders self-reply' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_self_reply))
+ end
+
+ it 'renders status with media' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_media))
+ end
+
+ it 'renders reblog' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_reblog.reblog))
+ end
+
+ it 'renders pinned status' do
+ expect(response.body).to include(I18n.t('stream_entries.pinned'))
+ end
+
+ it 'does not render private status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private))
+ end
+
+ it 'does not render direct status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_direct))
+ end
+
+ it 'does not render reply to someone else' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reply))
+ end
+ end
+
+ context 'when signed-in' do
+ let(:user) { Fabricate(:user) }
+
+ before do
+ sign_in(user)
+ end
+
+ context 'when user follows account' do
+ before do
+ user.account.follow!(account)
+ get :show, params: { username: account.username, format: format }
+ end
+
+ it 'does not render private status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private))
+ end
+ end
+
+ context 'when user is blocked' do
+ before do
+ account.block!(user.account)
+ get :show, params: { username: account.username, format: format }
+ end
+
+ it 'renders unavailable message' do
+ expect(response.body).to include(I18n.t('accounts.unavailable'))
+ end
+
+ it 'does not render public status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status))
+ end
+
+ it 'does not render self-reply' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_self_reply))
+ end
+
+ it 'does not render status with media' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_media))
+ end
+
+ it 'does not render reblog' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reblog.reblog))
+ end
+
+ it 'does not render pinned status' do
+ expect(response.body).to_not include(I18n.t('stream_entries.pinned'))
+ end
+
+ it 'does not render private status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private))
+ end
+
+ it 'does not render direct status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_direct))
+ end
+
+ it 'does not render reply to someone else' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reply))
+ end
+ end
+ end
+
+ context 'with replies' do
+ before do
+ allow(controller).to receive(:replies_requested?).and_return(true)
+ get :show, params: { username: account.username, format: format }
+ end
+
+ it_behaves_like 'common response characteristics'
+
+ it 'renders public status' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status))
+ end
+
+ it 'renders self-reply' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_self_reply))
+ end
+
+ it 'renders status with media' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_media))
+ end
+
+ it 'renders reblog' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_reblog.reblog))
+ end
+
+ it 'does not render pinned status' do
+ expect(response.body).to_not include(I18n.t('stream_entries.pinned'))
+ end
+
+ it 'does not render private status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private))
+ end
+
+ it 'does not render direct status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_direct))
+ end
+
+ it 'renders reply to someone else' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_reply))
+ end
+ end
+
+ context 'with media' do
+ before do
+ allow(controller).to receive(:media_requested?).and_return(true)
+ get :show, params: { username: account.username, format: format }
+ end
+
+ it_behaves_like 'common response characteristics'
+
+ it 'does not render public status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status))
+ end
+
+ it 'does not render self-reply' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_self_reply))
+ end
+
+ it 'renders status with media' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_media))
+ end
+
+ it 'does not render reblog' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reblog.reblog))
+ end
+
+ it 'does not render pinned status' do
+ expect(response.body).to_not include(I18n.t('stream_entries.pinned'))
+ end
+
+ it 'does not render private status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private))
+ end
+
+ it 'does not render direct status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_direct))
+ end
+
+ it 'does not render reply to someone else' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reply))
+ end
+ end
+
+ context 'with tag' do
+ let(:tag) { Fabricate(:tag) }
+
+ let!(:status_tag) { Fabricate(:status, account: account) }
+
+ before do
+ allow(controller).to receive(:tag_requested?).and_return(true)
+ status_tag.tags << tag
+ get :show, params: { username: account.username, format: format, tag: tag.to_param }
+ end
+
+ it_behaves_like 'common response characteristics'
+
+ it 'does not render public status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status))
+ end
+
+ it 'does not render self-reply' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_self_reply))
+ end
+
+ it 'does not render status with media' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_media))
+ end
+
+ it 'does not render reblog' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reblog.reblog))
+ end
+
+ it 'does not render pinned status' do
+ expect(response.body).to_not include(I18n.t('stream_entries.pinned'))
+ end
+
+ it 'does not render private status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private))
+ end
+
+ it 'does not render direct status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_direct))
+ end
+
+ it 'does not render reply to someone else' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reply))
+ end
+
+ it 'renders status with tag' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_tag))
+ end
+ end
+ end
+
+ context 'as JSON' do
+ let(:authorized_fetch_mode) { false }
let(:format) { 'json' }
- let(:content_type) { 'application/activity+json' }
- include_examples 'responses'
+ before do
+ allow(controller).to receive(:authorized_fetch_mode?).and_return(authorized_fetch_mode)
+ end
+
+ it_behaves_like 'preliminary checks'
+
+ context do
+ before do
+ get :show, params: { username: account.username, format: format }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
+ end
+
+ it 'renders account' do
+ json = body_as_json
+ expect(json).to include(:id, :type, :preferredUsername, :inbox, :publicKey, :name, :summary)
+ end
+
+ context 'in authorized fetch mode' do
+ let(:authorized_fetch_mode) { true }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
+ end
+
+ it 'returns Vary header with Signature' do
+ expect(response.headers['Vary']).to include 'Signature'
+ end
+
+ it 'renders bare minimum account' do
+ json = body_as_json
+ expect(json).to include(:id, :type, :preferredUsername, :inbox, :publicKey)
+ expect(json).to_not include(:name, :summary)
+ end
+ end
+ end
+
+ context 'when signed in' do
+ let(:user) { Fabricate(:user) }
+
+ before do
+ sign_in(user)
+ get :show, params: { username: account.username, format: format }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
+ end
+
+ it 'renders account' do
+ json = body_as_json
+ expect(json).to include(:id, :type, :preferredUsername, :inbox, :publicKey, :name, :summary)
+ end
+ end
+
+ context 'with signature' do
+ let(:remote_account) { Fabricate(:account, domain: 'example.com') }
+
+ before do
+ allow(controller).to receive(:signed_request_account).and_return(remote_account)
+ get :show, params: { username: account.username, format: format }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
+ end
+
+ it 'renders account' do
+ json = body_as_json
+ expect(json).to include(:id, :type, :preferredUsername, :inbox, :publicKey, :name, :summary)
+ end
+
+ context 'in authorized fetch mode' do
+ let(:authorized_fetch_mode) { true }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns private Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'private'
+ end
+
+ it 'returns Vary header with Signature' do
+ expect(response.headers['Vary']).to include 'Signature'
+ end
+
+ it 'renders account' do
+ json = body_as_json
+ expect(json).to include(:id, :type, :preferredUsername, :inbox, :publicKey, :name, :summary)
+ end
+ end
+ end
end
- context 'html' do
- let(:format) { nil }
- let(:content_type) { 'text/html' }
+ context 'as RSS' do
+ let(:format) { 'rss' }
- shared_examples 'responsed statuses' do
- it 'assigns @pinned_statuses' do
- pinned_statuses = assigns(:pinned_statuses).to_a
- expect(pinned_statuses.size).to eq expected_pinned_statuses.size
- pinned_statuses.each.zip(expected_pinned_statuses.each) do |pinned_status, expected_pinned_status|
- expect(pinned_status).to eq expected_pinned_status
- end
+ it_behaves_like 'preliminary checks'
+
+ shared_examples 'common response characteristics' do
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
end
- it 'assigns @statuses' do
- statuses = assigns(:statuses).to_a
- expect(statuses.size).to eq expected_statuses.size
- statuses.each.zip(expected_statuses.each) do |status, expected_status|
- expect(status).to eq expected_status
- end
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
end
end
- include_examples 'responses'
-
- context 'with anonymous visitor' do
- context 'without since_id nor max_id' do
- let(:expected_statuses) { [status7, status6, status5, status4, status3, status2, status1] }
- let(:expected_pinned_statuses) { [status7, status5, status6] }
-
- include_examples 'responsed statuses'
+ context do
+ before do
+ get :show, params: { username: account.username, format: format }
end
- context 'with since_id nor max_id' do
- let(:max_id) { status4.id }
- let(:since_id) { status1.id }
- let(:expected_statuses) { [status3, status2] }
- let(:expected_pinned_statuses) { [] }
+ it_behaves_like 'common response characteristics'
- include_examples 'responsed statuses'
+ it 'renders public status' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status))
+ end
+
+ it 'renders self-reply' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_self_reply))
+ end
+
+ it 'renders status with media' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_media))
+ end
+
+ it 'does not render reblog' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reblog.reblog))
+ end
+
+ it 'does not render private status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private))
+ end
+
+ it 'does not render direct status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_direct))
+ end
+
+ it 'does not render reply to someone else' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reply))
end
end
- context 'with blocked visitor' do
- let(:current_user) { eve }
+ context 'with replies' do
+ before do
+ allow(controller).to receive(:replies_requested?).and_return(true)
+ get :show, params: { username: account.username, format: format }
+ end
- context 'without since_id nor max_id' do
- let(:expected_statuses) { [] }
- let(:expected_pinned_statuses) { [] }
+ it_behaves_like 'common response characteristics'
- include_examples 'responsed statuses'
+ it 'renders public status' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status))
+ end
+
+ it 'renders self-reply' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_self_reply))
+ end
+
+ it 'renders status with media' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_media))
+ end
+
+ it 'does not render reblog' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reblog.reblog))
+ end
+
+ it 'does not render private status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private))
+ end
+
+ it 'does not render direct status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_direct))
+ end
+
+ it 'renders reply to someone else' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_reply))
+ end
+ end
+
+ context 'with media' do
+ before do
+ allow(controller).to receive(:media_requested?).and_return(true)
+ get :show, params: { username: account.username, format: format }
+ end
+
+ it_behaves_like 'common response characteristics'
+
+ it 'does not render public status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status))
+ end
+
+ it 'does not render self-reply' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_self_reply))
+ end
+
+ it 'renders status with media' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_media))
+ end
+
+ it 'does not render reblog' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reblog.reblog))
+ end
+
+ it 'does not render private status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private))
+ end
+
+ it 'does not render direct status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_direct))
+ end
+
+ it 'does not render reply to someone else' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reply))
+ end
+ end
+
+ context 'with tag' do
+ let(:tag) { Fabricate(:tag) }
+
+ let!(:status_tag) { Fabricate(:status, account: account) }
+
+ before do
+ allow(controller).to receive(:tag_requested?).and_return(true)
+ status_tag.tags << tag
+ get :show, params: { username: account.username, format: format, tag: tag.to_param }
+ end
+
+ it_behaves_like 'common response characteristics'
+
+ it 'does not render public status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status))
+ end
+
+ it 'does not render self-reply' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_self_reply))
+ end
+
+ it 'does not render status with media' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_media))
+ end
+
+ it 'does not render reblog' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reblog.reblog))
+ end
+
+ it 'does not render private status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private))
+ end
+
+ it 'does not render direct status' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_direct))
+ end
+
+ it 'does not render reply to someone else' do
+ expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reply))
+ end
+
+ it 'renders status with tag' do
+ expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_tag))
end
end
end
diff --git a/spec/controllers/activitypub/collections_controller_spec.rb b/spec/controllers/activitypub/collections_controller_spec.rb
index 34114cc85..56be49be3 100644
--- a/spec/controllers/activitypub/collections_controller_spec.rb
+++ b/spec/controllers/activitypub/collections_controller_spec.rb
@@ -3,21 +3,133 @@
require 'rails_helper'
RSpec.describe ActivityPub::CollectionsController, type: :controller do
- describe 'POST #show' do
- let(:account) { Fabricate(:account) }
+ let!(:account) { Fabricate(:account) }
+ let(:remote_account) { nil }
- context 'id is "featured"' do
- it 'returns 200 with "application/activity+json"' do
- post :show, params: { id: 'featured', account_username: account.username }
+ before do
+ allow(controller).to receive(:signed_request_account).and_return(remote_account)
- expect(response).to have_http_status(200)
- expect(response.content_type).to eq 'application/activity+json'
+ Fabricate(:status_pin, account: account)
+ Fabricate(:status_pin, account: account)
+ Fabricate(:status, account: account, visibility: :private)
+ end
+
+ describe 'GET #show' do
+ context 'when id is "featured"' do
+ context 'without signature' do
+ let(:remote_account) { nil }
+
+ before do
+ get :show, params: { id: 'featured', account_username: account.username }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
+ end
+
+ it 'returns orderedItems with pinned statuses' do
+ json = body_as_json
+ expect(json[:orderedItems]).to be_an Array
+ expect(json[:orderedItems].size).to eq 2
+ end
+ end
+
+ context 'with signature' do
+ let(:remote_account) { Fabricate(:account, domain: 'example.com') }
+
+ context do
+ before do
+ get :show, params: { id: 'featured', account_username: account.username }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
+ end
+
+ it 'returns orderedItems with pinned statuses' do
+ json = body_as_json
+ expect(json[:orderedItems]).to be_an Array
+ expect(json[:orderedItems].size).to eq 2
+ end
+ end
+
+ context 'in authorized fetch mode' do
+ before do
+ allow(controller).to receive(:authorized_fetch_mode?).and_return(true)
+ end
+
+ context 'when signed request account is blocked' do
+ before do
+ account.block!(remote_account)
+ get :show, params: { id: 'featured', account_username: account.username }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns private Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'private'
+ end
+
+ it 'returns empty orderedItems' do
+ json = body_as_json
+ expect(json[:orderedItems]).to be_an Array
+ expect(json[:orderedItems].size).to eq 0
+ end
+ end
+
+ context 'when signed request account is domain blocked' do
+ before do
+ account.block_domain!(remote_account.domain)
+ get :show, params: { id: 'featured', account_username: account.username }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns private Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'private'
+ end
+
+ it 'returns empty orderedItems' do
+ json = body_as_json
+ expect(json[:orderedItems]).to be_an Array
+ expect(json[:orderedItems].size).to eq 0
+ end
+ end
+ end
end
end
- context 'id is not "featured"' do
- it 'returns 404' do
- post :show, params: { id: 'hoge', account_username: account.username }
+ context 'when id is not "featured"' do
+ it 'returns http not found' do
+ get :show, params: { id: 'hoge', account_username: account.username }
expect(response).to have_http_status(404)
end
end
diff --git a/spec/controllers/activitypub/inboxes_controller_spec.rb b/spec/controllers/activitypub/inboxes_controller_spec.rb
index a9ee75490..f3bc23953 100644
--- a/spec/controllers/activitypub/inboxes_controller_spec.rb
+++ b/spec/controllers/activitypub/inboxes_controller_spec.rb
@@ -3,25 +3,31 @@
require 'rails_helper'
RSpec.describe ActivityPub::InboxesController, type: :controller do
- describe 'POST #create' do
- context 'with signed_request_account' do
- it 'returns 202' do
- allow(controller).to receive(:signed_request_account) do
- Fabricate(:account)
- end
+ let(:remote_account) { nil }
+ before do
+ allow(controller).to receive(:signed_request_account).and_return(remote_account)
+ end
+
+ describe 'POST #create' do
+ context 'with signature' do
+ let(:remote_account) { Fabricate(:account, domain: 'example.com', protocol: :activitypub) }
+
+ before do
post :create, body: '{}'
+ end
+
+ it 'returns http accepted' do
expect(response).to have_http_status(202)
end
end
- context 'without signed_request_account' do
- it 'returns 401' do
- allow(controller).to receive(:signed_request_account) do
- false
- end
-
+ context 'without signature' do
+ before do
post :create, body: '{}'
+ end
+
+ it 'returns http not authorized' do
expect(response).to have_http_status(401)
end
end
diff --git a/spec/controllers/activitypub/outboxes_controller_spec.rb b/spec/controllers/activitypub/outboxes_controller_spec.rb
index 47460b22c..03490533d 100644
--- a/spec/controllers/activitypub/outboxes_controller_spec.rb
+++ b/spec/controllers/activitypub/outboxes_controller_spec.rb
@@ -4,20 +4,174 @@ RSpec.describe ActivityPub::OutboxesController, type: :controller do
let!(:account) { Fabricate(:account) }
before do
- Fabricate(:status, account: account)
+ Fabricate(:status, account: account, visibility: :public)
+ Fabricate(:status, account: account, visibility: :unlisted)
+ Fabricate(:status, account: account, visibility: :private)
+ Fabricate(:status, account: account, visibility: :direct)
+ Fabricate(:status, account: account, visibility: :limited)
+ end
+
+ before do
+ allow(controller).to receive(:signed_request_account).and_return(remote_account)
end
describe 'GET #show' do
- before do
- get :show, params: { account_username: account.username }
+ context 'without signature' do
+ let(:remote_account) { nil }
+
+ before do
+ get :show, params: { account_username: account.username, page: page }
+ end
+
+ context 'with page not requested' do
+ let(:page) { nil }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns totalItems' do
+ json = body_as_json
+ expect(json[:totalItems]).to eq 4
+ end
+
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
+ end
+ end
+
+ context 'with page requested' do
+ let(:page) { 'true' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns orderedItems with public or unlisted statuses' do
+ json = body_as_json
+ expect(json[:orderedItems]).to be_an Array
+ expect(json[:orderedItems].size).to eq 2
+ expect(json[:orderedItems].all? { |item| item[:to].include?(ActivityPub::TagManager::COLLECTIONS[:public]) || item[:cc].include?(ActivityPub::TagManager::COLLECTIONS[:public]) }).to be true
+ end
+
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
+ end
+ end
end
- it 'returns http success' do
- expect(response).to have_http_status(200)
- end
+ context 'with signature' do
+ let(:remote_account) { Fabricate(:account, domain: 'example.com') }
+ let(:page) { 'true' }
- it 'returns application/activity+json' do
- expect(response.content_type).to eq 'application/activity+json'
+ context 'when signed request account does not follow account' do
+ before do
+ get :show, params: { account_username: account.username, page: page }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns orderedItems with public or unlisted statuses' do
+ json = body_as_json
+ expect(json[:orderedItems]).to be_an Array
+ expect(json[:orderedItems].size).to eq 2
+ expect(json[:orderedItems].all? { |item| item[:to].include?(ActivityPub::TagManager::COLLECTIONS[:public]) || item[:cc].include?(ActivityPub::TagManager::COLLECTIONS[:public]) }).to be true
+ end
+
+ it 'returns private Cache-Control header' do
+ expect(response.headers['Cache-Control']).to eq 'max-age=0, private'
+ end
+ end
+
+ context 'when signed request account follows account' do
+ before do
+ remote_account.follow!(account)
+ get :show, params: { account_username: account.username, page: page }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns orderedItems with private statuses' do
+ json = body_as_json
+ expect(json[:orderedItems]).to be_an Array
+ expect(json[:orderedItems].size).to eq 3
+ expect(json[:orderedItems].all? { |item| item[:to].include?(ActivityPub::TagManager::COLLECTIONS[:public]) || item[:cc].include?(ActivityPub::TagManager::COLLECTIONS[:public]) || item[:to].include?(account_followers_url(account, ActionMailer::Base.default_url_options)) }).to be true
+ end
+
+ it 'returns private Cache-Control header' do
+ expect(response.headers['Cache-Control']).to eq 'max-age=0, private'
+ end
+ end
+
+ context 'when signed request account is blocked' do
+ before do
+ account.block!(remote_account)
+ get :show, params: { account_username: account.username, page: page }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns empty orderedItems' do
+ json = body_as_json
+ expect(json[:orderedItems]).to be_an Array
+ expect(json[:orderedItems].size).to eq 0
+ end
+
+ it 'returns private Cache-Control header' do
+ expect(response.headers['Cache-Control']).to eq 'max-age=0, private'
+ end
+ end
+
+ context 'when signed request account is domain blocked' do
+ before do
+ account.block_domain!(remote_account.domain)
+ get :show, params: { account_username: account.username, page: page }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns empty orderedItems' do
+ json = body_as_json
+ expect(json[:orderedItems]).to be_an Array
+ expect(json[:orderedItems].size).to eq 0
+ end
+
+ it 'returns private Cache-Control header' do
+ expect(response.headers['Cache-Control']).to eq 'max-age=0, private'
+ end
+ end
end
end
end
diff --git a/spec/controllers/activitypub/replies_controller_spec.rb b/spec/controllers/activitypub/replies_controller_spec.rb
new file mode 100644
index 000000000..a5ed14180
--- /dev/null
+++ b/spec/controllers/activitypub/replies_controller_spec.rb
@@ -0,0 +1,196 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe ActivityPub::RepliesController, type: :controller do
+ let(:status) { Fabricate(:status, visibility: parent_visibility) }
+ let(:remote_account) { nil }
+
+ before do
+ allow(controller).to receive(:signed_request_account).and_return(remote_account)
+
+ Fabricate(:status, thread: status, visibility: :public)
+ Fabricate(:status, thread: status, visibility: :public)
+ Fabricate(:status, thread: status, visibility: :private)
+ Fabricate(:status, account: status.account, thread: status, visibility: :public)
+ Fabricate(:status, account: status.account, thread: status, visibility: :private)
+ end
+
+ describe 'GET #index' do
+ context 'with no signature' do
+ before do
+ get :index, params: { account_username: status.account.username, status_id: status.id }
+ end
+
+ context 'when status is public' do
+ let(:parent_visibility) { :public }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
+ end
+
+ it 'returns items with account\'s own replies' do
+ json = body_as_json
+
+ expect(json[:first]).to be_a Hash
+ expect(json[:first][:items]).to be_an Array
+ expect(json[:first][:items].size).to eq 1
+ expect(json[:first][:items].all? { |item| item[:to].include?(ActivityPub::TagManager::COLLECTIONS[:public]) || item[:cc].include?(ActivityPub::TagManager::COLLECTIONS[:public]) }).to be true
+ end
+ end
+
+ context 'when status is private' do
+ let(:parent_visibility) { :private }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'when status is direct' do
+ let(:parent_visibility) { :direct }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
+
+ context 'with signature' do
+ let(:remote_account) { Fabricate(:account, domain: 'example.com') }
+ let(:only_other_accounts) { nil }
+
+ context do
+ before do
+ get :index, params: { account_username: status.account.username, status_id: status.id, only_other_accounts: only_other_accounts }
+ end
+
+ context 'when status is public' do
+ let(:parent_visibility) { :public }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns application/activity+json' do
+ expect(response.content_type).to eq 'application/activity+json'
+ end
+
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
+ end
+
+ context 'without only_other_accounts' do
+ it 'returns items with account\'s own replies' do
+ json = body_as_json
+
+ expect(json[:first]).to be_a Hash
+ expect(json[:first][:items]).to be_an Array
+ expect(json[:first][:items].size).to eq 1
+ expect(json[:first][:items].all? { |item| item[:to].include?(ActivityPub::TagManager::COLLECTIONS[:public]) || item[:cc].include?(ActivityPub::TagManager::COLLECTIONS[:public]) }).to be true
+ end
+ end
+
+ context 'with only_other_accounts' do
+ let(:only_other_accounts) { 'true' }
+
+ it 'returns items with other public or unlisted replies' do
+ json = body_as_json
+
+ expect(json[:first]).to be_a Hash
+ expect(json[:first][:items]).to be_an Array
+ expect(json[:first][:items].size).to eq 2
+ expect(json[:first][:items].all? { |item| item[:to].include?(ActivityPub::TagManager::COLLECTIONS[:public]) || item[:cc].include?(ActivityPub::TagManager::COLLECTIONS[:public]) }).to be true
+ end
+ end
+ end
+
+ context 'when status is private' do
+ let(:parent_visibility) { :private }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'when status is direct' do
+ let(:parent_visibility) { :direct }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
+
+ context 'when signed request account is blocked' do
+ before do
+ status.account.block!(remote_account)
+ get :index, params: { account_username: status.account.username, status_id: status.id }
+ end
+
+ context 'when status is public' do
+ let(:parent_visibility) { :public }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'when status is private' do
+ let(:parent_visibility) { :private }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'when status is direct' do
+ let(:parent_visibility) { :direct }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
+
+ context 'when signed request account is domain blocked' do
+ before do
+ status.account.block_domain!(remote_account.domain)
+ get :index, params: { account_username: status.account.username, status_id: status.id }
+ end
+
+ context 'when status is public' do
+ let(:parent_visibility) { :public }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'when status is private' do
+ let(:parent_visibility) { :private }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'when status is direct' do
+ let(:parent_visibility) { :direct }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/spec/controllers/admin/reports_controller_spec.rb b/spec/controllers/admin/reports_controller_spec.rb
index b428299ee..49d3e9707 100644
--- a/spec/controllers/admin/reports_controller_spec.rb
+++ b/spec/controllers/admin/reports_controller_spec.rb
@@ -46,6 +46,26 @@ describe Admin::ReportsController do
end
end
+ describe 'POST #resolve' do
+ it 'resolves the report' do
+ report = Fabricate(:report)
+
+ put :resolve, params: { id: report }
+ expect(response).to redirect_to(admin_reports_path)
+ report.reload
+ expect(report.action_taken_by_account).to eq user.account
+ expect(report.action_taken).to eq true
+ end
+
+ it 'sets trust level when the report is an antispam one' do
+ report = Fabricate(:report, account: Account.representative)
+
+ put :resolve, params: { id: report }
+ report.reload
+ expect(report.target_account.trust_level).to eq Account::TRUST_LEVELS[:trusted]
+ end
+ end
+
describe 'POST #reopen' do
it 'reopens the report' do
report = Fabricate(:report)
diff --git a/spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb b/spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb
index 54587187f..482a19ef2 100644
--- a/spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb
@@ -36,5 +36,28 @@ describe Api::V1::Accounts::FollowerAccountsController do
expect(body_as_json.size).to eq 1
expect(body_as_json[0][:id]).to eq alice.id.to_s
end
+
+ context 'when requesting user is blocked' do
+ before do
+ account.block!(user.account)
+ end
+
+ it 'hides results' do
+ get :index, params: { account_id: account.id, limit: 2 }
+ expect(body_as_json.size).to eq 0
+ end
+ end
+
+ context 'when requesting user is the account owner' do
+ let(:user) { Fabricate(:user, account: account) }
+
+ it 'returns all accounts, including muted accounts' do
+ user.account.mute!(bob)
+ get :index, params: { account_id: account.id, limit: 2 }
+
+ expect(body_as_json.size).to eq 2
+ expect([body_as_json[0][:id], body_as_json[1][:id]]).to match_array([alice.id.to_s, bob.id.to_s])
+ end
+ end
end
end
diff --git a/spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb b/spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb
index a580a7368..e35b625fe 100644
--- a/spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb
@@ -36,5 +36,28 @@ describe Api::V1::Accounts::FollowingAccountsController do
expect(body_as_json.size).to eq 1
expect(body_as_json[0][:id]).to eq alice.id.to_s
end
+
+ context 'when requesting user is blocked' do
+ before do
+ account.block!(user.account)
+ end
+
+ it 'hides results' do
+ get :index, params: { account_id: account.id, limit: 2 }
+ expect(body_as_json.size).to eq 0
+ end
+ end
+
+ context 'when requesting user is the account owner' do
+ let(:user) { Fabricate(:user, account: account) }
+
+ it 'returns all accounts, including muted accounts' do
+ user.account.mute!(bob)
+ get :index, params: { account_id: account.id, limit: 2 }
+
+ expect(body_as_json.size).to eq 2
+ expect([body_as_json[0][:id], body_as_json[1][:id]]).to match_array([alice.id.to_s, bob.id.to_s])
+ end
+ end
end
end
diff --git a/spec/controllers/api/v1/accounts_controller_spec.rb b/spec/controllers/api/v1/accounts_controller_spec.rb
index f5f65c000..024409dab 100644
--- a/spec/controllers/api/v1/accounts_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts_controller_spec.rb
@@ -21,7 +21,7 @@ RSpec.describe Api::V1::AccountsController, type: :controller do
describe 'POST #create' do
let(:app) { Fabricate(:application) }
- let(:token) { Doorkeeper::AccessToken.find_or_create_for(app, nil, 'read write', nil, false) }
+ let(:token) { Doorkeeper::AccessToken.find_or_create_for(application: app, resource_owner: nil, scopes: 'read write', use_refresh_token: false) }
let(:agreement) { nil }
before do
diff --git a/spec/controllers/api/v1/statuses_controller_spec.rb b/spec/controllers/api/v1/statuses_controller_spec.rb
index 9ff5fcd3b..df8037038 100644
--- a/spec/controllers/api/v1/statuses_controller_spec.rb
+++ b/spec/controllers/api/v1/statuses_controller_spec.rb
@@ -39,12 +39,50 @@ RSpec.describe Api::V1::StatusesController, type: :controller do
describe 'POST #create' do
let(:scopes) { 'write:statuses' }
- before do
- post :create, params: { status: 'Hello world' }
+ context do
+ before do
+ post :create, params: { status: 'Hello world' }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns rate limit headers' do
+ expect(response.headers['X-RateLimit-Limit']).to eq RateLimiter::FAMILIES[:statuses][:limit].to_s
+ expect(response.headers['X-RateLimit-Remaining']).to eq (RateLimiter::FAMILIES[:statuses][:limit] - 1).to_s
+ end
end
- it 'returns http success' do
- expect(response).to have_http_status(200)
+ context 'with missing parameters' do
+ before do
+ post :create, params: {}
+ end
+
+ it 'returns http unprocessable entity' do
+ expect(response).to have_http_status(422)
+ end
+
+ it 'returns rate limit headers' do
+ expect(response.headers['X-RateLimit-Limit']).to eq RateLimiter::FAMILIES[:statuses][:limit].to_s
+ end
+ end
+
+ context 'when exceeding rate limit' do
+ before do
+ rate_limiter = RateLimiter.new(user.account, family: :statuses)
+ 300.times { rate_limiter.record! }
+ post :create, params: { status: 'Hello world' }
+ end
+
+ it 'returns http too many requests' do
+ expect(response).to have_http_status(429)
+ end
+
+ it 'returns rate limit headers' do
+ expect(response.headers['X-RateLimit-Limit']).to eq RateLimiter::FAMILIES[:statuses][:limit].to_s
+ expect(response.headers['X-RateLimit-Remaining']).to eq '0'
+ end
end
end
diff --git a/spec/controllers/concerns/localized_spec.rb b/spec/controllers/concerns/localized_spec.rb
index 7635d10e1..a89e24af0 100644
--- a/spec/controllers/concerns/localized_spec.rb
+++ b/spec/controllers/concerns/localized_spec.rb
@@ -16,10 +16,16 @@ describe ApplicationController, type: :controller do
end
shared_examples 'default locale' do
+ it 'sets available and preferred language' do
+ request.headers['Accept-Language'] = 'sr-Latn'
+ get 'success'
+ expect(response.body).to eq 'sr-Latn'
+ end
+
it 'sets available and preferred language' do
request.headers['Accept-Language'] = 'ca-ES, fa'
get 'success'
- expect(response.body).to eq 'fa'
+ expect(response.body).to eq 'ca'
end
it 'sets available and compatible language if none of available languages are preferred' do
diff --git a/spec/controllers/oauth/authorizations_controller_spec.rb b/spec/controllers/oauth/authorizations_controller_spec.rb
index a84260a54..c5eeea397 100644
--- a/spec/controllers/oauth/authorizations_controller_spec.rb
+++ b/spec/controllers/oauth/authorizations_controller_spec.rb
@@ -41,11 +41,11 @@ RSpec.describe Oauth::AuthorizationsController, type: :controller do
context 'when app is already authorized' do
before do
Doorkeeper::AccessToken.find_or_create_for(
- app,
- user.id,
- app.scopes,
- Doorkeeper.configuration.access_token_expires_in,
- Doorkeeper.configuration.refresh_token_enabled?
+ application: app,
+ resource_owner: user.id,
+ scopes: app.scopes,
+ expires_in: Doorkeeper.configuration.access_token_expires_in,
+ use_refresh_token: Doorkeeper.configuration.refresh_token_enabled?
)
end
diff --git a/spec/controllers/oauth/tokens_controller_spec.rb b/spec/controllers/oauth/tokens_controller_spec.rb
index ba8e367a6..3804e035b 100644
--- a/spec/controllers/oauth/tokens_controller_spec.rb
+++ b/spec/controllers/oauth/tokens_controller_spec.rb
@@ -5,11 +5,12 @@ require 'rails_helper'
RSpec.describe Oauth::TokensController, type: :controller do
describe 'POST #revoke' do
let!(:user) { Fabricate(:user) }
- let!(:access_token) { Fabricate(:accessible_access_token, resource_owner_id: user.id) }
+ let!(:application) { Fabricate(:application, confidential: false) }
+ let!(:access_token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, application: application) }
let!(:web_push_subscription) { Fabricate(:web_push_subscription, user: user, access_token: access_token) }
before do
- post :revoke, params: { token: access_token.token }
+ post :revoke, params: { client_id: application.uid, token: access_token.token }
end
it 'revokes the token' do
diff --git a/spec/controllers/remote_follow_controller_spec.rb b/spec/controllers/remote_follow_controller_spec.rb
index d79dd2949..3ef8f14d9 100644
--- a/spec/controllers/remote_follow_controller_spec.rb
+++ b/spec/controllers/remote_follow_controller_spec.rb
@@ -35,7 +35,7 @@ describe RemoteFollowController do
context 'when webfinger values are wrong' do
it 'renders new when redirect url is nil' do
resource_with_nil_link = double(link: nil)
- allow(Goldfinger).to receive(:finger).with('acct:user@example.com').and_return(resource_with_nil_link)
+ allow_any_instance_of(WebfingerHelper).to receive(:webfinger!).with('acct:user@example.com').and_return(resource_with_nil_link)
post :create, params: { account_username: @account.to_param, remote_follow: { acct: 'user@example.com' } }
expect(response).to render_template(:new)
@@ -45,7 +45,7 @@ describe RemoteFollowController do
it 'renders new when template is nil' do
link_with_nil_template = double(template: nil)
resource_with_link = double(link: link_with_nil_template)
- allow(Goldfinger).to receive(:finger).with('acct:user@example.com').and_return(resource_with_link)
+ allow_any_instance_of(WebfingerHelper).to receive(:webfinger!).with('acct:user@example.com').and_return(resource_with_link)
post :create, params: { account_username: @account.to_param, remote_follow: { acct: 'user@example.com' } }
expect(response).to render_template(:new)
@@ -57,7 +57,7 @@ describe RemoteFollowController do
before do
link_with_template = double(template: 'http://example.com/follow_me?acct={uri}')
resource_with_link = double(link: link_with_template)
- allow(Goldfinger).to receive(:finger).with('acct:user@example.com').and_return(resource_with_link)
+ allow_any_instance_of(WebfingerHelper).to receive(:webfinger!).with('acct:user@example.com').and_return(resource_with_link)
post :create, params: { account_username: @account.to_param, remote_follow: { acct: 'user@example.com' } }
end
@@ -79,7 +79,7 @@ describe RemoteFollowController do
end
it 'renders new with error when goldfinger fails' do
- allow(Goldfinger).to receive(:finger).with('acct:user@example.com').and_raise(Goldfinger::Error)
+ allow_any_instance_of(WebfingerHelper).to receive(:webfinger!).with('acct:user@example.com').and_raise(Goldfinger::Error)
post :create, params: { account_username: @account.to_param, remote_follow: { acct: 'user@example.com' } }
expect(response).to render_template(:new)
@@ -87,7 +87,7 @@ describe RemoteFollowController do
end
it 'renders new when occur HTTP::ConnectionError' do
- allow(Goldfinger).to receive(:finger).with('acct:user@unknown').and_raise(HTTP::ConnectionError)
+ allow_any_instance_of(WebfingerHelper).to receive(:webfinger!).with('acct:user@unknown').and_raise(HTTP::ConnectionError)
post :create, params: { account_username: @account.to_param, remote_follow: { acct: 'user@unknown' } }
expect(response).to render_template(:new)
diff --git a/spec/controllers/settings/identity_proofs_controller_spec.rb b/spec/controllers/settings/identity_proofs_controller_spec.rb
index 261e980d4..16f236227 100644
--- a/spec/controllers/settings/identity_proofs_controller_spec.rb
+++ b/spec/controllers/settings/identity_proofs_controller_spec.rb
@@ -151,7 +151,7 @@ describe Settings::IdentityProofsController do
@proof1 = Fabricate(:account_identity_proof, account: user.account)
@proof2 = Fabricate(:account_identity_proof, account: user.account)
allow_any_instance_of(AccountIdentityProof).to receive(:badge) { double(avatar_url: '', profile_url: '', proof_url: '') }
- allow_any_instance_of(AccountIdentityProof).to receive(:refresh!) { }
+ allow_any_instance_of(AccountIdentityProof).to receive(:refresh!) {}
end
it 'has the first proof username on the page' do
@@ -165,4 +165,22 @@ describe Settings::IdentityProofsController do
end
end
end
+
+ describe 'DELETE #destroy' do
+ before do
+ allow_any_instance_of(ProofProvider::Keybase::Verifier).to receive(:valid?) { true }
+ @proof1 = Fabricate(:account_identity_proof, account: user.account)
+ allow_any_instance_of(AccountIdentityProof).to receive(:badge) { double(avatar_url: '', profile_url: '', proof_url: '') }
+ allow_any_instance_of(AccountIdentityProof).to receive(:refresh!) {}
+ delete :destroy, params: { id: @proof1.id }
+ end
+
+ it 'redirects to :index' do
+ expect(response).to redirect_to settings_identity_proofs_path
+ end
+
+ it 'removes the proof' do
+ expect(AccountIdentityProof.where(id: @proof1.id).count).to eq 0
+ end
+ end
end
diff --git a/spec/controllers/statuses_controller_spec.rb b/spec/controllers/statuses_controller_spec.rb
index 6905dae10..ba1f1370a 100644
--- a/spec/controllers/statuses_controller_spec.rb
+++ b/spec/controllers/statuses_controller_spec.rb
@@ -5,128 +5,821 @@ require 'rails_helper'
describe StatusesController do
render_views
- describe '#show' do
- context 'account is suspended' do
- it 'returns gone' do
- account = Fabricate(:account, suspended: true)
- status = Fabricate(:status, account: account)
+ describe 'GET #show' do
+ let(:account) { Fabricate(:account) }
+ let(:status) { Fabricate(:status, account: account) }
+ context 'when account is suspended' do
+ let(:account) { Fabricate(:account, suspended: true) }
+
+ before do
get :show, params: { account_username: account.username, id: status.id }
+ end
+ it 'returns http gone' do
expect(response).to have_http_status(410)
end
end
- context 'status is not permitted' do
- it 'raises ActiveRecord::RecordNotFound' do
- user = Fabricate(:user)
- status = Fabricate(:status)
- status.account.block!(user.account)
+ context 'when status is a reblog' do
+ let(:original_account) { Fabricate(:account, domain: 'example.com') }
+ let(:original_status) { Fabricate(:status, account: original_account, url: 'https://example.com/123') }
+ let(:status) { Fabricate(:status, account: account, reblog: original_status) }
- sign_in(user)
+ before do
get :show, params: { account_username: status.account.username, id: status.id }
-
- expect(response).to have_http_status(404)
end
- end
- context 'status is a reblog' do
it 'redirects to the original status' do
- original_account = Fabricate(:account, domain: 'example.com')
- original_status = Fabricate(:status, account: original_account, uri: 'tag:example.com,2017:foo', url: 'https://example.com/123')
- status = Fabricate(:status, reblog: original_status)
-
- get :show, params: { account_username: status.account.username, id: status.id }
-
expect(response).to redirect_to(original_status.url)
end
end
- context 'account is not suspended and status is permitted' do
- it 'assigns @account' do
- status = Fabricate(:status)
- get :show, params: { account_username: status.account.username, id: status.id }
- expect(assigns(:account)).to eq status.account
+ context 'when status is public' do
+ before do
+ get :show, params: { account_username: status.account.username, id: status.id, format: format }
end
- it 'assigns @status' do
- status = Fabricate(:status)
- get :show, params: { account_username: status.account.username, id: status.id }
- expect(assigns(:status)).to eq status
+ context 'as HTML' do
+ let(:format) { 'html' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include 'activity+json'
+ end
+
+ it 'returns Vary header' do
+ expect(response.headers['Vary']).to eq 'Accept'
+ end
+
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
+ end
+
+ it 'renders status' do
+ expect(response).to render_template(:show)
+ expect(response.body).to include status.text
+ end
end
- it 'assigns @ancestors for ancestors of the status if it is a reply' do
- ancestor = Fabricate(:status)
- status = Fabricate(:status, in_reply_to_id: ancestor.id)
+ context 'as JSON' do
+ let(:format) { 'json' }
- get :show, params: { account_username: status.account.username, id: status.id }
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
- expect(assigns(:ancestors)).to eq [ancestor]
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include 'activity+json'
+ end
+
+ it 'returns Vary header' do
+ expect(response.headers['Vary']).to eq 'Accept'
+ end
+
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
+ end
+
+ it 'returns Content-Type header' do
+ expect(response.headers['Content-Type']).to include 'application/activity+json'
+ end
+
+ it 'renders ActivityPub Note object' do
+ json = body_as_json
+ expect(json[:content]).to include status.text
+ end
+ end
+ end
+
+ context 'when status is private' do
+ let(:status) { Fabricate(:status, account: account, visibility: :private) }
+
+ before do
+ get :show, params: { account_username: status.account.username, id: status.id, format: format }
end
- it 'assigns @ancestors for [] if it is not a reply' do
- status = Fabricate(:status)
- get :show, params: { account_username: status.account.username, id: status.id }
- expect(assigns(:ancestors)).to eq []
+ context 'as JSON' do
+ let(:format) { 'json' }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
end
- it 'assigns @descendant_threads for a thread with several statuses' do
- status = Fabricate(:status)
- child = Fabricate(:status, in_reply_to_id: status.id)
- grandchild = Fabricate(:status, in_reply_to_id: child.id)
+ context 'as HTML' do
+ let(:format) { 'html' }
- get :show, params: { account_username: status.account.username, id: status.id }
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
- expect(assigns(:descendant_threads)[0][:statuses].pluck(:id)).to eq [child.id, grandchild.id]
+ context 'when status is direct' do
+ let(:status) { Fabricate(:status, account: account, visibility: :direct) }
+
+ before do
+ get :show, params: { account_username: status.account.username, id: status.id, format: format }
end
- it 'assigns @descendant_threads for several threads sharing the same descendant' do
- status = Fabricate(:status)
- child = Fabricate(:status, in_reply_to_id: status.id)
- grandchildren = 2.times.map { Fabricate(:status, in_reply_to_id: child.id) }
+ context 'as JSON' do
+ let(:format) { 'json' }
- get :show, params: { account_username: status.account.username, id: status.id }
-
- expect(assigns(:descendant_threads)[0][:statuses].pluck(:id)).to eq [child.id, grandchildren[0].id]
- expect(assigns(:descendant_threads)[1][:statuses].pluck(:id)).to eq [grandchildren[1].id]
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
end
- it 'assigns @max_descendant_thread_id for the last thread if it is hitting the status limit' do
- stub_const 'StatusControllerConcern::DESCENDANTS_LIMIT', 1
- status = Fabricate(:status)
- child = Fabricate(:status, in_reply_to_id: status.id)
+ context 'as HTML' do
+ let(:format) { 'html' }
- get :show, params: { account_username: status.account.username, id: status.id }
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
- expect(assigns(:descendant_threads)).to eq []
- expect(assigns(:max_descendant_thread_id)).to eq child.id
+ context 'when signed-in' do
+ let(:user) { Fabricate(:user) }
+
+ before do
+ sign_in(user)
end
- it 'assigns @descendant_threads for threads with :next_status key if they are hitting the depth limit' do
- stub_const 'StatusControllerConcern::DESCENDANTS_DEPTH_LIMIT', 2
- status = Fabricate(:status)
- child0 = Fabricate(:status, in_reply_to_id: status.id)
- child1 = Fabricate(:status, in_reply_to_id: child0.id)
- child2 = Fabricate(:status, in_reply_to_id: child0.id)
+ context 'when account blocks user' do
+ before do
+ account.block!(user.account)
+ get :show, params: { account_username: status.account.username, id: status.id }
+ end
- get :show, params: { account_username: status.account.username, id: status.id }
-
- expect(assigns(:descendant_threads)[0][:statuses].pluck(:id)).not_to include child1.id
- expect(assigns(:descendant_threads)[1][:statuses].pluck(:id)).not_to include child2.id
- expect(assigns(:descendant_threads)[0][:next_status].id).to eq child1.id
- expect(assigns(:descendant_threads)[1][:next_status].id).to eq child2.id
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
end
- it 'returns a success' do
- status = Fabricate(:status)
- get :show, params: { account_username: status.account.username, id: status.id }
+ context 'when status is public' do
+ before do
+ get :show, params: { account_username: status.account.username, id: status.id, format: format }
+ end
+
+ context 'as HTML' do
+ let(:format) { 'html' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include 'activity+json'
+ end
+
+ it 'returns Vary header' do
+ expect(response.headers['Vary']).to eq 'Accept'
+ end
+
+ it 'returns no Cache-Control header' do
+ expect(response.headers).to_not include 'Cache-Control'
+ end
+
+ it 'renders status' do
+ expect(response).to render_template(:show)
+ expect(response.body).to include status.text
+ end
+ end
+
+ context 'as JSON' do
+ let(:format) { 'json' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include 'activity+json'
+ end
+
+ it 'returns Vary header' do
+ expect(response.headers['Vary']).to eq 'Accept'
+ end
+
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
+ end
+
+ it 'returns Content-Type header' do
+ expect(response.headers['Content-Type']).to include 'application/activity+json'
+ end
+
+ it 'renders ActivityPub Note object' do
+ json = body_as_json
+ expect(json[:content]).to include status.text
+ end
+ end
+ end
+
+ context 'when status is private' do
+ let(:status) { Fabricate(:status, account: account, visibility: :private) }
+
+ context 'when user is authorized to see it' do
+ before do
+ user.account.follow!(account)
+ get :show, params: { account_username: status.account.username, id: status.id, format: format }
+ end
+
+ context 'as HTML' do
+ let(:format) { 'html' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include 'activity+json'
+ end
+
+ it 'returns Vary header' do
+ expect(response.headers['Vary']).to eq 'Accept'
+ end
+
+ it 'returns no Cache-Control header' do
+ expect(response.headers).to_not include 'Cache-Control'
+ end
+
+ it 'renders status' do
+ expect(response).to render_template(:show)
+ expect(response.body).to include status.text
+ end
+ end
+
+ context 'as JSON' do
+ let(:format) { 'json' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include 'activity+json'
+ end
+
+ it 'returns Vary header' do
+ expect(response.headers['Vary']).to eq 'Accept'
+ end
+
+ it 'returns private Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'private'
+ end
+
+ it 'returns Content-Type header' do
+ expect(response.headers['Content-Type']).to include 'application/activity+json'
+ end
+
+ it 'renders ActivityPub Note object' do
+ json = body_as_json
+ expect(json[:content]).to include status.text
+ end
+ end
+ end
+
+ context 'when user is not authorized to see it' do
+ before do
+ get :show, params: { account_username: status.account.username, id: status.id, format: format }
+ end
+
+ context 'as JSON' do
+ let(:format) { 'json' }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'as HTML' do
+ let(:format) { 'html' }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
+ end
+
+ context 'when status is direct' do
+ let(:status) { Fabricate(:status, account: account, visibility: :direct) }
+
+ context 'when user is authorized to see it' do
+ before do
+ Fabricate(:mention, account: user.account, status: status)
+ get :show, params: { account_username: status.account.username, id: status.id, format: format }
+ end
+
+ context 'as HTML' do
+ let(:format) { 'html' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include 'activity+json'
+ end
+
+ it 'returns Vary header' do
+ expect(response.headers['Vary']).to eq 'Accept'
+ end
+
+ it 'returns no Cache-Control header' do
+ expect(response.headers).to_not include 'Cache-Control'
+ end
+
+ it 'renders status' do
+ expect(response).to render_template(:show)
+ expect(response.body).to include status.text
+ end
+ end
+
+ context 'as JSON' do
+ let(:format) { 'json' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include 'activity+json'
+ end
+
+ it 'returns Vary header' do
+ expect(response.headers['Vary']).to eq 'Accept'
+ end
+
+ it 'returns private Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'private'
+ end
+
+ it 'returns Content-Type header' do
+ expect(response.headers['Content-Type']).to include 'application/activity+json'
+ end
+
+ it 'renders ActivityPub Note object' do
+ json = body_as_json
+ expect(json[:content]).to include status.text
+ end
+ end
+ end
+
+ context 'when user is not authorized to see it' do
+ before do
+ get :show, params: { account_username: status.account.username, id: status.id, format: format }
+ end
+
+ context 'as JSON' do
+ let(:format) { 'json' }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'as HTML' do
+ let(:format) { 'html' }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
+ end
+ end
+
+ context 'with signature' do
+ let(:remote_account) { Fabricate(:account, domain: 'example.com') }
+
+ before do
+ allow(controller).to receive(:signed_request_account).and_return(remote_account)
+ end
+
+ context 'when account blocks account' do
+ before do
+ account.block!(remote_account)
+ get :show, params: { account_username: status.account.username, id: status.id }
+ end
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'when account domain blocks account' do
+ before do
+ account.block_domain!(remote_account.domain)
+ get :show, params: { account_username: status.account.username, id: status.id }
+ end
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'when status is public' do
+ before do
+ get :show, params: { account_username: status.account.username, id: status.id, format: format }
+ end
+
+ context 'as HTML' do
+ let(:format) { 'html' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include 'activity+json'
+ end
+
+ it 'returns Vary header' do
+ expect(response.headers['Vary']).to eq 'Accept'
+ end
+
+ it 'returns no Cache-Control header' do
+ expect(response.headers).to_not include 'Cache-Control'
+ end
+
+ it 'renders status' do
+ expect(response).to render_template(:show)
+ expect(response.body).to include status.text
+ end
+ end
+
+ context 'as JSON' do
+ let(:format) { 'json' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include 'activity+json'
+ end
+
+ it 'returns Vary header' do
+ expect(response.headers['Vary']).to eq 'Accept'
+ end
+
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
+ end
+
+ it 'returns Content-Type header' do
+ expect(response.headers['Content-Type']).to include 'application/activity+json'
+ end
+
+ it 'renders ActivityPub Note object' do
+ json = body_as_json
+ expect(json[:content]).to include status.text
+ end
+ end
+ end
+
+ context 'when status is private' do
+ let(:status) { Fabricate(:status, account: account, visibility: :private) }
+
+ context 'when user is authorized to see it' do
+ before do
+ remote_account.follow!(account)
+ get :show, params: { account_username: status.account.username, id: status.id, format: format }
+ end
+
+ context 'as HTML' do
+ let(:format) { 'html' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include 'activity+json'
+ end
+
+ it 'returns Vary header' do
+ expect(response.headers['Vary']).to eq 'Accept'
+ end
+
+ it 'returns no Cache-Control header' do
+ expect(response.headers).to_not include 'Cache-Control'
+ end
+
+ it 'renders status' do
+ expect(response).to render_template(:show)
+ expect(response.body).to include status.text
+ end
+ end
+
+ context 'as JSON' do
+ let(:format) { 'json' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include 'activity+json'
+ end
+
+ it 'returns Vary header' do
+ expect(response.headers['Vary']).to eq 'Accept'
+ end
+
+ it 'returns private Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'private'
+ end
+
+ it 'returns Content-Type header' do
+ expect(response.headers['Content-Type']).to include 'application/activity+json'
+ end
+
+ it 'renders ActivityPub Note object' do
+ json = body_as_json
+ expect(json[:content]).to include status.text
+ end
+ end
+ end
+
+ context 'when user is not authorized to see it' do
+ before do
+ get :show, params: { account_username: status.account.username, id: status.id, format: format }
+ end
+
+ context 'as JSON' do
+ let(:format) { 'json' }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'as HTML' do
+ let(:format) { 'html' }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
+ end
+
+ context 'when status is direct' do
+ let(:status) { Fabricate(:status, account: account, visibility: :direct) }
+
+ context 'when user is authorized to see it' do
+ before do
+ Fabricate(:mention, account: remote_account, status: status)
+ get :show, params: { account_username: status.account.username, id: status.id, format: format }
+ end
+
+ context 'as HTML' do
+ let(:format) { 'html' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include 'activity+json'
+ end
+
+ it 'returns Vary header' do
+ expect(response.headers['Vary']).to eq 'Accept'
+ end
+
+ it 'returns no Cache-Control header' do
+ expect(response.headers).to_not include 'Cache-Control'
+ end
+
+ it 'renders status' do
+ expect(response).to render_template(:show)
+ expect(response.body).to include status.text
+ end
+ end
+
+ context 'as JSON' do
+ let(:format) { 'json' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include 'activity+json'
+ end
+
+ it 'returns Vary header' do
+ expect(response.headers['Vary']).to eq 'Accept'
+ end
+
+ it 'returns private Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'private'
+ end
+
+ it 'returns Content-Type header' do
+ expect(response.headers['Content-Type']).to include 'application/activity+json'
+ end
+
+ it 'renders ActivityPub Note object' do
+ json = body_as_json
+ expect(json[:content]).to include status.text
+ end
+ end
+ end
+
+ context 'when user is not authorized to see it' do
+ before do
+ get :show, params: { account_username: status.account.username, id: status.id, format: format }
+ end
+
+ context 'as JSON' do
+ let(:format) { 'json' }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'as HTML' do
+ let(:format) { 'html' }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
+ end
+ end
+ end
+
+ describe 'GET #activity' do
+ let(:account) { Fabricate(:account) }
+ let(:status) { Fabricate(:status, account: account) }
+
+ context 'when account is suspended' do
+ let(:account) { Fabricate(:account, suspended: true) }
+
+ before do
+ get :activity, params: { account_username: account.username, id: status.id }
+ end
+
+ it 'returns http gone' do
+ expect(response).to have_http_status(410)
+ end
+ end
+
+ context 'when status is public' do
+ pending
+ end
+
+ context 'when status is private' do
+ pending
+ end
+
+ context 'when status is direct' do
+ pending
+ end
+
+ context 'when signed-in' do
+ context 'when status is public' do
+ pending
+ end
+
+ context 'when status is private' do
+ context 'when user is authorized to see it' do
+ pending
+ end
+
+ context 'when user is not authorized to see it' do
+ pending
+ end
+ end
+
+ context 'when status is direct' do
+ context 'when user is authorized to see it' do
+ pending
+ end
+
+ context 'when user is not authorized to see it' do
+ pending
+ end
+ end
+ end
+
+ context 'with signature' do
+ context 'when status is public' do
+ pending
+ end
+
+ context 'when status is private' do
+ context 'when user is authorized to see it' do
+ pending
+ end
+
+ context 'when user is not authorized to see it' do
+ pending
+ end
+ end
+
+ context 'when status is direct' do
+ context 'when user is authorized to see it' do
+ pending
+ end
+
+ context 'when user is not authorized to see it' do
+ pending
+ end
+ end
+ end
+ end
+
+ describe 'GET #embed' do
+ let(:account) { Fabricate(:account) }
+ let(:status) { Fabricate(:status, account: account) }
+
+ context 'when account is suspended' do
+ let(:account) { Fabricate(:account, suspended: true) }
+
+ before do
+ get :embed, params: { account_username: account.username, id: status.id }
+ end
+
+ it 'returns http gone' do
+ expect(response).to have_http_status(410)
+ end
+ end
+
+ context 'when status is a reblog' do
+ let(:original_account) { Fabricate(:account, domain: 'example.com') }
+ let(:original_status) { Fabricate(:status, account: original_account, url: 'https://example.com/123') }
+ let(:status) { Fabricate(:status, account: account, reblog: original_status) }
+
+ before do
+ get :embed, params: { account_username: status.account.username, id: status.id }
+ end
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'when status is public' do
+ before do
+ get :embed, params: { account_username: status.account.username, id: status.id }
+ end
+
+ it 'returns http success' do
expect(response).to have_http_status(200)
end
- it 'renders statuses/show' do
- status = Fabricate(:status)
- get :show, params: { account_username: status.account.username, id: status.id }
- expect(response).to render_template 'statuses/show'
+ it 'returns Link header' do
+ expect(response.headers['Link'].to_s).to include 'activity+json'
+ end
+
+ it 'returns Vary header' do
+ expect(response.headers['Vary']).to eq 'Accept'
+ end
+
+ it 'returns public Cache-Control header' do
+ expect(response.headers['Cache-Control']).to include 'public'
+ end
+
+ it 'renders status' do
+ expect(response).to render_template(:embed)
+ expect(response.body).to include status.text
+ end
+ end
+
+ context 'when status is private' do
+ let(:status) { Fabricate(:status, account: account, visibility: :private) }
+
+ before do
+ get :embed, params: { account_username: status.account.username, id: status.id }
+ end
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+
+ context 'when status is direct' do
+ let(:status) { Fabricate(:status, account: account, visibility: :direct) }
+
+ before do
+ get :embed, params: { account_username: status.account.username, id: status.id }
+ end
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
end
end
end
diff --git a/spec/fabricators/status_pin_fabricator.rb b/spec/fabricators/status_pin_fabricator.rb
index 6a9006c9f..f1f1c05f3 100644
--- a/spec/fabricators/status_pin_fabricator.rb
+++ b/spec/fabricators/status_pin_fabricator.rb
@@ -1,4 +1,4 @@
Fabricator(:status_pin) do
account
- status
+ status { |attrs| Fabricate(:status, account: attrs[:account], visibility: :public) }
end
diff --git a/spec/fabricators/unavailable_domain_fabricator.rb b/spec/fabricators/unavailable_domain_fabricator.rb
new file mode 100644
index 000000000..f661b87c4
--- /dev/null
+++ b/spec/fabricators/unavailable_domain_fabricator.rb
@@ -0,0 +1,3 @@
+Fabricator(:unavailable_domain) do
+ domain { Faker::Internet.domain }
+end
diff --git a/spec/features/profile_spec.rb b/spec/features/profile_spec.rb
index 3202167ca..b6de3e9d1 100644
--- a/spec/features/profile_spec.rb
+++ b/spec/features/profile_spec.rb
@@ -39,7 +39,7 @@ feature 'Profile' do
visit settings_profile_path
fill_in 'Display name', with: 'Bob'
fill_in 'Bio', with: 'Bob is silent'
- click_on 'Save changes'
+ first('.btn[type=submit]').click
is_expected.to have_content 'Changes successfully saved!'
# View my own public profile and see the changes
diff --git a/spec/helpers/admin/action_log_helper_spec.rb b/spec/helpers/admin/action_log_helper_spec.rb
index d7af6b939..60f5ecdcc 100644
--- a/spec/helpers/admin/action_log_helper_spec.rb
+++ b/spec/helpers/admin/action_log_helper_spec.rb
@@ -31,242 +31,4 @@ RSpec.describe Admin::ActionLogsHelper, type: :helper do
end
end
end
-
- describe '#relevant_log_changes' do
- let(:log) { double(target_type: target_type, action: log_action, recorded_changes: recorded_changes) }
- let(:recorded_changes) { double }
-
- after do
- hoge.relevant_log_changes(log)
- end
-
- context "log.target_type == 'CustomEmoji' && [:enable, :disable, :destroy].include?(log.action)" do
- let(:target_type) { 'CustomEmoji' }
- let(:log_action) { :enable }
-
- it "calls log.recorded_changes.slice('domain')" do
- expect(recorded_changes).to receive(:slice).with('domain')
- end
- end
-
- context "log.target_type == 'CustomEmoji' && log.action == :update" do
- let(:target_type) { 'CustomEmoji' }
- let(:log_action) { :update }
-
- it "calls log.recorded_changes.slice('domain', 'visible_in_picker')" do
- expect(recorded_changes).to receive(:slice).with('domain', 'visible_in_picker')
- end
- end
-
- context "log.target_type == 'User' && [:promote, :demote].include?(log.action)" do
- let(:target_type) { 'User' }
- let(:log_action) { :promote }
-
- it "calls log.recorded_changes.slice('moderator', 'admin')" do
- expect(recorded_changes).to receive(:slice).with('moderator', 'admin')
- end
- end
-
- context "log.target_type == 'User' && [:change_email].include?(log.action)" do
- let(:target_type) { 'User' }
- let(:log_action) { :change_email }
-
- it "calls log.recorded_changes.slice('email', 'unconfirmed_email')" do
- expect(recorded_changes).to receive(:slice).with('email', 'unconfirmed_email')
- end
- end
-
- context "log.target_type == 'DomainBlock'" do
- let(:target_type) { 'DomainBlock' }
- let(:log_action) { nil }
-
- it "calls log.recorded_changes.slice('severity', 'reject_media')" do
- expect(recorded_changes).to receive(:slice).with('severity', 'reject_media')
- end
- end
-
- context "log.target_type == 'Status' && log.action == :update" do
- let(:target_type) { 'Status' }
- let(:log_action) { :update }
-
- it "log.recorded_changes.slice('sensitive')" do
- expect(recorded_changes).to receive(:slice).with('sensitive')
- end
- end
- end
-
- describe '#log_extra_attributes' do
- after do
- hoge.log_extra_attributes(hoge: 'hoge')
- end
-
- it "calls content_tag(:span, key, class: 'diff-key')" do
- allow(hoge).to receive(:log_change).with(anything)
- expect(hoge).to receive(:content_tag).with(:span, :hoge, class: 'diff-key')
- end
-
- it 'calls safe_join twice' do
- expect(hoge).to receive(:safe_join).with(
- ['hoge',
- '=',
- 'hoge']
- )
-
- expect(hoge).to receive(:safe_join).with([nil], ' ')
- end
- end
-
- describe '#log_change' do
- after do
- hoge.log_change(val)
- end
-
- context '!val.is_a?(Array)' do
- let(:val) { 'hoge' }
-
- it "calls content_tag(:span, val, class: 'diff-neutral')" do
- expect(hoge).to receive(:content_tag).with(:span, val, class: 'diff-neutral')
- end
- end
-
- context 'val.is_a?(Array)' do
- let(:val) { %w(foo bar) }
-
- it 'calls #content_tag twice and #safe_join' do
- expect(hoge).to receive(:content_tag).with(:span, 'foo', class: 'diff-old')
- expect(hoge).to receive(:content_tag).with(:span, 'bar', class: 'diff-new')
- expect(hoge).to receive(:safe_join).with([nil, nil], '→')
- end
- end
- end
-
- describe '#icon_for_log' do
- subject { hoge.icon_for_log(log) }
-
- context "log.target_type == 'Account'" do
- let(:log) { double(target_type: 'Account') }
-
- it 'returns "user"' do
- expect(subject).to be 'user'
- end
- end
-
- context "log.target_type == 'User'" do
- let(:log) { double(target_type: 'User') }
-
- it 'returns "user"' do
- expect(subject).to be 'user'
- end
- end
-
- context "log.target_type == 'CustomEmoji'" do
- let(:log) { double(target_type: 'CustomEmoji') }
-
- it 'returns "file"' do
- expect(subject).to be 'file'
- end
- end
-
- context "log.target_type == 'Report'" do
- let(:log) { double(target_type: 'Report') }
-
- it 'returns "flag"' do
- expect(subject).to be 'flag'
- end
- end
-
- context "log.target_type == 'DomainBlock'" do
- let(:log) { double(target_type: 'DomainBlock') }
-
- it 'returns "lock"' do
- expect(subject).to be 'lock'
- end
- end
-
- context "log.target_type == 'EmailDomainBlock'" do
- let(:log) { double(target_type: 'EmailDomainBlock') }
-
- it 'returns "envelope"' do
- expect(subject).to be 'envelope'
- end
- end
-
- context "log.target_type == 'Status'" do
- let(:log) { double(target_type: 'Status') }
-
- it 'returns "pencil"' do
- expect(subject).to be 'pencil'
- end
- end
- end
-
- describe '#class_for_log_icon' do
- subject { hoge.class_for_log_icon(log) }
-
- %i(enable unsuspend unsilence confirm promote resolve).each do |action|
- context "log.action == #{action}" do
- let(:log) { double(action: action) }
-
- it 'returns "positive"' do
- expect(subject).to be 'positive'
- end
- end
- end
-
- context 'log.action == :create' do
- context 'opposite_verbs?(log)' do
- let(:log) { double(action: :create, target_type: 'DomainBlock') }
-
- it 'returns "negative"' do
- expect(subject).to be 'negative'
- end
- end
-
- context '!opposite_verbs?(log)' do
- let(:log) { double(action: :create, target_type: '') }
-
- it 'returns "positive"' do
- expect(subject).to be 'positive'
- end
- end
- end
-
- %i(update reset_password disable_2fa memorialize change_email).each do |action|
- context "log.action == #{action}" do
- let(:log) { double(action: action) }
-
- it 'returns "neutral"' do
- expect(subject).to be 'neutral'
- end
- end
- end
-
- %i(demote silence disable suspend remove_avatar remove_header reopen).each do |action|
- context "log.action == #{action}" do
- let(:log) { double(action: action) }
-
- it 'returns "negative"' do
- expect(subject).to be 'negative'
- end
- end
- end
-
- context 'log.action == :destroy' do
- context 'opposite_verbs?(log)' do
- let(:log) { double(action: :destroy, target_type: 'DomainBlock') }
-
- it 'returns "positive"' do
- expect(subject).to be 'positive'
- end
- end
-
- context '!opposite_verbs?(log)' do
- let(:log) { double(action: :destroy, target_type: '') }
-
- it 'returns "negative"' do
- expect(subject).to be 'negative'
- end
- end
- end
- end
end
diff --git a/spec/lib/delivery_failure_tracker_spec.rb b/spec/lib/delivery_failure_tracker_spec.rb
index 39c8c7aaf..52a1a92f0 100644
--- a/spec/lib/delivery_failure_tracker_spec.rb
+++ b/spec/lib/delivery_failure_tracker_spec.rb
@@ -22,11 +22,11 @@ describe DeliveryFailureTracker do
describe '#track_failure!' do
it 'marks URL as unavailable after 7 days of being called' do
- 6.times { |i| Redis.current.sadd('exhausted_deliveries:http://example.com/inbox', i) }
+ 6.times { |i| Redis.current.sadd('exhausted_deliveries:example.com', i) }
subject.track_failure!
expect(subject.days).to eq 7
- expect(described_class.unavailable?('http://example.com/inbox')).to be true
+ expect(described_class.available?('http://example.com/inbox')).to be false
end
it 'repeated calls on the same day do not count' do
@@ -37,35 +37,27 @@ describe DeliveryFailureTracker do
end
end
- describe '.filter' do
+ describe '.without_unavailable' do
before do
- Redis.current.sadd('unavailable_inboxes', 'http://example.com/unavailable/inbox')
+ Fabricate(:unavailable_domain, domain: 'foo.bar')
end
it 'removes URLs that are unavailable' do
- result = described_class.filter(['http://example.com/good/inbox', 'http://example.com/unavailable/inbox'])
+ results = described_class.without_unavailable(['http://example.com/good/inbox', 'http://foo.bar/unavailable/inbox'])
- expect(result).to include('http://example.com/good/inbox')
- expect(result).to_not include('http://example.com/unavailable/inbox')
+ expect(results).to include('http://example.com/good/inbox')
+ expect(results).to_not include('http://foo.bar/unavailable/inbox')
end
end
- describe '.track_inverse_success!' do
- let(:from_account) { Fabricate(:account, inbox_url: 'http://example.com/inbox', shared_inbox_url: 'http://example.com/shared/inbox') }
-
+ describe '.reset!' do
before do
- Redis.current.sadd('unavailable_inboxes', 'http://example.com/inbox')
- Redis.current.sadd('unavailable_inboxes', 'http://example.com/shared/inbox')
-
- described_class.track_inverse_success!(from_account)
+ Fabricate(:unavailable_domain, domain: 'foo.bar')
+ described_class.reset!('https://foo.bar/inbox')
end
it 'marks inbox URL as available again' do
- expect(described_class.available?('http://example.com/inbox')).to be true
- end
-
- it 'marks shared inbox URL as available again' do
- expect(described_class.available?('http://example.com/shared/inbox')).to be true
+ expect(described_class.available?('http://foo.bar/inbox')).to be true
end
end
end
diff --git a/spec/lib/rss/serializer_spec.rb b/spec/lib/rss/serializer_spec.rb
new file mode 100644
index 000000000..0364d13de
--- /dev/null
+++ b/spec/lib/rss/serializer_spec.rb
@@ -0,0 +1,63 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe RSS::Serializer do
+ describe '#status_title' do
+ let(:text) { 'This is a toot' }
+ let(:spoiler) { '' }
+ let(:sensitive) { false }
+ let(:reblog) { nil }
+ let(:account) { Fabricate(:account) }
+ let(:status) { Fabricate(:status, account: account, text: text, spoiler_text: spoiler, sensitive: sensitive, reblog: reblog) }
+
+ subject { RSS::Serializer.new.send(:status_title, status) }
+
+ context 'if destroyed?' do
+ it 'returns "#{account.acct} deleted status"' do
+ status.destroy!
+ expect(subject).to eq "#{account.acct} deleted status"
+ end
+ end
+
+ context 'on a toot with long text' do
+ let(:text) { "This toot's text is longer than the allowed number of characters" }
+
+ it 'truncates toot text appropriately' do
+ expect(subject).to eq "#{account.acct}: “This toot's text is longer tha…”"
+ end
+ end
+
+ context 'on a toot with long text with a newline' do
+ let(:text) { "This toot's text is longer\nthan the allowed number of characters" }
+
+ it 'truncates toot text appropriately' do
+ expect(subject).to eq "#{account.acct}: “This toot's text is longer…”"
+ end
+ end
+
+ context 'on a toot with a content warning' do
+ let(:spoiler) { 'long toot' }
+
+ it 'displays spoiler text instead of toot content' do
+ expect(subject).to eq "#{account.acct}: CW “long toot”"
+ end
+ end
+
+ context 'on a toot with sensitive media' do
+ let(:sensitive) { true }
+
+ it 'displays that the media is sensitive' do
+ expect(subject).to eq "#{account.acct}: “This is a toot” (sensitive)"
+ end
+ end
+
+ context 'on a reblog' do
+ let(:reblog) { Fabricate(:status, text: 'This is a toot') }
+
+ it 'display that the toot is a reblog' do
+ expect(subject).to eq "#{account.acct} boosted #{reblog.account.acct}: “This is a toot”"
+ end
+ end
+ end
+end
diff --git a/spec/models/relationship_filter_spec.rb b/spec/models/relationship_filter_spec.rb
new file mode 100644
index 000000000..7c0f37a06
--- /dev/null
+++ b/spec/models/relationship_filter_spec.rb
@@ -0,0 +1,37 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe RelationshipFilter do
+ let(:account) { Fabricate(:account) }
+
+ describe '#results' do
+ context 'when default params are used' do
+ let(:subject) do
+ RelationshipFilter.new(account, 'order' => 'active').results
+ end
+
+ before do
+ add_following_account_with(last_status_at: 7.days.ago)
+ add_following_account_with(last_status_at: 1.day.ago)
+ add_following_account_with(last_status_at: 3.days.ago)
+ end
+
+ it 'returns followings ordered by last activity' do
+ expected_result = account.following.eager_load(:account_stat).reorder(nil).by_recent_status
+
+ expect(subject).to eq expected_result
+ end
+ end
+ end
+
+ def add_following_account_with(last_status_at:)
+ following_account = Fabricate(:account)
+ Fabricate(:account_stat, account: following_account,
+ last_status_at: last_status_at,
+ statuses_count: 1,
+ following_count: 0,
+ followers_count: 0)
+ Fabricate(:follow, account: account, target_account: following_account).account
+ end
+end
diff --git a/spec/models/status_spec.rb b/spec/models/status_spec.rb
index 76f031fdf..da00cda73 100644
--- a/spec/models/status_spec.rb
+++ b/spec/models/status_spec.rb
@@ -82,39 +82,6 @@ RSpec.describe Status, type: :model do
end
end
- describe '#title' do
- # rubocop:disable Style/InterpolationCheck
-
- let(:account) { subject.account }
-
- context 'if destroyed?' do
- it 'returns "#{account.acct} deleted status"' do
- subject.destroy!
- expect(subject.title).to eq "#{account.acct} deleted status"
- end
- end
-
- context 'unless destroyed?' do
- context 'if reblog?' do
- it 'returns "#{account.acct} shared #{reblog.account.acct}\'s: #{preview}"' do
- reblog = subject.reblog = other
- preview = subject.text.slice(0, 10).split("\n")[0]
- expect(subject.title).to(
- eq "#{account.acct} shared #{reblog.account.acct}'s: #{preview}"
- )
- end
- end
-
- context 'unless reblog?' do
- it 'returns "#{account.acct}: #{preview}"' do
- subject.reblog = nil
- preview = subject.text.slice(0, 20).split("\n")[0]
- expect(subject.title).to eq "#{account.acct}: #{preview}"
- end
- end
- end
- end
-
describe '#hidden?' do
context 'if private_visibility?' do
it 'returns true' do
@@ -407,6 +374,33 @@ RSpec.describe Status, type: :model do
end
end
+ context 'with a remote_only option set' do
+ let!(:local_account) { Fabricate(:account, domain: nil) }
+ let!(:remote_account) { Fabricate(:account, domain: 'test.com') }
+ let!(:local_status) { Fabricate(:status, account: local_account) }
+ let!(:remote_status) { Fabricate(:status, account: remote_account) }
+
+ subject { Status.as_public_timeline(viewer, :remote) }
+
+ context 'without a viewer' do
+ let(:viewer) { nil }
+
+ it 'does not include local instances statuses' do
+ expect(subject).not_to include(local_status)
+ expect(subject).to include(remote_status)
+ end
+ end
+
+ context 'with a viewer' do
+ let(:viewer) { Fabricate(:account, username: 'viewer') }
+
+ it 'does not include local instances statuses' do
+ expect(subject).not_to include(local_status)
+ expect(subject).to include(remote_status)
+ end
+ end
+ end
+
describe 'with an account passed in' do
before do
@account = Fabricate(:account)
diff --git a/spec/models/unavailable_domain_spec.rb b/spec/models/unavailable_domain_spec.rb
new file mode 100644
index 000000000..3f2621034
--- /dev/null
+++ b/spec/models/unavailable_domain_spec.rb
@@ -0,0 +1,4 @@
+require 'rails_helper'
+
+RSpec.describe UnavailableDomain, type: :model do
+end
diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb
index 6fbceca53..40ddf1f95 100644
--- a/spec/rails_helper.rb
+++ b/spec/rails_helper.rb
@@ -15,7 +15,7 @@ ActiveRecord::Migration.maintain_test_schema!
WebMock.disable_net_connect!(allow: Chewy.settings[:host])
Redis.current = Redis::Namespace.new("mastodon_test#{ENV['TEST_ENV_NUMBER']}", redis: Redis.current)
Sidekiq::Testing.inline!
-Sidekiq::Logging.logger = nil
+Sidekiq.logger = nil
Devise::Test::ControllerHelpers.module_eval do
alias_method :original_sign_in, :sign_in
diff --git a/spec/services/fetch_resource_service_spec.rb b/spec/services/fetch_resource_service_spec.rb
index 3af6a0689..ded05ffbc 100644
--- a/spec/services/fetch_resource_service_spec.rb
+++ b/spec/services/fetch_resource_service_spec.rb
@@ -21,7 +21,11 @@ RSpec.describe FetchResourceService, type: :service do
context 'when OpenSSL::SSL::SSLError is raised' do
before do
- allow(Request).to receive_message_chain(:new, :add_headers, :on_behalf_of, :perform).and_raise(OpenSSL::SSL::SSLError)
+ request = double()
+ allow(Request).to receive(:new).and_return(request)
+ allow(request).to receive(:add_headers)
+ allow(request).to receive(:on_behalf_of)
+ allow(request).to receive(:perform).and_raise(OpenSSL::SSL::SSLError)
end
it { is_expected.to be_nil }
@@ -29,7 +33,11 @@ RSpec.describe FetchResourceService, type: :service do
context 'when HTTP::ConnectionError is raised' do
before do
- allow(Request).to receive_message_chain(:new, :add_headers, :on_behalf_of, :perform).and_raise(HTTP::ConnectionError)
+ request = double()
+ allow(Request).to receive(:new).and_return(request)
+ allow(request).to receive(:add_headers)
+ allow(request).to receive(:on_behalf_of)
+ allow(request).to receive(:perform).and_raise(HTTP::ConnectionError)
end
it { is_expected.to be_nil }
diff --git a/spec/services/import_service_spec.rb b/spec/services/import_service_spec.rb
index 5355133f4..7618e9076 100644
--- a/spec/services/import_service_spec.rb
+++ b/spec/services/import_service_spec.rb
@@ -91,10 +91,6 @@ RSpec.describe ImportService, type: :service do
let(:csv) { attachment_fixture('mute-imports.txt') }
- before do
- allow(NotificationWorker).to receive(:perform_async)
- end
-
describe 'when no accounts are followed' do
let(:import) { Import.create(account: account, type: 'following', data: csv) }
it 'follows the listed accounts, including boosts' do
@@ -135,10 +131,6 @@ RSpec.describe ImportService, type: :service do
let(:csv) { attachment_fixture('new-following-imports.txt') }
- before do
- allow(NotificationWorker).to receive(:perform_async)
- end
-
describe 'when no accounts are followed' do
let(:import) { Import.create(account: account, type: 'following', data: csv) }
it 'follows the listed accounts, respecting boosts' do
diff --git a/spec/services/post_status_service_spec.rb b/spec/services/post_status_service_spec.rb
index 025a3da40..147a59fc3 100644
--- a/spec/services/post_status_service_spec.rb
+++ b/spec/services/post_status_service_spec.rb
@@ -79,6 +79,13 @@ RSpec.describe PostStatusService, type: :service do
expect(status.spoiler_text).to eq spoiler_text
end
+ it 'creates a sensitive status when there is a CW but no text' do
+ status = subject.call(Fabricate(:account), text: '', spoiler_text: 'foo')
+
+ expect(status).to be_persisted
+ expect(status).to be_sensitive
+ end
+
it 'creates a status with empty default spoiler text' do
status = create_status_with_options(spoiler_text: nil)
diff --git a/streaming/index.js b/streaming/index.js
index 28daa46ea..6b02bacbc 100644
--- a/streaming/index.js
+++ b/streaming/index.js
@@ -266,6 +266,8 @@ const startWorker = (workerId) => {
'public:media',
'public:local',
'public:local:media',
+ 'public:remote',
+ 'public:remote:media',
'hashtag',
'hashtag:local',
];
@@ -297,6 +299,7 @@ const startWorker = (workerId) => {
const PUBLIC_ENDPOINTS = [
'/api/v1/streaming/public',
'/api/v1/streaming/public/local',
+ '/api/v1/streaming/public/remote',
'/api/v1/streaming/hashtag',
'/api/v1/streaming/hashtag/local',
];
@@ -541,6 +544,13 @@ const startWorker = (workerId) => {
streamFrom(channel, req, streamToHttp(req, res), streamHttpEnd(req), true);
});
+ app.get('/api/v1/streaming/public/remote', (req, res) => {
+ const onlyMedia = req.query.only_media === '1' || req.query.only_media === 'true';
+ const channel = onlyMedia ? 'timeline:public:remote:media' : 'timeline:public:remote';
+
+ streamFrom(channel, req, streamToHttp(req, res), streamHttpEnd(req), true);
+ });
+
app.get('/api/v1/streaming/direct', (req, res) => {
const channel = `timeline:direct:${req.accountId}`;
streamFrom(channel, req, streamToHttp(req, res), streamHttpEnd(req, subscriptionHeartbeat(channel)), true);
@@ -605,12 +615,18 @@ const startWorker = (workerId) => {
case 'public:local':
streamFrom('timeline:public:local', req, streamToWs(req, ws), streamWsEnd(req, ws), true);
break;
+ case 'public:remote':
+ streamFrom('timeline:public:remote', req, streamToWs(req, ws), streamWsEnd(req, ws), true);
+ break;
case 'public:media':
streamFrom('timeline:public:media', req, streamToWs(req, ws), streamWsEnd(req, ws), true);
break;
case 'public:local:media':
streamFrom('timeline:public:local:media', req, streamToWs(req, ws), streamWsEnd(req, ws), true);
break;
+ case 'public:remote:media':
+ streamFrom('timeline:public:remote:media', req, streamToWs(req, ws), streamWsEnd(req, ws), true);
+ break;
case 'direct':
channel = `timeline:direct:${req.accountId}`;
streamFrom(channel, req, streamToWs(req, ws), streamWsEnd(req, ws, subscriptionHeartbeat(channel)), true);
diff --git a/yarn.lock b/yarn.lock
index 8814eb961..d3f9148ad 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -9,42 +9,43 @@
dependencies:
"@babel/highlight" "^7.8.3"
-"@babel/compat-data@^7.8.0", "@babel/compat-data@^7.8.1":
- version "7.8.1"
- resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.8.1.tgz#fc0bbbb7991e4fb2b47e168e60f2cc2c41680be9"
- integrity sha512-Z+6ZOXvyOWYxJ50BwxzdhRnRsGST8Y3jaZgxYig575lTjVSs3KtJnmESwZegg6e2Dn0td1eDhoWlp1wI4BTCPw==
+"@babel/compat-data@^7.9.6":
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.9.6.tgz#3f604c40e420131affe6f2c8052e9a275ae2049b"
+ integrity sha512-5QPTrNen2bm7RBc7dsOmcA5hbrS4O2Vhmk5XOL4zWW/zD/hV0iinpefDlkm+tBBy8kDtFaaeEvmAqt+nURAV2g==
dependencies:
- browserslist "^4.8.2"
+ browserslist "^4.11.1"
invariant "^2.2.4"
semver "^5.5.0"
-"@babel/core@^7.1.0", "@babel/core@^7.4.5", "@babel/core@^7.8.4":
- version "7.8.4"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.8.4.tgz#d496799e5c12195b3602d0fddd77294e3e38e80e"
- integrity sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA==
+"@babel/core@^7.1.0", "@babel/core@^7.7.2", "@babel/core@^7.7.5", "@babel/core@^7.9.6":
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.6.tgz#d9aa1f580abf3b2286ef40b6904d390904c63376"
+ integrity sha512-nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==
dependencies:
"@babel/code-frame" "^7.8.3"
- "@babel/generator" "^7.8.4"
- "@babel/helpers" "^7.8.4"
- "@babel/parser" "^7.8.4"
- "@babel/template" "^7.8.3"
- "@babel/traverse" "^7.8.4"
- "@babel/types" "^7.8.3"
+ "@babel/generator" "^7.9.6"
+ "@babel/helper-module-transforms" "^7.9.0"
+ "@babel/helpers" "^7.9.6"
+ "@babel/parser" "^7.9.6"
+ "@babel/template" "^7.8.6"
+ "@babel/traverse" "^7.9.6"
+ "@babel/types" "^7.9.6"
convert-source-map "^1.7.0"
debug "^4.1.0"
gensync "^1.0.0-beta.1"
- json5 "^2.1.0"
+ json5 "^2.1.2"
lodash "^4.17.13"
resolve "^1.3.2"
semver "^5.4.1"
source-map "^0.5.0"
-"@babel/generator@^7.0.0", "@babel/generator@^7.8.4":
- version "7.8.4"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.4.tgz#35bbc74486956fe4251829f9f6c48330e8d0985e"
- integrity sha512-PwhclGdRpNAf3IxZb0YVuITPZmmrXz9zf6fH8lT4XbrmfQKr6ryBzhv593P5C6poJRciFCL/eHGW2NuGrgEyxA==
+"@babel/generator@^7.9.6":
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.6.tgz#5408c82ac5de98cda0d77d8124e99fa1f2170a43"
+ integrity sha512-+htwWKJbH2bL72HRluF8zumBxzuX0ZZUFl3JLNyoUjM/Ho8wnVpPXM6aUz8cfKDqQ/h7zHqKt4xzJteUosckqQ==
dependencies:
- "@babel/types" "^7.8.3"
+ "@babel/types" "^7.9.6"
jsesc "^2.5.1"
lodash "^4.17.13"
source-map "^0.5.0"
@@ -64,32 +65,32 @@
"@babel/helper-explode-assignable-expression" "^7.8.3"
"@babel/types" "^7.8.3"
-"@babel/helper-builder-react-jsx@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.8.3.tgz#dee98d7d79cc1f003d80b76fe01c7f8945665ff6"
- integrity sha512-JT8mfnpTkKNCboTqZsQTdGo3l3Ik3l7QIt9hh0O9DYiwVel37VoJpILKM4YFbP2euF32nkQSb+F9cUk9b7DDXQ==
+"@babel/helper-builder-react-jsx-experimental@^7.9.0":
+ version "7.9.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.9.0.tgz#066d80262ade488f9c1b1823ce5db88a4cedaa43"
+ integrity sha512-3xJEiyuYU4Q/Ar9BsHisgdxZsRlsShMe90URZ0e6przL26CCs8NJbDoxH94kKT17PcxlMhsCAwZd90evCo26VQ==
dependencies:
- "@babel/types" "^7.8.3"
- esutils "^2.0.0"
+ "@babel/helper-annotate-as-pure" "^7.8.3"
+ "@babel/helper-module-imports" "^7.8.3"
+ "@babel/types" "^7.9.0"
-"@babel/helper-call-delegate@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.8.3.tgz#de82619898aa605d409c42be6ffb8d7204579692"
- integrity sha512-6Q05px0Eb+N4/GTyKPPvnkig7Lylw+QzihMpws9iiZQv7ZImf84ZsZpQH7QoWN4n4tm81SnSzPgHw2qtO0Zf3A==
+"@babel/helper-builder-react-jsx@^7.9.0":
+ version "7.9.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.9.0.tgz#16bf391990b57732700a3278d4d9a81231ea8d32"
+ integrity sha512-weiIo4gaoGgnhff54GQ3P5wsUQmnSwpkvU0r6ZHq6TzoSzKy4JxHEgnxNytaKbov2a9z/CVNyzliuCOUPEX3Jw==
dependencies:
- "@babel/helper-hoist-variables" "^7.8.3"
- "@babel/traverse" "^7.8.3"
- "@babel/types" "^7.8.3"
+ "@babel/helper-annotate-as-pure" "^7.8.3"
+ "@babel/types" "^7.9.0"
-"@babel/helper-compilation-targets@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.3.tgz#2deedc816fd41dca7355ef39fd40c9ea69f0719a"
- integrity sha512-JLylPCsFjhLN+6uBSSh3iYdxKdeO9MNmoY96PE/99d8kyBFaXLORtAVhqN6iHa+wtPeqxKLghDOZry0+Aiw9Tw==
+"@babel/helper-compilation-targets@^7.9.6":
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.9.6.tgz#1e05b7ccc9d38d2f8b40b458b380a04dcfadd38a"
+ integrity sha512-x2Nvu0igO0ejXzx09B/1fGBxY9NXQlBW2kZsSxCJft+KHN8t9XWzIvFxtPHnBOAXpVsdxZKZFbRUC8TsNKajMw==
dependencies:
- "@babel/compat-data" "^7.8.1"
- browserslist "^4.8.2"
+ "@babel/compat-data" "^7.9.6"
+ browserslist "^4.11.1"
invariant "^2.2.4"
- levenary "^1.1.0"
+ levenary "^1.1.1"
semver "^5.5.0"
"@babel/helper-create-class-features-plugin@^7.8.3":
@@ -112,6 +113,15 @@
"@babel/helper-regex" "^7.8.3"
regexpu-core "^4.6.0"
+"@babel/helper-create-regexp-features-plugin@^7.8.8":
+ version "7.8.8"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz#5d84180b588f560b7864efaeea89243e58312087"
+ integrity sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.8.3"
+ "@babel/helper-regex" "^7.8.3"
+ regexpu-core "^4.7.0"
+
"@babel/helper-define-map@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz#a0655cad5451c3760b726eba875f1cd8faa02c15"
@@ -138,6 +148,15 @@
"@babel/template" "^7.8.3"
"@babel/types" "^7.8.3"
+"@babel/helper-function-name@^7.9.5":
+ version "7.9.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz#2b53820d35275120e1874a82e5aabe1376920a5c"
+ integrity sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==
+ dependencies:
+ "@babel/helper-get-function-arity" "^7.8.3"
+ "@babel/template" "^7.8.3"
+ "@babel/types" "^7.9.5"
+
"@babel/helper-get-function-arity@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5"
@@ -166,16 +185,17 @@
dependencies:
"@babel/types" "^7.8.3"
-"@babel/helper-module-transforms@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.8.3.tgz#d305e35d02bee720fbc2c3c3623aa0c316c01590"
- integrity sha512-C7NG6B7vfBa/pwCOshpMbOYUmrYQDfCpVL/JCRu0ek8B5p8kue1+BCXpg2vOYs7w5ACB9GTOBYQ5U6NwrMg+3Q==
+"@babel/helper-module-transforms@^7.9.0":
+ version "7.9.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5"
+ integrity sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==
dependencies:
"@babel/helper-module-imports" "^7.8.3"
+ "@babel/helper-replace-supers" "^7.8.6"
"@babel/helper-simple-access" "^7.8.3"
"@babel/helper-split-export-declaration" "^7.8.3"
- "@babel/template" "^7.8.3"
- "@babel/types" "^7.8.3"
+ "@babel/template" "^7.8.6"
+ "@babel/types" "^7.9.0"
lodash "^4.17.13"
"@babel/helper-optimise-call-expression@^7.8.3":
@@ -218,6 +238,16 @@
"@babel/traverse" "^7.8.3"
"@babel/types" "^7.8.3"
+"@babel/helper-replace-supers@^7.8.6":
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz#03149d7e6a5586ab6764996cd31d6981a17e1444"
+ integrity sha512-qX+chbxkbArLyCImk3bWV+jB5gTNU/rsze+JlcF6Nf8tVTigPJSI1o1oBow/9Resa1yehUO9lIipsmu9oG4RzA==
+ dependencies:
+ "@babel/helper-member-expression-to-functions" "^7.8.3"
+ "@babel/helper-optimise-call-expression" "^7.8.3"
+ "@babel/traverse" "^7.9.6"
+ "@babel/types" "^7.9.6"
+
"@babel/helper-simple-access@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae"
@@ -233,6 +263,11 @@
dependencies:
"@babel/types" "^7.8.3"
+"@babel/helper-validator-identifier@^7.9.0", "@babel/helper-validator-identifier@^7.9.5":
+ version "7.9.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80"
+ integrity sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==
+
"@babel/helper-wrap-function@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz#9dbdb2bb55ef14aaa01fe8c99b629bd5352d8610"
@@ -243,28 +278,28 @@
"@babel/traverse" "^7.8.3"
"@babel/types" "^7.8.3"
-"@babel/helpers@^7.8.4":
- version "7.8.4"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.8.4.tgz#754eb3ee727c165e0a240d6c207de7c455f36f73"
- integrity sha512-VPbe7wcQ4chu4TDQjimHv/5tj73qz88o12EPkO2ValS2QiQS/1F2SsjyIGNnAD0vF/nZS6Cf9i+vW6HIlnaR8w==
+"@babel/helpers@^7.9.6":
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.6.tgz#092c774743471d0bb6c7de3ad465ab3d3486d580"
+ integrity sha512-tI4bUbldloLcHWoRUMAj4g1bF313M/o6fBKhIsb3QnGVPwRm9JsNf/gqMkQ7zjqReABiffPV6RWj7hEglID5Iw==
dependencies:
"@babel/template" "^7.8.3"
- "@babel/traverse" "^7.8.4"
- "@babel/types" "^7.8.3"
+ "@babel/traverse" "^7.9.6"
+ "@babel/types" "^7.9.6"
"@babel/highlight@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797"
- integrity sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==
+ version "7.9.0"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079"
+ integrity sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==
dependencies:
+ "@babel/helper-validator-identifier" "^7.9.0"
chalk "^2.0.0"
- esutils "^2.0.2"
js-tokens "^4.0.0"
-"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.8.3", "@babel/parser@^7.8.4":
- version "7.8.4"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.4.tgz#d1dbe64691d60358a974295fa53da074dd2ce8e8"
- integrity sha512-0fKu/QqildpXmPVaRBoXOlyBb3MC+J0A66x97qEfLOMkn3u6nfY5esWogQwi/K0BjASYy4DbnsEWnpNL6qT5Mw==
+"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.8.6", "@babel/parser@^7.9.6":
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.6.tgz#3b1bbb30dabe600cd72db58720998376ff653bc7"
+ integrity sha512-AoeIEJn8vt+d/6+PXDRPaksYhnlbMIiejioBZvvMQsOjW/JYK6k/0dKnvvP3EhK5GfMBWDPtrxRtegWdAcdq9Q==
"@babel/plugin-proposal-async-generator-functions@^7.8.3":
version "7.8.3"
@@ -316,13 +351,22 @@
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0"
-"@babel/plugin-proposal-object-rest-spread@^7.8.3":
+"@babel/plugin-proposal-numeric-separator@^7.8.3":
version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz#eb5ae366118ddca67bed583b53d7554cad9951bb"
- integrity sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz#5d6769409699ec9b3b68684cd8116cedff93bad8"
+ integrity sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/plugin-syntax-numeric-separator" "^7.8.3"
+
+"@babel/plugin-proposal-object-rest-spread@^7.9.6":
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.6.tgz#7a093586fcb18b08266eb1a7177da671ac575b63"
+ integrity sha512-Ga6/fhGqA9Hj+y6whNpPv8psyaK5xzrQwSPsGPloVkvmH+PqW1ixdnfJ9uIO06OjQNYol3PMnfmJ8vfZtkzF+A==
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/plugin-syntax-object-rest-spread" "^7.8.0"
+ "@babel/plugin-transform-parameters" "^7.9.5"
"@babel/plugin-proposal-optional-catch-binding@^7.8.3":
version "7.8.3"
@@ -332,29 +376,43 @@
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/plugin-syntax-optional-catch-binding" "^7.8.0"
-"@babel/plugin-proposal-optional-chaining@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.8.3.tgz#ae10b3214cb25f7adb1f3bc87ba42ca10b7e2543"
- integrity sha512-QIoIR9abkVn+seDE3OjA08jWcs3eZ9+wJCKSRgo3WdEU2csFYgdScb+8qHB3+WXsGJD55u+5hWCISI7ejXS+kg==
+"@babel/plugin-proposal-optional-chaining@^7.9.0":
+ version "7.9.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz#31db16b154c39d6b8a645292472b98394c292a58"
+ integrity sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w==
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/plugin-syntax-optional-chaining" "^7.8.0"
-"@babel/plugin-proposal-unicode-property-regex@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.3.tgz#b646c3adea5f98800c9ab45105ac34d06cd4a47f"
- integrity sha512-1/1/rEZv2XGweRwwSkLpY+s60za9OZ1hJs4YDqFHCw0kYWYwL5IFljVY1MYBL+weT1l9pokDO2uhSTLVxzoHkQ==
+"@babel/plugin-proposal-unicode-property-regex@^7.4.4", "@babel/plugin-proposal-unicode-property-regex@^7.8.3":
+ version "7.8.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz#ee3a95e90cdc04fe8cd92ec3279fa017d68a0d1d"
+ integrity sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A==
dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.8.3"
+ "@babel/helper-create-regexp-features-plugin" "^7.8.8"
"@babel/helper-plugin-utils" "^7.8.3"
-"@babel/plugin-syntax-async-generators@^7.8.0":
+"@babel/plugin-syntax-async-generators@^7.8.0", "@babel/plugin-syntax-async-generators@^7.8.4":
version "7.8.4"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
+"@babel/plugin-syntax-bigint@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea"
+ integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-class-properties@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.8.3.tgz#6cb933a8872c8d359bfde69bbeaae5162fd1e8f7"
+ integrity sha512-UcAyQWg2bAN647Q+O811tG9MrJ38Z10jjhQdKNAL8fsyPzE3cCN/uT+f55cFVY4aGO4jqJAvmqsuY3GQDwAoXg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
"@babel/plugin-syntax-decorators@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.8.3.tgz#8d2c15a9f1af624b0025f961682a9d53d3001bda"
@@ -369,7 +427,7 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-syntax-json-strings@^7.8.0":
+"@babel/plugin-syntax-json-strings@^7.8.0", "@babel/plugin-syntax-json-strings@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
@@ -383,28 +441,42 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
-"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0":
+"@babel/plugin-syntax-logical-assignment-operators@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.8.3.tgz#3995d7d7ffff432f6ddc742b47e730c054599897"
+ integrity sha512-Zpg2Sgc++37kuFl6ppq2Q7Awc6E6AIW671x5PY8E/f7MCIyPPGK/EoeZXvvY3P42exZ3Q4/t3YOzP/HiN79jDg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0":
+"@babel/plugin-syntax-numeric-separator@^7.8.0", "@babel/plugin-syntax-numeric-separator@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz#0e3fb63e09bea1b11e96467271c8308007e7c41f"
+ integrity sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+"@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-syntax-optional-catch-binding@^7.8.0":
+"@babel/plugin-syntax-optional-catch-binding@^7.8.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-syntax-optional-chaining@^7.8.0":
+"@babel/plugin-syntax-optional-chaining@^7.8.0", "@babel/plugin-syntax-optional-chaining@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
@@ -449,17 +521,17 @@
"@babel/helper-plugin-utils" "^7.8.3"
lodash "^4.17.13"
-"@babel/plugin-transform-classes@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.8.3.tgz#46fd7a9d2bb9ea89ce88720477979fe0d71b21b8"
- integrity sha512-SjT0cwFJ+7Rbr1vQsvphAHwUHvSUPmMjMU/0P59G8U2HLFqSa082JO7zkbDNWs9kH/IUqpHI6xWNesGf8haF1w==
+"@babel/plugin-transform-classes@^7.9.5":
+ version "7.9.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz#800597ddb8aefc2c293ed27459c1fcc935a26c2c"
+ integrity sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg==
dependencies:
"@babel/helper-annotate-as-pure" "^7.8.3"
"@babel/helper-define-map" "^7.8.3"
- "@babel/helper-function-name" "^7.8.3"
+ "@babel/helper-function-name" "^7.9.5"
"@babel/helper-optimise-call-expression" "^7.8.3"
"@babel/helper-plugin-utils" "^7.8.3"
- "@babel/helper-replace-supers" "^7.8.3"
+ "@babel/helper-replace-supers" "^7.8.6"
"@babel/helper-split-export-declaration" "^7.8.3"
globals "^11.1.0"
@@ -470,14 +542,14 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
-"@babel/plugin-transform-destructuring@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.3.tgz#20ddfbd9e4676906b1056ee60af88590cc7aaa0b"
- integrity sha512-H4X646nCkiEcHZUZaRkhE2XVsoz0J/1x3VVujnn96pSoGCtKPA99ZZA+va+gK+92Zycd6OBKCD8tDb/731bhgQ==
+"@babel/plugin-transform-destructuring@^7.9.5":
+ version "7.9.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz#72c97cf5f38604aea3abf3b935b0e17b1db76a50"
+ integrity sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q==
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
-"@babel/plugin-transform-dotall-regex@^7.8.3":
+"@babel/plugin-transform-dotall-regex@^7.4.4", "@babel/plugin-transform-dotall-regex@^7.8.3":
version "7.8.3"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz#c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e"
integrity sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==
@@ -500,10 +572,10 @@
"@babel/helper-builder-binary-assignment-operator-visitor" "^7.8.3"
"@babel/helper-plugin-utils" "^7.8.3"
-"@babel/plugin-transform-for-of@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.8.3.tgz#15f17bce2fc95c7d59a24b299e83e81cedc22e18"
- integrity sha512-ZjXznLNTxhpf4Q5q3x1NsngzGA38t9naWH8Gt+0qYZEJAcvPI9waSStSh56u19Ofjr7QmD0wUsQ8hw8s/p1VnA==
+"@babel/plugin-transform-for-of@^7.9.0":
+ version "7.9.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz#0f260e27d3e29cd1bb3128da5e76c761aa6c108e"
+ integrity sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ==
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
@@ -529,41 +601,41 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
-"@babel/plugin-transform-modules-amd@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.8.3.tgz#65606d44616b50225e76f5578f33c568a0b876a5"
- integrity sha512-MadJiU3rLKclzT5kBH4yxdry96odTUwuqrZM+GllFI/VhxfPz+k9MshJM+MwhfkCdxxclSbSBbUGciBngR+kEQ==
+"@babel/plugin-transform-modules-amd@^7.9.6":
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.6.tgz#8539ec42c153d12ea3836e0e3ac30d5aae7b258e"
+ integrity sha512-zoT0kgC3EixAyIAU+9vfaUVKTv9IxBDSabgHoUCBP6FqEJ+iNiN7ip7NBKcYqbfUDfuC2mFCbM7vbu4qJgOnDw==
dependencies:
- "@babel/helper-module-transforms" "^7.8.3"
+ "@babel/helper-module-transforms" "^7.9.0"
"@babel/helper-plugin-utils" "^7.8.3"
- babel-plugin-dynamic-import-node "^2.3.0"
+ babel-plugin-dynamic-import-node "^2.3.3"
-"@babel/plugin-transform-modules-commonjs@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.8.3.tgz#df251706ec331bd058a34bdd72613915f82928a5"
- integrity sha512-JpdMEfA15HZ/1gNuB9XEDlZM1h/gF/YOH7zaZzQu2xCFRfwc01NXBMHHSTT6hRjlXJJs5x/bfODM3LiCk94Sxg==
+"@babel/plugin-transform-modules-commonjs@^7.9.6":
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.6.tgz#64b7474a4279ee588cacd1906695ca721687c277"
+ integrity sha512-7H25fSlLcn+iYimmsNe3uK1at79IE6SKW9q0/QeEHTMC9MdOZ+4bA+T1VFB5fgOqBWoqlifXRzYD0JPdmIrgSQ==
dependencies:
- "@babel/helper-module-transforms" "^7.8.3"
+ "@babel/helper-module-transforms" "^7.9.0"
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/helper-simple-access" "^7.8.3"
- babel-plugin-dynamic-import-node "^2.3.0"
+ babel-plugin-dynamic-import-node "^2.3.3"
-"@babel/plugin-transform-modules-systemjs@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.8.3.tgz#d8bbf222c1dbe3661f440f2f00c16e9bb7d0d420"
- integrity sha512-8cESMCJjmArMYqa9AO5YuMEkE4ds28tMpZcGZB/jl3n0ZzlsxOAi3mC+SKypTfT8gjMupCnd3YiXCkMjj2jfOg==
+"@babel/plugin-transform-modules-systemjs@^7.9.6":
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.6.tgz#207f1461c78a231d5337a92140e52422510d81a4"
+ integrity sha512-NW5XQuW3N2tTHim8e1b7qGy7s0kZ2OH3m5octc49K1SdAKGxYxeIx7hiIz05kS1R2R+hOWcsr1eYwcGhrdHsrg==
dependencies:
"@babel/helper-hoist-variables" "^7.8.3"
- "@babel/helper-module-transforms" "^7.8.3"
+ "@babel/helper-module-transforms" "^7.9.0"
"@babel/helper-plugin-utils" "^7.8.3"
- babel-plugin-dynamic-import-node "^2.3.0"
+ babel-plugin-dynamic-import-node "^2.3.3"
-"@babel/plugin-transform-modules-umd@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.8.3.tgz#592d578ce06c52f5b98b02f913d653ffe972661a"
- integrity sha512-evhTyWhbwbI3/U6dZAnx/ePoV7H6OUG+OjiJFHmhr9FPn0VShjwC2kdxqIuQ/+1P50TMrneGzMeyMTFOjKSnAw==
+"@babel/plugin-transform-modules-umd@^7.9.0":
+ version "7.9.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz#e909acae276fec280f9b821a5f38e1f08b480697"
+ integrity sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ==
dependencies:
- "@babel/helper-module-transforms" "^7.8.3"
+ "@babel/helper-module-transforms" "^7.9.0"
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/plugin-transform-named-capturing-groups-regex@^7.8.3":
@@ -588,12 +660,11 @@
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/helper-replace-supers" "^7.8.3"
-"@babel/plugin-transform-parameters@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.8.3.tgz#7890576a13b17325d8b7d44cb37f21dc3bbdda59"
- integrity sha512-/pqngtGb54JwMBZ6S/D3XYylQDFtGjWrnoCF4gXZOUpFV/ujbxnoNGNvDGu6doFWRPBveE72qTx/RRU44j5I/Q==
+"@babel/plugin-transform-parameters@^7.9.5":
+ version "7.9.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz#173b265746f5e15b2afe527eeda65b73623a0795"
+ integrity sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA==
dependencies:
- "@babel/helper-call-delegate" "^7.8.3"
"@babel/helper-get-function-arity" "^7.8.3"
"@babel/helper-plugin-utils" "^7.8.3"
@@ -611,45 +682,55 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
-"@babel/plugin-transform-react-inline-elements@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-inline-elements/-/plugin-transform-react-inline-elements-7.8.3.tgz#fc234d02a35bb188ee3f933d068824e067e42b23"
- integrity sha512-CGKUlW3vtgk6YYrIMyfpohmmpILnaeFwszqwTIcem2LQkK1qWJj5w2yTZ7LJr2IR8F0XQ60AZoM8jgAB4zpxCg==
+"@babel/plugin-transform-react-inline-elements@^7.9.0":
+ version "7.9.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-inline-elements/-/plugin-transform-react-inline-elements-7.9.0.tgz#19a39843431803765c9976132198bd8dee3d8058"
+ integrity sha512-iqqKXtOfVZpbgJ+9D4TG+JO/vgxa29FlpPUSIATzIcopKMUd3/bdwIjrrEneNp+SeiJs74nqKfUFYAUPDEu/qw==
dependencies:
- "@babel/helper-builder-react-jsx" "^7.8.3"
+ "@babel/helper-builder-react-jsx" "^7.9.0"
"@babel/helper-plugin-utils" "^7.8.3"
-"@babel/plugin-transform-react-jsx-self@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.8.3.tgz#c4f178b2aa588ecfa8d077ea80d4194ee77ed702"
- integrity sha512-01OT7s5oa0XTLf2I8XGsL8+KqV9lx3EZV+jxn/L2LQ97CGKila2YMroTkCEIE0HV/FF7CMSRsIAybopdN9NTdg==
+"@babel/plugin-transform-react-jsx-development@^7.9.0":
+ version "7.9.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.9.0.tgz#3c2a130727caf00c2a293f0aed24520825dbf754"
+ integrity sha512-tK8hWKrQncVvrhvtOiPpKrQjfNX3DtkNLSX4ObuGcpS9p0QrGetKmlySIGR07y48Zft8WVgPakqd/bk46JrMSw==
+ dependencies:
+ "@babel/helper-builder-react-jsx-experimental" "^7.9.0"
+ "@babel/helper-plugin-utils" "^7.8.3"
+ "@babel/plugin-syntax-jsx" "^7.8.3"
+
+"@babel/plugin-transform-react-jsx-self@^7.9.0":
+ version "7.9.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.9.0.tgz#f4f26a325820205239bb915bad8e06fcadabb49b"
+ integrity sha512-K2ObbWPKT7KUTAoyjCsFilOkEgMvFG+y0FqOl6Lezd0/13kMkkjHskVsZvblRPj1PHA44PrToaZANrryppzTvQ==
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/plugin-syntax-jsx" "^7.8.3"
-"@babel/plugin-transform-react-jsx-source@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.8.3.tgz#951e75a8af47f9f120db731be095d2b2c34920e0"
- integrity sha512-PLMgdMGuVDtRS/SzjNEQYUT8f4z1xb2BAT54vM1X5efkVuYBf5WyGUMbpmARcfq3NaglIwz08UVQK4HHHbC6ag==
+"@babel/plugin-transform-react-jsx-source@^7.9.0":
+ version "7.9.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.9.0.tgz#89ef93025240dd5d17d3122294a093e5e0183de0"
+ integrity sha512-K6m3LlSnTSfRkM6FcRk8saNEeaeyG5k7AVkBU2bZK3+1zdkSED3qNdsWrUgQBeTVD2Tp3VMmerxVO2yM5iITmw==
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/plugin-syntax-jsx" "^7.8.3"
-"@babel/plugin-transform-react-jsx@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.8.3.tgz#4220349c0390fdefa505365f68c103562ab2fc4a"
- integrity sha512-r0h+mUiyL595ikykci+fbwm9YzmuOrUBi0b+FDIKmi3fPQyFokWVEMJnRWHJPPQEjyFJyna9WZC6Viv6UHSv1g==
+"@babel/plugin-transform-react-jsx@^7.9.4":
+ version "7.9.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.9.4.tgz#86f576c8540bd06d0e95e0b61ea76d55f6cbd03f"
+ integrity sha512-Mjqf3pZBNLt854CK0C/kRuXAnE6H/bo7xYojP+WGtX8glDGSibcwnsWwhwoSuRg0+EBnxPC1ouVnuetUIlPSAw==
dependencies:
- "@babel/helper-builder-react-jsx" "^7.8.3"
+ "@babel/helper-builder-react-jsx" "^7.9.0"
+ "@babel/helper-builder-react-jsx-experimental" "^7.9.0"
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/plugin-syntax-jsx" "^7.8.3"
-"@babel/plugin-transform-regenerator@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.3.tgz#b31031e8059c07495bf23614c97f3d9698bc6ec8"
- integrity sha512-qt/kcur/FxrQrzFR432FGZznkVAjiyFtCOANjkAKwCbt465L6ZCiUQh2oMYGU3Wo8LRFJxNDFwWn106S5wVUNA==
+"@babel/plugin-transform-regenerator@^7.8.7":
+ version "7.8.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz#5e46a0dca2bee1ad8285eb0527e6abc9c37672f8"
+ integrity sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA==
dependencies:
- regenerator-transform "^0.14.0"
+ regenerator-transform "^0.14.2"
"@babel/plugin-transform-reserved-words@^7.8.3":
version "7.8.3"
@@ -658,10 +739,10 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
-"@babel/plugin-transform-runtime@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.8.3.tgz#c0153bc0a5375ebc1f1591cb7eea223adea9f169"
- integrity sha512-/vqUt5Yh+cgPZXXjmaG9NT8aVfThKk7G4OqkVhrXqwsC5soMn/qTCxs36rZ2QFhpfTJcjw4SNDIZ4RUb8OL4jQ==
+"@babel/plugin-transform-runtime@^7.9.0":
+ version "7.9.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.9.0.tgz#45468c0ae74cc13204e1d3b1f4ce6ee83258af0b"
+ integrity sha512-pUu9VSf3kI1OqbWINQ7MaugnitRss1z533436waNXp+0N3ur3zfut37sXiQMxkuCF4VUjwZucen/quskCh7NHw==
dependencies:
"@babel/helper-module-imports" "^7.8.3"
"@babel/helper-plugin-utils" "^7.8.3"
@@ -698,10 +779,10 @@
"@babel/helper-annotate-as-pure" "^7.8.3"
"@babel/helper-plugin-utils" "^7.8.3"
-"@babel/plugin-transform-typeof-symbol@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.3.tgz#5cffb216fb25c8c64ba6bf5f76ce49d3ab079f4d"
- integrity sha512-3TrkKd4LPqm4jHs6nPtSDI/SV9Cm5PRJkHLUgTcqRQQTMAZ44ZaAdDZJtvWFSaRcvT0a1rTmJ5ZA5tDKjleF3g==
+"@babel/plugin-transform-typeof-symbol@^7.8.4":
+ version "7.8.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz#ede4062315ce0aaf8a657a920858f1a2f35fc412"
+ integrity sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
@@ -713,27 +794,29 @@
"@babel/helper-create-regexp-features-plugin" "^7.8.3"
"@babel/helper-plugin-utils" "^7.8.3"
-"@babel/preset-env@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.8.3.tgz#dc0fb2938f52bbddd79b3c861a4b3427dd3a6c54"
- integrity sha512-Rs4RPL2KjSLSE2mWAx5/iCH+GC1ikKdxPrhnRS6PfFVaiZeom22VFKN4X8ZthyN61kAaR05tfXTbCvatl9WIQg==
+"@babel/preset-env@^7.9.6":
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.6.tgz#df063b276c6455ec6fcfc6e53aacc38da9b0aea6"
+ integrity sha512-0gQJ9RTzO0heXOhzftog+a/WyOuqMrAIugVYxMYf83gh1CQaQDjMtsOpqOwXyDL/5JcWsrCm8l4ju8QC97O7EQ==
dependencies:
- "@babel/compat-data" "^7.8.0"
- "@babel/helper-compilation-targets" "^7.8.3"
+ "@babel/compat-data" "^7.9.6"
+ "@babel/helper-compilation-targets" "^7.9.6"
"@babel/helper-module-imports" "^7.8.3"
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/plugin-proposal-async-generator-functions" "^7.8.3"
"@babel/plugin-proposal-dynamic-import" "^7.8.3"
"@babel/plugin-proposal-json-strings" "^7.8.3"
"@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3"
- "@babel/plugin-proposal-object-rest-spread" "^7.8.3"
+ "@babel/plugin-proposal-numeric-separator" "^7.8.3"
+ "@babel/plugin-proposal-object-rest-spread" "^7.9.6"
"@babel/plugin-proposal-optional-catch-binding" "^7.8.3"
- "@babel/plugin-proposal-optional-chaining" "^7.8.3"
+ "@babel/plugin-proposal-optional-chaining" "^7.9.0"
"@babel/plugin-proposal-unicode-property-regex" "^7.8.3"
"@babel/plugin-syntax-async-generators" "^7.8.0"
"@babel/plugin-syntax-dynamic-import" "^7.8.0"
"@babel/plugin-syntax-json-strings" "^7.8.0"
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0"
+ "@babel/plugin-syntax-numeric-separator" "^7.8.0"
"@babel/plugin-syntax-object-rest-spread" "^7.8.0"
"@babel/plugin-syntax-optional-catch-binding" "^7.8.0"
"@babel/plugin-syntax-optional-chaining" "^7.8.0"
@@ -742,50 +825,71 @@
"@babel/plugin-transform-async-to-generator" "^7.8.3"
"@babel/plugin-transform-block-scoped-functions" "^7.8.3"
"@babel/plugin-transform-block-scoping" "^7.8.3"
- "@babel/plugin-transform-classes" "^7.8.3"
+ "@babel/plugin-transform-classes" "^7.9.5"
"@babel/plugin-transform-computed-properties" "^7.8.3"
- "@babel/plugin-transform-destructuring" "^7.8.3"
+ "@babel/plugin-transform-destructuring" "^7.9.5"
"@babel/plugin-transform-dotall-regex" "^7.8.3"
"@babel/plugin-transform-duplicate-keys" "^7.8.3"
"@babel/plugin-transform-exponentiation-operator" "^7.8.3"
- "@babel/plugin-transform-for-of" "^7.8.3"
+ "@babel/plugin-transform-for-of" "^7.9.0"
"@babel/plugin-transform-function-name" "^7.8.3"
"@babel/plugin-transform-literals" "^7.8.3"
"@babel/plugin-transform-member-expression-literals" "^7.8.3"
- "@babel/plugin-transform-modules-amd" "^7.8.3"
- "@babel/plugin-transform-modules-commonjs" "^7.8.3"
- "@babel/plugin-transform-modules-systemjs" "^7.8.3"
- "@babel/plugin-transform-modules-umd" "^7.8.3"
+ "@babel/plugin-transform-modules-amd" "^7.9.6"
+ "@babel/plugin-transform-modules-commonjs" "^7.9.6"
+ "@babel/plugin-transform-modules-systemjs" "^7.9.6"
+ "@babel/plugin-transform-modules-umd" "^7.9.0"
"@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3"
"@babel/plugin-transform-new-target" "^7.8.3"
"@babel/plugin-transform-object-super" "^7.8.3"
- "@babel/plugin-transform-parameters" "^7.8.3"
+ "@babel/plugin-transform-parameters" "^7.9.5"
"@babel/plugin-transform-property-literals" "^7.8.3"
- "@babel/plugin-transform-regenerator" "^7.8.3"
+ "@babel/plugin-transform-regenerator" "^7.8.7"
"@babel/plugin-transform-reserved-words" "^7.8.3"
"@babel/plugin-transform-shorthand-properties" "^7.8.3"
"@babel/plugin-transform-spread" "^7.8.3"
"@babel/plugin-transform-sticky-regex" "^7.8.3"
"@babel/plugin-transform-template-literals" "^7.8.3"
- "@babel/plugin-transform-typeof-symbol" "^7.8.3"
+ "@babel/plugin-transform-typeof-symbol" "^7.8.4"
"@babel/plugin-transform-unicode-regex" "^7.8.3"
- "@babel/types" "^7.8.3"
- browserslist "^4.8.2"
+ "@babel/preset-modules" "^0.1.3"
+ "@babel/types" "^7.9.6"
+ browserslist "^4.11.1"
core-js-compat "^3.6.2"
invariant "^2.2.2"
- levenary "^1.1.0"
+ levenary "^1.1.1"
semver "^5.5.0"
-"@babel/preset-react@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.8.3.tgz#23dc63f1b5b0751283e04252e78cf1d6589273d2"
- integrity sha512-9hx0CwZg92jGb7iHYQVgi0tOEHP/kM60CtWJQnmbATSPIQQ2xYzfoCI3EdqAhFBeeJwYMdWQuDUHMsuDbH9hyQ==
+"@babel/preset-modules@^0.1.3":
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72"
+ integrity sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/plugin-proposal-unicode-property-regex" "^7.4.4"
+ "@babel/plugin-transform-dotall-regex" "^7.4.4"
+ "@babel/types" "^7.4.4"
+ esutils "^2.0.2"
+
+"@babel/preset-react@^7.9.4":
+ version "7.9.4"
+ resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.9.4.tgz#c6c97693ac65b6b9c0b4f25b948a8f665463014d"
+ integrity sha512-AxylVB3FXeOTQXNXyiuAQJSvss62FEotbX2Pzx3K/7c+MKJMdSg6Ose6QYllkdCFA8EInCJVw7M/o5QbLuA4ZQ==
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
"@babel/plugin-transform-react-display-name" "^7.8.3"
- "@babel/plugin-transform-react-jsx" "^7.8.3"
- "@babel/plugin-transform-react-jsx-self" "^7.8.3"
- "@babel/plugin-transform-react-jsx-source" "^7.8.3"
+ "@babel/plugin-transform-react-jsx" "^7.9.4"
+ "@babel/plugin-transform-react-jsx-development" "^7.9.0"
+ "@babel/plugin-transform-react-jsx-self" "^7.9.0"
+ "@babel/plugin-transform-react-jsx-source" "^7.9.0"
+
+"@babel/runtime-corejs3@^7.8.3":
+ version "7.8.7"
+ resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.8.7.tgz#8209d9dff2f33aa2616cb319c83fe159ffb07b8c"
+ integrity sha512-sc7A+H4I8kTd7S61dgB9RomXu/C+F4IrRr4Ytze4dnfx7AXEpCrejSNpjx7vq6y/Bak9S6Kbk65a/WgMLtg43Q==
+ dependencies:
+ core-js-pure "^3.0.0"
+ regenerator-runtime "^0.13.4"
"@babel/runtime@7.0.0":
version "7.0.0"
@@ -801,55 +905,60 @@
dependencies:
regenerator-runtime "^0.12.0"
-"@babel/runtime@^7.1.2", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.8.3.tgz#0811944f73a6c926bb2ad35e918dcc1bfab279f1"
- integrity sha512-fVHx1rzEmwB130VTkLnxR+HmxcTjGzH12LYQcFFoBwakMd3aOMD4OsRN7tGG/UOYE2ektgFrS8uACAoRk1CY0w==
+"@babel/runtime@^7.1.2", "@babel/runtime@^7.4.4", "@babel/runtime@^7.4.5", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2":
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.6.tgz#a9102eb5cadedf3f31d08a9ecf294af7827ea29f"
+ integrity sha512-64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==
dependencies:
- regenerator-runtime "^0.13.2"
+ regenerator-runtime "^0.13.4"
-"@babel/template@^7.0.0", "@babel/template@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.3.tgz#e02ad04fe262a657809327f578056ca15fd4d1b8"
- integrity sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==
+"@babel/template@^7.3.3", "@babel/template@^7.8.3", "@babel/template@^7.8.6":
+ version "7.8.6"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b"
+ integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==
dependencies:
"@babel/code-frame" "^7.8.3"
- "@babel/parser" "^7.8.3"
- "@babel/types" "^7.8.3"
+ "@babel/parser" "^7.8.6"
+ "@babel/types" "^7.8.6"
-"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.8.3", "@babel/traverse@^7.8.4":
- version "7.8.4"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.8.4.tgz#f0845822365f9d5b0e312ed3959d3f827f869e3c"
- integrity sha512-NGLJPZwnVEyBPLI+bl9y9aSnxMhsKz42so7ApAv9D+b4vAFPpY013FTS9LdKxcABoIYFU52HcYga1pPlx454mg==
+"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.8.3", "@babel/traverse@^7.9.6":
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.6.tgz#5540d7577697bf619cc57b92aa0f1c231a94f442"
+ integrity sha512-b3rAHSjbxy6VEAvlxM8OV/0X4XrG72zoxme6q1MOoe2vd0bEc+TwayhuC1+Dfgqh1QEG+pj7atQqvUprHIccsg==
dependencies:
"@babel/code-frame" "^7.8.3"
- "@babel/generator" "^7.8.4"
- "@babel/helper-function-name" "^7.8.3"
+ "@babel/generator" "^7.9.6"
+ "@babel/helper-function-name" "^7.9.5"
"@babel/helper-split-export-declaration" "^7.8.3"
- "@babel/parser" "^7.8.4"
- "@babel/types" "^7.8.3"
+ "@babel/parser" "^7.9.6"
+ "@babel/types" "^7.9.6"
debug "^4.1.0"
globals "^11.1.0"
lodash "^4.17.13"
-"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.3.0", "@babel/types@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.3.tgz#5a383dffa5416db1b73dedffd311ffd0788fb31c"
- integrity sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==
+"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0", "@babel/types@^7.9.5", "@babel/types@^7.9.6":
+ version "7.9.6"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.6.tgz#2c5502b427251e9de1bd2dff95add646d95cc9f7"
+ integrity sha512-qxXzvBO//jO9ZnoasKF1uJzHd2+M6Q2ZPIVfnFps8JJvXy0ZBbwbNOmE6SGIY5XOY6d1Bo5lb9d9RJ8nv3WSeA==
dependencies:
- esutils "^2.0.2"
+ "@babel/helper-validator-identifier" "^7.9.5"
lodash "^4.17.13"
to-fast-properties "^2.0.0"
-"@clusterws/cws@^0.17.3":
- version "0.17.3"
- resolved "https://registry.yarnpkg.com/@clusterws/cws/-/cws-0.17.3.tgz#64ce6a34b2bd357c29bdc0675f27b37279e8661f"
- integrity sha512-5WSpxwD8yIIWPTyMspS/IDBp1d4yHnK4A0pjIzYGS1EmJHKylc4jgMiG66qbirjxZ9/IlzuvmYCgaXA+TQbe+A==
+"@bcoe/v8-coverage@^0.2.3":
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
+ integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
+
+"@clusterws/cws@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@clusterws/cws/-/cws-2.0.0.tgz#73e6ee97b2dcb561d294caa47d48a195234e18a9"
+ integrity sha512-ZKG2vR0XJyyaXEvcV8cxzuspYnEl4owyqkdcMcHd/Pza9nAKQ5iH+yrEg1JsScg/zBIqTZ9D/3rWJavVwTy0mw==
"@cnakazawa/watch@^1.0.3":
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.3.tgz#099139eaec7ebf07a27c1786a3ff64f39464d2ef"
- integrity sha512-r5160ogAvGyHsal38Kux7YYtodEKOj89RGb28ht1jh3SJb08VwRwAKKJL0bGb04Zd/3r9FL3BFIc3bBidYffCA==
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a"
+ integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==
dependencies:
exec-sh "^0.3.2"
minimist "^1.2.0"
@@ -885,25 +994,25 @@
"@emotion/utils" "0.11.2"
babel-plugin-emotion "^10.0.14"
-"@emotion/hash@0.7.3":
- version "0.7.3"
- resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.7.3.tgz#a166882c81c0c6040975dd30df24fae8549bd96f"
- integrity sha512-14ZVlsB9akwvydAdaEnVnvqu6J2P6ySv39hYyl/aoB6w/V+bXX0tay8cF6paqbgZsN2n5Xh15uF4pE+GvE+itw==
+"@emotion/hash@0.8.0":
+ version "0.8.0"
+ resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.8.0.tgz#bbbff68978fefdbe68ccb533bc8cbe1d1afb5413"
+ integrity sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==
-"@emotion/memoize@0.7.3":
- version "0.7.3"
- resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.3.tgz#5b6b1c11d6a6dddf1f2fc996f74cf3b219644d78"
- integrity sha512-2Md9mH6mvo+ygq1trTeVp2uzAKwE2P7In0cRpD/M9Q70aH8L+rxMLbb3JCN2JoSWsV2O+DdFjfbbXoMoLBczow==
+"@emotion/memoize@0.7.4":
+ version "0.7.4"
+ resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb"
+ integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==
-"@emotion/serialize@^0.11.10", "@emotion/serialize@^0.11.11", "@emotion/serialize@^0.11.8":
- version "0.11.11"
- resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-0.11.11.tgz#c92a5e5b358070a7242d10508143306524e842a4"
- integrity sha512-YG8wdCqoWtuoMxhHZCTA+egL0RSGdHEc+YCsmiSBPBEDNuVeMWtjEWtGrhUterSChxzwnWBXvzSxIFQI/3sHLw==
+"@emotion/serialize@^0.11.10", "@emotion/serialize@^0.11.16", "@emotion/serialize@^0.11.8":
+ version "0.11.16"
+ resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-0.11.16.tgz#dee05f9e96ad2fb25a5206b6d759b2d1ed3379ad"
+ integrity sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==
dependencies:
- "@emotion/hash" "0.7.3"
- "@emotion/memoize" "0.7.3"
- "@emotion/unitless" "0.7.4"
- "@emotion/utils" "0.11.2"
+ "@emotion/hash" "0.8.0"
+ "@emotion/memoize" "0.7.4"
+ "@emotion/unitless" "0.7.5"
+ "@emotion/utils" "0.11.3"
csstype "^2.5.7"
"@emotion/sheet@0.9.3":
@@ -916,196 +1025,241 @@
resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.4.tgz#6c51afdf1dd0d73666ba09d2eb6c25c220d6fe4c"
integrity sha512-TLmkCVm8f8gH0oLv+HWKiu7e8xmBIaokhxcEKPh1m8pXiV/akCiq50FvYgOwY42rjejck8nsdQxZlXZ7pmyBUQ==
-"@emotion/unitless@0.7.4":
- version "0.7.4"
- resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.4.tgz#a87b4b04e5ae14a88d48ebef15015f6b7d1f5677"
- integrity sha512-kBa+cDHOR9jpRJ+kcGMsysrls0leukrm68DmFQoMIWQcXdr2cZvyvypWuGYT7U+9kAExUE7+T7r6G3C3A6L8MQ==
+"@emotion/unitless@0.7.5":
+ version "0.7.5"
+ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed"
+ integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==
"@emotion/utils@0.11.2":
version "0.11.2"
resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-0.11.2.tgz#713056bfdffb396b0a14f1c8f18e7b4d0d200183"
integrity sha512-UHX2XklLl3sIaP6oiMmlVzT0J+2ATTVpf0dHQVyPJHTkOITvXfaSqnRk6mdDhV9pR8T/tHc3cex78IKXssmzrA==
+"@emotion/utils@0.11.3":
+ version "0.11.3"
+ resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-0.11.3.tgz#a759863867befa7e583400d322652a3f44820924"
+ integrity sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==
+
"@emotion/weak-memoize@0.2.4":
version "0.2.4"
resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.4.tgz#622a72bebd1e3f48d921563b4b60a762295a81fc"
integrity sha512-6PYY5DVdAY1ifaQW6XYTnOMihmBVT27elqSjEoodchsGjzYlEsTQMcEhSud99kVawatyTZRTiVkJ/c6lwbQ7nA==
+"@formatjs/intl-unified-numberformat@^3.3.3":
+ version "3.3.6"
+ resolved "https://registry.yarnpkg.com/@formatjs/intl-unified-numberformat/-/intl-unified-numberformat-3.3.6.tgz#ab69818f7568894023cb31fdb5b5c7eed62c6537"
+ integrity sha512-VQYswh9Pxf4kN6FQvKprAQwSJrF93eJstCDPM1HIt3c3O6NqPFWNWhZ91PLTppOV11rLYsFK11ZxiGbnLNiPTg==
+ dependencies:
+ "@formatjs/intl-utils" "^2.2.5"
+
+"@formatjs/intl-utils@^2.2.5":
+ version "2.2.5"
+ resolved "https://registry.yarnpkg.com/@formatjs/intl-utils/-/intl-utils-2.2.5.tgz#eaafd94df3d102ee13e54e80f992a33868a6b1e8"
+ integrity sha512-p7gcmazKROteL4IECCp03Qrs790fZ8tbemUAjQu0+K0AaAlK49rI1SIFFq3LzDUAqXIshV95JJhRe/yXxkal5g==
+
"@gamestdio/websocket@^0.3.2":
version "0.3.2"
resolved "https://registry.yarnpkg.com/@gamestdio/websocket/-/websocket-0.3.2.tgz#321ba0976ee30fd14e51dbf8faa85ce7b325f76a"
integrity sha512-J3n5SKim+ZoLbe44hRGI/VYAwSMCeIJuBy+FfP6EZaujEpNchPRFcIsVQLWAwpU1bP2Ji63rC+rEUOd1vjUB6Q==
-"@jest/console@^24.7.1":
- version "24.7.1"
- resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.7.1.tgz#32a9e42535a97aedfe037e725bd67e954b459545"
- integrity sha512-iNhtIy2M8bXlAOULWVTUxmnelTLFneTNEkHCgPmgd+zNwy9zVddJ6oS5rZ9iwoscNdT5mMwUd0C51v/fSlzItg==
+"@istanbuljs/load-nyc-config@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz#10602de5570baea82f8afbfa2630b24e7a8cfe5b"
+ integrity sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg==
dependencies:
- "@jest/source-map" "^24.3.0"
- chalk "^2.0.1"
- slash "^2.0.0"
+ camelcase "^5.3.1"
+ find-up "^4.1.0"
+ js-yaml "^3.13.1"
+ resolve-from "^5.0.0"
-"@jest/console@^24.9.0":
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0"
- integrity sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==
- dependencies:
- "@jest/source-map" "^24.9.0"
- chalk "^2.0.1"
- slash "^2.0.0"
+"@istanbuljs/schema@^0.1.2":
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd"
+ integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==
-"@jest/core@^24.9.0":
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/@jest/core/-/core-24.9.0.tgz#2ceccd0b93181f9c4850e74f2a9ad43d351369c4"
- integrity sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A==
+"@jest/console@^25.4.0", "@jest/console@^25.5.0":
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/console/-/console-25.5.0.tgz#770800799d510f37329c508a9edd0b7b447d9abb"
+ integrity sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==
dependencies:
- "@jest/console" "^24.7.1"
- "@jest/reporters" "^24.9.0"
- "@jest/test-result" "^24.9.0"
- "@jest/transform" "^24.9.0"
- "@jest/types" "^24.9.0"
- ansi-escapes "^3.0.0"
- chalk "^2.0.1"
+ "@jest/types" "^25.5.0"
+ chalk "^3.0.0"
+ jest-message-util "^25.5.0"
+ jest-util "^25.5.0"
+ slash "^3.0.0"
+
+"@jest/core@^25.4.0":
+ version "25.4.0"
+ resolved "https://registry.yarnpkg.com/@jest/core/-/core-25.4.0.tgz#cc1fe078df69b8f0fbb023bb0bcee23ef3b89411"
+ integrity sha512-h1x9WSVV0+TKVtATGjyQIMJENs8aF6eUjnCoi4jyRemYZmekLr8EJOGQqTWEX8W6SbZ6Skesy9pGXrKeAolUJw==
+ dependencies:
+ "@jest/console" "^25.4.0"
+ "@jest/reporters" "^25.4.0"
+ "@jest/test-result" "^25.4.0"
+ "@jest/transform" "^25.4.0"
+ "@jest/types" "^25.4.0"
+ ansi-escapes "^4.2.1"
+ chalk "^3.0.0"
exit "^0.1.2"
- graceful-fs "^4.1.15"
- jest-changed-files "^24.9.0"
- jest-config "^24.9.0"
- jest-haste-map "^24.9.0"
- jest-message-util "^24.9.0"
- jest-regex-util "^24.3.0"
- jest-resolve "^24.9.0"
- jest-resolve-dependencies "^24.9.0"
- jest-runner "^24.9.0"
- jest-runtime "^24.9.0"
- jest-snapshot "^24.9.0"
- jest-util "^24.9.0"
- jest-validate "^24.9.0"
- jest-watcher "^24.9.0"
- micromatch "^3.1.10"
- p-each-series "^1.0.0"
- realpath-native "^1.1.0"
- rimraf "^2.5.4"
- slash "^2.0.0"
- strip-ansi "^5.0.0"
+ graceful-fs "^4.2.3"
+ jest-changed-files "^25.4.0"
+ jest-config "^25.4.0"
+ jest-haste-map "^25.4.0"
+ jest-message-util "^25.4.0"
+ jest-regex-util "^25.2.6"
+ jest-resolve "^25.4.0"
+ jest-resolve-dependencies "^25.4.0"
+ jest-runner "^25.4.0"
+ jest-runtime "^25.4.0"
+ jest-snapshot "^25.4.0"
+ jest-util "^25.4.0"
+ jest-validate "^25.4.0"
+ jest-watcher "^25.4.0"
+ micromatch "^4.0.2"
+ p-each-series "^2.1.0"
+ realpath-native "^2.0.0"
+ rimraf "^3.0.0"
+ slash "^3.0.0"
+ strip-ansi "^6.0.0"
-"@jest/environment@^24.9.0":
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.9.0.tgz#21e3afa2d65c0586cbd6cbefe208bafade44ab18"
- integrity sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ==
+"@jest/environment@^25.4.0", "@jest/environment@^25.5.0":
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-25.5.0.tgz#aa33b0c21a716c65686638e7ef816c0e3a0c7b37"
+ integrity sha512-U2VXPEqL07E/V7pSZMSQCvV5Ea4lqOlT+0ZFijl/i316cRMHvZ4qC+jBdryd+lmRetjQo0YIQr6cVPNxxK87mA==
dependencies:
- "@jest/fake-timers" "^24.9.0"
- "@jest/transform" "^24.9.0"
- "@jest/types" "^24.9.0"
- jest-mock "^24.9.0"
+ "@jest/fake-timers" "^25.5.0"
+ "@jest/types" "^25.5.0"
+ jest-mock "^25.5.0"
-"@jest/fake-timers@^24.9.0":
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93"
- integrity sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==
+"@jest/fake-timers@^25.5.0":
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-25.5.0.tgz#46352e00533c024c90c2bc2ad9f2959f7f114185"
+ integrity sha512-9y2+uGnESw/oyOI3eww9yaxdZyHq7XvprfP/eeoCsjqKYts2yRlsHS/SgjPDV8FyMfn2nbMy8YzUk6nyvdLOpQ==
dependencies:
- "@jest/types" "^24.9.0"
- jest-message-util "^24.9.0"
- jest-mock "^24.9.0"
+ "@jest/types" "^25.5.0"
+ jest-message-util "^25.5.0"
+ jest-mock "^25.5.0"
+ jest-util "^25.5.0"
+ lolex "^5.0.0"
-"@jest/reporters@^24.9.0":
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-24.9.0.tgz#86660eff8e2b9661d042a8e98a028b8d631a5b43"
- integrity sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw==
+"@jest/globals@^25.5.2":
+ version "25.5.2"
+ resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-25.5.2.tgz#5e45e9de8d228716af3257eeb3991cc2e162ca88"
+ integrity sha512-AgAS/Ny7Q2RCIj5kZ+0MuKM1wbF0WMLxbCVl/GOMoCNbODRdJ541IxJ98xnZdVSZXivKpJlNPIWa3QmY0l4CXA==
dependencies:
- "@jest/environment" "^24.9.0"
- "@jest/test-result" "^24.9.0"
- "@jest/transform" "^24.9.0"
- "@jest/types" "^24.9.0"
- chalk "^2.0.1"
+ "@jest/environment" "^25.5.0"
+ "@jest/types" "^25.5.0"
+ expect "^25.5.0"
+
+"@jest/reporters@^25.4.0":
+ version "25.4.0"
+ resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-25.4.0.tgz#836093433b32ce4e866298af2d6fcf6ed351b0b0"
+ integrity sha512-bhx/buYbZgLZm4JWLcRJ/q9Gvmd3oUh7k2V7gA4ZYBx6J28pIuykIouclRdiAC6eGVX1uRZT+GK4CQJLd/PwPg==
+ dependencies:
+ "@bcoe/v8-coverage" "^0.2.3"
+ "@jest/console" "^25.4.0"
+ "@jest/test-result" "^25.4.0"
+ "@jest/transform" "^25.4.0"
+ "@jest/types" "^25.4.0"
+ chalk "^3.0.0"
+ collect-v8-coverage "^1.0.0"
exit "^0.1.2"
glob "^7.1.2"
- istanbul-lib-coverage "^2.0.2"
- istanbul-lib-instrument "^3.0.1"
- istanbul-lib-report "^2.0.4"
- istanbul-lib-source-maps "^3.0.1"
- istanbul-reports "^2.2.6"
- jest-haste-map "^24.9.0"
- jest-resolve "^24.9.0"
- jest-runtime "^24.9.0"
- jest-util "^24.9.0"
- jest-worker "^24.6.0"
- node-notifier "^5.4.2"
- slash "^2.0.0"
+ istanbul-lib-coverage "^3.0.0"
+ istanbul-lib-instrument "^4.0.0"
+ istanbul-lib-report "^3.0.0"
+ istanbul-lib-source-maps "^4.0.0"
+ istanbul-reports "^3.0.2"
+ jest-haste-map "^25.4.0"
+ jest-resolve "^25.4.0"
+ jest-util "^25.4.0"
+ jest-worker "^25.4.0"
+ slash "^3.0.0"
source-map "^0.6.0"
- string-length "^2.0.0"
+ string-length "^3.1.0"
+ terminal-link "^2.0.0"
+ v8-to-istanbul "^4.1.3"
+ optionalDependencies:
+ node-notifier "^6.0.0"
-"@jest/source-map@^24.3.0":
- version "24.3.0"
- resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.3.0.tgz#563be3aa4d224caf65ff77edc95cd1ca4da67f28"
- integrity sha512-zALZt1t2ou8le/crCeeiRYzvdnTzaIlpOWaet45lNSqNJUnXbppUUFR4ZUAlzgDmKee4Q5P/tKXypI1RiHwgag==
+"@jest/source-map@^25.5.0":
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-25.5.0.tgz#df5c20d6050aa292c2c6d3f0d2c7606af315bd1b"
+ integrity sha512-eIGx0xN12yVpMcPaVpjXPnn3N30QGJCJQSkEDUt9x1fI1Gdvb07Ml6K5iN2hG7NmMP6FDmtPEssE3z6doOYUwQ==
dependencies:
callsites "^3.0.0"
- graceful-fs "^4.1.15"
+ graceful-fs "^4.2.4"
source-map "^0.6.0"
-"@jest/source-map@^24.9.0":
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714"
- integrity sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==
+"@jest/test-result@^25.4.0", "@jest/test-result@^25.5.0":
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-25.5.0.tgz#139a043230cdeffe9ba2d8341b27f2efc77ce87c"
+ integrity sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==
dependencies:
- callsites "^3.0.0"
- graceful-fs "^4.1.15"
- source-map "^0.6.0"
-
-"@jest/test-result@^24.9.0":
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca"
- integrity sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==
- dependencies:
- "@jest/console" "^24.9.0"
- "@jest/types" "^24.9.0"
+ "@jest/console" "^25.5.0"
+ "@jest/types" "^25.5.0"
"@types/istanbul-lib-coverage" "^2.0.0"
+ collect-v8-coverage "^1.0.0"
-"@jest/test-sequencer@^24.9.0":
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz#f8f334f35b625a4f2f355f2fe7e6036dad2e6b31"
- integrity sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A==
+"@jest/test-sequencer@^25.5.4":
+ version "25.5.4"
+ resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-25.5.4.tgz#9b4e685b36954c38d0f052e596d28161bdc8b737"
+ integrity sha512-pTJGEkSeg1EkCO2YWq6hbFvKNXk8ejqlxiOg1jBNLnWrgXOkdY6UmqZpwGFXNnRt9B8nO1uWMzLLZ4eCmhkPNA==
dependencies:
- "@jest/test-result" "^24.9.0"
- jest-haste-map "^24.9.0"
- jest-runner "^24.9.0"
- jest-runtime "^24.9.0"
+ "@jest/test-result" "^25.5.0"
+ graceful-fs "^4.2.4"
+ jest-haste-map "^25.5.1"
+ jest-runner "^25.5.4"
+ jest-runtime "^25.5.4"
-"@jest/transform@^24.9.0":
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.9.0.tgz#4ae2768b296553fadab09e9ec119543c90b16c56"
- integrity sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ==
+"@jest/transform@^25.2.4", "@jest/transform@^25.4.0", "@jest/transform@^25.5.1":
+ version "25.5.1"
+ resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-25.5.1.tgz#0469ddc17699dd2bf985db55fa0fb9309f5c2db3"
+ integrity sha512-Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg==
dependencies:
"@babel/core" "^7.1.0"
- "@jest/types" "^24.9.0"
- babel-plugin-istanbul "^5.1.0"
- chalk "^2.0.1"
+ "@jest/types" "^25.5.0"
+ babel-plugin-istanbul "^6.0.0"
+ chalk "^3.0.0"
convert-source-map "^1.4.0"
fast-json-stable-stringify "^2.0.0"
- graceful-fs "^4.1.15"
- jest-haste-map "^24.9.0"
- jest-regex-util "^24.9.0"
- jest-util "^24.9.0"
- micromatch "^3.1.10"
+ graceful-fs "^4.2.4"
+ jest-haste-map "^25.5.1"
+ jest-regex-util "^25.2.6"
+ jest-util "^25.5.0"
+ micromatch "^4.0.2"
pirates "^4.0.1"
- realpath-native "^1.1.0"
- slash "^2.0.0"
+ realpath-native "^2.0.0"
+ slash "^3.0.0"
source-map "^0.6.1"
- write-file-atomic "2.4.1"
+ write-file-atomic "^3.0.0"
-"@jest/types@^24.9.0":
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59"
- integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==
+"@jest/types@^25.2.3", "@jest/types@^25.4.0", "@jest/types@^25.5.0":
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d"
+ integrity sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==
dependencies:
"@types/istanbul-lib-coverage" "^2.0.0"
"@types/istanbul-reports" "^1.1.1"
- "@types/yargs" "^13.0.0"
+ "@types/yargs" "^15.0.0"
+ chalk "^3.0.0"
-"@types/babel__core@^7.1.0", "@types/babel__core@^7.1.2":
- version "7.1.3"
- resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.3.tgz#e441ea7df63cd080dfcd02ab199e6d16a735fc30"
- integrity sha512-8fBo0UR2CcwWxeX7WIIgJ7lXjasFxoYgRnFHUj+hRvKkpiBJbxhdAPTCY6/ZKM0uxANFVzt4yObSLuTiTnazDA==
+"@rails/ujs@^6.0.3":
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.0.3.tgz#e68a03278e30daea6a110aac5dfa33c60c53055d"
+ integrity sha512-CM9OEvoN9eXkaX7PXEnbsQLULJ97b9rVmwliZbz/iBOERLJ68Rk3ClJe+fQEMKU4CBZfky2lIRnfslOdUs9SLQ==
+
+"@sinonjs/commons@^1.7.0":
+ version "1.7.2"
+ resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.7.2.tgz#505f55c74e0272b43f6c52d81946bed7058fc0e2"
+ integrity sha512-+DUO6pnp3udV/v2VfUWgaY5BIE1IfT7lLfeDzPVeMT1XKkaAp9LgSI9x5RtrFQoZ9Oi0PgXQQHPaoKu7dCjVxw==
+ dependencies:
+ type-detect "4.0.8"
+
+"@types/babel__core@^7.1.0", "@types/babel__core@^7.1.3", "@types/babel__core@^7.1.7":
+ version "7.1.7"
+ resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.7.tgz#1dacad8840364a57c98d0dd4855c6dd3752c6b89"
+ integrity sha512-RL62NqSFPCDK2FM1pSDH0scHpJvsXtZNiYlMB73DgPBaG1E38ZYVL+ei5EkWRbr+KC4YNiAUNBnRj+bgwpgjMw==
dependencies:
"@babel/parser" "^7.1.0"
"@babel/types" "^7.0.0"
@@ -1114,9 +1268,9 @@
"@types/babel__traverse" "*"
"@types/babel__generator@*":
- version "7.0.2"
- resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.0.2.tgz#d2112a6b21fad600d7674274293c85dce0cb47fc"
- integrity sha512-NHcOfab3Zw4q5sEE2COkpfXjoE7o+PmqD9DQW4koUT3roNxwziUdXGnRndMat/LJNUtePwn1TlP4do3uoe3KZQ==
+ version "7.6.1"
+ resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.1.tgz#4901767b397e8711aeb99df8d396d7ba7b7f0e04"
+ integrity sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew==
dependencies:
"@babel/types" "^7.0.0"
@@ -1129,9 +1283,9 @@
"@babel/types" "^7.0.0"
"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6":
- version "7.0.6"
- resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.6.tgz#328dd1a8fc4cfe3c8458be9477b219ea158fd7b2"
- integrity sha512-XYVgHF2sQ0YblLRMLNPB3CkFMewzFmlDsH/TneZFHUXDlABQgh88uOxuez7ZcXxayLFrqLwtDH1t+FmlFwNZxw==
+ version "7.0.11"
+ resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.11.tgz#1ae3010e8bf8851d324878b42acec71986486d18"
+ integrity sha512-ddHK5icION5U6q11+tV2f9Mo6CZVuT8GJKld2q9LqHSZbvLbH34Kcu2yFGckZut453+eQU6btIA3RihmnRgI+Q==
dependencies:
"@babel/types" "^7.3.0"
@@ -1154,15 +1308,22 @@
"@types/minimatch" "*"
"@types/node" "*"
-"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0":
+"@types/graceful-fs@^4.1.2":
+ version "4.1.3"
+ resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.3.tgz#039af35fe26bec35003e8d86d2ee9c586354348f"
+ integrity sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ==
+ dependencies:
+ "@types/node" "*"
+
+"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
version "2.0.1"
resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff"
integrity sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg==
"@types/istanbul-lib-report@*":
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz#e5471e7fa33c61358dd38426189c037a58433b8c"
- integrity sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg==
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686"
+ integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==
dependencies:
"@types/istanbul-lib-coverage" "*"
@@ -1180,19 +1341,29 @@
integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
"@types/node@*":
- version "12.7.8"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.8.tgz#cb1bf6800238898bc2ff6ffa5702c3cadd350708"
- integrity sha512-FMdVn84tJJdV+xe+53sYiZS4R5yn1mAIxfj+DVoNiQjTYz1+OYmjwEZr1ev9nU0axXwda0QDbYl06QHanRVH3A==
+ version "13.13.5"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.5.tgz#96ec3b0afafd64a4ccea9107b75bf8489f0e5765"
+ integrity sha512-3ySmiBYJPqgjiHA7oEaIo2Rzz0HrOZ7yrNO5HWyaE5q0lQ3BppDZ3N53Miz8bw2I7gh1/zir2MGVZBvpb1zq9g==
+
+"@types/normalize-package-data@^2.4.0":
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e"
+ integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==
"@types/parse-json@^4.0.0":
version "4.0.0"
resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
+"@types/prettier@^1.19.0":
+ version "1.19.1"
+ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-1.19.1.tgz#33509849f8e679e4add158959fdb086440e9553f"
+ integrity sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ==
+
"@types/q@^1.5.1":
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.1.tgz#48fd98c1561fe718b61733daed46ff115b496e18"
- integrity sha512-eqz8c/0kwNi/OEHQfvIuJVLTst3in0e7uTKeuY+WL/zfKn0xVujOTp42bS/vUUokhK5P2BppLd9JXMOMHcgbjA==
+ version "1.5.2"
+ resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8"
+ integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==
"@types/react@16.4.6":
version "16.4.6"
@@ -1201,167 +1372,171 @@
dependencies:
csstype "^2.2.0"
+"@types/schema-utils@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@types/schema-utils/-/schema-utils-1.0.0.tgz#295d36f01e2cb8bc3207ca1d9a68e210db6b40cb"
+ integrity sha512-YesPanU1+WCigC/Aj1Mga8UCOjHIfMNHZ3zzDsUY7lI8GlKnh/Kv2QwJOQ+jNQ36Ru7IfzSedlG14hppYaN13A==
+
"@types/stack-utils@^1.0.1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e"
integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==
"@types/yargs-parser@*":
- version "13.1.0"
- resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-13.1.0.tgz#c563aa192f39350a1d18da36c5a8da382bbd8228"
- integrity sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg==
+ version "15.0.0"
+ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d"
+ integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==
-"@types/yargs@^13.0.0":
- version "13.0.2"
- resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.2.tgz#a64674fc0149574ecd90ba746e932b5a5f7b3653"
- integrity sha512-lwwgizwk/bIIU+3ELORkyuOgDjCh7zuWDFqRtPPhhVgq9N1F7CvLNKg1TX4f2duwtKQ0p044Au9r1PLIXHrIzQ==
+"@types/yargs@^15.0.0":
+ version "15.0.4"
+ resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.4.tgz#7e5d0f8ca25e9d5849f2ea443cf7c402decd8299"
+ integrity sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg==
dependencies:
"@types/yargs-parser" "*"
-"@webassemblyjs/ast@1.8.5":
- version "1.8.5"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359"
- integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==
+"@webassemblyjs/ast@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964"
+ integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==
dependencies:
- "@webassemblyjs/helper-module-context" "1.8.5"
- "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
- "@webassemblyjs/wast-parser" "1.8.5"
+ "@webassemblyjs/helper-module-context" "1.9.0"
+ "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
+ "@webassemblyjs/wast-parser" "1.9.0"
-"@webassemblyjs/floating-point-hex-parser@1.8.5":
- version "1.8.5"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721"
- integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==
+"@webassemblyjs/floating-point-hex-parser@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4"
+ integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==
-"@webassemblyjs/helper-api-error@1.8.5":
- version "1.8.5"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7"
- integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==
+"@webassemblyjs/helper-api-error@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2"
+ integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==
-"@webassemblyjs/helper-buffer@1.8.5":
- version "1.8.5"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204"
- integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==
+"@webassemblyjs/helper-buffer@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00"
+ integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==
-"@webassemblyjs/helper-code-frame@1.8.5":
- version "1.8.5"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e"
- integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==
+"@webassemblyjs/helper-code-frame@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27"
+ integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==
dependencies:
- "@webassemblyjs/wast-printer" "1.8.5"
+ "@webassemblyjs/wast-printer" "1.9.0"
-"@webassemblyjs/helper-fsm@1.8.5":
- version "1.8.5"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452"
- integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==
+"@webassemblyjs/helper-fsm@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8"
+ integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==
-"@webassemblyjs/helper-module-context@1.8.5":
- version "1.8.5"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245"
- integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==
+"@webassemblyjs/helper-module-context@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07"
+ integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==
dependencies:
- "@webassemblyjs/ast" "1.8.5"
- mamacro "^0.0.3"
+ "@webassemblyjs/ast" "1.9.0"
-"@webassemblyjs/helper-wasm-bytecode@1.8.5":
- version "1.8.5"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61"
- integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==
+"@webassemblyjs/helper-wasm-bytecode@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790"
+ integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==
-"@webassemblyjs/helper-wasm-section@1.8.5":
- version "1.8.5"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf"
- integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==
+"@webassemblyjs/helper-wasm-section@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346"
+ integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==
dependencies:
- "@webassemblyjs/ast" "1.8.5"
- "@webassemblyjs/helper-buffer" "1.8.5"
- "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
- "@webassemblyjs/wasm-gen" "1.8.5"
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/helper-buffer" "1.9.0"
+ "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
+ "@webassemblyjs/wasm-gen" "1.9.0"
-"@webassemblyjs/ieee754@1.8.5":
- version "1.8.5"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e"
- integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==
+"@webassemblyjs/ieee754@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4"
+ integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==
dependencies:
"@xtuc/ieee754" "^1.2.0"
-"@webassemblyjs/leb128@1.8.5":
- version "1.8.5"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10"
- integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==
+"@webassemblyjs/leb128@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95"
+ integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==
dependencies:
"@xtuc/long" "4.2.2"
-"@webassemblyjs/utf8@1.8.5":
- version "1.8.5"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc"
- integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==
+"@webassemblyjs/utf8@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab"
+ integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==
-"@webassemblyjs/wasm-edit@1.8.5":
- version "1.8.5"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a"
- integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==
+"@webassemblyjs/wasm-edit@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf"
+ integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==
dependencies:
- "@webassemblyjs/ast" "1.8.5"
- "@webassemblyjs/helper-buffer" "1.8.5"
- "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
- "@webassemblyjs/helper-wasm-section" "1.8.5"
- "@webassemblyjs/wasm-gen" "1.8.5"
- "@webassemblyjs/wasm-opt" "1.8.5"
- "@webassemblyjs/wasm-parser" "1.8.5"
- "@webassemblyjs/wast-printer" "1.8.5"
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/helper-buffer" "1.9.0"
+ "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
+ "@webassemblyjs/helper-wasm-section" "1.9.0"
+ "@webassemblyjs/wasm-gen" "1.9.0"
+ "@webassemblyjs/wasm-opt" "1.9.0"
+ "@webassemblyjs/wasm-parser" "1.9.0"
+ "@webassemblyjs/wast-printer" "1.9.0"
-"@webassemblyjs/wasm-gen@1.8.5":
- version "1.8.5"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc"
- integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==
+"@webassemblyjs/wasm-gen@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c"
+ integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==
dependencies:
- "@webassemblyjs/ast" "1.8.5"
- "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
- "@webassemblyjs/ieee754" "1.8.5"
- "@webassemblyjs/leb128" "1.8.5"
- "@webassemblyjs/utf8" "1.8.5"
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
+ "@webassemblyjs/ieee754" "1.9.0"
+ "@webassemblyjs/leb128" "1.9.0"
+ "@webassemblyjs/utf8" "1.9.0"
-"@webassemblyjs/wasm-opt@1.8.5":
- version "1.8.5"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264"
- integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==
+"@webassemblyjs/wasm-opt@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61"
+ integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==
dependencies:
- "@webassemblyjs/ast" "1.8.5"
- "@webassemblyjs/helper-buffer" "1.8.5"
- "@webassemblyjs/wasm-gen" "1.8.5"
- "@webassemblyjs/wasm-parser" "1.8.5"
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/helper-buffer" "1.9.0"
+ "@webassemblyjs/wasm-gen" "1.9.0"
+ "@webassemblyjs/wasm-parser" "1.9.0"
-"@webassemblyjs/wasm-parser@1.8.5":
- version "1.8.5"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d"
- integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==
+"@webassemblyjs/wasm-parser@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e"
+ integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==
dependencies:
- "@webassemblyjs/ast" "1.8.5"
- "@webassemblyjs/helper-api-error" "1.8.5"
- "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
- "@webassemblyjs/ieee754" "1.8.5"
- "@webassemblyjs/leb128" "1.8.5"
- "@webassemblyjs/utf8" "1.8.5"
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/helper-api-error" "1.9.0"
+ "@webassemblyjs/helper-wasm-bytecode" "1.9.0"
+ "@webassemblyjs/ieee754" "1.9.0"
+ "@webassemblyjs/leb128" "1.9.0"
+ "@webassemblyjs/utf8" "1.9.0"
-"@webassemblyjs/wast-parser@1.8.5":
- version "1.8.5"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c"
- integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==
+"@webassemblyjs/wast-parser@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914"
+ integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==
dependencies:
- "@webassemblyjs/ast" "1.8.5"
- "@webassemblyjs/floating-point-hex-parser" "1.8.5"
- "@webassemblyjs/helper-api-error" "1.8.5"
- "@webassemblyjs/helper-code-frame" "1.8.5"
- "@webassemblyjs/helper-fsm" "1.8.5"
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/floating-point-hex-parser" "1.9.0"
+ "@webassemblyjs/helper-api-error" "1.9.0"
+ "@webassemblyjs/helper-code-frame" "1.9.0"
+ "@webassemblyjs/helper-fsm" "1.9.0"
"@xtuc/long" "4.2.2"
-"@webassemblyjs/wast-printer@1.8.5":
- version "1.8.5"
- resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc"
- integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==
+"@webassemblyjs/wast-printer@1.9.0":
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899"
+ integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==
dependencies:
- "@webassemblyjs/ast" "1.8.5"
- "@webassemblyjs/wast-parser" "1.8.5"
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/wast-parser" "1.9.0"
"@xtuc/long" "4.2.2"
"@xtuc/ieee754@^1.2.0":
@@ -1375,14 +1550,9 @@
integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
abab@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f"
- integrity sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w==
-
-abbrev@1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
- integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a"
+ integrity sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==
accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7:
version "1.3.7"
@@ -1392,10 +1562,10 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7:
mime-types "~2.1.24"
negotiator "0.6.2"
-acorn-globals@^4.1.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.0.tgz#e3b6f8da3c1552a95ae627571f7dd6923bb54103"
- integrity sha512-hMtHj3s5RnuhvHPowpBYvJVj3rAar82JiDQHvGs1zO0l10ocX/xEdBShNHTJaboucJUsScghp74pH3s7EnHHQw==
+acorn-globals@^4.3.2:
+ version "4.3.4"
+ resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7"
+ integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==
dependencies:
acorn "^6.0.1"
acorn-walk "^6.0.1"
@@ -1412,30 +1582,35 @@ acorn-jsx@^5.1.0:
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz#294adb71b57398b0680015f0a38c563ee1db5384"
integrity sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==
-acorn-walk@^6.0.1, acorn-walk@^6.1.1:
+acorn-walk@^6.0.1:
version "6.2.0"
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c"
integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==
+acorn-walk@^7.1.1:
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.1.1.tgz#345f0dffad5c735e7373d2fec9a1023e6a44b83e"
+ integrity sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==
+
acorn@^3.0.4:
version "3.3.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
integrity sha1-ReN/s56No/JbruP/U2niu18iAXo=
-acorn@^5.5.0, acorn@^5.5.3:
+acorn@^5.5.0:
version "5.7.3"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279"
integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==
-acorn@^6.0.1, acorn@^6.0.7, acorn@^6.2.1:
- version "6.3.0"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e"
- integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==
+acorn@^6.0.1, acorn@^6.4.1:
+ version "6.4.1"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474"
+ integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==
-acorn@^7.1.0:
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c"
- integrity sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==
+acorn@^7.1.0, acorn@^7.1.1:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.2.0.tgz#17ea7e40d7c8640ff54a694c889c26f31704effe"
+ integrity sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==
aggregate-error@^3.0.0:
version "3.0.1"
@@ -1484,12 +1659,12 @@ ajv@^4.7.0:
co "^4.6.0"
json-stable-stringify "^1.0.1"
-ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5, ajv@^6.9.1:
- version "6.10.2"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52"
- integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==
+ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.0, ajv@^6.5.5, ajv@^6.9.1:
+ version "6.12.2"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd"
+ integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==
dependencies:
- fast-deep-equal "^2.0.1"
+ fast-deep-equal "^3.1.1"
fast-json-stable-stringify "^2.0.0"
json-schema-traverse "^0.4.1"
uri-js "^4.2.2"
@@ -1509,11 +1684,6 @@ ansi-escapes@^1.1.0:
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
integrity sha1-06ioOzGapneTZisT52HHkRQiMG4=
-ansi-escapes@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.1.0.tgz#f73207bb81207d75fd6c83f125af26eea378ca30"
- integrity sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==
-
ansi-escapes@^4.2.1:
version "4.3.0"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.0.tgz#a4ce2b33d6b214b7950d8595c212f12ac9cc569d"
@@ -1536,11 +1706,6 @@ ansi-regex@^3.0.0:
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
-ansi-regex@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.0.0.tgz#70de791edf021404c3fd615aa89118ae0432e5a9"
- integrity sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w==
-
ansi-regex@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
@@ -1563,10 +1728,10 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1:
dependencies:
color-convert "^1.9.0"
-ansi-styles@^4.0.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.0.tgz#5681f0dcf7ae5880a7841d8831c4724ed9cc0172"
- integrity sha512-7kFQgnEaMdRtwf6uSfUnVr9gSGC7faurn+J/Mv90/W+iTtN0405/nLdopfMWwchyxhbGYl6TC4Sccn9TUkGAgg==
+ansi-styles@^4.0.0, ansi-styles@^4.1.0:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359"
+ integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==
dependencies:
"@types/color-name" "^1.1.1"
color-convert "^2.0.1"
@@ -1587,6 +1752,14 @@ anymatch@^3.0.1:
normalize-path "^3.0.0"
picomatch "^2.0.4"
+anymatch@^3.0.3:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142"
+ integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==
+ dependencies:
+ normalize-path "^3.0.0"
+ picomatch "^2.0.4"
+
aproba@^1.0.3, aproba@^1.1.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
@@ -1677,12 +1850,12 @@ array-unique@^0.3.2:
integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
array.prototype.find@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.1.0.tgz#630f2eaf70a39e608ac3573e45cf8ccd0ede9ad7"
- integrity sha512-Wn41+K1yuO5p7wRZDl7890c3xvv5UBrfVXTVIe28rSQb6LS0fZMDrQB6PAcxQFRFy6vJTLDc3A2+3CjQdzVKRg==
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.1.1.tgz#3baca26108ca7affb08db06bf0be6cb3115a969c"
+ integrity sha512-mi+MYNJYLTx2eNYy+Yh6raoQacCsNeeMUaspFPh9Y141lFSsWxxB8V9mM2ye+eqiRs917J6/pJ4M9ZPzenWckA==
dependencies:
define-properties "^1.1.3"
- es-abstract "^1.13.0"
+ es-abstract "^1.17.4"
array.prototype.flat@^1.2.1, array.prototype.flat@^1.2.3:
version "1.2.3"
@@ -1692,11 +1865,6 @@ array.prototype.flat@^1.2.1, array.prototype.flat@^1.2.3:
define-properties "^1.1.3"
es-abstract "^1.17.0-next.1"
-arrify@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
- integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=
-
arrow-key-navigation@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/arrow-key-navigation/-/arrow-key-navigation-1.1.0.tgz#c0f7021d006593e2e34e79aa1f032714877d3a76"
@@ -1768,23 +1936,23 @@ asynckit@^0.4.0:
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
-atob@^2.1.1:
+atob@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
-autoprefixer@^9.7.4:
- version "9.7.4"
- resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.4.tgz#f8bf3e06707d047f0641d87aee8cfb174b2a5378"
- integrity sha512-g0Ya30YrMBAEZk60lp+qfX5YQllG+S5W3GYCFvyHTvhOki0AEQJLPEcIuGRsqVwLi8FvXPVtwTGhfr38hVpm0g==
+autoprefixer@^9.7.6:
+ version "9.7.6"
+ resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.6.tgz#63ac5bbc0ce7934e6997207d5bb00d68fa8293a4"
+ integrity sha512-F7cYpbN7uVVhACZTeeIeealwdGM6wMtfWARVLTy5xmKtgVdBNJvbDRoCK3YO1orcs7gv/KwYlb3iXwu9Ug9BkQ==
dependencies:
- browserslist "^4.8.3"
- caniuse-lite "^1.0.30001020"
+ browserslist "^4.11.1"
+ caniuse-lite "^1.0.30001039"
chalk "^2.4.2"
normalize-range "^0.1.2"
num2fraction "^1.2.2"
- postcss "^7.0.26"
- postcss-value-parser "^4.0.2"
+ postcss "^7.0.27"
+ postcss-value-parser "^4.0.3"
aws-sign2@~0.7.0:
version "0.7.0"
@@ -1792,9 +1960,9 @@ aws-sign2@~0.7.0:
integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
aws4@^1.8.0:
- version "1.8.0"
- resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f"
- integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e"
+ integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==
axios@^0.18.0:
version "0.18.1"
@@ -1812,11 +1980,9 @@ axios@^0.19.2:
follow-redirects "1.5.10"
axobject-query@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.0.2.tgz#ea187abe5b9002b377f925d8bf7d1c561adf38f9"
- integrity sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==
- dependencies:
- ast-types-flow "0.0.7"
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.1.2.tgz#2bdffc0371e643e5f03ba99065d5179b9ca79799"
+ integrity sha512-ICt34ZmrVt8UQnvPl6TVyDTkmhXmAyAT4Jh5ugfGUX4MOrZ+U/ZY6/sdylRw3qGNr9Ub5AJsaHeDMzNLehRdOQ==
babel-eslint@^10.0.3:
version "10.0.3"
@@ -1830,45 +1996,60 @@ babel-eslint@^10.0.3:
eslint-visitor-keys "^1.0.0"
resolve "^1.12.0"
-babel-jest@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.9.0.tgz#3fc327cb8467b89d14d7bc70e315104a783ccd54"
- integrity sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw==
+babel-jest@^25.2.4:
+ version "25.2.4"
+ resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-25.2.4.tgz#b21b68d3af8f161c3e6e501e91f0dea8e652e344"
+ integrity sha512-+yDzlyJVWrqih9i2Cvjpt7COaN8vUwCsKGtxJLzg6I0xhxD54K8mvDUCliPKLufyzHh/c5C4MRj4Vk7VMjOjIg==
dependencies:
- "@jest/transform" "^24.9.0"
- "@jest/types" "^24.9.0"
+ "@jest/transform" "^25.2.4"
+ "@jest/types" "^25.2.3"
"@types/babel__core" "^7.1.0"
- babel-plugin-istanbul "^5.1.0"
- babel-preset-jest "^24.9.0"
- chalk "^2.4.2"
- slash "^2.0.0"
+ babel-plugin-istanbul "^6.0.0"
+ babel-preset-jest "^25.2.1"
+ chalk "^3.0.0"
+ slash "^3.0.0"
-babel-loader@^8.0.6:
- version "8.0.6"
- resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz#e33bdb6f362b03f4bb141a0c21ab87c501b70dfb"
- integrity sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw==
+babel-jest@^25.5.1:
+ version "25.5.1"
+ resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-25.5.1.tgz#bc2e6101f849d6f6aec09720ffc7bc5332e62853"
+ integrity sha512-9dA9+GmMjIzgPnYtkhBg73gOo/RHqPmLruP3BaGL4KEX3Dwz6pI8auSN8G8+iuEG90+GSswyKvslN+JYSaacaQ==
dependencies:
- find-cache-dir "^2.0.0"
- loader-utils "^1.0.2"
- mkdirp "^0.5.1"
- pify "^4.0.1"
+ "@jest/transform" "^25.5.1"
+ "@jest/types" "^25.5.0"
+ "@types/babel__core" "^7.1.7"
+ babel-plugin-istanbul "^6.0.0"
+ babel-preset-jest "^25.5.0"
+ chalk "^3.0.0"
+ graceful-fs "^4.2.4"
+ slash "^3.0.0"
-babel-plugin-dynamic-import-node@^2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f"
- integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==
+babel-loader@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3"
+ integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==
+ dependencies:
+ find-cache-dir "^2.1.0"
+ loader-utils "^1.4.0"
+ mkdirp "^0.5.3"
+ pify "^4.0.1"
+ schema-utils "^2.6.5"
+
+babel-plugin-dynamic-import-node@^2.3.3:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3"
+ integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==
dependencies:
object.assign "^4.1.0"
babel-plugin-emotion@^10.0.14:
- version "10.0.19"
- resolved "https://registry.yarnpkg.com/babel-plugin-emotion/-/babel-plugin-emotion-10.0.19.tgz#67b9b213f7505c015f163a387a005c12c502b1de"
- integrity sha512-1pJb5uKN/gx6bi3gGr588Krj49sxARI9KmxhtMUa+NRJb6lR3OfC51mh3NlWRsOqdjWlT4cSjnZpnFq5K3T5ZA==
+ version "10.0.33"
+ resolved "https://registry.yarnpkg.com/babel-plugin-emotion/-/babel-plugin-emotion-10.0.33.tgz#ce1155dcd1783bbb9286051efee53f4e2be63e03"
+ integrity sha512-bxZbTTGz0AJQDHm8k6Rf3RQJ8tX2scsfsRyKVgAbiUPUNIRtlK+7JxP+TAd1kRLABFxe0CFm2VdK4ePkoA9FxQ==
dependencies:
"@babel/helper-module-imports" "^7.0.0"
- "@emotion/hash" "0.7.3"
- "@emotion/memoize" "0.7.3"
- "@emotion/serialize" "^0.11.11"
+ "@emotion/hash" "0.8.0"
+ "@emotion/memoize" "0.7.4"
+ "@emotion/serialize" "^0.11.16"
babel-plugin-macros "^2.0.0"
babel-plugin-syntax-jsx "^6.18.0"
convert-source-map "^1.5.0"
@@ -1876,20 +2057,24 @@ babel-plugin-emotion@^10.0.14:
find-root "^1.1.0"
source-map "^0.5.7"
-babel-plugin-istanbul@^5.1.0:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.1.tgz#7981590f1956d75d67630ba46f0c22493588c893"
- integrity sha512-RNNVv2lsHAXJQsEJ5jonQwrJVWK8AcZpG1oxhnjCUaAjL7xahYLANhPUZbzEQHjKy1NMYUwn+0NPKQc8iSY4xQ==
+babel-plugin-istanbul@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765"
+ integrity sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==
dependencies:
- find-up "^3.0.0"
- istanbul-lib-instrument "^3.0.0"
- test-exclude "^5.0.0"
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@istanbuljs/load-nyc-config" "^1.0.0"
+ "@istanbuljs/schema" "^0.1.2"
+ istanbul-lib-instrument "^4.0.0"
+ test-exclude "^6.0.0"
-babel-plugin-jest-hoist@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz#4f837091eb407e01447c8843cbec546d0002d756"
- integrity sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw==
+babel-plugin-jest-hoist@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.5.0.tgz#129c80ba5c7fc75baf3a45b93e2e372d57ca2677"
+ integrity sha512-u+/W+WAjMlvoocYGTwthAiQSxDcJAyHpQ6oWlHdFZaaN+Rlk8Q7iiwDPg2lN/FyJtAYnKjFxbn7xus4HCFkg5g==
dependencies:
+ "@babel/template" "^7.3.3"
+ "@babel/types" "^7.3.3"
"@types/babel__traverse" "^7.0.6"
babel-plugin-lodash@^3.3.4:
@@ -1903,34 +2088,36 @@ babel-plugin-lodash@^3.3.4:
lodash "^4.17.10"
require-package-name "^2.0.1"
-babel-plugin-macros@^2.0.0, babel-plugin-macros@^2.6.1:
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.6.2.tgz#98ae30a02645dfa8033628fe613854ec9541bbc8"
- integrity sha512-Ntviq8paRTkXIxvrJBauib+2KqQbZQuh4593CEZFF8qz3IVP8VituTZmkGe6N7rsuiOIbejxXj6kx3LMlEq0UA==
+babel-plugin-macros@^2.0.0, babel-plugin-macros@^2.8.0:
+ version "2.8.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138"
+ integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==
dependencies:
"@babel/runtime" "^7.7.2"
cosmiconfig "^6.0.0"
resolve "^1.12.0"
-babel-plugin-preval@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-preval/-/babel-plugin-preval-4.0.0.tgz#edb8501167985752aafcc31086791e1314052e9d"
- integrity sha512-fZI/4cYneinlj2k/FsXw0/lTWSC5KKoepUueS1g25Gb5vx3GrRyaVwxWCshYqx11GEU4mZnbbFhee8vpquFS2w==
+babel-plugin-preval@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-preval/-/babel-plugin-preval-5.0.0.tgz#6cabb947ecc241664966e1f99eb56a3b4bb63d1e"
+ integrity sha512-8DqJq6/LPUjSZ0Qq6bVIFpsj2flCEE0Cbnbut9TvGU6jP9g3dOWEXtQ/sdvsA9d6souza8eNGh04WRXpuH9ThA==
dependencies:
- "@babel/runtime" "^7.7.2"
- babel-plugin-macros "^2.6.1"
+ "@babel/runtime" "^7.9.2"
+ babel-plugin-macros "^2.8.0"
require-from-string "^2.0.2"
-babel-plugin-react-intl@^3.4.1:
- version "3.4.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-react-intl/-/babel-plugin-react-intl-3.4.1.tgz#b107b0756599c2fccb09f601454a7b805e8df659"
- integrity sha512-1Dp+b5E71ot3YjxPkX1u4l5pJkiLDmU4V6m6gatgrFRxGL8NQlQ67WrPA7GTNJhOhs75PYGmR3+l1PT7It4eyQ==
+babel-plugin-react-intl@^6.2.0:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-react-intl/-/babel-plugin-react-intl-6.2.0.tgz#ac51ca757f318938792fc91e1747515e9225386a"
+ integrity sha512-ajGpa14mLzyDgdOS75DRlQ0aEL+q7iSCB77613YUPOZbxnAvfB0wg+gLngbd/43eKRw7a4y+IzO3P8kDHl40nA==
dependencies:
- "@babel/core" "^7.4.5"
+ "@babel/core" "^7.7.2"
"@babel/helper-plugin-utils" "^7.0.0"
- "@types/babel__core" "^7.1.2"
- fs-extra "^8.0.1"
- intl-messageformat-parser "^1.7.1"
+ "@types/babel__core" "^7.1.3"
+ "@types/schema-utils" "^1.0.0"
+ fs-extra "^8.1.0"
+ intl-messageformat-parser "^4.1.1"
+ schema-utils "^2.2.0"
babel-plugin-syntax-jsx@^6.18.0:
version "6.18.0"
@@ -1942,13 +2129,29 @@ babel-plugin-transform-react-remove-prop-types@^0.4.24:
resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a"
integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==
-babel-preset-jest@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz#192b521e2217fb1d1f67cf73f70c336650ad3cdc"
- integrity sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg==
+babel-preset-current-node-syntax@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.2.tgz#fb4a4c51fe38ca60fede1dc74ab35eb843cb41d6"
+ integrity sha512-u/8cS+dEiK1SFILbOC8/rUI3ml9lboKuuMvZ/4aQnQmhecQAgPw5ew066C1ObnEAUmlx7dv/s2z52psWEtLNiw==
dependencies:
- "@babel/plugin-syntax-object-rest-spread" "^7.0.0"
- babel-plugin-jest-hoist "^24.9.0"
+ "@babel/plugin-syntax-async-generators" "^7.8.4"
+ "@babel/plugin-syntax-bigint" "^7.8.3"
+ "@babel/plugin-syntax-class-properties" "^7.8.3"
+ "@babel/plugin-syntax-json-strings" "^7.8.3"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+ "@babel/plugin-syntax-numeric-separator" "^7.8.3"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+
+babel-preset-jest@^25.2.1, babel-preset-jest@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-25.5.0.tgz#c1d7f191829487a907764c65307faa0e66590b49"
+ integrity sha512-8ZczygctQkBU+63DtSOKGh7tFL0CeCuz+1ieud9lJ1WPQ9O6A1a/r+LGn6Y705PA6whHQ3T1XuB/PmpfNYf8Fw==
+ dependencies:
+ babel-plugin-jest-hoist "^25.5.0"
+ babel-preset-current-node-syntax "^0.1.2"
babel-runtime@^6.26.0:
version "6.26.0"
@@ -2023,10 +2226,17 @@ binary-extensions@^2.0.0:
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c"
integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==
+bindings@^1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df"
+ integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
+ dependencies:
+ file-uri-to-path "1.0.0"
+
bluebird@^3.5.5:
- version "3.5.5"
- resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f"
- integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==
+ version "3.7.2"
+ resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
+ integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
blurhash@^1.1.3:
version "1.1.3"
@@ -2100,7 +2310,7 @@ braces@^2.3.1, braces@^2.3.2:
split-string "^3.0.2"
to-regex "^3.0.1"
-braces@^3.0.2:
+braces@^3.0.1, braces@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
@@ -2119,10 +2329,10 @@ brorand@^1.0.1:
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
-browser-process-hrtime@^0.1.2:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4"
- integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==
+browser-process-hrtime@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626"
+ integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==
browser-resolve@^1.11.3:
version "1.11.3"
@@ -2190,19 +2400,20 @@ browserify-zlib@^0.2.0:
dependencies:
pako "~1.0.5"
-browserslist@^4.0.0, browserslist@^4.8.2, browserslist@^4.8.3:
- version "4.8.3"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.8.3.tgz#65802fcd77177c878e015f0e3189f2c4f627ba44"
- integrity sha512-iU43cMMknxG1ClEZ2MDKeonKE1CCrFVkQK2AqO2YWFmvIrx4JWrvQ4w4hQez6EpVI8rHTtqh/ruHHDHSOKxvUg==
+browserslist@^4.0.0, browserslist@^4.11.1, browserslist@^4.8.5:
+ version "4.12.0"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.0.tgz#06c6d5715a1ede6c51fc39ff67fd647f740b656d"
+ integrity sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==
dependencies:
- caniuse-lite "^1.0.30001017"
- electron-to-chromium "^1.3.322"
- node-releases "^1.1.44"
+ caniuse-lite "^1.0.30001043"
+ electron-to-chromium "^1.3.413"
+ node-releases "^1.1.53"
+ pkg-up "^2.0.0"
-bser@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719"
- integrity sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=
+bser@2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05"
+ integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==
dependencies:
node-int64 "^0.4.0"
@@ -2235,11 +2446,6 @@ buffer@^4.3.0:
ieee754 "^1.1.4"
isarray "^1.0.0"
-builtin-modules@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
- integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=
-
builtin-status-codes@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
@@ -2256,9 +2462,9 @@ bytes@3.1.0:
integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
cacache@^12.0.2, cacache@^12.0.3:
- version "12.0.3"
- resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390"
- integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==
+ version "12.0.4"
+ resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c"
+ integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==
dependencies:
bluebird "^3.5.5"
chownr "^1.1.1"
@@ -2300,6 +2506,29 @@ cacache@^13.0.1:
ssri "^7.0.0"
unique-filename "^1.1.1"
+cacache@^15.0.3:
+ version "15.0.3"
+ resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.3.tgz#2225c2d1dd8e872339950d6a39c051e0e9334392"
+ integrity sha512-bc3jKYjqv7k4pWh7I/ixIjfcjPul4V4jme/WbjvwGS5LzoPL/GzXr4C5EgPNLO/QEZl9Oi61iGitYEdwcrwLCQ==
+ dependencies:
+ chownr "^2.0.0"
+ fs-minipass "^2.0.0"
+ glob "^7.1.4"
+ infer-owner "^1.0.4"
+ lru-cache "^5.1.1"
+ minipass "^3.1.1"
+ minipass-collect "^1.0.2"
+ minipass-flush "^1.0.5"
+ minipass-pipeline "^1.2.2"
+ mkdirp "^1.0.3"
+ move-file "^2.0.0"
+ p-map "^4.0.0"
+ promise-inflight "^1.0.1"
+ rimraf "^3.0.2"
+ ssri "^8.0.0"
+ tar "^6.0.2"
+ unique-filename "^1.1.1"
+
cache-base@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
@@ -2347,9 +2576,9 @@ callsites@^2.0.0:
integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=
callsites@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.0.0.tgz#fb7eb569b72ad7a45812f93fd9430a3e410b3dd3"
- integrity sha512-tWnkwu9YEq2uzlBDI4RcLn8jrFvF9AOi8PxDNU3hZZjJcjkcRAq3vCI+vZcg1SuxISDYe86k9VZFwAxDiJGoAw==
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
+ integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
camelcase@^5.0.0, camelcase@^5.3.1:
version "5.3.1"
@@ -2366,24 +2595,29 @@ caniuse-api@^3.0.0:
lodash.memoize "^4.1.2"
lodash.uniq "^4.5.0"
-caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001017, caniuse-lite@^1.0.30001020:
- version "1.0.30001021"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001021.tgz#e75ed1ef6dbadd580ac7e7720bb16f07b083f254"
- integrity sha512-wuMhT7/hwkgd8gldgp2jcrUjOU9RXJ4XxGumQeOsUr91l3WwmM68Cpa/ymCnWEDqakwFXhuDQbaKNHXBPgeE9g==
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001039:
+ version "1.0.30001041"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001041.tgz#c2ea138dafc6fe03877921ddcddd4a02a14daf76"
+ integrity sha512-fqDtRCApddNrQuBxBS7kEiSGdBsgO4wiVw4G/IClfqzfhW45MbTumfN4cuUJGTM0YGFNn97DCXPJ683PS6zwvA==
-capture-exit@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f"
- integrity sha1-HF/MSJ/QqwDU8ax64QcuMXP7q28=
+caniuse-lite@^1.0.30001043:
+ version "1.0.30001055"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001055.tgz#7b52c3537f7a8c0408aca867e83d2b04268b54cd"
+ integrity sha512-MbwsBmKrBSKIWldfdIagO5OJWZclpJtS4h0Jrk/4HFrXJxTdVdH23Fd+xCiHriVGvYcWyW8mR/CPsYajlH8Iuw==
+
+capture-exit@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4"
+ integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==
dependencies:
- rsvp "^3.3.3"
+ rsvp "^4.8.4"
caseless@~0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
-chalk@2.4.2, chalk@^2.0, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2:
+chalk@2.4.2, chalk@^2.0, chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -2403,6 +2637,19 @@ chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
strip-ansi "^3.0.0"
supports-color "^2.0.0"
+chalk@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
+ integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
+ dependencies:
+ ansi-styles "^4.1.0"
+ supports-color "^7.1.0"
+
+char-regex@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf"
+ integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==
+
chardet@^0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
@@ -2445,7 +2692,7 @@ cheerio@^1.0.0-rc.3:
optionalDependencies:
fsevents "^2.0.6"
-chokidar@^2.0.2, chokidar@^2.1.8:
+chokidar@^2.1.8:
version "2.1.8"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917"
integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==
@@ -2465,9 +2712,14 @@ chokidar@^2.0.2, chokidar@^2.1.8:
fsevents "^1.2.7"
chownr@^1.1.1, chownr@^1.1.2:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142"
- integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
+ integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
+
+chownr@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece"
+ integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==
chrome-trace-event@^1.0.2:
version "1.0.2"
@@ -2529,9 +2781,9 @@ cli-cursor@^3.1.0:
restore-cursor "^3.1.0"
cli-width@^2.0.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
- integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48"
+ integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==
cliui@^4.0.0:
version "4.1.0"
@@ -2574,7 +2826,7 @@ co@^4.6.0:
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
-coa@~2.0.1:
+coa@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3"
integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==
@@ -2588,6 +2840,11 @@ code-point-at@^1.0.0:
resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
+collect-v8-coverage@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59"
+ integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==
+
collection-visit@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
@@ -2636,24 +2893,14 @@ color@^3.0.0:
color-convert "^1.9.1"
color-string "^1.5.2"
-colors@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63"
- integrity sha1-FopHAXVran9RoSzgyXv6KMCE7WM=
-
combined-stream@^1.0.6, combined-stream@~1.0.6:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828"
- integrity sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
+ integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
dependencies:
delayed-stream "~1.0.0"
commander@^2.11.0, commander@^2.18.0, commander@^2.19.0, commander@^2.20.0, commander@^2.8.1:
- version "2.20.1"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.1.tgz#3863ce3ca92d0831dcf2a102f5fb4b5926afd0f9"
- integrity sha512-cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg==
-
-commander@~2.20.3:
version "2.20.3"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
@@ -2721,11 +2968,9 @@ connect-history-api-fallback@^1.6.0:
integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==
console-browserify@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10"
- integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=
- dependencies:
- date-now "^0.1.4"
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336"
+ integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==
console-control-strings@^1.0.0, console-control-strings@~1.1.0:
version "1.1.0"
@@ -2754,7 +2999,7 @@ content-type@~1.0.4:
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
-convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.7.0:
+convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
@@ -2807,13 +3052,18 @@ copy-webpack-plugin@^5.1.1:
webpack-log "^2.0.0"
core-js-compat@^3.6.2:
- version "3.6.4"
- resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.4.tgz#938476569ebb6cda80d339bcf199fae4f16fff17"
- integrity sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA==
+ version "3.6.5"
+ resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c"
+ integrity sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==
dependencies:
- browserslist "^4.8.3"
+ browserslist "^4.8.5"
semver "7.0.0"
+core-js-pure@^3.0.0:
+ version "3.6.5"
+ resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.5.tgz#c79e75f5e38dbc85a662d91eea52b8256d53b813"
+ integrity sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==
+
core-js@^2.4.0:
version "2.6.1"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.1.tgz#87416ae817de957a3f249b3b5ca475d4aaed6042"
@@ -2886,12 +3136,12 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
safe-buffer "^5.0.1"
sha.js "^2.4.8"
-cross-env@^6.0.3:
- version "6.0.3"
- resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-6.0.3.tgz#4256b71e49b3a40637a0ce70768a6ef5c72ae941"
- integrity sha512-+KqxF6LCvfhWvADcDPqo64yVIB31gv/jQulX2NGzKS/g3GEVz6/pt4wjHFtFWsHMddebWD/sDthJemzM4MaAag==
+cross-env@^7.0.2:
+ version "7.0.2"
+ resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.2.tgz#bd5ed31339a93a3418ac4f3ca9ca3403082ae5f9"
+ integrity sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==
dependencies:
- cross-spawn "^7.0.0"
+ cross-spawn "^7.0.1"
cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5:
version "6.0.5"
@@ -2905,6 +3155,15 @@ cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5:
which "^1.2.9"
cross-spawn@^7.0.0:
+ version "7.0.2"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.2.tgz#d0d7dcfa74e89115c7619f4f721a94e1fdb716d6"
+ integrity sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==
+ dependencies:
+ path-key "^3.1.0"
+ shebang-command "^2.0.0"
+ which "^2.0.1"
+
+cross-spawn@^7.0.1:
version "7.0.1"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.1.tgz#0ab56286e0f7c24e153d04cc2aa027e43a9a5d14"
integrity sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==
@@ -2993,18 +3252,18 @@ css-loader@^3.4.2:
postcss-value-parser "^4.0.2"
schema-utils "^2.6.0"
-css-select-base-adapter@~0.1.0:
+css-select-base-adapter@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7"
integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==
css-select@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.0.2.tgz#ab4386cec9e1f668855564b17c3733b43b2a5ede"
- integrity sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ==
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef"
+ integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==
dependencies:
boolbase "^1.0.0"
- css-what "^2.1.2"
+ css-what "^3.2.1"
domutils "^1.7.0"
nth-check "^1.0.2"
@@ -3023,41 +3282,31 @@ css-system-font-keywords@^1.0.0:
resolved "https://registry.yarnpkg.com/css-system-font-keywords/-/css-system-font-keywords-1.0.0.tgz#85c6f086aba4eb32c571a3086affc434b84823ed"
integrity sha1-hcbwhquk6zLFcaMIav/ENLhII+0=
-css-tree@1.0.0-alpha.28:
- version "1.0.0-alpha.28"
- resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.28.tgz#8e8968190d886c9477bc8d61e96f61af3f7ffa7f"
- integrity sha512-joNNW1gCp3qFFzj4St6zk+Wh/NBv0vM5YbEreZk0SD4S23S+1xBKb6cLDg2uj4P4k/GUMlIm6cKIDqIG+vdt0w==
+css-tree@1.0.0-alpha.37:
+ version "1.0.0-alpha.37"
+ resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22"
+ integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==
dependencies:
- mdn-data "~1.1.0"
- source-map "^0.5.3"
+ mdn-data "2.0.4"
+ source-map "^0.6.1"
-css-tree@1.0.0-alpha.29:
- version "1.0.0-alpha.29"
- resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39"
- integrity sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==
+css-tree@1.0.0-alpha.39:
+ version "1.0.0-alpha.39"
+ resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.39.tgz#2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb"
+ integrity sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==
dependencies:
- mdn-data "~1.1.0"
- source-map "^0.5.3"
+ mdn-data "2.0.6"
+ source-map "^0.6.1"
-css-unit-converter@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996"
- integrity sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=
+css-what@2.1:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2"
+ integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==
-css-url-regex@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/css-url-regex/-/css-url-regex-1.1.0.tgz#83834230cc9f74c457de59eebd1543feeb83b7ec"
- integrity sha1-g4NCMMyfdMRX3lnuvRVD/uuDt+w=
-
-css-what@2.1, css-what@^2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.2.tgz#c0876d9d0480927d7d4920dcd72af3595649554d"
- integrity sha512-wan8dMWQ0GUeF7DGEPVjhHemVW/vy6xUYmFzRY8RYqgA0JtXC9rJmbScBjqSu6dg9q0lwPQy6ZAmJVr3PPTvqQ==
-
-cssesc@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703"
- integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==
+css-what@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.2.1.tgz#f4a8f12421064621b456755e34a03a2c22df5da1"
+ integrity sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw==
cssesc@^3.0.0:
version "3.0.0"
@@ -3132,24 +3381,29 @@ cssnano@^4.1.10:
is-resolvable "^1.0.0"
postcss "^7.0.0"
-csso@^3.5.0:
- version "3.5.1"
- resolved "https://registry.yarnpkg.com/csso/-/csso-3.5.1.tgz#7b9eb8be61628973c1b261e169d2f024008e758b"
- integrity sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==
+csso@^4.0.2:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/csso/-/csso-4.0.3.tgz#0d9985dc852c7cc2b2cacfbbe1079014d1a8e903"
+ integrity sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==
dependencies:
- css-tree "1.0.0-alpha.29"
+ css-tree "1.0.0-alpha.39"
-cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0":
- version "0.3.4"
- resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.4.tgz#8cd52e8a3acfd68d3aed38ee0a640177d2f9d797"
- integrity sha512-+7prCSORpXNeR4/fUP3rL+TzqtiFfhMvTd7uEqMdgPvLPt4+uzFUeufx5RHjGTACCargg/DiEt/moMQmvnfkog==
+cssom@^0.4.1:
+ version "0.4.4"
+ resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10"
+ integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==
-cssstyle@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.1.1.tgz#18b038a9c44d65f7a8e428a653b9f6fe42faf5fb"
- integrity sha512-364AI1l/M5TYcFH83JnOH/pSqgaNnKmYgKrm0didZMGKWjQB60dymwWy1rKUgL3J1ffdq9xVi2yGLHdSjjSNog==
+cssom@~0.3.6:
+ version "0.3.8"
+ resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a"
+ integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==
+
+cssstyle@^2.0.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852"
+ integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==
dependencies:
- cssom "0.3.x"
+ cssom "~0.3.6"
csstype@^2.2.0:
version "2.6.0"
@@ -3157,9 +3411,14 @@ csstype@^2.2.0:
integrity sha512-by8hi8BlLbowQq0qtkx54d9aN73R9oUW20HISpka5kmgsR9F7nnxgfsemuR2sdCKZh+CDNf5egW9UZMm4mgJRg==
csstype@^2.5.7:
- version "2.6.6"
- resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.6.tgz#c34f8226a94bbb10c32cc0d714afdf942291fc41"
- integrity sha512-RpFbQGUE74iyPgvr46U9t1xoQBM8T4BL8SxrN66Le2xYAPSaDJJKeztV3awugusb3g3G9iL8StmkBBXhcbbXhg==
+ version "2.6.10"
+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.10.tgz#e63af50e66d7c266edb6b32909cfd0aabe03928b"
+ integrity sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w==
+
+csstype@^2.6.7:
+ version "2.6.9"
+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.9.tgz#05141d0cd557a56b8891394c1911c40c8a98d098"
+ integrity sha512-xz39Sb4+OaTsULgUERcCk+TJj8ylkL4aSVDQiX/ksxbELSqwkgt4d4RD7fovIdgJGSuNYqwZEiVjYY5l0ask+Q==
cyclist@^1.0.1:
version "1.0.1"
@@ -3175,9 +3434,9 @@ d@1, d@^1.0.1:
type "^1.0.1"
damerau-levenshtein@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.4.tgz#03191c432cb6eea168bb77f3a55ffdccb8978514"
- integrity sha1-AxkcQyy27qFou3fzpV/9zLiXhRQ=
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz#143c1641cb3d85c60c32329e26899adea8701791"
+ integrity sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==
dashdash@^1.12.0:
version "1.14.1"
@@ -3186,7 +3445,7 @@ dashdash@^1.12.0:
dependencies:
assert-plus "^1.0.0"
-data-urls@^1.0.0:
+data-urls@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe"
integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==
@@ -3195,11 +3454,6 @@ data-urls@^1.0.0:
whatwg-mimetype "^2.2.0"
whatwg-url "^7.0.0"
-date-now@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
- integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=
-
debug@2.6.9, debug@^2.1.1, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9:
version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
@@ -3214,7 +3468,7 @@ debug@=3.1.0:
dependencies:
ms "2.0.0"
-debug@^3.0.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6:
+debug@^3.0.0, debug@^3.1.1, debug@^3.2.5:
version "3.2.6"
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
@@ -3239,9 +3493,9 @@ decode-uri-component@^0.2.0:
integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
deep-equal@^1.0.1:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.0.tgz#3103cdf8ab6d32cf4a8df7865458f2b8d33f3745"
- integrity sha512-ZbfWJq/wN1Z273o7mUSjILYqehAktR2NVoSrOukDkU9kg2v/Uv89yU4Cvz8seJeAmtN5oqiefKq8FPuXOboqLw==
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a"
+ integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==
dependencies:
is-arguments "^1.0.4"
is-date-object "^1.0.1"
@@ -3255,16 +3509,16 @@ deep-extend@^0.5.1:
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.5.1.tgz#b894a9dd90d3023fbf1c55a394fb858eb2066f1f"
integrity sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==
-deep-extend@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
- integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
-
deep-is@~0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
+deepmerge@^4.2.2:
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
+ integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
+
default-gateway@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b"
@@ -3325,6 +3579,11 @@ delegates@^1.0.0:
resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
+denque@^1.4.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/denque/-/denque-1.4.1.tgz#6744ff7641c148c3f8a69c307e51235c1f4a37cf"
+ integrity sha512-OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ==
+
depd@~1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
@@ -3348,15 +3607,10 @@ detect-file@^1.0.0:
resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7"
integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=
-detect-libc@^1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
- integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
-
-detect-newline@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2"
- integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=
+detect-newline@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651"
+ integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==
detect-node@^2.0.4:
version "2.0.4"
@@ -3368,10 +3622,10 @@ detect-passive-events@^1.0.2:
resolved "https://registry.yarnpkg.com/detect-passive-events/-/detect-passive-events-1.0.4.tgz#6ed477e6e5bceb79079735dcd357789d37f9a91a"
integrity sha1-btR35uW863kHlzXc01d4nTf5qRo=
-diff-sequences@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5"
- integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==
+diff-sequences@^25.2.6:
+ version "25.2.6"
+ resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd"
+ integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==
diffie-hellman@^5.0.0:
version "5.0.3"
@@ -3443,13 +3697,21 @@ dom-helpers@^3.2.1, dom-helpers@^3.3.1:
dependencies:
"@babel/runtime" "^7.1.2"
-dom-serializer@0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82"
- integrity sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=
+dom-helpers@^5.0.1:
+ version "5.1.3"
+ resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.1.3.tgz#7233248eb3a2d1f74aafca31e52c5299cc8ce821"
+ integrity sha512-nZD1OtwfWGRBWlpANxacBEZrEuLa16o1nh7YopFWeoF68Zt8GGEmzHu6Xv4F3XaFIC+YXtTLrzgqKxFgLEe4jw==
dependencies:
- domelementtype "~1.1.1"
- entities "~1.1.1"
+ "@babel/runtime" "^7.6.3"
+ csstype "^2.6.7"
+
+dom-serializer@0:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51"
+ integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==
+ dependencies:
+ domelementtype "^2.0.1"
+ entities "^2.0.0"
dom-serializer@~0.1.1:
version "0.1.1"
@@ -3464,15 +3726,15 @@ domain-browser@^1.1.1:
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
-domelementtype@1, domelementtype@^1.3.0:
+domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f"
integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
-domelementtype@~1.1.1:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b"
- integrity sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=
+domelementtype@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d"
+ integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==
domexception@^1.0.1:
version "1.0.1"
@@ -3504,23 +3766,18 @@ domutils@^1.5.1, domutils@^1.7.0:
dom-serializer "0"
domelementtype "1"
-dot-prop@^4.1.1:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57"
- integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==
+dot-prop@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb"
+ integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==
dependencies:
- is-obj "^1.0.0"
+ is-obj "^2.0.0"
dotenv@^8.2.0:
version "8.2.0"
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a"
integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==
-double-ended-queue@^2.1.0-0:
- version "2.1.0-0"
- resolved "https://registry.yarnpkg.com/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz#103d3527fd31528f40188130c841efdd78264e5c"
- integrity sha1-ED01J/0xUo9AGIEwyEHv3XgmTlw=
-
duplexer@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
@@ -3554,10 +3811,10 @@ ejs@^2.3.4, ejs@^2.6.1:
resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.1.tgz#5b5ab57f718b79d4aca9254457afecd36fa80228"
integrity sha512-kS/gEPzZs3Y1rRsbGX4UOSjtP/CeJP0CxSNZHYxGfVM/VgLcv0ZqM7C45YyTj2DI2g7+P9Dd24C+IMIg6D0nYQ==
-electron-to-chromium@^1.3.322:
- version "1.3.322"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.322.tgz#a6f7e1c79025c2b05838e8e344f6e89eb83213a8"
- integrity sha512-Tc8JQEfGQ1MzfSzI/bTlSr7btJv/FFO7Yh6tanqVmIWOuNCu6/D1MilIEgLtmWqIrsv+o4IjpLAhgMBr/ncNAA==
+electron-to-chromium@^1.3.413:
+ version "1.3.432"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.432.tgz#3bf7b191978ff2e8bc3caf811bb52b1e9f9eab25"
+ integrity sha512-/GdNhXyLP5Yl2322CUX/+Xi8NhdHBqL6lD9VJVKjH6CjoPGakvwZ5CpKgj/oOlbzuWWjOvMjDw1bBuAIRCNTlw==
elliptic@^6.0.0:
version "6.5.1"
@@ -3591,6 +3848,11 @@ emojis-list@^2.0.0:
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k=
+emojis-list@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
+ integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
+
encodeurl@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
@@ -3617,6 +3879,11 @@ entities@^1.1.1, entities@~1.1.1:
resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56"
integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==
+entities@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4"
+ integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==
+
enzyme-adapter-react-16@^1.15.2:
version "1.15.2"
resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.2.tgz#b16db2f0ea424d58a808f9df86ab6212895a4501"
@@ -3701,27 +3968,10 @@ error-stack-parser@^2.0.6:
dependencies:
stackframe "^1.1.1"
-es-abstract@^1.13.0, es-abstract@^1.15.0, es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.5.1:
- version "1.17.0"
- resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.0.tgz#f42a517d0036a5591dbb2c463591dc8bb50309b1"
- integrity sha512-yYkE07YF+6SIBmg1MsJ9dlub5L48Ek7X0qz+c/CPCHS9EBXfESorzng4cJQjJW5/pB6vDF41u7F8vUhLVDqIug==
- dependencies:
- es-to-primitive "^1.2.1"
- function-bind "^1.1.1"
- has "^1.0.3"
- has-symbols "^1.0.1"
- is-callable "^1.1.5"
- is-regex "^1.0.5"
- object-inspect "^1.7.0"
- object-keys "^1.1.1"
- object.assign "^4.1.0"
- string.prototype.trimleft "^2.1.1"
- string.prototype.trimright "^2.1.1"
-
-es-abstract@^1.17.0-next.0:
- version "1.17.4"
- resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.4.tgz#e3aedf19706b20e7c2594c35fc0d57605a79e184"
- integrity sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==
+es-abstract@^1.17.0, es-abstract@^1.17.0-next.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.4, es-abstract@^1.17.5:
+ version "1.17.5"
+ resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9"
+ integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==
dependencies:
es-to-primitive "^1.2.1"
function-bind "^1.1.1"
@@ -3744,16 +3994,16 @@ es-to-primitive@^1.2.1:
is-date-object "^1.0.1"
is-symbol "^1.0.2"
-es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.50, es5-ext@~0.10.14:
- version "0.10.51"
- resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.51.tgz#ed2d7d9d48a12df86e0299287e93a09ff478842f"
- integrity sha512-oRpWzM2WcLHVKpnrcyB7OW8j/s67Ba04JCm0WnNv3RiABSvs7mrQlutB8DBv793gKcp0XENR8Il8WxGTlZ73gQ==
+es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@~0.10.14:
+ version "0.10.53"
+ resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1"
+ integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==
dependencies:
es6-iterator "~2.0.3"
- es6-symbol "~3.1.1"
- next-tick "^1.0.0"
+ es6-symbol "~3.1.3"
+ next-tick "~1.0.0"
-es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3:
+es6-iterator@^2.0.3, es6-iterator@~2.0.1, es6-iterator@~2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c=
@@ -3793,7 +4043,7 @@ es6-symbol@3.1.1:
d "1"
es5-ext "~0.10.14"
-es6-symbol@^3.1.1, es6-symbol@^3.1.3, es6-symbol@~3.1.1:
+es6-symbol@^3.1.1, es6-symbol@^3.1.3, es6-symbol@~3.1.1, es6-symbol@~3.1.3:
version "3.1.3"
resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18"
integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==
@@ -3802,13 +4052,13 @@ es6-symbol@^3.1.1, es6-symbol@^3.1.3, es6-symbol@~3.1.1:
ext "^1.1.2"
es6-weak-map@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f"
- integrity sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53"
+ integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==
dependencies:
d "1"
- es5-ext "^0.10.14"
- es6-iterator "^2.0.1"
+ es5-ext "^0.10.46"
+ es6-iterator "^2.0.3"
es6-symbol "^3.1.1"
escape-html@^1.0.3, escape-html@~1.0.3:
@@ -3821,12 +4071,12 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
-escodegen@^1.9.1:
- version "1.11.0"
- resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.0.tgz#b27a9389481d5bfd5bec76f7bb1eb3f8f4556589"
- integrity sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw==
+escodegen@^1.11.1:
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.1.tgz#ba01d0c8278b5e95a9a45350142026659027a457"
+ integrity sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==
dependencies:
- esprima "^3.1.3"
+ esprima "^4.0.1"
estraverse "^4.2.0"
esutils "^2.0.2"
optionator "^0.8.1"
@@ -3859,11 +4109,6 @@ eslint-module-utils@^2.4.1:
debug "^2.6.9"
pkg-dir "^2.0.0"
-eslint-plugin-eslint-plugin@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-eslint-plugin/-/eslint-plugin-eslint-plugin-2.1.0.tgz#a7a00f15a886957d855feacaafee264f039e62d5"
- integrity sha512-kT3A/ZJftt28gbl/Cv04qezb/NQ1dwYIbi8lyf806XMxkus7DvOVCLIfTXMrorp322Pnoez7+zabXH29tADIDg==
-
eslint-plugin-import@~2.20.1:
version "2.20.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.1.tgz#802423196dcb11d9ce8435a5fc02a6d3b46939b3"
@@ -3902,21 +4147,23 @@ eslint-plugin-promise@~4.2.1:
resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz#845fd8b2260ad8f82564c1222fce44ad71d9418a"
integrity sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==
-eslint-plugin-react@~7.17.0:
- version "7.17.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.17.0.tgz#a31b3e134b76046abe3cd278e7482bd35a1d12d7"
- integrity sha512-ODB7yg6lxhBVMeiH1c7E95FLD4E/TwmFjltiU+ethv7KPdCwgiFuOZg9zNRHyufStTDLl/dEFqI2Q1VPmCd78A==
+eslint-plugin-react@~7.19.0:
+ version "7.19.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz#6d08f9673628aa69c5559d33489e855d83551666"
+ integrity sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ==
dependencies:
- array-includes "^3.0.3"
+ array-includes "^3.1.1"
doctrine "^2.1.0"
- eslint-plugin-eslint-plugin "^2.1.0"
has "^1.0.3"
jsx-ast-utils "^2.2.3"
- object.entries "^1.1.0"
- object.fromentries "^2.0.1"
- object.values "^1.1.0"
+ object.entries "^1.1.1"
+ object.fromentries "^2.0.2"
+ object.values "^1.1.1"
prop-types "^15.7.2"
- resolve "^1.13.1"
+ resolve "^1.15.1"
+ semver "^6.3.0"
+ string.prototype.matchall "^4.0.2"
+ xregexp "^4.3.0"
eslint-scope@^4.0.3:
version "4.0.3"
@@ -4045,12 +4292,7 @@ espree@^6.1.2:
acorn-jsx "^5.1.0"
eslint-visitor-keys "^1.1.0"
-esprima@^3.1.3:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
- integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=
-
-esprima@^4.0.0:
+esprima@^4.0.0, esprima@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
@@ -4074,7 +4316,7 @@ estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
-esutils@^2.0.0, esutils@^2.0.2:
+esutils@^2.0.2:
version "2.0.3"
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
@@ -4118,9 +4360,9 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
safe-buffer "^5.1.1"
exec-sh@^0.3.2:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.2.tgz#6738de2eb7c8e671d0366aea0b0db8c6f7d7391b"
- integrity sha512-9sLAvzhI5nc8TpuQUh4ahMdCrWT00wPWz7j47/emR5+2qEfoZP5zzUXvx+vdx+H6ohhnsYC31iX04QLYJK8zTg==
+ version "0.3.4"
+ resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5"
+ integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==
execa@^1.0.0:
version "1.0.0"
@@ -4135,6 +4377,22 @@ execa@^1.0.0:
signal-exit "^3.0.0"
strip-eof "^1.0.0"
+execa@^3.2.0:
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89"
+ integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==
+ dependencies:
+ cross-spawn "^7.0.0"
+ get-stream "^5.0.0"
+ human-signals "^1.1.1"
+ is-stream "^2.0.0"
+ merge-stream "^2.0.0"
+ npm-run-path "^4.0.0"
+ onetime "^5.1.0"
+ p-finally "^2.0.0"
+ signal-exit "^3.0.2"
+ strip-final-newline "^2.0.0"
+
exif-js@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/exif-js/-/exif-js-2.3.0.tgz#9d10819bf571f873813e7640241255ab9ce1a814"
@@ -4170,17 +4428,17 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2:
dependencies:
homedir-polyfill "^1.0.1"
-expect@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/expect/-/expect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca"
- integrity sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q==
+expect@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/expect/-/expect-25.5.0.tgz#f07f848712a2813bb59167da3fb828ca21f58bba"
+ integrity sha512-w7KAXo0+6qqZZhovCaBVPSIqQp7/UTcx4M9uKt2m6pd2VB1voyC8JizLRqeEqud3AAVP02g+hbErDu5gu64tlA==
dependencies:
- "@jest/types" "^24.9.0"
- ansi-styles "^3.2.0"
- jest-get-type "^24.9.0"
- jest-matcher-utils "^24.9.0"
- jest-message-util "^24.9.0"
- jest-regex-util "^24.9.0"
+ "@jest/types" "^25.5.0"
+ ansi-styles "^4.0.0"
+ jest-get-type "^25.2.6"
+ jest-matcher-utils "^25.5.0"
+ jest-message-util "^25.5.0"
+ jest-regex-util "^25.2.6"
express@^4.16.3, express@^4.17.1:
version "4.17.1"
@@ -4278,15 +4536,15 @@ extsprintf@^1.2.0:
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
-fast-deep-equal@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
- integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
+fast-deep-equal@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4"
+ integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==
fast-json-stable-stringify@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
- integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
+ integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
fast-levenshtein@~2.0.6:
version "2.0.6"
@@ -4308,16 +4566,16 @@ faye-websocket@~0.11.1:
websocket-driver ">=0.5.1"
fb-watchman@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58"
- integrity sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85"
+ integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==
dependencies:
- bser "^2.0.0"
+ bser "2.1.1"
figgy-pudding@^3.5.1:
- version "3.5.1"
- resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790"
- integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==
+ version "3.5.2"
+ resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e"
+ integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==
figures@^1.3.5:
version "1.7.0"
@@ -4349,12 +4607,12 @@ file-entry-cache@^5.0.1:
dependencies:
flat-cache "^2.0.1"
-file-loader@^5.0.2:
- version "5.0.2"
- resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-5.0.2.tgz#7f3d8b4ac85a5e8df61338cfec95d7405f971caa"
- integrity sha512-QMiQ+WBkGLejKe81HU8SZ9PovsU/5uaLo0JdTCEXOYv7i7jfAjHZi1tcwp9tSASJPOmmHZtbdCervFmXMH/Dcg==
+file-loader@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-5.1.0.tgz#cb56c070efc0e40666424309bd0d9e45ac6f2bb8"
+ integrity sha512-u/VkLGskw3Ue59nyOwUwXI/6nuBCo7KBkniB/l7ICwr/7cPNGsL1WCXUp3GB0qgOOKU1TiP49bv4DZF/LJqprg==
dependencies:
- loader-utils "^1.2.3"
+ loader-utils "^1.4.0"
schema-utils "^2.5.0"
file-type@^10.5.0:
@@ -4362,6 +4620,11 @@ file-type@^10.5.0:
resolved "https://registry.yarnpkg.com/file-type/-/file-type-10.11.0.tgz#2961d09e4675b9fb9a3ee6b69e9cd23f43fd1890"
integrity sha512-uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw==
+file-uri-to-path@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
+ integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
+
filesize@^3.6.1:
version "3.6.1"
resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317"
@@ -4397,7 +4660,7 @@ finalhandler@~1.1.2:
statuses "~1.5.0"
unpipe "~1.0.0"
-find-cache-dir@^2.0.0, find-cache-dir@^2.1.0:
+find-cache-dir@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"
integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==
@@ -4406,13 +4669,13 @@ find-cache-dir@^2.0.0, find-cache-dir@^2.1.0:
make-dir "^2.0.0"
pkg-dir "^3.0.0"
-find-cache-dir@^3.0.0, find-cache-dir@^3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.2.0.tgz#e7fe44c1abc1299f516146e563108fd1006c1874"
- integrity sha512-1JKclkYYsf1q9WIJKLZa9S9muC+08RIjzAlLrK4QcYLJMS6mk9yombQ9qf+zJ7H9LS800k0s44L4sDq9VYzqyg==
+find-cache-dir@^3.0.0, find-cache-dir@^3.3.1:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880"
+ integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==
dependencies:
commondir "^1.0.1"
- make-dir "^3.0.0"
+ make-dir "^3.0.2"
pkg-dir "^4.1.0"
find-root@^1.1.0:
@@ -4472,9 +4735,9 @@ flat-cache@^2.0.1:
write "1.0.3"
flatted@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.0.tgz#55122b6536ea496b4b44893ee2608141d10d9916"
- integrity sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg==
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138"
+ integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==
flush-write-stream@^1.0.0:
version "1.1.1"
@@ -4563,22 +4826,15 @@ fs-extra@^3.0.1:
jsonfile "^3.0.0"
universalify "^0.1.0"
-fs-extra@^8.0.1:
- version "8.0.1"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.0.1.tgz#90294081f978b1f182f347a440a209154344285b"
- integrity sha512-W+XLrggcDzlle47X/XnS7FXrXu9sDo+Ze9zpndeBxdgv88FHLm1HtmkhEwavruS6koanBjp098rUpHs65EmG7A==
+fs-extra@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
+ integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
dependencies:
- graceful-fs "^4.1.2"
+ graceful-fs "^4.2.0"
jsonfile "^4.0.0"
universalify "^0.1.0"
-fs-minipass@^1.2.5:
- version "1.2.7"
- resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"
- integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==
- dependencies:
- minipass "^2.6.0"
-
fs-minipass@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.0.0.tgz#a6415edab02fae4b9e9230bc87ee2e4472003cd1"
@@ -4602,17 +4858,17 @@ fs.realpath@^1.0.0:
integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
fsevents@^1.2.7:
- version "1.2.9"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f"
- integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==
+ version "1.2.13"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38"
+ integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==
dependencies:
+ bindings "^1.5.0"
nan "^2.12.1"
- node-pre-gyp "^0.12.0"
-fsevents@^2.0.6:
- version "2.0.7"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.0.7.tgz#382c9b443c6cbac4c57187cdda23aa3bf1ccfc2a"
- integrity sha512-a7YT0SV3RB+DjYcppwVDLtn13UQnmg0SWZS7ezZD0UjnLwXmy8Zm21GMVGLaFGimIqcvyMQaOJBrop8MyOp1kQ==
+fsevents@^2.0.6, fsevents@^2.1.2:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e"
+ integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==
function-bind@^1.1.1:
version "1.1.1"
@@ -4634,9 +4890,9 @@ functional-red-black-tree@^1.0.1:
integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
functions-have-names@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.0.tgz#83da7583e4ea0c9ac5ff530f73394b033e0bf77d"
- integrity sha512-zKXyzksTeaCSw5wIX79iCA40YAa6CJMJgNg9wdkU/ERBrIdPSimPICYiLp65lRbSBqtiHql/HZfS2DyI/AH6tQ==
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.1.tgz#a981ac397fa0c9964551402cdc5533d7a4d52f91"
+ integrity sha512-j48B/ZI7VKs3sgeI2cZp7WXWmZXu7Iq5pl5/vptV5N2mq+DGFuS/ulaDjtaoLpYzuD6u8UgrUKHfgo7fDTSiBA==
gauge@~2.7.3:
version "2.7.4"
@@ -4693,6 +4949,13 @@ get-stream@^4.0.0:
dependencies:
pump "^3.0.0"
+get-stream@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9"
+ integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==
+ dependencies:
+ pump "^3.0.0"
+
get-value@^2.0.3, get-value@^2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
@@ -4809,12 +5072,12 @@ globby@^7.1.1:
slash "^1.0.0"
globule@^1.0.0:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.1.tgz#5dffb1b191f22d20797a9369b49eab4e9839696d"
- integrity sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.1.tgz#90a25338f22b7fbeb527cee63c629aea754d33b9"
+ integrity sha512-OVyWOHgw29yosRHCHo7NncwR1hW5ew0W/UrvtwvjefVJeQ26q4/8r8FmPsSF1hJ93IgWkyv16pCTz6WblMzm/g==
dependencies:
glob "~7.1.1"
- lodash "~4.17.10"
+ lodash "~4.17.12"
minimatch "~3.0.2"
gonzales-pe-sl@^4.2.3:
@@ -4824,20 +5087,10 @@ gonzales-pe-sl@^4.2.3:
dependencies:
minimist "1.1.x"
-graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2:
- version "4.2.2"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02"
- integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==
-
-graceful-fs@^4.1.6:
- version "4.1.15"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00"
- integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==
-
-graceful-fs@^4.2.2:
- version "4.2.3"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423"
- integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==
+graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.3, graceful-fs@^4.2.4:
+ version "4.2.4"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
+ integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
growly@^1.3.0:
version "1.3.0"
@@ -4853,27 +5106,16 @@ gzip-size@^5.0.0:
pify "^4.0.1"
handle-thing@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754"
- integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==
-
-handlebars@^4.1.2:
- version "4.5.3"
- resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.5.3.tgz#5cf75bd8714f7605713511a56be7c349becb0482"
- integrity sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA==
- dependencies:
- neo-async "^2.6.0"
- optimist "^0.6.1"
- source-map "^0.6.1"
- optionalDependencies:
- uglify-js "^3.1.4"
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e"
+ integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==
har-schema@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
-har-validator@~5.1.0:
+har-validator@~5.1.3:
version "5.1.3"
resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080"
integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==
@@ -5029,9 +5271,9 @@ hoopy@^0.1.4:
integrity sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==
hosted-git-info@^2.1.4:
- version "2.7.1"
- resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047"
- integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==
+ version "2.8.8"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488"
+ integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==
hpack.js@^2.1.6:
version "2.1.6"
@@ -5073,21 +5315,26 @@ html-encoding-sniffer@^1.0.2:
whatwg-encoding "^1.0.1"
html-entities@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f"
- integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44"
+ integrity sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==
+
+html-escaper@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
+ integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
htmlparser2@^3.9.1:
- version "3.10.0"
- resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.0.tgz#5f5e422dcf6119c0d983ed36260ce9ded0bee464"
- integrity sha512-J1nEUGv+MkXS0weHNWVKJJ+UrLfePxRWpN3C9bEi9fLxL2+ggW94DQvgYVXsaT30PGwYRIZKNZXuyMhp3Di4bQ==
+ version "3.10.1"
+ resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f"
+ integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==
dependencies:
- domelementtype "^1.3.0"
+ domelementtype "^1.3.1"
domhandler "^2.3.0"
domutils "^1.5.1"
entities "^1.1.1"
inherits "^2.0.1"
- readable-stream "^3.0.6"
+ readable-stream "^3.1.1"
http-deceiver@^1.2.7:
version "1.2.7"
@@ -5169,7 +5416,12 @@ https-browserify@^1.0.0:
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
-iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.4:
+human-signals@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
+ integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
+
+iconv-lite@0.4.24, iconv-lite@^0.4.24:
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
@@ -5198,13 +5450,6 @@ iferr@^0.1.5:
resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE=
-ignore-walk@^3.0.1:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.2.tgz#99d83a246c196ea5c93ef9315ad7b0819c35069b"
- integrity sha512-EXyErtpHbn75ZTsOADsfx6J/FPo6/5cjev46PXrcTpd8z3BoRkXgYu9/JVqrI7tusjmwCZutGeRJeU0Wo1e4Cw==
- dependencies:
- minimatch "^3.0.4"
-
ignore@^3.1.2, ignore@^3.3.5:
version "3.3.10"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
@@ -5258,6 +5503,14 @@ import-local@2.0.0, import-local@^2.0.0:
pkg-dir "^3.0.0"
resolve-cwd "^2.0.0"
+import-local@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.0.2.tgz#a8cfd0431d1de4a2199703d003e3e62364fa6db6"
+ integrity sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==
+ dependencies:
+ pkg-dir "^4.2.0"
+ resolve-cwd "^3.0.0"
+
imports-loader@^0.8.0:
version "0.8.0"
resolved "https://registry.yarnpkg.com/imports-loader/-/imports-loader-0.8.0.tgz#030ea51b8ca05977c40a3abfd9b4088fe0be9a69"
@@ -5309,7 +5562,7 @@ inherits@2.0.3:
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
-ini@^1.3.4, ini@^1.3.5, ini@~1.3.0:
+ini@^1.3.4, ini@^1.3.5:
version "1.3.5"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
@@ -5360,6 +5613,15 @@ internal-ip@^4.3.0:
default-gateway "^4.2.0"
ipaddr.js "^1.9.0"
+internal-slot@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.2.tgz#9c2e9fb3cd8e5e4256c6f45fe310067fcfa378a3"
+ integrity sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g==
+ dependencies:
+ es-abstract "^1.17.0-next.1"
+ has "^1.0.3"
+ side-channel "^1.0.2"
+
interpret@1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296"
@@ -5371,19 +5633,21 @@ intersection-observer@^0.7.0:
integrity sha512-Id0Fij0HsB/vKWGeBe9PxeY45ttRiBmhFyyt/geBdDHBYNctMRTE3dC1U3ujzz3lap+hVXlEcVaB56kZP/eEUg==
intl-format-cache@^2.0.5:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/intl-format-cache/-/intl-format-cache-2.1.0.tgz#04a369fecbfad6da6005bae1f14333332dcf9316"
- integrity sha1-BKNp/sv61tpgBbrh8UMzMy3PkxY=
+ version "2.2.9"
+ resolved "https://registry.yarnpkg.com/intl-format-cache/-/intl-format-cache-2.2.9.tgz#fb560de20c549cda20b569cf1ffb6dc62b5b93b4"
+ integrity sha512-Zv/u8wRpekckv0cLkwpVdABYST4hZNTDaX7reFetrYTJwxExR2VyTqQm+l0WmL0Qo8Mjb9Tf33qnfj0T7pjxdQ==
intl-messageformat-parser@1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz#b43d45a97468cadbe44331d74bb1e8dea44fc075"
integrity sha1-tD1FqXRoytvkQzHXS7Ho3qRPwHU=
-intl-messageformat-parser@^1.7.1:
- version "1.8.1"
- resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-1.8.1.tgz#0eb14c5618333be4c95c409457b66c8c33ddcc01"
- integrity sha512-IMSCKVf0USrM/959vj3xac7s8f87sc+80Y/ipBzdKy4ifBv5Gsj2tZ41EAaURVg01QU71fYr77uA8Meh6kELbg==
+intl-messageformat-parser@^4.1.1:
+ version "4.1.4"
+ resolved "https://registry.yarnpkg.com/intl-messageformat-parser/-/intl-messageformat-parser-4.1.4.tgz#98f3415e6990d44bebf2e0ad8e4cfbacf3ef5ed3"
+ integrity sha512-zV4kBUD1yhxSyaXm6bGhmP4HFH9Gh4pRQwNn+xq5P+B1dT8mpaAfU75nfUn4HgddIB6pyFnzM5MQjO55UpJwkQ==
+ dependencies:
+ "@formatjs/intl-unified-numberformat" "^3.3.3"
intl-messageformat@^2.0.0, intl-messageformat@^2.1.0, intl-messageformat@^2.2.0:
version "2.2.0"
@@ -5499,22 +5763,10 @@ is-boolean-object@^1.0.1:
resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.0.1.tgz#10edc0900dd127697a92f6f9807c7617d68ac48e"
integrity sha512-TqZuVwa/sppcrhUCAYkGBk7w0yxfQQnxq28fjkO53tnK9FQXmdwz2JS5+GjsWQ6RByES1K40nI+yDic5c9/aAQ==
-is-buffer@^1.1.5:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
- integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
-
is-buffer@^2.0.2:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.3.tgz#4ecf3fcf749cbd1e472689e109ac66261a25e725"
- integrity sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==
-
-is-builtin-module@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
- integrity sha1-VAVy0096wxGfj3bDDLwbHgN6/74=
- dependencies:
- builtin-modules "^1.0.0"
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623"
+ integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==
is-callable@^1.1.4, is-callable@^1.1.5:
version "1.1.5"
@@ -5555,9 +5807,9 @@ is-data-descriptor@^1.0.0:
kind-of "^6.0.0"
is-date-object@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
- integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e"
+ integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==
is-descriptor@^0.1.0:
version "0.1.6"
@@ -5617,9 +5869,9 @@ is-fullwidth-code-point@^3.0.0:
integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
is-generator-fn@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.0.0.tgz#038c31b774709641bda678b1f06a4e3227c10b3e"
- integrity sha512-elzyIdM7iKoFHzcrndIqjYomImhxrFRnGP3galODoII4TB9gI7mZ+FnlLQmmjf27SxHS2gKEeyhX5/+YRS6H9g==
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
+ integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==
is-glob@^3.1.0:
version "3.1.0"
@@ -5675,10 +5927,10 @@ is-number@^7.0.0:
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
-is-obj@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
- integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
+is-obj@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982"
+ integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==
is-path-cwd@^2.0.0:
version "2.2.0"
@@ -5738,6 +5990,11 @@ is-stream@^1.1.0:
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
+is-stream@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3"
+ integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==
+
is-string@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6"
@@ -5762,7 +6019,7 @@ is-symbol@^1.0.2:
dependencies:
has-symbols "^1.0.1"
-is-typedarray@~1.0.0:
+is-typedarray@^1.0.0, is-typedarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
@@ -5787,6 +6044,11 @@ is-wsl@^1.1.0:
resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d"
integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=
+is-wsl@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d"
+ integrity sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==
+
isarray@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
@@ -5819,422 +6081,455 @@ isstream@~0.1.2:
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
-istanbul-lib-coverage@^2.0.2, istanbul-lib-coverage@^2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#0b891e5ad42312c2b9488554f603795f9a2211ba"
- integrity sha512-dKWuzRGCs4G+67VfW9pBFFz2Jpi4vSp/k7zBcJ888ofV5Mi1g5CUML5GvMvV6u9Cjybftu+E8Cgp+k0dI1E5lw==
+istanbul-lib-coverage@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec"
+ integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==
-istanbul-lib-instrument@^3.0.0, istanbul-lib-instrument@^3.0.1:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.1.0.tgz#a2b5484a7d445f1f311e93190813fa56dfb62971"
- integrity sha512-ooVllVGT38HIk8MxDj/OIHXSYvH+1tq/Vb38s8ixt9GoJadXska4WkGY+0wkmtYCZNYtaARniH/DixUGGLZ0uA==
+istanbul-lib-instrument@^4.0.0:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d"
+ integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==
dependencies:
- "@babel/generator" "^7.0.0"
- "@babel/parser" "^7.0.0"
- "@babel/template" "^7.0.0"
- "@babel/traverse" "^7.0.0"
- "@babel/types" "^7.0.0"
- istanbul-lib-coverage "^2.0.3"
- semver "^5.5.0"
+ "@babel/core" "^7.7.5"
+ "@istanbuljs/schema" "^0.1.2"
+ istanbul-lib-coverage "^3.0.0"
+ semver "^6.3.0"
-istanbul-lib-report@^2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-2.0.4.tgz#bfd324ee0c04f59119cb4f07dab157d09f24d7e4"
- integrity sha512-sOiLZLAWpA0+3b5w5/dq0cjm2rrNdAfHWaGhmn7XEFW6X++IV9Ohn+pnELAl9K3rfpaeBfbmH9JU5sejacdLeA==
+istanbul-lib-report@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6"
+ integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==
dependencies:
- istanbul-lib-coverage "^2.0.3"
- make-dir "^1.3.0"
- supports-color "^6.0.0"
+ istanbul-lib-coverage "^3.0.0"
+ make-dir "^3.0.0"
+ supports-color "^7.1.0"
-istanbul-lib-source-maps@^3.0.1:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.2.tgz#f1e817229a9146e8424a28e5d69ba220fda34156"
- integrity sha512-JX4v0CiKTGp9fZPmoxpu9YEkPbEqCqBbO3403VabKjH+NRXo72HafD5UgnjTEqHL2SAjaZK1XDuDOkn6I5QVfQ==
+istanbul-lib-source-maps@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz#75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9"
+ integrity sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==
dependencies:
debug "^4.1.1"
- istanbul-lib-coverage "^2.0.3"
- make-dir "^1.3.0"
- rimraf "^2.6.2"
+ istanbul-lib-coverage "^3.0.0"
source-map "^0.6.1"
-istanbul-reports@^2.2.6:
- version "2.2.6"
- resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-2.2.6.tgz#7b4f2660d82b29303a8fe6091f8ca4bf058da1af"
- integrity sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA==
+istanbul-reports@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz#d593210e5000683750cb09fc0644e4b6e27fd53b"
+ integrity sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==
dependencies:
- handlebars "^4.1.2"
+ html-escaper "^2.0.0"
+ istanbul-lib-report "^3.0.0"
-jest-changed-files@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-24.9.0.tgz#08d8c15eb79a7fa3fc98269bc14b451ee82f8039"
- integrity sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg==
+jest-changed-files@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-25.4.0.tgz#e573db32c2fd47d2b90357ea2eda0622c5c5cbd6"
+ integrity sha512-VR/rfJsEs4BVMkwOTuStRyS630fidFVekdw/lBaBQjx9KK3VZFOZ2c0fsom2fRp8pMCrCTP6LGna00o/DXGlqA==
dependencies:
- "@jest/types" "^24.9.0"
- execa "^1.0.0"
- throat "^4.0.0"
+ "@jest/types" "^25.4.0"
+ execa "^3.2.0"
+ throat "^5.0.0"
-jest-cli@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-24.9.0.tgz#ad2de62d07472d419c6abc301fc432b98b10d2af"
- integrity sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg==
+jest-cli@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-25.4.0.tgz#5dac8be0fece6ce39f0d671395a61d1357322bab"
+ integrity sha512-usyrj1lzCJZMRN1r3QEdnn8e6E6yCx/QN7+B1sLoA68V7f3WlsxSSQfy0+BAwRiF4Hz2eHauf11GZG3PIfWTXQ==
dependencies:
- "@jest/core" "^24.9.0"
- "@jest/test-result" "^24.9.0"
- "@jest/types" "^24.9.0"
- chalk "^2.0.1"
+ "@jest/core" "^25.4.0"
+ "@jest/test-result" "^25.4.0"
+ "@jest/types" "^25.4.0"
+ chalk "^3.0.0"
exit "^0.1.2"
- import-local "^2.0.0"
+ import-local "^3.0.2"
is-ci "^2.0.0"
- jest-config "^24.9.0"
- jest-util "^24.9.0"
- jest-validate "^24.9.0"
+ jest-config "^25.4.0"
+ jest-util "^25.4.0"
+ jest-validate "^25.4.0"
prompts "^2.0.1"
- realpath-native "^1.1.0"
- yargs "^13.3.0"
+ realpath-native "^2.0.0"
+ yargs "^15.3.1"
-jest-config@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.9.0.tgz#fb1bbc60c73a46af03590719efa4825e6e4dd1b5"
- integrity sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ==
+jest-config@^25.4.0, jest-config@^25.5.4:
+ version "25.5.4"
+ resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-25.5.4.tgz#38e2057b3f976ef7309b2b2c8dcd2a708a67f02c"
+ integrity sha512-SZwR91SwcdK6bz7Gco8qL7YY2sx8tFJYzvg216DLihTWf+LKY/DoJXpM9nTzYakSyfblbqeU48p/p7Jzy05Atg==
dependencies:
"@babel/core" "^7.1.0"
- "@jest/test-sequencer" "^24.9.0"
- "@jest/types" "^24.9.0"
- babel-jest "^24.9.0"
- chalk "^2.0.1"
+ "@jest/test-sequencer" "^25.5.4"
+ "@jest/types" "^25.5.0"
+ babel-jest "^25.5.1"
+ chalk "^3.0.0"
+ deepmerge "^4.2.2"
glob "^7.1.1"
- jest-environment-jsdom "^24.9.0"
- jest-environment-node "^24.9.0"
- jest-get-type "^24.9.0"
- jest-jasmine2 "^24.9.0"
- jest-regex-util "^24.3.0"
- jest-resolve "^24.9.0"
- jest-util "^24.9.0"
- jest-validate "^24.9.0"
- micromatch "^3.1.10"
- pretty-format "^24.9.0"
- realpath-native "^1.1.0"
+ graceful-fs "^4.2.4"
+ jest-environment-jsdom "^25.5.0"
+ jest-environment-node "^25.5.0"
+ jest-get-type "^25.2.6"
+ jest-jasmine2 "^25.5.4"
+ jest-regex-util "^25.2.6"
+ jest-resolve "^25.5.1"
+ jest-util "^25.5.0"
+ jest-validate "^25.5.0"
+ micromatch "^4.0.2"
+ pretty-format "^25.5.0"
+ realpath-native "^2.0.0"
-jest-diff@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da"
- integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==
+jest-diff@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.5.0.tgz#1dd26ed64f96667c068cef026b677dfa01afcfa9"
+ integrity sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==
dependencies:
- chalk "^2.0.1"
- diff-sequences "^24.9.0"
- jest-get-type "^24.9.0"
- pretty-format "^24.9.0"
+ chalk "^3.0.0"
+ diff-sequences "^25.2.6"
+ jest-get-type "^25.2.6"
+ pretty-format "^25.5.0"
-jest-docblock@^24.3.0:
- version "24.3.0"
- resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.3.0.tgz#b9c32dac70f72e4464520d2ba4aec02ab14db5dd"
- integrity sha512-nlANmF9Yq1dufhFlKG9rasfQlrY7wINJbo3q01tu56Jv5eBU5jirylhF2O5ZBnLxzOVBGRDz/9NAwNyBtG4Nyg==
+jest-docblock@^25.3.0:
+ version "25.3.0"
+ resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-25.3.0.tgz#8b777a27e3477cd77a168c05290c471a575623ef"
+ integrity sha512-aktF0kCar8+zxRHxQZwxMy70stc9R1mOmrLsT5VO3pIT0uzGRSDAXxSlz4NqQWpuLjPpuMhPRl7H+5FRsvIQAg==
dependencies:
- detect-newline "^2.1.0"
+ detect-newline "^3.0.0"
-jest-each@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.9.0.tgz#eb2da602e2a610898dbc5f1f6df3ba86b55f8b05"
- integrity sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog==
+jest-each@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-25.5.0.tgz#0c3c2797e8225cb7bec7e4d249dcd96b934be516"
+ integrity sha512-QBogUxna3D8vtiItvn54xXde7+vuzqRrEeaw8r1s+1TG9eZLVJE5ZkKoSUlqFwRjnlaA4hyKGiu9OlkFIuKnjA==
dependencies:
- "@jest/types" "^24.9.0"
- chalk "^2.0.1"
- jest-get-type "^24.9.0"
- jest-util "^24.9.0"
- pretty-format "^24.9.0"
+ "@jest/types" "^25.5.0"
+ chalk "^3.0.0"
+ jest-get-type "^25.2.6"
+ jest-util "^25.5.0"
+ pretty-format "^25.5.0"
-jest-environment-jsdom@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz#4b0806c7fc94f95edb369a69cc2778eec2b7375b"
- integrity sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA==
+jest-environment-jsdom@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-25.5.0.tgz#dcbe4da2ea997707997040ecf6e2560aec4e9834"
+ integrity sha512-7Jr02ydaq4jaWMZLY+Skn8wL5nVIYpWvmeatOHL3tOcV3Zw8sjnPpx+ZdeBfc457p8jCR9J6YCc+Lga0oIy62A==
dependencies:
- "@jest/environment" "^24.9.0"
- "@jest/fake-timers" "^24.9.0"
- "@jest/types" "^24.9.0"
- jest-mock "^24.9.0"
- jest-util "^24.9.0"
- jsdom "^11.5.1"
+ "@jest/environment" "^25.5.0"
+ "@jest/fake-timers" "^25.5.0"
+ "@jest/types" "^25.5.0"
+ jest-mock "^25.5.0"
+ jest-util "^25.5.0"
+ jsdom "^15.2.1"
-jest-environment-node@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.9.0.tgz#333d2d2796f9687f2aeebf0742b519f33c1cbfd3"
- integrity sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA==
+jest-environment-node@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-25.5.0.tgz#0f55270d94804902988e64adca37c6ce0f7d07a1"
+ integrity sha512-iuxK6rQR2En9EID+2k+IBs5fCFd919gVVK5BeND82fYeLWPqvRcFNPKu9+gxTwfB5XwBGBvZ0HFQa+cHtIoslA==
dependencies:
- "@jest/environment" "^24.9.0"
- "@jest/fake-timers" "^24.9.0"
- "@jest/types" "^24.9.0"
- jest-mock "^24.9.0"
- jest-util "^24.9.0"
+ "@jest/environment" "^25.5.0"
+ "@jest/fake-timers" "^25.5.0"
+ "@jest/types" "^25.5.0"
+ jest-mock "^25.5.0"
+ jest-util "^25.5.0"
+ semver "^6.3.0"
-jest-get-type@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e"
- integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==
+jest-get-type@^25.2.6:
+ version "25.2.6"
+ resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877"
+ integrity sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==
-jest-haste-map@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d"
- integrity sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==
+jest-haste-map@^25.4.0, jest-haste-map@^25.5.1:
+ version "25.5.1"
+ resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-25.5.1.tgz#1df10f716c1d94e60a1ebf7798c9fb3da2620943"
+ integrity sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==
dependencies:
- "@jest/types" "^24.9.0"
- anymatch "^2.0.0"
+ "@jest/types" "^25.5.0"
+ "@types/graceful-fs" "^4.1.2"
+ anymatch "^3.0.3"
fb-watchman "^2.0.0"
- graceful-fs "^4.1.15"
- invariant "^2.2.4"
- jest-serializer "^24.9.0"
- jest-util "^24.9.0"
- jest-worker "^24.9.0"
- micromatch "^3.1.10"
+ graceful-fs "^4.2.4"
+ jest-serializer "^25.5.0"
+ jest-util "^25.5.0"
+ jest-worker "^25.5.0"
+ micromatch "^4.0.2"
sane "^4.0.3"
walker "^1.0.7"
+ which "^2.0.2"
optionalDependencies:
- fsevents "^1.2.7"
+ fsevents "^2.1.2"
-jest-jasmine2@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz#1f7b1bd3242c1774e62acabb3646d96afc3be6a0"
- integrity sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw==
+jest-jasmine2@^25.4.0, jest-jasmine2@^25.5.4:
+ version "25.5.4"
+ resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-25.5.4.tgz#66ca8b328fb1a3c5364816f8958f6970a8526968"
+ integrity sha512-9acbWEfbmS8UpdcfqnDO+uBUgKa/9hcRh983IHdM+pKmJPL77G0sWAAK0V0kr5LK3a8cSBfkFSoncXwQlRZfkQ==
dependencies:
"@babel/traverse" "^7.1.0"
- "@jest/environment" "^24.9.0"
- "@jest/test-result" "^24.9.0"
- "@jest/types" "^24.9.0"
- chalk "^2.0.1"
+ "@jest/environment" "^25.5.0"
+ "@jest/source-map" "^25.5.0"
+ "@jest/test-result" "^25.5.0"
+ "@jest/types" "^25.5.0"
+ chalk "^3.0.0"
co "^4.6.0"
- expect "^24.9.0"
+ expect "^25.5.0"
is-generator-fn "^2.0.0"
- jest-each "^24.9.0"
- jest-matcher-utils "^24.9.0"
- jest-message-util "^24.9.0"
- jest-runtime "^24.9.0"
- jest-snapshot "^24.9.0"
- jest-util "^24.9.0"
- pretty-format "^24.9.0"
- throat "^4.0.0"
+ jest-each "^25.5.0"
+ jest-matcher-utils "^25.5.0"
+ jest-message-util "^25.5.0"
+ jest-runtime "^25.5.4"
+ jest-snapshot "^25.5.1"
+ jest-util "^25.5.0"
+ pretty-format "^25.5.0"
+ throat "^5.0.0"
-jest-leak-detector@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz#b665dea7c77100c5c4f7dfcb153b65cf07dcf96a"
- integrity sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA==
+jest-leak-detector@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-25.4.0.tgz#cf94a160c78e53d810e7b2f40b5fd7ee263375b3"
+ integrity sha512-7Y6Bqfv2xWsB+7w44dvZuLs5SQ//fzhETgOGG7Gq3TTGFdYvAgXGwV8z159RFZ6fXiCPm/szQ90CyfVos9JIFQ==
dependencies:
- jest-get-type "^24.9.0"
- pretty-format "^24.9.0"
+ jest-get-type "^25.2.6"
+ pretty-format "^25.4.0"
-jest-matcher-utils@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz#f5b3661d5e628dffe6dd65251dfdae0e87c3a073"
- integrity sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==
+jest-leak-detector@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-25.5.0.tgz#2291c6294b0ce404241bb56fe60e2d0c3e34f0bb"
+ integrity sha512-rV7JdLsanS8OkdDpZtgBf61L5xZ4NnYLBq72r6ldxahJWWczZjXawRsoHyXzibM5ed7C2QRjpp6ypgwGdKyoVA==
dependencies:
- chalk "^2.0.1"
- jest-diff "^24.9.0"
- jest-get-type "^24.9.0"
- pretty-format "^24.9.0"
+ jest-get-type "^25.2.6"
+ pretty-format "^25.5.0"
-jest-message-util@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3"
- integrity sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==
+jest-matcher-utils@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-25.5.0.tgz#fbc98a12d730e5d2453d7f1ed4a4d948e34b7867"
+ integrity sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw==
+ dependencies:
+ chalk "^3.0.0"
+ jest-diff "^25.5.0"
+ jest-get-type "^25.2.6"
+ pretty-format "^25.5.0"
+
+jest-message-util@^25.4.0, jest-message-util@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-25.5.0.tgz#ea11d93204cc7ae97456e1d8716251185b8880ea"
+ integrity sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==
dependencies:
"@babel/code-frame" "^7.0.0"
- "@jest/test-result" "^24.9.0"
- "@jest/types" "^24.9.0"
+ "@jest/types" "^25.5.0"
"@types/stack-utils" "^1.0.1"
- chalk "^2.0.1"
- micromatch "^3.1.10"
- slash "^2.0.0"
+ chalk "^3.0.0"
+ graceful-fs "^4.2.4"
+ micromatch "^4.0.2"
+ slash "^3.0.0"
stack-utils "^1.0.1"
-jest-mock@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6"
- integrity sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==
+jest-mock@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-25.5.0.tgz#a91a54dabd14e37ecd61665d6b6e06360a55387a"
+ integrity sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA==
dependencies:
- "@jest/types" "^24.9.0"
+ "@jest/types" "^25.5.0"
jest-pnp-resolver@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a"
integrity sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ==
-jest-regex-util@^24.3.0:
- version "24.3.0"
- resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.3.0.tgz#d5a65f60be1ae3e310d5214a0307581995227b36"
- integrity sha512-tXQR1NEOyGlfylyEjg1ImtScwMq8Oh3iJbGTjN7p0J23EuVX1MA8rwU69K4sLbCmwzgCUbVkm0FkSF9TdzOhtg==
+jest-regex-util@^25.2.6:
+ version "25.2.6"
+ resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-25.2.6.tgz#d847d38ba15d2118d3b06390056028d0f2fd3964"
+ integrity sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw==
-jest-regex-util@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.9.0.tgz#c13fb3380bde22bf6575432c493ea8fe37965636"
- integrity sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA==
-
-jest-resolve-dependencies@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz#ad055198959c4cfba8a4f066c673a3f0786507ab"
- integrity sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g==
+jest-resolve-dependencies@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-25.4.0.tgz#783937544cfc40afcc7c569aa54748c4b3f83f5a"
+ integrity sha512-A0eoZXx6kLiuG1Ui7wITQPl04HwjLErKIJTt8GR3c7UoDAtzW84JtCrgrJ6Tkw6c6MwHEyAaLk7dEPml5pf48A==
dependencies:
- "@jest/types" "^24.9.0"
- jest-regex-util "^24.3.0"
- jest-snapshot "^24.9.0"
+ "@jest/types" "^25.4.0"
+ jest-regex-util "^25.2.6"
+ jest-snapshot "^25.4.0"
-jest-resolve@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.9.0.tgz#dff04c7687af34c4dd7e524892d9cf77e5d17321"
- integrity sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ==
+jest-resolve@^25.4.0, jest-resolve@^25.5.1:
+ version "25.5.1"
+ resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-25.5.1.tgz#0e6fbcfa7c26d2a5fe8f456088dc332a79266829"
+ integrity sha512-Hc09hYch5aWdtejsUZhA+vSzcotf7fajSlPA6EZPE1RmPBAD39XtJhvHWFStid58iit4IPDLI/Da4cwdDmAHiQ==
dependencies:
- "@jest/types" "^24.9.0"
+ "@jest/types" "^25.5.0"
browser-resolve "^1.11.3"
- chalk "^2.0.1"
+ chalk "^3.0.0"
+ graceful-fs "^4.2.4"
jest-pnp-resolver "^1.2.1"
- realpath-native "^1.1.0"
+ read-pkg-up "^7.0.1"
+ realpath-native "^2.0.0"
+ resolve "^1.17.0"
+ slash "^3.0.0"
-jest-runner@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.9.0.tgz#574fafdbd54455c2b34b4bdf4365a23857fcdf42"
- integrity sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg==
+jest-runner@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-25.4.0.tgz#6ca4a3d52e692bbc081228fa68f750012f1f29e5"
+ integrity sha512-wWQSbVgj2e/1chFdMRKZdvlmA6p1IPujhpLT7TKNtCSl1B0PGBGvJjCaiBal/twaU2yfk8VKezHWexM8IliBfA==
dependencies:
- "@jest/console" "^24.7.1"
- "@jest/environment" "^24.9.0"
- "@jest/test-result" "^24.9.0"
- "@jest/types" "^24.9.0"
- chalk "^2.4.2"
+ "@jest/console" "^25.4.0"
+ "@jest/environment" "^25.4.0"
+ "@jest/test-result" "^25.4.0"
+ "@jest/types" "^25.4.0"
+ chalk "^3.0.0"
exit "^0.1.2"
- graceful-fs "^4.1.15"
- jest-config "^24.9.0"
- jest-docblock "^24.3.0"
- jest-haste-map "^24.9.0"
- jest-jasmine2 "^24.9.0"
- jest-leak-detector "^24.9.0"
- jest-message-util "^24.9.0"
- jest-resolve "^24.9.0"
- jest-runtime "^24.9.0"
- jest-util "^24.9.0"
- jest-worker "^24.6.0"
+ graceful-fs "^4.2.3"
+ jest-config "^25.4.0"
+ jest-docblock "^25.3.0"
+ jest-haste-map "^25.4.0"
+ jest-jasmine2 "^25.4.0"
+ jest-leak-detector "^25.4.0"
+ jest-message-util "^25.4.0"
+ jest-resolve "^25.4.0"
+ jest-runtime "^25.4.0"
+ jest-util "^25.4.0"
+ jest-worker "^25.4.0"
source-map-support "^0.5.6"
- throat "^4.0.0"
+ throat "^5.0.0"
-jest-runtime@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.9.0.tgz#9f14583af6a4f7314a6a9d9f0226e1a781c8e4ac"
- integrity sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw==
+jest-runner@^25.5.4:
+ version "25.5.4"
+ resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-25.5.4.tgz#ffec5df3875da5f5c878ae6d0a17b8e4ecd7c71d"
+ integrity sha512-V/2R7fKZo6blP8E9BL9vJ8aTU4TH2beuqGNxHbxi6t14XzTb+x90B3FRgdvuHm41GY8ch4xxvf0ATH4hdpjTqg==
dependencies:
- "@jest/console" "^24.7.1"
- "@jest/environment" "^24.9.0"
- "@jest/source-map" "^24.3.0"
- "@jest/transform" "^24.9.0"
- "@jest/types" "^24.9.0"
- "@types/yargs" "^13.0.0"
- chalk "^2.0.1"
+ "@jest/console" "^25.5.0"
+ "@jest/environment" "^25.5.0"
+ "@jest/test-result" "^25.5.0"
+ "@jest/types" "^25.5.0"
+ chalk "^3.0.0"
+ exit "^0.1.2"
+ graceful-fs "^4.2.4"
+ jest-config "^25.5.4"
+ jest-docblock "^25.3.0"
+ jest-haste-map "^25.5.1"
+ jest-jasmine2 "^25.5.4"
+ jest-leak-detector "^25.5.0"
+ jest-message-util "^25.5.0"
+ jest-resolve "^25.5.1"
+ jest-runtime "^25.5.4"
+ jest-util "^25.5.0"
+ jest-worker "^25.5.0"
+ source-map-support "^0.5.6"
+ throat "^5.0.0"
+
+jest-runtime@^25.4.0, jest-runtime@^25.5.4:
+ version "25.5.4"
+ resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-25.5.4.tgz#dc981fe2cb2137abcd319e74ccae7f7eeffbfaab"
+ integrity sha512-RWTt8LeWh3GvjYtASH2eezkc8AehVoWKK20udV6n3/gC87wlTbE1kIA+opCvNWyyPeBs6ptYsc6nyHUb1GlUVQ==
+ dependencies:
+ "@jest/console" "^25.5.0"
+ "@jest/environment" "^25.5.0"
+ "@jest/globals" "^25.5.2"
+ "@jest/source-map" "^25.5.0"
+ "@jest/test-result" "^25.5.0"
+ "@jest/transform" "^25.5.1"
+ "@jest/types" "^25.5.0"
+ "@types/yargs" "^15.0.0"
+ chalk "^3.0.0"
+ collect-v8-coverage "^1.0.0"
exit "^0.1.2"
glob "^7.1.3"
- graceful-fs "^4.1.15"
- jest-config "^24.9.0"
- jest-haste-map "^24.9.0"
- jest-message-util "^24.9.0"
- jest-mock "^24.9.0"
- jest-regex-util "^24.3.0"
- jest-resolve "^24.9.0"
- jest-snapshot "^24.9.0"
- jest-util "^24.9.0"
- jest-validate "^24.9.0"
- realpath-native "^1.1.0"
- slash "^2.0.0"
- strip-bom "^3.0.0"
- yargs "^13.3.0"
+ graceful-fs "^4.2.4"
+ jest-config "^25.5.4"
+ jest-haste-map "^25.5.1"
+ jest-message-util "^25.5.0"
+ jest-mock "^25.5.0"
+ jest-regex-util "^25.2.6"
+ jest-resolve "^25.5.1"
+ jest-snapshot "^25.5.1"
+ jest-util "^25.5.0"
+ jest-validate "^25.5.0"
+ realpath-native "^2.0.0"
+ slash "^3.0.0"
+ strip-bom "^4.0.0"
+ yargs "^15.3.1"
-jest-serializer@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73"
- integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ==
+jest-serializer@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-25.5.0.tgz#a993f484e769b4ed54e70e0efdb74007f503072b"
+ integrity sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==
+ dependencies:
+ graceful-fs "^4.2.4"
-jest-snapshot@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.9.0.tgz#ec8e9ca4f2ec0c5c87ae8f925cf97497b0e951ba"
- integrity sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew==
+jest-snapshot@^25.4.0, jest-snapshot@^25.5.1:
+ version "25.5.1"
+ resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-25.5.1.tgz#1a2a576491f9961eb8d00c2e5fd479bc28e5ff7f"
+ integrity sha512-C02JE1TUe64p2v1auUJ2ze5vcuv32tkv9PyhEb318e8XOKF7MOyXdJ7kdjbvrp3ChPLU2usI7Rjxs97Dj5P0uQ==
dependencies:
"@babel/types" "^7.0.0"
- "@jest/types" "^24.9.0"
- chalk "^2.0.1"
- expect "^24.9.0"
- jest-diff "^24.9.0"
- jest-get-type "^24.9.0"
- jest-matcher-utils "^24.9.0"
- jest-message-util "^24.9.0"
- jest-resolve "^24.9.0"
- mkdirp "^0.5.1"
+ "@jest/types" "^25.5.0"
+ "@types/prettier" "^1.19.0"
+ chalk "^3.0.0"
+ expect "^25.5.0"
+ graceful-fs "^4.2.4"
+ jest-diff "^25.5.0"
+ jest-get-type "^25.2.6"
+ jest-matcher-utils "^25.5.0"
+ jest-message-util "^25.5.0"
+ jest-resolve "^25.5.1"
+ make-dir "^3.0.0"
natural-compare "^1.4.0"
- pretty-format "^24.9.0"
- semver "^6.2.0"
+ pretty-format "^25.5.0"
+ semver "^6.3.0"
-jest-util@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162"
- integrity sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==
+jest-util@^25.4.0, jest-util@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-25.5.0.tgz#31c63b5d6e901274d264a4fec849230aa3fa35b0"
+ integrity sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==
dependencies:
- "@jest/console" "^24.9.0"
- "@jest/fake-timers" "^24.9.0"
- "@jest/source-map" "^24.9.0"
- "@jest/test-result" "^24.9.0"
- "@jest/types" "^24.9.0"
- callsites "^3.0.0"
- chalk "^2.0.1"
- graceful-fs "^4.1.15"
+ "@jest/types" "^25.5.0"
+ chalk "^3.0.0"
+ graceful-fs "^4.2.4"
is-ci "^2.0.0"
- mkdirp "^0.5.1"
- slash "^2.0.0"
- source-map "^0.6.0"
+ make-dir "^3.0.0"
-jest-validate@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab"
- integrity sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==
+jest-validate@^25.4.0, jest-validate@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-25.5.0.tgz#fb4c93f332c2e4cf70151a628e58a35e459a413a"
+ integrity sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ==
dependencies:
- "@jest/types" "^24.9.0"
+ "@jest/types" "^25.5.0"
camelcase "^5.3.1"
- chalk "^2.0.1"
- jest-get-type "^24.9.0"
+ chalk "^3.0.0"
+ jest-get-type "^25.2.6"
leven "^3.1.0"
- pretty-format "^24.9.0"
+ pretty-format "^25.5.0"
-jest-watcher@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-24.9.0.tgz#4b56e5d1ceff005f5b88e528dc9afc8dd4ed2b3b"
- integrity sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw==
+jest-watcher@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-25.4.0.tgz#63ec0cd5c83bb9c9d1ac95be7558dd61c995ff05"
+ integrity sha512-36IUfOSRELsKLB7k25j/wutx0aVuHFN6wO94gPNjQtQqFPa2rkOymmx9rM5EzbF3XBZZ2oqD9xbRVoYa2w86gw==
dependencies:
- "@jest/test-result" "^24.9.0"
- "@jest/types" "^24.9.0"
- "@types/yargs" "^13.0.0"
- ansi-escapes "^3.0.0"
- chalk "^2.0.1"
- jest-util "^24.9.0"
- string-length "^2.0.0"
+ "@jest/test-result" "^25.4.0"
+ "@jest/types" "^25.4.0"
+ ansi-escapes "^4.2.1"
+ chalk "^3.0.0"
+ jest-util "^25.4.0"
+ string-length "^3.1.0"
-jest-worker@^24.6.0, jest-worker@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5"
- integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==
- dependencies:
- merge-stream "^2.0.0"
- supports-color "^6.1.0"
-
-jest-worker@^25.1.0:
- version "25.1.0"
- resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.1.0.tgz#75d038bad6fdf58eba0d2ec1835856c497e3907a"
- integrity sha512-ZHhHtlxOWSxCoNOKHGbiLzXnl42ga9CxDr27H36Qn+15pQZd3R/F24jrmjDelw9j/iHUIWMWs08/u2QN50HHOg==
+jest-worker@^25.4.0, jest-worker@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.5.0.tgz#2611d071b79cea0f43ee57a3d118593ac1547db1"
+ integrity sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==
dependencies:
merge-stream "^2.0.0"
supports-color "^7.0.0"
-jest@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/jest/-/jest-24.9.0.tgz#987d290c05a08b52c56188c1002e368edb007171"
- integrity sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw==
+jest-worker@^26.0.0:
+ version "26.0.0"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.0.0.tgz#4920c7714f0a96c6412464718d0c58a3df3fb066"
+ integrity sha512-pPaYa2+JnwmiZjK9x7p9BoZht+47ecFCDFA/CJxspHzeDvQcfVBLWzCiWyo+EGrSiQMWZtCFo9iSvMZnAAo8vw==
dependencies:
- import-local "^2.0.0"
- jest-cli "^24.9.0"
+ merge-stream "^2.0.0"
+ supports-color "^7.0.0"
+
+jest@^25.4.0:
+ version "25.4.0"
+ resolved "https://registry.yarnpkg.com/jest/-/jest-25.4.0.tgz#fb96892c5c4e4a6b9bcb12068849cddf4c5f8cc7"
+ integrity sha512-XWipOheGB4wai5JfCYXd6vwsWNwM/dirjRoZgAa7H2wd8ODWbli2AiKjqG8AYhyx+8+5FBEdpO92VhGlBydzbw==
+ dependencies:
+ "@jest/core" "^25.4.0"
+ import-local "^3.0.2"
+ jest-cli "^25.4.0"
js-base64@^2.1.9:
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.0.tgz#42255ba183ab67ce59a0dee640afdc00ab5ae93e"
- integrity sha512-wlEBIZ5LP8usDylWbDNhKPEFVFdI5hCHpnVoT/Ysvoi/PRhJENm/Rlh9TvjYB38HFfKZN7OzEbRjmjvLkFw11g==
+ version "2.5.2"
+ resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.2.tgz#313b6274dda718f714d00b3330bbae6e38e90209"
+ integrity sha512-Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ==
js-string-escape@1.0.1:
version "1.0.1"
@@ -6246,7 +6541,7 @@ js-string-escape@1.0.1:
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
-js-yaml@^3.12.0, js-yaml@^3.13.1, js-yaml@^3.4.6, js-yaml@^3.5.1, js-yaml@^3.5.4, js-yaml@^3.9.0:
+js-yaml@^3.13.1, js-yaml@^3.4.6, js-yaml@^3.5.1, js-yaml@^3.5.4, js-yaml@^3.9.0:
version "3.13.1"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
@@ -6259,36 +6554,36 @@ jsbn@~0.1.0:
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
-jsdom@^11.5.1:
- version "11.12.0"
- resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8"
- integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==
+jsdom@^15.2.1:
+ version "15.2.1"
+ resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-15.2.1.tgz#d2feb1aef7183f86be521b8c6833ff5296d07ec5"
+ integrity sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g==
dependencies:
abab "^2.0.0"
- acorn "^5.5.3"
- acorn-globals "^4.1.0"
+ acorn "^7.1.0"
+ acorn-globals "^4.3.2"
array-equal "^1.0.0"
- cssom ">= 0.3.2 < 0.4.0"
- cssstyle "^1.0.0"
- data-urls "^1.0.0"
+ cssom "^0.4.1"
+ cssstyle "^2.0.0"
+ data-urls "^1.1.0"
domexception "^1.0.1"
- escodegen "^1.9.1"
+ escodegen "^1.11.1"
html-encoding-sniffer "^1.0.2"
- left-pad "^1.3.0"
- nwsapi "^2.0.7"
- parse5 "4.0.0"
+ nwsapi "^2.2.0"
+ parse5 "5.1.0"
pn "^1.1.0"
- request "^2.87.0"
- request-promise-native "^1.0.5"
- sax "^1.2.4"
+ request "^2.88.0"
+ request-promise-native "^1.0.7"
+ saxes "^3.1.9"
symbol-tree "^3.2.2"
- tough-cookie "^2.3.4"
+ tough-cookie "^3.0.1"
w3c-hr-time "^1.0.1"
+ w3c-xmlserializer "^1.1.2"
webidl-conversions "^4.0.2"
- whatwg-encoding "^1.0.3"
- whatwg-mimetype "^2.1.0"
- whatwg-url "^6.4.1"
- ws "^5.2.0"
+ whatwg-encoding "^1.0.5"
+ whatwg-mimetype "^2.3.0"
+ whatwg-url "^7.0.0"
+ ws "^7.0.0"
xml-name-validator "^3.0.0"
jsesc@^2.5.1:
@@ -6350,12 +6645,12 @@ json5@^1.0.1:
dependencies:
minimist "^1.2.0"
-json5@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850"
- integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==
+json5@^2.1.2:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43"
+ integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==
dependencies:
- minimist "^1.2.0"
+ minimist "^1.2.5"
jsonfile@^3.0.0:
version "3.0.1"
@@ -6409,34 +6704,15 @@ killable@^1.0.1:
resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892"
integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==
-kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
- integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
- dependencies:
- is-buffer "^1.1.5"
+kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0, kind-of@^4.0.0, kind-of@^5.0.0, kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
+ integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
-kind-of@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
- integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc=
- dependencies:
- is-buffer "^1.1.5"
-
-kind-of@^5.0.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
- integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
-
-kind-of@^6.0.0, kind-of@^6.0.2:
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051"
- integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==
-
-kleur@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.2.tgz#83c7ec858a41098b613d5998a7b653962b504f68"
- integrity sha512-3h7B2WRT5LNXOtQiAaWonilegHcPSf9nLVXlSTci8lu1dZUuui61+EsPEZqSVxY7rXYmB2DVKMQILxaO5WL61Q==
+kleur@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
+ integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
knot.js@^1.1.5:
version "1.1.5"
@@ -6455,20 +6731,15 @@ lcid@^2.0.0:
dependencies:
invert-kv "^2.0.0"
-left-pad@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e"
- integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==
-
leven@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
-levenary@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.0.tgz#fc146fe75f32dc483a0a2c64aef720f602cd6210"
- integrity sha512-VHcwhO0UTpUW7rLPN2/OiWJdgA1e9BqEDALhrgCe/F+uUJnep6CoUsTzMeP8Rh0NGr9uKquXxqe7lwLZo509nQ==
+levenary@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77"
+ integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==
dependencies:
leven "^3.1.0"
@@ -6495,16 +6766,6 @@ load-json-file@^2.0.0:
pify "^2.0.0"
strip-bom "^3.0.0"
-load-json-file@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b"
- integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs=
- dependencies:
- graceful-fs "^4.1.2"
- parse-json "^4.0.0"
- pify "^3.0.0"
- strip-bom "^3.0.0"
-
loader-runner@^2.4.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
@@ -6520,7 +6781,7 @@ loader-utils@0.2.x:
json5 "^0.5.0"
object-assign "^4.0.1"
-loader-utils@1.2.3, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3:
+loader-utils@1.2.3:
version "1.2.3"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7"
integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==
@@ -6529,6 +6790,15 @@ loader-utils@1.2.3, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.
emojis-list "^2.0.0"
json5 "^1.0.1"
+loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
+ integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==
+ dependencies:
+ big.js "^5.2.2"
+ emojis-list "^3.0.0"
+ json5 "^1.0.1"
+
locate-path@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
@@ -6617,15 +6887,22 @@ lodash.uniq@^4.5.0:
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
-lodash@^4.0.0, lodash@^4.13.1, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.3.0, lodash@~4.17.10:
+lodash@^4.0.0, lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.3.0, lodash@~4.17.12:
version "4.17.15"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
loglevel@^1.6.6:
- version "1.6.6"
- resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.6.tgz#0ee6300cc058db6b3551fa1c4bf73b83bb771312"
- integrity sha512-Sgr5lbboAUBo3eXCSPL4/KoVz3ROKquOjcctxmHIt+vol2DrqTQe3SwkKKuYhEiWB5kYa13YyopJ69deJ1irzQ==
+ version "1.6.8"
+ resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171"
+ integrity sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA==
+
+lolex@^5.0.0:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367"
+ integrity sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A==
+ dependencies:
+ "@sinonjs/commons" "^1.7.0"
loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1, loose-envify@^1.4.0:
version "1.4.0"
@@ -6641,13 +6918,6 @@ lru-cache@^5.1.1:
dependencies:
yallist "^3.0.2"
-make-dir@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
- integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==
- dependencies:
- pify "^3.0.0"
-
make-dir@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
@@ -6656,10 +6926,10 @@ make-dir@^2.0.0:
pify "^4.0.1"
semver "^5.6.0"
-make-dir@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.0.tgz#1b5f39f6b9270ed33f9f054c5c0f84304989f801"
- integrity sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==
+make-dir@^3.0.0, make-dir@^3.0.2:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
+ integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
dependencies:
semver "^6.0.0"
@@ -6670,11 +6940,6 @@ makeerror@1.0.x:
dependencies:
tmpl "1.0.x"
-mamacro@^0.0.3:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4"
- integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==
-
map-age-cleaner@^0.1.1:
version "0.1.3"
resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a"
@@ -6713,10 +6978,15 @@ md5.js@^1.3.4:
inherits "^2.0.1"
safe-buffer "^5.1.2"
-mdn-data@~1.1.0:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01"
- integrity sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==
+mdn-data@2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b"
+ integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==
+
+mdn-data@2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.6.tgz#852dc60fcaa5daa2e8cf6c9189c440ed3e042978"
+ integrity sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==
media-typer@0.3.0:
version "0.3.0"
@@ -6784,6 +7054,14 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4:
snapdragon "^0.8.1"
to-regex "^3.0.2"
+micromatch@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259"
+ integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==
+ dependencies:
+ braces "^3.0.1"
+ picomatch "^2.0.5"
+
miller-rabin@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
@@ -6792,34 +7070,22 @@ miller-rabin@^4.0.0:
bn.js "^4.0.0"
brorand "^1.0.1"
-mime-db@1.40.0:
- version "1.40.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32"
- integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==
+mime-db@1.44.0:
+ version "1.44.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92"
+ integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==
"mime-db@>= 1.40.0 < 2":
version "1.42.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.42.0.tgz#3e252907b4c7adb906597b4b65636272cf9e7bac"
integrity sha512-UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ==
-mime-db@~1.37.0:
- version "1.37.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8"
- integrity sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg==
-
-mime-types@^2.1.12, mime-types@~2.1.19:
- version "2.1.21"
- resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.21.tgz#28995aa1ecb770742fe6ae7e58f9181c744b3f96"
- integrity sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==
+mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24:
+ version "2.1.27"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f"
+ integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==
dependencies:
- mime-db "~1.37.0"
-
-mime-types@~2.1.17, mime-types@~2.1.24:
- version "2.1.24"
- resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81"
- integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==
- dependencies:
- mime-db "1.40.0"
+ mime-db "1.44.0"
mime@1.6.0:
version "1.6.0"
@@ -6863,25 +7129,15 @@ minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2:
dependencies:
brace-expansion "^1.1.7"
-minimist@0.0.8:
- version "0.0.8"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
- integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
-
minimist@1.1.x:
version "1.1.3"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.1.3.tgz#3bedfd91a92d39016fcfaa1c681e8faa1a1efda8"
integrity sha1-O+39kaktOQFvz6ocaB6Pqhoe/ag=
-minimist@^1.1.1, minimist@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
- integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
-
-minimist@~0.0.1:
- version "0.0.10"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
- integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=
+minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
+ integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
minipass-collect@^1.0.2:
version "1.0.2"
@@ -6904,14 +7160,6 @@ minipass-pipeline@^1.2.2:
dependencies:
minipass "^3.0.0"
-minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0:
- version "2.9.0"
- resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6"
- integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==
- dependencies:
- safe-buffer "^5.1.2"
- yallist "^3.0.0"
-
minipass@^3.0.0, minipass@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.1.tgz#7607ce778472a185ad6d89082aa2070f79cedcd5"
@@ -6919,12 +7167,13 @@ minipass@^3.0.0, minipass@^3.1.1:
dependencies:
yallist "^4.0.0"
-minizlib@^1.2.1:
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d"
- integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==
+minizlib@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.0.tgz#fd52c645301ef09a63a2c209697c294c6ce02cf3"
+ integrity sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==
dependencies:
- minipass "^2.9.0"
+ minipass "^3.0.0"
+ yallist "^4.0.0"
mississippi@^3.0.0:
version "3.0.0"
@@ -6950,22 +7199,27 @@ mixin-deep@^1.2.0:
for-in "^1.0.2"
is-extendable "^1.0.1"
-mkdirp@^0.5, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
- integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
+mkdirp@^0.5, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.1:
+ version "0.5.5"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
+ integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
dependencies:
- minimist "0.0.8"
+ minimist "^1.2.5"
-moo@^0.4.3:
- version "0.4.3"
- resolved "https://registry.yarnpkg.com/moo/-/moo-0.4.3.tgz#3f847a26f31cf625a956a87f2b10fbc013bfd10e"
- integrity sha512-gFD2xGCl8YFgGHsqJ9NKRVdwlioeW3mI1iqfLNYQOv0+6JRwG58Zk9DIGQgyIaffSYaO1xsKnMaYzzNr1KyIAw==
+mkdirp@^1.0.3, mkdirp@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
+ integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
+
+moo@^0.5.0:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.1.tgz#7aae7f384b9b09f620b6abf6f74ebbcd1b65dbc4"
+ integrity sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w==
mousetrap@^1.5.2:
- version "1.6.2"
- resolved "https://registry.yarnpkg.com/mousetrap/-/mousetrap-1.6.2.tgz#caadd9cf886db0986fb2fee59a82f6bd37527587"
- integrity sha512-jDjhi7wlHwdO6q6DS7YRmSHcuI+RVxadBkLt3KHrhd3C2b+w5pKefg3oj5beTcHZyVFA9Aksf+yEE1y5jxUjVA==
+ version "1.6.5"
+ resolved "https://registry.yarnpkg.com/mousetrap/-/mousetrap-1.6.5.tgz#8a766d8c272b08393d5f56074e0b5ec183485bf9"
+ integrity sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==
move-concurrently@^1.0.1:
version "1.0.1"
@@ -6979,6 +7233,13 @@ move-concurrently@^1.0.1:
rimraf "^2.5.4"
run-queue "^1.0.3"
+move-file@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/move-file/-/move-file-2.0.0.tgz#83ffa309b5d7f69d518b28e1333e2ffadf331e3e"
+ integrity sha512-cdkdhNCgbP5dvS4tlGxZbD+nloio9GIimP57EjqFhwLcMjnU+XJKAZzlmg/TN/AK1LuNAdTSvm3CPPP4Xkv0iQ==
+ dependencies:
+ path-exists "^4.0.0"
+
ms@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
@@ -7018,9 +7279,9 @@ mute-stream@0.0.8:
integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
nan@^2.12.1:
- version "2.14.0"
- resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c"
- integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==
+ version "2.14.1"
+ resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01"
+ integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==
nanomatch@^1.2.9:
version "1.2.13"
@@ -7045,36 +7306,27 @@ natural-compare@^1.4.0:
integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
nearley@^2.7.10:
- version "2.16.0"
- resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.16.0.tgz#77c297d041941d268290ec84b739d0ee297e83a7"
- integrity sha512-Tr9XD3Vt/EujXbZBv6UAHYoLUSMQAxSsTnm9K3koXzjzNWY195NqALeyrzLZBKzAkL3gl92BcSogqrHjD8QuUg==
+ version "2.19.2"
+ resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.19.2.tgz#40cafbf235121ae94b1aa1e585890d24fade182d"
+ integrity sha512-h6lygT0BWAGErDvoE2LfI+tDeY2+UUrqG5dcBPdCmjnjud9z1wE0P7ljb85iNbE93YA+xJLpoSYGMuUqhnSSSA==
dependencies:
commander "^2.19.0"
- moo "^0.4.3"
+ moo "^0.5.0"
railroad-diagrams "^1.0.0"
randexp "0.4.6"
semver "^5.4.1"
-needle@^2.2.1:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c"
- integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==
- dependencies:
- debug "^3.2.6"
- iconv-lite "^0.4.4"
- sax "^1.2.4"
-
negotiator@0.6.2:
version "0.6.2"
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
-neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1:
+neo-async@^2.5.0, neo-async@^2.6.1:
version "2.6.1"
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==
-next-tick@^1.0.0:
+next-tick@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"
integrity sha1-yobR/ogoFpsBICCOPchCS524NCw=
@@ -7128,55 +7380,29 @@ node-modules-regexp@^1.0.0:
resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40"
integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=
-node-notifier@^5.4.2:
- version "5.4.3"
- resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.4.3.tgz#cb72daf94c93904098e28b9c590fd866e464bd50"
- integrity sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==
+node-notifier@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-6.0.0.tgz#cea319e06baa16deec8ce5cd7f133c4a46b68e12"
+ integrity sha512-SVfQ/wMw+DesunOm5cKqr6yDcvUTDl/yc97ybGHMrteNEY6oekXpNpS3lZwgLlwz0FLgHoiW28ZpmBHUDg37cw==
dependencies:
growly "^1.3.0"
- is-wsl "^1.1.0"
- semver "^5.5.0"
- shellwords "^0.1.1"
- which "^1.3.0"
-
-node-pre-gyp@^0.12.0:
- version "0.12.0"
- resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149"
- integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==
- dependencies:
- detect-libc "^1.0.2"
- mkdirp "^0.5.1"
- needle "^2.2.1"
- nopt "^4.0.1"
- npm-packlist "^1.1.6"
- npmlog "^4.0.2"
- rc "^1.2.7"
- rimraf "^2.6.1"
- semver "^5.3.0"
- tar "^4"
-
-node-releases@^1.1.44:
- version "1.1.45"
- resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.45.tgz#4cf7e9175d71b1317f15ffd68ce63bce1d53e9f2"
- integrity sha512-cXvGSfhITKI8qsV116u2FTzH5EWZJfgG7d4cpqwF8I8+1tWpD6AsvvGRKq2onR0DNj1jfqsjkXZsm14JMS7Cyg==
- dependencies:
+ is-wsl "^2.1.1"
semver "^6.3.0"
+ shellwords "^0.1.1"
+ which "^1.3.1"
-nopt@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
- integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=
- dependencies:
- abbrev "1"
- osenv "^0.1.4"
+node-releases@^1.1.53:
+ version "1.1.55"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.55.tgz#8af23b7c561d8e2e6e36a46637bab84633b07cee"
+ integrity sha512-H3R3YR/8TjT5WPin/wOoHOUPHgvj8leuU/Keta/rwelEQN9pA/S2Dx8/se4pZ2LBxSd0nAGzsNzhqwa77v7F1w==
-normalize-package-data@^2.3.2:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
- integrity sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==
+normalize-package-data@^2.3.2, normalize-package-data@^2.5.0:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
+ integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
dependencies:
hosted-git-info "^2.1.4"
- is-builtin-module "^1.0.0"
+ resolve "^1.10.0"
semver "2 || 3 || 4 || 5"
validate-npm-package-license "^3.0.1"
@@ -7212,19 +7438,6 @@ normalize-url@^3.0.0:
resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559"
integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==
-npm-bundled@^1.0.1:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd"
- integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==
-
-npm-packlist@^1.1.6:
- version "1.4.4"
- resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.4.tgz#866224233850ac534b63d1a6e76050092b5d2f44"
- integrity sha512-zTLo8UcVYtDU3gdeaFu2Xu0n0EvelfHDGuqtNIn5RO7yQj4H1TqNdBc/yZjxnWA0PVB8D3Woyp0i5B43JwQ6Vw==
- dependencies:
- ignore-walk "^3.0.1"
- npm-bundled "^1.0.1"
-
npm-run-path@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
@@ -7232,7 +7445,14 @@ npm-run-path@^2.0.0:
dependencies:
path-key "^2.0.0"
-npmlog@^4.0.2, npmlog@^4.1.2:
+npm-run-path@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
+ integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
+ dependencies:
+ path-key "^3.0.0"
+
+npmlog@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
@@ -7259,10 +7479,10 @@ number-is-nan@^1.0.0:
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
-nwsapi@^2.0.7:
- version "2.0.9"
- resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.0.9.tgz#77ac0cdfdcad52b6a1151a84e73254edc33ed016"
- integrity sha512-nlWFSCTYQcHk/6A9FFnfhKc14c3aFhfdNBXgo8Qgi9QTBu/qg3Ww+Uiz9wMzXd1T8GFxPc2QIHB6Qtf2XFryFQ==
+nwsapi@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7"
+ integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==
oauth-sign@~0.9.0:
version "0.9.0"
@@ -7299,9 +7519,12 @@ object-inspect@^1.7.0:
integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==
object-is@^1.0.1, object-is@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.2.tgz#6b80eb84fe451498f65007982f035a5b445edec4"
- integrity sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6"
+ integrity sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.5"
object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1:
version "1.1.1"
@@ -7335,16 +7558,6 @@ object.entries@^1.1.0, object.entries@^1.1.1:
function-bind "^1.1.1"
has "^1.0.3"
-object.fromentries@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.1.tgz#050f077855c7af8ae6649f45c80b16ee2d31e704"
- integrity sha512-PUQv8Hbg3j2QX0IQYv3iAGCbGcu4yY4KQ92/dhA4sFSixBmSmp13UpDLs6jGK8rBtbmhNNIK99LD2k293jpiGA==
- dependencies:
- define-properties "^1.1.3"
- es-abstract "^1.15.0"
- function-bind "^1.1.1"
- has "^1.0.3"
-
object.fromentries@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9"
@@ -7355,13 +7568,13 @@ object.fromentries@^2.0.2:
function-bind "^1.1.1"
has "^1.0.3"
-object.getownpropertydescriptors@^2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16"
- integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=
+object.getownpropertydescriptors@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649"
+ integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==
dependencies:
- define-properties "^1.1.2"
- es-abstract "^1.5.1"
+ define-properties "^1.1.3"
+ es-abstract "^1.17.0-next.1"
object.pick@^1.3.0:
version "1.3.0"
@@ -7370,7 +7583,7 @@ object.pick@^1.3.0:
dependencies:
isobject "^3.0.1"
-object.values@^1.0.4, object.values@^1.1.0, object.values@^1.1.1:
+object.values@^1.1.0, object.values@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e"
integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==
@@ -7444,14 +7657,6 @@ opn@^5.5.0:
dependencies:
is-wsl "^1.1.0"
-optimist@^0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
- integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY=
- dependencies:
- minimist "~0.0.1"
- wordwrap "~0.0.2"
-
optionator@^0.8.1, optionator@^0.8.3:
version "0.8.3"
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
@@ -7490,36 +7695,31 @@ os-locale@^3.0.0, os-locale@^3.1.0:
lcid "^2.0.0"
mem "^4.0.0"
-os-tmpdir@^1.0.0, os-tmpdir@~1.0.2:
+os-tmpdir@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
-osenv@^0.1.4:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
- integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==
- dependencies:
- os-homedir "^1.0.0"
- os-tmpdir "^1.0.0"
-
p-defer@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c"
integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=
-p-each-series@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-1.0.0.tgz#930f3d12dd1f50e7434457a22cd6f04ac6ad7f71"
- integrity sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=
- dependencies:
- p-reduce "^1.0.0"
+p-each-series@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.1.0.tgz#961c8dd3f195ea96c747e636b262b800a6b1af48"
+ integrity sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ==
p-finally@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
+p-finally@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561"
+ integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==
+
p-is-promise@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e"
@@ -7532,10 +7732,10 @@ p-limit@^1.1.0:
dependencies:
p-try "^1.0.0"
-p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.1, p-limit@^2.2.2:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e"
- integrity sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==
+p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.1, p-limit@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
+ integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
dependencies:
p-try "^2.0.0"
@@ -7572,10 +7772,12 @@ p-map@^3.0.0:
dependencies:
aggregate-error "^3.0.0"
-p-reduce@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa"
- integrity sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=
+p-map@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
+ integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
+ dependencies:
+ aggregate-error "^3.0.0"
p-retry@^3.0.1:
version "3.0.1"
@@ -7600,9 +7802,9 @@ packet-reader@0.3.1:
integrity sha1-zWLmCvjX/qinBexP+ZCHHEaHHyc=
pako@~1.0.5:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732"
- integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
+ integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
parallel-transform@^1.1.0:
version "1.2.0"
@@ -7677,10 +7879,10 @@ parse-passwd@^1.0.0:
resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=
-parse5@4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608"
- integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==
+parse5@5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2"
+ integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==
parse5@^3.0.1:
version "3.0.3"
@@ -7739,6 +7941,11 @@ path-key@^2.0.0, path-key@^2.0.1:
resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
+path-key@^3.0.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
+ integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
+
path-key@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.0.tgz#99a10d870a803bdd5ee6f0470e58dfcd2f9a54d3"
@@ -7851,10 +8058,10 @@ pgpass@1.*:
dependencies:
split "^1.0.0"
-picomatch@^2.0.4:
- version "2.0.7"
- resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz#514169d8c7cd0bdbeecc8a2609e34a7163de69f6"
- integrity sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA==
+picomatch@^2.0.4, picomatch@^2.0.5:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
+ integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
pify@^2.0.0:
version "2.3.0"
@@ -7904,13 +8111,20 @@ pkg-dir@^3.0.0:
dependencies:
find-up "^3.0.0"
-pkg-dir@^4.1.0:
+pkg-dir@^4.1.0, pkg-dir@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
dependencies:
find-up "^4.0.0"
+pkg-up@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f"
+ integrity sha1-yBmscoBZpGHKscOImivjxJoATX8=
+ dependencies:
+ find-up "^2.1.0"
+
pluralize@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45"
@@ -7936,14 +8150,13 @@ posix-character-classes@^0.1.0:
integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
postcss-calc@^7.0.1:
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436"
- integrity sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ==
+ version "7.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.2.tgz#504efcd008ca0273120568b0792b16cdcde8aac1"
+ integrity sha512-rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ==
dependencies:
- css-unit-converter "^1.1.1"
- postcss "^7.0.5"
- postcss-selector-parser "^5.0.0-rc.4"
- postcss-value-parser "^3.3.1"
+ postcss "^7.0.27"
+ postcss-selector-parser "^6.0.2"
+ postcss-value-parser "^4.0.2"
postcss-colormin@^4.0.3:
version "4.0.3"
@@ -8090,9 +8303,9 @@ postcss-modules-local-by-default@^3.0.2:
postcss-value-parser "^4.0.0"
postcss-modules-scope@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.1.1.tgz#33d4fc946602eb5e9355c4165d68a10727689dba"
- integrity sha512-OXRUPecnHCg8b9xWvldG/jUpRIGPNRka0r4D4j0ESUU2/5IOnpsjfPPmDprM3Ih8CgZ8FXjWqaniK5v4rWt3oQ==
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee"
+ integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==
dependencies:
postcss "^7.0.6"
postcss-selector-parser "^6.0.0"
@@ -8225,20 +8438,11 @@ postcss-reduce-transforms@^4.0.2:
postcss-value-parser "^3.0.0"
postcss-selector-parser@^3.0.0:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865"
- integrity sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270"
+ integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==
dependencies:
- dot-prop "^4.1.1"
- indexes-of "^1.0.1"
- uniq "^1.0.1"
-
-postcss-selector-parser@^5.0.0-rc.4:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c"
- integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==
- dependencies:
- cssesc "^2.0.0"
+ dot-prop "^5.2.0"
indexes-of "^1.0.1"
uniq "^1.0.1"
@@ -8270,15 +8474,15 @@ postcss-unique-selectors@^4.0.1:
postcss "^7.0.0"
uniqs "^2.0.0"
-postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.1:
+postcss-value-parser@^3.0.0:
version "3.3.1"
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==
-postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9"
- integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==
+postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2, postcss-value-parser@^4.0.3:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb"
+ integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==
postcss@^5.0.16:
version "5.2.18"
@@ -8290,10 +8494,10 @@ postcss@^5.0.16:
source-map "^0.5.6"
supports-color "^3.2.3"
-postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.23, postcss@^7.0.26, postcss@^7.0.5, postcss@^7.0.6:
- version "7.0.26"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.26.tgz#5ed615cfcab35ba9bbb82414a4fa88ea10429587"
- integrity sha512-IY4oRjpXWYshuTDFxMVkJDtWIk2LhsTlu8bZnbEJA4+bYT16Lvpo8Qv6EvDumhYRgzjZl489pmsY3qVgJQ08nA==
+postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.23, postcss@^7.0.27, postcss@^7.0.5, postcss@^7.0.6:
+ version "7.0.29"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.29.tgz#d3a903872bd52280b83bce38cdc83ce55c06129e"
+ integrity sha512-ba0ApvR3LxGvRMMiUa9n0WR4HjzcYm7tS+ht4/2Nd0NLtHpPIH77fuB9Xh1/yJVz9O/E/95Y/dn8ygWsyffXtw==
dependencies:
chalk "^2.4.2"
source-map "^0.6.1"
@@ -8315,9 +8519,9 @@ postgres-date@~1.0.0:
integrity sha1-4tiXAu/bJY/52c7g/pG9BpdSV6g=
postgres-interval@^1.1.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.1.2.tgz#bf71ff902635f21cb241a013fc421d81d1db15a9"
- integrity sha512-fC3xNHeTskCxL1dC8KOtxXt7YeFmlbTYtn7ul8MkVERuTmf7pI4DrkAxcw3kh1fQ9uz4wQmd03a1mRiXUZChfQ==
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695"
+ integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==
dependencies:
xtend "^4.0.0"
@@ -8331,17 +8535,17 @@ prepend-http@^1.0.0:
resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=
-pretty-format@^24.9.0:
- version "24.9.0"
- resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9"
- integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==
+pretty-format@^25.4.0, pretty-format@^25.5.0:
+ version "25.5.0"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a"
+ integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==
dependencies:
- "@jest/types" "^24.9.0"
- ansi-regex "^4.0.0"
- ansi-styles "^3.2.0"
- react-is "^16.8.4"
+ "@jest/types" "^25.5.0"
+ ansi-regex "^5.0.0"
+ ansi-styles "^4.0.0"
+ react-is "^16.12.0"
-private@^0.1.6:
+private@^0.1.8:
version "0.1.8"
resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==
@@ -8381,12 +8585,12 @@ promise.prototype.finally@^3.1.2:
function-bind "^1.1.1"
prompts@^2.0.1:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.0.3.tgz#c5ccb324010b2e8f74752aadceeb57134c1d2522"
- integrity sha512-H8oWEoRZpybm6NV4to9/1limhttEo13xK62pNvn2JzY0MA03p7s0OjtmhXyon3uJmxiJJVSuUwEJFFssI3eBiQ==
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.2.tgz#480572d89ecf39566d2bd3fe2c9fccb7c4c0b068"
+ integrity sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA==
dependencies:
- kleur "^3.0.2"
- sisteransi "^1.0.0"
+ kleur "^3.0.3"
+ sisteransi "^1.0.4"
prop-types-exact@^1.2.0:
version "1.2.0"
@@ -8398,12 +8602,12 @@ prop-types-exact@^1.2.0:
reflect.ownkeys "^0.2.0"
prop-types-extra@^1.0.1:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/prop-types-extra/-/prop-types-extra-1.1.0.tgz#32609910ea2dcf190366bacd3490d5a6412a605f"
- integrity sha512-QFyuDxvMipmIVKD2TwxLVPzMnO4e5oOf1vr3tJIomL8E7d0lr6phTHd5nkPhFIzTD1idBLLEPeylL9g+rrTzRg==
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/prop-types-extra/-/prop-types-extra-1.1.1.tgz#58c3b74cbfbb95d304625975aa2f0848329a010b"
+ integrity sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==
dependencies:
react-is "^16.3.2"
- warning "^3.0.0"
+ warning "^4.0.0"
prop-types@^15.5.10, prop-types@^15.5.4, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2:
version "15.7.2"
@@ -8427,10 +8631,10 @@ prr@~1.0.1:
resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY=
-psl@^1.1.24, psl@^1.1.28:
- version "1.1.31"
- resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.31.tgz#e9aa86d0101b5b105cbe93ac6b784cd547276184"
- integrity sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==
+psl@^1.1.28:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24"
+ integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==
public-encrypt@^4.0.0:
version "4.0.3"
@@ -8474,7 +8678,7 @@ punycode@1.3.2:
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=
-punycode@^1.2.4, punycode@^1.4.1:
+punycode@^1.2.4:
version "1.4.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
@@ -8539,11 +8743,6 @@ railroad-diagrams@^1.0.0:
resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e"
integrity sha1-635iZ1SN3t+4mcG5Dlc3RVnN234=
-rails-ujs@^5.2.4:
- version "5.2.4"
- resolved "https://registry.yarnpkg.com/rails-ujs/-/rails-ujs-5.2.4.tgz#31056ccd62d868f7d044395f31d77a4440550ceb"
- integrity sha512-Mzu6bnTBKn4IuJvP7BDJRy4lzvR1zMWVDeTdPwDubXBfxpFEKqwOi5Nb6tfE2SYtTd+bb3PRETf40I94jgKw3w==
-
randexp@0.4.6:
version "0.4.6"
resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3"
@@ -8582,25 +8781,15 @@ raw-body@2.4.0:
iconv-lite "0.4.24"
unpipe "1.0.0"
-rc@^1.2.7:
- version "1.2.8"
- resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
- integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
- dependencies:
- deep-extend "^0.6.0"
- ini "~1.3.0"
- minimist "^1.2.0"
- strip-json-comments "~2.0.1"
-
-react-dom@^16.12.0:
- version "16.12.0"
- resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.12.0.tgz#0da4b714b8d13c2038c9396b54a92baea633fe11"
- integrity sha512-LMxFfAGrcS3kETtQaCkTKjMiifahaMySFDn71fZUNpPHZQEzmk/GiAeIT8JSOrHB23fnuCOMruL2a8NYlw+8Gw==
+react-dom@^16.13.1:
+ version "16.13.1"
+ resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f"
+ integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
prop-types "^15.6.2"
- scheduler "^0.18.0"
+ scheduler "^0.19.1"
react-event-listener@^0.6.0:
version "0.6.5"
@@ -8622,10 +8811,12 @@ react-hotkeys@^1.1.4:
mousetrap "^1.5.2"
prop-types "^15.6.0"
-react-immutable-proptypes@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/react-immutable-proptypes/-/react-immutable-proptypes-2.1.0.tgz#023d6f39bb15c97c071e9e60d00d136eac5fa0b4"
- integrity sha1-Aj1vObsVyXwHHp5g0A0TbqxfoLQ=
+react-immutable-proptypes@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/react-immutable-proptypes/-/react-immutable-proptypes-2.2.0.tgz#cce96d68cc3c18e89617cbf3092d08e35126af4a"
+ integrity sha512-Vf4gBsePlwdGvSZoLSBfd4HAP93HDauMY4fDjXhreg/vg6F3Fj/MXDNyTbltPC/xZKmZc+cjLu3598DdYK6sgQ==
+ dependencies:
+ invariant "^2.2.2"
react-immutable-pure-component@^1.1.1:
version "1.2.3"
@@ -8669,10 +8860,10 @@ react-intl@^2.9.0:
intl-relativeformat "^2.1.0"
invariant "^2.1.1"
-react-is@^16.12.0, react-is@^16.3.2, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.4, react-is@^16.8.6, react-is@^16.9.0:
- version "16.12.0"
- resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.12.0.tgz#2cc0fe0fba742d97fd527c42a13bec4eeb06241c"
- integrity sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q==
+react-is@^16.12.0, react-is@^16.3.2, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.6, react-is@^16.9.0:
+ version "16.13.1"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
+ integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
react-lifecycles-compat@^3.0.2, react-lifecycles-compat@^3.0.4:
version "3.0.4"
@@ -8768,10 +8959,10 @@ react-router@^4.3.1:
prop-types "^15.6.1"
warning "^4.0.1"
-react-select@^3.0.8:
- version "3.0.8"
- resolved "https://registry.yarnpkg.com/react-select/-/react-select-3.0.8.tgz#06ff764e29db843bcec439ef13e196865242e0c1"
- integrity sha512-v9LpOhckLlRmXN5A6/mGGEft4FMrfaBFTGAnuPHcUgVId7Je42kTq9y0Z+Ye5z8/j0XDT3zUqza8gaRaI1PZIg==
+react-select@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/react-select/-/react-select-3.1.0.tgz#ab098720b2e9fe275047c993f0d0caf5ded17c27"
+ integrity sha512-wBFVblBH1iuCBprtpyGtd1dGMadsG36W5/t2Aj8OE6WbByDg5jIFyT7X5gT+l0qmT5TqWhxX+VsKJvCEl2uL9g==
dependencies:
"@babel/runtime" "^7.4.4"
"@emotion/cache" "^10.0.9"
@@ -8780,7 +8971,7 @@ react-select@^3.0.8:
memoize-one "^5.0.0"
prop-types "^15.6.0"
react-input-autosize "^2.2.2"
- react-transition-group "^2.2.1"
+ react-transition-group "^4.3.0"
react-sparklines@^1.7.0:
version "1.7.0"
@@ -8820,15 +9011,15 @@ react-swipeable-views@^0.13.9:
react-swipeable-views-utils "^0.13.9"
warning "^4.0.1"
-react-test-renderer@^16.0.0-0, react-test-renderer@^16.12.0:
- version "16.12.0"
- resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.12.0.tgz#11417ffda579306d4e841a794d32140f3da1b43f"
- integrity sha512-Vj/teSqt2oayaWxkbhQ6gKis+t5JrknXfPVo+aIJ8QwYAqMPH77uptOdrlphyxl8eQI/rtkOYg86i/UWkpFu0w==
+react-test-renderer@^16.0.0-0, react-test-renderer@^16.13.1:
+ version "16.13.1"
+ resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.13.1.tgz#de25ea358d9012606de51e012d9742e7f0deabc1"
+ integrity sha512-Sn2VRyOK2YJJldOqoh8Tn/lWQ+ZiKhyZTPtaO0Q6yNj+QDbmRkVFap6pZPy3YQk8DScRDfyqm/KxKYP9gCMRiQ==
dependencies:
object-assign "^4.1.1"
prop-types "^15.6.2"
react-is "^16.8.6"
- scheduler "^0.18.0"
+ scheduler "^0.19.1"
react-textarea-autosize@^7.1.2:
version "7.1.2"
@@ -8855,10 +9046,20 @@ react-transition-group@^2.2.1:
prop-types "^15.6.2"
react-lifecycles-compat "^3.0.4"
-react@^16.12.0:
- version "16.12.0"
- resolved "https://registry.yarnpkg.com/react/-/react-16.12.0.tgz#0c0a9c6a142429e3614834d5a778e18aa78a0b83"
- integrity sha512-fglqy3k5E+81pA8s+7K0/T3DBCF0ZDOher1elBFzF7O6arXJgzyu/FW+COxFvAWXJoJN9KIZbT2LXlukwphYTA==
+react-transition-group@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.3.0.tgz#fea832e386cf8796c58b61874a3319704f5ce683"
+ integrity sha512-1qRV1ZuVSdxPlPf4O8t7inxUGpdyO5zG9IoNfJxSO0ImU2A1YWkEQvFPuIPZmMLkg5hYs7vv5mMOyfgSkvAwvw==
+ dependencies:
+ "@babel/runtime" "^7.5.5"
+ dom-helpers "^5.0.1"
+ loose-envify "^1.4.0"
+ prop-types "^15.6.2"
+
+react@^16.13.1:
+ version "16.13.1"
+ resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e"
+ integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
@@ -8872,13 +9073,14 @@ read-pkg-up@^2.0.0:
find-up "^2.0.0"
read-pkg "^2.0.0"
-read-pkg-up@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978"
- integrity sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==
+read-pkg-up@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507"
+ integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==
dependencies:
- find-up "^3.0.0"
- read-pkg "^3.0.0"
+ find-up "^4.1.0"
+ read-pkg "^5.2.0"
+ type-fest "^0.8.1"
read-pkg@^2.0.0:
version "2.0.0"
@@ -8889,19 +9091,20 @@ read-pkg@^2.0.0:
normalize-package-data "^2.3.2"
path-type "^2.0.0"
-read-pkg@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389"
- integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=
+read-pkg@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc"
+ integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==
dependencies:
- load-json-file "^4.0.0"
- normalize-package-data "^2.3.2"
- path-type "^3.0.0"
+ "@types/normalize-package-data" "^2.4.0"
+ normalize-package-data "^2.5.0"
+ parse-json "^5.0.0"
+ type-fest "^0.6.0"
"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6:
- version "2.3.6"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
- integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==
+ version "2.3.7"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
+ integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.3"
@@ -8911,10 +9114,10 @@ read-pkg@^3.0.0:
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
-readable-stream@^3.0.6:
- version "3.4.0"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc"
- integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==
+readable-stream@^3.0.6, readable-stream@^3.1.1:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
+ integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
dependencies:
inherits "^2.0.3"
string_decoder "^1.1.1"
@@ -8945,31 +9148,37 @@ readline2@^1.0.1:
is-fullwidth-code-point "^1.0.0"
mute-stream "0.0.5"
-realpath-native@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c"
- integrity sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==
+realpath-native@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-2.0.0.tgz#7377ac429b6e1fd599dc38d08ed942d0d7beb866"
+ integrity sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==
+
+redis-commands@^1.5.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.5.0.tgz#80d2e20698fe688f227127ff9e5164a7dd17e785"
+ integrity sha512-6KxamqpZ468MeQC3bkWmCB1fp56XL64D4Kf0zJSwDZbVLLm7KFkoIcHrgRvQ+sk8dnhySs7+yBg94yIkAK7aJg==
+
+redis-errors@^1.0.0, redis-errors@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad"
+ integrity sha1-62LSrbFeTq9GEMBK/hUpOEJQq60=
+
+redis-parser@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4"
+ integrity sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ=
dependencies:
- util.promisify "^1.0.0"
+ redis-errors "^1.0.0"
-redis-commands@^1.2.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/redis-commands/-/redis-commands-1.4.0.tgz#52f9cf99153efcce56a8f86af986bd04e988602f"
- integrity sha512-cu8EF+MtkwI4DLIT0x9P8qNTLFhQD4jLfxLR0cCNkeGzs87FN6879JOJwNQR/1zD7aSYNbU0hgsV9zGY71Itvw==
-
-redis-parser@^2.6.0:
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-2.6.0.tgz#52ed09dacac108f1a631c07e9b69941e7a19504b"
- integrity sha1-Uu0J2srBCPGmMcB+m2mUHnoZUEs=
-
-redis@^2.7.1:
- version "2.8.0"
- resolved "https://registry.yarnpkg.com/redis/-/redis-2.8.0.tgz#202288e3f58c49f6079d97af7a10e1303ae14b02"
- integrity sha512-M1OkonEQwtRmZv4tEWF2VgpG0JWJ8Fv1PhlgT5+B+uNq2cA3Rt1Yt/ryoR+vQNOQcIEgdCdfH0jr3bDpihAw1A==
+redis@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/redis/-/redis-3.0.2.tgz#bd47067b8a4a3e6a2e556e57f71cc82c7360150a"
+ integrity sha512-PNhLCrjU6vKVuMOyFu7oSP296mwBkcE6lrAjruBYG5LgdSqtRBoVQIylrMyVZD/lkF24RSNNatzvYag6HRBHjQ==
dependencies:
- double-ended-queue "^2.1.0-0"
- redis-commands "^1.2.0"
- redis-parser "^2.6.0"
+ denque "^1.4.1"
+ redis-commands "^1.5.0"
+ redis-errors "^1.2.0"
+ redis-parser "^3.0.0"
redux-immutable@^4.0.0:
version "4.0.0"
@@ -8994,10 +9203,10 @@ reflect.ownkeys@^0.2.0:
resolved "https://registry.yarnpkg.com/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz#749aceec7f3fdf8b63f927a04809e90c5c0b3460"
integrity sha1-dJrO7H8/34tj+SegSAnpDFwLNGA=
-regenerate-unicode-properties@^8.1.0:
- version "8.1.0"
- resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e"
- integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==
+regenerate-unicode-properties@^8.2.0:
+ version "8.2.0"
+ resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec"
+ integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==
dependencies:
regenerate "^1.4.0"
@@ -9016,17 +9225,18 @@ regenerator-runtime@^0.12.0:
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de"
integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==
-regenerator-runtime@^0.13.2:
- version "0.13.2"
- resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.2.tgz#32e59c9a6fb9b1a4aff09b4930ca2d4477343447"
- integrity sha512-S/TQAZJO+D3m9xeN1WTI8dLKBBiRgXBlTJvbWjCThHWZj9EvHK70Ff50/tYj2J/fvBY6JtFVwRuazHN2E7M9BA==
+regenerator-runtime@^0.13.4:
+ version "0.13.5"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697"
+ integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==
-regenerator-transform@^0.14.0:
- version "0.14.0"
- resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.0.tgz#2ca9aaf7a2c239dd32e4761218425b8c7a86ecaf"
- integrity sha512-rtOelq4Cawlbmq9xuMR5gdFmv7ku/sFoB7sRiywx7aq53bc52b4j6zvH7Te1Vt/X2YveDKnCGUbioieU7FEL3w==
+regenerator-transform@^0.14.2:
+ version "0.14.4"
+ resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7"
+ integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw==
dependencies:
- private "^0.1.6"
+ "@babel/runtime" "^7.8.4"
+ private "^0.1.8"
regex-not@^1.0.0, regex-not@^1.0.2:
version "1.0.2"
@@ -9036,39 +9246,40 @@ regex-not@^1.0.0, regex-not@^1.0.2:
extend-shallow "^3.0.2"
safe-regex "^1.1.0"
-regexp.prototype.flags@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c"
- integrity sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==
+regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75"
+ integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==
dependencies:
- define-properties "^1.1.2"
+ define-properties "^1.1.3"
+ es-abstract "^1.17.0-next.1"
regexpp@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==
-regexpu-core@^4.6.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6"
- integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==
+regexpu-core@^4.6.0, regexpu-core@^4.7.0:
+ version "4.7.0"
+ resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938"
+ integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==
dependencies:
regenerate "^1.4.0"
- regenerate-unicode-properties "^8.1.0"
- regjsgen "^0.5.0"
- regjsparser "^0.6.0"
+ regenerate-unicode-properties "^8.2.0"
+ regjsgen "^0.5.1"
+ regjsparser "^0.6.4"
unicode-match-property-ecmascript "^1.0.4"
- unicode-match-property-value-ecmascript "^1.1.0"
+ unicode-match-property-value-ecmascript "^1.2.0"
-regjsgen@^0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd"
- integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==
+regjsgen@^0.5.1:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c"
+ integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==
-regjsparser@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c"
- integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==
+regjsparser@^0.6.4:
+ version "0.6.4"
+ resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272"
+ integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==
dependencies:
jsesc "~0.5.0"
@@ -9092,26 +9303,26 @@ repeat-string@^1.6.1:
resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
-request-promise-core@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.1.tgz#3eee00b2c5aa83239cfb04c5700da36f81cd08b6"
- integrity sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=
+request-promise-core@1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9"
+ integrity sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==
dependencies:
- lodash "^4.13.1"
+ lodash "^4.17.15"
-request-promise-native@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.5.tgz#5281770f68e0c9719e5163fd3fab482215f4fda5"
- integrity sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU=
+request-promise-native@^1.0.7:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.8.tgz#a455b960b826e44e2bf8999af64dff2bfe58cb36"
+ integrity sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==
dependencies:
- request-promise-core "1.1.1"
- stealthy-require "^1.1.0"
- tough-cookie ">=2.3.3"
+ request-promise-core "1.1.3"
+ stealthy-require "^1.1.1"
+ tough-cookie "^2.3.3"
-request@^2.87.0:
- version "2.88.0"
- resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef"
- integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==
+request@^2.88.0:
+ version "2.88.2"
+ resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
+ integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
dependencies:
aws-sign2 "~0.7.0"
aws4 "^1.8.0"
@@ -9120,7 +9331,7 @@ request@^2.87.0:
extend "~3.0.2"
forever-agent "~0.6.1"
form-data "~2.3.2"
- har-validator "~5.1.0"
+ har-validator "~5.1.3"
http-signature "~1.2.0"
is-typedarray "~1.0.0"
isstream "~0.1.2"
@@ -9130,7 +9341,7 @@ request@^2.87.0:
performance-now "^2.1.0"
qs "~6.5.2"
safe-buffer "^5.1.2"
- tough-cookie "~2.4.3"
+ tough-cookie "~2.5.0"
tunnel-agent "^0.6.0"
uuid "^3.3.2"
@@ -9189,6 +9400,13 @@ resolve-cwd@^2.0.0:
dependencies:
resolve-from "^3.0.0"
+resolve-cwd@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
+ integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==
+ dependencies:
+ resolve-from "^5.0.0"
+
resolve-dir@^1.0.0, resolve-dir@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43"
@@ -9212,6 +9430,11 @@ resolve-from@^4.0.0:
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
+resolve-from@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
+ integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
+
resolve-pathname@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-2.2.0.tgz#7e9ae21ed815fd63ab189adeee64dc831eefa879"
@@ -9232,10 +9455,10 @@ resolve@1.1.7:
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=
-resolve@^1.12.0, resolve@^1.13.1, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1:
- version "1.13.1"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.13.1.tgz#be0aa4c06acd53083505abb35f4d66932ab35d16"
- integrity sha512-CxqObCX8K8YtAhOBRg+lrcdn+LK+WYOS8tSjqSFbjtrI5PnS63QPhZl4+yKfrU9tdsbMu9Anr/amegT87M9Z6w==
+resolve@^1.10.0, resolve@^1.12.0, resolve@^1.15.1, resolve@^1.17.0, resolve@^1.3.2, resolve@^1.5.0, resolve@^1.8.1:
+ version "1.17.0"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444"
+ integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==
dependencies:
path-parse "^1.0.6"
@@ -9282,14 +9505,14 @@ rimraf@2.6.3, rimraf@~2.6.2:
dependencies:
glob "^7.1.3"
-rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@^2.7.1:
+rimraf@^2.5.4, rimraf@^2.6.3, rimraf@^2.7.1:
version "2.7.1"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
dependencies:
glob "^7.1.3"
-rimraf@^3.0.2:
+rimraf@^3.0.0, rimraf@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
@@ -9312,10 +9535,10 @@ rst-selector-parser@^2.2.3:
lodash.flattendeep "^4.4.0"
nearley "^2.7.10"
-rsvp@^3.3.3:
- version "3.6.2"
- resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a"
- integrity sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==
+rsvp@^4.8.4:
+ version "4.8.5"
+ resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734"
+ integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==
run-async@^0.1.0:
version "0.1.0"
@@ -9344,9 +9567,9 @@ rx-lite@^3.1.2:
integrity sha1-Gc5QLKVyZl87ZHsQk5+X/RYV8QI=
rxjs@^6.4.0:
- version "6.5.2"
- resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.2.tgz#2e35ce815cd46d84d02a209fb4e5921e051dbec7"
- integrity sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==
+ version "6.5.5"
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec"
+ integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==
dependencies:
tslib "^1.9.0"
@@ -9355,11 +9578,16 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
-safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
+safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@^5.1.1:
version "5.2.0"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
+safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+
safe-regex@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
@@ -9373,13 +9601,13 @@ safe-regex@^1.1.0:
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
sane@^4.0.3:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/sane/-/sane-4.0.3.tgz#e878c3f19e25cc57fbb734602f48f8a97818b181"
- integrity sha512-hSLkC+cPHiBQs7LSyXkotC3UUtyn8C4FMn50TNaacRyvBlI+3ebcxMpqckmTdtXVtel87YS7GXN3UIOj7NiGVQ==
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded"
+ integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==
dependencies:
"@cnakazawa/watch" "^1.0.3"
anymatch "^2.0.0"
- capture-exit "^1.2.0"
+ capture-exit "^2.0.0"
exec-sh "^0.3.2"
execa "^1.0.0"
fb-watchman "^2.0.0"
@@ -9418,22 +9646,29 @@ sass-loader@^8.0.2:
schema-utils "^2.6.1"
semver "^6.3.0"
-sass@^1.25.0:
- version "1.25.0"
- resolved "https://registry.yarnpkg.com/sass/-/sass-1.25.0.tgz#f8bd7dfbb39d6b0305e27704a8ebe637820693f3"
- integrity sha512-uQMjye0Y70SEDGO56n0j91tauqS9E1BmpKHtiYNQScXDHeaE9uHwNEqQNFf4Bes/3DHMNinB6u79JsG10XWNyw==
+sass@^1.26.3:
+ version "1.26.3"
+ resolved "https://registry.yarnpkg.com/sass/-/sass-1.26.3.tgz#412df54486143b76b5a65cdf7569e86f44659f46"
+ integrity sha512-5NMHI1+YFYw4sN3yfKjpLuV9B5l7MqQ6FlkTcC4FT+oHbBRUZoSjHrrt/mE0nFXJyY2kQtU9ou9HxvFVjLFuuw==
dependencies:
chokidar ">=2.0.0 <4.0.0"
-sax@^1.2.4, sax@~1.2.4:
+sax@~1.2.4:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
-scheduler@^0.18.0:
- version "0.18.0"
- resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.18.0.tgz#5901ad6659bc1d8f3fdaf36eb7a67b0d6746b1c4"
- integrity sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ==
+saxes@^3.1.9:
+ version "3.1.11"
+ resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b"
+ integrity sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==
+ dependencies:
+ xmlchars "^2.1.1"
+
+scheduler@^0.19.1:
+ version "0.19.1"
+ resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196"
+ integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==
dependencies:
loose-envify "^1.1.0"
object-assign "^4.1.1"
@@ -9447,12 +9682,12 @@ schema-utils@^1.0.0:
ajv-errors "^1.0.0"
ajv-keywords "^3.1.0"
-schema-utils@^2.5.0, schema-utils@^2.6.0, schema-utils@^2.6.1, schema-utils@^2.6.4:
- version "2.6.4"
- resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.4.tgz#a27efbf6e4e78689d91872ee3ccfa57d7bdd0f53"
- integrity sha512-VNjcaUxVnEeun6B2fiiUDjXXBtD4ZSH7pdbfIu1pOFwgptDPLMo/z9jr4sUfsjFVPqDCEin/F7IYlq7/E6yDbQ==
+schema-utils@^2.2.0, schema-utils@^2.5.0, schema-utils@^2.6.0, schema-utils@^2.6.1, schema-utils@^2.6.5, schema-utils@^2.6.6:
+ version "2.6.6"
+ resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.6.tgz#299fe6bd4a3365dc23d99fd446caff8f1d6c330c"
+ integrity sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA==
dependencies:
- ajv "^6.10.2"
+ ajv "^6.12.0"
ajv-keywords "^3.4.1"
scroll-behavior@^0.9.1:
@@ -9475,7 +9710,7 @@ selfsigned@^1.10.7:
dependencies:
node-forge "0.9.0"
-"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1:
+"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1:
version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
@@ -9490,7 +9725,7 @@ semver@7.0.0:
resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
-semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0:
+semver@^6.0.0, semver@^6.1.2, semver@^6.3.0:
version "6.3.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
@@ -9519,6 +9754,11 @@ serialize-javascript@^2.1.2:
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61"
integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==
+serialize-javascript@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-3.0.0.tgz#492e489a2d77b7b804ad391a5f5d97870952548e"
+ integrity sha512-skZcHYw2vEX4bw90nAr2iTTsz6x2SrHEnfxgKYmZlvJYBEZrvbKtobJWlQ20zczKb3bsHHXXTYt48zBA7ni9cw==
+
serve-index@^1.9.1:
version "1.9.1"
resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239"
@@ -9626,10 +9866,18 @@ shellwords@^0.1.1:
resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==
+side-channel@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.2.tgz#df5d1abadb4e4bf4af1cd8852bf132d2f7876947"
+ integrity sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA==
+ dependencies:
+ es-abstract "^1.17.0-next.1"
+ object-inspect "^1.7.0"
+
signal-exit@^3.0.0, signal-exit@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
- integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
+ integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
simple-swizzle@^0.2.2:
version "0.2.2"
@@ -9638,20 +9886,20 @@ simple-swizzle@^0.2.2:
dependencies:
is-arrayish "^0.3.1"
-sisteransi@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.0.tgz#77d9622ff909080f1c19e5f4a1df0c1b0a27b88c"
- integrity sha512-N+z4pHB4AmUv0SjveWRd6q1Nj5w62m5jodv+GD8lvmbY/83T/rpbJGZOnK5T149OldDj4Db07BSv9xY4K6NTPQ==
+sisteransi@^1.0.4:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
+ integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
slash@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=
-slash@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
- integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==
+slash@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
+ integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
slice-ansi@0.0.4:
version "0.0.4"
@@ -9730,28 +9978,20 @@ source-list-map@^2.0.0:
integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
source-map-resolve@^0.5.0:
- version "0.5.2"
- resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259"
- integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==
+ version "0.5.3"
+ resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
+ integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==
dependencies:
- atob "^2.1.1"
+ atob "^2.1.2"
decode-uri-component "^0.2.0"
resolve-url "^0.2.1"
source-map-url "^0.4.0"
urix "^0.1.0"
-source-map-support@^0.5.6:
- version "0.5.9"
- resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f"
- integrity sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==
- dependencies:
- buffer-from "^1.0.0"
- source-map "^0.6.0"
-
-source-map-support@~0.5.12:
- version "0.5.13"
- resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932"
- integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==
+source-map-support@^0.5.6, source-map-support@~0.5.12:
+ version "0.5.19"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
+ integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
dependencies:
buffer-from "^1.0.0"
source-map "^0.6.0"
@@ -9766,7 +10006,7 @@ source-map@0.5.6:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
integrity sha1-dc449SvwczxafwwRjYEzSiu19BI=
-source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7:
+source-map@^0.5.0, source-map@^0.5.6, source-map@^0.5.7:
version "0.5.7"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
@@ -9776,6 +10016,11 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+source-map@^0.7.3:
+ version "0.7.3"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
+ integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
+
spdx-correct@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4"
@@ -9785,9 +10030,9 @@ spdx-correct@^3.0.0:
spdx-license-ids "^3.0.0"
spdx-exceptions@^2.1.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977"
- integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d"
+ integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==
spdx-expression-parse@^3.0.0:
version "3.0.0"
@@ -9798,9 +10043,9 @@ spdx-expression-parse@^3.0.0:
spdx-license-ids "^3.0.0"
spdx-license-ids@^3.0.0:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.3.tgz#81c0ce8f21474756148bbb5f3bfc0f36bf15d76e"
- integrity sha512-uBIcIl3Ih6Phe3XHK1NqboJLdGfwr1UN3k6wSD1dZpmPsIkb8AGNbZYJ1fOBk834+Gxy8rpfDxrS6XLEMZMY2g==
+ version "3.0.5"
+ resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654"
+ integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==
spdy-transport@^3.0.0:
version "3.0.0"
@@ -9815,9 +10060,9 @@ spdy-transport@^3.0.0:
wbuf "^1.7.3"
spdy@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.1.tgz#6f12ed1c5db7ea4f24ebb8b89ba58c87c08257f2"
- integrity sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA==
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b"
+ integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==
dependencies:
debug "^4.1.0"
handle-thing "^2.0.0"
@@ -9845,9 +10090,9 @@ sprintf-js@~1.0.2:
integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
sshpk@^1.7.0:
- version "1.16.0"
- resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.0.tgz#1d4963a2fbffe58050aa9084ca20be81741c07de"
- integrity sha512-Zhev35/y7hRMcID/upReIvRse+I9SVhyVre/KTJSJQWMz3C3+G+HpO7m1wK/yckEtujKZ7dS4hkVxAnmHaIGVQ==
+ version "1.16.1"
+ resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877"
+ integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==
dependencies:
asn1 "~0.2.3"
assert-plus "^1.0.0"
@@ -9874,7 +10119,14 @@ ssri@^7.0.0:
figgy-pudding "^3.5.1"
minipass "^3.1.1"
-stable@~0.1.6:
+ssri@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz#79ca74e21f8ceaeddfcb4b90143c458b8d988808"
+ integrity sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==
+ dependencies:
+ minipass "^3.1.1"
+
+stable@^0.1.8:
version "0.1.8"
resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
@@ -9926,7 +10178,7 @@ static-extend@^0.1.1:
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
-stealthy-require@^1.1.0:
+stealthy-require@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b"
integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=
@@ -9959,22 +10211,22 @@ stream-http@^2.7.2:
xtend "^4.0.0"
stream-shift@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952"
- integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"
+ integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==
strict-uri-encode@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=
-string-length@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed"
- integrity sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=
+string-length@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/string-length/-/string-length-3.1.0.tgz#107ef8c23456e187a8abd4a61162ff4ac6e25837"
+ integrity sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA==
dependencies:
astral-regex "^1.0.0"
- strip-ansi "^4.0.0"
+ strip-ansi "^5.2.0"
string-width@^1.0.1:
version "1.0.2"
@@ -10011,6 +10263,18 @@ string-width@^4.1.0, string-width@^4.2.0:
is-fullwidth-code-point "^3.0.0"
strip-ansi "^6.0.0"
+string.prototype.matchall@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz#48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e"
+ integrity sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.0"
+ has-symbols "^1.0.1"
+ internal-slot "^1.0.2"
+ regexp.prototype.flags "^1.3.0"
+ side-channel "^1.0.2"
+
string.prototype.trim@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.1.tgz#141233dff32c82bfad80684d7e5f0869ee0fb782"
@@ -10020,21 +10284,39 @@ string.prototype.trim@^1.2.1:
es-abstract "^1.17.0-next.1"
function-bind "^1.1.1"
-string.prototype.trimleft@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74"
- integrity sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==
+string.prototype.trimend@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913"
+ integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==
dependencies:
define-properties "^1.1.3"
- function-bind "^1.1.1"
+ es-abstract "^1.17.5"
+
+string.prototype.trimleft@^2.1.1:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc"
+ integrity sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.5"
+ string.prototype.trimstart "^1.0.0"
string.prototype.trimright@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9"
- integrity sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3"
+ integrity sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==
dependencies:
define-properties "^1.1.3"
- function-bind "^1.1.1"
+ es-abstract "^1.17.5"
+ string.prototype.trimend "^1.0.0"
+
+string.prototype.trimstart@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54"
+ integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.17.5"
string_decoder@^1.0.0, string_decoder@^1.1.1:
version "1.3.0"
@@ -10050,12 +10332,12 @@ string_decoder@~1.1.1:
dependencies:
safe-buffer "~5.1.0"
-stringz@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/stringz/-/stringz-2.0.0.tgz#0a092bc64ed9b42eff2936d0401d2398393d54e9"
- integrity sha512-pRWc5RGpedKEDvQ/ukYs8kS8tKj+cKu5ayOoyOvsavbpiLBcm1dGX6p1o5IagaN11cbfN8tKGpgQ4fHdEq5LBA==
+stringz@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/stringz/-/stringz-2.1.0.tgz#5896b4713eac31157556040fb90258fb02c1630c"
+ integrity sha512-KlywLT+MZ+v0IRepfMxRtnSvDCMc3nR1qqCs3m/qIbSOWkNZYT8XHQA31rS3TnKp0c5xjZu3M4GY/2aRKSi/6A==
dependencies:
- unicode-astral-regex "^1.0.1"
+ char-regex "^1.0.2"
strip-ansi@^3.0.0, strip-ansi@^3.0.1:
version "3.0.1"
@@ -10090,11 +10372,21 @@ strip-bom@^3.0.0:
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
+strip-bom@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878"
+ integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==
+
strip-eof@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
+strip-final-newline@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
+ integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
+
strip-json-comments@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7"
@@ -10105,15 +10397,10 @@ strip-json-comments@~1.0.1:
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91"
integrity sha1-HhX7ysl9Pumb8tc7TGVrCCu6+5E=
-strip-json-comments@~2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
- integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
-
stylehacks@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.1.tgz#3186595d047ab0df813d213e51c8b94e0b9010f2"
- integrity sha512-TK5zEPeD9NyC1uPIdjikzsgWxdQQN/ry1X3d1iOz1UkYDCmcr928gWD1KHgyC27F50UnE0xCTrBOO1l6KR8M4w==
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5"
+ integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==
dependencies:
browserslist "^4.0.0"
postcss "^7.0.0"
@@ -10124,7 +10411,7 @@ substring-trie@^1.0.2:
resolved "https://registry.yarnpkg.com/substring-trie/-/substring-trie-1.0.2.tgz#7b42592391628b4f2cb17365c6cce4257c7b7af5"
integrity sha1-e0JZI5Fii08ssXNlxszkJXx7evU=
-supports-color@6.1.0, supports-color@^6.0.0, supports-color@^6.1.0:
+supports-color@6.1.0, supports-color@^6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3"
integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==
@@ -10150,30 +10437,37 @@ supports-color@^5.3.0:
dependencies:
has-flag "^3.0.0"
-supports-color@^7.0.0:
+supports-color@^7.0.0, supports-color@^7.1.0:
version "7.1.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1"
integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==
dependencies:
has-flag "^4.0.0"
-svgo@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.1.1.tgz#12384b03335bcecd85cfa5f4e3375fed671cb985"
- integrity sha512-GBkJbnTuFpM4jFbiERHDWhZc/S/kpHToqmZag3aEBjPYK44JAN2QBjvrGIxLOoCyMZjuFQIfTO2eJd8uwLY/9g==
+supports-hyperlinks@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47"
+ integrity sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==
dependencies:
- coa "~2.0.1"
- colors "~1.1.2"
+ has-flag "^4.0.0"
+ supports-color "^7.0.0"
+
+svgo@^1.0.0:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167"
+ integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==
+ dependencies:
+ chalk "^2.4.1"
+ coa "^2.0.2"
css-select "^2.0.0"
- css-select-base-adapter "~0.1.0"
- css-tree "1.0.0-alpha.28"
- css-url-regex "^1.1.0"
- csso "^3.5.0"
- js-yaml "^3.12.0"
+ css-select-base-adapter "^0.1.1"
+ css-tree "1.0.0-alpha.37"
+ csso "^4.0.2"
+ js-yaml "^3.13.1"
mkdirp "~0.5.1"
- object.values "^1.0.4"
+ object.values "^1.1.0"
sax "~1.2.4"
- stable "~0.1.6"
+ stable "^0.1.8"
unquote "~1.1.1"
util.promisify "~1.0.0"
@@ -10183,9 +10477,9 @@ symbol-observable@^1.2.0:
integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==
symbol-tree@^3.2.2:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6"
- integrity sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=
+ version "3.2.4"
+ resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
+ integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
table@^3.7.8:
version "3.8.3"
@@ -10214,24 +10508,31 @@ tapable@^1.0.0, tapable@^1.1.3:
resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==
-tar@^4:
- version "4.4.13"
- resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525"
- integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==
+tar@^6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.2.tgz#5df17813468a6264ff14f766886c622b84ae2f39"
+ integrity sha512-Glo3jkRtPcvpDlAs/0+hozav78yoXKFr+c4wgw62NNMO3oo4AaJdCo21Uu7lcwr55h39W2XD1LMERc64wtbItg==
dependencies:
- chownr "^1.1.1"
- fs-minipass "^1.2.5"
- minipass "^2.8.6"
- minizlib "^1.2.1"
- mkdirp "^0.5.0"
- safe-buffer "^5.1.2"
- yallist "^3.0.3"
+ chownr "^2.0.0"
+ fs-minipass "^2.0.0"
+ minipass "^3.0.0"
+ minizlib "^2.1.0"
+ mkdirp "^1.0.3"
+ yallist "^4.0.0"
tcomb@^2.5.0:
version "2.7.0"
resolved "https://registry.yarnpkg.com/tcomb/-/tcomb-2.7.0.tgz#10d62958041669a5d53567b9a4ee8cde22b1c2b0"
integrity sha1-ENYpWAQWaaXVNWe5pO6M3iKxwrA=
+terminal-link@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994"
+ integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==
+ dependencies:
+ ansi-escapes "^4.2.1"
+ supports-hyperlinks "^2.0.0"
+
terser-webpack-plugin@^1.4.3:
version "1.4.3"
resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c"
@@ -10247,25 +10548,25 @@ terser-webpack-plugin@^1.4.3:
webpack-sources "^1.4.0"
worker-farm "^1.7.0"
-terser-webpack-plugin@^2.3.5:
- version "2.3.5"
- resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.3.5.tgz#5ad971acce5c517440ba873ea4f09687de2f4a81"
- integrity sha512-WlWksUoq+E4+JlJ+h+U+QUzXpcsMSSNXkDy9lBVkSqDn1w23Gg29L/ary9GeJVYCGiNJJX7LnVc4bwL1N3/g1w==
+terser-webpack-plugin@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-3.0.1.tgz#31928c9330a582fb5ec6f90805337289b85cb8fe"
+ integrity sha512-eFDtq8qPUEa9hXcUzTwKXTnugIVtlqc1Z/ZVhG8LmRT3lgRY13+pQTnFLY2N7ATB6TKCHuW/IGjoAnZz9wOIqw==
dependencies:
- cacache "^13.0.1"
- find-cache-dir "^3.2.0"
- jest-worker "^25.1.0"
- p-limit "^2.2.2"
- schema-utils "^2.6.4"
- serialize-javascript "^2.1.2"
+ cacache "^15.0.3"
+ find-cache-dir "^3.3.1"
+ jest-worker "^26.0.0"
+ p-limit "^2.3.0"
+ schema-utils "^2.6.6"
+ serialize-javascript "^3.0.0"
source-map "^0.6.1"
- terser "^4.4.3"
+ terser "^4.6.13"
webpack-sources "^1.4.3"
-terser@^4.1.2, terser@^4.4.3:
- version "4.4.3"
- resolved "https://registry.yarnpkg.com/terser/-/terser-4.4.3.tgz#401abc52b88869cf904412503b1eb7da093ae2f0"
- integrity sha512-0ikKraVtRDKGzHrzkCv5rUNDzqlhmhowOBqC0XqUHFpW+vJ45+20/IFBcebwKfiS2Z9fJin6Eo+F1zLZsxi8RA==
+terser@^4.1.2, terser@^4.6.13:
+ version "4.6.13"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.13.tgz#e879a7364a5e0db52ba4891ecde007422c56a916"
+ integrity sha512-wMvqukYgVpQlymbnNbabVZbtM6PN63AzqexpwJL8tbh/mRT9LE5o+ruVduAGL7D6Fpjl+Q+06U5I9Ul82odAhw==
dependencies:
commander "^2.20.0"
source-map "~0.6.1"
@@ -10301,25 +10602,24 @@ tesseract.js@^2.0.0-alpha.16:
tesseract.js-core "^2.0.0-beta.12"
tesseract.js-utils "^1.0.0-beta.8"
-test-exclude@^5.0.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.1.0.tgz#6ba6b25179d2d38724824661323b73e03c0c1de1"
- integrity sha512-gwf0S2fFsANC55fSeSqpb8BYk6w3FDvwZxfNjeF6FRgvFa43r+7wRiA/Q0IxoRU37wB/LE8IQ4221BsNucTaCA==
+test-exclude@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
+ integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==
dependencies:
- arrify "^1.0.1"
+ "@istanbuljs/schema" "^0.1.2"
+ glob "^7.1.4"
minimatch "^3.0.4"
- read-pkg-up "^4.0.0"
- require-main-filename "^1.0.1"
text-table@^0.2.0, text-table@~0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
-throat@^4.0.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a"
- integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=
+throat@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b"
+ integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==
throng@^4.0.0:
version "4.0.0"
@@ -10342,9 +10642,9 @@ through@2, through@^2.3.6:
integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
thunky@^1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.3.tgz#f5df732453407b09191dae73e2a8cc73f381a826"
- integrity sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow==
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d"
+ integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==
timers-browserify@^2.0.4:
version "2.0.11"
@@ -10359,9 +10659,9 @@ timsort@^0.3.0:
integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
tiny-invariant@^1.0.2:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.0.6.tgz#b3f9b38835e36a41c843a3b0907a5a7b3755de73"
- integrity sha512-FOyLWWVjG+aC0UqG76V53yAWdXfH8bO6FNmyZOuUrzDzK8DI3/JRY25UD7+g49JWM1LXwymsKERB+DzI0dTEQA==
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875"
+ integrity sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==
tiny-queue@^0.2.1:
version "0.2.1"
@@ -10432,7 +10732,7 @@ toidentifier@1.0.0:
resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
-tough-cookie@>=2.3.3, tough-cookie@^2.3.4:
+tough-cookie@^2.3.3, tough-cookie@~2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
@@ -10440,13 +10740,14 @@ tough-cookie@>=2.3.3, tough-cookie@^2.3.4:
psl "^1.1.28"
punycode "^2.1.1"
-tough-cookie@~2.4.3:
- version "2.4.3"
- resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781"
- integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==
+tough-cookie@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2"
+ integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==
dependencies:
- psl "^1.1.24"
- punycode "^1.4.1"
+ ip-regex "^2.1.0"
+ psl "^1.1.28"
+ punycode "^2.1.1"
tr46@^1.0.1:
version "1.0.1"
@@ -10461,9 +10762,9 @@ tryer@^1.0.1:
integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==
tslib@^1.9.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
- integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==
+ version "1.11.2"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.2.tgz#9c79d83272c9a7aaf166f73915c9667ecdde3cc9"
+ integrity sha512-tTSkux6IGPnUGUd1XAZHcpu85MOkIl5zX49pO+jfsie3eP0B6pyhOlLXm3cAC6T7s+euSDDUUV+Acop5WmtkVg==
tty-browserify@0.0.0:
version "0.0.0"
@@ -10489,6 +10790,16 @@ type-check@~0.3.2:
dependencies:
prelude-ls "~1.1.2"
+type-detect@4.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
+ integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
+
+type-fest@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"
+ integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==
+
type-fest@^0.8.1:
version "0.8.1"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
@@ -10503,33 +10814,27 @@ type-is@~1.6.17, type-is@~1.6.18:
mime-types "~2.1.24"
type@^1.0.1:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/type/-/type-1.0.3.tgz#16f5d39f27a2d28d86e48f8981859e9d3296c179"
- integrity sha512-51IMtNfVcee8+9GJvj0spSuFcZHe9vSib6Xtgsny1Km9ugyz2mbS08I3rsUIRYgJohFRFU1160sgRodYz378Hg==
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0"
+ integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==
type@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3"
integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==
+typedarray-to-buffer@^3.1.5:
+ version "3.1.5"
+ resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
+ integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==
+ dependencies:
+ is-typedarray "^1.0.0"
+
typedarray@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
-uglify-js@^3.1.4:
- version "3.7.2"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.7.2.tgz#cb1a601e67536e9ed094a92dd1e333459643d3f9"
- integrity sha512-uhRwZcANNWVLrxLfNFEdltoPNhECUR3lc+UdJoG9CBpMcSnKyWA94tc3eAujB1GcMY5Uwq8ZMp4qWpxWYDQmaA==
- dependencies:
- commander "~2.20.3"
- source-map "~0.6.1"
-
-unicode-astral-regex@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/unicode-astral-regex/-/unicode-astral-regex-1.0.1.tgz#2cab8529480646f9614ddbc7b62158ad05123feb"
- integrity sha512-UP6cmDeiWi8bMDmkyXLRsDuVPTvPjh8Wsz+pHu1VkGgTBl4pUceYAdHXY0cdc6Q3+Z2q7QMzi/0E7L/S/yOvFw==
-
unicode-canonical-property-names-ecmascript@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
@@ -10543,15 +10848,15 @@ unicode-match-property-ecmascript@^1.0.4:
unicode-canonical-property-names-ecmascript "^1.0.4"
unicode-property-aliases-ecmascript "^1.0.4"
-unicode-match-property-value-ecmascript@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277"
- integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==
+unicode-match-property-value-ecmascript@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531"
+ integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==
unicode-property-aliases-ecmascript@^1.0.4:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57"
- integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4"
+ integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==
union-value@^1.0.0:
version "1.0.1"
@@ -10660,13 +10965,15 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1:
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
-util.promisify@^1.0.0, util.promisify@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030"
- integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==
+util.promisify@~1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee"
+ integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==
dependencies:
- define-properties "^1.1.2"
- object.getownpropertydescriptors "^2.0.3"
+ define-properties "^1.1.3"
+ es-abstract "^1.17.2"
+ has-symbols "^1.0.1"
+ object.getownpropertydescriptors "^2.1.0"
util@0.10.3:
version "0.10.3"
@@ -10694,16 +11001,30 @@ utils-merge@1.0.1:
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
-uuid@^3.0.1, uuid@^3.3.2, uuid@^3.4.0:
+uuid@^3.0.1, uuid@^3.3.2:
version "3.4.0"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
+uuid@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.0.0.tgz#bc6ccf91b5ff0ac07bbcdbf1c7c4e150db4dbb6c"
+ integrity sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==
+
v8-compile-cache@2.0.3, v8-compile-cache@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe"
integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==
+v8-to-istanbul@^4.1.3:
+ version "4.1.3"
+ resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-4.1.3.tgz#22fe35709a64955f49a08a7c7c959f6520ad6f20"
+ integrity sha512-sAjOC+Kki6aJVbUOXJbcR0MnbfjvBzwKZazEJymA2IX49uoOdEdk+4fBq5cXgYgiyKtAyrrJNtBZdOeDIF+Fng==
+ dependencies:
+ "@types/istanbul-lib-coverage" "^2.0.1"
+ convert-source-map "^1.6.0"
+ source-map "^0.7.3"
+
validate-npm-package-license@^3.0.1:
version "3.0.4"
resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
@@ -10728,9 +11049,9 @@ vary@~1.1.2:
integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
vendors@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.2.tgz#7fcb5eef9f5623b156bcea89ec37d63676f21801"
- integrity sha512-w/hry/368nO21AN9QljsaIhb9ZiZtZARoVH5f3CsFbawdLdayCgKRPup7CggujvySMxx0I91NOyxdVENohprLQ==
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e"
+ integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==
verror@1.10.0:
version "1.10.0"
@@ -10747,11 +11068,20 @@ vm-browserify@^1.0.1:
integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==
w3c-hr-time@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045"
- integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd"
+ integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==
dependencies:
- browser-process-hrtime "^0.1.2"
+ browser-process-hrtime "^1.0.0"
+
+w3c-xmlserializer@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794"
+ integrity sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==
+ dependencies:
+ domexception "^1.0.1"
+ webidl-conversions "^4.0.2"
+ xml-name-validator "^3.0.0"
walker@^1.0.7, walker@~1.0.5:
version "1.0.7"
@@ -10767,26 +11097,26 @@ warning@^3.0.0:
dependencies:
loose-envify "^1.0.0"
-warning@^4.0.1:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.2.tgz#aa6876480872116fa3e11d434b0d0d8d91e44607"
- integrity sha512-wbTp09q/9C+jJn4KKJfJfoS6VleK/Dti0yqWSm6KMvJ4MRCXFQNapHuJXutJIrWV0Cf4AhTdeIe4qdKHR1+Hug==
+warning@^4.0.0, warning@^4.0.1:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3"
+ integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==
dependencies:
loose-envify "^1.0.0"
-watchpack@^1.6.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00"
- integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==
+watchpack@^1.6.1:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.1.tgz#280da0a8718592174010c078c7585a74cd8cd0e2"
+ integrity sha512-+IF9hfUFOrYOOaKyfaI7h7dquUIOgyEMoQMLA7OP5FxegKA2+XdXThAZ9TU2kucfhDH7rfMHs1oPYziVGWRnZA==
dependencies:
- chokidar "^2.0.2"
+ chokidar "^2.1.8"
graceful-fs "^4.1.2"
neo-async "^2.5.0"
-wavesurfer.js@^3.3.1:
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/wavesurfer.js/-/wavesurfer.js-3.3.1.tgz#af6e4fb260c7d4fe1b14e7eb51df2dea802ad5c6"
- integrity sha512-5w+Daa4EIoFcErXX4hZSkNdfdnCSTiaoTJMF5r7O7O6Kiv+oCrIlLwA73Ms9ULs+IZqOM9XhC33sfINgYdC4rw==
+wavesurfer.js@^3.3.3:
+ version "3.3.3"
+ resolved "https://registry.yarnpkg.com/wavesurfer.js/-/wavesurfer.js-3.3.3.tgz#9b16a62335c6bd13a3d55deb895a336d027ccb51"
+ integrity sha512-meko20S9in+V5xBLSVV/9uYVBSbx5AsJNkAslZ+a5yYIeFGYwcCo4Yd1sUpSGaiNnyflzrJwC7x7TdJFYrdT8w==
wbuf@^1.1.0, wbuf@^1.7.3:
version "1.7.3"
@@ -10813,13 +11143,13 @@ webpack-assets-manifest@^3.1.1:
tapable "^1.0.0"
webpack-sources "^1.0.0"
-webpack-bundle-analyzer@^3.6.0:
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.6.0.tgz#39b3a8f829ca044682bc6f9e011c95deb554aefd"
- integrity sha512-orUfvVYEfBMDXgEKAKVvab5iQ2wXneIEorGNsyuOyVYpjYrI7CUOhhXNDd3huMwQ3vNNWWlGP+hzflMFYNzi2g==
+webpack-bundle-analyzer@^3.7.0:
+ version "3.7.0"
+ resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.7.0.tgz#84da434e89442899b884d9ad38e466d0db02a56f"
+ integrity sha512-mETdjZ30a3Yf+NTB/wqTgACK7rAYQl5uxKK0WVTNmF0sM3Uv8s3R58YZMW7Rhu0Lk2Rmuhdj5dcH5Q76zCDVdA==
dependencies:
- acorn "^6.0.7"
- acorn-walk "^6.1.1"
+ acorn "^7.1.1"
+ acorn-walk "^7.1.1"
bfj "^6.1.1"
chalk "^2.4.1"
commander "^2.18.0"
@@ -10860,10 +11190,10 @@ webpack-dev-middleware@^3.7.2:
range-parser "^1.2.1"
webpack-log "^2.0.0"
-webpack-dev-server@^3.10.1:
- version "3.10.1"
- resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.10.1.tgz#1ff3e5cccf8e0897aa3f5909c654e623f69b1c0e"
- integrity sha512-AGG4+XrrXn4rbZUueyNrQgO4KGnol+0wm3MPdqGLmmA+NofZl3blZQKxZ9BND6RDNuvAK9OMYClhjOSnxpWRoA==
+webpack-dev-server@^3.10.3:
+ version "3.10.3"
+ resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz#f35945036813e57ef582c2420ef7b470e14d3af0"
+ integrity sha512-e4nWev8YzEVNdOMcNzNeCN947sWJNd43E5XvsJzbAL08kGc2frm1tQ32hTJslRS+H65LCb/AaUCYU7fjHCpDeQ==
dependencies:
ansi-html "0.0.7"
bonjour "^3.5.0"
@@ -10922,16 +11252,16 @@ webpack-sources@^1.0.0, webpack-sources@^1.0.1, webpack-sources@^1.1.0, webpack-
source-list-map "^2.0.0"
source-map "~0.6.1"
-webpack@^4.41.5:
- version "4.41.5"
- resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.5.tgz#3210f1886bce5310e62bb97204d18c263341b77c"
- integrity sha512-wp0Co4vpyumnp3KlkmpM5LWuzvZYayDwM2n17EHFr4qxBBbRokC7DJawPJC7TfSFZ9HZ6GsdH40EBj4UV0nmpw==
+webpack@^4.43.0:
+ version "4.43.0"
+ resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.43.0.tgz#c48547b11d563224c561dad1172c8aa0b8a678e6"
+ integrity sha512-GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==
dependencies:
- "@webassemblyjs/ast" "1.8.5"
- "@webassemblyjs/helper-module-context" "1.8.5"
- "@webassemblyjs/wasm-edit" "1.8.5"
- "@webassemblyjs/wasm-parser" "1.8.5"
- acorn "^6.2.1"
+ "@webassemblyjs/ast" "1.9.0"
+ "@webassemblyjs/helper-module-context" "1.9.0"
+ "@webassemblyjs/wasm-edit" "1.9.0"
+ "@webassemblyjs/wasm-parser" "1.9.0"
+ acorn "^6.4.1"
ajv "^6.10.2"
ajv-keywords "^3.4.1"
chrome-trace-event "^1.0.2"
@@ -10942,13 +11272,13 @@ webpack@^4.41.5:
loader-utils "^1.2.3"
memory-fs "^0.4.1"
micromatch "^3.1.10"
- mkdirp "^0.5.1"
+ mkdirp "^0.5.3"
neo-async "^2.6.1"
node-libs-browser "^2.2.1"
schema-utils "^1.0.0"
tapable "^1.1.3"
terser-webpack-plugin "^1.4.3"
- watchpack "^1.6.0"
+ watchpack "^1.6.1"
webpack-sources "^1.4.1"
websocket-driver@>=0.5.1:
@@ -10965,31 +11295,22 @@ websocket-extensions@>=0.1.1:
resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29"
integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==
-whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3:
+whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0"
integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==
dependencies:
iconv-lite "0.4.24"
-whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0:
+whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf"
integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==
-whatwg-url@^6.4.1:
- version "6.5.0"
- resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8"
- integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==
- dependencies:
- lodash.sortby "^4.7.0"
- tr46 "^1.0.1"
- webidl-conversions "^4.0.2"
-
whatwg-url@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.0.0.tgz#fde926fa54a599f3adf82dff25a9f7be02dc6edd"
- integrity sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06"
+ integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==
dependencies:
lodash.sortby "^4.7.0"
tr46 "^1.0.1"
@@ -11000,7 +11321,7 @@ which-module@^2.0.0:
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
-which@^1.2.14, which@^1.2.9, which@^1.3.0, which@^1.3.1:
+which@^1.2.14, which@^1.2.9, which@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
@@ -11014,10 +11335,17 @@ which@^2.0.1:
dependencies:
isexe "^2.0.0"
-wicg-inert@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/wicg-inert/-/wicg-inert-3.0.0.tgz#4f5797172fbf7ff01effd3839b52872e35d3cba2"
- integrity sha512-sZsYZ8pk8y6CgDLkTxivfhLDBvZuDWTWBawU8OuDdO0Id6AOd1Gqjkvt9g9Ni7rgHIS7UbRvbLSv1z7MSJDYCA==
+which@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
+ integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
+ dependencies:
+ isexe "^2.0.0"
+
+wicg-inert@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/wicg-inert/-/wicg-inert-3.0.2.tgz#46d8b01142c1bda8f6fa5d78e2754ba56f6f70be"
+ integrity sha512-L2eSi1fx1M+WLLUccwzAulgK5hZtllRDvYk3UB/fe1ZqdkZS6dz718o6xfe3JUtBEJJnqvI6NF8m1bAHlg3JUg==
wide-align@^1.1.0:
version "1.1.3"
@@ -11031,11 +11359,6 @@ word-wrap@~1.2.3:
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
-wordwrap@~0.0.2:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
- integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc=
-
worker-farm@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"
@@ -11074,14 +11397,15 @@ wrappy@1:
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
-write-file-atomic@2.4.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.1.tgz#d0b05463c188ae804396fd5ab2a370062af87529"
- integrity sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==
+write-file-atomic@^3.0.0:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8"
+ integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==
dependencies:
- graceful-fs "^4.1.11"
imurmurhash "^0.1.4"
+ is-typedarray "^1.0.0"
signal-exit "^3.0.2"
+ typedarray-to-buffer "^3.1.5"
write@1.0.3:
version "1.0.3"
@@ -11097,13 +11421,6 @@ write@^0.2.1:
dependencies:
mkdirp "^0.5.1"
-ws@^5.2.0:
- version "5.2.2"
- resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f"
- integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==
- dependencies:
- async-limiter "~1.0.0"
-
ws@^6.0.0, ws@^6.2.1:
version "6.2.1"
resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb"
@@ -11111,11 +11428,28 @@ ws@^6.0.0, ws@^6.2.1:
dependencies:
async-limiter "~1.0.0"
+ws@^7.0.0:
+ version "7.3.0"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.0.tgz#4b2f7f219b3d3737bc1a2fbf145d825b94d38ffd"
+ integrity sha512-iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w==
+
xml-name-validator@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a"
integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==
+xmlchars@^2.1.1:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"
+ integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==
+
+xregexp@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.3.0.tgz#7e92e73d9174a99a59743f67a4ce879a04b5ae50"
+ integrity sha512-7jXDIFXh5yJ/orPn4SXjuVrWWoi4Cr8jfV1eHv9CixKSbU+jY4mxfrBwAuDvupPNKpMUY+FeIqsVw/JLT9+B8g==
+ dependencies:
+ "@babel/runtime-corejs3" "^7.8.3"
+
xtend@^4.0.0, xtend@~4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
@@ -11126,7 +11460,7 @@ xtend@^4.0.0, xtend@~4.0.1:
resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
-yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3:
+yallist@^3.0.2:
version "3.1.1"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
@@ -11137,11 +11471,11 @@ yallist@^4.0.0:
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
yaml@^1.7.2:
- version "1.7.2"
- resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.7.2.tgz#f26aabf738590ab61efaca502358e48dc9f348b2"
- integrity sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw==
+ version "1.9.2"
+ resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.9.2.tgz#f0cfa865f003ab707663e4f04b3956957ea564ed"
+ integrity sha512-HPT7cGGI0DuRcsO51qC1j9O16Dh1mZ2bnXwsi0jrSpsLz0WxOLSLXfkABVl6bZO629py3CU+OMJtpNHDLB97kg==
dependencies:
- "@babel/runtime" "^7.6.3"
+ "@babel/runtime" "^7.9.2"
yargs-parser@^11.1.1:
version "11.1.1"
@@ -11151,7 +11485,7 @@ yargs-parser@^11.1.1:
camelcase "^5.0.0"
decamelize "^1.2.0"
-yargs-parser@^13.1.0, yargs-parser@^13.1.1:
+yargs-parser@^13.1.0:
version "13.1.1"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0"
integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==
@@ -11159,10 +11493,10 @@ yargs-parser@^13.1.0, yargs-parser@^13.1.1:
camelcase "^5.0.0"
decamelize "^1.2.0"
-yargs-parser@^16.1.0:
- version "16.1.0"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-16.1.0.tgz#73747d53ae187e7b8dbe333f95714c76ea00ecf1"
- integrity sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg==
+yargs-parser@^18.1.1:
+ version "18.1.3"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0"
+ integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==
dependencies:
camelcase "^5.0.0"
decamelize "^1.2.0"
@@ -11202,26 +11536,10 @@ yargs@13.2.4:
y18n "^4.0.0"
yargs-parser "^13.1.0"
-yargs@^13.3.0:
- version "13.3.0"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83"
- integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==
- dependencies:
- cliui "^5.0.0"
- find-up "^3.0.0"
- get-caller-file "^2.0.1"
- require-directory "^2.1.1"
- require-main-filename "^2.0.0"
- set-blocking "^2.0.0"
- string-width "^3.0.0"
- which-module "^2.0.0"
- y18n "^4.0.0"
- yargs-parser "^13.1.1"
-
-yargs@^15.1.0:
- version "15.1.0"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.1.0.tgz#e111381f5830e863a89550bd4b136bb6a5f37219"
- integrity sha512-T39FNN1b6hCW4SOIk1XyTOWxtXdcen0t+XYrysQmChzSipvhBO8Bj0nK1ozAasdk24dNWuMZvr4k24nz+8HHLg==
+yargs@^15.3.1:
+ version "15.3.1"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b"
+ integrity sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==
dependencies:
cliui "^6.0.0"
decamelize "^1.2.0"
@@ -11233,7 +11551,7 @@ yargs@^15.1.0:
string-width "^4.2.0"
which-module "^2.0.0"
y18n "^4.0.0"
- yargs-parser "^16.1.0"
+ yargs-parser "^18.1.1"
zlibjs@^0.3.1:
version "0.3.1"